IBM 650 - IBM 650 - Wikipedia

Часть первого в Норвегии компьютера IBM 650 (1959 г.), известного как «EMMA». 650 Console Unit (справа, внешняя боковая панель отсутствует), 533 Card Read Punch unit (средний, ввод-вывод). 655 Блок питания отсутствует. Сортировщик перфокарт (слева, не входит в комплект 650). Сейчас на Норвежский музей науки и техники в Осло.
IBM 650 в Техасском университете A&M. Устройство перфорации для чтения карт IBM 533 находится справа.
Консольная панель IBM 650, показывающая бинарные индикаторы. (В Доме истории обработки данных IBM (закрыто), Зиндельфинген)
Крупный план бинарных индикаторов
Барабан памяти от IBM 650
Консольный модуль IBM 650, вид сбоку. Первый компьютер в Испании (1959 г.) сейчас на Национальный музей науки и техники в Ла-Корунья

В Машина для обработки данных с магнитным барабаном IBM 650 это ранний цифровой компьютер произведено IBM в середине 1950-х гг.[1][2] Первый был установлен в конце 1954 года, и он был самым популярным компьютером в течение следующих пяти лет.[3] Он был объявлен в 1953 году и в 1956 году был расширен как IBM 650 RAMAC с добавлением до четырех дисковых накопителей.[4] Было произведено почти 2000 систем, последняя из которых - в 1962 году.[5] Поддержка 650 и его составных частей была прекращена в 1969 году.

650 был двухадресный, двоично-десятичный кодированный десятичный компьютер (и данные, и адреса были десятичными), с объем памяти на вращающемся магнитном барабан. Характер поддержку обеспечивали блоки ввода / вывода, преобразующие перфокарты алфавитные и специальные кодировки символов в / из двузначного десятичного кода. 650 был продан коммерческим, научным и техническим пользователям, а также пользователям машины для перфокарт кто обновлялся с расчет ударов, такой как IBM 604, к компьютерам.[6]:5[7] Из-за относительно невысокой стоимости и простоты использования программирование, 650 был использован для широкого спектра приложений, от моделирования работы экипажей подводных лодок[8] обучению компьютерному программированию старшеклассников и студентов колледжей.

История

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

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

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

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

  • Консольный модуль IBM 650[12] размещались магнитный барабан-накопитель, арифметическое устройство (на электронных лампах) и пульт оператора.
  • IBM 655 Блок питания[13]
  • IBM 533 или же IBM 537 Устройство перфорации для чтения карт[14][15][16] У IBM 533 были отдельные каналы для чтения и перфорации; IBM 537 имел одну подачу, поэтому мог читать, а затем вставлять в одну и ту же карту.

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

Дополнительные блоки:[11]

  • IBM 46 перфоратор с ленты на карту, модель 3[19]
  • Пробойник для печати с ленты на карту IBM 47, модель 3[19]
  • IBM 355 Дисковое хранилище[20] Системы с дисковым накопителем были известны как Системы обработки данных IBM 650 RAMAC
  • IBM 407 Бухгалтерская машина[21]
  • IBM 543 Устройство чтения карт
  • IBM 544 Карточный перфоратор
  • IBM 652 Блок управления (магнитная лента, диск)[22]
  • IBM 653 Устройство хранения (магнитная лента, диск, основное хранилище, индексные регистры, арифметика с плавающей запятой)[23]
  • IBM 654 Вспомогательная буквенная единица
  • IBM 727 Магнитная лента
  • IBM 838 Справочная станция[24]

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

Вращающийся барабанная память при условии 1000, 2000 или 4000 слова памяти (10-значное число со знаком или пять символов на слово) по адресам от 0000 до 0999, 1999 или 3999 соответственно.[25][26] Слова на барабанах были организованы в группы вокруг барабана, по пятьдесят слов на группу и 20, 40 или 80 полос для соответствующих моделей. Доступ к слову можно было получить, если его местоположение на поверхности барабана проходило под головками чтения / записи во время вращения (вращение на 12500 об / мин, неоптимизированное среднее время доступа было 2,5 РС ). Из-за этого времени второй адрес в каждой инструкции был адресом следующей инструкции. Тогда программы могут быть оптимизированный путем размещения инструкций по адресам, которые будут доступны сразу после завершения выполнения предыдущей инструкции. IBM предоставила форму с десятью столбцами и 200 строками, чтобы программисты могли отслеживать, куда они помещают инструкции и данные. Позже ассемблер, Была предоставлена ​​SOAP (программа символьной оптимальной сборки), выполняющая грубую оптимизацию.[27][28]

В LGP-30, Бендикс Г-15 и IBM 305 RAMAC компьютеры также использовали электронные лампы и барабанную память. Но они сильно отличались от IBM 650.

Инструкции, прочитанные с барабана, отправились в регистр программы (в современной терминологии регистр инструкций ). Данные, считанные с барабана, прошли 10-значный распределитель. 650 имел 20-значное аккумулятор, разделенный на 10-значные нижний и верхний аккумуляторы с общим знаком. Арифметика производилась однозначным сумматором. Консоль (10-значные переключатели, один знаковый переключатель и 10 двухзначных индикаторов дисплея), распределитель, нижний и верхний аккумуляторы были адресуемыми; 8000, 8001, 8002, 8003 соответственно.

IBM 653 Storage Unit

Дополнительный модуль хранения IBM 653, представленный 3 мая 1955 года, в конечном итоге предоставляет до пяти функций:[29]

  • Контроллер магнитной ленты (для устройств 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 дополнительных кодов операций)
  • Плавающая точка - арифметические инструкции поддерживали восьмизначную мантиссу и двузначную характеристику (показатель смещения) - ММММММММСС, обеспечивающий диапазон от ± 0,00000001E-50 до ± 0,99999999E + 49. (семь дополнительных кодов операций)

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

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

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

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

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

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

17AABLДобавить абсолютное значение в нижний аккумулятор
15ALДобавить в нижний аккумулятор
10AUДобавить в верхний аккумулятор
45BRNZПереход на аккумулятор ненулевой
46BRMINОтделение на минусовом аккумуляторе
44BRNZUПереход на ненулевое значение в верхнем аккумуляторе
47БРОВВетка при переполнении
90-99BRDОтветвление на 8 в распределительных позициях 1-10 **
14DIVРазделять
64DIVRUРазделить и сбросить верхний аккумулятор
69LDРаспределитель нагрузки
19MULTУмножить
00NO-OPНет операции
71PCHПерфорировать карту
70RDЧитать карту
67RAABLСбросьте аккумулятор и добавьте абсолютное значение в нижний аккумулятор
65RALСбросить аккумулятор и добавить в нижний аккумулятор
60RAUСбросить аккумулятор и добавить в верхний аккумулятор
68РСАБЛСбросьте аккумулятор и вычтите абсолютное значение из нижнего аккумулятора
66RSLСбросить аккумулятор и вычесть из нижнего аккумулятора
61RSUСбросить аккумулятор и вычесть из верхнего аккумулятора
35SLTАккумулятор переключения передач влево
36SCTСдвинуть аккумулятор влево и считать ***
30SRTАккумулятор переключения передач правый
31SRDАккумулятор переключения передач вправо и круглый аккумулятор
01ОСТАНОВКАОстановить, если консольный переключатель установлен в положение остановки, в противном случае продолжайте как НЕТ-ОП
24ЗПППСохранить дистрибьютор в памяти
22STDAСохраните нижний адрес данных аккумулятора в дистрибьюторе

Затем сохраните дистрибьютор в памяти

23STIAСохранить адрес инструкции младшего аккумулятора в дистрибьюторе

Затем сохраните дистрибьютор в памяти

20STLСохраните нижний аккумулятор в памяти
21СТЮСохранить верхний аккумулятор в памяти *
18SABLВычесть абсолютное значение из нижнего аккумулятора
16SLВычесть из нижнего аккумулятора
11SUВычесть из верхнего аккумулятора
84ВПУПоиск в таблице

Примечания:

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

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

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

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

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

    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 Считывание карты нагрузки в область считывания 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)[32]
  • ДЛЯ ТРАНЗИТА - Версия Фортран который скомпилирован в IT, который, в свою очередь, был скомпилирован в SOAP[33]
  • FORTRAN[34]
  • GATE - простой компилятор с односимвольными именами переменных
  • Толковательный виртуальная машина приложения пакеты L1[35][36] и L2 - известен за пределами Bell Labs как «Колокол 1» и «Колокол 2»
  • Internal Translator (IT) - компилятор[37]
  • IPL - Первый язык обработки списков. Самой известной версией была IPL-V.
  • Пересмотренный унифицированный новый компилятор IT Basic Language Extended (RUNCIBLE)[38]
  • SPACE (Simplified Programming Anyone Can Enjoy) - двухэтапный компилятор, ориентированный на бизнес, через SOAP.
  • Символьная оптимальная программа сборки (SOAP) - An ассемблер[28]
  • Синтетическая система программирования для коммерческих приложений [39]
  • Система технической сборки (ТАСС) - А макроассемблер.

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

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

  1. ^ «Установка IBM 650 с устройством магнитной ленты IBM 727 и дисковым хранилищем IBM 355». Архивы IBM. нас. Получено 5 сентября, 2019.
  2. ^ «Сборка IBM 650 на заводе в Эндикотте». Архивы IBM. нас. Получено 5 сентября, 2019.
  3. ^ Дэвис, Гордон Б. (1971). Введение в электронные компьютеры (Второе изд.). Нью-Йорк: Макгроу-Хилл. п.10. ISBN  978-0-070-15821-4.
  4. ^ Объявление для прессы IBM 650 RAMAC
  5. ^ Пью, Эмерсон В. (1995). Строительство IBM: формирование отрасли и ее технологий. MIT Press. п.182. ISBN  978-0-262-16147-3.
  6. ^ а б Машина обработки данных с магнитным барабаном IBM 650: руководство по эксплуатации (PDF). IBM. 1955. 22-6060-1.
  7. ^ Архивы IBM: 650 клиентов
  8. ^ Грей, Уэйн Д. (2007). Интегрированные модели систем познания. Нью-Йорк: Издательство Оксфордского университета. п.36. ISBN  978-0-19-518919-3.
  9. ^ "Архив IBM: 650 хронологии".
  10. ^ Баше, Чарльз Дж .; Джонсон, Лайл Р.; Палмер, Джон Х .; Пью, Эмерсон В. (1986). Ранние компьютеры IBM. Массачусетский технологический институт. п.473. ISBN  0-262-02225-7.
  11. ^ а б Архивы IBM: 650 компонентов
  12. ^ Архивы IBM: Консольный модуль IBM 650
  13. ^ Архивы IBM: IBM 655 Power Unit
  14. ^ Другие имена IBM для 533 включены Блок ввода-вывода и Блок чтения-перфорации.
  15. ^ Архивы IBM: перфорация для чтения карт IBM 533
  16. ^ Архивы IBM: перфорация для чтения карт IBM 537
  17. ^ Physical Planning Руководство по установке системы 650 (PDF). IBM. 1 октября 1957 г. с. 32. Получено 31 мая, 2018 - через Bitsavers.
  18. ^ Инженерное руководство пользователя по эксплуатации (PDF). IBM. 1956. с. I-17. Получено 31 мая, 2018 - через Bitsavers.
  19. ^ а б Не в сети
  20. ^ Архивы IBM: дисковое хранилище IBM 355
  21. ^ Архивы IBM: бухгалтерская машина IBM 407
  22. ^ Архивы IBM: Блок управления IBM 652
  23. ^ Архивы IBM: Вспомогательный блок IBM 653
  24. ^ Архивы IBM: Справочная станция IBM 838
  25. ^ Архивы IBM: Магнитный барабан IBM 650
  26. ^ Архивы IBM: анонс IBM 650 Model 4
  27. ^ Кугель, Херб (22 октября 2001 г.). "IBM 650". Доктора Добба.
  28. ^ а б IBM (1957). SOAP II для IBM 650 (PDF). C24-4000-0.
  29. ^ а б c Расширения ЦП IBM 650
  30. ^ Системный бюллетень IBM 650, основные коды операций, оптимизация программ, загрузка программы (PDF). IBM. 1958 г.
  31. ^ Пробойник 12 может использоваться для идентификации карт как загрузить карты. Карты загрузки считываются напрямую в слова 1-8 указанной полосы хранения
  32. ^ Справочное руководство IBM: Система интерпретации чисел с плавающей запятой для IBM 650 (PDF). IBM. 1959. С. 63, xxi. 28-4024. Это перепечатка Технического бюллетеня IBM 650 № 11, март 1956 г., форма 31-6822.. Это справочное руководство содержит следующий отчет, в котором отмечается, что По своим внешним характеристикам интерпретирующая система, описанная в этом отчете, во многом обязана IBM Speedcoding System для 701. Волонтис, В. Полная система интерпретации чисел с плавающей запятой для калькулятора магнитного барабана IBM 650. Bell Laboratories, Inc., Мюррей-Хилл, Нью-Джерси.
  33. ^ IBM (1959). FOR TRANSIT Система автоматического кодирования для IBM 650 (PDF). 28-4028.
  34. ^ IBM (1960). Система автоматического кодирования FORTRAN для IBM 650 (PDF). 29-4047.
  35. ^ Холбрук, Бернард Д.; Браун, У. Стэнли. "Технический отчет по вычислительной науке № 99 - История компьютерных исследований в Bell Laboratories (1937–1975)". Bell Labs. Архивировано из оригинал 2 сентября 2014 г.. Получено 27 августа, 2020.
  36. ^ Волонтис, В.М. «Полная система интерпретации с плавающей запятой для калькулятора магнитного барабана IBM 650» (PDF). США: IBM - через битсейверы.
  37. ^ Перлис, А.Дж.; Smith, J.W .; Ван Зоерен, Х.Р. (18 апреля 1958). Внутренний переводчик; IT, компилятор для 650 (PDF). 650 Библиотечная программа 2.1.001.
  38. ^ Дональд Кнут опубликовал блок-схема составителя 1959 г .;Кнут, Д. Э. (1959). «RUNCIBLE - алгебраический перевод на ограниченном компьютере». Коммуникации ACM. 2: 18–21. Дои:10.1145/368481.368507.; это была его первая научная работа.
  39. ^ 650 Бюллетень программирования 2. IBM. 1956. с. 40. 22-6294-0. Описанная здесь программа интерпретации представляет собой трехадресную систему с фиксированным десятичным числом, которая обеспечивает математические, логические операции и операции ввода-вывода. Логика для этой системы была получена из Полная система интерпретации с плавающей запятой для 650 который был разработан Bell Laboratories, Мюррей Хилл, Нью-Джерси.
  40. ^ Грей, Джордж. «Твердотельный компьютер UNIVAC». Информационный бюллетень Unisys History, том 1.2, декабрь 1992 г. (редакция 1999 г.). Архивировано из оригинал 4 марта 2016 г.

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

внешняя ссылка