При отправке запроса на чтение в DRAM, почему мы должны читать тег и данные, а не только данные? - PullRequest
0 голосов
/ 01 января 2019

Я изучаю книгу по компьютерной архитектуре Дэвида Паттерсона и Джона Хеннесси.В главе 2 упоминается, что нам может потребоваться сделать два отдельных запроса для чтения тега и данных в два цикла, если мы храним теги в DRAM.Мой вопрос: зачем нам вообще запрашивать тег?Разве тег не является просто старшими битами адреса?

1 Ответ

0 голосов
/ 01 января 2019

Ух ты - я читаю Паттерсона и Хеннесси в аспирантуре, давным-давно;) Спасибо за поездку по переулку памяти;)

Вот что происходит:

https://www.webopedia.com/TERM/T/tag_RAM.html

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

Другими словами, есть две разные "вещи" (тег и данные) в двухразные «места» (строка кеша и хранилище данных).Если это «попадание», вам нужно выполнить только один поиск (до строки кэша).

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

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