PDP-10 компании Digital Equipment Corporation (DEC) , позднее продаваемый как DECsystem-10 , представляет собой семейство мэйнфреймовых компьютеров [1], производство которых началось в 1966 году [2] и было прекращено в 1983 году. [3] [4] [5] Модели 1970-х годов и позже продавались под названием DECsystem-10, особенно после того, как операционная система TOPS-10 стала широко использоваться. [a]
Архитектура PDP-10 почти идентична архитектуре более раннего PDP-6 от DEC , разделяя ту же 36-битную длину слова и немного расширяя набор инструкций. Главным отличием была значительно улучшенная аппаратная реализация. Некоторые аспекты набора инструкций необычны, в частности, байтовые инструкции, которые работают с битовыми полями любого размера от 1 до 36 бит включительно, согласно общему определению байта как непрерывной последовательности фиксированного числа бит .
PDP-10 можно было найти во многих университетских вычислительных центрах и исследовательских лабораториях в 1970-х годах, наиболее заметными из которых были Aiken Computation Laboratory Гарвардского университета , AI Lab и Project MAC Массачусетского технологического института , SAIL Стэнфорда , Computer Center Corporation (CCC), ETH (ZIR) и Carnegie Mellon University . Его основные операционные системы , TOPS-10 и TENEX , использовались для построения ранней сети ARPANET . По этим причинам PDP-10 занимает видное место в раннем хакерском фольклоре .
Проекты по расширению линейки PDP-10 были отодвинуты на второй план успехом неродственного суперминикомпьютера VAX , и в 1983 году было объявлено об отмене линейки PDP-10. Согласно сообщениям, DEC продала «около 1500 DECsystem-10 к концу 1980 года». [6]
Первоначальный процессор PDP-10 — это KA10, представленный в 1968 году. [7] Он использует дискретные транзисторы, упакованные по технологии DEC Flip-Chip , с объединительными платами, намотанными с помощью полуавтоматического производственного процесса. Его время цикла составляет 1 мкс, а время добавления — 2,1 мкс. [8] В 1973 году KA10 был заменен на KI10, который использует транзисторно-транзисторную логику (TTL) SSI . К нему в 1975 году присоединился более производительный KL10 (более поздние более быстрые варианты), который построен на эмиттерно-связанной логике (ECL), микропрограммируемый и имеет кэш -память. Производительность KL10 составляла около 1 мегафлопс с использованием 36-битных чисел с плавающей точкой при сокращении строк матрицы. Он был немного быстрее, чем более новый VAX-11/750 , хотя и более ограниченный в памяти.
Меньшая, менее дорогая модель KS10 была представлена в 1978 году, используя компоненты TTL и Am2901 bit-slice и включая PDP-11 Unibus для подключения периферийных устройств. KS10 продавалась как DECSYSTEM-2020, часть диапазона DECSYSTEM-20; это был выход DEC на арену распределенной обработки , и она была представлена как «самая дешевая в мире мэйнфреймовая компьютерная система». [9]
KA10 имеет максимальный объем основной памяти (как виртуальной, так и физической) 256 килослов (эквивалентно 1152 килобайтам ); минимальный требуемый объем основной памяти составляет 16 килослов. Поставляемый DEC, он не включал в себя оборудование для подкачки страниц ; управление памятью состоит из двух наборов регистров защиты и перемещения, называемых базовыми и граничными регистрами. Это позволяет ограничить каждую половину адресного пространства пользователя заданным разделом основной памяти , обозначенным базовым физическим адресом и размером. Это позволяет использовать модель отдельного сегмента кода, доступного только для чтения (обычно это верхний сегмент), и сегмента данных для чтения и записи / стека (обычно это нижний сегмент), используемого TOPS-10 и позднее принятого Unix . Некоторые машины KA10, сначала в MIT, а затем в Bolt, Beranek and Newman (BBN), были модифицированы для добавления виртуальной памяти [10] [11] и поддержки подкачки по требованию [ 12] [13] и большего объема физической памяти.
KA10 весит около 1920 фунтов (870 кг). [14]
10/50 была топовой машиной Uni-processor KA [15] в то время, когда был представлен пакет программного обеспечения PA1050 . Две другие модели KA10 были uniprocessor 10/40 и dual-processor 10/55. [16] [b]
В KI10 реализована поддержка управления страничной памятью, а также поддержка большего физического адресного пространства в 4 мегаслова . Модели KI10 включают 1060, 1070 и 1077, причем последняя включает два ЦП.
Оригинальные модели KL10 PDP-10 (также продаваемые как DECsystem-10) (1080, 1088 и т. д.) используют оригинальную шину памяти PDP-10 с внешними модулями памяти. Модуль в этом контексте означает шкаф, размеры примерно (ШxВxГ) 30 x 75 x 30 дюймов с емкостью от 32 до 256 кВт слов памяти на магнитных сердечниках . Процессоры, используемые в DECSYSTEM-20 (2040, 2050, 2060, 2065), обычно, но неправильно называемые «KL20», используют внутреннюю память, установленную в том же шкафу, что и ЦП . Модели 10xx также имеют другую упаковку; они поставляются в оригинальных высоких шкафах PDP-10, а не в коротких, которые использовались позже для DECSYSTEM-20. Различия между моделями 10xx и 20xx в первую очередь заключались в том, какую операционную систему они использовали, TOPS-10 или TOPS-20 . Кроме этого, различия скорее косметические, чем реальные; некоторые системы 10xx имеют внутреннюю память и ввод-вывод в стиле «20», а некоторые системы 20xx имеют внешнюю память и шину ввода-вывода в стиле «10». В частности, все системы ARPAnet TOPS-20 имели шину ввода-вывода, поскольку интерфейс AN20 IMP был устройством шины ввода-вывода. Обе могли запускать микрокод либо TOPS-10, либо TOPS-20 и, таким образом, соответствующую операционную систему.
Более поздняя версия Model B процессоров 2060 снимает ограничение в 256 килослов на виртуальное адресное пространство, поддерживая до 32 «разделов» по 256 килослов каждый, а также внося существенные изменения в набор инструкций. Две версии фактически являются разными ЦП. Первой операционной системой, которая использует возможности Model B, является TOPS-20 версии 3, а расширенная адресация пользовательского режима предлагается в TOPS-20 версии 4. Версии TOPS-20 после версии 4.1 работают только на Model B.
Версии TOPS-10 7.02 и 7.03 также используют расширенную адресацию при работе на процессоре модели B 1090 (или 1091), работающем под управлением микрокода TOPS-20.
Последним обновлением KL10 стало обновление MCA25 с 2060 до 2065 (или с 1091 до 1095), что дало некоторое повышение производительности для программ, работающих в нескольких разделах.
Архитектура ввода-вывода машин серии 20xx KL основана на конструкции шины DEC, называемой Massbus . Хотя многие приписывали успех PDP-11 решению DEC сделать PDP-11 Unibus открытой архитектурой, DEC вернулась к предыдущей философии с KL, сделав Massbus как уникальным, так и фирменным. Следовательно, не было производителей периферийных устройств на вторичном рынке, которые производили устройства для Massbus, и DEC решила установить цену на свои собственные устройства Massbus, в частности, на дисковод RP06, существенно выше, чем на сопоставимые IBM-совместимые устройства. CompuServe , например, разработала свой собственный альтернативный дисковый контроллер, который мог работать на Massbus, но подключаться к дисковым подсистемам IBM 3330.
Машины класса KL имеют процессор PDP-11/40 для запуска и мониторинга системы. PDP-11 загружается с двухпортового дисковода RP06 (или, в качестве альтернативы, с 8- дюймового дисковода или DECtape ), а затем можно отдать команды PDP-11 для запуска основного процессора, который обычно загружается с того же дисковода RP06, что и PDP-11. PDP-11 выполняет функции сторожевого таймера после запуска основного процессора.
Связь с мэйнфреймами IBM, включая удаленный ввод заданий (RJE), осуществлялась через интерфейсный процессор DN61 или DN-64 с использованием PDP-11/40 или PDP-11/34a. [17] [18]
KS10 — это более дешёвый PDP-10, созданный с использованием чипов AMD 2901 bit-slice с микропроцессором Intel 8080A в качестве управляющего процессора. [19] Конструкция KS10 была урезана до модели A, хотя большинство необходимых путей передачи данных, необходимых для поддержки архитектуры модели B, присутствовали. Это, несомненно, было направлено на сегментацию рынка , но это значительно сократило срок службы KS10.
Система KS использует процедуру загрузки, похожую на KL10. Управляющий процессор 8080 загружает микрокод с диска RM03, RM80 или RP06 или магнитной ленты, а затем запускает главный процессор. 8080 переключает режимы после загрузки операционной системы и управляет консолью и удаленными диагностическими последовательными портами.
Подсистема управления магнитной лентой TM10 поддерживала две модели ленточных накопителей :
Можно было поддерживать до восьми из них, используя семидорожечные или девятидорожечные устройства. TU20 и TU30 выпускались в версиях A (9 дорожек) и B (7 дорожек), и все вышеупомянутые ленточные накопители могли читать/писать с/на 200 BPI , 556 BPI и 800 BPI IBM-совместимых лент.
Контроллер TM10 Magtape был доступен в двух подмоделях:
От первых PDP-6 до KL-10 и KS-10 архитектура набора инструкций пользовательского режима в основном одинакова. В этом разделе рассматривается эта архитектура. Единственное существенное изменение в архитектуре — добавление многосекционной расширенной адресации в KL-10; расширенная адресация, которая изменяет процесс генерации эффективного адреса инструкции, кратко обсуждается в конце. Как правило, система имеет 36-битные слова и инструкции и 18-битные адреса.
Имеется 16 36-битных регистров общего назначения. Правая половина этих регистров (кроме регистра 0) может использоваться для индексации. Несколько инструкций работают с парами регистров. Регистр «PC Word» разделен пополам; правые 18 бит содержат счетчик программ , а левые 13 бит содержат флаги состояния процессора , с пятью нулями между двумя секциями. Биты регистра условий, которые записывают результаты арифметических операций ( например, переполнение), могут быть доступны только нескольким инструкциям.
В оригинальных системах KA-10 эти регистры представляют собой просто первые 16 слов основной памяти . Аппаратная опция «быстрых регистров» реализует их как регистры в ЦП, по-прежнему адресуемые как первые 16 слов памяти. Некоторое программное обеспечение использует это преимущество, используя регистры как кэш инструкций , загружая код в регистры и затем переходя на соответствующий адрес; это используется, например, в Maclisp для реализации одной из версий сборщика мусора . [21] Все более поздние модели имеют регистры в ЦП.
Существует два режима работы: режим супервизора и режим пользователя. Помимо описанной выше разницы в обращении к памяти, программы режима супервизора могут выполнять операции ввода/вывода.
Связь из пользовательского режима в режим супервизора осуществляется через нереализованные пользовательские операции (UUO): инструкции, которые не определены аппаратно и перехватываются супервизором. Этот механизм также используется для эмуляции операций, которые могут не иметь аппаратной реализации в более дешевых моделях.
Основные типы данных, которые напрямую поддерживаются архитектурой, — это 36-битная целочисленная арифметика с дополнением до двух (включая побитовые операции), 36-битная плавающая точка и полуслова. Расширенная, 72-битная плавающая точка поддерживается посредством специальных инструкций, разработанных для использования в последовательностях из нескольких инструкций. Указатели байтов поддерживаются специальными инструкциями. Слово, структурированное как половина «счетчика» и половина «указателя», облегчает использование ограниченных областей памяти, в частности стеков .
Инструкции хранятся в 36-битных словах. Существует два формата: общие инструкции и инструкции ввода/вывода . [22]
В общих инструкциях самые левые 9 бит, от 0 до 8, содержат код операции инструкции . Многие из возможных 512 кодов не определены в базовых моделях машин и зарезервированы для расширения, например, для добавления аппаратного блока с плавающей точкой . После кода операции в битах с 9 по 12 следует номер регистра, который будет использоваться для инструкции. Все инструкции ввода/вывода начинаются с битов с 0 по 2, установленных в 1 (десятичное значение 7), биты с 3 по 9 содержат номер устройства, а биты с 10 по 12 — код операции инструкции. [22]
В обоих форматах биты с 13 по 35 используются для формирования «эффективного адреса», E. Биты с 18 по 35 содержат числовой постоянный адрес, Y. Этот адрес можно изменить, добавив 18-битное значение в регистре, X, номер регистра, указанный в битах с 14 по 17. Если они установлены в ноль, индексация не используется, что означает, что регистр 0 не может использоваться для индексации. Бит 13, I, указывает на косвенность, что означает, что конечный эффективный адрес, используемый инструкцией, — это не E, а адрес, сохраненный в ячейке памяти E. При использовании косвенности данные в слове E интерпретируются так же, как и макет инструкции; биты с 0 по 12 игнорируются, а 13 по 35 образуют I, X и Y, как указано выше.
Выполнение инструкции начинается с вычисления E. Оно добавляет содержимое указанного регистра X (если не 0) к смещению Y; затем, если косвенный бит равен 1, извлекается значение в E и повторяется вычисление эффективного адреса. Если I равно 1 в сохраненном значении в E в памяти, система затем также будет выполнять косвенную адресацию по этому адресу, возможно, следуя многим таким шагам. [22] Этот процесс продолжается до тех пор, пока не будет достигнуто косвенное слово с нулевым косвенным битом. Косвенная адресация такого рода была общей чертой конструкций процессоров этой эпохи.
В режиме супервизора адреса напрямую соответствуют физической памяти. В пользовательском режиме адреса транслируются в физическую память. Более ранние модели предоставляют пользовательскому процессу «верхнюю» и «нижнюю» память: адреса с верхним битом 0 используют один базовый регистр, а адреса с битом 1 — другой. Каждый сегмент является непрерывным. Более поздние архитектуры имеют страничный доступ к памяти, что позволяет использовать несмежное адресное пространство. Регистры общего назначения ЦП также могут быть адресованы как ячейки памяти 0–15.
Существует три основных класса общих инструкций: арифметические, логические и перемещение; условный переход; условный пропуск (который может иметь побочные эффекты). Также существует несколько меньших классов.
Арифметические, логические и операции перемещения включают варианты, которые работают непосредственно в регистр, память в регистр, регистр в память, регистр и память в оба или память в память. Поскольку регистры могут быть адресованы как часть памяти, также определены операции регистр-регистр. (Не все варианты полезны, хотя они хорошо определены.) Например, операция ADD имеет в качестве вариантов ADDI (добавление 18-битной немедленной константы к регистру), ADDM (добавление содержимого регистра в ячейку памяти ), ADDB (добавление к обоим , то есть добавление содержимого регистра в память и также помещение результата в регистр). Более сложный пример — HLROM ( H alf Left to Right , Ones to Memory ), которая берет левую половину содержимого регистра, помещает ее в правую половину ячейки памяти и заменяет левую половину ячейки памяти единицами. Для связанных списков также используются полусловные инструкции: HLRZ — оператор CAR в Lisp; HRRZ — оператор CDR.
Операции условного перехода проверяют содержимое регистра и переходят в заданное место в зависимости от результата сравнения. Мнемоники для этих инструкций начинаются с JUMP, JUMPA означает «переходить всегда» и JUMP означает «переходить никогда» — как следствие симметричной конструкции набора инструкций, он содержит несколько пустых операций, таких как JUMP. Например, JUMPN A,LOC переходит по адресу LOC, если содержимое регистра A не равно нулю. Существуют также условные переходы, основанные на регистре условий процессора, с использованием инструкции JRST. На KA10 и KI10 JRST быстрее, чем JUMPA, поэтому стандартным безусловным переходом является JRST.
Операции условного пропуска сравнивают содержимое регистра и памяти и пропускают следующую инструкцию (что часто является безусловным переходом) в зависимости от результата сравнения. Простым примером является CAMN A,LOC, которая сравнивает содержимое регистра A с содержимым ячейки LOC и пропускает следующую инструкцию, если они не равны. Более сложным примером является TLCE A,LOC (читается как «Проверка левого дополнения, пропуск, если равно»), которая, используя содержимое LOC в качестве маски, выбирает соответствующие биты в левой половине регистра A. Если все эти биты равны нулю , пропускаем следующую инструкцию; и в любом случае заменяем эти биты их булевым дополнением.
Некоторые меньшие классы инструкций включают инструкции сдвига/вращения и инструкции вызова процедур. Особенно примечательны инструкции стека PUSH и POP, а также соответствующие инструкции вызова стека PUSHJ и POPJ. Инструкции байтов используют специальный формат косвенного слова для извлечения и хранения битовых полей произвольного размера, возможно, продвигая указатель к следующему блоку. [c]
PDP-10 не использует отображаемые в памяти устройства , в отличие от PDP-11 и более поздних машин DEC. Отдельный набор инструкций используется для перемещения данных на устройства и с устройств, определяемых номером устройства в инструкции. Биты с 3 по 9 содержат номер устройства, а 7 бит позволяют в общей сложности 128 устройств. Инструкции позволяют перемещать данные на устройства и с устройств пословно (DATAO и DATAI) или поблочно (BLKO, BLKI). [23]
В блочном режиме значение, на которое указывает E, представляет собой слово в памяти, разделенное на две части, правые 18 бит указывают начальный адрес в памяти, где находятся данные (или куда они записываются), а левые 18 бит являются счетчиком. Инструкции блока увеличивают оба значения каждый раз, когда они вызываются, тем самым увеличивая счетчик, а также перемещаясь в следующее место в памяти. Затем он выполняет DATAO или DATAI. Наконец, он проверяет сторону счетчика значения в E, если он не равен нулю, он пропускает следующую инструкцию. Если он равен нулю, он выполняет следующую инструкцию, обычно JUMP обратно в начало цикла. [24] Инструкции BLK фактически являются небольшими программами, которые выполняют цикл по инструкциям DATA и инкремента, но, реализуя это в самом процессоре, он избегает необходимости многократного считывания серии инструкций из основной памяти и, таким образом, выполняет цикл гораздо быстрее. [25]
Последний набор инструкций ввода-вывода используется для записи и чтения кодов условий на устройстве, CONO и CONI. [26] Кроме того, CONSZ выполнит CONI, битовую маску извлеченных данных по значению в E, а затем пропустит следующую инструкцию, если она равна нулю, что используется аналогично командам BLK. В CONSZ проверяются только правые 18 бит. [27]
Второе применение инструкции CONO — установка уровня приоритета устройства для обработки прерываний . В инструкции CONO есть три бита, с 33 по 35, что позволяет установить уровень устройства от 0 до 7. Уровень 1 является наивысшим, что означает, что если два устройства одновременно вызывают прерывание, то обработку начнет устройство с наименьшим номером. Уровень 0 означает «нет прерываний», поэтому устройство, установленное на уровень 0, не остановит процессор, даже если оно вызовет прерывание. [28]
Каждый канал устройства имеет два связанных с ним места памяти, одно в 40+2N и другое в 41+2N, где N — номер канала. Таким образом, канал 1 использует места 42 и 43. Когда прерывание получено и принято, то есть прерывание с более высоким приоритетом уже не запущено, система останавливается на следующей части чтения памяти цикла инструкции и вместо этого начинает обработку по адресу, сохраненному в первом из этих двух мест. Обработчик прерываний должен отключить уровень прерывания, когда он завершен, что он может сделать, выполнив инструкцию CONO, DATA или BLK. [28]
Два номера устройств отведены для специальных целей. Устройство 0 — это консоль передней панели компьютера; чтение с этого устройства извлекает настройки переключателей панели, а запись зажигает индикаторы состояния. Устройство 4 — это «приоритетное прерывание», которое можно прочитать с помощью CONI, чтобы получить дополнительную информацию о произошедшем прерывании. [29]
В процессорах, поддерживающих расширенную адресацию, адресное пространство разделено на «разделы». 18-битный адрес — это «локальный адрес», содержащий смещение внутри раздела, а «глобальный адрес» — это 30 бит, разделенных на 12-битный номер раздела внизу левых 18 бит и 18-битное смещение внутри этого раздела в правых 18 битах. Регистр может содержать либо «локальный индекс» с 18-битным беззнаковым смещением или локальным адресом в правых 18 битах, либо «глобальный индекс» с 30-битным беззнаковым смещением или глобальным адресом в правых 30 битах. Косвенное слово может быть либо «локальным косвенным словом», в котором установлен верхний бит, следующие 12 бит зарезервированы, а оставшиеся биты являются косвенным битом, 4-битным кодом регистра и 18-битным смещением, либо «глобальным косвенным словом», в котором верхний бит очищен, следующий бит является косвенным битом, следующие 4 бита являются кодом регистра, а оставшиеся 30 бит являются смещением. [30] : 1-26–1-30
Процесс вычисления эффективного адреса генерирует 12-битный номер раздела и 18-битное смещение внутри этого сегмента. [30] : 1-26–1-30
Первоначальная операционная система PDP-10 называлась просто «Monitor», но позже была переименована в TOPS-10 . В конечном итоге сама система PDP-10 была переименована в DECsystem-10. Ранние версии Monitor и TOPS-10 легли в основу операционной системы WAITS Стэнфорда и системы разделения времени CompuServe .
Со временем некоторые операторы PDP-10 начали использовать операционные системы, собранные из основных компонентов, разработанных вне DEC. Например, основной планировщик мог быть из одного университета, Disk Service из другого и т. д. Коммерческие службы разделения времени, такие как CompuServe , On-Line Systems, Inc. (OLS) и Rapidata , поддерживали сложные внутренние группы системного программирования, чтобы они могли изменять операционную систему по мере необходимости для своего собственного бизнеса, не завися от DEC или других. Существуют также сильные сообщества пользователей, такие как DECUS , через которые пользователи могут обмениваться программным обеспечением, которое они разработали.
BBN разработала собственную альтернативную операционную систему TENEX , которая довольно быстро стала популярной в исследовательском сообществе. Позднее DEC перенесла TENEX на KL10, значительно ее усовершенствовала и назвала TOPS-20 , сформировав линейку DECSYSTEM-20.
Массачусетский технологический институт , разработавший CTSS ( Compatible Time-Sharing System) для работы на IBM 709 (а позднее и на модифицированной системе IBM 7094 ), также разработал ITS ( Incompatible Time-Sharing System) [31] для работы на PDP-6 (а позднее и на модифицированной PDP-10); [ требуется ссылка ]
Tymshare разработала TYMCOM-X , производную от TOPS-10, но использующую страничную файловую систему, как TOPS-20. [32]
DEC поддерживала DECsystem-10 FORTRAN IV (F40) для PDP-10 с 1967 по 1975 год [33]
MACRO-10 (макрос-компилятор языка ассемблера), COBOL, BASIC и AID поддерживались в многопроцессорных и подкачивающихся мониторах. [34]
На практике около 1970 года в Хэтфилдском политехническом институте был доступен ряд других сред программирования, включая LISP и SNOBOL.
В 1971–1972 годах исследователи из Xerox PARC были разочарованы отказом высшего руководства компании позволить им купить PDP-10. Xerox только что купила Scientific Data Systems (SDS) в 1969 году и хотела, чтобы PARC использовала машину SDS. Вместо этого группа под руководством Чарльза П. Такера спроектировала и построила две системы-клона PDP-10, названные MAXC (произносится как Макс, в честь Макса Палевски , который продал SDS компании Xerox) для собственного использования. MAXC также было бэкронимом для Multiple Access Xerox Computer. MAXC управляла модифицированной версией TENEX. [35]
Попытки третьих лиц продать клоны PDP-10 были относительно безуспешными; см. Foonly , Systems Concepts и XKL .
Одной из самых больших коллекций систем архитектуры DECsystem-10, когда-либо собранных, была компания CompuServe , которая на пике своей деятельности эксплуатировала более 200 слабосвязанных систем в трех центрах обработки данных в Колумбусе, штат Огайо . CompuServe использовала эти системы в качестве «хостов», предоставляя доступ к коммерческим приложениям и информационной службе CompuServe. Хотя первые такие системы были куплены у DEC, когда DEC отказалась от архитектуры PDP-10 в пользу VAX , CompuServe и другие клиенты PDP-10 начали покупать совместимые с разъемами компьютеры у Systems Concepts. По состоянию на январь 2007 года [обновлять]CompuServe эксплуатировала небольшое количество машин с архитектурой PDP-10 для выполнения некоторых функций биллинга и маршрутизации.
Основные блоки питания, используемые в машинах серии KL, были настолько неэффективны, что инженеры CompuServe разработали сменный блок питания, который потреблял примерно половину энергии. CompuServe предложила лицензировать конструкцию своего блока питания KL компании DEC бесплатно, если DEC пообещает, что в любом новом KL, купленном CompuServe, будет установлен более эффективный блок питания. DEC отклонила предложение.
Еще одной модификацией PDP-10, внесенной инженерами CompuServe, стала замена сотен ламп накаливания на корпусе процессора KI10 на светодиодные модули. Стоимость преобразования была легко компенсирована экономией затрат на электроэнергию, снижением нагрева и трудозатрат, необходимых для замены перегоревших ламп. Digital последовала этому шагу по всему миру. На фотографии справа показана световая панель памяти MF10, которая является современницей ЦП KI10. Этот предмет является частью компьютерного музея и был заполнен светодиодами в 2008 году только для демонстрационных целей. На самих процессорах KL и KS не было подобных групп индикаторных ламп — только на устаревшей памяти и периферийных устройствах.
PDP-10 в конечном итоге затмили суперминикомпьютеры VAX (потомки PDP-11 ), когда DEC поняла, что линейки продуктов PDP-10 и VAX конкурируют друг с другом, и решила сосредоточить усилия по разработке программного обеспечения на более прибыльной VAX. Отмена линейки продуктов PDP-10 была объявлена в 1983 году, включая отмену текущего проекта Jupiter по производству нового высокопроизводительного процессора PDP-10 (несмотря на то, что этот проект был в хорошей форме на момент отмены) и проекта Minnow по производству настольного PDP-10, который тогда мог находиться на стадии прототипирования. [36]
Это событие положило конец ИТС и технической культуре, породившей оригинальный файл жаргона , но к 1990-м годам среди хакеров старой закалки стало чем-то вроде знака чести отточить свои навыки на PDP-10.
Инструкции языка ассемблера PDP-10 LDB и DPB (load/deposit byte ) продолжают существовать как функции в языке программирования Common Lisp . См. раздел «Ссылки» в статье LISP . 36-битный размер слова PDP-6 и PDP-10 был обусловлен удобством программирования, поскольку в одном слове было 2 указателя LISP, каждый по 18 бит.
Уилл Кроутер создал Adventure , прототипическую компьютерную приключенческую игру, для PDP-10. Дон Даглоу создал первую компьютерную бейсбольную игру (1971) и Dungeon (1975), первую ролевую видеоигру на PDP-10. Уолтер Брайт изначально создал Empire для PDP-10. Рой Трабшоу и Ричард Бартл создали первую MUD на PDP-10. Zork был написан на PDP-10. Infocom использовал PDP-10 для разработки и тестирования игр. [37]
Билл Гейтс и Пол Аллен изначально написали Altair BASIC , используя симулятор Intel 8080 , работающий на PDP-10 в Гарвардском университете . Аллен переделал ассемблер PDP-10 в кросс-ассемблер для чипа 8080. [38] Вскоре после этого они основали Microsoft .
Программное обеспечение для моделирования исторических компьютеров SIMH содержит модули для эмуляции всех моделей ЦП PDP-10 на машинах с Windows или Unix. Копии оригинальных дистрибутивных лент DEC доступны для загрузки из Интернета, чтобы можно было установить работающую систему TOPS-10 или TOPS-20. ITS и WAITS также доступны для SIMH. [39] [40] Реплика передней панели PDP-10 [41] для процессора KA10 доступна для эмуляции SIMH , работающей на Raspberry Pi .
Программное обеспечение KLH10 Кена Харренстиена для Unix-подобных систем эмулирует процессор KL10B с расширенной адресацией и 4 МВт памяти или процессор KS10 с 512 КВт памяти. Эмуляция KL10 поддерживает v.442 микрокода KL10, что позволяет запускать финальные версии как TOPS-10, так и TOPS-20. Эмуляция KS10 поддерживает как микрокод ITS v.262 для финальной версии KS10 ITS, так и микрокод DEC v.130 для финальных версий KS TOPS-10 и TOPS-20. [42]
Эта статья частично основана на Jargon File , который находится в открытом доступе.
PDP-10...был снят с производства в 1983 году
... поскольку сторонние компании продолжают продавать детали, так что на самом деле это не так ...
PDP-10 — семейство мэйнфреймовых компьютеров, выпускавшихся ... в 1983 году было объявлено об отмене линейки PDP-10.
Процессор PDP-10, дополненный специальными пейджинговыми аппаратными средствами
DECsystem-10 ... динамическое управление страницами и рабочими наборами
Система PDP 1055 Dual Processor (1050) ... ранние мониторы DEC-10
на -10 использовал сборщик мусора пометок и зачисток (одна из версий которого, как известно, "работала в наборе регистров", хотя это уже другая история)
Массачусетский технологический институт ... создали собственную операционную систему, легендарную .. Несовместимая система разделения времени
Infocom разработает Zork .. PDP-10 .. размещенный .. Несовместимая система разделения времени ... ARPANET ... Машина DMG ... сообщество .. своего рода расширенная команда бета-тестирования