Электронная ламповая компьютерная система 1950-х годов
Машина обработки данных с магнитным барабаном IBM 650 — ранний цифровой компьютер, выпущенный IBM в середине 1950-х годов. [2] [3] Это был первый в мире компьютер массового производства. [4] [5] Было выпущено почти 2000 систем, последняя в 1962 году, [6] [7] и это был первый компьютер, который принес значительную прибыль. [7] Первый был установлен в конце 1954 года, и это был самый популярный компьютер 1950-х годов. [8]
Модель 650 предлагалась деловым, научным и инженерным пользователям как более медленная и менее дорогая альтернатива компьютерам IBM 701 и IBM 702 , которые предназначались для научных и деловых целей соответственно. [7] Она также предназначалась для пользователей машин с перфокартами , которые переходили с вычислительных перфораторов , таких как IBM 604 , на компьютеры. [1] : 5 [9]
Благодаря своей относительно низкой стоимости и простоте программирования , 650 использовался для создания широкого спектра приложений, от моделирования работы экипажа подводной лодки [10] до обучения программированию студентов старших классов и колледжей. IBM 650 стал очень популярен в университетах, где целое поколение студентов впервые изучало программирование. [11]
Он был анонсирован в 1953 году и в 1956 году улучшен как IBM 650 RAMAC с добавлением до четырех дисковых накопителей. [12] Цена покупки чистой консоли IBM 650, без блока считывания и перфорации, составляла 150 000 долларов в 1959 году [13] или примерно 1 500 000 долларов по состоянию на 2023 год. Поддержка 650 и ее компонентов была прекращена в 1969 году.
650 был двухадресным , би -квинарно-кодированным десятичным компьютером (и данные, и адреса были десятичными), с памятью на вращающемся магнитном барабане . Поддержка символов обеспечивалась блоками ввода/вывода, преобразующими алфавитные и специальные кодировки символов перфокарт в/из двузначного десятичного кода.
650 работал на частоте 125 кГц. [14] Он мог складывать или вычитать за 1,63 миллисекунды, умножать за 12,96 мс и делить за 16,90 мс. Средняя скорость 650 оценивалась примерно в 27,6 мс на инструкцию, или примерно 40 инструкций в секунду. [15]
IBM 7070 (знаковые 10-значные десятичные слова), анонсированный в 1958 году, как ожидалось, станет «общим преемником, по крайней мере, 650 и [IBM] 705 ». [17] IBM 1620 (переменная длина десятичных слов), представленный в 1959 году, был адресован нижнему сегменту рынка. UNIVAC Solid State (двухадресный компьютер, знаковые 10-значные десятичные слова) был анонсирован Sperry Rand в декабре 1958 года в качестве ответа на 650. Ни один из них не имел набора инструкций, совместимого с 650.
Аппаратное обеспечение
Базовая система 650 состояла из трех блоков: [18]
Консольный блок IBM 650 [19] вмещал в себя магнитный барабанный накопитель, арифметическое устройство (использующее электронные лампы) и пульт оператора.
Блок питания IBM 655 [20]
Устройство для считывания и перфорации карт IBM 533 или IBM 537 [21] [22] [23] У IBM 533 были отдельные устройства подачи для считывания и перфорации; у IBM 537 был один механизм подачи, поэтому он мог считывать и затем перфорировать одну и ту же карту.
Вращающаяся барабанная память обеспечивала 1000, 2000 или 4000 слов памяти по адресам от 0000 до 0999, 1999 или 3999 соответственно. Каждое слово имело 10 двоично-кодированных десятичных цифр , представляющих знаковое 10-значное число или пять символов. (Считая двоично-кодированную цифру как семь бит, 4000 слов будут эквивалентны 35 килобайтам.) [31] [32] Слова на барабанах были организованы в полосы вокруг барабана, пятьдесят слов на полосу и 20, 40 или 80 полос для соответствующих моделей. Доступ к слову мог быть получен, когда его местоположение на поверхности барабана проходило под головками чтения/записи во время вращения (при вращении со скоростью 12 500 об/мин неоптимизированное среднее время доступа составляло 2,5 мс ). Из-за этого времени второй адрес в каждой инструкции был адресом следующей инструкции. Программы затем можно было оптимизировать , помещая инструкции по адресам, которые были бы немедленно доступны после завершения выполнения предыдущей инструкции. IBM предоставила форму с десятью столбцами и 200 строками, чтобы позволить программистам отслеживать, куда они помещают инструкции и данные. Позже был предоставлен ассемблер SOAP (Symbolic Optimal Assembly Program), который выполнял грубую оптимизацию. [33] [34]
Компьютеры LGP-30 , Bendix G-15 и IBM 305 RAMAC также использовали электронные лампы и барабанную память, но они существенно отличались от IBM 650.
Считываемые с барабана инструкции отправлялись в программный регистр (в современной терминологии — регистр инструкций ). Считываемые с барабана данные проходили через 10-разрядный распределитель. У 650 был 20-разрядный аккумулятор , разделенный на 10-разрядные нижние и верхние аккумуляторы с общим знаком. Арифметика выполнялась одноразрядным сумматором. Консоль (10-разрядные переключатели, один знаковый переключатель и 10 би-квинарных индикаторных ламп), распределитель, нижние и верхние аккумуляторы были адресуемыми; 8000, 8001, 8002, 8003 соответственно.
Устройство хранения IBM 653
Дополнительный блок хранения данных IBM 653 был представлен 3 мая 1955 года и в конечном итоге обеспечивал до пяти функций: [35]
Контроллер магнитной ленты (для устройств IBM 727 Magnetic Tape) (10 дополнительных кодов операций)
Контроллер дискового хранилища (улучшение 1956 года для нового тогда IBM 355 Disk Storage Unit) (пять дополнительных кодов операций)
Шестьдесят 10-значных слов памяти на магнитном сердечнике по адресам от 9000 до 9059. Эта небольшая быстрая память имела время доступа 96 мкс , что в 26 раз лучше вращающегося барабана. Эта функция добавляла пять кодов операций и была необходима в качестве буфера для ввода-вывода ленты и диска. 60 слов также могли использоваться программами для ускорения внутренних циклов и поиска в таблицах.
Три четырехзначных индексных регистра по адресам от 8005 до 8007; адреса барабана индексировались путем добавления к ним 2000, 4000 или 6000, адреса ядра индексировались путем добавления к ним 0200, 0400 или 0600. Если в системе был барабан на 4000 слов, то индексация производилась путем добавления 4000 к первому адресу для индексного регистра A, добавления 4000 ко второму адресу для индексного регистра B и добавления 4000 к каждому из двух адресов для индексного регистра C (индексация для систем на 4000 слов применялась только к первому адресу). Системы на 4000 слов требовали транзисторной схемы чтения/записи для памяти барабана и были доступны до 1963 года. (18 дополнительных кодов операций)
Плавающая точка – арифметические инструкции поддерживали восьмизначную мантиссу и двузначную характеристику (экспоненту смещения) – MMMMMMMMCC , обеспечивая диапазон от ±0,00000001E-50 до ±0,99999999E+49. (семь дополнительных кодов операций)
Набор инструкций
650 инструкций состояли из двухзначного кода операции , четырехзначного адреса данных и четырехзначного адреса следующей инструкции. Знак игнорировался на базовой машине, но использовался на машинах с дополнительными функциями. Базовая машина имела 44 кода операций. Дополнительные коды операций были предоставлены для опций, таких как плавающая точка, хранилище на ядре, индексные регистры и дополнительные устройства ввода-вывода. Со всеми установленными опциями было 97 кодов операций. [35]
Инструкция поиска по таблице (TLU) могла сравнивать по принципу высокого равенства указанное 10-значное слово с 48 последовательными словами на той же полосе барабана за один оборот в 5 мс, а затем переключаться на следующую полосу вовремя для следующих 48 слов. Этот подвиг был примерно в треть скорости в тысячу раз более быстрой двоичной машины в 1963 году (1500 микросекунд на IBM 7040 против 5000 микросекунд на 650) для поиска 46 записей, если обе были запрограммированы на ассемблере. Существовала дополнительная инструкция поиска по таблице Equal с той же производительностью.
Команда Read (RD) считывала 80-колоночную карту числовых данных в десять слов памяти; распределение цифр по словам определялось проводкой панели управления считывателя карт . При использовании с алфавитным устройством считывающего устройства 533 Punch можно было считывать комбинацию числовых и буквенно-цифровых столбцов (максимум 30 буквенно-цифровых столбцов). [1] Функция расширения позволяла считывать больше буквенно-цифровых столбцов, но определенно не более 50, поскольку только десять слов (пять символов на слово) сохранялись на барабане при операции чтения карты. [ требуется ссылка ]
Базовые коды операций машины были: [36]
^ Используется для того, чтобы панель управления 533 могла подавать сигналы на ЦП.
^ Подсчитывает старшие нули в верхнем аккумуляторе.
^ Сохраненное значение принимает знак аккумулятора, за исключением случая после операции деления; в этом случае сохраняется знак остатка.
Примечания:
Опции IBM 653 могли реализовывать дополнительные коды инструкций. [35]
Образец программы
Эта однокарточная программа, взятая из 650 Programming Bulletin 5, IBM, 1956, 22-6314-0 , установит большую часть памяти барабана на минус нули. Программа включает примеры инструкций, выполняемых с переключателей консоли и с аккумулятора.
Для начала на загрузочной карте перфорируется 80 последовательными цифрами (второй столбец ниже), так что при считывании содержимое ячеек барабана с 0001 по 0008 будет таким, как показано на рисунке. [37]
Цифровые переключатели консоли (адрес 8000) вручную устанавливаются на инструкцию чтения с адресом данных 0004.
loc-op|data|next ation |addr|инструкция | |адрес
8000 RD 70 0004 xxxx Прочитайте загрузите карту в первую зону считывания полосы
Каждая полоса барабана имеет область чтения; эти области чтения находятся в позициях 0001-0010, 0051-0060, 0101-0110 и так далее. Любой адрес в полосе может быть использован для идентификации этой полосы для инструкции чтения; адрес 0004 идентифицирует первую полосу. Затем начинается выполнение с консоли со считывания восьми слов на карте загрузки в позициях 0001-0008 первой полосы памяти. В случае считывания карты загрузки «адрес следующей инструкции» берется из поля адреса данных, а не из поля адреса следующей инструкции (показано выше как xxxx). Таким образом, выполнение продолжается с 0004
0004 RSU 61 0008 0007 Сбросить весь аккумулятор, вычесть из верхнего (8003) значение 2019990003 0007 LD 69 0006 0005 Распределитель нагрузки с 0100008000 0005 STD 24 0000 8003 Сохраните распределитель в ячейке 0000, следующая инструкция в 8003 (верхний аккумулятор) Примечание: перемещение данных или инструкций из одного места на барабане в другое. требуются две инструкции: LD, STD.
Теперь выполняется цикл из двух инструкций:
8003 STL 20 1999 0003 Сохранить нижний аккумулятор (этот аккумулятор был сброшен в 0 инструкцией RSU выше) Адрес данных «1999» уменьшается ниже при каждой итерации. Эта инструкция была помещена в верхний аккумулятор инструкцией RSU выше. Примечание: эта инструкция, которая сейчас находится в верхнем аккумуляторе, будет уменьшена, а затем выполняется снова, пока он находится в аккумуляторе.
0003 AU 10 0001 8003 Уменьшить адрес данных инструкции в аккумуляторе на 1 (путем прибавления 10000 к отрицательному числу)
Адрес данных STL в конечном итоге будет уменьшен до 0003, а инструкция AU ... по адресу 0003 будет перезаписана нулями. Когда это произойдет (адрес следующей инструкции STL останется 0003), выполнение продолжится следующим образом:
0003 NOOP 00 0000 0000 Инструкция без операции, адрес следующей инструкции — 0000 0000 HALT 01 0000 8000 Остановка, следующий адрес инструкции — консоль (эта инструкция Halt была сохранена в 0000 инструкцией STD выше)
Программное обеспечение
Набор инструкций 650 был достаточно прост, чтобы можно было писать небольшие программы на машинном языке, и это было обычным делом для студенческих упражнений. [38] Существовал формат «одна инструкция на карту», который можно было загрузить непосредственно в машину и выполнить.
Машинный язык был неудобен для больших программ, и со временем для IBM 650 были написаны различные языки программирования и инструменты. К ним относятся:
Пакет виртуальной машины приложения Interpretive , первоначально опубликованный как "Complete Floating Decimal Interpretive System for the IBM 650 Magnetic Drum Calculator". Он был известен под несколькими названиями:
Интерпретатор Wolontis–Bell Labs, система Bell, интерпретатор Bell, система интерпретации Bell [39] или BLIS — система интерпретации Bell Lab [40]
L1 и (позже) L2 [41] [42] – известны за пределами Bell Labs как «Bell 1» и «Bell 2», среди прочих названий (см. выше)
Синтетическая система программирования для коммерческих приложений [43]
Алгебраические языки/компиляторы
Внутренний транслятор (IT) — Компилятор [44]
Пересмотренный унифицированный новый компилятор IT Basic Language Extended (RUNCIBLE) — расширение IT в Case [45]
ДЛЯ ТРАНЗИТА — Версия Фортрана , которая компилируется в IT, который в свою очередь компилируется в SOAP [46]
^ abc IBM 650 Машина обработки данных с магнитным барабаном: Руководство по эксплуатации (PDF) . IBM. 1955. 22-6060-1.
^ "Архивы IBM: Установка IBM 650 с IBM 727 Magnetic Tape Unit и IBM 355 Disk Storage". IBM . US. Архивировано из оригинала 2023-04-09 . Получено 5 сентября 2019 .
^ "Архивы IBM: IBM 650 Assembly at Endicott plant". IBM . US. Архивировано из оригинала 2023-10-23 . Получено 5 сентября 2019 .
^ "История компьютеров 1937-2011". Университет Олд Доминион . Получено 22 июня 2021 г.
^ «IBM в эпоху компьютеров». Проект истории вычислений Миннесоты . 28 июня 2018 г. Получено 21 июня 2021 г.
^ Pugh, Emerson W. (1995). Building IBM: Shaping an Industry and Its Technology . MIT Press. стр. 182. ISBN978-0-262-16147-3.
^ abc "Магнитный барабанный калькулятор IBM 650". Columbia.edu .
^ Дэвис, Гордон Б. (1971). Введение в электронные компьютеры (второе издание). Нью-Йорк: McGraw-Hill. стр. 10. ISBN978-0-070-15821-4.
^ "Архивы IBM: 650 клиентов". IBM . Архивировано из оригинала 2023-07-25.
^ Грей, Уэйн Д. (2007). Интегрированные модели когнитивных систем . Нью-Йорк: Oxford University Press. стр. 36. ISBN978-0-19-518919-3.
^ "Представлен калькулятор с магнитным барабаном IBM 650". Computerhistory .
^ "Архивы IBM: пресс-релиз объявления 650 RAMAC". IBM . Архивировано из оригинала 2023-06-09.
^ "Архивы IBM: пресс-релиз об анонсе IBM 650 Model 4". IBM . 2003-01-23. Архивировано из оригинала 2023-10-23 . Получено 2023-07-25 .
^ Ройс, Дэвид (1957). "Система IBM 650 RAMAC disk storage operation". Доклады, представленные на 26-28 февраля 1957 года на совместной западной компьютерной конференции: Методы обеспечения надежности на - IRE-AIEE-ACM '57 (Western) . ACM Press. стр. 43–49. doi : 10.1145/1455567.1455576 .
^ ab "Биографические заметки Кнута". softpanorama.org . Получено 2023-07-25 .
^ "IBM Archives: 650 Chronology". Архивировано из оригинала 2023-04-17.
^ Баше, Чарльз Дж.; Джонсон, Лайл Р.; Палмер, Джон Х.; Пью, Эмерсон В. (1986). Первые компьютеры IBM . Массачусетский технологический институт. стр. 473. ISBN0-262-02225-7.
^ abcd "IBM Archives: 650 Components". Архивировано из оригинала 2023-07-25.
^ "Архивы IBM: IBM 650 Console Unit". IBM . Архивировано из оригинала 2023-10-23.
^ "Архивы IBM: IBM 655 Power Unit". IBM . Архивировано из оригинала 2023-04-08.
↑ Другие названия IBM для модели 533 включали «Устройство ввода-вывода» и «Устройство чтения-перфорации» .
^ "Архивы IBM: IBM 533 Card Read Punch". IBM . Архивировано из оригинала 2023-04-08.
^ "Архивы IBM: IBM 537 Card Read Punch". IBM . Архивировано из оригинала 2023-04-09.
^ Physical Planning Installation Manual 650 System (PDF) . IBM. 1 октября 1957 г. стр. 32. Получено 31 мая 2018 г. – через Bitsavers.
^ Customer Engineering Manual of Instruction (PDF) . IBM. 1956. стр. I-17 . Получено 31 мая 2018 г. – через Bitsavers.
^ "Архивы IBM: IBM 355 Disk Storage". IBM . Архивировано из оригинала 2023-04-09.
^ "Архивы IBM: IBM 407 accounting machine". IBM . Архивировано из оригинала 2023-07-03.
^ "Архивы IBM: IBM 652 Control Unit". IBM . Архивировано из оригинала 2023-04-08.
^ "Архивы IBM: Вспомогательный блок IBM 653". IBM . Архивировано из оригинала 2023-04-09.
^ "Архивы IBM: IBM 838 Inquiry Station". IBM . Архивировано из оригинала 2023-04-08.
^ "Архивы IBM: IBM 650 Magnetic Drum". IBM . Архивировано из оригинала 2023-02-07.
^ "Архивы IBM: Анонс IBM 650 Model 4". IBM . Архивировано из оригинала 2023-10-23.
↑ Кугель, Херб (22 октября 2001 г.). «ИБМ 650». Доктор Добб.
^ ab IBM (1957). SOAP II для IBM 650 (PDF) . C24-4000-0.
^ abc Расширения процессора IBM 650
^ IBM 650 System Bulletin, Базовые коды операций, Оптимизация программ, Загрузка программ (PDF) . IBM. 1958.
^ 12-дырокол может быть использован для идентификации карт как карт загрузки . Карты загрузки напрямую считываются в слова 1-8 указанной полосы хранения
^ ab Андре, Ричард В. (1958). Программирование компьютера с магнитным барабаном IBM 650 и машины обработки данных (PDF) .
^ Кнут, Дональд Э. (январь–март 1986 г.). «IBM 650: оценка с места событий». IEEE Annals of the History of Computing . 8 (1): 50–55. doi :10.1109/MAHC.1986.10010. S2CID 34595049.
^ IBM Reference Manual: Floating-Decimal Interpretive System for the IBM 650 (PDF) . IBM. 1959. стр. 63, xxi. 28-4024. Это перепечатка IBM 650 Technical Newsletter No. 11, March 1956, form 31-6822. В настоящем справочном руководстве содержится следующий отчет, в котором отмечается, что по своим внешним характеристикам система интерпретации, описанная в этом отчете, во многом обязана системе IBM Speedcoding System для 701. Волонтис, В. М. Полная система интерпретации с плавающей десятичной дробью для калькулятора IBM 650 Magnetic Drum Calculator . Bell Laboratories, Inc., Мюррей-Хилл, Нью-Джерси.
^ Холбрук, Бернард Д.; Браун, У. Стэнли. «Технический отчет по вычислительной науке № 99 – История исследований в области вычислительной техники в лабораториях Белла (1937–1975)». Bell Labs . Архивировано из оригинала 2 сентября 2014 г. Получено 27 августа 2020 г.
^ Волонтис, В. М. «Полная система интерпретации с плавающей десятичной дробью для калькулятора с магнитным барабаном IBM 650» (PDF) . США: IBM – через bitsavers.
^ 650 Programming Bulletin 2. IBM. 1956. стр. 40. 22-6294-0. Описанная здесь интерпретирующая процедура представляет собой фиксированную десятичную трехадресную систему, которая обеспечивает математические, логические и операции ввода-вывода. Логика для этой системы была получена из Complete Floating Decimal Interpretive System для 650 , разработанной Bell Laboratories, Murray Hill, New Jersey.
^ Perlis, AJ ; Smith, JW; VanZoeren, HR (1958-04-18). Внутренний переводчик; IT, Компилятор для 650 (PDF) . Библиотечная программа 650 2.1.001.
^ Дональд Кнут опубликовал блок-схему компилятора в 1959 году; Кнут, Д.Э. (1959). «RUNCIBLE — алгебраическая трансляция на ограниченном компьютере». Communications of the ACM . 2 (11): 18–21. doi : 10.1145/368481.368507 . S2CID 8224014.; это была его первая научная работа.
^ IBM (1959). FOR TRANSIT Автоматическая система кодирования для IBM 650 (PDF) . 28-4028.
^ IBM (1960). Автоматическая система кодирования FORTRAN для IBM 650 (PDF) . 29-4047.
^ Грей, Джордж. "Твердотельный компьютер UNIVAC". Информационный бюллетень Unisys History, том 1.2, декабрь 1992 г. (пересмотрено в 1999 г.) . Архивировано из оригинала 4 марта 2016 г.
Дальнейшее чтение
Андре, Ричард В. (1958). Программирование компьютера с магнитным барабаном IBM 650 и машины обработки данных (PDF) .
IBM (1955). Руководство по эксплуатации машины обработки данных с магнитным барабаном IBM 650 (PDF) . 22-6060.
IBM (1956). Система обработки данных IBM 650, Руководство по техническому обслуживанию клиентов (PDF) . 22-6284-1.
IBM (1955). IBM представляет машину обработки данных с магнитным барабаном 650 (PDF) . 32-6770. Архивировано из оригинала (PDF) 2012-02-05 . Получено 2006-09-24 .
Кнут, Дональд Э. (январь–март 1986 г.). «IBM 650: оценка с места событий» (PDF) . Анналы истории вычислительной техники IEEE . 8 (1): 50–55. doi :10.1109/MAHC.1986.10010. S2CID 34595049.
Внешние ссылки
На Викискладе есть медиафайлы по теме IBM 650 .
Bitsavers.org: Документы IBM 650 (файлы PDF)
Колумбийский университет: IBM 650 в Колумбийском университете
IBM - Архивы - Ценные ресурсы по истории IBM - Соединенные Штаты на Wayback Machine (архив 2023-07-12)
IBM 650: рабочая лошадка современной промышленности на Wayback Machine (архивировано 03.07.2023) Включает хронологию, технические характеристики, фотографии, типичных клиентов и области применения, для которых использовалась модель 650.
Видеоролик IBM 650 и RAMAC в работе, альтернативная версия
Вайк, Мартин Х. (март 1961 г.). Третий обзор отечественных электронных цифровых вычислительных систем. Баллистические исследовательские лаборатории (BRL). Отчет № 1115.Включает около 40 страниц подробного обзора IBM 650: клиенты, приложения, спецификации и затраты.
IBM 650 «Машина обработки данных с магнитным барабаном» Архивировано 2023-02-08 на Wayback Machine