Документ взят из кэша поисковой машины. Адрес оригинального документа : http://www.kge.msu.ru/workgroups/compcenter/dmitri/projects/rmma/axp.htm
Дата изменения: Mon Mar 15 21:01:54 2004
Дата индексирования: Mon Oct 1 21:21:33 2012
Кодировка: Windows-1251
Athlon XP cache latency study

Исследование режимов работы кэша
AMD Athlon XP (K7/Palomino)

Начнем с рассмотрения 1 цепочки зависимого доступа (сразу отметим, что параметр Stride
Size выставлен естественным образом, т.е. равным размеру строки кэш (64 байта). В этом случае
налицо "вмешательство" алгоритма Hardware Preftch, приводящего к большей латентности прямого
чтения из L2 (purple) по сравнению с обратным (cyan) и произвольным доступом (blue). Который,
в то же время, определенно играет на руку в случае чтения из RAM (латентность прямого доступа
к ней меньше, чем обратного или случайного.

 

Переходим к двум цепочкам. Латентность L2 чуть-чуть возрастает во всех режимах доступа,
а вот с латентностью RAM при прямом доступе понятно не очень - она падает с ~200 до ~140 тактов.

 

4 цепочки. Видно, что мы добились "пробоя" ассоциативности L1 кэша, который в нашем
случае (AMD K7/Palomino) является всего лишь 2-way set associative. Теперь латентность во
всем интервале 1-256KB близка к 33 тактам. Кривая random проходит чуть ниже, и это более-
менее понятно - в случае произвольного доступа кэшу приходится делать все же меньшее
количество переассоциаций, чем при строго последовательном. Вновь непонятно поведение
кривой последовательного чтения из RAM - латентность падает до ~100 тактов, с непонятным
(но хорошо воспроизводимым) "всплеском" в области ~384KB.

 

Переходим к 8 цепочкам. Принципиальных изменений нет, кривая forward read стабилизировалась
на уровне ~105 тактов, а произвольный доступ по-прежнему чуть выгоднее последовательного.
В то же время, прямой доступ вновь намного эффективнее обратного или последовательного.
Неужели так хорошо работает Hardware Prefetch?

 

Критический случай - 16 цепочек, т.к. мы находимся "на грани" ассоциативности L2 кэша. Все
кривые ведут себя почти так же, как при 4 и 8 цепочках, имеет лишь место некоторое "размывание"
участка, соответствующего области L2 кэша.

 

И напоследок, читаем параллельно 32 цепочки! Поскольку это за пределами любой ассоциативности
существующих сегодня кэш (интересно, появятся ли в ближайшем будущем 32-way set associative кэши?),
мы видим картину "полного провала" кэш. Латентность равна 350 тактам, каким бы маленьким (или большим)
ни был размер блока. И только random, как всегда, проходит чуть ниже - все-таки хоть сколько-то, но
есть шансов у кэша в этом случае!