Сверхоперативные запоминающие устройства

 

Существует иерархия памяти:

 

где РЗУ – регистровое запоминающее устройство,

СОЗУ – сверхоперативное запоминающее устройство,

РЗУ – оперативное запоминающее устройство,

ВП – внешняя память

СОЗУ – это быстрая буферная память (кэш) между ОП и РЗУ. Объем СОЗУ может быть от нескольких десятков до сотен килобайт. Быстродействие раза в два медленнее, чем РЗУ, но значительнее быстрее, чем ОЗУ.

Оперативная память и СОЗУ имеют страничную организацию, при обмене СОЗУ выбирает фрагменты страниц – блоки.

СОЗУ должно использовать ассоциативное запоминающее устройство (АЗУ) для определения загружен ли блок данной страницы в СОЗУ или его там нет.

 
 

СОЗУ состоит из таблицы размещения (таблицы загрузки блоков), в которой указывается, какой логической странице ОП принадлежит данный блок, номер блока определяется по индексу столбца таблицы, а сам блок находится в памяти или накопители СОЗУ. Например, нам необходимы данные, расположенные в ОЗУ по адресу [3.0.x], где 3 – это номер логической страницы, 0 – номер блока в этой странице, x- адрес внутри этого блока. Тогда с помощью АЗУ происходит поиск в таблице размещения нужного номера логической страницы. И, если данный номер есть в таблице, то происходит обращение в матрицу памяти СОЗУ по индексам [№ строки в табл. размещ.; № блока], где № строки в табл. размещ. – это номер строки в таблице размещения, в которой нашелся нужный нам номер страницы. А если в таблице размещения нет номера нужной логической страницы, то в СОЗУ нет данных, которые требуются и необходимо загружать данную страницу (блок страницы) из ОП.

При загрузке какого-либо блока из оперативной памяти происходит одновременная запись его в СОЗУ. Тогда при заполнении СОЗУ возникает проблема замещения (т.к. необходимо сначала что-нибудь удалить из СОЗУ), которая необходимо решать с помощью стратегии замещения (см. выше).

Кэш можно сделать однострочным, тогда проблемы замещения не будет (не будет выбора какую страницу выгружать, т.к. для данного блока (например, первого) может быть загружена только одна страница). Максимальный объем страницы – 4Кб.

 


Также можно сделать кэш с несколькими памятями: кэш команд, кэш данных.

 

При обмене между ОП и РЗУ осуществляется две операции: запись в ОП (прочитанного из РЗУ), чтение из ОП (и записи в РЗУ). СОЗУ является буфером между ОП и РЗУ. Поэтому если некоторая информация в СОЗУ, то она должна перезаписываться в ОП (происходит сквозная (параллельная) запись ЦП ® СОЗУ ® ОП). Операция чтения осуществляется сложнее. Используется механизм «кто первый ответит» – параллельно осуществляются попытки чтения и из СОЗУ, и из ОЗУ. Если нужное слово находится в СОЗУ, то ответ приходит значительно быстрее (появляется квитанция) и, следовательно, нужная информация прочитана. Если в СОЗУ нет, то происходит обычное чтение из ОП блока, который записывается в СОЗУ, а требуемое слово отправляется в ЦП. Пока ЦП готовится к чтению следующего слова, в кэш переписывается из ОЗУ весь блок, т.к. вероятность выбора слов из одного блока значительно больше, чем вероятность выбора слов из разных блоков. ОЗУ не выдает квитанцию на запись, если видит, что СОЗУ ответила, но записывает изменения. Можно записывать в страницы, минуя помещение страницы в СОЗУ. Если в СОЗУ не было страницы, запись сразу в ОЗУ.

 

Кэш 2-го уровня может подключатся параллельно основной памяти на шине ЦП. Кэш 1-го уровня находится в кристале ЦП и всегда последователен ОП.