Добавил:
Опубликованный материал нарушает ваши авторские права? Сообщите нам.
Вуз: Предмет: Файл:
arkhitektura.docx
Скачиваний:
50
Добавлен:
12.01.2020
Размер:
216.72 Кб
Скачать

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

Кэш прямого отображения

В каждой строке КЭШа может отображаться только определенный набор блоков основной памяти. Основная память условно разбивается на страницы, каждая из которых равна размеру КЭШа, например, 256 Кбайт. Кэш-память и основная память делятся на строки, если размер строки КЭШа 32 байта, то тогда в нашем примере на 8К строк (по 32 байта каждая). Каждая строка КЭШа может отображать из любой страницы кэшируемой памяти только соответствующую ей строку. То есть на каждую строку КЭШа могут претендовать множество блоков основной памяти с одинаковой младшей частью адреса (смещением внутри страницы). Тогда в теге каждой строки кэш-памяти достаточно хранить лишь номер страницы в основной памяти. Также в теге хранятся признаки действительности и модифицированности данных. Таким образом, каждой строке основной памяти соответствует единственная строка КЭШа.

При появлении запроса на считывание данных из памяти, контроллер памяти сначала проверяет, есть ли соответствующие данные в КЭШе. Для этого достаточно по младшей части адреса требуемой ячейки найти соответствующую ей строку КЭШа и сравнить содержимое ее тэга со старшей частью адреса требуемой ячейки, а также проверить содержимое флага действительности. То есть поиск осуществляется достаточно быстро, за счет того, что по адресу ячейки сразу ясно в какой строке КЭШа она может отображаться. В случае промаха после считывания из основной памяти новые данные помещаются в соответствующую строку КЭШа (если она немодифицированная). Если реализовано упреждающее считывание, то в последующие свободные циклы шины данных обновляется следующая строка (если и она чистая, то есть немодифицированная). Независимо от объема затребованных данных, строка в КЭШе переписывается целиком, так как признак действительности относится к строке в целом. Возможен секторированный вариант КЭШа, когда каждый сектор в строке имеет свой признак действительности, и возможно частичное изменение строки.

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

Объем кэшируемой памяти определяется как размером кэш-памяти, так и разрядностью тега.

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

В наборно-ассоциативной архитектуре каждая строка основной памяти может отображаться на одну из нескольких строк КЭШа. В полностью ассоциативном КЭШе – на любую строку КЭШа. Ассоциативность КЭШа снижает вероятность конфликтных ситуаций, когда все используемые для данного блока основной памяти строки кэш-памяти заняты другими блоками. Однако при этом усложняются алгоритмы поиска нужной ячейки в кэш-памяти, ведь прямой перебор тэгов всех строк здесь неприменим. Остается только параллельный анализ всех строк, что является сложной аппаратной задачей, эта сложность существенно увеличивается с увеличением объема кэш-памяти. Поэтому полностью ассоциативным удается сделать только первичный кэш.

Соседние файлы в предмете Архитектура информационных систем