stringtranslate.com

IBM650

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]

Серия книг Дональда Кнута «Искусство программирования» посвящена процессору 650. [15]

История

Первая модель 650 была установлена ​​8 декабря 1954 года в отделе контролеров компании John Hancock Mutual Life Insurance Company в Бостоне. [16]

IBM 7070 (знаковые 10-значные десятичные слова), анонсированный в 1958 году, как ожидалось, станет «общим преемником, по крайней мере, 650 и [IBM] 705 ». [17] IBM 1620 (переменная длина десятичных слов), представленный в 1959 году, был адресован нижнему сегменту рынка. UNIVAC Solid State (двухадресный компьютер, знаковые 10-значные десятичные слова) был анонсирован Sperry Rand в декабре 1958 года в качестве ответа на 650. Ни один из них не имел набора инструкций, совместимого с 650.

Аппаратное обеспечение

Базовая система 650 состояла из трех блоков: [18]

Вес: 5400–6263 фунтов (2,7–3,1 коротких тонны; 2,4–2,8 т). [24] [25]

Дополнительные единицы: [18]

Основная память

Вращающаяся барабанная память обеспечивала 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]

Набор инструкций

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, поскольку только десять слов (пять символов на слово) сохранялись на барабане при операции чтения карты. [ требуется ссылка ]

IBM 650 в Техасском университете A&M, открытая, чтобы показать заднюю часть передней панели, модули электронных ламп и барабан для хранения данных
Модуль схемы на вакуумной лампе, тип которого используется в 650
Класс в Бронксской средней школе естественных наук в 1960 году с инструкцией по работе с IBM 650 над доской, вверху справа.

Базовые коды операций машины были: [36]

  1. ^ Используется для того, чтобы панель управления 533 могла подавать сигналы на ЦП.
  2. ^ Подсчитывает старшие нули в верхнем аккумуляторе.
  3. ^ Сохраненное значение принимает знак аккумулятора, за исключением случая после операции деления; в этом случае сохраняется знак остатка.

Примечания:

Опции IBM 653 могли реализовывать дополнительные коды инструкций. [35]

Образец программы

Эта однокарточная программа, взятая из 650 Programming Bulletin 5, IBM, 1956, 22-6314-0 , установит большую часть памяти барабана на минус нули. Программа включает примеры инструкций, выполняемых с переключателей консоли и с аккумулятора.

Для начала на загрузочной карте перфорируется 80 последовательными цифрами (второй столбец ниже), так что при считывании содержимое ячеек барабана с 0001 по 0008 будет таким, как показано на рисунке. [37]

 0001 0000010000 0002 0000000000- 0003 1000018003 0004 6100080007 0005 2400008003 0006 0100008000 0007 6900060005 0008 2019990003

Цифровые переключатели консоли (адрес 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 выше)

Программное обеспечение

Студенческая программа 1961 года, написанная на машинном языке IBM 650, основанная на упражнении из книги Андре [38]

Набор инструкций 650 был достаточно прост, чтобы можно было писать небольшие программы на машинном языке, и это было обычным делом для студенческих упражнений. [38] Существовал формат «одна инструкция на карту», ​​который можно было загрузить непосредственно в машину и выполнить.

Машинный язык был неудобен для больших программ, и со временем для IBM 650 были написаны различные языки программирования и инструменты. К ним относятся:

Сборщики
Интерпретативные системы
Алгебраические языки/компиляторы

Смотрите также

Примечания и ссылки

  1. ^ abc IBM 650 Машина обработки данных с магнитным барабаном: Руководство по эксплуатации (PDF) . IBM. 1955. 22-6060-1.
  2. ^ "Архивы IBM: Установка IBM 650 с IBM 727 Magnetic Tape Unit и IBM 355 Disk Storage". IBM . US. Архивировано из оригинала 2023-04-09 . Получено 5 сентября 2019 .
  3. ^ "Архивы IBM: IBM 650 Assembly at Endicott plant". IBM . US. Архивировано из оригинала 2023-10-23 . Получено 5 сентября 2019 .
  4. ^ "История компьютеров 1937-2011". Университет Олд Доминион . Получено 22 июня 2021 г.
  5. ^ «IBM в эпоху компьютеров». Проект истории вычислений Миннесоты . 28 июня 2018 г. Получено 21 июня 2021 г.
  6. ^ Pugh, Emerson W. (1995). Building IBM: Shaping an Industry and Its Technology . MIT Press. стр. 182. ISBN 978-0-262-16147-3.
  7. ^ abc "Магнитный барабанный калькулятор IBM 650". Columbia.edu .
  8. ^ Дэвис, Гордон Б. (1971). Введение в электронные компьютеры (второе издание). Нью-Йорк: McGraw-Hill. стр. 10. ISBN 978-0-070-15821-4.
  9. ^ "Архивы IBM: 650 клиентов". IBM . Архивировано из оригинала 2023-07-25.
  10. ^ Грей, Уэйн Д. (2007). Интегрированные модели когнитивных систем . Нью-Йорк: Oxford University Press. стр. 36. ISBN 978-0-19-518919-3.
  11. ^ "Представлен калькулятор с магнитным барабаном IBM 650". Computerhistory .
  12. ^ "Архивы IBM: пресс-релиз объявления 650 RAMAC". IBM . Архивировано из оригинала 2023-06-09.
  13. ^ "Архивы IBM: пресс-релиз об анонсе IBM 650 Model 4". IBM . 2003-01-23. Архивировано из оригинала 2023-10-23 . Получено 2023-07-25 .
  14. ^ Ройс, Дэвид (1957). "Система IBM 650 RAMAC disk storage operation". Доклады, представленные на 26-28 февраля 1957 года на совместной западной компьютерной конференции: Методы обеспечения надежности на - IRE-AIEE-ACM '57 (Western) . ACM Press. стр. 43–49. doi : 10.1145/1455567.1455576 .
  15. ^ ab "Биографические заметки Кнута". softpanorama.org . Получено 2023-07-25 .
  16. ^ "IBM Archives: 650 Chronology". Архивировано из оригинала 2023-04-17.
  17. ^ Баше, Чарльз Дж.; Джонсон, Лайл Р.; Палмер, Джон Х.; Пью, Эмерсон В. (1986). Первые компьютеры IBM . Массачусетский технологический институт. стр. 473. ISBN 0-262-02225-7.
  18. ^ abcd "IBM Archives: 650 Components". Архивировано из оригинала 2023-07-25.
  19. ^ "Архивы IBM: IBM 650 Console Unit". IBM . Архивировано из оригинала 2023-10-23.
  20. ^ "Архивы IBM: IBM 655 Power Unit". IBM . Архивировано из оригинала 2023-04-08.
  21. Другие названия IBM для модели 533 включали «Устройство ввода-вывода» и «Устройство чтения-перфорации» .
  22. ^ "Архивы IBM: IBM 533 Card Read Punch". IBM . Архивировано из оригинала 2023-04-08.
  23. ^ "Архивы IBM: IBM 537 Card Read Punch". IBM . Архивировано из оригинала 2023-04-09.
  24. ^ Physical Planning Installation Manual 650 System (PDF) . IBM. 1 октября 1957 г. стр. 32. Получено 31 мая 2018 г. – через Bitsavers.
  25. ^ Customer Engineering Manual of Instruction (PDF) . IBM. 1956. стр. I-17 . Получено 31 мая 2018 г. – через Bitsavers.
  26. ^ "Архивы IBM: IBM 355 Disk Storage". IBM . Архивировано из оригинала 2023-04-09.
  27. ^ "Архивы IBM: IBM 407 accounting machine". IBM . Архивировано из оригинала 2023-07-03.
  28. ^ "Архивы IBM: IBM 652 Control Unit". IBM . Архивировано из оригинала 2023-04-08.
  29. ^ "Архивы IBM: Вспомогательный блок IBM 653". IBM . Архивировано из оригинала 2023-04-09.
  30. ^ "Архивы IBM: IBM 838 Inquiry Station". IBM . Архивировано из оригинала 2023-04-08.
  31. ^ "Архивы IBM: IBM 650 Magnetic Drum". IBM . Архивировано из оригинала 2023-02-07.
  32. ^ "Архивы IBM: Анонс IBM 650 Model 4". IBM . Архивировано из оригинала 2023-10-23.
  33. Кугель, Херб (22 октября 2001 г.). «ИБМ 650». Доктор Добб.
  34. ^ ab IBM (1957). SOAP II для IBM 650 (PDF) . C24-4000-0.
  35. ^ abc Расширения процессора IBM 650
  36. ^ IBM 650 System Bulletin, Базовые коды операций, Оптимизация программ, Загрузка программ (PDF) . IBM. 1958.
  37. ^ 12-дырокол может быть использован для идентификации карт как карт загрузки . Карты загрузки напрямую считываются в слова 1-8 указанной полосы хранения
  38. ^ ab Андре, Ричард В. (1958). Программирование компьютера с магнитным барабаном IBM 650 и машины обработки данных (PDF) .
  39. ^ Кнут, Дональд Э. (январь–март 1986 г.). «IBM 650: оценка с места событий». IEEE Annals of the History of Computing . 8 (1): 50–55. doi :10.1109/MAHC.1986.10010. S2CID  34595049.
  40. ^ 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., Мюррей-Хилл, Нью-Джерси.
  41. ^ Холбрук, Бернард Д.; Браун, У. Стэнли. «Технический отчет по вычислительной науке № 99 – История исследований в области вычислительной техники в лабораториях Белла (1937–1975)». Bell Labs . Архивировано из оригинала 2 сентября 2014 г. Получено 27 августа 2020 г.
  42. ^ Волонтис, В. М. «Полная система интерпретации с плавающей десятичной дробью для калькулятора с магнитным барабаном IBM 650» (PDF) . США: IBM – через bitsavers.
  43. ^ 650 Programming Bulletin 2. IBM. 1956. стр. 40. 22-6294-0. Описанная здесь интерпретирующая процедура представляет собой фиксированную десятичную трехадресную систему, которая обеспечивает математические, логические и операции ввода-вывода. Логика для этой системы была получена из Complete Floating Decimal Interpretive System для 650 , разработанной Bell Laboratories, Murray Hill, New Jersey.
  44. ^ Perlis, AJ ; Smith, JW; VanZoeren, HR (1958-04-18). Внутренний переводчик; IT, Компилятор для 650 (PDF) . Библиотечная программа 650 2.1.001.
  45. ^ Дональд Кнут опубликовал блок-схему компилятора в 1959 году; Кнут, Д.Э. (1959). «RUNCIBLE — алгебраическая трансляция на ограниченном компьютере». Communications of the ACM . 2 (11): 18–21. doi : 10.1145/368481.368507 . S2CID  8224014.; это была его первая научная работа.
  46. ^ IBM (1959). FOR TRANSIT Автоматическая система кодирования для IBM 650 (PDF) . 28-4028.
  47. ^ IBM (1960). Автоматическая система кодирования FORTRAN для IBM 650 (PDF) . 29-4047.
  48. ^ Грей, Джордж. "Твердотельный компьютер UNIVAC". Информационный бюллетень Unisys History, том 1.2, декабрь 1992 г. (пересмотрено в 1999 г.) . Архивировано из оригинала 4 марта 2016 г.

Дальнейшее чтение

Внешние ссылки