Вычислительная машина М-10
(Представлено академиком B.C. Семенихиным 20 IX 1978)
М. А. Карцев
Вычислительная машина М-10 представляет собой многопроцессорную систему синхронного типа. Ее среднее быстродействие превышает 5 млн. операций в секунду, объем внутренней памяти равен 5 мегабайтам (1 310 720 слов). Операционная система обеспечивает пользователям, работающим в интерактивном (диалоговом) режиме по разделению времени, доступ к трансляторам и средствам отладки программ на алгоритмических языках, обращения на логическом уровне к внешним устройствам, обращения к стандартным процедурам, использование в качестве готовых модулей загрузки программ из состава библиотеки типовых программ (линейная алгебра, аппроксимация функций, квадратуры, интегрирование обыкновенных дифференциальных уравнений и уравнений в частных производных и др.).
Машина оперирует с числами трех форматов: полуслово (16 двоичных разрядов), слово (32 разряда), двойное слово (64 разряда). Имеется также неполный список операций над 128-разрядными числами. 16-разрядные числа являются всегда числами с фиксированной запятой — целыми или дробными. 32-разрядные и 64-разрядные числа могут быть как с фиксированной запятой, целыми либо дробными, так и с плавающей запятой (8 двоичных разрядов порядка и соответственно 24 или 56 двоичных разрядов мантиссы).
Основная процессорная часть машины состоит из двух программно перестраиваемых линеек процессоров. Каждая линейка в зависимости от кода операции представляет собой либо восьмерку 16-разрядных процессоров, либо четверку 32-разрядных процессоров, либо пару 64-разрядных процессоров, выполняющих одну и ту же операцию (разумеется, над разными данными). Другая линейка процессоров может одновременно выполнять такую же или другую операцию. Определенные коды операции собирают все процессоры линейки в единый векторный процессор. Например, при выполнении операции “скалярное произведение” в линейке процессоров в течение одного такта выполняется попарное перемножение восьми пар 16-разрядных чисел или четырех пар 32-разрядных чисел, суммирование полученных произведений между собой и с суммой, накопленной в предыдущем такте.
Одновременно с выполнением операций над числами в основных процессорных линейках вырабатывается до 5 строк булевских переменных, в которых каждый двоичный разряд соответствует определенному признаку, относящемуся к операндам, участвующим в операции, или к результату операции. Например, при выполнении сложения (восьми пар 16-разрядных чисел или четырех пар 32-разрядных чисел или двух пар 64-разрядных чисел) вырабатываются строки булевских переменных, содержащие соответственно по 8, или по 4, или по 2 двоичных разряда: w — признаки переполнения, е - признаки равенства между собой слагаемых, m - признаки того, что первое слагаемое в данной паре оказалось больше второго, г - признаки равенства результата нулю, s — признаки получения отрицательного результата.
Эти признаки — непосредственно или через память — могут передаваться в специальный процессор обработки строк булевских переменных, действующий одновременно с линейками основных процессоров и способный выполнять полный набор логических операций над булевскими переменными. Строки булевских переменных, полученные непосредственно при выполнении основных арифметических или логических операций над числами, или в результате работы указанного специального процессора, или прочитанные из памяти, могут далее использоваться: для организации условных передач управления, либо в качестве “масок” для выполнения основных арифметико-логических операций. Если в коде операции для основной линейки процессоров указывается, что операция должна быть выполнена под маской, то в линейке блокируются те процессоры, для которых соответствующие разряды маски содержат нули (а при выполнении операции под “инверсной” маской блокируются процессоры, для которых соответствующие разряды маски содержат единицы). Механизм масок является важным инструментом эффективной организации параллельных вычислений. Еще один специализированный процессор, входящий в состав центральной части машины, предназначен для выполнения индексных операций (о чем говорится ниже).
Внутренняя память машины представлена устройствами трех типов: главная оперативная память объемом 512 кбайт (131 072 слова), главная постоянная память того же объема, предназначенная в основном для хранения резидентных частей операционной системы, и большая оперативная память объемом 4 Мбайта (1 048 576 слов). С точки зрения пользователя все эти устройства являются единым полем памяти, хотя с центральной процессорной частью непосредственно сообщаются только главная оперативная и главная постоянная память. Операционная система совместно с автоматом обмена обеспечивает своевременную подкачку необходимых сегментов из большой памяти в главную. Свопинг (двусторонний обмен) между главной и большой памятью идет со скоростью около 20 Мбайт/с в каждую сторону и одновременно со счетом в центральном процессоре. Что касается внешнего обмена, то он идет со всем объемом внутренней памяти: как с главной памятью, так и с большой.
Если учесть, что квант времени, отводимый каждому пользователю при работе по разделению времени, равен 20-80 мс, то характеристики центрального Процессора, главной и большой памяти оказываются согласованными [1].
Вся внутренняя память охвачена единой системой виртуальной адресации. Для этого исполнительный адрес обращения к памяти содержит 22 двоичных разряда (адресация производится с точностью до полуслова, т.е. до пары байтов).
В составе инструкции адрес содержит 30 разрядов: 4 разряда — номер регистра, используемого в качестве базы, 4 разряда — номер регистра, используемого в качестве индекса, и 22-разрядное смещение. В качестве базовых и индексных используются 16 специальных регистров — так называемых “адресных модификаторов”, сообщающихся с памятью и с упоминавшимся ранее специальным процессором для выполнения индексных операций. Формирование исполнительного адреса обращения к памяти построено по аналогии с IBM 360/85 и IBM 370 [2]. Оно начинается с суммирования содержимого базового регистра и, если необходимо, индексного регистра с величиной смещения, в результате чего формируется математический (виртуальный) адрес. Далее математический адрес проходит через аппарат дескрипторов, где производится подмена старших разрядов математического адреса, в результате чего образуется физический (исполнительный) адрес обращения к памяти. Аппарат формирования математического адреса принадлежит полностью пользователю (в течение отводимых ему квантов времени), аппарат дескрипторов — операционной системе. С аппаратом дескрипторов связаны также цепи защиты памяти.
Важной особенностью машины является широкий и переменный формат обращения к главной памяти: за одно обращение из нее может быть выбрано от 2 до 64 байтов [3].
Инструкции, по которым работает центральное устройство управления, тоже имеют переменный формат — от 4 до 24 байтов. Если инструкция полная, то за одни машинный такт (1,8 мхс) выполняются: одна операция устройства управления (может быть передача управления, или передача командного слова каналу, или индексная операция и т л.), две арифметико-логические операции (в двух линейках основных процессоров), два обращения к главной памяти за операндами по разным адресам и еще одно (третье) обращение за следующей инструкцией, а также, возможно, обмен массивами информации с другими машинами комплекса, о чем сказано дальше. Одновременно с инструкцией из памяти может быть выбран также непосредственный операнд, формат которого, однако, в сумме с форматом инструкции не может превышать максимального формата обращения к памяти.
Внешний обмен информацией ведется через мультиплексный канал с суммарной пропускной способностью около 7 Мбайт/с. Мультиплексный канал имеет 24 дуплексных подканала, к каждому из которых в свою очередь может быть подсоединено до 6 однотипных внешних устройств. В базовый комплект машины в качестве периферийных устройств входят терминалы, построенные на основе пишущей машинки и перфолентного оборудования, алфавитно-цифровые строкопечатающие устройства, перфокартное оборудование и пишущая машинка инженерного пульта, с помощью которой ведется аппаратный журнал машины. Через дополнительные устройства сопряжения к каналу могут подключаться также терминалы на основе штрихового дисплея с клавиатурами и световым пером, магнитные ленты и диски, и другие периферийные устройства ЕС ЭВМ. Канал имеет собственную буферную память объемом в 64 кбайт, в которой хранятся также командные слова канала, но может непосредственно адресоваться и к любым ячейкам внутренней памяти машины.
Наряду с выполнением вычислений в центральной части машины и обменом информацией между главной и большой памятью, внешний обмен, ведущийся через мультиплексный канал, представляет собой как бы третий параллельный по времени процесс, идущий в машине одновременно с первыми двумя. Четвертым и пятым параллельными процессами, происходящими одновременно с тремя указанными, являются контроль специальными цепями исправности аппаратуры машины и контроль программ пользователей (проверка отсутствия в них привилегированных операций, нарушений защиты памяти и т.д.). Взаимодействие этих независимых процессов осуществляется через многоуровневую систему прерывания программ, являющуюся частью центрального устройства управления. На ее свободные входы могут приниматься также внешние сигналы (до 32).
В машине предусмотрены цепи, позволяющие объединить до 7 машин М-10 в единый синхронный комплекс; работающий от общего тактового генератора. В каждом такте работы машина, работающая в комплексе, может выдать на свои выходные шины массив данных в 64 байта и принять массив такого же размера от любой другой машины комплекса. При этом адресация машин виртуальная [3]. Специальный аппарат дескрипторов связей оперативно подменяет виртуальный номер машины, от которой принимается информация, на физический номер. Это должно позволить при необходимости формировать внутри синхронного комплекса несколько подкомплексов. Однако возможность создания синхронных комплексов пока нигде не была реализована, а регистры связи на практике используются в качестве дополнительной сверхоперативной памяти.
Структура М-10 обеспечивает расчетное быстродействие при решении задач, обладающих естественным параллелизмом [4, 5], т.е. состоящих в основном в операциях над многомерными векторами или над функциями, заданными своими значениями на множестве дискретных значений аргумента, и т.п. В определенных случаях, когда при решении задач такого рода требуются большие объемы памяти, реальное быстродействие М-10 может существенно превышать расчетное значение.
Элементной базой основных логических цепей М-10 являются микросхемы серии 217. Оперативные запоминающие устройства обеих ступеней построены на ферритовых сердечниках с наружным диаметром 1 мм, постоянная память конденсаторного типа, со сменными металлическими перфокартами в качестве носителя информации. Питание машины осуществляется через преобразователь напряжения 3ф 220В 50 Гц в напряжение 3ф 220В 400 Гц мощностью в 100 кВА; вторичные источники питания вмонтированы непосредственно в устройства машины. Первые промышленные образцы машины показали высокие эксплуатационные характеристики.
Разработка машины является в основном оригинальной. Ряд структурных, технических и конструктивных решений защищены авторскими свидетельствами СССР на изобретения и промышленные образцы.
Литература
- М.А.Карцев, Архитектура цифровых вычислительных машин, М, “Наука”, 1978.
- Г.Катцан, Вычислительные машины системы 370, М., “Мир”, 1974.
- М.А. Карцев, Вопр. радиоэлектроники, сер. ЭВТ, в. 5-6 (1970).
- В.М. Глушков, Ю.В. Капитонова А.А. Летичевский, Кибернетика, № 6 (1976).
- Е.В. Гливенко, Программирование, № 1 (1977).
Статьи об ЭВМ М-10
Доклады Академии наук СССР 1979. Том 245, № 2
Материал предоставлен НИИ Вычислительных Комплексов.
Статья помещена в музей 04.05.2007 г.