Вот проблема, над которой я работаю:
Проблема: «Высокоскоростная рабочая станция имеет 64-битные слова и 64-битные адреса с разрешением адресов на уровне байтов. Предполагая, что кэш прямого отображения с 8192 64-байтовыми строками, сколько бит находится в каждом из следующих полей адреса для кэша? 1) байт 2) индекс 3) тег?"

Сначала я определил термины в этой задаче и использовал другой вопрос Stack Overflow Direct Mapped Cache и мой другой вопрос о кэшировании в качестве ссылок (Пожалуйста, исправьте меня, если какое-либо из моих определений неверно)

  • 64-битные слова - процессор может обрабатывать 64-битные одновременно
  • 64-битные адреса с адресацией на уровне байтов - в ОЗУ имеется 2 ^ 64 ячеек памяти, и каждая ячейка памяти хранит байт.
  • Кэш высокоскоростной и разбит на строки кеша
  • Непосредственно сопоставленный кэш - это место, где блок оперативной памяти отображается в одну строку кэша (не уверен в значимости этого

Теперь работа с Direct Mapped Cache в качестве ссылки

  1. Байт - поскольку строка байтов состоит из 64 байтов, вам нужно 6 бит для идентификации одного байта в этой строке байтов
  2. Индекс - поскольку имеется 8192 "строки" байтовых строк, вам нужно как минимум 10 бит для идентификации каждой строки

Теперь вот та часть, где я застрял. В другом посте говорилось:"Все остальные биты являются битами TAG". в то время как в этом лекционном сообщении говорилось:«Каждая строка имеет тег, который указывает адрес в M, с которого была скопирована строка». Я предполагаю, что М означает ОЗУ.

Здесь все остальные биты будут 64 - 6 - 10 = 48 бит. Но разве вам не нужны все 64 бита в TAG, чтобы указать, из какой области памяти в ОЗУ поступили данные в кеше? Может кто-то прояснить путаницу у меня здесь?

0