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

371
Arthur Deschamps

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

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

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

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

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

-2
Для людей, которые понижают голосование, у меня может быть причина? Может быть, совет, чтобы улучшить мой вопрос? Arthur Deschamps 6 лет назад 0

2 ответа на вопрос

0
Arthur Deschamps

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

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

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

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

Похожие вопросы