IBM 650 в Техасском университете A&M. Перфоратор чтения карт IBM 533 находится справа.Панель консоли IBM 650, показывающая би-пятеричные индикаторы. (В Доме истории обработки данных IBM (закрыто), Зиндельфинген)Крупный план би-пятерных индикаторовБарабан памяти от IBM 650Консольный модуль IBM 650, вид сбоку. Первый компьютер в Испании (1959 г.), сейчас находится в Национальном музее науки и технологий в Ла-Корунье.
Машина обработки данных с магнитным барабаном IBM 650 — это один из первых цифровых компьютеров , выпущенный IBM в середине 1950-х годов. [1] [2] Это был первый компьютер массового производства в мире. [3] [4] Было произведено почти 2000 систем, последняя в 1962 году, [5] [6] и это был первый компьютер, получивший значительную прибыль. [6] Первый компьютер был установлен в конце 1954 года и стал самым популярным компьютером 1950-х годов. [7]
Модель 650 предлагалась деловым, научным и инженерным пользователям как более медленная и дешевая альтернатива компьютерам IBM 701 и IBM 702 , которые предназначались для научных и деловых целей соответственно. [6] Он также продавался пользователям перфокарточных машин , которые переходили от расчета перфокарт , таких как IBM 604 , к компьютерам. [8] : 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 (десятизначные десятичные слова со знаком), анонсированный в 1958 году, станет «общим преемником, по крайней мере, 650 и [IBM] 705 ». [17] IBM 1620 (десятичная переменная длина), представленная в 1959 году, адресовалась нижнему сегменту рынка. UNIVAC Solid State (двухадресный компьютер, подписанный 10-значными десятичными словами) был анонсирован Сперри Рэндом в декабре 1958 года как ответ на 650. Ни один из них не имел набора команд, совместимого с 650.
Аппаратное обеспечение
Базовая система 650 состояла из трёх агрегатов: [18]
IBM 650 Console Unit [19] вмещал в себя магнитный барабан-накопитель, арифметическое устройство (с использованием электронных ламп) и консоль оператора.
Блок питания ИБМ 655 [20]
Перфоратор для чтения карт IBM 533 или IBM 537 [21] [22] [23] IBM 533 имел отдельные каналы для чтения и перфорации; IBM 537 имел один канал, поэтому мог читать и затем вбивать одну и ту же карту.
Память с вращающимся барабаном обеспечивала 1000, 2000 или 4000 слов памяти по адресам от 0000 до 0999, 1999 или 3999 соответственно. Каждое слово имело 10 десятичных цифр в двоичном коде , представляющих десятизначное число со знаком или пять символов. (Считая цифру в двоичном коде 7 битами, 4000 слов будут эквивалентны 35 килобайтам.) [32] [33] Слова на барабанах были организованы в группы вокруг барабана, по пятьдесят слов на полосу, и 20, 40, или 80 полос для соответствующих моделей. Доступ к слову можно было получить, когда его местоположение на поверхности барабана проходило под головками чтения/записи во время вращения (при вращении со скоростью 12500 об/мин , неоптимизированное среднее время доступа составляло 2,5 мс ). Из-за такого времени второй адрес в каждой инструкции был адресом следующей инструкции. Затем программы можно было оптимизировать , помещая инструкции по адресам, которые были бы доступны немедленно после завершения выполнения предыдущей инструкции. IBM предоставила форму с десятью столбцами и 200 строками, чтобы программисты могли отслеживать, куда они помещают инструкции и данные. Позже был предоставлен ассемблер SOAP (Symbolic Optimal Assembly Program), который выполнял грубую оптимизацию. [34] [35]
Компьютеры 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 года и в конечном итоге обеспечивал до пяти функций: [36]
Контроллер магнитной ленты (для устройств IBM 727 Magnetic Tape) (10 дополнительных кодов операций)
Контроллер дискового хранилища (улучшение 1956 года для нового IBM 355 Disk Storage Unit) (5 дополнительных кодов операций)
Шестьдесят 10-значных слов памяти на магнитных сердечниках по адресам от 9000 до 9059; небольшая быстрая память (это устройство обеспечивало время доступа к памяти 96 мкс , что в 26 раз лучше по сравнению с вращающимся барабаном), необходимая для ленточного и дискового буфера ввода-вывода. (5 дополнительных кодов операций)
Три четырехзначных индексных регистра по адресам с 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 кодов операций. [36]
Команда поиска по таблице (TLU) могла бы с высокой точностью сравнить указанное 10-значное слово с 48 последовательными словами на той же полосе барабана за один оборот в 5 мс, а затем вовремя переключиться на следующую полосу для следующих 48 слов. Этот подвиг составлял примерно треть скорости двоичной машины, работавшей в тысячу раз быстрее в 1963 году (от 1500 микросекунд у IBM 7040 до 5000 микросекунд у IBM 650) при поиске 46 записей, если обе были запрограммированы на ассемблере. Была дополнительная команда поиска по таблице Equal с той же производительностью.
IBM 650 в Texas A&M, открыт, чтобы показать заднюю часть передней панели, модули электронных ламп и барабан для хранения.Модуль схемы с электронной лампой того же типа, что и в модели 650.Класс в Высшей научной школе Бронкса в 1960 году с схемой инструкций IBM 650 над доской, вверху справа.
Коды операций базовой машины были: [37]
^ Используется, чтобы позволить панели управления 533 подавать сигнал ЦП.
^ Подсчитывает старшие нули в верхнем аккумуляторе.
^ Сохраняемое значение принимает знак аккумулятора, за исключением операции деления; тогда знак остатка сохраняется.
Примечания:
Варианты IBM 653 могут реализовывать дополнительные коды инструкций. [36]
Пример программы
Эта программа с одной картой, взятая из 650 Programming Bulletin 5, IBM, 1956, 22-6314-0 , установит большую часть барабанной памяти на минус нули. В программу включены примеры выполнения команд от консольных переключателей и от аккумулятора.
Для начала в загрузочную карту вбиваются 80 последовательных цифр (второй столбец ниже), так что при считывании содержимое ячеек барабанов с 0001 по 0008 будет таким, как показано. [38]
8000 RD 70 0004 xxxx Считывание загрузочной карты в область считывания первой полосы
У каждой барабанной группы есть зона чтения; эти области чтения находятся в позициях 0001-0010, 0051-0060, 0101-0110 и так далее. Любой адрес в диапазоне может использоваться для идентификации этого диапазона для инструкции чтения; адрес 0004 идентифицирует 1-й диапазон. Затем начинается выполнение из консоли со считывания восьми слов на загрузочной карте в ячейки 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 Остановка, адрес следующей инструкции — консоль (эта команда остановки была сохранена в 0000 командой STD, приведенной выше)
Студенческая программа 1961 года, написанная на машинном языке IBM 650 и основанная на упражнении из книги Андре [39]
Набор инструкций из 650 достаточно прост, поэтому небольшие программы можно было писать на машинном языке, и это было обычным явлением для студенческих упражнений. [39] Существовал формат с одной инструкцией на карту, который можно было загрузить непосредственно в машину и выполнить.
Машинный язык был неудобен для больших программ, и со временем для IBM 650 было написано множество языков программирования и инструментов. В их число входили:
Пакет виртуальной машины приложения Interpretive, первоначально опубликованный как «Полная интерпретационная система с плавающей запятой для калькулятора с магнитным барабаном IBM 650». Это было известно под несколькими именами:
интерпретатор Wolontis-Bell Labs, система Bell, интерпретатор Bell, интерпретационная система Bell, [40] или BLIS — интерпретационная система Bell Lab [41]
L1 и (позже) L2 [42] [43] – известные за пределами Bell Labs как «Bell 1» и «Bell 2», среди других названий (см. выше)
Система синтетического программирования для коммерческих приложений [44]
Алгебраические языки/компиляторы
Внутренний транслятор (ИТ) — компилятор [45]
Пересмотренный унифицированный новый компилятор IT Basic Language Extended (RUNCIBLE) — расширение IT at Case [46]
FOR TRANSIT — версия Fortran , скомпилированная в IT, которая, в свою очередь, была скомпилирована в SOAP [47].
UNIVAC Solid State анонсирован Сперри Рэндом в декабре 1958 года как ответ на IBM 650. В июне 1959 года Remington Rand объявила, что написала программу-эмулятор IBM 650 для облегчения преобразования. [49]
Примечания и ссылки
^ «Установка IBM 650 с устройством магнитной ленты IBM 727 и дисковым хранилищем IBM 355» . Архивы IBM . НАС . Проверено 5 сентября 2019 г.
^ «Сборка IBM 650 на заводе в Эндикотте» . Архивы IBM . НАС . Проверено 5 сентября 2019 г.
^ «История компьютеров 1937-2011». Университет Олд Доминион . Проверено 22 июня 2021 г.
^ «IBM в компьютерную эпоху». Проект истории вычислительной техники Миннесоты . 28 июня 2018 года . Проверено 21 июня 2021 г.
^ Пью, Эмерсон В. (1995). Создание IBM: формирование отрасли и ее технологий . МТИ Пресс. п. 182. ИСБН978-0-262-16147-3.
^ abc "Калькулятор магнитного барабана IBM 650" . Колумбия.edu .
^ Дэвис, Гордон Б. (1971). Введение в электронные компьютеры (второе изд.). Нью-Йорк: МакГроу-Хилл. п. 10. ISBN978-0-070-15821-4.
^ ab Машина обработки данных с магнитным барабаном IBM 650: Руководство по эксплуатации (PDF) . ИБМ. 1955. 22-6060-1.
^ Архивы IBM: 650 клиентов.
^ Грей, Уэйн Д. (2007). Интегрированные модели систем познания . Нью-Йорк: Издательство Оксфордского университета. п. 36. ISBN978-0-19-518919-3.
^ «Представлен калькулятор с магнитным барабаном IBM 650» . Компьютерная история .
^ Пресс-релиз с анонсом IBM 650 RAMAC
^ «Архивы IBM: пресс-релиз с анонсом IBM 650 Model 4» . www.ibm.com . 23 января 2003 г. Проверено 25 июля 2023 г.
^ Ройс, Дэвид (1957). «Операция системного дискового хранилища IBM 650 RAMAC». Доклады, представленные на объединенной западной компьютерной конференции 26-28 февраля 1957 г.: Методы обеспечения надежности - IRE-AIEE-ACM '57 (Western) . АКМ Пресс. стр. 43–49. дои : 10.1145/1455567.1455576 .
^ "Биографические заметки Кнута". softpanorama.org . Проверено 25 июля 2023 г.
^ "В архиве IBM: 650 хронология" .
^ Баше, Чарльз Дж.; Джонсон, Лайл Р.; Палмер, Джон Х.; Пью, Эмерсон В. (1986). Первые компьютеры IBM . Массачусетский технологический институт. п. 473. ИСБН0-262-02225-7.
^ ab Архивы IBM: 650 компонентов
^ Архивы IBM: Консольный модуль IBM 650
^ Архивы IBM: Блок питания IBM 655
^ Другие названия IBM для 533 включали блок ввода-вывода и блок чтения-перфорации .
^ Архивы IBM: Перфоратор для чтения карт IBM 533
^ Архивы IBM: Перфоратор для чтения карт IBM 537
^ Руководство по установке системы физического планирования 650 (PDF) . ИБМ. 1 октября 1957 г. с. 32 . Проверено 31 мая 2018 г. - через Bitsavers.
^ Руководство по инженерному обслуживанию заказчика (PDF) . ИБМ. 1956. с. И-17 . Проверено 31 мая 2018 г. - через Bitsavers.
^ аб Оффлайн
^ Архивы IBM: Дисковое хранилище IBM 355
^ Архивы IBM: бухгалтерская машина IBM 407
^ Архивы IBM: Модуль управления IBM 652
^ Архивы IBM: Вспомогательный блок IBM 653
^ Архивы IBM: Справочная станция IBM 838
^ Архивы IBM: Магнитный барабан IBM 650
^ Архивы IBM: анонс IBM 650 Model 4
↑ Кугель, Херб (22 октября 2001 г.). «ИБМ 650». Доктор Добб.
^ AB IBM (1957). SOAP II для IBM 650 (PDF) . С24-4000-0.
^ abc Расширения ЦП IBM 650
^ Системный бюллетень IBM 650, коды основных операций, оптимизация программы, загрузка программы (PDF) . ИБМ. 1958.
^ Для идентификации карт как загрузочных карт можно использовать дырокол 12 . Карты загрузки считываются непосредственно в слова 1–8 указанной полосы хранения.
^ аб Андре, Ричард В. (1958). Программирование компьютера и машины обработки данных с магнитным барабаном IBM 650 (PDF) .
^ Кнут, Дональд Э. (январь – март 1986 г.). «IBM 650: признание с поля». IEEE Анналы истории вычислений . 8 (1): 50–55. дои : 10.1109/MAHC.1986.10010. S2CID 34595049.
^ Справочное руководство IBM: Интерпретационная система с плавающей запятой для IBM 650 (PDF) . ИБМ. 1959. стр. 63, XXI. 28-4024. Это перепечатка Технического бюллетеня IBM 650 № 11, март 1956 г., форма 31-6822.. Данное справочное руководство содержит следующий отчет, в котором отмечается, что по своим внешним характеристикам система интерпретации, описанная в этом отчете, во многом обязана системе IBM Speedcoding для 701. Wolontis, VM Полная интерпретационная система с плавающей десятичной дробью для калькулятора с магнитным барабаном IBM 650 . Bell Laboratories, Inc., Мюррей-Хилл, Нью-Джерси.
^ Холбрук, Бернард Д.; Браун, В. Стэнли. «Технический отчет по информатике № 99 - История компьютерных исследований в Bell Laboratories (1937–1975)». Лаборатории Белла . Архивировано из оригинала 2 сентября 2014 года . Проверено 27 августа 2020 г.
^ Волонтис, В.М. «Полная система интерпретации чисел с плавающей запятой для калькулятора с магнитным барабаном IBM 650» (PDF) . США: IBM – через битсейверы.
^ 650 Бюллетень по программированию 2 . ИБМ. 1956. с. 40. 22-6294-0. Описанная здесь процедура интерпретации представляет собой фиксированную десятичную трехадресную систему, которая обеспечивает математические, логические операции и операции ввода-вывода. Логика этой системы была получена из Полной интерпретационной системы с плавающей запятой для модели 650 , разработанной Bell Laboratories, Мюррей-Хилл, Нью-Джерси.
^ Перлис, AJ ; Смит, Дж.В.; ВанЗорен, HR (18 апреля 1958 г.). Внутренний переводчик; IT, компилятор для 650 (PDF) . 650 Библиотечная программа 2.1.001.
^ Дональд Кнут опубликовал блок-схему компилятора в 1959 году; Кнут, DE (1959). «RUNCIBLE — алгебраический перевод на ограниченном компьютере». Коммуникации АКМ . 2 (11): 18–21. дои : 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, том 1.2, декабрь 1992 г. (пересмотренный в 1999 г.) . Архивировано из оригинала 4 марта 2016 года.
дальнейшее чтение
Андре, Ричард В. (1958). Программирование компьютера и машины обработки данных с магнитным барабаном IBM 650 (PDF) .
ИБМ (1955). Руководство по эксплуатации машины обработки данных с магнитным барабаном IBM 650 (PDF) . 22-6060.
ИБМ (1956). Система обработки данных IBM 650, Руководство по эксплуатации для заказчиков (PDF) . 22-6284-1.
ИБМ (1955). IBM представляет машину обработки данных с магнитным барабаном 650 (PDF) . 32-6770. Архивировано из оригинала (PDF) 5 февраля 2012 г. Проверено 24 сентября 2006 г.
Кнут, Дональд Э. (январь – март 1986 г.). «IBM 650: признание с мест» (PDF) . IEEE Анналы истории вычислений . 8 (1): 50–55. дои : 10.1109/MAHC.1986.10010. S2CID 34595049.
Внешние ссылки
Викискладе есть медиафайлы, связанные с IBM 650 .
Bitsavers.org: документы IBM 650 (файлы PDF)
Колумбийский университет: IBM 650 в Колумбийском университете
Архивы IBM IBM 650: Рабочая лошадка современной промышленности Включает хронологию, технические характеристики, фотографии, типичных клиентов и приложения, для которых использовался 650.
Видеоклип о работе IBM 650 и RAMAC, альтернативная версия
Вейк, Мартин Х. (март 1961 г.). Третий обзор отечественных электронных цифровых вычислительных систем. Лаборатории баллистических исследований (БРЛ). Отчет № 1115.Включает около 40 страниц подробного обзора IBM 650: клиенты, приложения, характеристики и затраты.
IBM 650 «Машина обработки данных с магнитным барабаном»