IBM 650 Магнитный барабан обработки данных машины ранний цифровой компьютер производства IBM в середине 1950-х годов. [1] [2] Это был первый в мире компьютер массового производства. [3] Было произведено почти 2000 систем, последняя - в 1962 году [4] [5], и это был первый компьютер, принесший значительную прибыль. [5] Первый был установлен в конце 1954 года и был самым популярным компьютером 1950-х годов. [6]
650 был продан коммерческим, научным и техническим пользователям как универсальная версия компьютеров IBM 701 и IBM 702 , предназначенных для научных и деловых целей соответственно. [5] Он также был продан пользователям перфокарт , которые переходили с вычислений ударов , таких как IBM 604 , на компьютеры. [7] : 5 [8]
Из-за относительно низкой стоимости и простоты программирования модель 650 использовалась для создания широкого спектра приложений, от моделирования работы экипажей подводных лодок [9] до обучения программированию для старшеклассников и студентов колледжей. IBM 650 стал очень популярным в университетах, где целое поколение студентов впервые изучило программирование. [10]
Он был анонсирован в 1953 году и в 1956 году усовершенствован как IBM 650 RAMAC с добавлением до четырех дисковых накопителей. [11] Поддержка 650 и его составных частей была прекращена в 1969 году.
650 был два-адрес , би-пятеричный кодированного десятичного компьютер (как данные , так и адреса были десятичное), с памятью на вращающемся магнитном барабане . Поддержка символов обеспечивалась блоками ввода / вывода, преобразующими алфавитные и специальные кодировки символов перфокарты в / из двузначного десятичного кода.
История [ править ]
Первый 650 был установлен 8 декабря 1954 года в диспетчерском отделе компании John Hancock Mutual Life Insurance Company в Бостоне. [12]
Ожидается, что IBM 7070 (десятизначные десятичные слова со знаком), анонсированный в 1958 году, станет «общим преемником по крайней мере 650 и [IBM] 705 ». [13] IBM 1620 ( с переменной длиной в десятичной системе ), введенный в 1959 г., на имя нижний конец рынка. UNIVAC твердотельный (два-адрес компьютера, подписанный 10-значные десятичные слова) был объявлен Sperry Rand в декабре 1958 года в ответ на 650. Ни один из них был 650 совместимый комплект с инструкцией.
Оборудование [ править ]
Базовая система 650 состояла из трех блоков: [14]
- В модуле консоли IBM 650 [15] размещались магнитный барабан, арифметическое устройство (с использованием электронных ламп) и пульт оператора.
- Блок питания IBM 655 [16]
- IBM 533 или IBM 537 Card Read Punch Unit [17] [18] [19] У IBM 533 были отдельные каналы для чтения и перфорации; IBM 537 имел одну подачу, поэтому мог читать, а затем вставлять в одну и ту же карту.
Вес: 5 400–6 263 фунтов (2,7–3,1 коротких тонн; 2,4–2,8 т). [20] [21]
Дополнительные единицы: [14]
- IBM 46 перфоратор с ленты на карту, модель 3 [22]
- Пробойник для печати с ленты на карту IBM 47, модель 3 [22]
- IBM 355 Disk Storage Unit [23] Системы с дисковым устройством были известны как IBM 650 RAMAC Data Processing Systems.
- Бухгалтерская машина IBM 407 [24]
- Устройство чтения карт IBM 543
- Устройство перфорации карт IBM 544
- IBM 652 Control Unit (магнитная лента, диск) [25]
- IBM 653 Storage Unit (магнитная лента, диск, основное хранилище, индексные регистры, арифметика с плавающей запятой) [26]
- IBM 654 Вспомогательный алфавитный блок
- Магнитная лента IBM 727
- Справочная станция IBM 838 [27]
Основная память [ править ]
Вращающаяся память барабана обеспечивала память на 1000, 2000 или 4000 слов (десятизначное число со знаком или пять символов на слово) по адресам от 0000 до 0999, 1999 или 3999 соответственно. [28] [29] Слова на барабанах были организованы в группы вокруг барабана, по пятьдесят слов на группу и 20, 40 или 80 полос для соответствующих моделей. Доступ к слову можно было получить, когда его местоположение на поверхности барабана проходило под головками чтения / записи во время вращения (при вращении со скоростью 12500 об / мин неоптимизированное среднее время доступа составляло 2,5 мс ). Из-за этого времени второй адрес в каждой инструкции был адресом следующей инструкции. Затем программы могут быть оптимизированыпутем размещения инструкций по адресам, которые будут доступны сразу после завершения выполнения предыдущей инструкции. IBM предоставила форму с десятью столбцами и 200 строками, чтобы программисты могли отслеживать, куда они помещают инструкции и данные. Позже был предоставлен ассемблер SOAP (Symbolic Optimal Assembly Program), выполняющий грубую оптимизацию. [30] [31]
В компьютерах LGP-30 , Bendix G-15 и IBM 305 RAMAC также использовались электронные лампы и барабанная память. Но они сильно отличались от IBM 650.
Команды, считанные с барабана, поступали в регистр программы (в современной терминологии - регистр команд ). Данные, считанные с барабана, проходили через 10-значный распределитель. 650 имел 20-разрядный аккумулятор , разделенный на 10-значные нижний и верхний аккумуляторы с общим знаком. Арифметика производилась однозначным сумматором. Консоль (10-значные переключатели, один знаковый переключатель и 10 двухзначных индикаторов дисплея), распределитель, нижний и верхний аккумуляторы были адресуемыми; 8000, 8001, 8002, 8003 соответственно.
IBM 653 Storage Unit [ править ]
Дополнительный модуль хранения IBM 653, представленный 3 мая 1955 года, в конечном итоге предоставляет до пяти функций: [32]
- Контроллер магнитной ленты (для магнитных лент IBM 727) (10 дополнительных кодов операций)
- Контроллер дискового хранилища (усовершенствование 1956 года для нового IBM 355 Disk Storage Unit) (5 дополнительных кодов операций)
- Шестьдесят десятизначных слов памяти магнитного сердечника по адресам с 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 кодов операций. [32]
Команда просмотра таблицы (TLU) могла бы с равным числом сравнивать указанное 10-значное слово с 48 последовательными словами на одной и той же полосе барабана за один оборот 5 мс, а затем переключаться на следующую полосу времени для следующих 48 слов. Этот подвиг составлял примерно одну треть скорости бинарной машины в тысячу раз быстрее в 1963 году (1500 микросекунд на IBM 7040 и 5000 микросекунд на 650) для поиска 46 записей, если обе были запрограммированы на ассемблере. Была необязательная инструкция Equal для поиска в таблице с той же производительностью.
Команда чтения (RD) считывает карту числовых данных из 80 столбцов в десять слов памяти; распределение цифр по словам определяется проводкой панели управления картридера . При использовании с буквенным устройством 533 Reader Punch может считываться комбинация числовых и буквенно-цифровых столбцов (максимум 30 буквенно-цифровых столбцов). [7] Функция расширения позволяла использовать больше буквенно-цифровых столбцов, но не более 50, поскольку только десять слов (пять символов на слово) были сохранены на барабане при операции чтения карты. [ необходима цитата ]
Коды операций базовой машины были: [33]
17 | AABL | Добавить абсолютное значение в нижний аккумулятор |
15 | AL | Добавить в нижний аккумулятор |
10 | Австралия | Добавить в верхний аккумулятор |
45 | BRNZ | Ветвь на аккумуляторе ненулевой |
46 | BRMIN | Отделение на минусовом аккумуляторе |
44 год | BRNZU | Переход на ненулевое значение в верхнем аккумуляторе |
47 | БРОВ | Ветка при переполнении |
90–99 | BRD | Ответвление на 8 в распределительных позициях 1-10 ** |
14 | DIV | Разделять |
64 | DIVRU | Разделить и сбросить верхний аккумулятор |
69 | LD | Распределитель нагрузки |
19 | MULT | Умножить |
00 | NO-OP | Нет операции |
71 | PCH | Перфорировать карту |
70 | RD | Читать карту |
67 | RAABL | Сбросьте аккумулятор и добавьте абсолютное значение в нижний аккумулятор. |
65 | RAL | Сбросить аккумулятор и добавить в нижний аккумулятор |
60 | RAU | Сбросить аккумулятор и добавить в верхний аккумулятор |
68 | РСАБЛ | Сбросить аккумулятор и вычесть абсолютное значение из нижнего аккумулятора |
66 | RSL | Сбросить аккумулятор и вычесть из нижнего аккумулятора |
61 | RSU | Сбросить аккумулятор и вычесть из верхнего аккумулятора |
35 год | SLT | Аккумулятор переключения передач влево |
36 | SCT | Сдвинуть аккумулятор влево и считать *** |
30 | SRT | Аккумулятор переключения передач правый |
31 год | SRD | Аккумулятор переключения передач правый и круглый аккумулятор |
01 | ОСТАНОВКА | Остановить, если переключатель консоли установлен на остановку, в противном случае продолжайте как НЕТ |
24 | ЗППП | Сохранить дистрибьютор в памяти |
22 | STDA | Сохраните нижний адрес данных аккумулятора в дистрибьюторе Затем сохраните дистрибьютор в памяти |
23 | STIA | Сохраните адрес инструкции младшего аккумулятора в дистрибьюторе. Затем сохраните дистрибьютор в памяти |
20 | STL | Сохраните нижний аккумулятор в памяти |
21 год | СТЮ | Сохранить верхний аккумулятор в памяти * |
18 | SABL | Вычтите абсолютное значение из нижнего аккумулятора |
16 | SL | Вычесть из нижнего аккумулятора |
11 | SU | Вычесть из верхнего аккумулятора |
84 | ВПУ | Поиск по таблице |
Примечания:
- * Сохраненное значение принимает знак аккумулятора, за исключением операции деления; затем сохраняется знак остатка.
- ** Используется для разрешения панели управления 533 сигнализировать ЦП.
- *** Считает старшие нули в верхнем аккумуляторе
Опции IBM 653 могут реализовывать дополнительные коды инструкций. [32]
Пример программы [ править ]
Эта программа с одной картой, взятая из 650 Programming Bulletin 5, IBM, 1956, 22-6314-0 , установит большую часть памяти барабана на минус нули. Программа включает примеры выполнения инструкций с консольных переключателей и с аккумулятора.
Для начала в загрузочную карту вводят 80 последовательных цифр (2-й столбец ниже), так что при считывании содержимое ячеек барабана с 0001 по 0008 будет таким, как показано. [34]
0001 0000010000 0002 0000000000- 0003 1000018003 0004 6100080007 0005 2400008003 0006 0100008000 0007 6900060005 0008 2019990003
Цифровые переключатели консоли (адрес 8000) вручную устанавливаются на команду чтения с адресом данных 0004.
loc- op | data | следующий действие | адрес | инструкция | | адрес
8000 RD 70 0004 xxxx Считывание карты нагрузки в область считывания 1-го диапазона
У каждой ударной группы есть зона чтения; эти области чтения находятся в ячейках 0001-0010, 0051-0060, 0101-0110 и так далее. Любой адрес в полосе может использоваться для идентификации этой полосы для инструкции чтения; адрес 0004 определяет 1-ю полосу. Затем начинается выполнение с консоли со считывания 8 слов на загрузочной карте в ячейки 0001-0008 1-го диапазона памяти. В случае чтения загрузочной карты «адрес следующей инструкции» берется из поля адреса данных, а не из поля адреса следующей инструкции (показанного выше как 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, адрес следующей инструкции - консоль (эта инструкция Halt была сохранена в 0000 инструкцией STD выше)
Известно, что серия книг Дональда Кнута « Искусство компьютерного программирования» посвящена 650.
Программное обеспечение [ править ]
Программное обеспечение включено:
- Полная система интерпретации с плавающей запятой для калькулятора магнитного барабана IBM 650 (также известного как BLIS - система интерпретации Bell Lab) [35]
- FOR TRANSIT - версия Fortran, которая была скомпилирована в IT, которая, в свою очередь, была скомпилирована в SOAP [36]
- ФОРТРАН [37]
- GATE - простой компилятор с односимвольными именами переменных
- Пакеты виртуальных машин интерпретирующих приложений L1 [38] [39] и L2 - известные за пределами Bell Labs как «Bell 1» и «Bell 2»
- Внутренний транслятор (ИТ) - компилятор [40]
- IPL - первый язык обработки списков. Самой известной версией была IPL-V.
- Пересмотренный унифицированный новый компилятор IT Basic Language Extended (RUNCIBLE) [41]
- SPACE (Simplified Programming Anyone Can Enjoy) - бизнес-ориентированный двухэтапный компилятор через SOAP.
- Программа символьной оптимальной сборки (SOAP) - ассемблер [31]
- Система синтетического программирования для коммерческих приложений [42]
- Technical Assembly System (ТАСС) - макроассемблер .
См. Также [ править ]
- История IBM № 1946–1959: послевоенное восстановление, рост бизнес-вычислений, освоение космоса, холодная война.
- UNIVAC Solid State анонсировал Сперри Рэнд в декабре 1958 года как ответ на IBM 650. В июне 1959 года Remington Rand объявила, что написала программу-эмулятор IBM 650 для облегчения преобразования. [43]
- IBM 700/7000 серии
Примечания и ссылки [ править ]
- ^ "Установка IBM 650 с устройством магнитной ленты IBM 727 и дисковым хранилищем IBM 355" . Архивы IBM . США . Проверено 5 сентября 2019 года .
- ^ "Сборка IBM 650 на заводе Endicott" . Архивы IBM . США . Проверено 5 сентября 2019 года .
- ^ "IBM 650" Машина для обработки данных с магнитным барабаном ": первый компьютер массового производства" . История информации .
- ^ Пью, Эмерсон В. (1995). Строительство IBM: формирование отрасли и ее технологий . MIT Press. п. 182 . ISBN 978-0-262-16147-3.
- ^ a b c "Калькулятор магнитного барабана IBM 650" . Columbia.edu .
- ^ Дэвис, Гордон Б. (1971). Введение в электронные компьютеры (второе изд.). Нью-Йорк: Макгроу-Хилл. п. 10 . ISBN 978-0-070-15821-4.
- ^ a b Машина обработки данных с магнитным барабаном IBM 650: Руководство по эксплуатации (PDF) . IBM. 1955. 22-6060-1.
- ^ Архивы IBM: 650 клиентов
- ^ Грей, Уэйн Д. (2007). Интегрированные модели систем познания . Нью-Йорк: Издательство Оксфордского университета. п. 36 . ISBN 978-0-19-518919-3.
- ^ "Представлен калькулятор магнитного барабана IBM 650" . Компьютерная история .
- ^ IBM 650 RAMAC анонс пресс - релиз
- ^ "Архив IBM: 650 Хронология" .
- ^ Баше, Чарльз Дж .; Джонсон, Лайл Р.; Палмер, Джон Х .; Пью, Эмерсон В. (1986). Ранние компьютеры IBM . Массачусетский технологический институт. п. 473 . ISBN 0-262-02225-7.
- ^ a b Архивы IBM: 650 компонентов
- ^ Архивы IBM: Консольный модуль IBM 650
- ^ Архивы IBM: IBM 655 Power Unit
- ^ Другие названия IBM для 533включенных в блок ввода-вывода и чтения дырокола .
- ^ Архивы IBM: IBM 533 Card Read Punch
- ^ Архивы IBM: IBM 537 Card Read Punch
- ^ Руководство по установке физического планирования системы 650 (PDF) . IBM. 1 октября 1957 г. с. 32 . Проверено 31 мая 2018 г. - через Bitsavers.
- ^ Инструкторское руководство по эксплуатации заказчика (PDF) . IBM. 1956. с. И-17 . Проверено 31 мая 2018 г. - через Bitsavers.
- ^ a b Не в сети
- ^ Архивы IBM: IBM 355 Disk Storage
- ^ Архивы IBM: бухгалтерская машина IBM 407
- ^ Архивы IBM: Блок управления IBM 652
- ^ Архивы IBM: Вспомогательный блок IBM 653
- ^ Архивы IBM: Справочная станция IBM 838
- ^ Архивы IBM: Магнитный барабан IBM 650
- ^ Архивы IBM: объявление IBM 650 Model 4
- Перейти ↑ Kugel, Herb (22 октября 2001 г.). «IBM 650» . Доктора Добба.
- ^ а б IBM (1957). SOAP II для IBM 650 (PDF) . C24-4000-0.
- ^ a b c Расширения ЦП IBM 650
- ^ Системный бюллетень IBM 650, основные коды операций, оптимизация программ, загрузка программ (PDF) . IBM. 1958 г.
- ^ Пробойник 12 может использоваться для идентификации карт как загрузочных . Карты загрузки считываются напрямую в слова 1-8 указанной полосы хранения
- ^ Справочное руководство IBM: Система интерпретации чисел с плавающей запятой для IBM 650 (PDF) . IBM. 1959. С. 63, xxi. 28-4024.
Это перепечатка Технического бюллетеня IBM 650 № 11, март 1956 г., форма 31-6822.
. Это справочное руководство содержит следующий отчет, в котором отмечается, что по своим внешним характеристикам система интерпретации, описанная в этом отчете, во многом обязана системе IBM Speedcoding System для 701. Wolontis, VM Complete Floating Decimal Interpretive System for the IBM 650 Magnetic Drum Calculator . Bell Laboratories, Inc., Мюррей-Хилл, Нью-Джерси. - ^ IBM (1959). FOR TRANSIT Автоматическая система кодирования для IBM 650 (PDF) . 28-4028.
- ^ IBM (1960). Система автоматического кодирования FORTRAN для IBM 650 (PDF) . 29-4047.
- ^ Холбрук, Бернард Д .; Браун, У. Стэнли. "Технический отчет по вычислительной науке № 99 - История компьютерных исследований в Bell Laboratories (1937–1975)" . Bell Labs . Архивировано из оригинала на 2 сентября 2014 года . Проверено 27 августа 2020 года .
- ^ Волонтис, В.М. "Полная система интерпретации с плавающей запятой для калькулятора магнитного барабана IBM 650" (PDF) . США: IBM - через битсейверы.
- ^ Перлис, AJ ; Смит, JW; Ван Зоерен, HR (1958-04-18). Внутренний переводчик; IT, компилятор для 650 (PDF) . 650 Библиотечная программа 2.1.001.
- ^ Дональд Кнут опубликовал блок-схему компилятора в 1959 году; Кнут, DE (1959). «RUNCIBLE - алгебраический перевод на ограниченном компьютере». Коммуникации ACM . 2 : 18–21. DOI : 10.1145 / 368481.368507 .; это была его первая научная работа.
- ^ 650 Бюллетень программирования 2 . IBM. 1956. с. 40. 22-6294-0.
Описанная здесь программа интерпретации представляет собой трехадресную систему с фиксированным десятичным числом, которая обеспечивает математические, логические операции и операции ввода-вывода.
Логика для этой системы была получена из
полной системы интерпретации с плавающей запятой для 650,
которая была разработана Bell Laboratories, Мюррей-Хилл, Нью-Джерси.
- ↑ Грей, Джордж. "Твердотельный компьютер UNIVAC" . Информационный бюллетень Unisys History, том 1.2, декабрь 1992 г. (редакция 1999 г.) . Архивировано из оригинала на 4 марта 2016 года.
Дальнейшее чтение [ править ]
- Андре, Ричард В. (1958). Программирование магнитного барабанного компьютера и машины обработки данных IBM 650 .
- IBM (1955). Руководство по эксплуатации машины обработки данных с магнитным барабаном IBM 650 (PDF) . 22-6060.
- IBM (1956). Система обработки данных IBM 650, Инструкторское руководство для заказчиков (PDF) . 22-6284-1.
- IBM (1955). IBM представляет машину обработки данных с магнитным барабаном 650 (PDF) . 32-6770. Архивировано из оригинального (PDF) 05 февраля 2012 года . Проверено 24 сентября 2006 .
- Кнут, Дональд Э. (январь – март 1986 г.). «IBM 650: Признательность с поля». IEEE Annals of the History of Computing . 8 (1): 50–55. DOI : 10.1109 / MAHC.1986.10010 .
Внешние ссылки [ править ]
Викискладе есть медиафайлы, связанные с IBM 650 . |
- Bitsavers.org: документы IBM 650 (файлы PDF)
- Колумбийский университет: IBM 650 в Колумбийском университете
- Архивы IBM IBM 650: рабочая лошадка современной промышленности Включает хронологию, технические характеристики, фотографии, типичных клиентов и приложения, для которых использовался 650.
- Видеоклип IBM 650 и RAMAC в действии , альтернативная версия
- Вейк, Мартин Х. (март 1961 г.). Третий обзор отечественных электронных цифровых вычислительных систем . Баллистические исследовательские лаборатории (BRL). Отчет № 1115. Включает около 40 страниц подробного обзора IBM 650: заказчики, приложения, спецификации и затраты.