Для сравнения: в процессорах Pentium используется двунаправленный кэш (write-back), который работает при выполнении как операций считывания, так и записи.
Еще одна особенность улучшенной архитектуры кэша состоит в том, что кэш-память является неблокируемой. Это свойство позволяет уменьшать или скрывать задержки памяти, используя перекрытие операций процессора с выборкой данных. Неблокируемая кэш-память дает возможность продолжать выполнение программы одновременно с неудачными обращениями в кэш при наличии некоторых ограничений. Другими словами, кэш-память улучшает обработку промаха кэша и позволяет процессору продолжать выполнение операций, не связанных с отсутствующими данными.
Кэш-контроллер, встроенный в процессор, также используется для наблюдения за состоянием системной шины при передаче управления шиной альтернативным процессорам, которые называются хозяевами шины (bus masters). Процесс наблюдения, в свою очередь, называется отслеживанием шины (bus snooping). Если устройство, управляющее передачей данных по шине (т.е. хозяин шины), записывает какие-либо данные в область памяти, копия которой хранится в кэше процессора, то содержимое кэша перестает соответствовать содержимому основной памяти. В этом случае кэш-контроллер отмечает эти данные как ошибочные и при следующем обращении к памяти обновляет содержимое кэша, поддерживая тем самым целостность всей системы.
Все процессоры, поддерживающие использование кэш-памяти, включают в себя буфер быстрого преобразования (Translation Lookaside Buffer — TLB), необходимый для обработки неудачных попыток преобразования адресов кэш-памяти. Буфер представляет собой процессорную таблицу, в которой хранятся данные о местоположении недавно вызывавшихся адресов физической памяти. Он ускоряет преобразование виртуальных адресов в адреса физической памяти. Для дальнейшего повышения быстродействия в новых процессорах увеличено количество строк таблицы TLB (так поступила компания AMD при переходе от архитектуры ядра Thunderbird к Palomino в процессорах Athlon). В процессорах Pentium 4 с технологией Hyper-Threading для каждого виртуального потока процессора выделена отдельная инструкция TLB (LTLB).
Pentium III |
Athlon |
Athlon XP |
Pentium 4 |
Athlon 64 X2 |
Core 2 Duo/Quad |
1400 |
1 400 |
2200 |
3800 |
3000 |
2930 |
0,71 (1400) |
0,71 (1 400) |
0,45(2200) |
0,26 (3800) |
0,33 (3 000) |
0,34(2930) |
32 |
128 |
128 |
20 |
256 |
64/128 |
На кристалле 1/1 |
Ha кристалле 1/1 |
Ha кристалле 1/1 |
Ha кристалле 1/1 |
Ha кристалле 1/1 |
Ha кристалле 1/1 |
0,71 (1400) |
0,71 (1 400) |
0,45(2200) |
0,26 (3800) |
0,33 (3 000) |
0,34(2930) |
512 |
512 |
512 |
2048 |
2048 |
4096/8192 |
1066 |
2133 |
3200 |
6400 |
4000 |
8533 |
7,5(133) |
3,8(266) |
2,5 (400) |
1,25(800) |
2,5 (400) |
0,94(1066) |
При увеличении тактовой частоты длительность цикла уменьшается. В современных процессорах кэш-память как первого, так и второго уровней встроена непосредственно в ядро, благодаря чему кэш-память второго уровня работает на полной частоте процессора. Быстродействие кэш-памяти — более важный параметр, чем ее объем. Правило гласит, что меньший, но более быстрый кэш всегда предпочтительнее медленного кэша большого объема. В табл. 3.14 приведены необходимый объем кэша и функции, выполняемые встроенным (первого уровня) и внешним (второго уровня) кэшем в современных системах.