В «таблице значений задержки»: значения задержки каждого уровня кэша включают доступ к кешу предыдущего уровня? - PullRequest
1 голос
/ 21 июня 2020

Для вопроса я буду использовать эту таблицу в качестве примера:

введите описание изображения здесь

Но иерархия памяти этого процессора не имеет отношения к этому вопросу!

Мой вопрос в том, включают ли значения задержки каждого уровня кеша доступ к кешу предыдущего уровня или нет. Я имею в виду, если мы предположим, что мы получаем доступ к L2 только после промаха L1 (и доступ к L3 только после промаха L2), глядя в моем примере (для промаха L1, промаха L2 и попадания L3), количество потраченных циклов будет ~ 21 цикл или будет ~ (4 + 12 + 21) цикл?

И, если ответ состоит в том, что значение задержки включает обращения к кешу предыдущего уровня, значение задержки доступа к ОЗУ тоже?

Как я уже сказал, не обращайте внимания на точные номера процессоров, просто ответьте на этот вопрос в общих чертах, пожалуйста.

Я видел много «таблиц значений задержки» и никогда не знал, как правильно интерпретировать их из-за этого сомнения.

1 Ответ

1 голос
/ 21 июня 2020

Обычно (включая этот случай) задержка задается как общая задержка для доступа, который останавливается на этом уровне иерархии памяти (после отсутствия на внутренних уровнях).

Это то, что вы на самом деле можете измерить (например, с помощью связанного списка, который не помещается в L1d, не помещается в L2 и т. Д.), И о том, о чем проще всего думать.

Обратите внимание, что L3 и задержка памяти зависят от конкуренции со стороны других ядер, а также от того, насколько велика кольцевая шина или me sh запрос должен пройти, чтобы перейти от этого ядра к части L3. Почему Skylake намного лучше Broadwell-E по пропускной способности однопоточной памяти? . например, для Intel четырехъядерный «клиентский» чип имеет лучший L3 и задержку памяти (и одноядерную пропускную способность), чем большой Xeon с такими же ядрами. для кешей L1d и L2, поскольку они являются частными для каждого ядра. Помните, что задержка использования нагрузки L1d не всегда составляет 4 цикла; это только в том случае, если вы ищете указатель (разыменование только что загруженного указателя) и используете простой режим адресации. Есть ли штраф, если base + offset находится на другой странице, чем base?

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