Кэш прямого отображения: как определить декомпозицию адреса

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

Мы можем сделать вывод, что размер индекса равен 10 битам, поскольку 4*2^10 байт / 4 = 2^10 слов = 2 ^ 10 строк.

Теперь, поскольку в строке только одно слово, я предполагаю, что нам не нужно поле смещения. Поэтому адреса кэша разлагаются таким образом:

  • Биты с 0 по 9: индекс
  • Биты с 10 по 31: метка

Моя логика как-то не так?

2 ответа

Решение

Нам нужно 2 бита для смещения, потому что 32-битное значение имеет 4 байта, и каждый байт может быть доступен индивидуально, и, таким образом, смещение может составлять 0,1,2 или 3.

Таким образом, адрес разлагается таким образом с помощью прямого сопоставления кеша:

  • Биты от 0 до 1: смещение
  • Биты со 2 по 11: индекс
  • Биты с 12 по 31: метка

Строка кэша обычно составляет 64 байта, биты смещения 0-6 выбирают байт в строке.

Другие вопросы по тегам