Прямой сопоставленный кэш - PullRequest
2 голосов
/ 31 августа 2010

Кэш прямого отображения состоит из 16 блоков. Основная память содержит 16K блоков по 8 байт каждый. Каков формат адреса основной памяти (имеется в виду размер каждого поля).

Я знаю, что поля являются Tag | Block | Offset. Я просто не знаю, как получить размеры каждого.

1 Ответ

8 голосов
/ 31 августа 2010

Это домашнее задание?

Чтобы решить эту проблему, вам нужно знать размер адреса рассматриваемой архитектуры.Общее решение:

Пусть C - размер кэша в битах.
Пусть A - размер адреса в битах.
Пусть B - размер блока кэша в битах.
Пусть S будет ассоциативностью кеша (таким образом, прямое отображение будет S = 1, а полностью ассоциативным будет S = C / B)

L, количество строк в кэше равноС / В.Это количество бит кеша, деленное на количество бит в строке.Q, количество наборов в кэше, равно L / S.Это количество строк, деленное на ассоциативность.Причины этой линии и выше должны быть очевидны;если это не так, снова прочитайте учебник, прежде чем читать ниже.

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

биты смещениянайти определенный элемент в строке кэша.Предполагая, что адресно-байтовая память, D, число битов смещения, является ceil (log2 (ceil (B / 8))).Это лог-база двух из числа байтов в строке кэша, округленная на каждом шаге.Если память является двухбайтовой адресуемой, то внутренняя часть будет B / 16 и т. Д.

Биты блока должны найти нужный кеш-набор внутри кеша.Таким образом, O, число битов блока, равно ceil (log2 (Q)).Это лог-база двух из числа наборов в кэше.

Биты тега - это то, что осталось.Итак, T, количество битов тегов, равно ADO.На английском языке число бит в адресе минус количество бит, используемых для двух других частей.Мы не должны рассматривать ассоциативность здесь, потому что мы уже обрабатывали это выше при использовании Q вместо L.

В итоге:

  • Битов смещения столько, сколько вам нужноукажите конкретный байт в строке
  • Бит блоков - это столько, сколько вам нужно, чтобы указать конкретный набор в кэше
  • Битами тега являются любые биты, оставшиеся после

Рассчитать длину тега последним.Это определенно проще.

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

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...