Многоуровневое кэширование
Специфика конструирования современных ядер процессоров привела к тому, что систему кэширования в подавляющем большинстве процессоров приходится делать многоуровневой.
Кэш первого уровня в каждом ядре (самый «близкий» к ядру) традиционно разделяется на две (как правило, равные) части: кэш команд (L1К) и кэш данных (L1D). Это разделение предусматривается так называемой «гарвардской структурой» ядер процессора, которая по состоянию на сегодня является самой популярной для построения ядер современных процессоров различного назначения. В кэш-памяти команд первого уровня L1К, соответственно, располагаются только команды (с ним работает подсистема подготовки команд для выполнения), а в кэш-памяти данных первого уровня L1D — только данные (они впоследствии, как правило, попадают во внутренние регистры процессора).
Иерархически «над» кэш-памятью первого уровня L1 стоит кэш-память второго уровня L2. Он, как правило, в 8 раз больше по объёму, примерно втрое медленнее, и является уже «смешанной» — там располагаются и команды, и данные. В первых многоядерных процессорах у каждого ядра были свои кэш-памяти L1К и L1D, но общая кэш-память L2. В современных ядрах процессоров у каждого ядра есть своя кэш-память второго уровня L2.
Общей для всех ядер процессора является кэш-память третьего уровня L3, которая в 4-8 раз больше, чем кэш-память L2 (в расчете на одно ядро), и ещё примерно втрое медленнее (но всё ещё быстрее оперативной памяти). Алгоритм работы с многоуровневой кэш-памятью в общих чертах не отличается от алгоритма работы с одноуровневой кэш-памятью, но добавляются дополнительные итерации. Сначала информация ищется в кэш-памяти L1, если там промах — ищется в кэш-памяти L2, если снова промах — ищется в кэш-памяти L3, и уже потом, если ни на одном уровне кэш-памяти она не найдена — идёт обращение в оперативную память.
В большинстве ядер современных процессоров кэш-памяти L1 и L2 работают на той же частоте, что и процессорное ядро.
Ширина связей между ядром и кэш-памятью первого уровня, а также самими кэш-памятями может быть до 256 разрядов.
Как правило, кэш-памяти имеют наборно ассоциативную структуру, со степенью ассоциативности от 4 до 16.
Дата добавления: 2015-09-29; просмотров: 1288;