У меня есть кеш для 64-битной архитектуры MIPS, 2-полосный по 4 КБ на блок и строки по 16 слов (для каждого блока). Я должен определить:

  1. [ТЕГ | Индекс | Смещение]

    Размеры бит для каждого поля

  2. Из сколько бит состоит вся память?


Я понятия не имею, правильно ли то, что я сделал, поскольку у меня нет результатов, поскольку мы работаем с 64-битным MIPS, а не с 32, я думал, что слово было бы составлено из 8 байтов вместо 4.

Я подсчитал количество блоков, выполнив 4KB / (16 words * 8 byte) = 32

Затем я сделал 32 / 2-way = 16 -> 4 бита INDEX

Затем я получил смещение слова и байта следующим образом:

16 слов -> 4 бита смещение слова

8 байт -> 3 бита смещение байта

Наконец, я рассчитал ТАГ как 64 - 4(index) - 4(word offset) - 3 (byte offset) = 53 bit

И общее количество битов было бы 53 tag + 64 + 1 validate = 118, что, умноженное на количество блоков (32), дало бы 3776 бит.

Я не совсем уверен в результате, может ли кто-нибудь мне с этим помочь?

Спасибо.

0
tatoalo 3 Янв 2018 в 18:16

1 ответ

Лучший ответ

Отчасти вопрос не очень ясен, я постараюсь догадаться.

Предположение: размер кэша составляет 4 КБ, слово - 64 бита, память - байтовая адресация.

Информация: строка кэша имеет ширину 16 слов, и это двухсторонний ассоциированный кеш.

Cacheline size = 16 word * 64 bits (8 byte) = 128 byte
Number of cachelines = 4 KB/128 B = 32
Number of blocks = 32 / 2 (2-way) = 16
As the memory is byte addressable, least 3 bits of the address can be ignored.
Next 4 bytes will be used to offset in a word in the 16 word cacheline.
Next bit of the address is ignored because its 2-way assoc
As there are 16 blocks, next 4 bits will be used to index a block.
That leaves 64 - (4 + 1 + 4 + 3) = 52 bits for the TAG.

TAG - 52 bits [bits 12 to 63]
Index - 4 bits [bits 8 to 11]
Offset - 4 bits [bits 3 to 6]

Немного сложно ответить на второй вопрос, поскольку кеш обычно имеет дополнительные биты на строку кэша, например действительные биты и т.д. Это дает нам 52 бита * 16 блоков * 2 строки в блоке = 1664 бита = 208 байтов.

Следовательно, весь размер кеша будет

= 4 KB + 208 B
= 4096 B + 208 B
= 4304 Bytes
0
Isuru H 4 Янв 2018 в 10:22