Добавил:
Upload Опубликованный материал нарушает ваши авторские права? Сообщите нам.
Вуз: Предмет: Файл:
Органиация ЭВМ и систем.docx
Скачиваний:
0
Добавлен:
01.04.2025
Размер:
532.51 Кб
Скачать

Кэш процессора. Наборно-ассоциативный кэш

Кэш микропроцессора — сверхоперативная память, используемый микропроцессором компьютера для уменьшения среднего времени доступа к компьютерной памяти.

Кэш память состоит из 2х блоков:

1. собственно самой памяти в качествеве, которой используют статическую память.

2. кэш контроллера, которая обрабатывает запросы процессора.

В зависимости от способа определения взаимного соответствия строки кэша и области основной памяти различают три архитектуры кэш-памяти: кэш прямого отображения (direct-mapped cache), полностью ассоциативный кэш (fully associative cache) и их комбинация - частично-ассоциативный или наборно-ассоциативный кэш (set-associative cache).

Промежуточным вариантом между полностью ассоциативным кэшем и кэшем с прямым отображением является наборно­ассоциативный кэш (N-way cache — N-канальный кэш).

Такой кэш состоит из нескольких независимых банков (сегментов), каждый из которых представляет собой кэш с прямым отображением, а сами банки являются полностью ассоциативными по отношению к оперативной памяти. То есть любой элемент оперативной памяти может быть размещен в любом банке кэш­памяти, однако внутри банка ему соответствует строго определенная кэш­строка

Количество банков кэша называется его степенью ассоциативности или канальностью (way). То есть может быть 2-канальный (2-way), 4-канальный (4-way), 8-канальный (8-way) и т.д. кэш. Причем количество каналов кэша — это степень числа 2. Наибольшее распространение получили 4- и 8-канальные кэши. На рис. 6 в качестве примера показан 4-канальный кэш.

Отметим, что при количестве каналов равном 1 мы получаем кэш прямого отображения, а если число каналов совпадает с числом кэш­строк — то получается полностью ассоциативный кэш.

При обращении к памяти физический адрес разбивается на три части: смещение в блоке (строке кэша ), номер группы (набора) и тег. Блок памяти, адрес которого соответствует определенной группе, может быть размещен в любой строке этой группы, и в теге строки размещается соответствующее значение.

Наборно-ассоциативный кэш обладает быстродействием, сравнимым с быстродействием кэша с прямым отображением, и в то же время лишен недостатка, присущего этому кэшу.

Кэш процессора. Полностью ассоциативный кэш

Кэш микропроцессора — сверхоперативная память, используемый микропроцессором компьютера для уменьшения среднего времени доступа к компьютерной памяти.

Кэш память состоит из 2х блоков:

1. собственно самой памяти в качествеве, которой используют статическую память.

2. кэш контроллера, которая обрабатывает запросы процессора.

В зависимости от способа определения взаимного соответствия строки кэша и области основной памяти различают три архитектуры кэш-памяти: кэш прямого отображения (direct-mapped cache), полностью ассоциативный кэш (fully associative cache) и их комбинация - частично-ассоциативный или наборно-ассоциативный кэш (set-associative cache).

Каждая строка кэш­памяти может быть связана с любой строкой оперативной памяти и наоборот. Такая кэш­память получила название полностью ассоциативной (fully associative).Для полностью ассоциативного кэша характерно, что кэш-контроллер может поместить любой блок оперативной памяти в любую строку кэш-памяти. В этом случае физический адрес разбивается на две части: смещение в блоке (строке кэша ) и номер блока. При помещении блока в кэш номер блока сохраняется в теге соответствующей строки. Когда ЦП обращается к кэшу за необходимым блоком, кэш-промах будет обнаружен только после сравнения тегов всех строк с номером блока.

Полностью ассоциативный кэш имеет как свои плюсы, так и минусы. Главный его минус заключается в том, что поиск информации в нем по тегу строки требует сложной аппаратной реализации, а потому довольно дорог. Действительно, для того чтобы определить, имеются ли запрошенные процессором данные в кэш­памяти, нужно перебрать все кэш­строки, то есть сравнить тег кэш­строки со старшими битами адреса (напомним, что младшие биты адреса описывают смещение в самой кэш­строке). Наиболее простой способ — это последовательный перебор всех тегов. Однако при большом их количестве этот способ крайне непроизводителен, и, даже если несколько тегов будут просматриваться за один такт, поиск нужной кэш­строки может растянуться на сотни тактов, что сделает кэш­память низкопроизводительной. Поэтому в случае полностью ассоциативного кэша приходится реализовывать параллельный одновременный просмотр всех тегов, что довольно сложно сделать. Да и с точки зрения энергопотребления параллельный просмотр всех тегов — не самое лучшее решение. Именно поэтому полностью ассоциативные кэши не могут иметь большой размер.