Организация взаимодействия компонентов ЭВМ "Эл. 79". Часть 2.

Структура РАС и РПС отличается от соответствующих регистров диспетчера памяти мини-ЭВМ «Электроника 100-25» только тем, что для получения 22-разрядного физического адреса памяти РАС содержит 16-разрядный базовый адрес (константу перераспределения). При работе диспетчера памяти обычный 16-разрядный адрес рассматривается не как физический, а как виртуальный, содержащий информацию, используемую для построения 22-разрядного физического адреса. Использование диспетчера памяти позволяет динамически разбивать память на страницы длиной от 1 до 128 блоков по 32 слова каждый. Каждая страница может распределяться в любое место физической памяти через интервалы, кратные 64. Принцип перераспределения виртуальных адресов в физические и принцип построения физического адреса тот же, что и у «Электроника 100-25», т.е. виртуальный адрес содержит поле активной страницы, указывающее на один из восьми РАС, и поле смещения, определяющее относительный адрес внутри страницы. Последовательность образования физического адреса следующая (рис. 3.22):

  • выбирается набор РАС в зависимости от режима работы процессора и используемой области (команд или данных), определяемый третьим регистром состояния диспетчера памяти (РСЗ);
  • по полю активной страницы (ПАС) виртуального адреса выбирается один из восьми РАС выбранного набора;
  • содержимое РАС, являющееся базовым адресом текущей страницы, складывается с номером блока из поля смещения виртуального адреса, в результате получается номер блока в ОЗУ; при этом используются не только разряды 00 ... 111 РАС (как для формирования 18-разрядного адреса), но и разряды 12 ... 15, которые образуют 16-разрядную константу перераспределения;
  • к полученному номеру блока в физической памяти добавляется без изменения номер слова в блоке из виртуального адреса, в результате образуется 22-разрядный физический адрес.


Схема формирования 32-х разрядного физического адреса

Для управления работой диспетчера памяти, анализа причин ошибок и возникающих отказов и прерываний служат четыре регистра состояния РСО ... РСЗ (рис. 3.23).


Форматы регистров состояния диспетчера памяти

Прерывания и отказы диспетчера памяти имеют адрес вектора прерывания 250. Регистр состояния 0 содержит флаги ошибок, номер страницы, обращение к которой вызвало отказ, и различные флаги состояния, в том числе коды защиты памяти (табл. 3.4).


Коды защиты памяти

Регистр состояния 1 запоминает номер регистра адреса страницы и значение, на которое производилось увеличение или уменьшение содержимого регистра в дополнительном коде. Информация этого регистра может быть эффективно использована для устранения возникающих ошибок. В регистр состояния 2 записывается 16-разрядный виртуальный адрес в начале выборки каждой команды и адрес вектора прерывания по Т-разряду при отказах по ошибке паритета нечетного адреса или тайм-аута и прерываниях по ошибкам паритета. Это используется системой при исправлении возникших ошибок. Регистр состояния 3 является управляющим и разрешает или запрещает использование РАС и РПС области данных, 22-разрядное преобразование и преобразование адресов Канала. Если установлен один из разрядов 00 ... 03, то соответствующая область данных разрешена, разряд 04 разрешает 22- или 18-разрядное преобразование при условии, что работа диспетчера памяти разрешена (00 разряд РСО), в противном случае он игнорируется.