Кэш прямого отображения: как определить декомпозицию адреса
Давайте предположим, что у меня 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 выбирают байт в строке.