Русская Википедия:IBM 704
IBM 704 — первый массово выпускавшийся компьютер с аппаратной поддержкой вычислений с плавающей точкой, представленный фирмой IBM в 1954 году[1]. В руководстве по эксплуатации IBM 704[2] машина характеризуется следующим образом.
Шаблон:Начало цитаты Электронная машина обработки данных типа 704 — это большой высокоскоростной электронный вычислитель, управляемый хранящейся внутри программой из инструкций одноадресного типа. Шаблон:Oq Шаблон:Конец цитаты
Модель 704 была значительно улучшена по сравнению с более ранней IBM 701 в части архитектуры и реализации. Как и в 701 модели, логические цепи были построены на электронных лампах. Изменения по сравнению с 701 моделью включали использование памяти на магнитных сердечниках вместо трубок Уильямса и добавление трёх индексных регистров. Для поддержки новых возможностей, длина инструкций была увеличена до полного размера машинного слова (36 бит). Новый набор команд, несовместимый с набором команд модели 701, стал основой для машин IBM серий 700/7000 с «научной архитектурой».
Модель 704 могла выполнять до 12000 сложений или до 4000 умножений с плавающей точкой в секунду[1], темп выполнения простых инструкций мог достигать 40000 в секунду[2]. IBM продала около 140 компьютеров модели 704 между 1955 и 1960 годами.
IBM 704 в истории вычислительной техники
Языки программирования Фортран[3] и Лисп[4] были впервые разработаны для IBM 704.
Для IBM 704 Максом Мэтьюсом была разработана первая компьютерная программа для цифрового синтеза звука MUSIC.
В 1962 году физик Джон Ларри Келли младший с использованием компьютера IBM 704 создал одну из самых ярких демонстраций компьютерного синтеза речи в истории компании Bell Labs. Вокодер (синтезатор речи), запрограммированный Келли, воспроизвел популярную песню Daisy Bell под музыкальный аккомпанемент, запрограммированный Максом Мэтьюсом. Оригинальная запись была сделана в 1961 году[5]. Результат синтеза речи и музыки в цифровом виде записывался на магнитную ленту, а затем воспроизводился с использованием 12-разрядного лампового цифро-аналогового преобразователя[6]. Артур Кларк, посещавший друга и коллегу Джона Пирса в отделении Bell Labs в Мюррей Хилл, по случаю оказался на этой демонстрации. Кларк был настолько впечатлен, что спустя шесть лет он использовал этот момент в романе и сценарии к фильму «Космическая одиссея 2001 года»: в сцене отключения астронавтом Дейвом Боуменом компьютера «HAL 9000» компьютер поёт ту же песню[7].
Эдвард Торп, профессор математики из Массачусетского технологического института, использовал IBM 704 при разработке своей теории игры в блэкджек в качестве исследовательского инструмента для изучения вероятности выигрыша[8][9]. Свою исследовательскую модель Торп запрограммировал на Фортране.
IBM 704 использовался Смитсоновской астрофизической обсерваторией для вычисления орбиты первого советского спутника на основе данных, собранных астрономами любителями в рамках проекта Moonwatch осенью 1957 года. В вычислении параметров орбиты учёным и математикам Смитсоновской астрофизической обсерватории помогали четверо штатных сотрудников компании IBM.
Технические характеристики
- разрядность машинного слова — 36 бит
- разрядность шины адреса — 15 бит
- длина инструкции — 36 бит
- время операции сложения чисел с плавающей запятой — 84 микросекунды[1]
- время умножения чисел с плавающей запятой — 240 микросекунд[1]
- элементная база — электронные лампы
- память на магнитных сердечниках от 4K до 32K слов
Архитектура
Регистры
IBM 704 содержал 38-битный аккумулятор (2 дополнительных разряда Q и P, использовались для контроля переполнения), 36-битный регистр «множителя/остатка», и три 15-битных индексных регистра. Содержимое индексных регистров вычиталось из базового адреса, поэтому эти регистры также назывались «регистрами декремента». Все три регистра можно было использовать одновременно в одной инструкции: разряды 3-битного поля тега инструкции определяли, какие индексные регистры будут использованы. Перед выполнением декремента содержимое регистров не складывалось, а объединялось операцией логического ИЛИ. Такое поведение сохранилось и в более поздних машинах «научной архитектуры» (таких как IBM 709 и IBM 7090), вплоть до IBM 7094. В машине IBM 7094, представленной в 1962 году, число индексных регистров было увеличено до семи, а одновременно можно было использовать только один. Режим объединения содержимого регистров операцией логического ИЛИ остался доступен только в режиме совместимости[10].
Форматы инструкций
Поддерживалось два формата инструкций, называемых «Тип A» и «Тип B»[11]. Большинство инструкций относилось к типу B.
Инструкции типа A содержали последовательность из 3-битного префикса (кода инструкции), 15-битного поля декремента, 3-битного поля тега и 15-битного поля адреса. К типу A относились инструкции условных переходов, использующие значения из индексных регистров, задаваемых в поле тега. Некоторые из этих инструкций позволяли вычитать поле декремента из значения индексного регистра. Аппаратная реализация требовала, чтобы второй, либо третий биты кода инструкции были ненулевыми. Таким образом, было возможно закодировать до 6 инструкций типа A, но только в машине IBM 709 появилась шестая инструкция типа A (STR).
Инструкции типа B содержали последовательность из 12-битного кода инструкции (второй и третий биты должны были быть нулевыми, это был отличительный признак инструкций типа B), 2-битного поля флага, 4 неиспользуемых бит, 3-битного поля тега и 15-битного поля адреса.
Особенностью набора инструкций была возможность модифицировать части машинного слова. Машинное слово рассматривалось как структура, имеющая формат инструкции типа A. Имелись инструкции для модификации полей префикса, декремента и адреса, хотя для модификации поля тега в IBM 704 инструкции не было предусмотрено. Первая реализация языка Лисп использовала поля адреса и декремента для хранения головы и хвоста списка. Системные функции CAR (от Шаблон:Lang-en — «содержимое адресной части регистра») и CDR (от Шаблон:Lang-en — «содержимое декрементной части регистра») получили свои названия в соответствии с этими полямиШаблон:Sfn. В данном контексте под термином «регистр» подразумевается ячейка памятиШаблон:Sfn [12]. Известное объяснение названий функций CAR и CDR, как сокращений от contents of the address register («содержимое регистра адреса») и contents of the decrement register («содержимое регистра декремента»)[13] следует считать упрощением, не отражающим архитектуры IBM 704. В машине не было программно-доступного регистра адреса, а трём регистрам модификации адреса компанией IBM было дано название «индексных». Поэтому правильно расшифровывать CAR как «Contents of the Address part of the Register» («содержимое адресной части регистра»), а CDR как «Contents of the Decrement part of the Register» («содержимое декрементной части регистра»).
Форматы данных
- Числа с фиксированной запятой со знаком
- Числа с плавающей запятой, содержащие бит знака, 8 бит порядка со смещением 128 и 27-битную мантиссу
- Алфавитно-цифровые символы в 6-битной кодировке BCD, по 6 символов в одном машинном слове
Память и периферийные устройства
Периферийные устройства, входившие в комплект IBM 704, включали: один считыватель перфокарт модели 711, один алфавитно-цифровой принтер модели 716, один перфоратор перфокарт модели 721, пять накопителей на магнитной ленте модели 727 и один блок управления этими накопителями модели 753, один накопитель на магнитном барабане модели 733 и один блок памяти на магнитных сердечниках модели 737. Блок вычислителя 704 поставлялся с консолью оператора, содержащей 36 управляющих переключателей и 36 переключателей ввода данных (по одному для каждого бита регистра). Консоль оператора, фактически, обеспечивала только задание двоичных значений регистров с помощью переключателей и просмотр содержимого регистров с помощью неоновых лампочек, сгруппированных по 3 разряда. Для работы с компьютером предварительно необходимо было ввести программу с перфокарт, а не с консоли. Человекочитаемый результат работы программы направлялся на принтер. Также было доступно устройство вывода на электронно-лучевую трубку IBM 740, содержавшее 21-дюймовый векторный дисплей с временем послесвечения люминофора до 20 секунд для просмотра человеком и 7-дюймовый дисплей с малым временем послесвечения, отображающий то же самое изображение и предназначенный для фотографирования присоединяемым к нему фотоаппаратом[14].
Блок памяти на магнитных сердечниках модели 737 имел объём 4096 36-битных слов (18432 байта) и использовался как ОЗУ[15]. Накопитель на магнитной ленте модели 727 позволял хранить более 5 миллионов шестибитных символов на одной катушке ленты.
См. также
Примечания
Литература
Дополнительная литература
- Charles J. Bashe, Lyle R. Johnson, John H. Palmer, Emerson W. Pugh, IBM’s Early Computers (MIT Press, Cambridge, 1986)Шаблон:Ref-en
- Стивен Леви, Хакеры: Герои компьютерной революции
Ссылки
- Oral history interview with Gene Amdahl Миннеаполис, Миннесотский Университет, Институт Чарльза Бэббиджа. Джин Амдал рассказывает о своей роли в разработке компьютеров в IBM, включая STRETCH, IBM 701, и IBM 704. Он обсуждает свою работу с Натаниэлем Рочестером и организацию процесса проектирования компьютеров в IBMШаблон:Ref-en
- Applications and installations of the IBM 704 Data Processing System — Из Третьего обзора отечественных электронных цифровых вычислительных систем Мартина Уайка, отчёт № 1115, март 1961. Мэриленд, Абердинский испытательный полигон, Лаборатории Баллистических Исследований. Текстовая версия документа из Музея Компьютерной Истории (http://www.computerhistory.org)Шаблон:Ref-en
- Редкие фотографии деталей IBM 704Шаблон:Ref-en
- ↑ 1,0 1,1 1,2 1,3 Шаблон:Cite web
- ↑ 2,0 2,1 IBM Type 704 Manual of operation, Form 24-66661-1, IBM, 1956, http://www.cs.virginia.edu/brochure/images/manuals/IBM_704/IBM_704.html Шаблон:Wayback IBM 704 Manual of Operation
- ↑ Шаблон:Cite web
- ↑ http://www-formal.stanford.edu/jmc/history/lisp/node2.html Шаблон:Wayback LISP Prehistory, John McCarthy, 1996
- ↑ Шаблон:Cite web
- ↑ Шаблон:Статья
- ↑ Bell Labs: Where «HAL» First Spoke (Bell Labs Speech Synthesis website)
- ↑ Шаблон:Статья
- ↑ Шаблон:Статья
- ↑ Шаблон:Книга
- ↑ Шаблон:Cite web
- ↑ Шаблон:Книга, на странице 36 ячейки списка описаны как машинные слова с 15-битными полями «адреса» и «декремента».
- ↑ См., например, Шаблон:Книга, Раздел 3.4, Innovations in the Design of Lisp. Книга ссылается на IBM 704 и правильно объясняет наличие адресной и декрементной частей ячейки списка, но слова «часть регистра» из объяснения Маккарти пропущены.
- ↑ Шаблон:Cite web
- ↑ Шаблон:Cite web