История отечественной вычислительной техники

Центральное устройство редактирования ЭВМ М-13

Рассмотрены основные функции центрального устройства редактирования (ЦУР) в составе ЭВМ М-13, его назначение, структура и функционирование.

ЭВМ М-13 относится к векторным мультипроцессорным Системам с общим управлением, для повышения эффективности систем этого класса необходима реализация ряда Специальных процедур, связанных с Взаимодействием линейки процессоров и блоков памяти [1]. Эти процедуры можно объединить общим Термином “редактирование массивов”.

К ним относятся: уплотнение массивов под маской с целью исключения пробелов, которые появляются в процессе параллельной обработки; кольцевой сдвиг строки информации; транспозиция строки информации.

Кроме перечисленных процедур редактирования, в М-13 реализованы процедуры, связанные с организацией вычислительного конвейера: Трехадресное обращение к регистровой памяти (2 чтения + 1 запись одновременно) для ускоренного обслуживания линейки АЛУ И Согласование форматов обращения к основной памяти и форматов обработки в разных моделях М-13 (максимальной, средней и малой) с сохранением их программной совместимости. В максимальной модели М-13 производится обращение к памяти и обработка строками 64 байта, в средней модели формат 1/2 строки (32 байта), в малой — 1/4 строки (16 байтов); эвакуация и хранение информации регистров при прерывании программ.

Для аппаратной поддержки этих процедур с высокой степенью параллелизма в ЭВМ М-13 введено центральное устройство редактирования (ЦУР). Структура устройства показана на рисунке.

Структура центрального устройства редактирования системы М-13

Рис. Структура центрального устройства редактирования системы М-13 

Устройство содержит следующие основные узлы: коммутатор записи; кольцевой сдвигатель записи; векторные операционные регистры; сдвигатель чтения 1; сдвигатель-уплотнитель чтения 2; сумматоры маски уплотнения; местную память.

На вход устройства ЦУР подключены 64-байтовые шины данных из центрального коммутатора М-13, с выходов устройства выдаются 64-байтовые шины в линейку АЛУ. На управляющие входы ЦУР подключены шины команд записи (5 байтов), чтения (4 байта) и маски (1 байт). Кроме этого, в ЦУР поступают 64-разрядньте шины кода маски.

Коммутатор записи позволяет осуществлять запись информации в регистровую память с одного из трех направлений: с выходов местной памяти, уплотнителя и кольцевого сдвигателя.

Кольцевой сдвигатель записи предназначен для сдвига строки информации влево по кольцу на 0-63 байта для записи в операционные регистры из центрального коммутатора М-13 [2].

Сдвигатель записи содержит входной регистр и три яруса схем сдвига:
— в ярусе 1 производится сдвиг на 0, 16, 32, 48 байтов;
— ярус 2 сдвигает на 0, 4, 8, 12 байтов;
— ярус 3 сдвигает на 0, 1, 2, 3 байта.

Результирующий сдвиг равен сумме сдвигов трех ярусов. В малой комплектации в ярусе 1 выполняется размножение 16-байтового входного слова с кратностью 4 без сдвига. В средней комплектации в ярусе 1 выполняется размножение 32-байтового входного слова и сдвиг на 16 байтов.

Векторные операционные регистры предназначены для хранения операндов и промежуточных результатов при выполнении команд типа “регистр — регистр” и “регистр — память”. Эта регистровая память содержит шесть регистров каждой по 256 байтов, образующих циклически замкнутый массив, т. е. за последними байтами с номерами 254, 255 следуют байты с номерами 0, 1, 2 и так далее. Каждый регистр организован в четыре строки по 64 байта. Операционные регистры обеспечивают три обращения в каждом такте: два чтения операндов и одну запись результата. Формат обращения зависит от модели: 16, 32 или 64 байта. Начало чтения, а также начало и конец записи указываются в инструкциях с дискретностью до байта.

На выходе операционных регистров установлены два яруса коммутаторов чтения. В первом ярусе коммутаторов, общем для чтений 1 и 2, выбирается по одной строке 64 байта из каждого регистра. Коммутаторы чтения второго яруса разделены, и каждый производит выбор строки из одного регистра. Структура операционных регистров позволяет выполнить запись “змейкой” [3], Т. е. одновременно записать информацию в правую и левую части i-й и (i+1)-й строк под управлением байтовой маски записи, что позволяет обеспечить плотную упаковку информации в регистре.

Сдвигатель чтения 1 предназначен для согласования формата чтения (64 байта) с форматом операций в АЛУ в малой и средней моделях М-13, а также для сдвига влево в этих моделях.

Сдвигатель-уплотнитель чтения 2 [4] предназначен для выполнения уплотнения информации чтения 2, а также для кольцевого сдвига вправо второго операнда, читаемого из операционных регистров, в операциях типа “регистр — память”. Результат уплотнения формируется следующим образом. Каждому байту исходного информационного массива соответствует 1 быт маски. В исходном массиве выделяются все байты, которым в маске соответствуют единицы, и эти байты уплотняются влево с сохранением исходного порядка следования. Те байты, которым в маске соответствуют нули, уплотняются влево с изменением исходного порядка следования на обратный пример уплотнения строки длиной 8 байтов:

исходная информация, байты 0 —7 ИБО—7
маска уплотнения, разряды 0—7 М0—7=01101001
начало уплотнения, номер байта Н0—2=000
результат уплотнения, байты 0—7 РБО—7=ИБ 1, 2, 4, 7, 6, 5, 3, 0.

При уплотнении массива в каждом такте производится уплотнение 64-байтовой строки. Начало уплотнения определяется общей суммой единиц масок всех предыдущих тактов уплотнения. Уплотнитель 2 имеет матричную структуру и содержит два яруса локальных уплотнителей 8-байтовьтх групп, в первом ярусе производится уплотнение по горизонтальным группам матрицы, во втором ярусе — уплотнение по вертикальным группам. Кольцевой сдвиг выполняется как частный случай уплотнения, при этом в маске устанавливаются все единицы, а начало уплотнения определяется величиной сдвига вправо.

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

Сумматоры маски уплотнения [5] предназначены для формирования вложенных сумм “единиц” при многотактном уплотнении массивов, длина которых превышает формат уплотняющей сети. Вложенные суммы определяют границы начала уплотнения для элементарных уплотнителей групп, общая сумма “единиц” маски определяет маску п адрес записи результата уплотнения в регистровую память.

Местная память предназначена для временного хранения информации, подлежащей эвакуации во время программных прерываний в ЭВМ М-13. Запись результатов из операционных регистров в местную память производится через шины чтения 1, чтение из местной памяти в операционные регистры выполняется через коммутатор записи. Формат чтения и записи в местную память равен 64-байтовой строке. Емкость местной памяти 256 строк. Объем информации одного уровня прерывания составляет 32 строки, что позволяет организовать 8 уровней прерывания.

Работа устройства ЦУР организована следующим образом. В каждом такте центральное устройство управления ЭВМ М-13 выдает три синхронных потока команд, интерпретирующих инструкции программы:

- команды чтения для управления коммутаторами чтения 1 и 2, режимами работы сдвигателя чтения 1, сдвигателя-уплотнителя 2, а также для управления чтением и редактированием операндов из памяти операционных регистров;
- команды записи для управления кольцевым сдвигателем записи, коммутатором записи, адресами записи, которые позволяют выполнять редактирование и запись результата в регистровую память;
- команды маски для управления конвейером обработки маски уплотнения.

Одновременно с командой маски на входы ЦУР в каждом такте из устройства центрального управления поступает код маски длиной 64 разряда.

Для уплотнения массива под маской используются команды чтения и команды маски. Уплотнение выполняется сдвигателем-уплотнителем 2, который в каждом также производит чтение и уплотнение б4-байтовой строки с одновременным кольцевым сдвигом результата уплотнения на 0-63 байта. Сдвиг необходим для формирования плотного массива в результате многотактного уплотнения. Запись результатов частичных уплотнений, получаемых в каждом такте работы уплотняющей сети, выполняется под управлением байтовой маски записи, которая является функцией от количества единиц, содержащихся в маске уплотнения.

Конвейер обработки маски имеет глубину два такта и содержит два яруса аппаратуры. Управление ярусами формируется путем преобразование команды маски в три микрокоманды, Каждая микрокоманда управляет одним ярусом аппаратуры. В результате работы конвейера маски формируются сигналы управления уплотнителем.

В режиме сдвига сдвигатель-уплотнитель 2 производит выравнивание операндов, а также согласование форматов для разных моделей М-13. Это выполняется путем размножения операнда с одновременным кольцевым сдвигом.

Операция транспонирования состоит в перестановке пар (байтов, двухбайтовых полуслов или четырехбайтовых слов), при этом первый элемент переставляется с последним, второй с предпоследним и т. д. Транспонирование строки информации производится с помощью сдвигателя-уплотнителя 2 при подаче маски “все нули”.

Для организации конвейера режима выполнения команд типа “регистр — регистр” используется трехадресная память операционных регистров с одновременным чтением двух операндов и записью одного результата. Команды записи, чтения и маски поступают в ЦУР в каждом такте. Глубина конвейера (время выполнения команды) составляет два такта. Соответственно аппаратурные средства конвейера разделены на два временных яруса. В тот промежуток времени, когда в первом ярусе выполняется первый такт поступившей команды, во втором ярусе конвейера выполняется второй такт предыдущей команды.

При выполнении команд типа “регистр — память” первый операнд читается из операционных регистров, а второй поступает в АЛУ из основной памяти системы. Информационные магистрали основной памяти М-13 не имеют аппаратуры для кольцевого сдвига. Поэтому при чтении двух операндов из операционных регистров и основной памяти второй операнд в общем случае денормализован относительно первого, т. е. имеет кольцевое смещение. Поэтому для правильного выполнения вычислительных операций в командах типа “регистр — память” необходимо произвести предварительное выравнивание путем смещения первого операнда на величину кольцевого смещения второго операнда. Результат операции денормализован на ту же величину смещения и требует “обратного” смещения перед записью в операционные регистры. Для этого сдвигатель записи производит кольцевой сдвиг результата.

В малой и средней моделях М-13 редактирование производится на максимальном формате 64 байта. При этом кольцевой сдвигатель записи и коммутатор чтения 1 дополнительно выполняют функцию согласования форматов данных памяти и линейки АЛУ. В этом случае сдвигатели чтения 1, 2 выполняют размножение и сдвиг операндов в зависимости от кода модели.

В режиме прерывания производится эвакуация информации из операционных регистров в местную память, всего 32 строки форматом 64 байта. Время эвакуации определяет реакцию системы на прерывание. По окончании режима прерывания выполняется возврат информации из местной памяти в регистры.

Заключение

Благодаря широкому параллелизму в устройстве ЦУР достигнута высокая производительность редактирования. В максимальной модели ЭВМ М-13, основной формат которой составляет 64 байта, на частоте 3,3 Мгц пиковая производительность редактирования составляет 600 млн. оп/с над однобайтовыми операндами. Введение мощной системы редактирования массивов позволяет существенно повысить реальную производительность ЭВМ М-13.

Использование редактирующих структур с высокой степенью однородности дало возможность реализовать устройство ЦУР с помощью ограниченной номенклатуры логических блоков и ячеек. Наконец, слабая связанность основных узлов устройства ЦУР позволила преодолеть ограничения по количеству контактов и плотности монтажа и получить высокий коэффициент заполнения ячеек микросхемами. В результате конструктивный объем устройства снижен до минимума. Устройство ЦУР размещается в двух типовых шкафах ЭВМ М-13.

Литература

  1. Алгоритмы, математическое обеспечение и архитектура многопроцессорных вычислительных систем // Под ред. А. П. Ершова. — М: “Наука”, 1982. — с. 16-22.
  2. А. с. 86428.1 СССР, МКИ3 G 06 F 7/38. Устройство для сдвига // М. С. Белков, Е. А. Братальский. и Б. А. Людоговский (СССР). — № 2857267/18-24; Заявлено 21.12.79; Опубл. 15.09.81. Бюл. № 34. -2 с.
  3. Карцев М. А. Вопросы построения многопроцессорных вычислительных систем // Вопросы радиоэлектроники. Сер. ЭВТ. — 1970. — Вып. 5-6. — с. 3-19.
  4. А. с. 978140 СССР, МКИ3 G 06 F 7/00. Устройство для уплотнения информации // М. С. Белков, Е. Л. Братальский, М. А. Карцев (СССР). № 3242528/18-24; Заявлено 03.02.81; Опубл. 30.11.82, Бюл. 44.- 1 с. 
  5. А. с. 913363 СССР, МКИ3 G 06 F 5/00. Устройство для шифрации единиц и нулей в n-разрядном двоичном коде // М. С. Белков, Е. А. Братальский, Б. А. Людоговский (СССР). — 2877454/18-24; Заявлено 01.02.80; Опубл. 15.03.82. Бюл. 10. — 1 с. 

Статьи об ЭВМ М-13 
Сборник “Вопросы радиоэлектроники”, серия “Электронная вычислительная техника”, выпуск 10, 1990 г.
Перепечатывается с разрешения авторов.
Статья помещена в музей 28.04.2007 г.