Установить ассоциативный кеш: рассчитать размер тега?

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

Предположим, у вас есть 4-сторонний ассоциативный кэш, который имеет в общей сложности 4096 байт кэш-памяти, а каждая строка кеша имеет размер 128 байт. Сколько наборов есть в этом кеше? Если память имеет байтовую адресацию, а адреса - 16 бит, то сколько байтов используется для тега?

Вот что у меня есть на данный момент:

4096/128 = num lines

4096/128/4 = 8 = num sets (каждый набор состоит из 4 строк в 4-полосной ассоциации наборов)

Итак, нужно 3 бита, чтобы выбрать набор (2^3=8)

У нас осталось 16-3 = 13 bits для тега и слова.

Поскольку в вопросе говорится, что память имеет байтовую адресацию, я думаю, что это означает, что длина слова составляет 8 бит (= 1 байт), и, следовательно, длина тега составляет 16-3-8 = 5 бит.

Хотя я в этом не совсем уверен. Есть ли у кого-нибудь решение этой проблемы?


person janderson    schedule 11.06.2014    source источник


Ответы (2)


Если память имеет байтовую адресацию

Этот оператор просто сообщает нам, что основная память имеет побайтовую адресацию, т. Е. архитектуры, в которых к данным можно обращаться по 8 бит за раз, независимо от ширины шин данных и адреса.

Это не влияет на количество битов тега.

Решение:

4-ходовой набор ассоциативных

Общая кеш-память = 4096 байт

Размер блока (строка кеша) = 128 байт

Количество строк кеша = 4096/128 = 32 строки

Количество наборов в кеше = 32/4 = 8 наборов

╔════════════════════════════╗
║       16 bit address       ║
╠══════════╤════════╤════════╣
║ tag bit? │ 3 bits │ 7 bits ║
╚══════════╧════════╧════════╝

Смещение слова = журнал 2 8 = 3 бита

Установить смещение = log 2 128 = 7 бит

Ответ:

Бит тега = 16 - (3 + 7) = 6 бит

╔══════════════════════════╗
║      16 bit address      ║
╠════════╤════════╤════════╣
║ 6 bits │ 3 bits │ 7 bits ║
╚════════╧════════╧════════╝
person Alwyn Mathew    schedule 03.06.2016

  • Емкость кеша составляет 4096 байт, что означает (2 ^ 12) байт.

  • Каждый блок / строка в кеше содержит (2 ^ 7) байтов.

-поэтому количество строк или блоков в кеше: (2 ^ 12) / (2 ^ 7) = 2 ^ 5 блоков или строк в кеше

  • Поскольку это 4-сторонний ассоциативный набор, каждый набор содержит 4 блока, количество наборов в кэше: (2 ^ 5) / 2 ^ 2 = 2 ^ 3 наборов. Итак, из них мы узнали, что для адресации смещения набора требуются 3 бита.

  • Поскольку он имеет байтовую адресацию, для адресации байтового смещения нам требуется 7 бит, поскольку у нас есть 128 (2 ^ 7) байтов в каждом блоке.

  • Остальные 6 бит будут выделены для тега.

person Nagashayan reddy    schedule 15.06.2021