Remove ads
Из Википедии, свободной энциклопедии
IBM 704 — первый массово-выпускавшийся компьютер с аппаратной поддержкой вычислений с плавающей точкой, представленный фирмой IBM в 1954 году[1]. В руководстве по эксплуатации IBM 704[2] машина характеризуется следующим образом:
Стиль этой статьи неэнциклопедичен или нарушает нормы литературного русского языка. |
Электронная машина обработки данных типа 704 — это большой высокоскоростной электронный вычислитель, управляемый хранящийся внутри программой из инструкций одноадресного типа.
Оригинальный текст (англ.)The type 704 Electronic Data-Processing Machine is a large-scale, high-speed electronic calculator controlled by an internally stored program with instructions of the single address type.
Модель 704 была значительно улучшена по сравнению с более ранней IBM 701 в части архитектуры и реализации. Как и в 701 модели, логические цепи были построены на электронных лампах. Изменения по сравнению с 701 моделью включали использование памяти на магнитных сердечниках вместо трубок Уильямса и добавление трёх индексных регистров. Для поддержки новых возможностей длина инструкций была увеличена до полного размера машинного слова (36 бит). Новый набор команд, несовместимый с набором команд модели 701, стал основой для машин IBM серий 700/7000 с «научной архитектурой».
Модель 704 могла выполнять до 12 000 сложений или до 4000 умножений с плавающей точкой в секунду[1], темп выполнения простых инструкций мог достигать 40 000 в секунду[2]. IBM продала около 140 компьютеров модели 704 между 1955 и 1960 годами.
Языки программирования Фортран[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.
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 (от англ. contents of the address part of register — «содержимое адресной части регистра») и CDR (от англ. contents of the decrement part of register — «содержимое декрементной части регистра») получили свои названия в соответствии с этими полями[12]. В данном контексте под термином «регистр» подразумевается ячейка памяти[13] [14]. Известное объяснение названий функций CAR и CDR, как сокращений от contents of the address register («содержимое регистра адреса») и contents of the decrement register («содержимое регистра декремента»)[15] следует считать упрощением, не отражающим архитектуры IBM 704. В машине не было программно-доступного регистра адреса, а трём регистрам модификации адреса компанией IBM было дано название «индексных». Поэтому правильно расшифровывать CAR как «Contents of the Address part of the Register» («содержимое адресной части регистра»), а CDR как «Contents of the Decrement part of the Register» («содержимое декрементной части регистра»).
Периферийные устройства, входившие в комплект IBM 704, включали: один считыватель перфокарт модели 711, один алфавитно-цифровой принтер модели 716, один перфоратор перфокарт модели 721, пять накопителей на магнитной ленте модели 727 и один блок управления этими накопителями модели 753, один накопитель на магнитном барабане модели 733 и один блок памяти на магнитных сердечниках модели 737. Блок вычислителя 704 поставлялся с консолью оператора, содержащей 36 управляющих переключателей и 36 переключателей ввода данных (по одному для каждого бита регистра). Консоль оператора, фактически, обеспечивала только задание двоичных значений регистров с помощью переключателей и просмотр содержимого регистров с помощью неоновых лампочек, сгруппированных по 3 разряда. Для работы с компьютером предварительно необходимо было ввести программу с перфокарт, а не с консоли. Человекочитаемый результат работы программы направлялся на принтер. Также было доступно устройство вывода на электронно-лучевую трубку IBM 740, содержавшее 21-дюймовый векторный дисплей с временем послесвечения люминофора до 20 секунд для просмотра человеком и 7-дюймовый дисплей с малым временем послесвечения, отображающий то же самое изображение и предназначенный для фотографирования присоединяемым к нему фотоаппаратом[16].
Блок памяти на магнитных сердечниках модели 737 имел объём 4096 36-битных слов (18432 байта) и использовался как ОЗУ[17]. Накопитель на магнитной ленте модели 727 позволял хранить более 5 миллионов шестибитных символов на одной катушке ленты.
Seamless Wikipedia browsing. On steroids.
Every time you click a link to Wikipedia, Wiktionary or Wikiquote in your browser's search results, it will show the modern Wikiwand interface.
Wikiwand extension is a five stars, simple, with minimum permission required to keep your browsing private, safe and transparent.