Процессор |
Ассоциативный кэш первого уровня |
Ассоциативный кэш второго уровня |
Четырехстраничный |
Вне ЦПУ |
|
Pentium (не MMX) |
Двухстраничный |
Вне ЦПУ |
Pentium MMX |
Четырехстраничный |
Вне ЦПУ |
Pentium Pro/II/III |
Четырехстраничный |
Четырехстраничный (вне ядра) |
Pentium III/4 |
Четырехстраничный |
Восьмистраничный (встроенный в ядро) |
В процессорах Pentium используется двунаправленный кэш (write-back), который работает при выполнении как операций считывания, так и операций записи. Это позволяет еще больше повысить производительность процессора. Хотя встроенный кэш в процессоре 486 используется только при чтении, внешний кэш в системе может быть двунаправленным. Кроме того, в процессорах 486 предусмотрен дополнительный 4-байтовый буфер, в котором можно хранить данные вплоть до передачи в память. Это необходимо в том случае, если шина памяти занята.
Еще одна особенность улучшенной архитектуры кэша состоит в том, что кэш-память является неблокируемой. Это свойство позволяет уменьшать или скрывать задержки памяти, используя перекрытие операций процессора с выборкой данных. Неблокируемая кэш-память дает возможность продолжать выполнение программы одновременно с неудачными обращениями в кэш при наличии некоторых ограничений. Другими словами, кэш-память улучшает обработку промаха кэша и позволяет процессору продолжать выполнение операций, не связанных с отсутствующими данными.
Кэш-контроллер, встроенный в процессор, также используется для наблюдения за состоянием системной шины при передаче управления шиной альтернативным процессорам, которые называются хозяевами шины (bus masters). Процесс наблюдения, в свою очередь, называется отслеживанием шины (bus snooping). Если устройство, управляющее передачей данных по шине (т.е. хозяин шины), записывает какие-либо данные в область памяти, копия которой хранится в кэше процессора, то содержимое кэша перестает соответствовать содержимому основной памяти. В этом случае кэш-контроллер отмечает эти данные как ошибочные и при следующем обращении к памяти обновляет содержимое кэша, поддерживая тем самым целостность всей системы.
Все процессоры, поддерживающие использования кэш-памяти, включают в себя буфер быстрого преобразования (Translation Lookaside Buffer — TLB), необходимый для обработки неудачных попыток преобразования адресов кэш-памяти. Буфер представляет собой процессорную таблицу, в которой хранятся данные о местоположении недавно вызываемых адресов физической памяти. Он ускоряет преобразование виртуальных адресов в адреса физической памяти. Для дальнейшего увеличения быстродействия в новых процессорах (например, в процессорах Athlon с ядром Palomino) увеличено количество строк таблицы TLB. В процессорах Pentium 4 с технологией HyperThreading для каждого виртуального потока процессора выделена отдельная инструкция TLB (iTLB).
При увеличении тактовой частоты время цикла уменьшается. В новых системах не используется кэш на системной плате, поскольку быстрые модули DDR-SDRAM или RDRAM, применяемые в современных системах Pentium 4/Celeron или Athlon XP, могут работать на тактовой частоте системной платы. В современных процессорах кэш-память как первого, так и второго уровней встроена непосредственно в ядро, благодаря чему кэш-память второго уровня работает на полной частоте процессора. Быстродействие кэш-памяти более важный параметр, чем ее объем. Правило гласит, что меньший но более быстрый кэш всегда более предпочтителен, чем медленный кэш большого объема. В табл. 3.9 приведены необходимый объем кэша, а также функции, выполняемые встроенным (первого уровня) и внешним (второго уровня) кэшем в современных системах.