Добавил:
Опубликованный материал нарушает ваши авторские права? Сообщите нам.
Вуз: Предмет: Файл:

книги из ГПНТБ / Королев, Л. Н. Структуры ЭВМ и их математическое обеспечение учебное пособие

.pdf
Скачиваний:
25
Добавлен:
21.10.2023
Размер:
10.26 Mб
Скачать

мультипрограммном режиме, точнее, головные, охваты­ вающие блоки этих рабочих программ относятся ко вто­ рому уровню вложенности и используют D-регистры, начиная с D2. Многие стандартные процедуры управляю­ щей программы обслуживают рабочие программы. Они могут оказаться на любых этажах вложенности.

Всю систему в целом можно представить себе следую­ щим образом. В машине всегда работает одна задача — главная управляющая программа. В соответствующие мо­ менты времени, сообразуясь с внешней ситуацией и пото­ ком поступающей информации, эта главная программа порождает параллельные вычислительные процессы — рабочие программы. Оканчиваясь, эти процессы пере­ дают управление снова главной управляющей программе. В структуре машин Барроуз предусмотрены соответст­ вующие достаточно универсальные средства организации ветвления и параллельных процессов, которые обеспечи­ вают прежде всего организацию мультипрограммирова­ ния при выполнении главной управляющей программы. Эти же средства позволяют и сами рабочие программы организовывать в виде дерева параллельно исполняемых ветвей.

Что же с этой целью предусмотрено в структуре машин Барроуз? Это — многостековая организация, ко­ торая позволяет организовывать дерево стеков, ветвле­

ние стеков на любом уровне.

Как

М н о г о с т е к о в а я о р г а н и з а ц и я .

уже говорилось, в дескрипторах стека MSCW и в дескрип­ торах управляющих слов программы (PCW) выделено по­ ле, указывающее номер используемого стека. Этот номер на самом деле указывает относительный адрес дескрипто­ ра используемого стека в так называемом вектор-масси­ ве стеков. Местоположение этого массива, этой таблицы, в свою очередь определяется дескриптором вектор-мас­ сива стеков. Вектор-массив состоит из последователь­ ности дескрипторов, каждый из которых указывает на физический адрес и объем стека, выделенного для обслу­ живания некоторой ветви. Описатель этого массива сте­ ков занимает фиксированное место в корневом стеке, которому стеки ветвей соподчинены. Система связи сте­ ков строится следующим образом. D-регистр с индексом О (DO) указывает адрес корневого стека, т. е. указывает на MSCW корневого стека. В фиксированной позиции

190

корневого стека находится описатель вектор-массива соподчиненных стеков (DDO-bDDn), состоящего из де­ скрипторов данных, определяющих объемы и адреса соответствующих ветвей. Обращение к данным, принад­ лежащим ветви с указанным номером, производится пу­ тем последовательных обращений сначала к корневому стеку, к дескриптору вектор-массива, затем к соответ­ ствующему дескриптору в вектор-массиве, затем через LMSCW выбранного стека к конкретной величине этого стека или к дескриптору выбранного стека, который мо­ жет оказаться дескриптором нового вектор-массива сте­ ков, соподчиненных выбранному, и процесс доступа про­ должается по той же рекурсивной схеме. Не следует, од­ нако, предполагать, что все обстоит слишком просто. Для того чтобы аппаратура автоматически выполнила весь этот многоступенчатый процесс обращения к требуе­ мым данным некоторой ветви, нужно позаботиться о том, чтобы стеки, по которым проследует поиск, были приве­ дены во вполне определенное состояние. Например, сле­ дует позаботиться о том, чтобы в верхушках магазинов промежуточных уровней оказались те величины индек­ сов, которые правильно определяют номер следующего стека. Разумеется, вся последовательность ссылки от одного дескриптора к другому требует того, чтобы эти дескрипторы были сформированы заранее, или, если речь идет о динамике, чтобы вся информация, необходимая для их формирования, была бы заранее правильно вы­ числена и определенным образом расположена в стеках или памяти машины.

О р г а н и з а ц и я п р е р ы в а н и й . Как уже от­ мечалось, всякое возникшее прерывание интерпрети­ руется аппаратурой как принудительный переход к некоторой процедуре операционной системы. Происходит это следующим образом. Прежде всего при возникнове­ нии сигнала прерывания производится формирование и упрятывание в магазин текущей программы управляю- -щего слова стека (MSCW). Далее аппаратурой в стек по­ мещается косвенная ссылка на процедуру главной управ­ ляющей программы, организующей реакцию на преры­ вание. Эта косвенная ссылка указывает на вполне опре­ деленное место в текущем магазине, где заранее должен быть заготовлен дескриптор, отсылающий к подпрограмме реакции на прерывание. Это слово-ссылка располагается

191

в стеке над предыдущим MSCW. Затем в стек «сбрасы­ ваются» все регистры машины, используемые прерывае­ мой программой, и помещаются два слова, идентифици­ рующие причину прерывания. Наконец, производится переход к подпрограмме МСР, которая, располагая всей необходимой информацией о причине прерывания, в свою очередь организует обращение к одной из процедур, об­ рабатывающей конкретное прерывание. Как это обычно принято, прерывания делятся на внутренние, отражаю­ щие ситуации, возникшие в центральном процессоре, и внешние, связанные с работой внешних устройств и других процессоров, если в системе работает их несколь­ ко. Прерывания делятся на управляемые и безуслов­ ные, которые обязательно прерывают работу програм­ мы. К такого рода безусловным неуправляемым, от­ носятся прерывания, связанные со срабатыванием схем обнаружения сбоев оперативной памяти, связанные с по­ пыткой выхода за пределы стека, связанные с сигналами времени (с таймером), с появлением недопустимых команд и слов, связанные с зацикливанием программ. Среди управляемых прерываний, т. е. прерываний, которые могут быть либо запрещены, либо открыты, отметим пре­ рывание по разряду «присутствия». Оно связано с обра­ щением к дескриптору, указывающему на программы и данные, которых еще нет в оперативной памяти. Управ­ ляемыми прерываниями фиксируются недопустимые зна­ чения вычисленного индекса, выходящие за пределы гра­ ницы, фиксируется нарушение защиты памяти и ситуа­ ции, связанные с работой арифметического устройства (переполнения, деления на нуль и т. д.).

Особо следует отметить прерывания, позволяющие управлять работой системы в многопроцессорном вариан­ те. Среди привилегированных команд существует коман­ да, позволяющая послать внешний сигнал прерывания во все другие процессоры. Смысл этого сигнала состоит в том, чтобы обратить внимание системы в целом на некую ситуацию, информация о которой может быть найдена в оперативной памяти, одинаково доступной для каждого процессора. Например, пусть какой-либо процессор в ходе выполнения программы получил прерывания, ука­ зывающие на неисправность его аппаратуры. Програм­ ма реакции на это прерывание, если данная неисправ­ ность еще позволяет это сделать, посылает сигнал пре­

192

рывания в соседний-(или соседние) процессор (процессо­ ры), который может продолжить выполнение работы, прерванной из-за неисправности. Средства, позволяющие одному (любому) процессору прерывать другие при исправной работе аппаратуры, являются главными сред­ ствами синхронизации их работы. Кроме того, для син­ хронизации работы процессоров, одновременно и неза­ висимо выполняющих взаимосвязанные ветви одной большой задачи, используются команды синхронизацион­ ного считывания. Суть состоит в том, что, обращаясь с помощью такой команды к некоторому слову памяти, процессор одновременно получает информацию о том, было ли обращение к этому слову со стороны другого процессора.

В машинах В-6500/7500 для этих целей широко используется разряд защиты памяти (48-й разряд). Специальные команды позволяют записывать слово, од­ новременно «приписывая» ему разряд защиты. Если те­ перь другой процессор попытается обратиться к данным, помеченным защитой, произойдет прерывание, которое может быть истолковано главной управляющей програм­ мой, например, как попытка одного процессора несвое­ временно (слишком рано) обратиться к данным, еще не обработанным другим процессором. В системе команд су­ ществуют команды, которые осуществляют считывание с проверкой данного разряда. Такая команда позволяет ветвям программы, исполняемым на разных процессо­ рах, организовывать синхронизацию без помощи опера­ ционной системы. Например, если в какой-то период своей работы одна ветвь нуждается в результатах работы другой ветви, то выяснить, закончилась ли обработка этих результатов, можно, проверив содержание соответ­ ствующего слова, адрес которого известен обеим ветвям. Нужно обратить внимание на следующую тонкость. Может показаться, что организовать синхронизацию можно без специальных команд. Завести, например, по фиксиро­ ванному адресу некую общую для двух ветвей ячейку и условиться о том, чтобы, записывая в эту ячейку соот­ ветствующую информацию, одна ветвь сигнализировала другой о своем состоянии. Тогда, прежде чем перейти к этапу обработки результатов вычислений параллельной ветви, следует проверить состояние этой ячейки и програм­ мным образом решить вопрос: подождать или не подож-

7 Л. Н. Королев

193

дать? Но может случиться так, что как раз в тот самый момент, когда произведено считывание этой ячейки из памяти для последующего анализа, произойдет прерыва­ ние по какой-то не относящейся к делу причине. За время, потраченное данным процессором на реакцию по данно­ му прерыванию, параллельная ветвь может успеть обра­ ботать нужные данные, а прерванная ветвь «будет ду­ мать», основываясь на данных, полученных до прерыва­ ния, что эта обработка не завершена. Возникнет ситуация «зависа», застопоривания ветви, которая может приве­ сти к остановке всего процесса вычислений. Следует сказать, что приведенный пример не надуман. При раз­ работке операционных систем, при их отладке реально возникают ситуации, связанные с ошибками алгоритмов, не учитывающих такую возможность. Причем такого ро­ да ошибки проявляются весьма редко и достаточно слу­ чайно. Внешне складывается впечатление случайного сбоя аппаратуры, который затем не повторяется.

§ 3. Технические характеристики В-6500, В-7500

Как уже говорилось, система В-6500, В-7500 строится по модульному принципу. Модуль центрального процес­ сора под индексом В-6503 работает на частоте 2,5 мега­ герца. Это эквивалентно номинальному быстродействию порядка 250 тысяч арифметических действий в секунду. Следует еще раз оговориться, что номинальное быстро­ действие является весьма грубой характеристикой общей производительности ЭВМ, которая определяется многими иными факторами: быстродействием оперативной памяти, характеристиками внешних запоминающих устройств, структурными особенностями построения системы в целом.

В состав серии В-5500 входят модули процессоров с индексами В-6504 и В-6506, работающие на частоте 5 ме­ гагерц. Соответственно их номинальное быстродействие может быть оценено в полмиллиона операций.

Модули центральных процессоров В-7500 (индексы В-7504 и В-7506) работают на частоте 10 мегациклов и обладают быстродействием свыше миллиона операций в секунду. Аппаратура выполнена на интегральных схе­ мах среднего уровня интеграции. В вычислительных си­ стемах, использующих модули В-6500, могут одновре­

194

менно работать два центральных модуля. Системы, построенные с использованием модулей 7500, могут содер­ жать до восьми процессоров, правда, в настоящее (1973 г.) время реально существующие системы не содержат более четырех процессоров. Максимальный объем оператив­ ной памяти на ферритовых сердечниках, который может быть включен в однопроцессорную или многопроцессор­ ную систему, может составлять 524 288 слов. Оператив­ ная память разбита на модули объемом в 16 384 слова. Таки* модулей, следовательно, в системе может быть до 32. Модули оперативной памяти на ферритах имеют время полного цикла 1,2 мксек. Кроме того, оператив­ ная память может быть построена из модулей на тонких пленках со временем цикла 600 наносекунд. Модули опе­ ративной памяти расположены по три в изолированных стойках. Каждая такая стойка снабжена своей системой тестовой проверки памяти, и во время проверки одного из модулей стойки остальные два модуля могут быть ис­ пользованы системой для работы. Это позволяет прове­ рять и ремонтировать отдельные модули памяти, не оста­ навливая систему. В качестве внешних запоминающих устройств или памяти второго уровня используются маг­ нитные диски со считывающими головками, фиксирован­ ными на каждый тракт. По быстродействию диски при­ ближаются к барабанам. Объем дисковой памяти состав­ ляет 47,5 млн. байтов, или около 8 млн. слов. С памятью на дисках можно одновременно вести до четырех обменов, т. е. она делится на четыре подсистемы с независимым доступом.

Для связи с внешним и терминальным оборудованием разработан модуль мультиплексора. В систему могут быть включены два таких модуля. Каждый мультиплексор рассчитан на одновременную работу с 10 внешними ка­ налами. Общее число каналов, которые могут быть под­ ключены к одному мультиплексору, равно 20. К каждому каналу могут быть подключены, в свою очередь, устрой­ ства управления с внешним оборудованием (перфокар­ тами, перфолентами, дисплеями и т. п.). Общее число устройств, которые обслуживаются одним мультиплек­ сором, может быть доведено до 256. К каждому мульти­ плексору можно подключать до четырех периферийных процессоров (Data Communication Processor — DCP).

Их главное назначение — управление приемом-передачей

7*

195

при работе с телеграфными и телефонными линиями,-т. е. управление телекоммуникационными связями. Каж­ дый DCP рассчитан на управление 16 каналами. Это поз­ воляет подключить к одной системе до 2048 линий связи. Разумеется, не все предоставляемые структурой системы возможности используются в реальных установках, в большей степени расчет сделан на перспективу, на то, чтобы удовлетворение растущих требований заказчиков не встречало затруднений технического характера.

§ 4. Математическое обеспечение В-6500, В-7500

Основой математического обеспечения (МО), его яд­ ром, является главная управляющая программа (МСР), представляющая собой комплекс управляющих проце­ дур, тесно связанных, с одной стороны, с аппаратурой машины и, с другой стороны, с трансляторами с входных языков высокого уровня. Математическое обеспечение В-6500/В-7500 разрабатывалось одновременно со струк­ турой этих машин, математики-программисты работали в тесном контакте с инженерами, и это привело в конечном итоге к тому, что математическое обеспечение оказалось хорошо увязанным с аппаратурой машин. Многие струк­ турные особенности этих машин прямо проистекают из требований, которые возникли в ходе разработки МО. Например, появление D-регистров в центральном про­ цессоре связано с методами реализации АЛГОЛа, сте­ ковый механизм также отражает принятые способы реа­ лизации рекурсий в трансляторах с процедурно-ориен­ тированных языков. Система дескрипторов в какой-то мере является аппаратным отражением описаний ц операторов распределения памяти в языках высокого уровня. В какой-то степени структура этих машин ориентирована на сложившиеся приемы реализации трансляторов с языков, получивших наибольшее распро­ странение.

Иногда машины Барроуз называют алгольно-ориен- тированными машинами. Жесткие и достаточно универ­ сальные схемы аппаратной реализации конструкций языка, рассчитанные на наиболее сложные ситуации, в случае применения этих универсальных механизмов в про­ стейших ситуациях приводят к потере относительной эф­ фективности при выполнении программ. Например, цик­

196

лы с перебором элементов в массивах с постоянным шагом в машинах традиционной структуры, обладающих Обыч­ ными средствами индексации и не имеющие стека, могут быть реализованы меньшим числом операций, т. е. с от­ носительно меньшими затратами времени. Интересно от­ метить, что анализ эффективности транслирующих систем е языка АЛГОЛ, проведенный для машин разных фирм и для разных трансляторов с этого языка, дал в какой-то степени неожиданный результат. Наиболее эффективным транслятором с АЛГОЛа оказался оптимизирующий транслятор, созданный для машины IBM-360/67. Система команд этой машины типично традиционная и даже не имеет средств косвенной адресации.

Сравнение производилось следующим образом. По Гибсону определялась производительность ЭВМ. Транс­ лирующей системе предлагался набор типичных вычисли­ тельных задач на АЛГОЛе. Определялось время выпол­ нения этого набора задач на конкретной машине. Далее это время делилось на производительность соответствую­ щей ЭВМ по Гибсону. В результате получилось некото­ рое число, характеризующее качество оттранслирован­ ных программ. И вот, несмотря на то, что в машинах Барроуз все предусмотрено для реализации АЛГОЛа, первое место по качеству транслирующих программ за­ няла транслирующая система для 67-й модели. Правда, следует при этом учесть, что анализ производился раз­ работчиками алгол-системы для 67-й модели.

О с н о в н ы е ф у н к ц и и г л а в н о й у п р а в л я ю щ е й п р о г р а м м ы (МСР)

Прежде всего, МСР выполняет функции, свойствен­ ные любому диспетчеру операционных систем, а именно: контроль за состоянием процессора и реакции на сигналы прерываний, управление вводом-выводом, динамическое распределение оперативной памяти в ходе выполнения программ, управление мультипрограммным режимом. Кроме этих обычных функций МСР совместно с аппара­ турой выполняет значительную работу, которую обычно выполняют программы административных систем транс­ ляторов. К такого рода работам относятся функции, свя­ занные с обращением от одной процедуры к другой, функ­ ции управления стеком, подсчета уровней вложенности,

197

распределения D-регистров, сохранения информации для возврата и повторного вхождения в процедуру. Распреде­ ление памяти под стеки, программные сегменты и масси­ вы данных, находящиеся в ведении МСР, основано на информации, полученной после трансляции или компи­ ляции программ. На МСР возложены функции формиро­ вания дескрипторов программных сегментов и данных, появившихся в глазной памяти в динамике вычислений. В состав МСР входят процедуры распределения ресурсов оборудования системы между задачами, переключение с задачи на задачу, планирование потока задач. В состав МСР входят стандартные процедуры реакции на ошибки, возникающие в ходе выполнения программ, и реакции на сбои аппаратуры. Конкретные вычислительные системы В-6500/7500 могут содержать различное число модулей центральных и периферийных процессоров, оператив­ ной памяти, различный состав внешних устройств, т. е. могут иметь различную комплектацию. Главная управ­ ляющая программа (МСР) рассчитана на управление системой в максимальной комплектации. Ее настройка на конкретный состав оборудования производится методом «изъятия» части процедур и соответствующей маркиров­ кой таблиц, т. е. методом «сокращения» операционной системы. Тем самым процесс генерации системы, ее на­ стройка, в В-6500/7500 значительно более прост, чем

вОС/360.

Вкачестве входных языков системы используются

КОБОЛ, АЛГОЛ и ФОРТРАН.

Барроузовский расширенный АЛГОЛ основан на стан­ дартном АЛГОЛе-60 и включает этот язык как подмно­ жество. Расширение касается введения дополнительных языковых средств, позволяющих управлять вводом-вы­ водом, передачей информации. Транслятор с АЛГОЛа выполнен по однопроходной схеме, и скорость трансля­ ции достигает 10 000 операторов в секунду.

Язык ФОРТРАН, используемый машинами Барроуз, является одной из версий ФОРТРАН-IV. В барроузовской версии этого языка сняты некоторые ограничения, запрещающие рекурсивные обращения.

КОБОЛ-Барроуз является сильно развитой версией стандартного КОБОЛа-65. В эту версию языка включе­ ны средства для отладки программ и ряд других средств, учитывающих возможности аппаратуры, а Именно: сред­

198

ства управления мультипроцессированием, динамическим распределением памяти, средства сегментирования про­ грамм и ряд других средств. Программа, записанная на входном языке высокого уровня, перфорируется и вво­ дится .в систему для последующей трансляции и испол­ нения. Математическое обеспечение машин Барроуз до­ пускает несколько режимов: ввод, трансляцию и непо­ средственное исполнение; ввод программ и запись их в исходной символике для последующей трансляции и исполнения; ввод, трансляцию и запись оттранслирован­ ных программ в библиотеку на дисках для последующего исполнения в динамике работы. Программа на объектном языке, т. е. на языке, полученном после трансляции, со­ держит следующие части:

1.Описание параметров программы, в котором со­ держатся сведения о необходимых объемах памяти, о тре­ буемых устройствах ввода-вывода, о требуемых стандарт­ ных или библиотечных процедурах.

2.Информацию о требуемых для исполнения файлах

(массивах), описывающую каждый такой файл данных. 3. Тело программы (охватывающего блока програм­ мы) в кодах команд машины. Программный сегмент, со­ держащий эти коды, построен по принципу свободной перемещаемости и обычно не содержит никаких изменяе­

мых частей.

В состав математического обеспечения машин Барроуз включен язык ESPOL — язык высокого уровня, по своим возможностям схожий с языками АЛГОЛ-68 и PL-1 и учитывающий особенности структуры машин Барроуз. В этом языке развиты средства распараллеливания про­ цессов, средства, обеспечивающие синхронизацию прог­ рамм, ветви которых одновременно выполняются на раз­ ных процессорах, средства, учитывающие возможности многоступенчатойжосвенной адресации, развитые в струк­ туре машин Барроуз.

В систему математического обеспечения входит нес­ колько так называемых проблемно-ориентированных язы­ ков, предназначенных для удобной записи задач, которые связаны с решением узкого класса научно-технических и коммерческих проблем. Среди них следует отметить язык SIMULA (СИМУЛА), алголоподобный язык, удоб­ ный для описания моделей дискретных систем. К этому классу относятся системы со сложными информацион-

199

Соседние файлы в папке книги из ГПНТБ