Это простой кэш с прямым отображением и более сложный кэш с ассоциативным отображением. Вы хотите избежать случая, когда некоторому коду требуется две части информации, но эти два адреса отображаются на одну и ту же строку кэша.

аюсь понять, как работает кэш процессора. Допустим, у нас есть эта конфигурация (в качестве примера).

Размер кэша 1024 байтаСтрока кэша 32 байта1024/32 = 32 строки кэша все вместе.Строка кэша Singel может хранить 32/4 = 8 дюймов.

1) В соответствии с этими настройками длина тега должна составлять 32-5 = 27 бит, а размер индекса 5 бит (2 ^ 5 = 32 адреса для каждого байта в строке кэша).

Если общий размер кэша равен 1024, и в нем 32 строки кэша, где хранятся теги + индексы? (Есть еще 4 * 32 = 128 байт.) Значит ли это, что фактический размер кэша равен 1024 + 128 = 1152?

2) Если в этом примере строка кэша составляет 32 байта, это означает, что 32 байта копируются в кэш, когда ЦП требуется новый байт из ОЗУ. Правильно ли я предположить, что позиция строки кэша запрашиваемого байта будет определяться его адресом?

Вот что я имею в виду: если процессор запрашивает байт в[FF FF 00 08], тогда доступная строка кэша будет заполнена байтами из[FF FF 00 00] в[FF FF 00 1F], И наш пересчитанный единственный байт будет в позиции[08].

3) Если предыдущий оператор верен, означает ли это, что 5 битов, которые используются для индекса, технически не нужны, так как все 32 байта в любом случае находятся в строке кэша?

Пожалуйста, дайте мне знать, если я что-то не так. Спасибо

Ответы на вопрос(1)

Ваш ответ на вопрос