stringtranslate.com

ИБМ 650

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]

История

Первые 650 были установлены 8 декабря 1954 года в диспетчерском отделе компании по взаимному страхованию жизни Джона Хэнкока в Бостоне. [16]

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

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

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

Вес: 5 400–6 263 фунта (2,7–3,1 коротких тонны; 2,4–2,8 т). [24] [25]

Дополнительные устройства: [18]

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

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

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

650 инструкций состояли из двухзначного кода операции , четырехзначного адреса данных и четырехзначного адреса следующей инструкции. Знак игнорировался на базовой машине, но использовался на машинах с дополнительными функциями. Базовая машина имела 44 кода операций. Для опций были предоставлены дополнительные коды операций, такие как операции с плавающей запятой, базовая память, индексные регистры и дополнительные устройства ввода-вывода. При всех установленных опциях было 97 кодов операций. [36]

Команда поиска по таблице (TLU) могла бы с высокой точностью сравнить указанное 10-значное слово с 48 последовательными словами на той же полосе барабана за один оборот в 5 мс, а затем вовремя переключиться на следующую полосу для следующих 48 слов. Этот подвиг составлял примерно треть скорости двоичной машины, работавшей в тысячу раз быстрее в 1963 году (от 1500 микросекунд у IBM 7040 до 5000 микросекунд у IBM 650) при поиске 46 записей, если обе были запрограммированы на ассемблере. Была дополнительная команда поиска по таблице Equal с той же производительностью.

Команда чтения (RD) считывает карту числовых данных из 80 столбцов в десять слов памяти; Распределение цифр по словам определяется разводкой панели управления картридера . При использовании с алфавитным устройством устройства Reader Punch 533 можно считывать комбинацию цифровых и буквенно-цифровых столбцов (максимум 30 буквенно-цифровых столбцов). [8] Функция расширения позволяла использовать больше буквенно-цифровых столбцов, но, конечно, не более 50, поскольку только десять слов (пять символов в слове) сохранялись на барабане при операции чтения карты. [ нужна цитата ]

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

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

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

Примечания:

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

Пример программы

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

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

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

Цифровые переключатели консоли (адрес 8000) вручную устанавливаются на команду чтения с адресом данных 0004.

 loc- op|данные|следующий ация |адрес|инструкция | |адрес
 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, приведенной выше)

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

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

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

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

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

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

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

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

  1. ^ «Установка IBM 650 с устройством магнитной ленты IBM 727 и дисковым хранилищем IBM 355» . Архивы IBM . НАС . Проверено 5 сентября 2019 г.
  2. ^ «Сборка IBM 650 на заводе в Эндикотте» . Архивы IBM . НАС . Проверено 5 сентября 2019 г.
  3. ^ «История компьютеров 1937-2011». Университет Олд Доминион . Проверено 22 июня 2021 г.
  4. ^ «IBM в компьютерную эпоху». Проект истории вычислительной техники Миннесоты . 28 июня 2018 года . Проверено 21 июня 2021 г.
  5. ^ Пью, Эмерсон В. (1995). Создание IBM: формирование отрасли и ее технологий . МТИ Пресс. п. 182. ИСБН 978-0-262-16147-3.
  6. ^ abc "Калькулятор магнитного барабана IBM 650" . Колумбия.edu .
  7. ^ Дэвис, Гордон Б. (1971). Введение в электронные компьютеры (второе изд.). Нью-Йорк: МакГроу-Хилл. п. 10. ISBN 978-0-070-15821-4.
  8. ^ ab Машина обработки данных с магнитным барабаном IBM 650: Руководство по эксплуатации (PDF) . ИБМ. 1955. 22-6060-1.
  9. ^ Архивы IBM: 650 клиентов.
  10. ^ Грей, Уэйн Д. (2007). Интегрированные модели систем познания . Нью-Йорк: Издательство Оксфордского университета. п. 36. ISBN 978-0-19-518919-3.
  11. ^ «Представлен калькулятор с магнитным барабаном IBM 650» . Компьютерная история .
  12. ^ Пресс-релиз с анонсом IBM 650 RAMAC
  13. ^ «Архивы IBM: пресс-релиз с анонсом IBM 650 Model 4» . www.ibm.com . 23 января 2003 г. Проверено 25 июля 2023 г.
  14. ^ Ройс, Дэвид (1957). «Операция системного дискового хранилища IBM 650 RAMAC». Доклады, представленные на объединенной западной компьютерной конференции 26-28 февраля 1957 г.: Методы обеспечения надежности - IRE-AIEE-ACM '57 (Western) . АКМ Пресс. стр. 43–49. дои : 10.1145/1455567.1455576 .
  15. ^ "Биографические заметки Кнута". softpanorama.org . Проверено 25 июля 2023 г.
  16. ^ "В архиве IBM: 650 хронология" .
  17. ^ Баше, Чарльз Дж.; Джонсон, Лайл Р.; Палмер, Джон Х.; Пью, Эмерсон В. (1986). Первые компьютеры IBM . Массачусетский технологический институт. п. 473. ИСБН 0-262-02225-7.
  18. ^ ab Архивы IBM: 650 компонентов
  19. ^ Архивы IBM: Консольный модуль IBM 650
  20. ^ Архивы IBM: Блок питания IBM 655
  21. ^ Другие названия IBM для 533 включали блок ввода-вывода и блок чтения-перфорации .
  22. ^ Архивы IBM: Перфоратор для чтения карт IBM 533
  23. ^ Архивы IBM: Перфоратор для чтения карт IBM 537
  24. ^ Руководство по установке системы физического планирования 650 (PDF) . ИБМ. 1 октября 1957 г. с. 32 . Проверено 31 мая 2018 г. - через Bitsavers.
  25. ^ Руководство по инженерному обслуживанию заказчика (PDF) . ИБМ. 1956. с. И-17 . Проверено 31 мая 2018 г. - через Bitsavers.
  26. ^ аб Оффлайн
  27. ^ Архивы IBM: Дисковое хранилище IBM 355
  28. ^ Архивы IBM: бухгалтерская машина IBM 407
  29. ^ Архивы IBM: Модуль управления IBM 652
  30. ^ Архивы IBM: Вспомогательный блок IBM 653
  31. ^ Архивы IBM: Справочная станция IBM 838
  32. ^ Архивы IBM: Магнитный барабан IBM 650
  33. ^ Архивы IBM: анонс IBM 650 Model 4
  34. Кугель, Херб (22 октября 2001 г.). «ИБМ 650». Доктор Добб.
  35. ^ AB IBM (1957). SOAP II для IBM 650 (PDF) . С24-4000-0.
  36. ^ abc Расширения ЦП IBM 650
  37. ^ Системный бюллетень IBM 650, коды основных операций, оптимизация программы, загрузка программы (PDF) . ИБМ. 1958.
  38. ^ Для идентификации карт как загрузочных карт можно использовать дырокол 12 . Карты загрузки считываются непосредственно в слова 1–8 указанной полосы хранения.
  39. ^ аб Андре, Ричард В. (1958). Программирование компьютера и машины обработки данных с магнитным барабаном IBM 650 (PDF) .
  40. ^ Кнут, Дональд Э. (январь – март 1986 г.). «IBM 650: признание с поля». IEEE Анналы истории вычислений . 8 (1): 50–55. дои : 10.1109/MAHC.1986.10010. S2CID  34595049.
  41. ^ Справочное руководство 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., Мюррей-Хилл, Нью-Джерси.
  42. ^ Холбрук, Бернард Д.; Браун, В. Стэнли. «Технический отчет по информатике № 99 - История компьютерных исследований в Bell Laboratories (1937–1975)». Лаборатории Белла . Архивировано из оригинала 2 сентября 2014 года . Проверено 27 августа 2020 г.
  43. ^ Волонтис, В.М. «Полная система интерпретации чисел с плавающей запятой для калькулятора с магнитным барабаном IBM 650» (PDF) . США: IBM – через битсейверы.
  44. ^ 650 Бюллетень по программированию 2 . ИБМ. 1956. с. 40. 22-6294-0. Описанная здесь процедура интерпретации представляет собой фиксированную десятичную трехадресную систему, которая обеспечивает математические, логические операции и операции ввода-вывода. Логика этой системы была получена из Полной интерпретационной системы с плавающей запятой для модели 650 , разработанной Bell Laboratories, Мюррей-Хилл, Нью-Джерси.
  45. ^ Перлис, AJ ; Смит, Дж.В.; ВанЗорен, HR (18 апреля 1958 г.). Внутренний переводчик; IT, компилятор для 650 (PDF) . 650 Библиотечная программа 2.1.001.
  46. ^ Дональд Кнут опубликовал блок-схему компилятора в 1959 году; Кнут, DE (1959). «RUNCIBLE — алгебраический перевод на ограниченном компьютере». Коммуникации АКМ . 2 (11): 18–21. дои : 10.1145/368481.368507 . S2CID  8224014.; это была его первая научная работа.
  47. ^ IBM (1959). FOR TRANSIT Автоматическая система кодирования для IBM 650 (PDF) . 28-4028.
  48. ^ IBM (1960). Система автоматического кодирования FORTRAN для IBM 650 (PDF) . 29-4047.
  49. ^ Грей, Джордж. «Твердотельный компьютер UNIVAC». Информационный бюллетень истории Unisys, том 1.2, декабрь 1992 г. (пересмотренный в 1999 г.) . Архивировано из оригинала 4 марта 2016 года.

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

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