Кэш-память

Кэш-память предназначена для согласования скорости работы сравнительно медленных устройств, таких например, как динамическая память с относительно быстрым микропроцессором. Обычно программа использует память какой либо ограниченной области. Храня нужную информацию в кэш-памяти программа позволяет избежать циклов ожидания в его работе, которые снижают производительность всей системы.

Не всякая кэш-память равнозначна. Большое значение имеет тот факт, как много информации может содержать кэш-память. Чем больше кэш-память, тем больше информации может быть в ней размещено, а следовательно, тем больше вероятность, что нужный байт будет содержаться в этой быстрой памяти. Очевидно, что самый лучший вариант - это когда объём кэш-памяти соответствует объёму всей оперативной памяти. В этом случае вся остальная память становится не нужной. Крайне противоположная ситуация - 1 байт кэш-памяти - тоже не имеет практического значения, так как вероятность того, что нужная информация окажется в этом байте, стремится к нулю. Практически, диапазон используемой кэш-памяти колеблется в пределах 16-512К.

С помощью кэш-памяти обычно делается попытка согласовать также работу внешних устройств, например, различных накопителей, и микропроцессора. Реализация кэш-систем не так проста, как это может показаться с первого взгляда. Микропроцессор должен не только читать из памяти, но и писать в неё. Что случится, если процессор занесёт новую информацию в кэш-память, а перед использованием этой информации она будет изменена в основной памяти? Для избежания подобной ситуации иногда реализуется метод, названный записью через кэш-память. Очевидно, что этот метод снижает быстродействие системы, потому что приходится писать не только в кэш-память. Хуже того, микропроцессору может понадобиться информация, которую он только что записал и которая ещё не была перезагружена в кэш-память.

Целостность памяти - это одна из самых больших проблем разработчиков кэш-памяти. Все вопросы по преодолению этих проблем были возложены на отдельную микросхему -кэш-контроллер Intel 82385. Соответствующий контролер кэш-памяти должен заботиться о том, чтобы команды и данные, которые будут необходимы микропроцессору в определенный момент времени, именно к этому моменту оказывались в кэш-памяти.

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

Метод Write Through, называемый также методом сквозной записи, предполагает наличие двух копий данных- одной в основной памяти, а другой в кэш-памяти. Каждый цикл записи процессора в память идет через кэш. Это обуславливает,конечно, высокую загрузку системной шины, так как на каждую операцию модификации данных приходится две операции записи. Поэтому каждое обновление содержимого кэш-памяти ощутимо сказывается на работе шины. С другой стороны, микропроцессор по-прежнему вынужден ожидать окончания записи в основную память.

Метод Buffered Write Through является разновидностью метода Write Through и называется также методом буферизованной сквозной записи. Для того чтобы как-то уменьшить загрузку шины, процесс записи выполняется в один или несколько буферов, которые работают по принципу FIFO (Fist Input-First Output). Таким образом, цикл записи для микропроцессора заканчивается практически мгновенно (т.е. когда данные записываются в буфер), хотя информация в основной памяти не сохранена. Сам же микро процессор может выполнять дальнейшую обработку команд. Конечно, соответствующая логика управления должна заботиться о том, чтобы своевременно опустошать заполненные буферы. При использовании данного метода процессор полностью освобожден от работы с основной памятью.

При использовании метода Write Back, называемого также методом обратной записи, цикл записи микропроцессора происходит сначала в кэш-память, если есть адрес приемника. Если адреса приемника в кэш-памяти не оказывается, то информация записывается непосредственно в память. Содержимое основной памяти обновляется только тогда, когда из кэш-памяти в нее записывается полный блок данных, называемый длиной строки- КЭШа (cach -line).

При работе с кэш-памятью применяется ассоциативный принцип, когда старшие разряды адреса используются в качестве признака, а младшие -для выбора слова. Архитектура кэш-памяти определяется тем, каким образом память отображается на кэш. Существует три разновидности отображения: кэш-память с прямым отображением, частично ассоциативная и полностью ассоциативная. При прямом отображении каждая ячейка основной памяти может отображаться на одну ячейку кэш-памяти, В частично ассоциативной- на две и более (т.е. если одна ячейка кэша занята, можно использовать другую). В случае наличия четырех входов кэш-память называют 4-канальной частично ассоциативной, как,например, у i486. При полностью ассоциативном подходе в качестве разрядов признаков используются все адресные разряды.

Кэш-память представляет существенно принципиальный тип оперативной памяти - SRAM, что расшифровывается как Static (Статическая) RAM.


Понравилась статья? Добавь ее в закладку (CTRL+D) и не забудь поделиться с друзьями:  



double arrow
Сейчас читают про: