IBM 1620 был объявлен IBM по 21 октября 1959 года и позиционируется как недорогой «научного компьютера». После общего производства около двух тысяч машин он был снят с производства 19 ноября 1970 года. Модифицированные версии 1620 использовались в качестве центрального процессора систем управления промышленными процессами IBM 1710 и IBM 1720 (что сделало его первым цифровым компьютером, который считался достаточно надежным. для управления технологическим процессом заводского оборудования в реальном времени ).
Будучи переменной длиной слова десятичной, в отличии от фиксированного слова длиной Бинарного, сделал его особенно привлекательный первый компьютер, чтобы узнать, на - и сотнях тысяч студентов имели свои первые опыты с компьютером на IBM 1620.
Время цикла основной памяти составляло 20 микросекунд для (более ранней) модели I, 10 микросекунд для модели II (примерно в тысячу раз медленнее, чем у типичной оперативной памяти компьютера в 2006 году). Модель II была представлена в 1962 году.
IBM 1620 был компьютером с переменной длиной « слова » в десятичной системе счисления ( BCD ) с памятью на магнитном сердечнике, которая могла содержать:
Вышеупомянутое было в Model I. В Model II был развернут блок памяти ядра-хранилища IBM 1625, время цикла памяти которого было сокращено вдвое за счет использования более быстрых ядер по сравнению с Model I (внутренняя память или блок памяти 1623): до 10 мкс (т. Е., скорость цикла была увеличена до 100 кГц).
В то время как 5-значные адреса любой модели могли адресовать 100 000 десятичных цифр, на рынке никогда не продавалось ни одной машины с числом более 60 000 десятичных цифр.
К памяти одновременно обращались две десятичные цифры (пара четно-нечетная цифра для числовых данных или один буквенно-цифровой символ для текстовых данных). Каждая десятичная цифра состояла из 6 битов, состоящих из контрольного бита C нечетной четности, бита задержки F и четырех битов BCD для значения цифры в следующем формате:
C F 8 4 2 1
F лаг немного было несколько применений:
В дополнение к действительным значениям цифр BCD было три специальных цифровых значения (они НЕ могли использоваться в расчетах):
C F 8 4 2 1 1 0 1 0 – Record Mark (right most end of record, prints as a double dagger symbol, ‡) 1 1 0 0 – Numeric Blank (blank for punched card output formatting) 1 1 1 1 – Group Mark (right most end of a group of records for disk I/O)
Инструкции были фиксированной длины (12 десятичных цифр), состоящие из 2- х цифр « ОП - кодом », 5-значный «Р - адрес» ( как правило, целевой адрес), а также 5-значный «Q Адрес» (обычно исходный адрес или исходное непосредственное значение). Некоторые инструкции, такие как инструкция B (ветвление), использовали только P-адрес, а более поздние интеллектуальные ассемблеры включали команду «B7», которая генерировала 7-значную инструкцию ветвления (op-код, P-адрес и одну дополнительную цифру, потому что следующая инструкция должна была начинаться с четной цифры).
«Слова» данных с фиксированной запятой могут иметь любой размер от двух десятичных цифр до всей памяти, не используемой для других целей.
С плавающей точкой данных «слова» ( с использованием аппаратных средств с плавающей запятой вариант) может быть любого размера от 4 десятичных цифр до 102 десятичных цифр ( от 2 до 100 цифр для мантиссы и 2 цифры для показателя степени ).
Компилятор Fortran II предлагал ограниченный доступ к этой гибкости через «карту управления исходной программой», предшествующую исходному тексту fortran в фиксированном формате:
*ffkks
* В первом столбце, ff количество цифр для мантиссы чисел с плавающей запятой (от 02 до 28), kk количество цифр для чисел с фиксированной запятой (от 04 до 10), а s указывает размер памяти. компьютера, чтобы запустить код, если не текущий компьютер: 2, 4 или 6 для памяти 20 000, 40 000 или 60 000 цифр.
Машина не имела программиста доступных регистров: все операции были памятью памяти (включая индексные регистры в 1620 II ).
В таблице ниже перечислены символы алфавитно-цифрового режима (и коды операций).
BCD символ | Печатная машинка | Принтер | Лента | Карта | Основной | MNEMONIC и работа | Определение и примечания | ||||
---|---|---|---|---|---|---|---|---|---|---|---|
В | Из | Из | В | Из | В | Из | Даже | Странный | |||
Пустой | C | C | |||||||||
неверный | Ж ❚ | 1 | FADD Плавающее добавление | Дополнительная специальная функция. | |||||||
неверный | Ж ❚ | 2 | Плавающее вычитание FSUB | Дополнительная специальная функция. | |||||||
. | . | . | . | Х0 8 21 | Х0 8 21 | 12-3-8 12-1-2-8 | 12-3-8 | 21 год | FMUL Плавающее умножение | Дополнительная специальная функция. | |
) | ) | ) | ) | X0C84 | X0C84 | 12-4-8 | 12-4-8 | 4 | |||
неверный | Ж ❚ | 4 1 | FSL плавающий сдвиг влево | Дополнительная специальная функция. | |||||||
неверный | Ж ❚ | 42 | Плавающая передача TFL | Дополнительная специальная функция. | |||||||
неверный | Ж ❚ | 421 | BTFL Branch и Transmit Floating | Дополнительная специальная функция. | |||||||
неверный | Ж ❚ | 8 | FSR Плавающий сдвиг вправо | Дополнительная специальная функция. | |||||||
неверный | Ж ❚ | 81 год | Плавающий разделитель FDIV | Дополнительная специальная функция. | |||||||
+ | + | + | + | X0C | X0C | 12 | 12 | 1 | Немедленный адрес отделения и передачи BTAM | (Модель II) | |
неверный | Ж ❚ | 1 | 1 | AM Добавить немедленно | |||||||
неверный | Ж ❚ | 1 | 2 | SM Вычесть сразу | |||||||
$ | $ | $ | $ | Х C8 21 | Х C8 21 | 11-3-8 11-1-2-8 | 11-3-8 | 1 | 21 год | ММ Умножение Немедленно | |
* | * | * | * | X84 | X84 | 11-4-8 | 11-4-8 | 1 | 4 | CM Сравнить Немедленно | |
неверный | Ж ❚ | 1 | 4 1 | Немедленная передача цифры TDM | |||||||
неверный | Ж ❚ | 1 | 42 | Немедленное поле передачи TFM | |||||||
неверный | Ж ❚ | 1 | 421 | BTM Branch и немедленная передача | |||||||
неверный | Ж ❚ | 1 | 8 | Немедленная нагрузка на дивиденды LDM | Дополнительная специальная функция (модель I). Стандарт (Модель II). | ||||||
неверный | Ж ❚ | 1 | 81 год | DM Divide Immediate | Дополнительная специальная функция (модель I). Стандарт (Модель II). | ||||||
- | - | - | - | Икс | Икс | 11 | 11 | 2 | Филиал ВТА и адрес передачи | (Модель II) | |
/ | / | / | / | 0C1 | 0C1 | 0-1 | 0-1 | 2 | 1 | Добавить | |
неверный | Ж ❚ | 2 | 2 | S вычесть | |||||||
, | , | , | , | 0C8 21 | 0C8 21 | 0-3-8 0-1-2-8 | 0-3-8 | 2 | 21 год | M Умножить | |
( | ( | ( | ( | 0 84 | 0 84 | 0-4-8 | 0-4-8 | 2 | 4 | C Сравнить | |
неверный | Ж ❚ | 2 | 4 1 | Цифра передачи TD | |||||||
неверный | Ж ❚ | 2 | 42 | Поле передачи TF | |||||||
неверный | Ж ❚ | 2 | 421 | BT Branch и передача | |||||||
неверный | Ж ❚ | 2 | 8 | Дивиденды нагрузки LD | Дополнительная специальная функция (модель I). Стандарт (Модель II). | ||||||
неверный | Ж ❚ | 2 | 81 год | D Разделить | Дополнительная специальная функция (модель I). Стандарт (Модель II). | ||||||
неверный | Ж ❚ | 21 год | Запись передачи TRNM № RM | (Модель II) | |||||||
неверный | Ж ❚ | 21 год | 1 | Запись передачи TR | |||||||
неверный | Ж ❚ | 21 год | 2 | SF Установить флаг | |||||||
знак равно | знак равно | знак равно | знак равно | 8 21 | 8 21 | 3-8 1-2-8 | 3-8 | 21 год | 21 год | CF Очистить флаг | |
@ | @ | @ | @ | C84 | C84 | 4-8 | 4-8 | 21 год | 4 | K Control (устройство ввода / вывода) | |
неверный | Ж ❚ | 21 год | 4 1 | DN Дамп числовой | |||||||
неверный | Ж ❚ | 21 год | 42 | RN Читать числовой | |||||||
неверный | Ж ❚ | 21 год | 421 | РА читать алфавитно | |||||||
неверный | Ж ❚ | 21 год | 8 | WN Запись цифр | |||||||
неверный | Ж ❚ | 21 год | 81 год | WA Запись в алфавитном порядке | |||||||
А | А | А | А | X01 | X01 | 12-1 | 12-1 | 4 | 1 | NOP Нет операции | |
B | B | B | B | X02 | X02 | 12-2 | 12-2 | 4 | 2 | BB ответвление назад | |
C | C | C | C | X0C21 | X0C21 | 12-3 12-1-2 | 12-3 | 4 | 21 год | BD Branch On Digit | |
D | D | D | D | X04 | X04 | 12-4 | 12-4 | 4 | 4 | BNF Branch No Flag | |
E | E | E | E | X0C 4 1 | X0C 4 1 | 12-5 12-1-4 | 12-5 | 4 | 4 1 | BNR Branch No Record Mark | |
F | F | F | F | X0C 42 | X0C 42 | 12-6 12-2-4 | 12-6 | 4 | 42 | Индикатор ветвления BI | |
UMK Unmask MK Маска | Функция прерывания 1710. Модификаторы в поле Q. | ||||||||||
грамм | грамм | грамм | грамм | X0421 | X0421 | 12-7 12-1-2-4 | 12-7 | 4 | 421 | BNI Branch Нет индикатора | |
BO Branch Out BOLD Разветвление и загрузка | Функция прерывания 1710. Модификаторы в поле Q. | ||||||||||
ЧАС | ЧАС | ЧАС | ЧАС | X0 8 | X0 8 | 12-8 | 12-8 | 4 | 8 | H Остановка | |
я | я | я | я | X0C81 | X0C81 | 12-9 12-1-8 | 12-9 | 4 | 81 год | B филиал | |
-0 | N / A | - | - | N / A | Икс | 11-0 | 11-0 | 4 1 | |||
Дж -1 | J | J | J | X C1 | X C1 | 11-1 | 11-1 | 4 1 | 1 | ||
К -2 | K | K | K | X C2 | X C2 | 11-2 | 11-2 | 4 1 | 2 | ||
L -3 | L | L | L | X21 | X21 | 11-3 11-1-2 | 11-3 | 4 1 | 21 год | ||
М- 4 | M | M | M | X C 4 | X C 4 | 11-4 | 11-4 | 4 1 | 4 | ||
П -5 | N | N | N | X4 1 | X4 1 | 11-5 11-1-4 | 11-5 | 4 1 | 4 1 | BNG Branch No Group Mark | Дополнительная специальная функция. |
O -6 | О | О | О | X42 | X42 | 11-6 11-2-4 | 11-6 | 4 1 | 42 | ||
П- 7 | п | п | п | Х С 421 | Х С 421 | 11-7 11-1-2-4 | 11-7 | 4 1 | 421 | ||
Q- 8 | Q | Q | Q | X C8 | X C8 | 11-8 | 11-8 | 4 1 | 8 | WAIT Ожидание прерывания | Функция прерывания 1710. |
R -9 | р | р | р | X81 | X81 | 11-9 11-1-8 | 11-9 | 4 1 | 81 год | ||
неверный | Ж ❚ | 42 | BS Branch and Select | (Модель II) | |||||||
неверный | Ж ❚ | 42 | 1 | BX Branch и Modify Index Register | Дополнительная специальная функция (модель II). | ||||||
S | S | S | S | 0C2 | 0C2 | 0-2 | 0-2 | 42 | 2 | BXM Branch and Modify Index Register Немедленно | Дополнительная специальная функция (модель II). |
Т | Т | Т | Т | 021 | 021 | 0-3 0-1-2 | 0-3 | 42 | 21 год | BCX ветвление условно и изменение регистра индекса | Дополнительная специальная функция (модель II). |
U | U | U | U | 0C 4 | 0C 4 | 0-4 | 0-4 | 42 | 4 | BCXM ветвление по условию и немедленное изменение регистра индекса | Дополнительная специальная функция (модель II). |
V | V | V | V | 04 1 | 04 1 | 0-5 0-1-4 | 0-5 | 42 | 4 1 | Регистр индекса ветви и нагрузки BLX | Дополнительная специальная функция (модель II). |
W | W | W | W | 042 | 042 | 0-6 0-2-4 | 0-6 | 42 | 42 | BLXM Branch and Load Index Register Немедленно | Дополнительная специальная функция (модель II). |
Икс | Икс | Икс | Икс | 0C 421 | 0C 421 | 0-7 0-1-2-4 | 0-7 | 42 | 421 | Регистр индекса филиалов и магазинов BSX | Дополнительная специальная функция (модель II). |
Y | Y | Y | Y | 0C8 | 0C8 | 0-8 | 0-8 | 42 | 8 | ||
Z | Z | Z | Z | 0 81 | 0 81 | 0-9 0-1-8 | 0-9 | 42 | 81 год | ||
0 | 0 | 0 | 0 | 0 | 0 | 0 12-0 | 0 | 421 | MA Move Address | Дополнительная специальная функция (модель II). | |
1 | 1 | 1 | 1 | 1 | 1 | 1 | 1 | 421 | 1 | Флаг движения MF | Дополнительная специальная функция (модель I). Стандарт (Модель II). |
2 | 2 | 2 | 2 | 2 | 2 | 2 | 2 | 421 | 2 | Цифровая полоса передачи TNS | Дополнительная специальная функция (модель I). Стандарт (Модель II). |
3 | 3 | 3 | 3 | C21 | C21 | 3 | 3 | 421 | 21 год | Числовое заполнение передачи TNF | Дополнительная специальная функция (модель I). Стандарт (Модель II). |
4 | 4 | 4 | 4 | 4 | 4 | 4 | 4 | 421 | 4 | ||
5 | 5 | 5 | 5 | С 4 1 | С 4 1 | 5 | 5 | 421 | 4 1 | ||
6 | 6 | 6 | 6 | С 42 | С 42 | 6 | 6 | 421 | 42 | ||
7 | 7 | 7 | 7 | 421 | 421 | 7 | 7 | 421 | 421 | ||
8 | 8 | 8 | 8 | 8 | 8 | 8 | 8 | 421 | 8 | ||
9 | 9 | 9 | 9 | C81 | C81 | 9 | 9 | 421 | 81 год | ||
неверный | Ж ❚ | 8 | 4 | SA Выберите адрес SACO Выберите адрес, контакт Работайте SAOS Выберите аналоговый выходной сигнал | 1710 особенность. Модификаторы в поле Q | ||||||
неверный | Ж ❚ | 8 | 42 | SLTA Выберите TAS SLAR Выберите регистр ADC SLTC Выберите часы реального времени SLIC Выберите входной канал SLCB Выберите контактный блок SLME Выберите ручной ввод | 1710 особенность. Модификаторы в поле Q | ||||||
неверный | Ж ❚ | 8 | П 42 | RNIC Чтение цифрового входного канала | 1710 особенность. Модификаторы в поле Q | ||||||
неверный | Ж ❚ | 8 | F 421 | RAIC Чтение буквенного входного канала | 1710 особенность. Модификаторы в поле Q | ||||||
неверный | Ж ❚ | 8 | 8 | WNOC Запись цифрового выходного канала | 1710 особенность. Модификаторы в поле Q | ||||||
неверный | Ж ❚ | 8 | 81 год | WAOC Запись буквенного канала вывода | 1710 особенность. Модификаторы в поле Q | ||||||
неверный | Ж ❚ | 81 год | BBT Branch on Bit | Дополнительная специальная функция (модель II). | |||||||
неверный | Ж ❚ | 81 год | 1 | Филиал БМК на Маске | Дополнительная специальная функция (модель II). | ||||||
неверный | Ж ❚ | 81 год | 2 | ORF OR в поле | Дополнительная специальная функция (модель II). | ||||||
неверный | Ж ❚ | 81 год | 21 год | ANDF И в поле | Дополнительная специальная функция (модель II). | ||||||
неверный | Ж ❚ | 81 год | 4 | Восьмеричное поле дополнения CPLF | Дополнительная специальная функция (модель II). | ||||||
неверный | Ж ❚ | 81 год | 4 1 | EORF Exclusive OR на поле | Дополнительная специальная функция (модель II). | ||||||
неверный | Ж ❚ | 81 год | 42 | Восьмеричное преобразование OTD в десятичное | Дополнительная специальная функция (модель II). | ||||||
неверный | Ж ❚ | 81 год | 421 | Преобразование десятичного числа в восьмеричное из DTO | Дополнительная специальная функция (модель II). | ||||||
RM | ‡ | (Стоп) | (Стоп) | 0 8 2 | E (Стоп) | 0-2-8 | 0-2-8 | 8 2 | Отметка записи | ||
GM | (Стоп) | (Стоп) | 0 8421 | E (Стоп) | 0-7-8 | 1-2-4-8 | 8421 | Групповой знак |
В таблице ниже перечислены символы числового режима.
Характер | Печатная машинка | Принтер | Лента | Карта | Основной | Определение и примечания | ||||
---|---|---|---|---|---|---|---|---|---|---|
В | Из | Из | Свалка | В | Из | В | Из | |||
Пустой | 0 | 0 | 0 | C | 0 | 0 | C | |||
0 | 0 | 0 | 0 | 0 | 0 | 0 | 0 12-0 12 | 0 | C | |
1 | 1 | 1 | 1 | 1 | 1 | 1 | 1 12-1 | 1 | 1 | |
2 | 2 | 2 | 2 | 2 | 2 | 2 | 2 12-1 | 2 | 2 | |
3 | 3 | 3 | 3 | 3 | C21 | C21 | 3 12-3 1-2 12-1-2 | 3 | C21 | |
4 | 4 | 4 | 4 | 4 | 4 | 4 | 4 12-4 | 4 | 4 | |
5 | 5 | 5 | 5 | 5 | С 4 1 | С 4 1 | 5 12-5 1-4 12-1-4 | 5 | C4 1 | |
6 | 6 | 6 | 6 | 6 | С 42 | С 42 | 6 12-6 2-4 12-2-4 | 6 | C42 | |
7 | 7 | 7 | 7 | 7 | 421 | 421 | 7 12-7 1-2-4 12-1-2-4 | 7 | 421 | |
8 | 8 | 8 | 8 | 8 | 8 | 8 | 8 12-8 | 8 | 8 | |
9 | 9 | 9 | 9 | 9 | C81 | C81 | 9 12-9 1-8 12-1-8 | 9 | С 81 | |
-0 | 0 | 0 | - | - | X X0C | Икс | 11-0 | 11-0 | F | |
-1 | 1 | 1 | J | J | X C1 | X C1 | 11-1 | 11-1 | CF1 | |
-2 | 2 | 2 | K | K | X C2 | X C2 | 11-2 | 11-2 | CF2 | |
-3 | 3 | 3 | L | L | X21 | X21 | 11-3 11-1-2 | 11-3 | F21 | |
-4 | 4 | 4 | M | M | X C 4 | X C 4 | 11-4 | 11-4 | CF 4 | |
-5 | 5 | 5 | N | N | X4 1 | X4 1 | 11-5 11-1-4 | 11-5 | П 4 1 | |
-6 | 6 | 6 | О | О | X42 | X42 | 11-6 11-2-4 | 11-6 | П 42 | |
-7 | 7 | 7 | п | п | Х С 421 | Х С 421 | 11-7 11-1-2-4 | 11-7 | CF 421 | |
-8 | 8 | 8 | Q | Q | X C8 | X C8 | 11-8 | 11-8 | CF8 | |
-9 | 9 | 9 | р | р | X81 | X81 | 11-9 11-1-8 | 11-9 | F81 | |
RM | ‡ | (Стоп, WN) ‡ (DN) | (Стоп) | ‡ | 0 8 2 | E (стоп, WN) 0 8 2 (DN) | 0-2-8 | 0-2-8 | С 8 2 | Отметка записи На ленте WN вместо этого пробивает EOL! |
флаг RM | ‡ | (Стоп, WN) ‡ (DN) | (Стоп) | W | X8 2 | E (стоп, WN) X8 2 (DN) | 11-2-8 12-2-8 | 11-2-8 | F8 2 | Отмеченная метка записи На ленте WN вместо этого пробивает EOL! |
EOL | ‡ | (Стоп, WN) ‡ (DN) | (Стоп) | ‡ | E | E (WN) 0 8 2 (DN) | 0-2-8 | 0-2-8 | С 8 2 | Только лента в конце строки. Примечание: в памяти есть метка записи! |
GM | (Стоп, WN) (DN) | (Стоп) | грамм | 0 8421 | 0 8421 | 0-7-8 | 0-7-8 | C 8421 | Групповой знак | |
флаг GM | (Стоп, WN) (DN) | (Стоп) | Икс | X8421 | X8421 | 12-7-8 | 12-7-8 | F8421 | Отметка группы с пометкой | |
NB | @ | @ | @ | C84 | C84 | 4-8 | С 84 | Числовой пробел | ||
флаг NB | @ | @ | * | X84 | X84 | 11-4-8 | F84 | Отмечено пустое число |
Модели я использовал кириллицу символ Ж (выраженный ZH) на машинке как общее назначение недопустимого символ с правильной четность (недействительная четность быть обозначена Overstrike «-»). В некоторых инсталляциях 1620 года он назывался SMERSH, как используется в романах о Джеймсе Бонде, ставших популярными в конце 1960-х годов. Model II используется новый символ ❚ ( так называемый «подушка») в качестве общего назначения недопустимого символа с правильной четности.
Хотя архитектура IBM 1620 была очень популярна в научном и инженерном сообществе, компьютерный ученый Эдсгер Дейкстра указал на несколько недостатков в ее конструкции в EWD37, «Обзоре системы обработки данных IBM 1620». Среди них то, что машинная инструкция Branch and Transmit вместе с Branch Back позволяют в целом использовать один уровень вложенных подпрограмм, вынуждая программиста любого кода с более чем одним уровнем решать, где использование этой «функции» будет наиболее эффективным. эффективный. Он также показал, как устройство поддержки чтения с бумажной ленты не может правильно читать ленты, содержащие метки записи, поскольку метки записи используются для завершения чтения символов в хранилище. Одним из следствий этого является то, что 1620 не может напрямую продублировать ленту с метками записи: когда встречается метка записи, команда перфорации вместо этого пробивает символ EOL и завершается. Однако это не было серьезной проблемой:
Большинство установок 1620 использовали более удобный ввод / вывод перфокарт, чем бумажную ленту.
Преемник 1620, IBM 1130, был основан на совершенно другой 16-битной двоичной архитектуре. (Линия 1130 сохранила одно периферийное устройство 1620, барабанный плоттер IBM 1627 ).
IBM поставила следующее программное обеспечение для 1620:
Мониторы предоставили дисковые версии 1620 SPS IId, FORTRAN IId, а также DUP (Disk Utility Program). Обе системы Monitor требовали 20 000 или более разрядов памяти и одного или нескольких дисководов 1311.
Коллекция руководств по IBM 1620 в формате PDF существует на сайте bitavers.
Поскольку Модель I использовала таблицы поиска в памяти для сложения / вычитания, арифметика с ограниченными базами (от 5 до 9) беззнаковых чисел могла быть выполнена путем изменения содержимого этих таблиц, но с учетом того, что аппаратное обеспечение включало десятичный дополнитель для вычитания (и добавления чисел с противоположным знаком).
Для выполнения полностью подписанного сложения и вычитания в базах 2–4 требовалось детальное понимание аппаратного обеспечения для создания «свернутой» таблицы сложения, которая имитировала бы комплементатор и переносила логику.
Кроме того, таблица сложения должна быть перезагружена для нормальной работы с базой 10 каждый раз, когда в программе требовались вычисления адреса, а затем снова перезагружаться для альтернативной базы. Это сделало "уловку" несколько менее полезной для любого практического применения.
Поскольку в Model II сложение и вычитание были полностью реализованы аппаратно, изменение таблицы в памяти не могло использоваться как «трюк» для изменения арифметических основ. Однако была доступна дополнительная специальная функция в оборудовании для восьмеричного ввода / вывода, логических операций и преобразования базового числа в / из десятичного числа.
Хотя базы, отличные от 8 и 10, не поддерживались, это делало Модель II очень практичной для приложений, которым необходимо было управлять данными, отформатированными в восьмеричном формате на других компьютерах (например, IBM 7090).
Первой была IBM 1620 Model I (обычно называемая «1620» с 1959 до 1962 года, когда была представлена модель II). Его производили как можно дешевле, чтобы цена оставалась невысокой.
IBM 1620 Model II (обычно называемый просто модель II) была значительно улучшена реализация, по сравнению с оригиналом Model I. Модель II была представлена в 1962 году.
В то время как нижняя консоль для систем IBM 1620 Model 1 и Model 2 имела одинаковые лампы и переключатели, верхняя консоль пары частично отличалась.
Модель I (Верхняя консоль) | # Лампы | Модель II (Верхняя консоль) | # Лампы | |
---|---|---|---|---|
Инструкция и цикл выполнения | 60 | Контрольные ворота | 60 | |
Контрольные ворота | 35 год | Ввод, вывод | 35 год | |
Ввод, вывод | 15 | Цикл Inst amp; Exec | 15 | - |
Баланс Верхней консоли был одинаковым на обеих моделях:
Модель I консоль Машинка была модифицированная модель B1, сопрягаемые набором реле, и он набрал всего в 10 символов в секунду.
Был набор инструкций, которые писали на машинку или читали с нее. Общие инструкции RN (чтение числовых) и WN (запись числовых) имели мнемонику на языке ассемблера, которая поставляла код «устройства» во втором поле адреса и управляющий код в младшем разряде второго поля адреса.
Для упрощения ввода и вывода было две инструкции:
В Model II использовалась модифицированная пишущая машинка Selectric, которая печатала со скоростью 15,5 cps - улучшение на 55%.
Доступные периферийные устройства были:
Стандартным механизмом «вывода» для программы была перфокарта, что было быстрее, чем использование пишущей машинки. Эти перфокарты затем пропускались через механический калькулятор IBM 407, который можно было запрограммировать на печать двух карт, что позволило использовать дополнительные столбцы печати, доступные на 407. Весь вывод был синхронным, и процессор останавливался, пока устройство ввода-вывода производил вывод, так что вывод на пишущей машинке мог полностью доминировать над временем работы программы.
Более быстрый вариант вывода, принтер IBM 1443, был представлен 6 мая 1963 года, и его производительность 150–600 строк в минуту была доступна для использования с любой из моделей 1620.
Он мог напечатать 120 или 144 столбца. Ширина символа была фиксированной, поэтому изменился размер бумаги; принтер напечатал 10 знаков с точностью до дюйма, поэтому принтер мог напечатать максимум 12 дюймов или 14,4 дюйма текста. Кроме того, в принтере был буфер, поэтому задержка ввода-вывода для процессора была уменьшена. Однако инструкция печати будет заблокирована, если строка не будет завершена.
«Операционная система» для компьютера представляет собой человека-оператора, который будет использовать элементы управления на компьютерной консоли, состоящей из передней панели и пишущей машинки, для загрузки программ с доступных носителей массовой информации, таких как колоды перфокарт или рулоны бумаги. ленты, которые хранились в шкафах поблизости. Позже дисковое запоминающее устройство модели 1311, подключенное к компьютеру, позволило сократить количество операций по извлечению и переносу карточных колод или рулонов бумажной ленты, а также можно было загрузить простую операционную систему «Монитор», чтобы помочь в выборе того, что загружать с диска.
Стандартной предварительной подготовкой было очистить память компьютера от остатков любого предыдущего пользователя - поскольку это были магнитные сердечники, память сохраняла свое последнее состояние, даже если питание было отключено. Это было достигнуто за счет использования средств консоли для загрузки простой компьютерной программы путем ввода ее машинного кода на пишущей машинке консоли, ее запуска и остановки. Это было несложно, так как требовалась только одна инструкция, например, 160001000000, загруженная с нулевого и следующего адреса. Это означало немедленную передачу поля (16: двузначные коды операций) на адрес 00010, непосредственное постоянное поле, имеющее значение 00000 (пятизначные поля операндов, второе - от адреса 11 до 7), уменьшение адресов источника и назначения. до тех пор, пока цифра с «флажком» не была скопирована. Это был обычный машинный код, способный копировать константу длиной до пяти цифр. Строка цифр была адресована на ее конце младшего разряда и расширена через младшие адреса до тех пор, пока цифра с флагом не пометила ее конец. Но для этой инструкции флаг никогда не был бы найден, потому что исходные цифры незадолго до этого были перезаписаны цифрами без флага. Таким образом, операция будет перемещаться по памяти (даже перезаписывая себя), заполняя ее всеми нулями, пока оператор не устанет наблюдать за миганием световых индикаторов и не нажмет кнопку Instant Stop - Single Cycle Execute. Для очистки каждого 20000-разрядного модуля памяти требовалось менее одной секунды. На 1620 II эта инструкция НЕ будет работать (из-за некоторых оптимизаций в реализации). Вместо этого на консоли была кнопка Modify, которая при нажатии вместе с кнопкой Check Reset, когда компьютер находился в ручном режиме, переводила компьютер в режим, который очищал всю память за десятые доли одной секунды независимо от того, как у вас было много памяти; когда вы нажали Старт. Он также останавливался автоматически при очистке памяти, вместо того, чтобы требовать от оператора остановки.
Помимо ввода машинного кода на консоли, программа могла быть загружена через устройство чтения бумажной ленты, устройство чтения карт или любой дисковый накопитель. Для загрузки с магнитной ленты или диска требовалось сначала ввести процедуру " начальной загрузки " на консольной пишущей машинке.
Кардридер упростил задачу, потому что у него была специальная кнопка Load, означающая, что первая карта должна быть считана в память компьютера (начиная с адреса 00000) и выполнена (в отличие от простого запуска кардридера, который затем ожидает команд от компьютер для чтения карт) - это процесс "начальной загрузки", который получает в компьютер ровно столько кода, чтобы прочитать остальную часть кода (с устройства чтения карт, диска или...), составляющего загрузчик, который будет прочитать и выполнить желаемую программу.
Программы готовились заранее, офлайн, на бумажной ленте или перфокартах. Но обычно программистам разрешалось запускать программы лично, на практике, вместо того, чтобы передавать их операторам, как это было в то время с мэйнфреймами. А пишущая машинка с пультом позволяла вводить данные и получать выходные данные в интерактивном режиме, вместо того, чтобы просто получать обычные печатные данные из слепого пакетного запуска на предварительно упакованном наборе данных. Кроме того, на консоли было четыре программных переключателя, состояние которых могла проверять запущенная программа, и, следовательно, ее поведение определял ее пользователь. Оператор компьютера также мог остановить запущенную программу (или она может прийти к намеренно запрограммированной остановке), а затем исследовать или изменить содержимое памяти: будучи основанным на десятичной системе, это было довольно просто; даже числа с плавающей запятой можно было прочитать с первого взгляда. После этого выполнение могло быть возобновлено с любого желаемого момента. Помимо отладки, научное программирование обычно является исследовательским, в отличие от коммерческой обработки данных, когда одна и та же работа повторяется по регулярному графику.
Самыми важными элементами консоли 1620 были пара кнопок с надписью Insert amp; Release и пишущая машинка консоли.
Пишущая машинка используется для ввода / вывода оператора, как в качестве основного пульта управления компьютером, так и для программного управления вводом / выводом. В более поздних моделях пишущей машинки была специальная клавиша с маркировкой RS, которая объединяла функции кнопок пульта Release amp; Start (это будет считаться эквивалентным клавише Enter на современной клавиатуре). Примечание: некоторые клавиши на пишущей машинке не генерировали вводимые символы, в том числе Tab и Return (буквенно-цифровые и цифровые наборы символов BCD 1620-х годов не содержали кодов символов для этих клавиш).
Следующими по важности элементами на консоли были кнопки Start, Stop-SIE и Instant Stop-SCE.
Для отладки программы были кнопки Save amp; Display MAR.
Когда инструкция Branch Back выполнялась в режиме сохранения, она копировала сохраненное значение обратно в программный счетчик (вместо того, чтобы копировать регистр обратного адреса, как это обычно делалось), и деактивировала режим сохранения.
Это использовалось во время отладки, чтобы запомнить, где была остановлена программа, чтобы можно было возобновить ее после завершения инструкций отладки, которые оператор набрал на пишущей машинке. Примечание: регистр MARS, используемый для сохранения программного счетчика, также использовался инструкцией умножения, поэтому эта инструкция и режим сохранения были несовместимы! Однако не было необходимости использовать умножение при отладке кода, поэтому это не считалось проблемой.
Процедура «точки останова» | Примечания |
---|---|
Нажмите Stop-SIE | Остановите компьютер в конце текущей инструкции. |
Нажмите Сохранить | Сохраните адрес для возобновления выполнения. |
Нажмите " Вставить" | Разблокирует клавиатуру пишущей машинки и переходит в числовой режим. |
Тип 35xxxxx0010036xxxxx0010042 | xxxxx - это адрес, на котором вы планируете установить точку останова. |
Пресс- релиз | Блокирует клавиатуру пишущей машинки. |
Нажмите Старт | Начните выполнение. Дайте распечатать 12-значную инструкцию. |
Пресс- релиз | Останавливает Dump Numeric. |
Нажмите Старт | Начните выполнение. |
Тип 48 | Замените код операции инструкции на "break" на код операции Halt. |
Пресс- релиз | Блокирует клавиатуру пишущей машинки. |
Нажмите Старт | Возобновить выполнение. Подождите, пока компьютер не остановится на «точке останова». |
Нажмите " Вставить" | Разблокирует клавиатуру пишущей машинки и переходит в числовой режим. |
Тип 36xxxxx0010049xxxxx | xxxxx - это адрес, на который вы ранее устанавливали точку останова, теперь вы собираетесь его очистить. |
Пресс- релиз | Блокирует клавиатуру пишущей машинки. |
Нажмите Старт | Начните выполнение. |
Тип oo | oo - это 2-значный код операции, ранее распечатанный исходной 12-значной инструкцией. |
Пресс- релиз | Блокирует клавиатуру пишущей машинки. |
Нажмите Stop-SIE | Теперь машина готова возобновить выполнение с местоположения (теперь очищенной) «точки останова». Вы можете выполнить любые необходимые действия по отладке сейчас, прежде чем продолжить. |
Всю основную память можно очистить с консоли, введя и выполнив команду переноса с адреса на адрес +1, это перезапишет любую словесную метку, которая обычно остановит инструкцию передачи, и завершится в конце памяти. Через мгновение нажатие Stop остановит инструкцию передачи и память будет очищена.
Устройство чтения бумажных лент IBM 1621 могло читать максимум 150 символов в секунду; IBM 1624 Tape бумаги Перфорация может выводить максимум 15 символов / сек.
Оба блока:
1621 Tape чтения и 1624 Tape Панч включены элементы управления:
Процедура начальной загрузки | Примечания |
---|---|
Нажмите " Вставить" | Разблокирует клавиатуру пишущей машинки и переходит в числовой режим. |
Тип 36xxxxx0030049yyyyy | xxxxx - это адрес для загрузки ленты. yyyyy - это адрес для начала выполнения. |
Пресс- релиз | Блокирует клавиатуру пишущей машинки. |
Нажмите Старт | Начните выполнение. |
IBM 1622 Кардридер / удар мог:
Органы управления 1622 были разделены на три группы: 3 кулисных переключателя управления перфорацией, 6 кнопок и 2 кулисных переключателя управления считывателем.
Перфорированные кулисные переключатели:
Кнопки:
Считыватель кулисных переключателей:
Процедура начальной загрузки | Примечания |
---|---|
Нажмите Загрузить |
В 1311 дисковых накопителей управления.
Процедура начальной загрузки | Примечания |
---|---|
Нажмите " Вставить" | Разблокирует клавиатуру пишущей машинки и переходит в числовой режим. |
Тип 3400032007013600032007024902402 x y1963611300102 | x - указывает источник контрольных карт монитора: 1 = пишущая машинка, 3 = бумажная лента, 5 = карты y - указывает дисковод, на котором находится монитор: 1, 3, 5, 7 02402 - адрес точки входа в программу монитора.. |
Пресс- релиз | Блокирует клавиатуру пишущей машинки. |
Нажмите Старт | Начните выполнение. |
Процедура перезапуска | Примечания |
---|---|
Нажмите " Вставить" | Разблокирует клавиатуру пишущей машинки и переходит в числовой режим. |
Тип 490225 FLG 6 | 02256̅ - это адрес места, содержащего адрес точки перезапуска программы Monitor. Примечание: эта процедура предполагает, что Монитор уже загружен в память. |
Пресс- релиз | Блокирует клавиатуру пишущей машинки. |
Нажмите Старт | Начните выполнение. |
Компилятор FORTRAN II и ассемблер SPS были несколько громоздкими в использовании по современным стандартам, однако при повторении процедура вскоре стала автоматической, и вы больше не задумывались о деталях.
Процедура компиляции FORTRAN II | Примечания |
---|---|
Установите переключатели программ следующим образом:
| Варианты прохождения I |
Установите переключатель "Проверка переполнения" в положение "Программа", а для всех остальных - в положение "Остановить". | |
Нажмите Reset | |
Загрузите чистые карты (лицевой стороной вниз 12 краем вперед) в перфорированный лоток, затем нажмите кнопку Punch Start. | |
Загрузите проход I компилятора (лицевой стороной вниз 9 краем вперед) в загрузочную воронку, затем нажмите « Загрузить». | Подождите, пока загрузится Pass I, и напечатайте на пишущей машинке "ВВЕДИТЕ ИСТОЧНИК ПРОГРАММЫ, НАЖМИТЕ СТАРТ" |
Удалите проход I компилятора из накопителя чтения | |
Загрузите исходную колоду программ (лицевой стороной вниз 9 краем вперед) в лоток для чтения, затем нажмите кнопку Старт. | Дождитесь завершения прохода I и напечатайте на пишущей машинке «ВКЛЮЧИТЕ SW 1 ДЛЯ ТАБЛИЦЫ СИМВОЛОВ, НАЖМИТЕ СТАРТ» |
Включите переключатель программ 1 OFF, затем нажмите кнопку Пуск | Если таблица символов список желателен для отладки, включите переключатель программ 1 ON вместо. Список символов таблицы будет напечатан на пишущей машинке. Подождите, пока Pass I напечатает на пишущей машинке "КОНЕЦ ПРОХОДА 1" |
Установите переключатели программ следующим образом:
| Варианты Pass II |
Установите переключатель "Проверка переполнения" в положение "Программа", а для всех остальных - в положение "Остановить". | |
Нажмите Reset | |
Загрузите чистые карты (лицевой стороной вниз 12 краем вперед) в перфорированный лоток, затем нажмите кнопку Punch Start. | |
Загрузите проход II компилятора (лицевой стороной вниз 9 краем вперед) в загрузочную воронку, затем нажмите « Загрузить». | Подождите, пока загрузится Pass II |
Удалите этап II компилятора из накопителя чтения | |
Извлеките промежуточный выход прохода I из укладчика перфорации, затем загрузите его (лицевой стороной вниз 9 краем вперед) в загрузочный лоток и нажмите Reader Start, затем Start | Дождитесь завершения этапа II и напечатайте на пишущей машинке «ВКЛЮЧИТЕ 1, ЧТОБЫ ПРОБИТЬ ПОДПРОГРАММЫ, НАЖМИТЕ СТАРТ» |
Удалите промежуточный выход из укладчика Reader. | |
Включите переключатель программ 1 ON, загрузите колоду подпрограмм (лицевую сторону вниз 9 края) в бункер Read, затем нажмите Считыватель Start затем Start | Подождите, пока Pass II напечатает на пишущей машинке "END OF PASS II" |
Удалите колоду подпрограмм из укладчика Reader, а завершенную колоду объектов из укладчика перфорации. |
GOTRAN был намного проще в использовании, так как он напрямую создавал исполняемый файл в памяти. Однако это не была полная реализация FORTRAN.
Чтобы улучшить это, были разработаны различные сторонние компиляторы FORTRAN. Один из них был разработан Бобом Ричардсоном, программистом из Университета Райса, компилятор FLAG (FORTRAN Load-and-Go). После того, как колода FLAG была загружена, все, что требовалось, это загрузить исходную деку, чтобы перейти непосредственно к выходной деке; ФЛАГ остался в памяти, поэтому он был немедленно готов принять следующую исходную колоду. Это было особенно удобно при выполнении множества мелких работ. Например, в Оклендском университете процессор пакетных заданий для студенческих заданий (как правило, много небольших программ, не требующих большого количества памяти) справлялся с классом намного быстрее, чем более поздний IBM 1130 со своей дисковой системой. Компилятор оставался в памяти, а в оставшейся памяти программа учащегося имела шанс успешно или неудачно завершиться, хотя серьезный сбой мог нарушить работу резидентного компилятора.
Позже были введены дисковые запоминающие устройства, устраняющие необходимость в рабочем хранилище на карточных колодах. Различные колоды карт, составляющие компилятор и загрузчик, больше не нужно извлекать из их шкафов, но их можно хранить на диске и загружать под управлением простой дисковой операционной системы: большая активность становится менее заметной, но все еще продолжается..
Поскольку перфорированная сторона кардридера-перфоратора не печатала края символов на верхней части карточек, приходилось переносить любые выходные колоды на отдельную машину, обычно на IBM 557 Alphabetic Interpreter, который считывал каждую карточку и напечатал его содержимое вверху. Списки обычно создавались путем штамповки колоды листингов и использования бухгалтерской машины IBM 407 для печати этой колоды.
Большая часть логических схем 1620 представляла собой тип резисторно-транзисторной логики (RTL), использующий «дрейфующие» транзисторы (тип транзистора, изобретенный Гербертом Кремером в 1953 году) для их скорости, которую IBM назвала логикой резистора с насыщенным дрейфом. (SDTRL). Другие используемые типы схем IBM назывались: Alloy (некоторая логика, но в основном различные нелогические функции, названные по типу используемых транзисторов), CTRL (другой тип RTL, но более медленный, чем SDTRL), CTDL (тип диодно-транзисторная логика (DTL)) и DL (другой тип RTL, названный в честь типа используемого транзистора, «дрейфовых» транзисторов). Типичные логические уровни всех этих цепей ( S Уровень) были высоки: от 0 В до -0,5 В, низкий уровень: -6 В до -12 В. линии передачи логических уровней SDTRL цепей ( C Уровень) были высоки: 1 V, низкий: -1 В. В релейных цепях используется один из двух логических уровней ( T Level): высокий: от 51 В до 46 В, низкий: от 16 В до 0 В или ( Уровень W), высокий: 24 В, низкий: 0 В.
Эти схемы были сконструированы из отдельных дискретных компонентов, установленных на односторонних бумажно-эпоксидных печатных платах размером 2,5 на 4,5 дюйма (64 на 114 миллиметров) с 16-контактным позолоченным краевым разъемом, который IBM называла картами SMS ( Стандартная модульная система). ). Объем логики на одной карте был аналогичен количеству логики в одном SSI серии 7400 или более простом пакете MSI (например, от 3 до 5 логических вентилей или пара триггеров).
Эти платы вставлялись в розетки, установленные в дверных стойках, которые IBM называла воротами. В базовой комплектации машина имела следующие «ворота»:
В 1620 использовалось два разных типа оперативной памяти :
Логика декодирования адреса в основной памяти также использовала две плоскости по 100 сердечников импульсного трансформатора на модуль для генерации импульсов половинного тока линии XY.
Было две модели 1620, каждая из которых имела совершенно разные аппаратные реализации:
В 1958 году IBM собрала команду в лаборатории разработки в Покипси, штат Нью-Йорк, для изучения «малого научного рынка». Первоначально в состав команды входили Уэйн Уингер (менеджер), Роберт К. Джексон и Уильям Х. Родс.
Конкурирующими компьютерами на этом рынке были Librascope LGP-30 и Bendix G-15 ; оба были машинами с драм-памятью. Самым маленьким компьютером IBM в то время был популярный IBM 650, десятичный аппарат с фиксированной длиной слова, который также использовал барабанную память. Все трое использовали электронные лампы. Был сделан вывод, что IBM не может предложить ничего нового в этой области. Для эффективной конкуренции потребовалось бы использование технологий, разработанных IBM для более крупных компьютеров, но при этом машина должна была быть произведена с наименьшими возможными затратами.
Для достижения этой цели команда установила следующие требования:
Команда расширилась за счет добавления Энн Декман, Келли Б. Дэй, Уильяма Флорака и Джеймса Брензы. Они завершили прототип CADET (кодовое название) весной 1959 года.
Тем временем предприятие в Сан-Хосе, Калифорния, работало над собственным предложением. IBM смогла построить только одну из двух, и предложение Покипси выиграло, потому что «версия для Сан-Хосе является лучшей и не расширяемой, в то время как ваше предложение имеет все виды возможностей расширения - никогда не предлагайте машину, которая не может быть расширена».
IBM 1620 Model I Level A (прототип), как он выглядел в анонсе машины IBM. |
Руководство не было полностью убеждено в том, что основная память может работать на небольших машинах, поэтому Джерри Оттэуэй был предоставлен команде для разработки барабанной памяти в качестве резервной копии. Во время приемочного тестирования, проведенного лабораторией тестирования продуктов, были обнаружены повторяющиеся сбои основной памяти, и казалось вероятным, что прогнозы руководства сбудутся. Однако в последнюю минуту было обнаружено, что вентилятор для маффинов, используемый для продувки горячим воздухом через штабель сердечников, неисправен, в результате чего сердечник улавливает шумовые импульсы и не может правильно считывать данные. После того, как проблема с вентилятором была устранена, больше не было проблем с основной памятью, и работа по проектированию барабанной памяти была прекращена за ненадобностью.
После анонса IBM 1620 21 октября 1959 года в связи с внутренней реорганизацией IBM было решено передать компьютер из отдела обработки данных в Покипси (только для крупномасштабных мэйнфреймов) в подразделение General Products в Сан-Хосе ( только небольшие компьютеры и вспомогательные продукты) для производства.
После переноса в Сан - Хосе, кто - то там в шутку предположил, что кодовое название КУРСАНТ фактически выступал за « C an't дд, D oesn't E Вен T чень», имея в виду использование аддитивных таблиц в памяти, а не выделенной капельной схемы (и SDTRL фактически стоял « S старого D собственного T он R Ивера L OGIC» стал общей шуткой среди ВЭ). Это прижилось и стало очень хорошо известно в сообществе пользователей.
|
|
Модель II IBM 1620 использовалась Верл Н. Хафф, штаб-квартира НАСА (FOB 10B, Вашингтон, округ Колумбия), чтобы запрограммировать трехмерное моделирование в Фортране привязанной капсулы Близнецов - проблема двух тел ракетного модуля Agena в то время, когда это было не совсем понятно, безопасно ли связать два объекта вместе в космосе из-за возможных столкновений, вызванных упругими тросами. Тот же компьютер также использовался для моделирования орбит полетов Близнецов, создавая печатные графики каждой орбиты. Это моделирование проводилось в течение ночи, а данные были изучены на следующий день.
В 1963 году IBM 1620 был установлен в IIT Kanpur, что стало толчком для развития индийского программного обеспечения.
В 1964 году в Австралийском национальном университете Мартин Уорд использовал модель I IBM 1620 для вычисления порядка группы Янко J 1.
В 1966 году ITU выпустил пояснительный фильм о системе 1963 года для набора на компьютере в Washington Evening Star с использованием IBM 1620 и фотонаборного устройства Linofilm.
Многие сообщества пользователей вспомнить 1620 существо упоминается как CADET, шутя означает « С an't дд, Д oesn't Е VEN Т гу», со ссылкой на использование аддитивных таблиц в памяти, а не специализированных схем сложения.
См. Историю разработки для объяснения всех трех известных интерпретаций кодового имени машины.
Для машины было выбрано внутреннее кодовое имя CADET. Один из разработчиков говорят, что стояло « C omputer с AD продвинутых E КОНОМИЧЕСКОЙ T ехнологии», однако другим вспомнить его как просто быть одна половиной «пространство - Кадеты», где ПРОСТРАНСТВО было внутреннее кодовым названием IBM 1401 машины, также тогда находится в стадии разработки.