книги из ГПНТБ / Королев, Л. Н. Структуры ЭВМ и их математическое обеспечение учебное пособие
.pdfту) следует предоставить машину, внешне не обладающую никакими существенными ограничениями ни по объему адресуемой памяти, ни по числу индексных регистров, пи по количеству возможных операций, с тем чтобы снять с него многочисленные и сложные заботы по укладыва нию в прокрустово ложе технических ограничений есте ственных требований больших задач. Эта философская линия прямо привела к необходимости создания слож ных «думающих» операционных систем, основная функ ция которых — отображать надлежащим образом «вы думанную» машину математика на реальную аппарату ру. Впрочем, этой идеологии в настоящее время придер живаются, по-видимому, все разработчики крупных ЭВМ, и различия в структурах машин скорее всего свя заны с тем компромиссом между ролью аппаратуры и ролью математического обеспечения в общей вычисли тельной системе, который ими принимается. Следует, правда, отметить, что вопрос о том, что должна делать аппаратура и что должно делать математическое обес печение, не может быть решен произвольным, волевым образом. Есть примеры того, как богатые математические одежды не соответствуют бедным аппаратным возможно стям, так же как и примеры того, как богатая аппаратура не снабжена соответствующим математическим обеспе чением.
Список операций машины «Атлас» включает в себя действия над числами с плавающей запятой, действия над числами с фиксированной запятой, целочисленную арифметику над адресными полями (над 24-разрядными числами), команды переходов и организации циклов, команды условных переходов по значению В-регистров и ряд команд работы над байтами для организации про грамм редактирования. Разумеется, в состав команд входит полный набор логических операций и операций сдвигов. При выполнении арифметических и логических операций исполнительный математический адрес в об щем случае получается как сумма кода адреса, указан ного в адресном поле, и содержимого двух индексных ре гистров ВА и Вм, номера которых указаны в соответст вующих полях команды. Числа с плавающей запятой в машине «Атлас» представлены 8-разрядным октальным порядком, включая знак, и 40-разрядной мантиссой, представленной в дополнительном коде.
140
Диапазон представленных чисел, таким образом, укладывается в весьма широкую область 8±12а. Сумматор содержит регистр младших разрядов, тем самым ариф метические действия производятся с 78 двоичными зна ками мантиссы.
Время выполнения операций таково: сложение с пла вающей запятой— 1,61—2,61 мксек; умножение с пла вающей запятой — 4,97 мксек; деление — 10,66—29,80
мксек.
Эти времена даны с учетом времени, затрачиваемого на модификацию, т. е. представляют полное время вы полнения операций.
Среднее время, затрачиваемое только арифметиче ским устройством, таково: сложение — 1,4 мксек; умно жение — 4,6 мксек; деление — 13,6 мксек.
Следует отметить, что адресная арифметика произ водится на отдельном сумматоре, который может ра ботать параллельно с арифметическим устройством.
Рассмотрим основные функции операционной системы «Атлас», которая к моменту своего возникновения (1963— 1964 гг.) была одной из наиболее развитых операционных систем (ОС).
Прежде всего остановимся на функции динамического распределения памяти, которая обеспечила внешний эф фект предоставления памяти одного уровня, несмотря на то что физическая оперативная память у машины «Ат лас» была весьма ограничена (16 тысяч слов для первых образцов). В V-памяти этой машины располагается таб лица соответствия математических страниц их физиче скому расположению. Сформированный после модифи каций исполнительный адрес поступает на регистр ад реса. Старшие 12 разрядов этого адреса представляют собой номер страницы или блока, к которому произво дится обращение.
Очень быстро аппаратно производится сравнение или поиск номера страницы по таблице соответствий, в стро ках которой расположены 12-разрядные номера математи ческих листов, присутствующие в данный момент в опе ративной памяти, и соответствующие им физические но мера листов. Если этот поиск увенчался успехом, то формируется физический адрес и производится обраще ние к ОЗУ за операндом. Если нужной страницы не оказалось в таблице соответствий, то производится
141
прерывание «по неэквивалентности» и вступает в действие управляющая программа распределения памяти. Эта программа обращается к большим таблицам, в которых указано, где на магнитных барабанах расположен иско мый лист (блок) информации, и организует «подкачку» дан ного листа в ОЗУ машины, изменяя при этом содержание аппаратных регистров соответствия. Чаще всего для того, чтобы найденную страницу переслать из вторичной па мяти в ОЗУ требуется освободить какую-либо страницу, т. е. «откачать» страницу из ОЗУ на барабан. Для этого существует много алгоритмов определения «устаревших» страниц.
В машине «Атлас» с целью определения частот исполь зования страниц, находящихся в ОЗУ, с каждой стра ницей связан разряд, в котором появляется единица при любом обращении к ней. Эти разряды опрашиваются через определенные промежутки времени (по временным прерываниям или по прерываниям, возникающим после выполнения нескольких десятков тысяч команд). Так обнаруживаются страницы, к которым были обращения между этими прерываниями. Эти страницы считаются
активно используемыми, |
и они оставляются в ОЗУ. |
Те страницы, к которым |
сравнительно долго не было |
обращений, считаются |
редко используемыми, и из |
них выбирается страница для сброса на магнитный барабан.
Аппаратные возможности, позволяющие судить о ча стоте использования страниц, явились основой для создания «обучающегося» алгоритма перераспределения памяти. Суть этого алгоритма состоит в том, что для каж дой конкретной задачи на основе статистики использова ния ею страниц во время ее работы делается попытка про гнозирования события, когда некоторая конкретная страница вновь потребуется для использования. Эти дан ные используются для предварительной «подкачки» нуж ных страниц и учитываются в ситуации, когда необхо димо «сбросить» страницу на барабан. Вообще говоря, цель любой стратегии «листания» памяти состоит в том, чтобы уменьшить число перебрасываемых страниц и тем самым снизить затраты времени, связанные с этой пере броской.
В условиях, когда априори мало что известно о кон кретных особенностях задач, разработка хорошей стра
142
тегии представляет трудную задачу и «обучающиеся» алгоритмы иногда не дают желаемого эффекта, особенно если речь идет о коротких по времени задачах, в ходе ре шения которых трудно собрать хорошую статистику. И по сей день исследования в области алгоритмов распре деления информации в многоуровневой памяти продол жают оставаться весьма интересной областью рассужде ний и экспериментов.
Сравнение разрядов номера страницы с регистрами соответствия, расположенными в V-памяти, производит ся специальной схемой, которая обеспечивает параллель ный поиск сразу по всем регистрам соответствия. Это означает, что регистры соответствия образуют ассоциа тивную память, поиск по которой осуществляется по двенадцати старшим разрядам. Это один из примеров использования ассоциативного поиска в запоминающих устройствах небольшого объема.
Основу операционной системы машины «Атлас» составляет супервизор, в функции которого входит пла нирование потока задач, организация мультипрограмм ного их выполнения, организация работы внешних ввод ных и выводных устройств, распределение ресурсов между задачами.
Структура супервизора такова: вся информация, по ступающая в машину с внешних носителей или храня щаяся в ее архиве, делится на «документы». Документ может представлять собой программу или часть програм мы, массив данных или часть массива данных, содер жать некоторую специфическую информацию, необходи мую для работы супервизора, например, содержать опи сание задачи. Задача или задание (job) составляется из нескольких «документов» вне зависимости от того, отку да они пришли. В описании (или паспорте) задачи со держится перечень всех документов, необходимых для ее составления и работы. Супервизор, выделяя описания задач из входного потока всех документов, организует три входных очереди задач, или три потока задач. К пер вой очереди относятся задачи, требующие большого чис ла обращений к внешним запоминающим устройствам. Ко второму потоку относятся крупные задачи, требую щие большой вычислительной работы, и к третьему пото ку относятся короткие задачи и задачи, требующие боль шого ввода и вывода данных. Эти задачи «собираются»
143
и компонуются из документов, описанных в паспорте, и в собранном виде размещаются на разных магнитных лентах. Специальная планирующая подпрограмма супер визора для выполнения в мультипрограммном режиме выбирает задачи, относящиеся к трем разным потокам. Это сделано для того, чтобы повысить эффективность мультипрограммирования. Естественно, что программы из потока больших вычислительных задач при выпол нении в мультипрограммном режиме обладают низшим приоритетом, и на фоне их решения производятся опера ции по вводу-выводу для задач двух других потоков. Программы не имеют прямого доступа к внешним устрой ствам системы «Атлас», а выдают лишь задания, или заказы, на операции ввода-вывода. Эти задания, поступаю щие, как правило, через систему экстракодов, обслужи ваются специальной программой супервизора, органи зующей работу внешних устройств и распределение их между задачами. Как правило, вся информация, пред назначенная для вывода, собирается в так называемой области вывода и затем, иногда после окончания зада чи, независимо выводится на внешние устройства (на печать, на графопостроители и т. д.). Физически область вывода также располагается на магнитных лентах, и соответствующие программы супервизора организуют вывод информации с этих лент на реальные устройства. Грубая схема прохождения задачи через систему состоит из пяти этапов: ввод документов в область ввода, ком пиляция (собирание) программы, исполнение программы, размещение результатов в области вывода, реальный вывод.
Таким образом, операционная система «Атлас» в том виде, как она появилась в начале своего развития, пред ставляла типичную систему режима пакетной обработки задач. Супервизор машины «Атлас» затем подвергся зна чительным изменениям, и в настоящее время ОС «Атлас» представляет собой хорошо развитую систему, предназ наченную для управления ЭВМ в пакетном режиме по точной обработки, в режиме реального времени и в ре жиме многопультовой работы.
Вслед за машиной «Атлас» фирма Ферранти совместно с математической лабораторией Кембриджского универ ситета разработала и приступила к серийному выпуску машины «Атлас-2», которая по своим техническим пара
144
метрам несколько уступает своему прототипу, но, повидимому, оказалась более рентабельной и простой в се рийном производстве. Зтих машин произведено и уста новлено в 1971 г. несколько десятков, в основном в Англии.
§ 2. Вычислительная система «Атлас-2»
Главное отличие «Атласа-2» от системы «Атлас» со стоит, пожалуй, в том, что в «Атласе-2» вторичная па мять на быстрых магнитных барабанах заменена ферри товой памятью емкостью от 32 768 до 131 072 слов. Мак симальный объем ОЗУ, следовательно, больше, чем об щий объем памяти «Атлас» в ее стандартном комплекте. В состав машины «Атлас-2» не входит фиксированная (односторонняя) память, которая есть у «Атласа». Во всем остальном эти машины весьма похожи по структуре: память для 128 регистров модификации адресов (В-па- мять); V-память, состоящая из регистров управления режимами работы машины, регистров, связанных с управлением внешними устройствами, регистров защи ты памяти и внешних устройств при мультипрограммном режиме. В состав центрального процессора входят быст рые регистры для промежуточного хранения операндов и буферные регистры для хранения программ, объемом 8 и 32 слова соответственно.
Состав внешнего оборудования «Атласа» и «Атласа-2» приблизительно одинаков, если не считать, что «Атлас-2» рассчитан на подключение дисков. Большая ферритовая память «Атласа-2» состоит из четырех блоков, работаю щих с перекрытием *), что сделано для того, чтобы умень шить среднее время доступа к этой памяти.
Представляет интерес логика работы буферной памя ти для хранения команд. Адрес выбираемой аппарату рой команды рассматривается как состоящий из 12 стар ших разрядов и 5 младших. Эти 5 младших разрядов указывают номер регистра буферной памяти. Адресная часть этого регистра содержит 12 разрядов. Произво дится сравнение 12 старших разрядов выбираемой ко манды с 12 разрядами адресной части соответствующего
*) Перекрытие означает возможность одновременного обраще ния к различным блокам памяти.
145
регистра буферной памяти. Если сравнение показало совпадение, то необходимая для выполнения команда выбирается из информационной части регистровой памя ти. Если совпадения не произошло, то это означает, что искомая команда находится в главной памяти, откуда она и извлекается для исполнения. Одновременно про изводится замена содержимого и адресной части регистра характеристиками вновь выбранной команды. Такая организация автоматически приводит к тому, что много кратно повторяемые небольшие программные циклы «оседают» в регистровой памяти, и выборка команд про изводится в этом случае из быстрых регистров, а не из главной памяти. Это заметно увеличивает производи тельность центрального процессора.
Статус 8 быстрых регистров для хранения операндов таков: программные адреса с номерами от 0 до 7 означают обращение к этим регистрам, т. е. быстрые регистры пря моадресуемы, и забота об их эффективном использова нии возлагается на программиста или систему програм мирования. Использование быстрых регистров при комплектации машины «Атлас-2» главной памятью со временем выборки 5 мксек может ускорить выполнение вычислительных программ в 2—2,5 раза.
В системе «Атлас-2», по существу, нет полистовой ор ганизации памяти. В случае, если в мультипрограммном режиме требуется разместить в оперативной памяти не сколько независимых задач, они размещаются в секции, физический адрес начала которой всегда кратен 512. С каждой программой связана 8-разрядная база, и фи зический адрес обращения за командой или операндом аппаратно формируется из исполнительного дважды мидифицированного математического адреса путем при бавления к нему базы. Аппарат защиты памяти контро лирует каждый адрес на предмет того, не вышел ли он за границу отведенной программе секции. Если адрес выходит за границу секции, происходит прерывание, и управление передается супервизору, который опреде ляет причину появления такого адреса и предпринимает необходимые действия. На этом же принципе контроля выхода адреса за границу текущего сектора построена защита памяти при обменах с внешними устройствами. Необходимость перестройки баз при переключениях от одной задачи к другой в мультипрограммном режиме,
146
необходимость сохранения большого числа управляю щих регистров в областях памяти, связанных с прер
ванной |
задачей, приводит к тому, что |
время |
переклю |
чения |
достаточно велико — около |
одной |
миллисе |
кунды. |
|
|
|
Несмотря на значительные отличия в аппаратных ре шениях способов защиты и распределения памяти, су первизор «Атлас-2» — его операционная система — по своим возможностям и функциям мало чем отличается от ОС машины «Атлас».
В состав математического обеспечения «Атласа-2» входят, кроме операционной системы, трансляторы с языков АЛГОЛ, ФОРТРАН и КОБОЛ, Ассемблер и раз витые пакеты программ решения научно-технических и инженерных задач.
§ 3. Некоторые другие английские машины фирмы ICL
До настоящего времени объединенная фирма ICL продолжает выпускать машины серии 1900. Некоторые из этих машин поставляются в Советский Союз, поэтому полезно коротко рассказать о них.
А р х и т е к т у р а с е р и и ICL-1900. Серия 1900 представляет собой семейство машин, насчитывающее пять моделей: 1901-А, 1902-А, 1903-А, 1904-А, 1906-А.
Диапазон по быстродействию, охватываемый этой се рией машин, широк: от 30 тысяч (1901-А) до 1 млн. операций в секунду (1906-А).
В архитектуре серии 1900 выдержан принцип модуль ности, машины программно преемственны снизу вверх, из них хорошо компонуются многомашинные системы, они снабжены стандартной системой программирования и хорошо организованными операционными системами. В системе команд этой серии есть некоторые интересные находки. Представляет интерес многоуровневая косвен ная адресация, т. е. такая система доступа к памяти, ког да адрес в команде указывает не на операнд в памяти, а на ячейку, в которой содержится ссылка (адрес) на операнд.
Многоуровневая адресация позволяет строить такого рода косвенные ссылки любой глубины, т. е. если в ко манде указан косвенный адрес, то в ячейке, на которую
147
он указывает, может оказаться, в свою очередь, |
ссылка |
не на операнд, а на следующую косвенную |
ссылку, |
и т. д. Цепочка косвенных ссылок заканчивается моди фикацией (индексацией) последнего адреса. Система ко манд этих машин допускает прямую, относительную, кос венную адресацию с индексированием и базированием адресов. Эти машины относятся к машинам словного типа.
Интерфейс серии 1900 основан на шестиразрядных байтах, командное слово имеет 24 разряда. Это дела ет серию 1900 непреемственной даже информационно с сериями современных машин (IBM-360, System 4, Sigma 7).
По-видимому, фирма ICL прекратит дальнейший вы пуск машин этой серии и начнет выпускать машины но вой серии, основанные на идеях, высказанных в книге Айлифа «Принципы построения базовой машины», Изд-
во «Мир», 1973.
По своей структуре новая серия будет отражать тен денцию приближения внутренней структуры машины к языкам высокого уровня.
МашинаMUF (MU-5), проект которой разрабатывается в Манчестерском университете, явится прообразом машин новой серии ICL.
Фирмой ICL выпускается также семейство машин Система 4, программно преемственных с IBM-360.
S y s t e m 4 ( С и с т е м а 4). Серия Система 4 со стоит из пяти моделей: 4-30, 4-40, 4-50, 4-70, 4-75. Эти модели охватывают диапазон быстродействия от 15 до 300 тысяч операций в секунду.
В основу архитектуры Системы 4 положена архитек тура IBM-360, а система команд почти полностью сов падает с системой команд IBM-360. Исключение состав ляют системные команды, выполняемые в режиме су первизора. Таким образом, программы пользователей, написанные для машин серии 360, могут идти на соот ветствующих машинах Системы 4. За исключением маши ны 4-30, все модели обладают полной программной пре емственностью на уровне внутреннего языка машин. Модель 4-30 аппаратно выполняет лишь 41 команду из общего набора 144 команд.
Система 4 обладает рядом структурных особенностей, отличающих ее от Системы 360 аппаратурно и в части
148
математического обеспечения, касающегося операцион ной системы (супервизора) и интерпретации некоторых макроопераций на уровне ассемблера. В части органи зации системы прерываний и переключения с одной за дачи на другую аппаратные возможности Системы 4 вы ше, чем у Системы 360. В Системе 4 введена так назы ваемая Scratch Pad Store (быстрая память на регистрах), состоящая из четырех блоков по 16 регистров. Эти бло ки служат для хранения состояния машины и ее 16 об щих регистров. Машина может находиться в четырех режимах: в режиме рабочих программ, прерываний, су первизора и в режиме неисправности. По существу, ап паратно в Системе 4 предусмотрена глубина прерываний, равная 3. Это, в свою очередь, упрощает построение су первизоров для управления работой в мультипрограмм ном режиме и в режиме разделения времени.
Операционные системы машин Системы 4 обладают обычными стандартными возможностями по организации мультипрограммирования, связи с пультами оператора. Модель 4-75 и ее операционная система предусматривают организацию работ в режиме разделения времени.
Система программирования включает в себя языки: USER CODE (автокод), КОБОЛ-65, ФОРТРАН-IV,
АЛГОЛ-60, CLEO RPG, стандартную библиотеку и ас семблер. Трудоемкость создания только исполнитель ной программы (диспетчера) для Системы 4 оценивается в 30 человеко-лет. Стоимость разработки всего математи ческого обеспечения по отношению к стоимости разра ботки Системы 4 оценивается в 50%.
В фирме ICL в различных сферах ее деятельности, как на разработке МО, так в работах по проектированию и, по-видимому, в работах по обслуживанию собствен ных вычислительных машин, занято 1200 программистов (по данным на 1970 г.).
Несмотря на то, что система команд и интерфейс (бай
товая структура, старт-стопный |
режим) весьма близки |
к системе IBM-360, система 4 |
не является полностью |
программно преемственной с IBM-360. Отличие состоит в привилегированных командах, обслуживающих сис тему прерывания, и вызвано значительными расхожде ниями в организации этих систем. Другое отличие со стоит в том, что ряд макрокоманд интепретируется в Си стеме 4 иначе, чем в IBM-360. Все это привело к тому,
149
