Устройство управления ЭВМ М-10
М. А. Карцев, Л. Я. Миллер, Г. В. Носаль, Л. Д. Баранов,
Г. И. Смирнова, Б. И. Калягин, В. Н. Затогина, В. М. Кузьмин,
Р. А. Корнеев, Л. З. Либуркин, С. А. Солобаев
Описаны машинный язык команд, операции управления и синхронизация выполнения команд — основные функции устройства управления ЭВМ М-10; описан также функциональный состав устройства управления, приведены конструктивные характеристики.
Машинный язык команд ЭВМ М-10. Команда машинного языка ЭВМ М-10 имеет слоговую структуру, переменный состав и формат и может содержать до 6 слогов четырех типов:
СУУ — слог устройства управления, присутствует в команде обязательно;
САУ/1,2 — слоги арифметических устройств;
СЗУ/1,2 — слоги запоминающих устройств;
СОН слог обмена информацией.
Любой слог содержит 32 информационных разряда. Команда может сопровождаться непосредственным операндом форматом от 1 до 8 слов.
Слог устройства управления содержит следующие поля:
СУУ = {ФК, ПрЦ, код УУ} ,
где
ФК — 8разрядное поле формата команды;
ПрЦ — 8-разрядное поле управления приемом во входной регистр устройства управления Ц;
код УУ — 16-разрядное поле управления операциями УУ.
Поле ФК содержит:
ФК = {САУ/1, САУ/2, СЗУ/1, СЗУ/2, СОИ, ФНО} ,
где
САУ/1,2, СЗУ/1,2, СОИ — 1-биттовые признаки наличия в команде соответствующих слогов;
ФНО — 3-разрядный код формата непосредственного операнда (в словах). Код “000” используется для указания формата в 8 слов.
Поле ПрЦ управляет приемом в 64-байтный входной регистр устройства управления Ц.
ПрЦ = {НО, ДС},
где
НО 3-разрядное поле кода источника операнда регистра Ц;
ВД — строка результатов арифметических операций;
АМ — строка регистров адресных модификаторов;
Н — строка регистра обмена с другими ЭВМ синхронного комплекса;
ЗУ/1, 2, 3 — строка информации, прочитанной по СЗУ/1,2, или непосредственный операнд.
Таблица 1
Код ИО | 000 | 001 | 010 | 011 | 100 | 101 | 110 | 111 |
Источник операнда | Ц | ВД | «0» | АМ | Н | ЗУ/1 | ЗУ/2 | ЗУ/3 |
Форматы всех строк, кроме ЗУ/3, равны 64 байтам (16 словам).
ДС — 5-разрядное поле кода кольцевого сдвига влево операнда на входе регистра Ц при приеме в регистр (с точностью до полуслова).
Поле “код УУ” Управляет выполнением операций УУ.
Код УУ = {Чт ЗУ/3, резерв, операция, признаки, резерв},
где
Чт ЗУ/3 признак наличия в команде непосредственного операнда;
операция* — 4-разрядное поле кода операции устройства управления;
признаки* — 9-разрядное поле признаков операций УУ;
резерв — 1-разрядные поля.
Слоги арифметического устройства содержат следующие поля:
САУ/1 = {Пр1А, Пр1С. код АУ1},
САУ/2 = {Пр2А, Пр2С, код АУ2},
где
ПрА, ПрС — 8-разрядные поля управления приемом во входные регистры арифметических устройств А и С. Формат каждого из регистров А и С равен четырем словам;
код АУ — поле управления выполнением арифметических операций.
Все поля Пр содержат:
Пр = {ИО, ДС} ,
где
ИО — 3-разрядвое поле источников операндов для арифметических операций;
ДС — 5-разрядное поле величины кольцевого сдвига влево при приеме операнда во входной регистр арифметического устройства (в полусловах).
Таблица 2
Код ИС | 000 | 001 | 010 | 011 | 100 | 101 | 110 | 111 |
Источник операнда | — | ВД | «0» | — | Н | ЗУ/1 | ЗУ/2 | ЗУ/З |
Все поля “код АУ” содержат:
Код АУ = {операция, В, Д, формат операции, маска},
где операция — 6-разрядное поле кода операций АУ;
В, Д, — 1-разрядные поля управления приемом в регистры В, Д результата арифметической операции;
формат операции — 4-разрядное поле, указывающее тип и формат данных (фиксированная или плавающая запятая; полуслово, слово, двойное слово);
4-разрядное “поле маска” содержит поля:
маска = { ПИ, NR , П},
где NR — 2-разрядный номер регистра маски, код “0” соответствует отсутствию маскирования; регистр маски имеет формат 16 разрядов:
П — номер байта регистра маски, П = 0 — левый байт, П= 1 — правый;
ПИ — прямо — инверсно, ПИ = 0 — в качестве маски берется прямой код регистра маски, ПИ = 1 обратный.
Содержимое используемой маски разрешает или запрещает выполнение операций над различными парами операндов; каждый бит соответствует своему полуслову.
Слоги запоминающих устройств содержат следующие поля:
СЗУ = (чтение, запись, И, Б, смещение},
где
чтение, запись — операции запоминающих устройств (возможны одновременное считывание прежнего содержимого и запись нового);
И, Б — 4-разрядные поля номера регистра адресного модификатора, используемого в качестве индекса или базы соответственно;
И = 0 — соответствует отсутствию индексации;
смещение — 22-разрядное поле (адресация с точностью до полуслова).
После суммирования по модулю 2 22 смещения с содержимым регистра базы и, если необходимо, регистра индекса формируется 22- разрядный математический адрес, состоящий из 7-разрядного номера блока, 3-разрядного номера листа и 12-разрядного номера начального полуслова в листе (всего за одно обращение выбирается массив до 32 полуслов, то есть 64 байтов)
Номера блоков 120 — 127 соответствуют обращению по физическим адресам к 8 блокам постоянной памяти первого уровня; номера 112 — 119 соответствуют обращению по физическим адресам к 8 блокам памяти первого уровня, а номера 0 — 111 присвоены блокам математической памяти.
Для обращения к математической памяти в устройстве аппаратно реализованы двухуровневые дескрипторные таблицы, входящие в регистры строки ДТ. Они состоят из регистров таблиц блоков, представляющих ассоциативную память на 8 (по числу независимых блоков в ОЗУ) ячеек, и регистров таблиц страниц, упорядоченных по математическим номерам листов.
Слог обмена информацией содержит следующие поля:
СОИ = {резерв, ПрF, ПрКШЗ/1, ПрН, ПрКШЗ/2},
где
ПрКШЗ/12 — 13-разрядные поля, которые управляют источником операнда, сдвигом и форматом операнда на запись;
Пр F — 2-разрядное поле источника операнда для регистра синхронного обмена F между ЭВМ комплекса;
ПрН — 3-разрядное поле источника операнда для входного регистра Н системы синхронного обмена.
Таблица 3
Код ПрF | 00 | 01 | 10 | 11 |
Источник операнда | — | ВД | ЗУ/1 | ЗУ/2 |
Таблица 4
Код ПрН | 000 | 001 | 010 | 011 | 100 | 101 | 110 | 111 |
Источник операнда | — | F1 | F2 | F3 | F4 | F5 | F6 | F7 |
F 1, F 2, … , F 7 — выходные регистры синхронного обмена других машин комплекса, причем в поле ПрН закодированы их математические номера, а физические номера машин получаются в процессе интерпретации с помощью так называемых дескрипторов связей.
Таблица 5
Код ПрН | 000 | 001 | 010 | 011 | 100 | 101 | 110 | 111 |
Источник операнда |
— | ВД | Ц | АМ | Н | ДТ | У | — |
Поля ПрКШЗ содержат:
ПрКШЗ = {ИО, ДС, ФО},
где
НО — 3-разрядный код источника операнда;
ДТ — строка регистров дескрипторных таблиц;
У — строка функциональных регистров устройства управления; формат строк ДТ и У равен 32 полусловам;
ДС — 5-разрядный код величины кольцевого сдвига влево операнда, поступающего на запись (в полусловах);
ФО — 5-разрядное поле формата записи (в полусловах), при ФО = 0 формат операнда при записи равен 32 полусловам.
Список операций устройства управления. Всего устройство управления имеет 16 кодов групп операций, из них использованы 11. Наименования групп операций приведены в табл. 6.
Таблица 6
Код поля операция УУ |
Наименование группы операций |
0001 | Операции преобразования регистров признаков |
0010 0011 |
Операции преобразования регистров строки адресных модификаторов |
0100 | Формирование условия 1 передачи управления |
0101 0110 |
Операции записи информации в строки регистров А, У, ДТ, F |
0111 | Группа операций комплекса |
1000 1001 |
Операции возврата |
1010 | Операции передачи управления и диагностические операции |
0000 | Операции нулевой группы |
Конкретная операция УУ задается 9-разрядным полем “признак УУ”, которое для разных групп операций расшифровывается различно. Для некоторых операций требуются дополнительные указания в непосредственном операнде.
Операции первой группы состоят в преобразовании содержимого трех 16-разрядных регистров маски 1 R , 2 R и 3 R . Эти преобразования могут выполняться, если необходимо, одновременно во всех трех регистрах и независимо друг от друга или в любой паре из них (и тоже независимо друг от друга), либо только в одном регистре. Эти преобразования состоят либо в приеме в регистр нового содержимого из регистра Ц (обычно — из памяти через регистр Ц), либо в формировании в каждом разряде регистра той или иной сложной логической функции фактически от 9 аргументов: предыдущего содержимого данного регистра в двух других регистров R , 5 строк признаков, формируемых в основных арифметических устройствах ( w, z, е, м, s ), и поразрядной маски, содержащейся в непосредственном операнде раздельно для каждого из преобразуемых регистров R . Каждый разряд маски указывает, должен ли преобразовываться соответствующий разряд регистра R : если в маске единица, то должен, если нуль — сохраняет прежнее состояние.
Строки признаков w, z, е, м, s , содержат соответственно признаки переполнения, равенства результата нулю, равенства операндов между собой, признак того, что первый операнд больше второго, и признак получения отрицательного результата операции.
Операции второй и третьей групп состоят в преобразованиях регистров АМ (адресных модификаторов), выработке условий передачи управления по содержимому адресных модификаторов (так называемое “Условие 2”) и в условных передачах управления в зависимости от “Условия 2”.
Преобразование АМ может предусматривать либо засылку в АМ новой информации из регистра Ц (обычно из памяти через регистр Ц), либо суммирование по модулю 2 22 содержимого 22 младших разрядов АМ с “малым шагом” или с “большим шагом”. “Малый шаг” может иметь величину от -255 до +255 и располагается в старших разрядах своего АМ. “Большой шаг” имеет величину от — (2 22 -1) до +(2 22 -1) и читается из операнда. Если необходимо, два одинаковых или разных суммирования выполняются одновременно и независимо друг от друга в двух АМ с последовательными номерами, а также одновременно со сравнением содержимого одного из этих АМ с эталоном. Эталон прочитывается из непосредственного операнда, причем в сравнении участвуют 22 младших разряда АМ и 22 младших разряда эталона, а старшие разряды эталона указывают, при каком исходе сравнения в “Условие 2” устанавливается единица: если содержимое АМ окажется больше эталона, меньше эталона или равно ему.
Передачи управления могут быть “неполными” или “полными”: когда в адресе инструкции меняется только смещение либо когда меняются одновременно и поля индекса и базы.
Операции четвертой группы состоят в выработке так называемого “Условия 1”. (По этому условию также возможны условные передачи управления — см. операции 10 группы.) В формировании “Условия 1” участвуют в любых сочетаниях регистры 1 R , 2 R , 3 R , а также регистр индикаторов программы (ИП), который для некоторой программы может содержать до 16 разрядов, и о котором сказано ниже. Над всеми разрядами регистров, участвующих в формировании “Условия 1”, выполняется операция конъюнкции или дизъюнкции. Полученная таким образом булевская переменная либо принимается непосредственно в триггер “Условия 1”, либо к ней, если необходимо, предварительно присоединяется по конъюнкции или по дизъюнкции предыдущее значение “Условия 1” пли его инверсия.
Операции пятой и шестой групп производят передачу информации из регистра Ц (обычно из памяти через регистр Ц) в одну из строю АМ, У, ДТ, F . Все эти “строки” содержит по 64 байта (16 слов). В “строке” АМ сгруппированы 16 регистров адресных модификаторов; в “строке” У — функциональные регистры устройства управления (регистр адреса команды, регистры 1 R , 2 R , 3 R , триггеры “Условия 1” и “Условия 2” и т. д.); в “строке” ДТ — дескрипторные таблицы памяти, дескрипторы программных индикаторов и дескрипторы связей синхронного комплекса, а “строка” F это выходной регистр машины для передачи информации другим машинам синхронного комплекса. Поскольку при выполнении приема в некоторую “строку” может потребоваться заполнение только ее части, в поле “признаков УУ” для операций пятой и шестой групп содержатся также номер первого из заполняемых слов “строки” и формат приема информации, тоже выраженный в словах.
В сочетании с теми возможностями, которые дают слоги СЗУ/I, СЗУ/2 и СОИ (см. первый разд.), рассматриваемые операции УУ позволяют при прерывании программы произвести в две команды (за 2 такта) пересылку в УУ из памяти фотографии запускаемой задачи, а на ее место поместить в память фотографию прерванной задачи.
Операции седьмой группы предназначены для организации работы синхронного комплекса из нескольких (до 7) машин. Среди этих операций — передача другим машинам сигналов синхронного прерывания с одновременной пересылкой им начальных адресов прерывающих программ либо с взведением в них определенных индикаторов программы, либо с вызовом супервизора. Каким именно машинам должен быть передан сигнал прерывания, указано в поле “признаки УУ” 7 битами маски; при этом указываются математические номера прерываемых машин, а их физические номера получаются в ходе интерпретации с помощью дескрипторов связей.
К операциям седьмой группы отнесена также операция “Канал” (передача мультиплексному каналу командного слова).
Операции восьмой, девятой и десятой групп состоят в операциях безусловной и условной (по “Условию 1”) передач управления, “возвратах” управления с одновременной частичной перенастройкой, если необходимо, системы прерывания программ, а также в вызове в специальный регистр УУ и последующем обнулении содержимого регистров ОШ, имеющихся во всех устройствах машины и фиксирующих результаты работы цепей аппаратного контроля устройств.
Как и условные передачи управления по “Условию 2” (см. операции второй и третьей групп), безусловные и условные но “Условию 1” передачи управления могут быть “полными” или “неполными”. Дополнительно в инструкции безусловной передачи управления или передачи управления по “Условию 1” может быть указание о запоминании в специальном магазине адресов (стеке) адреса возврата (т. е. адреса инструкции, следующей за инструкцией передачи управления). Магазин адресов имеет глубину в 64 адреса ню организован по принципу EILO . Естественно, что при выполнении условных передач управления с запоминанием в магазине адреса возврата действительная передача адреса возврата в магазин происходит только в том случае, когда условия для передачи управления выполнены.
Операция “возврат” состоит в передаче управления по адресу, хранящемуся в верхней ячейке магазина (т. с. засланному туда последним), причем этот адрес из магазина удаляется, а все оставшиеся в нем адреса подвигаются на одно место вперед. Та же операция “возврат” используется при возврате управления от программы, вошедшей по жесткому (активному) прерыванию, к прерванной ею программе: при выполнении жестких прерываний адреса возврата запоминаются в том же магазине адресов. Так как жесткие прерывания вызывают изменения состояния системы прерываний, операции “возврат” могут выполняться одновременно с частичной перенастройкой системы прерываний; имеется возможность выполнить фиктивный “возврат” — без реального возврата управления, но только с частичной перенастройкой прерываний.
Эта перенастройка состоит в следующем. Система прерываний имеет 5 уровней приоритета жестких прерываний и соответственно 5 триггеров, запоминающих состояние системы. Когда срабатывает прерывание по одному из этих уровней, автоматически взводится соответствующий триггер и запрещает дальнейшие прерывания сигналам с таким же или более низким уровнем приоритета.
Высший (5-й) приоритет принадлежит сигналам вызова супервизора, и соответствующий триггер выполняет дополнительную функцию по установлению привилегированного режима. Некоторые из перечислявшихся ранее операций (например, засылка информации в “строку” ДТ, в некоторые из функциональных регистров “строки” У и др.) могут выполняться только в привилегированном режиме. Сброс триггера 5-го уровня приоритета выполняется только привилегированной операцией 9-й группы “супервизорный возврат”. Остальные 4 триггера, соответствующие 1-му — 4-му уровням прерывания, могут менять или сохранять свои состояния в зависимости от указаний в обычной инструкции “возврат”, принадлежащей 8-й группе.
Операции нулевой группы весьма разнородны. В эту группу входят отсутствие операции УУ, операция включения и выключения счета “в две руки”, операция специального приема на входную сборку Н информации от других машин синхронного комплекса (когда входная “строка” Н не является информацией, переданной одной какой-нибудь машиной комплекса через свой выходной регистр F , но собирается из частей регистров F всех машин) и операция установки приоритетов в системе прерываний.
Счет “в две руки” используется либо в тестовых режимах, либо на наиболее ответственных участках программы и состоит в том, что в каждом такте производится сравнение состояний выходных регистров АУ/1 и АУ/2 на полное совпадение; в случае несовпадения вырабатывается сигнал прерывания. В зависимости от того, как построены при этом инструкции (в частности их слоги СЗУ), входная информация в АУ/1 и АУ/2 поступает из одних и тех же ячеек памяти и пишется (из одного из АУ) в одну ячейку либо все рабочие ячейки в памяти дублируются. В первом случае происходит контроль только арифметических устройств, во втором также запоминающих устройств, цепей формирования адресов и т. д. Счет в “в две руки” замедляет работу машины и требует, возможно, удвоенной памяти, зато позволяет выявить сбой в момент его возникновения.
На операции установки приоритетов в системе прерывания остановимся подробнее. Система прерывания ЭВМ М-10 содержит всего 72 триггера-индикатора; восемь из них используются для реакции на внутрисистемные прерывания (таймер, аппаратный контроль а др.), а остальные 64 индикатора входят в строку регистров У. Восемь внутрисистемных индикаторов и 8 первых индикаторов из строки могут вызывать прерывания с пятым уровнем приоритета (вызов супервизора). Какие из указанных индикаторов действительно вызывают супервизор, указывается специальными триггерами “маски супервизора”, состояния которых могут быть изменены только в привилегированном режиме.
4-й уровень приоритета присвоен сигналам прерывания, поступающим от других машин синхронного комплекса.
На 1-м — 3-м уровнях жесткого прерывания либо в качестве индикаторов мягкого (пассивного) прерывания могут работать остальные индикаторы, входящие в “строку” У; в зависимости от того, как использованы первые 8 из них, “свободными” остаются от 56 до 64 индикаторов. “Свободные” индикаторы в качестве системного ресурса распределяются между различными процессами, причем любому процессу может быть выделено не более 16 индикаторов, расположенных подряд. Группа работающих в некоторый момент времени индикаторов задается полем дескрипторов индикаторов (ДИ). Эти индикаторы и образуют во время протекания данного процесса регистр индикаторов программы (ИП), упоминавшийся ранее в связи с рассмотрением операций четвертой группы. В непривилегированном режиме активность каждого из индикаторов программы может быть задана с помощью операций нулевой группы в виде 2-разрядного двоичного кода: 00 — индикатор исполняется только для мягких прерываний; 01, 10 или 11- индикатор вызывает жесткие прерывания соответственно с 1-м, 2-м или 3-м уровнями приоритета. С точки зрения системы, эти прерывания происходят внутри данного процесса.
Если данный процесс прерывается другим процессом (по 4-му или 5-му приоритету), то коды активности программных индикаторов могут быть сфотографированы в память в составе “строки” У, а при возобновлении процесса возвращаются из памяти на свое место. Что же касается самих индикаторов, то они остаются закрепленными за данным процессом все время; внешний сигнал или сигнал от мультиплексного канала и т. п. может прийти на вход такого индикатора и в то время, когда процесс пассивен, а реакция на него произойдет, когда процесс активизируется.
Синхронизация операций . Цикл работы ЭВМ М-10 равен примерно 1,9 мкс. В пределах цикла размещаются две сетки синхросигналов через примерно 0,1 мкс и со сдвигом на 0,05 мкс.
Операции, закодированные в каждом слоге команды машинного языка, выполняются параллельно и независимо. Время выполнения большинства операций равно строго одному циклу. Многоцикловые операции кодируются разными кодами, что обеспечивает возможность прерывания текущей программы в любом цикле выполнения такой многоцикловой операции.
Двухтактными являются операции передачи управления и прерывания программы. В течение двух или трех тактов выполняются также операции, содержащие конфликтующие адреса. Это случаи совпадения номеров блоков в регистре адреса команды, СЗУ/1 и СЗУ/2. На фоне обращений к памяти от центрального процессора может выполняться обмен между первым и вторым уровнями памяти. При обращении к блоку памяти от канала выполнение операций приостанавливается на 1 цикл.
Результаты работы каждого слога могут быть использованы только в следующей команде. Глубина перекрытия выполнения команд машинного языка равна 4.
После выполнения синхронного прерывания обеспечивается синхронное прохождение программ на всех ЭВМ комплекса.
Функциональный состав устройства управления ЭВА? М-1О и конструктивные параметры. Устройство управления содержит узлы для выполнения функций, описанных в первом и втором разделах, а также другие цепи, конструктивно размещенные в шкафу устройства управления. Оно включает следующие функциональные узлы:
- коммутатор регистра программы;
— операнды арифметических устройств;
— строки регистров управления;
— контроль и индикация;
— формирование условия 1;
— преобразование адресов и формирование условия 2;
— распределитель;
— управление оборкой Н;
— генератор импульсных серий;
— прерывание программы;
— останов по совпадению;
— слог управления;
— местное управление;
— управление режимами.
Некоторые из этих узлов даже не упоминалась в предыдущем изложении, хотя и заслуживают подробного рассмотрения (например узел останова по совпадению). Однако ограниченные размеры статьи не позволяют его провести.
Конструктивно устройство управления размещено в типовом для ЭВМ М-10 двухсекционном шкафу, выполнено на микросхемах серии 217 и содержит их около 80 тыс. корпусов.
Литература
- Карцев М. А. Вычислительная машина М-10. В сб.: “Доклады Академии наук СССР”, т. 245, 1979, № 2.
- Карцев М. А. Вопросы построения многопроцессорных вычислительных систем.- “Вопросы радиоэлектроники”, сер. ЭВТ, 1970, вып. 5-б.
- Карцев М. А. Устройство для управления оперативной памятью. — Авт. свид. СССР, № 297070 от 31.07.1969.
- Миллер Л. Я. Запоминающее устройство с произвольной одновременной выборкой переменного массива слов. — Авт. свид. СССР, № 367 456 от 14.04.1974.
- Карцев М. А., Миллер Л. Я., Носаль Г. В. Вычислительная система. - Авт. свид. СССР, № 419 894 от 18.05.1971.
- Карцев М. А., Миллер Л. Я., Носаль Г. В., Смирнова Г. И. Устройство для связи в вычислительной системе. — Авт. свид. СССР, № 314 207 от 28.08.1969.
- Миллер Л. Я. Оценка производительности синхронной ЭВМ с совмещением. — “Вопросы радиоэлектроники”, сер. ЭВТ, 1968, вып. 4.
- Миллер Л. Я. Формирование совмещенной синхронной временной диаграммы.- “Вопросы радиоэлектроники”, сер. ЭВТ, 1971, вып. 9.
- Миллер Л. Я. Взаимодействие процессоров в вычислительной системе. — “Вопросы радиоэлектроники”, сер. ЭВТ, 1972, вып. 5.
- Миллер Л. Я. Системы связи и параллелизм вычислительной работы. — “Вопросы радиоэлектроники”, сер. ЭВТ, 1972, вып. 5.
- Карцев М. А., Миллер Л. Я. Об одном способе динамического разделения оборудования в многопроцессорных вычислительных системах. — “Вопросы радиоэлектроники”, сер. ЭВТ, 1970, вып. 9.
- Карцев М. А., Смирнова Г. И. Устройство для прерывания программ. - Авт. свид. СССР, № 366 473 от 25.09.1970.
Статьи об ЭВМ М-10
Сборник “Вопросы радиоэлектроники”, серия “Электронная вычислительная техника”, выпуск 9, 1980 г.
Перепечатывается с разрешения авторов.
Статья помещена в музей 26.06.2007 г.