IBM 650 в Техасском университете A&M. Перфоратор чтения карт IBM 533 находится справа.Панель консоли IBM 650, показывающая би-пятеричные индикаторы. [1] : с. 47ff Обратите внимание на следы износа вокруг часто используемых переключателей в правом нижнем углу. Коллекция Национального музея науки и технологий. Ла-Корунья (Галисия, Испания).Крупный план би-пятерных индикаторовБарабан памяти от IBM 650Консольный модуль IBM 650, вид сбоку. Первый компьютер в Испании (1959 г.), сейчас находится в Национальном музее науки и технологий в Ла-Корунье.
Машина обработки данных с магнитным барабаном 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 (десятизначные десятичные слова со знаком), анонсированный в 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) (10 дополнительных кодов операций)
Контроллер дискового хранилища (улучшение 1956 года для нового IBM 355 Disk Storage Unit) (5 дополнительных кодов операций)
Шестьдесят 10-значных слов памяти на магнитном сердечнике по адресам от 9000 до 9059. Эта небольшая быстрая память имела время доступа 96 мкс , что в 26 раз лучше, чем у вращающегося барабана. Эта функция добавляла 5 кодов операций и была необходима в качестве буфера для ввода-вывода на ленту и диск. Эти 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 кодов операций. [36]
Команда поиска по таблице (TLU) могла бы с высокой точностью сравнить указанное 10-значное слово с 48 последовательными словами на той же полосе барабана за один оборот в 5 мс, а затем вовремя переключиться на следующую полосу для следующих 48 слов. Этот подвиг составлял примерно треть скорости двоичной машины, работавшей в тысячу раз быстрее в 1963 году (от 1500 микросекунд у IBM 7040 до 5000 микросекунд у IBM 650) при поиске 46 записей, если обе были запрограммированы на ассемблере. Была дополнительная команда поиска по таблице Equal с той же производительностью.
Команда чтения (RD) считывает карту числовых данных из 80 столбцов в десять слов памяти; Распределение цифр по словам определяется разводкой панели управления картридера . При использовании с алфавитным устройством устройства Reader Punch 533 можно считывать комбинацию цифровых и буквенно-цифровых столбцов (максимум 30 буквенно-цифровых столбцов). [1] Функция расширения позволяла использовать больше буквенно-цифровых столбцов, но, конечно, не более 50, поскольку только десять слов (пять символов в слове) сохранялись на барабане при операции чтения карты. [ нужна цитата ]
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]
Примечания и ссылки
^ abc IBM 650 Машина обработки данных с магнитным барабаном: Руководство по эксплуатации (PDF) . ИБМ. 1955. 22-6060-1.
^ «Установка 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.
^ Архивы 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 «Машина обработки данных с магнитным барабаном»