книги из ГПНТБ / Королев, Л. Н. Структуры ЭВМ и их математическое обеспечение учебное пособие
.pdfчто для Системы 4 пришлось создавать собственное тематическое обеспечение в части операционной системы, ассемблера и административных частей трансляторов.
В настоящее время заказчику вместе с машинами 4-40, 4-50, 4-70 выдается МО уровня J — операционная система, обеспечивающая пакетную обработку задач с совмещением операций по вводу-выводу. Более расши ренные системы предоставят возможности одновремен ного решения до 14 задач, гибкость в планировании, ра боту со многими пользователями (СРВ) и т. д. Структура ОС (уровень J) представлена на схеме (рис. 12).
Рис. 12.
Уровень J рассчитан на следующий минимальный со став оборудования: ОЗУ — 65К байтов, два диска, одно устройство считывания с перфокарт, одно устройство печати и телетайп. Максимальный объем памяти может быть увеличен до 1 000 000 байтов. Число внешних устройств может быть доведено до 36 (медленных). Ре зидентская часть операционной системы занимает в па мяти 20К байтов. Хранится ОС на дисках.
Вфункции супервизора входят:
1.Обслуживание прерываний.
2.Переключение с задачи на задачу. В памяти могут находиться до 14 рабочих программ, маркированных
флагами (ключами) от 0001 до 1110. Флаг со значением 0000 метит поля, доступные любым программам. Флаг со значением 1111 метит информацию, относящуюся к супервизору.
3. Обслуживание и управление внешними устрой ствами.
150
4.Обнаружение ошибок в машине и в программах и реакция на эти ошибки. (Например, организация повто рения чтения с МЛ.)
5.Связь с терминалами. Допускается до четырех тер миналов для работы операторов.
6.Связь между программами. Общая очередь про грамм (работ), подлежащих решению, накапливается на дисках. Очередь рассчитана на 20 программ.
Некоторые из моделей Системы 4 используются в ряде организаций Советского Союза.
Г л а в а 3
МАШИНА ILLIAC-IV (ИЛЛИАК-IV)
Машина ИЛЛИАК-IV разрабатывалась в Иллинойском университете в США совместно с фирмой Burroughs. Идеологом этой разработки является профессор Злотник (Slotnick). Эта специализированная машина является одной из наиболее быстродействующих ЭВМ в мире, способной выполнять до 200 млн. операций в секунду. Машину ИЛЛИАК-IV часто относят к ЭВМ четвертого поколения. По первоначальному проекту машина ИЛЛИАК-IV планировалась как многопроцессорный комплекс, состоящий из 256 процессоров и центрального управляющего звена, в качестве которого была выбрана машина В-6500. Эти 256 процессоров должны были де литься на четыре квадранта, состоящих из 64 подчинен ных одному управлению процессоров каждый. Квад рант представляет собой достаточно независимую систе му машин, так что на системе в целом было возможно решать одновременно до четырех независимых крупных задач, требующих распараллеливания на 64 процессора. Предполагалось также, что и все 256 процессоров могут выполнять одну задачу. Однако ряд затруднений, в ос новном финансового характера, заставил разработчиков сосредоточить усилия на реализации одноквадрантного варианта машины ИЛЛИАК-IV, состоящего из 64 про цессоров и центральной машины В-6500. Этот проект должен был быть завершен в 1970 г. Однако опытная эксплуатация одноквадрантного варианта ИЛЛИАК-IV началось только в 1973 г.
Предшественником машины ИЛЛИАК-IV была ма шина «Соломон», и по идеологии своего построения эти
152
вычислительные машины имеют очень много общего. Разумеется, как более поздняя разработка, ИЛЛИАК-IV построена на иной элементной базе, что позволило до биться значительно более высоких показателей по быст родействию, чем у машины «Соломон».
Машина ИЛЛИАК-IV рассчитана на решение задач, поддающихся распараллеливанию. К таким задачам приводит широкий круг проблем — от проблем линей ного программирования до задач метеорологии. Как предполагают авторы проекта, при решении задач или их частей, допускающих распараллеливание, время ре шения уменьшается в 200 раз по сравнению со временем решения аналогичных задач на традиционных машинах с последовательным выполнением команд. По замыслу авторов система ИЛЛИАК-IV в ее нынешнем составе сможет быть использована как специализированная ЭВМ для работы в реальном времени в системе обслу живания нужд центра перспективных исследований в вычислительной технике Иллинойского универ ситета.
Как уже говорилось, попытки создать многопроцес сорную машину для решения специализированных задач уже имели место. Так, например, в 60-е годы был раз работан проект вычислительной системы «Соломон», со стоящей из большого числа (1024) независимых элемен тарных процессоров, которые одновременно выполняли одну и ту же команду, но с различными операндами. Каж дый элементарный процессор имел свою индивидуаль ную память операндов. Элементарные процессоры систе мы «Соломон» работали строго синхронно. Одновременное (синхронизованное) выполнение одинаковой последова тельности команд в значительной степени суживало круг задач, который мог быть поставлен на этой системе. Раз работчики ИЛЛИАК-IV сделали шаг вперед, отказав шись от строгой синхронизации работы элементарных процессоров, допустив возможность завершать выполне ние общей команды каждому процессору в произвольный момент времени. Кроме того, разработки ИЛЛИАК-IV расширили функциональные возможности каждого процессора, превратив каждый процессор в достаточно универсальную ЭВМ. Допустив возможность модифика ции выполнения операций в зависимости от операнда, выбранного из памяти, разработчики ИЛЛИАК-IV тем
153
самым допустили, по существу, возможность независимой работы каждого процессора и в строго ограниченных пределах.
Элементарные процессоры, или обрабатывающие эле менты, как и называют авторы проекта ИЛЛИАК-IV, представляют собой универсальные быстродействующие ЭВМ со своей памятью довольно большого объема. Они могут оперировать со словами длиной в 64 двоичных раз ряда и выполнять широкий набор арифметических опе раций над числами с плавающей и фиксированной запя той. Объем памяти, закрепленной за каждым процессо ром, равен 2048 словам. Память эта быстрая, и время обращения к ней составляет 350 наносекунд. Хотя все 64 процессора имеют централизованное управление, по лучают и выполняют одну и ту же последовательность команд, характер работы каждого из них над операн дами зависит от типа локальных данных, находящихся в собственной памяти. Специальный управляющий ре гистр обрабатывающего элемента содержит «моду дан ных», на основе которой определяется способ обработки, меняющийся от одного элемента к другому. Мода дан ных отражает результат завершившейся операции и фик сирует признаки переполнения, исчезновения значимо сти, неравенства нулю. В зависимости от моды данных может меняться характер выполнения последующих ко манд. Самый простой пример такого изменения — пре кращение выполнения дальнейшего счета. Принципиально это означает, что элементарный процессор в весьма огра ниченных пределах имеет подобие собственного устрой ства управления,— это путь к индивидуализации работы каждого процессора.
Отсутствие универсального управления в обрабаты вающих модулях ИЛЛИАК-IV, т. е. отсутствие возмож ности выполнять свою собственную программу, значи тельно суживает круг возможных применений этой системы. В ИЛЛИАК-IV заложена тем не менее возмож ность выполнения на разных элементарных процессорах разных программ, правда, за счет значительного сниже ния производительности всей системой. Реализуется это следующим образом. В общем устройстве управления существует 64-разрядный регистр маски, каждый разряд которого соотнесен конкретному процессору. С помощью этого регистра можно блокировать выполнение очеред
154
ной команды на процессорах, «закрытых» маской. Иными словами, можно по желанию выключать из работы про извольную комбинацию процессоров. Принципиально это дает возможность одной группе процессоров выпол нять одну последовательность команд, а другой группе — другую, правда, уже не параллельно, а последовательно, В пределе, последовательно работая, каждый процессор может выполнять свою собственную программу. Практи чески это свойство используется в тех случаях, когда нарушается регулярность счета в области данных. На пример, как известно, алгоритмы вычислений значений функции в граничных точках при решении уравнений в частных производных методом сеток отличаются от ал горитмов счета во внутренних узлах сетки. Если область сетки, «покрываемая» 64 процессорами, содержит внут ренние, граничные и внешние точки, то, управляя маской, удается заставить соответствующие процессоры выпол нять эти разные алгоритмы. Но общая производитель ность системы при этом падает. Каждый элементарный процессор при выполнении команды образует признаки результата и заносит свое состояние в регистр моды, о котором уже шла речь. Этот регистр восьмиразрядный, что позволяет запомнить одновременно до восьми призна ков, характеризующих состояние элементарного про цессора в каждый момент времени. В системе команд ИЛЛИАК-IV существует специальная команда, которая позволяет считать любой признак и поместить его в спе циальный 64-разрядный регистр центрального управле ния всеми процессорами. Существуют команды, также выполняемые общим центральным управлением, осу ществляющие переходы по значению этого центрального регистра моды, а также команды, которые могут пере давать содержимое цетрального регистра моды в регистр маски.
Это позволяет, например, своевременно заканчи вать процесс итераций по условию, что в каждом узле сетки процесс закончился.
При разработке системы ИЛЛИАК-IV было решено много сложных структурных проблем. Первая пробле ма — это проблема информационной связи между отдель ными процессорами, точнее, между их индивидуальными запоминающими устройствами. Простейший метод релак сации для решения уравнения Лапласа по разностной
155
формуле
ц у^= U(x, y+ h)+ U (x+h, y)+ U (х, y—h)+U(x—h, у)
требует того, чтобы £-й процессор пользовался данными, вычисленными четырьмя соседними процессорами. Систе ма межпроцессорных связей, разработанная в ИЛЛИАКIV, позволяет транслировать информацию от любого элемента к любому путем использования возможности обращений к ЗУ соседних элементов. Зтот же прием ис пользуется для распределения данных между локальны ми ЗУ обрабатывающих процессоров в том случае, если эти данные поступают из общей системной памяти или с внешних устройств и телефонных каналов. Схематично можно представить себе, что каждый обрабатывающий элемент расположен в узлах квадратной сетки информа ционных магистралей и путь информации от узла i к уз лу / проходит последовательно через несколько сосед них узлов.
Второй проблемой, которую пришлось решать раз работчикам системы, была проблема координатора, в функции которого должна входить организация работы квадранта элементарных процессоров в целом, а именно: организация подачи информации в память каждого об рабатывающего элемента, реакция на выходы из строя отдельных процессоров, организация сбора информации для выдачи результатов, прием информации с внешних устройств, генерация программ для устройства управле ния квадрантом и т. д. В качестве такого координатора в системе ИЛЛИАК-IV используется универсальная ма шина В-6500.
Параметры этой машины таковы: объем памяти
ОЗУ — до |
524 тысяч слов; время сложения — около |
0,4 мксек-, |
время умножения — около 5 мксек\ время об |
ращения к памяти — 1,2 мксек, т. е. это машина с быст родействием порядка 500—600 тысяч операций в секун ду. Машина В-6500 обладает широкими возможностями по связи с внешним оборудованием ввода-вывода и те лефонными каналами, к ней могут быть подключены ди сковая память объемом в несколько млн. байтов, устрой ства визуального отображения и оптическая память для хранения огромных архивов данных. В системе ИЛЛИАК-IV машина В-6500 выполняет все сложные фун
156
кции диспетчера и функции связи системы с внешним ми ром. Кроме того, в функции этой машины входит трансля ция программ с языков высокого уровня и организация распараллеливания алгоритмов. По-видимому, в настоя щее время еще не существует универсальных методов оптимального распараллеливания алгоритмов, но для некоторых вычислительных схем уже есть разработанные способы организации вычислений на системах, подобных ИЛЛИАК-IV. Проблема отыскания в программе участ ков вычислений, для которых схемы распараллеливания существуют, по-видимому, вполне алгоритмизуема.
Наконец, очень серьезная проблема, которая встала перед разработчиками системы ИЛЛИАК-IV,— это проблема обеспечения живучести *) и надежности. Эта огромная система содержит более семи миллионов элект ронных компонент, поэтому вероятность выхода из строя какого-либо элемента системы очень велика, и следовало заранее предвидеть, что без принятия какихлибо структурных мер обеспечить приемлемую надеж ность системы не удастся. Работоспособность каждого узла системы аппаратно контролируется, разработана автоматическая система замены вышедших из строя уз лов резервными. Разработана система диагностических тестов, позволяющих быстро определять место неисправ ности. В состав системы входит специальная машина, занимающаяся периодическим контролем узлов и опре делением неисправных элементов. Все это усложняет систему в целом, но является необходимыми компонен тами современных многопроцессорных систем. Блок-схе ма системы ИЛЛИАК-IV представлена на рис. 13.
Интересно отметить, что в течение двух лет две универ сальные машины В-5500 были полностью заняты решением задач, возникших при проектировании ИЛЛИАК-IV. Они использовались для проектирования много слойных плат и фотомасок многослойного монтажа, на них отрабатывались диагностические и тестовые про граммы, на них проверялась логика работы обрабаты вающих элементов и имитировалась работа системы в целом. Это еще один пример использования ЭВМ в це лях разработки новых ЭВМ.
*) Живучесть — свойство системы оставаться работоспособной даже при выходе ее отдельных элементов из строя.
157
Рассмотрим несколько более подробно, каким спосо бом удается в системе ИЛЛИАК-IV добиться возмож ности независимой работы каждого процессора по своей программе при условии, что устройство управления у всех 64 процессоров одно и они в каждый данный момент могут выполнять лишь одинаковую команду.
Рис. 13. Блок-схема системы ИЛЛИАК-IV.
В блоке центрального управления существует ре гистр «моды». Каждый разряд этого 64-разрядного регистра связан со своим элементарным процессором.
По определенным командам каждый элементарный процессор посылает в соответствующий разряд регистра моды сведения о своем состоянии или сведения, харак теризующие результат выполнения некоторой опера ции. Например, выполняя команду сравнения двух ве личин, каждый процессор посылает в соответствующий разряд регистра сигнал нуля или единицы в зависимо сти от того, оказались ли равны или неравны сравни ваемые числа.
158
На регистре моды, таким образом, окажется набор нулей и единиц, характеризующий результат выполне ния операции сравнения каждым процессором.
После этого можно задать режим исполнения про грамм только для тех процессоров, состояние которых отображено единицами в этом регистре. Процессоры, для которых соответствующие разряды регистра моды оказа лись в состоянии «О», будут исключены из работы. Воз никнет состояние, при котором часть процессоров не работает, а часть или даже только один выполняет неко торую индивидуальную программу.
Разумным образом управляя разрядами регистра моды, в принципе можно добиться того, что каждый про цессор будет выполнять свою индивидуальную програм му. Разумеется, это происходит за счет потери эффектив ности всей системы в целом. В предельном случае работа по индивидуальным программам сведется к последова тельной работе одного элементарного процессора вслед за другим.
Не удивительно поэтому, что разброс в производи тельности в зависимости от класса решаемых задач на системах, подобных ИЛЛИАК-IV, достигает десятков и сотен крат. Иными словами, на некоторых задачах производительность может достигать сотен миллионов операций в секунду, а на других, «неудобных» задачах опускаться до 1—2 миллионов. С регистром моды свя зана маска, назначение которой как раз и состоит в том, чтобы из работы исключать элементарные процессоры, которые обозначены в ней нулями. Формируя эту маску произвольным образом или пересылая в нее значение регистра моды, можно добиваться весьма произвольных правил включения и исключения процессоров из работы. Теперь легко понять, как, например, производится программный анализ завершения итерационного про цесса в методе релаксации при решении уравнений Лап ласа. Всеми процессорами выполняется команда срав нения значения искомой функции в узле разностной сет ки со значением в том же узле, но на предыдущем шаге
и проверяется содержимое всех |
разрядов |
регистра |
|
моды. |
В тот момент, когда все разряды будут указывать |
||
на то, |
что сравниваемые величины |
не отличаются по |
|
всем узлам, можно оканчивать |
процесс |
решения |
|
задачи. |
|
|
159