Виды памяти и их особенности

В адресном пространстве ЭВМ возможно применение памяти, допускающей как чтение, так и запись (ОЗУ), и памяти, допускающей только чтение (постоянное и полупостоянное запоминающие устройства — ПЗУ и ППЗУ). ПЗУ и ППЗУ могут использоваться для хранения процедур, не требующих перезаписи в процессе эксплуатации системы. ППЗУ позволяет осуществить перезапись информации с помощью специальных процедур. ПЗУ допускает однократную запись, проще и обладает повышенным быстродействием. ЭВМ с программами, размещенными в ПЗУ или ППЗУ, являются цифровыми автоматами с жесткой логикой и используются для управления объектами, как правило, это микро-ЭВМ. В мини-ЭВМ ПЗУ применяется только в качестве начальных загрузчиков (т. е. позволяющих осуществить начальную загрузку ЭВМ) с нескольких носителей: перфоленты, магнитной ленты, гибких дисков, мини-дисков.

Оперативное ЗУ всех ЭВМ семейства полупроводниковое динамического типа. Преимущества полупроводниковой памяти перед магнитной: повышенное быстродействие и простота управления. Недостаток — стирание информации при отключении питания. Память динамического типа требует периодической регенерации. Это несколько снижает среднее быстродействие памяти, но резко улучшает такие показатели, как степень интеграции, уменьшение потребления на 1 бит и т. д.

В ЭВМ с расширенной памятью («Электроника 100-25» и «Электроника 79») память выполнена с избыточными (проверочными) разрядами, позволяющими обнаружить одиночную ошибку в любом байте. Динамическая переадресация, осуществляемая диспетчером памяти, позволяет исключать из распределения поврежденные участки памяти и продолжать работу (с некоторым замедлением), не прибегая к ремонту (восстановлению).

Для повышения среднего быстродействия памяти в ЭВМ «Электроника 79» введен блок сверхоперативной памяти — кэш-память. Эта память является «невидимой» для программ, работает при каждом обращении к ОЗУ. В ней запоминаются только что затребованные из ОЗУ (или записанные в ОЗУ) данные с их ближайшим адресным окружением. Считается, что программа в следующий момент с вероятностью, близкой к единице, обратится именно к ним (а не в произвольное место ОЗУ). В этом случае данные будут предоставлены быстрее, так как обращение к ОЗУ не потребуется. При оптимальном выборе алгоритма перемещения данных между ОЗУ и кэш-памятью среднее быстродействие памяти оказывается близким к быстродействию кэш-памяти. Введение неадресуемых регистров кэш-памяти является в известной мере альтернативой прямоадресуемой сверхоперативной памяти — регистров общего назначения.

Емкость кэш-памяти ЭВМ «Электроника 79» 2 Кбайт. Обмен с ОЗУ производится блоками по 4 байта, имеющими начальный адрес, кратный 4. Кэш-память включает две равноправные области по 400s блоков, которые упорядочены по адресам блоков: блок, имеющий в ОЗУ номер 258 (от начала физической памяти), при считывании попадет в кэш-память только в позиции 258 нулевой или первой области. Туда же будет направлен блок 4258, 10258 и т. д., т. е. позиция, куда может быть помещен блок из ОЗУ, однозначно определяется разрядами 2...9 его физического адреса. Разряды 0,1 определяют байт в блоке, а остальная часть адреса (разряды 10...21, называемые признаком) хранится в кэш-памяти вместе с блоком. Благодаря такому упорядочению уменьшается емкость кэш-памяти (за счет хранения 12-разрядного признака вместо 22-разрядного полного адреса) и время ассоциативного поиска (так как осуществляется операция сравнения только 12 разрядов). Каждый блок содержит также признак, который указывает на необходимость записи его в ОЗУ при занесении новой информации.

При выполнении операции чтения по признаку определяется, есть ли в кэш-памяти требуемое слово (или байт). Если есть, то данные передаются процессору без каких-либо дополнительных действий. Если данных в кэш-памяти нет, слово (байт) извлекается из памяти вместе с блоком, которому оно принадлежит. Байт (слово) пересылается процессору, а блок записывается в кэш-память в позицию, определяемую разрядами 2...9 адреса. При выполнении операции записи байт (слово) в ОЗУ записывается всегда, а в кэш-памяти — в том случае, если там есть копия блока, которая изменяется данной операцией записи. Данные и признаки в кэш-памяти имеют дополнительные разряды паритетных проверок. При невыполнении проверок вызывается прерывание «ошибка паритета».

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