Как выглядит кеш L1 и L2? - PullRequest
       78

Как выглядит кеш L1 и L2?

2 голосов
/ 14 марта 2011

Недавно я читал некоторые материалы о кеше процессора.Мне интересно, как процессор выполняет поиск в кэше L1 и L2 и в каком формате хранятся данные в кэше процессора?

Я думаю, что линейное сканирование кэша будет неэффективным, есть ли лучшие решения?

Спасибо.

Ответы [ 2 ]

2 голосов
/ 27 июля 2011

Используются индексные биты и теги, извлеченные из адреса, который он ищет.

Скажем, у вас есть доступ к некоторому 32-битному адресу ADDR

ADDR будет иметь биты: 31 -------------------------- 0, [------ тег | индекс | смещение]

Тогда в зависимости от размера вашего кеша: Допустим, у вас есть кэш Direct Mapped размером 32 КБ с 32 байтами на блок.

Смещенные биты используются для поиска данных в каждой строке, потому что 8 байтов - это минимальный размер данных, который должен быть занесен в кэш (ну, вы всегда получаете все 32 байта, но в пределах 32 байтов у вас будут ваши данные.)

Это составляет кэш с 1024 строками или наборами, опять же каждая строка с 32 байтами. Чтобы проиндексировать 1024 набора, вам нужно 10 бит. Таким образом, 10 бит с вашего адреса используются в качестве индекса в кеше. Биты смещения используются, чтобы увидеть, где внутри этой строки находятся ваши данные, а биты тега используются для соответствия адресу, который вы ищете, поскольку два или более адресов будут отображаться в одной строке кэша. Имеет смысл?

0 голосов
/ 14 марта 2011

Я не знаю вашего ответа, но могу порекомендовать хорошую книгу, которая может привести вас к одной - Основы организации и архитектуры компьютеров

...