Введение

Лабораторный инструментальный компьютер (1962)
миникомпьютер

LINC (Laboratory INstrument Computer) – 12-битный, 2048-словный транзисторный компьютер. LINC считается многими первым миникомпьютером и предшественником персонального компьютера. Изначально проект назывался Linc, что указывало на его происхождение в Лаборатории Линкольна MIT, но после перемещения проекта из этой лаборатории он был переименован в LINC. LINC был разработан Уэсли А. Кларком и Чарльзом Молнаром. LINC и другие машины "MIT Group" были спроектированы в MIT и впоследствии построены компаниями Digital Equipment Corporation (DEC) и Spear Inc. из Уолтэма, штат Массачусетс (позже подразделение Becton, Dickinson and Company) для исследователей Национальных институтов здоровья. Конструкция LINC находилась в общественном достоянии, что, возможно, делает его уникальным в истории вычислительной техники. Дюжина компьютеров LINC была собрана их будущими владельцами – исследователями в области биомедицины – на летнем семинаре 1963 года в MIT. Коммерческое производство осуществляла компания DEC. Пионер DEC, C. Гордон Белл, утверждает, что проект LINC начался в 1961 году, первая поставка состоялась в марте 1962 года, а машина была официально снята с производства лишь в декабре 1969 года. Всего было построено 50 машин (все с использованием модульных блоков и шкафов систем DEC), большинство из которых находились в Лаборатории Линкольна, где настольные приборы размещались в четырех деревянных стойках. Первый LINC включал два дисплея осциллографа. Двадцать один компьютер был продан DEC по цене 43 600 долларов в конфигурации производственной модели. В этой конфигурации высокий шкаф, стоявший за столом, покрытым белым формопластом, содержал два несколько меньших металлических блока с одинаковым набором инструментов, осциллограф Tektronix над "передней панелью" слева от пользователя, отсек для интерфейсов над двумя накопителями LINC Tape справа от пользователя и громоздкую клавиатуру между ними. Стандартное программное обеспечение для разработки (ассемблер/редактор) было разработано Мэри Аллен Уилкс; последняя версия получила название LAP6 (LINC Assembly Program 6).

Архитектура

LINC имеет 2048 12-битных слов памяти, разделенных на два сектора. В последующей модификации LINC был добавлен 12-битный Z-регистр для поддержки арифметики повышенной точности, а также предусмотрено прерывание, принудительно перенаправляющее выполнение в ячейку памяти 21 (в восьмеричной системе счисления). Устройства ввода-вывода алфавитно-цифровой информации включали в себя выделенную клавиатуру и возможность отображения текста на подключенном растровом ЭЛТ. Для вывода на печать можно было подключить телетайп. Арифметика использовала дополнительный код, что подразумевало наличие представлений для "плюс ноль" и "минус ноль". Оригинальный LINC требовал 8 микросекунд на выполнение каждой инструкции.

Панель управления

Панель управления LINC используется для пошагового выполнения программ и отладки. Выполнение может быть остановлено при совпадении счётчика программы с установками переключателей. Другая функция позволяет остановить выполнение при обращении к определённому адресу. Функции пошагового выполнения и продолжения могут автоматически повторяться. Частоту повторения можно изменять в пределах четырёх порядков с помощью аналоговой ручки и четырехпозиционного декадного переключателя – от примерно одного шага в секунду до примерно половины максимальной скорости. Запуск программы с частотой в один шаг в секунду и постепенное ускорение до полной скорости позволяли наглядно ощутить и оценить скорость работы компьютера.

LINCtape (полное сокращение)

Примечательной особенностью LINC была LINCtape. Это была фундаментальная часть конструкции машины, а не дополнительное периферийное устройство, и операционная система машины полагалась на нее. LINCtape можно сравнить с линейным дискетоприемником с медленным временем доступа. Магнитные ленточные накопители на больших машинах того времени хранили большие объемы данных, требовали нескольких минут для перемотки от начала до конца, но не могли надежно обновлять блоки данных на месте. В отличие от них, LINCtape был небольшим, маневренным устройством, которое хранили около 400 КБ, имело фиксированную форматирующую дорожку, позволяющую многократно читать и перезаписывать данные в одни и те же ячейки, и требовало менее минуты для перемотки от одного конца к другому. Лента была отформатирована в блоки фиксированного размера и использовалась для хранения каталога и файловой системы. Одна аппаратная инструкция могла выполнить поиск, а затем чтение или запись нескольких блоков ленты за одну операцию. Имена файлов состояли из шести символов. Файловая система позволяла хранить два файла – исходный файл и исполняемый двоичный файл – под одним и тем же именем. По сути, это было имя файла 6.1, где расширение ограничивалось "S" или "B". Поскольку базовая LINC имела всего 1024 12-битных слова оперативной памяти (RAM), а расширенная LINC – всего 2048, нормальная работа в значительной степени зависела от подкачки на LINCtape и с LINCtape. Позже компания Digital запатентовала и начала продавать аналогичную конструкцию под названием DECtape; патенты Digital на DECtape в конечном итоге были оспорены в суде и признаны недействительными. LINCtape также запомнилась своей надежностью, которая была выше, чем у дискет, пришедших ей на смену. LINCtape включала в себя очень простую форму резервирования – все данные дублировались в двух местах на ленте. Пользователи LINC продемонстрировали это, проделывая отверстия в ленте обычным офисным дыроколом. Лента, поврежденная таким образом, оставалась полностью читаемой. Форматирующая дорожка делала работу почти независимой от скорости ленты, которая, на самом деле, была довольно переменной. Капстан отсутствовал; движение ленты во время чтения и записи напрямую контролировалось приводными двигателями катушек. Не было функции быстрой перемотки вперед или назад – чтение и запись выполнялись на скоростях, соответствующих быстрой перемотке. В некоторых режимах работы передача данных была слышна через встроенный динамик и производила очень характерную серию резких, похожих на крики птиц звуков с изменяющейся тональностью.

Клавиатура

Клавиатура LINC, произведенная компанией Soroban Engineering, имела уникальный блокирующий соленоид. Внутренний механизм каждой клавиши включал в себя паз, взаимодействующий с набором планок для кодирования символа, и другой паз, который зацеплял блокирующую планку, запирая все клавиши одним механическим движением соленоида. Когда пользователь нажимал клавишу, нажатая клавиша фиксировалась в нижнем положении, а все остальные – в верхнем. Когда работающая программа считывала клавиатуру, блокировка снималась, и нажатая клавиша возвращалась в исходное положение. Это могло приводить к замедлению набора и даже препятствовать одновременному нажатию двух клавиш. От этой необычной клавиатуры отказались в пользу клавиатур Teletype, таких как Model 35 KSR и Model 37 KSR, в компьютерах LINC 8 и PDP 12.

Ручки

LINC включал в себя набор из восьми трехпозиционных потенциометров (пронумерованных от 0 до 7), каждый из которых мог быть прочитан с помощью компьютерной инструкции. Регулятор был удобным устройством ввода для пользователя в то время, до широкого распространения мыши. Например, одна ручка могла управлять масштабированием отображаемого графика, а другая могла использоваться как курсор для отображения фактического значения данных в определенной точке.

Отображение текста

Аппаратное обеспечение LINC позволяло быстро и автоматически отображать 12-битное слово на экране в виде матрицы пикселей 4x6, что давало возможность отображать полные экраны текста без мерцания с минимальным количеством выделенного оборудования. Стандартные процедуры отображения генерировали символьные ячейки размером 4x6, что обеспечило LINC один из самых низкоразрешенных наборов символов, когда-либо созданных. Экран был ЭЛТ размером примерно 5 дюймов по диагонали, фактически представлявшим собой стандартный осциллограф Tektronix со специальными подключаемыми усилителями. Эти специальные модули можно было заменять на стандартные осциллографические модули для использования при диагностическом обслуживании компьютера. Многие LINC поставлялись в виде комплектов для самостоятельной сборки, поэтому осциллограф оказывался весьма полезным. ЭЛТ использовал белый или желтый люминофор с очень длительным послесвечением, благодаря чему линии и кривые, отрисовываемые точка за точкой с относительно низкой скоростью, оставались видимыми в течение запрограммированных циклов рисования, которые часто длились полсекунды и более. Ось Y отображала как положительный, так и отрицательный ноль как разные значения, что излишне отражало использование в LINC арифметики дополнительного кода. Программисты быстро научились сдвигать любые отображаемые отрицательные данные на одну единицу вверх, чтобы скрыть артефакт, который иначе имел тенденцию появляться в точке y=0. Хорошо известно, что плотный цикл, повторяюще отрисовывающий точки в одном месте на экране, мог выжечь постоянное темное пятно в тонком слое люминофора менее чем за минуту; программистам нужно было быть готовыми быстро нажать рычаг остановки, если из-за ошибки в программе внезапно появлялось очень яркое пятно.

Выход телетайпа

Печатный вывод на телетипе модели 33 ASR управлялся однополюсным реле. Подпрограмма преобразовывала коды символов LINC в ASCII и использовала временные циклы для включения и выключения реле, формируя правильный 8-битный выходной сигнал для управления принтером телетипа.

Лабораторный интерфейс

Коннекторный модуль LINC включал отсеки для двух подключаемых шасси, обеспечивающих возможность подключения к экспериментальным установкам. В компьютер были встроены аналого-цифровые и цифро-аналоговые преобразователи, к каждому из которых можно было обратиться с помощью одной машинной инструкции. Также в наличии было шесть реле.

Варианты

В дополнение к оригинальному "классическому" LINC, незначительные изменения в программировании возникали при использовании микро LINC (μ LINC) (1965), микро LINC 300 (μ LINC 300 (версии на интегральных схемах [MECL]) и LINC 8. Различия касались периферийного оборудования ввода/вывода и доступа к памяти. Более поздние модели имели более высокую частоту тактового генератора.

Компьютеры LINC-8 и PDP-12

В то время как Белл в своей книге о последней 12-битной лабораторной машине DEC, LAB 8/E, не использовал набор команд LINC. Первый последователь, LINC 8, загружался (медленно) в программу для PDP 8 под названием PROGOFOP (PROGram OF OPeration), которая обеспечивала взаимодействие с отдельным аппаратным обеспечением LINC. PDP 12 был последним и самым популярным продолжением линейки LINC. Это была более производительная и усовершенствованная машина, более стабильная, чем LINC 8, но с архитектурной точки зрения оставалась несовершенным гибридом LINC и PDP 8, изобилующим множеством мелких технических недочетов. (Например, в LINC был бит переполнения, который являлся небольшой, но важной частью состояния машины; в PDP 12 не было предусмотрено сохранение и восстановление состояния этого бита при обработке прерываний PDP 8.)

Компьютер MINC-11

Digital выпустила версию PDP 11/03 под названием MINC 11, размещенную в переносной тележке и комплектовавшуюся лабораторными модулями ввода-вывода собственной разработки Digital, поддерживающими такие функции, как аналоговый ввод и вывод. Язык программирования MINC BASIC включал встроенную поддержку этих лабораторных модулей ввода-вывода. Аббревиатура MINC расшифровывалась как "Модульный измерительный компьютер". Название, безусловно, должно было напомнить о LINC, однако эта 16-битная машина не имела ни архитектурного сходства, ни совместимости с LINC.