Поля адреса Armv8 для кеша? - PullRequest
       84

Поля адреса Armv8 для кеша?

0 голосов
/ 28 октября 2019

Я читаю, Руководство программиста серии ARM Cortex-A для ARMv8-A .

В 11.1.2 Кэшированные теги и физические адреса , был пример для полей адреса кэша.

Пример:

Кэш 4-сторонний 32KB

Строка кэша = 16 слов (64 байта)

И поля адреса, указанные в документе: Set (индекс) = 8 бит, Offset = 6 бит, Tag = 30 бит

Насколько я понимаю, 8-битный индекс будет соответствовать 256 строкам кэша вкаждый путь (что правильно показано в примере). И смещение составляет 6 бит (2 ^ 6 = 64), которое используется для правильной адресации байтов внутри строки (64 байта).

Однако кэш-память имеет 4 способа, что означает, что размер кэша равен 4 * 256 * 64. = 64 КБ, а не 32 КБ.

Мой анализ правильный или я что-то упускаю?

1 Ответ

2 голосов
/ 29 октября 2019

Кто-то задал тот же вопрос на веб-сайте сообщества сообщества: https://community.arm.com/developer/ip-products/processors/f/cortex-a-forum/8159/how-to-compute-a-cache-size

Вот ответ на его вопрос:

"Получил ответ от ARM. Это ошибка документа. быть двухсторонним наборно-ассоциативным кэшем. 16 КБ * 2 = 32 КБ "

...