ИСТОРИЯ ВТ

Say its weary, say its slow,

Say that luxury ignored it;

Say its growing old, but know

We all adored it*1.

Ида Родес

_____

*1 Скажи, что она изношена//Скажи, что она медлительна//Скажи, что она лишена нарядных одежд//Скажи, что она устарела//Но знай, что все мы обожали ее. Автор этих строк - Ида Родес (Ida Rhodes, 1900-1986), дочь эмигрантов из украинского города Немирова, окончившая факультет математики Корнельского университета и ставшая одной из первых женщин-программисток. С 1947 г. работала в отделении прикладной математики Национального бюро стандартов и внесла большой вклад в программирование ЭВМ, о которых пойдет речь в этой статье.

Одним из крупнейших государственных научно-исследовательских центров США является Национальное бюро стандартов (National Bureau of Standards, NBS), созданное в 1901 г. и переименованное в Национальный институт стандартов и технологии (National Institute of Standards and Technology, NIST) в 1988 г. Почти миллиардный бюджет (в 2005/2006 финансовом году) позволяет NIST содержать штат из 2800 ученых, инженеров, техников и администраторов, не считая 1800 приглашенных на временную работу американских и иностранных специалистов. Основные задачи института заключаются в создании научных методов и аппаратуры для измерений, разработке национальных стандартов в самых разнообразных областях техники и сельского хозяйства, совершенствовании био-, нано-, информационных, химических и других технологий в интересах промышленности США (в том числе и частного сектора).

Ральф Дж. Слуц (слева) и

Сэмюэль Н. Александер

Когда страна оказывалась в критической ситуации или когда возникала необходимость в определении наиболее рациональной организации разработок в новых областях науки и техники и т. д., за консультационными услугами к специалистам NIST регулярно обращались правительственные чиновники. Поэтому неудивительно, что в 1947 г. именно NBS получило задание подготовить предложения по обеспечению государственных учреждений электронными вычислительными машинами и провести переговоры с их изготовителями.

Тогда в этом бюро не было авторитетных специалистов по ВТ, поэтому руководитель отделения прикладной математики Джон Гамильтон Куртис (John Hamilton Curtiss, 1909-1977) обратился за советом к Комитету по быстродействующим вычислительным машинам при Национальном совете по исследованиям (в состав Комитета входили Д. фон Нейман, Д. Стибиц, Г. Эйкен и С. Колдуэлл*1). Комитет на своем заседании 9 марта 1948 г. рассмотрел три проекта ЭВМ, находившихся в стадии разработки (EDVAC, UNIVAC и RAYDAC) и не отдал предпочтения ни одному из них. Более того, он рекомендовал в первую очередь сосредоточить усилия (и государственные средства) не на создании ЭВМ и их тиражировании, а на исследовании элементной базы машин и новых типов внутренней памяти. Эти рекомендации не удовлетворили Куртиса: вопреки нейтральной позиции Комитета он настоял на выделении средств на реализацию проекта UNIVAC (см. статью "Две машины, две компании, две судьбы", PC Week/RE, N 44/2006, c. 42), а в мае 1948 г. убедил исполнительный совет NBS принять решение об организации лаборатории электронных вычислительных машин (ЛЭВМ). Ей надлежало спроектировать и изготовить небольшую ЭВМ, которая позволила бы тестировать и отрабатывать новые технические средства ВТ, а также решать задачи, поставленные учеными из государственных агентств (в первую очередь, разумеется, сотрудниками бюро). С самого начала предполагалось, что вычислительные возможности машины должны быть довольно скромными, поэтому ее назвали "Промежуточной вычислительной машиной" (Interim Computer) и лишь позднее, дабы "увековечить" авторство NBS, переименовали в "Восточную автоматическую вычислительную машину [Национального бюро стандартов]" (Standards Eastern Automatic Computer, SEAC).

_____

*1 Сэмюэль Хокс Колдуэлл (Samuel Hawks Caldwell, 1904-1960), профессор Массачусетского технологического института, ближайший сотрудник Ванневара Буша, вместе с ним разработавший в 1930-е гг. знаменитый аналоговый дифференциальный анализатор.    

Разработка SEAC началась в июне 1948 г. под руководством Сэмюэля Н. Александера*1 (Samuel N. Alexander, ум. 1967), начальника лаборатории электронных вычислительных машин. Его правой рукой был Ральф Дж. Слуц (Ralph J. Slutz, 1917-2005) - один из создателей принстонской ЭВМ IAS, перешедший в 1948 г. в NBS. Он так отзывался о своем шефе: "Сэм Александер был духовным руководителем инженеров, работавших в бюро над созданием оборудования для вычислительных машин, и относился ко мне скорее как к сыну, а не как к сотруднику. Наши отношения были исключительно теплыми и продуктивными".

_____

*1 После защиты в 1933 г. диссертации магистра электротехники в Массачусетском технологическом институте Сэмюэль Н. Александер работал в качестве инженера-электронщика в нескольких компаниях, в том числе в Bendix Aviation Corp., откуда в 1946 г. перешел в NBS. Он был одним из слушателей знаменитого курса лекций “Теория и методы проектирования электронных цифровых вычислительных машин”, который читался в Муровской школе Пенсильванского университета с 8 июля по 31 августа 1946 г. (см. статью “Автора!!!” в PC Week/RE, N 20/2006, c. 35).

Структура SEAC в целом повторяла структуру EDVAC, однако схемотехника машины была совершенной иной. Впервые в мире:

- в АУ использовались так называемые динамические триггеры на пентодах и импульсных трансформаторах, что позволило значительно ускорить выполнение арифметических операций;

- логические цепи были построены исключительно на кристаллических (германиевых) диодах (для усиления сигнала применялись лампы). Такое решение, за редким исключением*1, стало типовым для последующих ЭВМ.

_____

*1 Такими исключениями были, например, ЭВМ Circle и Monrobot.

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

SEAC была машиной синхронного действия с тактовой частотой в 1 МГц и поразрядно-последовательным АУ, что определялось использованием в качестве внутренней памяти 64 РУЛЗ (общей емкостью в 512 45-разрядных двоичных чисел). Ввод и вывод информации производился с помощью телетайпа. Машина могла работать в трех- или четырехадресном формате (в первом случае осуществлялось естественное управление вычислительным процессом, во втором - четвертый адрес определял местонахождение следующей команды в программной последовательности). Учитывая промежуточный характер SEAC, разработчики ограничили ее командный набор семью операциями над числами с фиксированной запятой: сложение, вычитание, умножение, деление, сравнение, команды ввода и вывода.

SEAC содержала 747 ламп и 10,5 тыс. диодов (после модернизации - соответственно 2300 ламп и 24 тыс. диодов), а среднее время сложения и умножения составляло 0,864 и 2,98 мс.

Впервые машина выполнила тестовую задачу 7 апреля 1950 г., примерно через месяц после этого осуществила первый практический расчет (вычисление траектории прохождения лучей через оптическую систему), а 20 июня состоялось ее официальное представление. SEAC - первая практически эксплуатировавшаяся американская ЭВМ с хранимой программой - работала по 20 ч в сутки семь дней в неделю вплоть до 23 апреля 1964 г.

Правда, обслуживающий персонал ежедневно тратил 4 ч на профилактику машины. Она, в частности, проводилась и так (по воспоминаниям Ральфа Слуца): "У нас было больше проблем из-за плохой пайки, чем из-за ламп, диодов или линий задержки. Я хорошо помню, что использовались два способа обнаружения ошибок (debugging)... Мы запускали тестовую программу, брали нечто вроде деревянной ложки и, идя вдоль машины, обстукивали ложкой все, что попадалось на глаза. Если программа останавливалась, нам иногда удавалось найти бракованный узел. Когда же такой тест проходил благополучно, мы применяли метод "стандартного прыжка": во время работы программы подпрыгивали как можно выше (сантиметров на пятнадцать) на деревянном полу, на котором была установлена машина, и пытались при приземлении как можно сильнее ударить по полу. Благополучное окончание такого испытания означало, что можно было приступать к решению задачи".

Другой оригинальный способ контроля заключался в следующем. К одному из регистров машины через усилитель подключался динамик. По доносящемуся из него набору звуков оператор или инженер, обслуживающий машину, могли судить о сбоях в ее работе, например о зацикливании программы или о ее "зависании" и т. д.*1 Аналогичный "звуковой контроль" использовался затем во многих ламповых ЭВМ - скажем, в JONNIAC и ORDVAC.

_____

*1 Отсюда - один шаг до синтеза “машинной” музыки, однако тогда он сделан не был. Лишь в июне 1975 г. Стивен Домпье (Steven Dompier) - один из первых хакеров

- заставил примитивный микрокомпьютер Altair (в совокупности с дешевеньким радиоприемником) воспроизвести мелодию битловской баллады “Fool on the Hill”.

В течение всего 14-летнего периода эксплуатации SEAC в нее вносились многочисленные изменения и усовершенствования, так что машина - в соответствии с первоначальным замыслом Куртиса - служила полигоном для испытания целого ряда нововведений (правда, не все они прижились в дальнейшем). Расскажу о некоторых из них.

В первую очередь усилия инженеров ЛЭВМ были направлены на изыскание способов построения более быстрых видов внутренней памяти машины. Они провели многочисленные, но окончившиеся неудовлетворительно опыты с памятью на магнитных сердечниках и с твердотельными (магнитострикционными) линиями задержки (полученными от британской компании Elliott Brothers Ltd.). В конце концов было решено совместно с корпорацией RCA заняться доведением трубки Уильямса (ранее в качестве ее основы использовалась стандартная ЭЛТ) до кондиции. В результате удалось создать трубку с более равномерным фосфорным покрытием экрана и новой конструкцией электронной пушки. Машина была дополнена памятью на этих трубках емкостью 1К 45-разрядных слов (одновременно до такой же емкости была увеличена память на РУЛЗ). Наличие двух различных видов памяти позволяло использовать одну для тестирования другой. При этом, учитывая, что SEAC выполняла вычисления поразрядно-последовательно, данные, хранившиеся на трубках, с помощью регистра сдвига преобразовывались из параллельного вида в последовательность битов.

ЭВМ SEAC

Следующие усовершенствования коснулись внешних запоминающих устройств. Пожалуй, наибольший интерес из них представлял модифицированный офисный диктофон от компании Pierce Wire Recorder Corp., в картридже которого стальная проволока была заменена никелевой (для получения более мощного выходного сигнала). Каждый программист имел свой картридж, на нем он в цифровом виде хранил необходимые ему программы и результаты вычислений. Кроме того, было разработано специальное устройство, названное "переписчик" (outscriber), для переноса данных с магнитного картриджа на бумажную ленту.

Еще одной новинкой был накопитель на магнитной ленте (НМЛ). Его разработчик Джеймс Пайк (James Pike) отказался от использования бобин с лентой и максимально упростил лентопротяжный механизм: лента шириной в половину дюйма зажималась между двумя вращающимися барабанами с прижимными роликами и "перегонялась" со скоростью 37,5 дюймов в секунду из подающего устройства в приемное и обратно (в качестве таких устройств использовались стеклянные карманы, напоминавшие корзины для использованных бумаг). Лента имела майларовую подложку и могла хранить на семи дорожках до 24 тыс. машинных слов, записанных с плотностью 260 знаков на дюйм (скорость передачи информации составляла 104 знака в секунду). К машине можно было подключить до пяти таких накопителей.

В качестве устройства ввода-вывода использовался, в частности, флексорайтер (flexowriter). Эта машина, разработанная в 1940-е гг. корпорацией IBM и изготовлявшаяся калифорнийской компанией Friden Calculating Machine Co., содержала наборную клавиатуру, печатающую машинку, фотоэлектрический считыватель информации с перфорированной бумажной ленты и пробойник (перфоратор). Перфорированная лента затем могла быть установлена в флексорайтер, который распечатывал считанную информацию.

Рассел Кирш

Машина была дополнена дисплеем на ЭЛТ, на которой можно было вывести графическую информацию, и джойстиком, управлявшим положением объекта на дисплее.

Стоит упомянуть также об успешных опытах по дистанционному доступу к машине с телетайпа, установленного за несколько миль от здания NBS в одном из вашингтонских отелей*1, и об увеличении набора команд до 16.

_____

*1 Читатель помнит, что впервые такой доступ к релейной машине Model 1 осуществил Джордж Стибиц в сентябре 1940 г. (см. статью “Щелкающие машины”, PC Week/RЕ, N 6/2006, с. 42).

И наконец, последнее по порядку, но не по значению: в 1957 г. группа инженеров во главе с выпускником Гарвардского университета Расселом A. Киршем (Russell A. Kirsch) создала один из первых сканеров, предназначавшихся для ввода в машину изображений (фотографий, рисунков, схем и т. д.) и символов в форме, удобной для запоминания и последующей обработки. Сканер представлял собой вращающийся барабан, на который крепились объект сканирования, фотоумножитель и помещенная перед ним маска, дробившая изображение на дискретные пикселы квадратной формы (0,25х0,25 мм). Ввиду ограниченной емкости внутренней памяти площадь вводимого изображения не могла превышать 176х176 пикселов. Первым отсканированным и затем выведенным на дисплей (ЭЛТ) объектом стала фотография новорожденного сына Кирша.

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

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

Если SEAC была замечательным подспорьем в научно-технических исследованиях сотрудников Национального бюро стандартов (NBS) и других организаций, то для Института численного анализа (Institute for Numerical Analysis, INA) ЭВМ была жизненно важной необходимостью. Этот институт, расположенный на территории кампуса Калифорнийского университета в Лос-Анджелесе (University of California, Los Angeles, UCLA), принадлежал NBS, хотя финансировался из фондов управления военно-морских исследований (Office of Naval Research, ONR). В нем работали такие выдающиеся математики-прикладники, как Джордж Элмер Форсайт (George Elmer Forsythe, 1917-1972) и Корнелис Ланчос (Cornelius Lanczos, 1893-1974), а с середины 1950-х гг. INA возглавил уже знакомый нам Чарльз Б. Томпкинс (см. статью "Недолгая, но славная эра", PC Week/RE, N 3/2007, c. 36).

Как и в случае с SEAC, руководство NBS приняло в октябре 1948 г. решение не дожидаться ЭВМ от стороннего изготовителя, а построить машину собственными силами. Для этого в конце года в INA был переведен вернувшийся из Британии Гарольд Дуглас Хаски (Harold Douglas Huskey, р.1916; см. статью "Ни на что не похожая", PC Week/RE, N 35/2006, с.52), опытнейший компьютерщик, один из разработчиков ENIAC и EDVAC.

"В январе 1949 г., - вспоминает Хаски, - мне отвели пустую комнату во временном здании и сказали: "Вперед!" Не было ни штата сотрудников, ни станков, ни другого необходимого оборудования и комплектующих. Хорошо, что к этому времени закончился контракт между NBS и компанией Эккерта - Моучли, и по моей просьбе оборудование, закупленное для его выполнения, отгрузили нам в Лос-Анджелес... Финансирование было также скудным - ONR выделило на разработку и изготовление машины всего 300 тыс. долл."

(Окончание следует)

Версия для печати