Главная страница Visual 2000 · Общий список статей

ПРИЛОЖЕНИЯ к статье "Эльбрус", Burroughs и другие

Андрей Колесов

© 1997, Андрей Колесов
Авторский вариант.

О классификации компьютеров
Из личного опыта
Что известно о Burroughs
Архитектура Burroughs


О классификации компьютеров

Для продолжения обсуждения темы "архитектура ЭВМ" я хотел бы предложить такую условную классификацию компьютеров с точки зрения экономических показателей, которая, как мне кажется, является актуальной и сегодня.

Разумеется, экономические критерии классификации являются не главными и, скорее, вторичными. Определяющим же является функциональное назначение ЭВМ.

Например, в конце 70-х старшие модели EC ЭВМ — 105x, 106x (говорим "EC" — подразумеваем советскую реализацию IBM 360/370) — уже превосходили по мощности и стоимости ветерана БЭСМ-6. Но при этом EC все равно относились к среднему классу, а БЭСМ-6 — к суперкомпьютерам.

Дело в том, что назначением EC ЭВМ было создание вычислительных центров коллективного пользования для одновременного решения множества разнообразных задач. В силу нашей социальной специфики в СССР в те времена преобладали расчетные задачи научного характера, а во всем остальном мире — экономического. (Это было очень хорошо видно по тематике примеров, приводимых в книгах отечественных и зарубежных авторов). Соответственно, основной целевой функцией ЕС было обеспечение максимальной суммарной производительности комплекса, а не отдельной конкретной задачи. Из этого вытекали все особенности ее архитектуры.

Одна из ведущих идей состояла в максимальной загрузке всего оборудования ЭВМ, например, чтобы вывод на печать из одной программы мог выполняться параллельно с обменом с внешней памятью второй и арифметическими расчетами третьей. Фактически, ЕС представляли неоднородную распределенную вычислительную систему, объединяющую процессоры управления оперативной и внешней памятью, устройствами ввода-вывода, каналами телекоммуникаций и пр., во главе которых стоял центральный процессор (термин "ЦП" появился именно тогда, чтобы отличить его от других "процессоров"). Если приглядеться, то можно легко провести аналогию между этой архитектурой и организацией современных локальных сетей с серверами баз данных, приложений, печати, почты и пр.

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

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

Надо сказать, что во времена моей учебы на факультете "Кибернетика" в МИФИ в первой половине 70-х годов проблема классификации компьютеров по мощности, функциональному назначению и пр. как-то вообще не затрагивалась. Но тем не менее, она проявлялась в неявном виде: в частности, архитектуру процессоров нам преподавали на примере БЭСМ-6, а вычислительных комплексов — EC (из соображений, наверное, секретности названия компьютеров официально не сообщались).

Любопытным следствием такой "заточненности" супер-ЭВМ является их архитектурное родство с персональными компьютерами как на уровне всей системы, так и ЦП. В ПК также определяющим элементом является процессор, хотя это делается с другой изначальной целью — уменьшение стоимости компьютера. Опять же именно поэтому, как совершенно точно уже отмечалось в публикациях в "Компьютерре", развитие микропроцессоров идет по пути реализации многих идей супер-ЭВМ, а опыт компьютеров среднего класса для них не столь актуален.

В начало статьи

Из личного опыта

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

Именно на этапе определения архитектуры комплекса и выбора типа ЭВМ, которая должна была управлять всем этим хозяйством, пришлось весьма серьезно пополнить свои институтские знания об архитектуре ЭВМ и организации операционных систем. В своем отчете на этапе "обоснования выбора ЭВМ" мы рассматривали практически все имеющиеся тогда в стране вычислительные системы (авторитет заказчика делал возможность такого выбора вполне реальной).

Ключевым требованием являлось обеспечение очень высокой скорости реакции системы: управляющая команда из компьютера должна была быть выдана не позднее 50 мс после появления сигнала о некотором событии. Фактически же с учетом неравномерного потока запросов и возможного формирования входной очереди время обработки должно было быть еще меньше.

Такая постановка задачи практически однозначно определила выбор компьютера класса мини-ЭВМ, которые тогда еще часто назывались "управляющими". Например, организация системы обработки внешних прерываний и механизм переключения задач обеспечивали начало обработки уже через 100 мкс после появления сигнала на входе. А в любой EC гарантированное время переключения между задачами составляло десятки миллисекунд.

Возможно, было бы полезно упомянуть о подзабытых сегодня операционных системах класса "реального времени". С одной стороны, это были просто малютки по сравнению с монстрами OC 360. Но при этом они обладали довольно эффективными средствами защиты информации, организации многозадачных комплексов, адаптации к конфигурации аппаратуры и пр. Именно знакомство с подобными системами заставляет меня сегодня в ответ на утверждения типа "Windows лучше, чем DOS" обязательно задать дополнительный вопрос — для каких задач? Ведь есть и такие, для которых этот тезис неверен.

Кстати, тогда, в 1976 г., в СССР реально производились лишь две модели мини-ЭВМ: М-6000, линия архитектуры HP 1600, (НИИ УВМ, г. Северодонецк) и М-400, линия PDP 11/20 (ИНЭУМ, Москва). Но ни одна из них все же не тянула на решение поставленной задачи. Выбор был сделан в пользу M-7000 (развитие M-6000), которая должна была появиться лишь через два года. А подходящий вариант ОС для нее (ДОС АСПО) ожидался лишь в середине 1979 г. Короче говоря, мы тогда на собственной шкуре испытывали метод разработки в режиме реального появления необходимой аппаратуры и ПО с отладкой программ и специального периферийного оборудования на ЭВМ-имитаторах. Проект сдавался под Новый 1980-й Год.

В начало статьи

Что известно о Burroughs

Готовя эти заметки, я пытался найти хоть какие-то следы этой компании и ее компьютеров, но это оказалось совсем непростым делом. Бумаги моих московских друзей уже давно попали в утиль и никто не мог даже вспомнить, как точно называется эта фирма по-английски. Поиски по Internet (в том числе с помощью двух приятелей из США) тоже были весьма сложными и дали немногое.

Первое упоминание о фирме мы нашли в статье "The History of the Development of Parallel Computing" по адресу http://ei.cs.vt.edu/~history/Parallel.html, в которой в частности было сказано, что "в 1976 г. Borroughs представил ассоциативный процессор". В этой фразе есть одна неточность — оказалось, что название фирмы все же пишется "Burroughs".

Далее выяснилось, что компания "Burroughs Adding Machine Company" была образована еще в 1886 г. и в начале 50-х годов нашего века преобразована в Burroughs Corporation. С тех пор она занималась выпуском широкого спектра компьютеров — не только супер, но и мини. Однако во второй половине 80-х годов фирма прекратила самостоятельный бизнес и, вроде бы, влилась в корпорацию Unisys. Во всяком случае именно Unisys передала на хранение в Институт Charles Babbage все счета и архивы Burroughs, где их можно найти и сегодня (http://www.cbi.umn.edu/inv/burros). А образец компьютера фирмы находится в неком музее в Виржинии, о котором можно прочитать в http://www.cs.virginia.edu/brochure/museum.html.

На самом деле оказалось, что ссылок не так много, чтобы говорить о каком-то заметном влиянии продукции фирмы на прогресс компьютеров. Но, вероятно, это просто следствие небывалой динамики развития компьютерной науки и техники? Может быть, лет через десять мы так же будем задаваться вопросом типа "а что такое фирма NeXT и чем она знаменита?". Так или иначе, но сам выбор компьютеров Burroughs в качестве прототипа важнейшего советского компьютерного проекта говорит том, что они представляли отнюдь не рядовое явление.

В проспектах Buggoughs той поры говорилось, что в фирме работало около 40 тыс. сотрудников, половина которых была занята непосредственно в разработке и производстве компьютеров. Уже только один этот факт говорит о весьма больших, даже по американским меркам, размерах фирмы (тем более довольно узко специализированной). Представительства фирмы имелись в многих странах мира.

Фирма производила компьютеры, которые тогда позиционировались как "предназначенные для бизнес-применений". При этом Burroughs также представляла целую линейку масштабируемых моделей компьютеров, старшими в которой были B6700 и B7700. В целом, продукция фирмы представляла собой некоторую альтернативу серии IBM 360/370. Но на этом сходство с моделями IBM и заканчивается: Borroughs представила совершенно иной подход к реализации архитектуры компьютера.

В начало статьи

Архитектура Burroughs

Прежде всего следует отметить, что классические принципы организации ЭВМ совершенно принципиальным образом отличаются от устройства другого известного вычислителя — мозга человека. Простейший пример в организации памяти: ассоциативная у людей и адресованная у компьютеров. Результатом этих отличий является то, что одни задачи лучше решает компьютер, а другие — человек (например распознавание образов). Конечно, компьютер постоянно движется в сторону решения "человеческих" задач — та же ассоциативность, суперскалярность и пр. — но это происходит за счет огромных усилий. Условно говоря, там, где человеку нужно выполнить одну операцию, компьютеру приходится делать миллионы. Мне кажется, именно эта идея прослеживается в материалах Георгия Кузнецова в той же теме номера, особенно в "Hewlett, Packard, Intel" ("Компьютерра" #27/97), где обсуждаются положения обзора Питера Кристи и, в частности, говорится о "нелепости суперскалярной архитектуры".

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

Так вот, основной идей архитектуры Burroughs была максимальная реализация человеческой модели организация вычислительной системы. Например, ассемблером этого компьютера (т.е. системой команд) стал язык высокого уровня, в данном случае ALGOL-68.

ПРИМЕЧАНИЕ. Практически все современные языки программирования — Pascal, C, Ada, (а сейчас, наверное, также Basic и даже Fortran) - являются "алголоподобными". Самый "подобный" — Pascal.

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

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

Эти, а также многие другие новшества архитектуры позволяли не только увеличить производительность, но и повысить скорость переключения между различными задачами. В частности, это означало высокую реакцию на внешние события, а значит — возможность работы в системах реального времени, что было совершенно не под силу компьютерам архитектуры IBM 360/370.

ПРИМЕЧАНИЕ. Реальный масштаб времени — режим работы вычислительной системы, когда операции компьютера выполняются в темпе некоторого внешнего процесса. Например, бортовой компьютер должен успевать реагировать на все события, проходящие в ходе полета самолета, и выдавать нужные управляющие сигналы.

Еще одним ключевым моментом была ориентация архитектуры Burroughs на многопроцессорную обработку. Причем опять же речь шла не о параллельных системах регулярной структуры, а именно о тех, кого в докладе IPT HPC (см. статью Г.Кузнецова "Сделайте нам быстро" в "Компьютерре" #27/97) называют "малопроцессорными". В случае с Burroughs речь шла о 3-10 процессорах (для разных моделей), каждый из которых мог выполнять самостоятельную задачу, а в случае необходимости — работать с общими массивами данных. В качестве примера можно привести задачу ПВО, которая является однопользовательской с точки зрения командного пульта, но при этом состоит из отдельных параллельных частей (кто-то следит за небом, кто-то за стартовыми площадками ракет и пр.), работающих с единой информацией.

Однако наряду с аппаратной реализацией распараллеливания операций, здесь широко применялись программные методы. Именно поэтому в основе архитектуры использовалась версия ALGOL-68, которая имела развитые конструкции распараллеливания процессов и синхронизации событий. Кроме того, таким процессом мог управлять и сам программист, и компилятор языка. (Данная мысль подчеркивается в статье упомянутого выше Кристи.) Примечательно, что Burroughs на уровне аппаратуры мог реализовать это гораздо эффективнее современных процессоров — ведь он фактически воспроизводил структуру языка, т.е. его компилятора.

Наверное, здесь сказано далеко не все об особенностях архитектуры Burroughs. Но моей главной целью было просто показать, что речь шла о некотором уникальном явлении в компьютерном мире 70-х годов.

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

Вспомнив сейчас о Burroughs, невольно возникает ассоциация с более поздним примером в лице NeXT...

В начало статьи