Введение

36-битный компьютер от Digital (1966–1983)

PDP 10 от Digital Equipment Corporation (DEC), позже продаваемый как DECsystem 10, – это семейство мейнфреймов, производство которых началось в 1966 году и было прекращено в 1983 году. Модели 1970-х годов и более поздние продавались под названием DECsystem 10, особенно с широким распространением операционной системы TOPS 10. Архитектура PDP 10 почти идентична архитектуре более раннего PDP 6 от DEC, использующей ту же 36-битную длину слова и незначительно расширяющей набор инструкций. Основное различие заключалось в значительно улучшенной аппаратной реализации. Некоторые аспекты набора инструкций являются необычными, особенно байтовые инструкции, которые работают с бит-полями любого размера от 1 до 36 бит включительно, в соответствии с общим определением байта как непрерывной последовательности фиксированного числа бит. PDP 10 использовался во многих университетских вычислительных центрах и исследовательских лабораториях в 1970-х годах, среди наиболее известных – Aiken Computation Laboratory Гарвардского университета, AI Lab и Project MAC в MIT, SAIL в Стэнфорде, Computer Center Corporation (CCC), ETH (ZIR) и Университет Карнеги-Меллона. Его основные операционные системы, TOPS 10 и TENEX, использовались для создания ранней сети ARPANET. По этим причинам PDP 10 занимает важное место в раннем хакерском фольклоре. Проекты по расширению линейки PDP 10 были затмлены успехом не связанного с ним суперминикомпьютера VAX, и в 1983 году было объявлено о прекращении производства PDP 10. По сообщениям, DEC продала "около 1500 DECsystem 10 к концу 1980 года".

Модели и техническая эволюция

Первоначальный процессор PDP-10 – это KA10, представленный в 1968 году. В нем используются дискретные транзисторы, упакованные по технологии Flip Chip от DEC, с использованием задних панелей, на которых проводка выполнена методом ручной обмотки в полуавтоматизированном производственном процессе. Его время цикла составляет 1 мкс, а время сложения – 2,1 мкс. В 1973 году KA10 был заменен на KI10, использующий транзисторную логику (TTL) SSI. В 1975 году к нему присоединился более производительный KL10 (позднее – более быстрые варианты), построенный на основе логики с эмиттерной связью (ECL), микропрограммируемый и оснащенный кэш-памятью. Производительность KL10 составляла около 1 мегафлопса при использовании 36-битных чисел с плавающей точкой при приведении матриц к ступенчатому виду. Он был незначительно быстрее, чем более новый VAX 11/750, хотя и обладал меньшим объемом памяти. В 1978 году была представлена более компактная и недорогая модель KS10, использующая компоненты TTL и Am2901, а также шину PDP-11 Unibus для подключения периферийных устройств. KS10 продавался под названием DECSYSTEM 2020, как часть линейки DECSYSTEM 20; это был продукт DEC в области распределенных вычислений, представленный как "самая экономичная в мире мейнфреймовая компьютерная система".

КА10

KA10 имеет максимальную емкость основной памяти (как виртуальной, так и физической) в 256 килослов (эквивалент 1152 килобайт); минимально требуемая емкость основной памяти составляет 16 килослов. В исходной комплектации от DEC аппаратное обеспечение для подкачки не предусматривалось; управление памятью осуществлялось с помощью двух наборов регистров защиты и релокации, называемых базовыми и ограничивающими регистрами. Это позволяло ограничить каждую половину адресного пространства пользователя определенным участком основной памяти, определяемым базовым физическим адресом и размером. Это обеспечивало возможность использования модели раздельных сегментов: сегмента кода, доступного только для чтения (обычно верхний сегмент), и сегмента данных для чтения и записи (обычно нижний сегмент), используемой в TOPS-10 и впоследствии принятой в Unix. Некоторые машины KA10, изначально в MIT, а затем в Bolt, Beranek and Newman (BBN), были модифицированы для добавления виртуальной памяти и поддержки страничной организации, а также увеличения объема физической памяти. Вес KA10 составляет около… 10/50 была флагманской моделью однопроцессорных машин серии KA на момент выпуска программного пакета PA1050. Двумя другими моделями KA10 были однопроцессорная 10/40 и двухпроцессорная 10/55.

КИ10

KI10 представил поддержку управления памятью с подкачкой и также поддерживал большее физическое адресное пространство в 4 мегаслова. Модели KI10 включают 1060, 1070 и 1077, причем последняя модель оснащена двумя процессорами.

KL10

Оригинальные модели KL10 PDP 10 (также продаваемые как DECsystem 10) (1080, 1088 и т. д.) использовали оригинальную шину памяти PDP 10 с внешними модулями памяти. Модуль в данном контексте означал шкаф размерами примерно 30 x 75 x 30 дюймов (ШxВxГ) и емкостью от 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 и, соответственно, с соответствующей операционной системой.

Модель B

Более поздняя версия процессоров 2060 модели B устраняет ограничение в 256 килослов для виртуального адресного пространства, поддерживая до 32 "секций" объемом до 256 килослов каждая, а также вносит существенные изменения в набор инструкций. Фактически, это два разных процессора. Первая операционная система, использующая возможности модели B, – это выпуск 3 TOPS 20, а расширенная адресация в пользовательском режиме появилась в выпуске 4 TOPS 20. Версии TOPS 20 после выпуска 4.1 работают только на процессоре модели B. Версии 7.02 и 7.03 TOPS 10 также используют расширенную адресацию при работе на процессоре модели B 1090 (или 1091) с микрокодом TOPS 20.

МКА25

Последним обновлением для KL10 стало обновление MCA25, повышающее версию с 2060 до 2065 (или с 1091 до 1095), что обеспечило прирост производительности для программ, выполняемых в нескольких сегментах.

Массбус

Архитектура ввода-вывода машин серии 20xx KL основана на конструкции шины DEC под названием Massbus. Хотя многие считали, что успех PDP 11 был обусловлен решением DEC сделать шину PDP 11 Unibus открытой архитектурой, с машинами KL компания DEC вернулась к прежней философии, сделав 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, включая Remote Job Entry (RJE), осуществлялась через фронтальные процессоры DN61 или DN64 с использованием PDP 11/40 или PDP 11/34a.

KS10

KS10 – это более доступная модель PDP 10, построенная на базе битовых слайсовых микросхем AMD 2901 с использованием микропроцессора Intel 8080A в качестве управляющего процессора. Конструкция KS10 была намеренно ограничена уровнем модели A, несмотря на наличие большинства необходимых шин данных для поддержки архитектуры модели B. Вероятно, это было сделано для сегментации рынка, но существенно сократило срок службы KS10. Система KS использует аналогичную процедуру загрузки, как и KL10. Управляющий процессор 8080 загружает микрокод с диска RM03, RM80 или RP06, либо с магнитной ленты, и затем запускает основной процессор. После загрузки операционной системы 8080 переключает режимы работы и управляет консольным и диагностическими последовательными портами удаленного доступа.

Архитектура наборов команд

С первых PDP 6s до KL 10 и KS 10 архитектура набора команд пользовательского режима остаётся в основном неизменной. В этом разделе рассматривается эта архитектура. Единственным значительным изменением в архитектуре является добавление расширенной адресации с несколькими сегментами в KL 10; расширенная адресация, которая меняет процесс формирования эффективного адреса инструкции, кратко обсуждается в конце раздела. В целом, система использует 36-битные слова и инструкции, а также 18-битные адреса.

Реестры

+ DEC PDP 10 регистры 00 . 17 18 . 35 (позиция бита) Общие регистры AC0 Регистр 0 AC1 Регистр 1 AC2 Регистр 2 AC3 Регистр 3 AC4 Регистр 4 AC5 Регистр 5 AC6 Регистр 6 AC7 Регистр 7 AC10 Регистр 8 AC11 Регистр 9 AC12 Регистр 10 AC13 Регистр 11 AC14 Регистр 12 AC15 Регистр 13 AC16 Регистр 14 AC17 Регистр 15 Счетчик программ и флаги состояния Флаги состояния 00000 ПК Счетчик программ Обратите внимание, что порядок нумерации битов отличается от некоторых других процессоров DEC и многих более новых процессоров. Существует 16 универсальных 36-битных регистров. Правая половина этих регистров (за исключением регистра 0) может использоваться для индексации. Некоторые инструкции работают с парами регистров. Регистр "PC Word" разделен на две части; правые 18 бит содержат счетчик программ, а левые 13 бит содержат флаги состояния процессора, между которыми расположены пять нулей. Биты регистра состояния, которые фиксируют результаты арифметических операций (например, переполнение), доступны только нескольким инструкциям. В оригинальных системах KA 10 эти регистры являются просто первыми 16 словами основной памяти. Аппаратная опция "быстрые регистры" реализует их как регистры в процессоре, которые по-прежнему адресуются как первые 16 слов памяти. Некоторые программы используют это, используя регистры в качестве кэша инструкций, загружая код в регистры, а затем переходя по соответствующему адресу; например, в Maclisp это используется для реализации одной из версий сборщика мусора. В более поздних моделях все регистры находятся в процессоре.

Режим супервизора

Существует два режима работы: режим супервайзера и режим пользователя. Помимо различий в обращении к памяти, описанных выше, программы в режиме супервайзера могут выполнять операции ввода-вывода. Взаимодействие из пользовательского режима в режим супервайзера осуществляется посредством неопределенных пользовательских операций (НУО) – инструкций, не определенных аппаратным обеспечением, которые перехватываются супервайзором. Этот механизм также используется для эмуляции операций, которые могут отсутствовать в аппаратной реализации в более простых моделях.

Типы данных

Основными типами данных, которые непосредственно поддерживаются архитектурой, являются 36-битная целая арифметика в дополнительном коде (включая побитовые операции), 36-битная арифметика с плавающей точкой и полуслова. 72-битная арифметика с плавающей точкой расширенной точности поддерживается посредством специальных инструкций, предназначенных для использования в последовательностях из нескольких инструкций. Специальные инструкции обеспечивают поддержку байтовых указателей. Слово, состоящее из полуслова "счетчика" и полуслова "указателя", упрощает использование ограниченных областей памяти, в частности стеков.

Инструкции

+ Форматы инструкций DEC PDP 10 00 01 02 03 04 05 06 07 08 09 10 11 12 13 14 15 16 17 18 . 35 (битовая позиция) Общие инструкции   Код операции   Аккумулятор #   I   Индекс #   Адрес памяти Инструкции ввода/вывода   7   Номер устройства   Код операции   I   Индекс #   Адрес памяти
Инструкции хранятся в 36-битных словах. Существует два формата: общие инструкции и инструкции ввода/вывода. В общих инструкциях, девять старших битов, с 0 по 8, содержат код операции. Многие из 512 возможных кодов не определены в базовых моделях и зарезервированы для расширения, например, для добавления аппаратного блока вычислений с плавающей точкой. За кодом операции, в битах с 9 по 12, находится номер регистра, который будет использоваться в инструкции. Инструкции ввода/вывода начинаются с установки битов 0–2 в 1 (десятичное значение 7), биты 3–9 содержат номер устройства, а биты 10–12 – код операции. В обоих форматах биты 13–35 используются для формирования "эффективного адреса" E. Биты 18–35 содержат числовой постоянный адрес Y. Этот адрес может быть модифицирован путем добавления 18-битного значения из регистра X, номер которого указан в битах 14–17. Если эти биты установлены в ноль, индексация не используется, что означает, что регистр 0 не может использоваться для индексации. Бит 13, I, указывает на косвенную адресацию, то есть конечный эффективный адрес, используемый инструкцией, – это не E, а адрес, хранящийся в ячейке памяти E. При использовании косвенной адресации данные в слове E интерпретируются так же, как структура инструкции: биты 0–12 игнорируются, а биты 13–35 формируют I, X и Y, как описано выше. Выполнение инструкции начинается с вычисления E. К смещению Y добавляется содержимое регистра X (если оно не равно 0); затем, если бит косвенной адресации равен 1, извлекается значение по адресу E, и вычисление эффективного адреса повторяется. Если I равен 1 в значении, хранящемся по адресу E в памяти, система выполнит косвенную адресацию и по этому адресу, возможно, повторяя эту операцию многократно. Этот процесс продолжается до тех пор, пока не будет достигнуто слово косвенной адресации с нулевым битом косвенной адресации. Косвенная адресация такого типа была распространенной особенностью архитектур процессоров того времени. В режиме супервизора адреса напрямую соответствуют физической памяти. В пользовательском режиме адреса преобразуются в физическую память. В ранних моделях пользовательскому процессу предоставляются "верхняя" и "нижняя" области памяти: адреса с верхним битом 0 используют один базовый регистр, а адреса с верхним битом 1 – другой. Каждый сегмент является непрерывным. В более поздних архитектурах используется страничная организация памяти, позволяющая создавать не непрерывные адресные пространства. Регистры общего назначения процессора также могут быть адресованы как ячейки памяти 0–15.

Общие инструкции

Существует три основных класса общих инструкций: арифметические, логические и инструкции перемещения; условный переход; условный пропуск (который может иметь побочные эффекты). Есть также несколько меньших классов. Арифметические, логические и инструкции перемещения включают варианты, работающие непосредственным значением с регистром, из памяти в регистр, из регистра в память, из регистра и памяти в оба направления или из памяти в память. Поскольку к регистрам можно обращаться как к части памяти, определены также операции «регистр в регистр». (Не все варианты полезны, хотя они четко определены.) Например, операция ADD имеет варианты ADDI (добавить 18-битную непосредственную константу к регистру), ADDM (добавить содержимое регистра в ячейку памяти), ADDB (добавить в Both, то есть добавить содержимое регистра в память и поместить результат в регистр). Более сложный пример — HLROM (Half Left to Right, Ones to Memory), которая берет левую половину содержимого регистра, помещает её в правую половину ячейки памяти и заменяет левую половину ячейки памяти единицами. Полусловные инструкции также используются для связанных списков: HLRZ — оператор Lisp CAR; HRRZ — CDR. Операции условного перехода анализируют содержимое регистра и переходят к заданному адресу в зависимости от результата сравнения. Мнемонические обозначения этих инструкций начинаются с JUMP, JUMPA означает «переходить всегда», а JUMP означает «никогда не переходить» — в силу симметричной конструкции набора инструкций, он содержит несколько пустых операций (no-ops), таких как JUMP. Например, JUMPN A,LOC переходит к адресу LOC, если содержимое регистра A не равно нулю. Существуют также условные переходы, основанные на регистре состояния процессора с использованием инструкции JRST. На KA10 и KI10 JRST быстрее, чем JUMPA, поэтому стандартный безусловный переход — JRST. Операции условного пропуска сравнивают содержимое регистра и памяти и пропускают следующую инструкцию (которая часто является безусловным переходом) в зависимости от результата сравнения. Простой пример — CAMN A,LOC, которая сравнивает содержимое регистра A с содержимым ячейки LOC и пропускает следующую инструкцию, если они не равны. Более сложный пример — TLCE A,LOC (читается как «Test Left Complement, skip if Equal»), которая, используя содержимое LOC в качестве маски, выбирает соответствующие биты в левой половине регистра A. Если все эти биты равны нулю, пропускается следующая инструкция; и в любом случае, эти биты заменяются их булевым дополнением. Некоторые меньшие классы инструкций включают инструкции сдвига/поворота и инструкции вызова процедуры. Особенно примечательны инструкции стека PUSH и POP, а также соответствующие инструкции вызова стека PUSHJ и POPJ. В байтовых инструкциях используется специальный формат косвенного слова для извлечения и хранения битовых полей произвольного размера, возможно, с продвижением указателя к следующему элементу.

Инструкции ввода/вывода

PDP-10 не использует устройства, отображаемые в память, в отличие от PDP-11 и более поздних машин DEC. Для передачи данных в устройства и из них, идентифицируемых номером устройства в инструкции, используется отдельный набор инструкций. Биты с 3 по 9 содержат номер устройства, а 7 бит позволяют адресовать до 128 устройств. Инструкции обеспечивают передачу данных в устройства и из них по одному слову (DATAO и DATAI) или блоками (BLKO, BLKI). В блочном режиме значение, на которое указывает регистр E, является словом в памяти, разделенным на две части: младшие 18 бит указывают начальный адрес в памяти, где расположены данные (или куда они записываются), а старшие 18 бит – счетчик. Инструкции блочной передачи увеличивают оба значения при каждом вызове, тем самым увеличивая счетчик и переходя к следующей ячейке памяти. После этого выполняется DATAO или DATAI. Затем проверяется счетчик, хранящийся в регистре E: если он не равен нулю, следующая инструкция пропускается. Если он равен нулю, выполняется следующая инструкция, обычно JUMP обратно в начало цикла. Инструкции BLK по сути представляют собой небольшие программы, выполняющие цикл над инструкциями DATA и инкремента, но, будучи реализованными непосредственно в процессоре, они избавляют от необходимости многократного чтения последовательности инструкций из основной памяти, что значительно ускоряет выполнение цикла. Последний набор инструкций ввода-вывода используется для записи и чтения кодов состояния устройства – CONO и CONI. Кроме того, CONSZ выполняет CONI, выполняет побитовое И (bitmask) полученных данных со значением в регистре E и затем пропускает следующую инструкцию, если результат равен нулю, что аналогично работе команд BLK. При этом в CONSZ проверяются только младшие 18 бит.

Перерыв в обработке

Второе применение инструкции CONO — установка уровня приоритета устройства для обработки прерываний. В инструкции CONO имеется три бита, с 33 по 35, позволяющие установить для устройства уровень от 0 до 7. Уровень 1 является наивысшим, что означает, что если два устройства одновременно генерируют прерывание, обработку начнет устройство с наименьшим номером. Уровень 0 означает "запрет прерываний", поэтому устройство, установленное на уровень 0, не остановит процессор, даже если сгенерирует прерывание. Каждый канал устройства связан с двумя ячейками памяти: одна по адресу 40+2N, другая — по адресу 41+2N, где N — номер канала. Таким образом, канал 1 использует ячейки 42 и 43. Когда прерывание получено и принято, то есть в данный момент не выполняется прерывание с более высоким приоритетом, система останавливается на следующей фазе чтения из памяти в цикле инструкции и вместо этого начинает обработку по адресу, хранящемуся в первой из этих двух ячеек. Ответственность за отключение уровня прерывания после завершения обработки лежит на обработчике прерывания, который может сделать это, выполнив инструкцию CONO, DATA или BLK. Два номера устройств зарезервированы для специальных целей. Устройство 0 — это консоль передней панели компьютера; чтение этого устройства возвращает значения переключателей панели, а запись включает индикаторы состояния. Устройство 4 — это "приоритетное прерывание", которое можно прочитать с помощью CONI для получения дополнительной информации о произошедшем прерывании.

Расширенный адрес

В процессорах, поддерживающих расширенное адресование, адресное пространство разделено на "секции". 18-битный адрес является "локальным адресом", содержащим смещение внутри секции, а "глобальный адрес" – это 30 бит, разделенных на 12-битный номер секции в младших 12 битах левых 18 бит и 18-битное смещение внутри этой секции в старших 18 битах. Регистр может содержать либо "локальный индекс" с 18-битным беззнаковым смещением или локальным адресом в младших 18 битах, либо "глобальный индекс" с 30-битным беззнаковым смещением или глобальным адресом в младших 30 битах. Непрямое слово может быть либо "локальным непрямым словом", у которого старший бит установлен, следующие 12 бит зарезервированы, а остальные биты представляют собой бит непрямого обращения, 4-битный код регистра и 18-битное смещение, либо "глобальным непрямым словом", у которого старший бит сброшен, следующий бит является битом непрямого обращения, следующие 4 бита – кодом регистра, а оставшиеся 30 бит – смещением. Процесс вычисления эффективного адреса генерирует 12-битный номер секции и 18-битное смещение внутри этой секции. для работы на PDP-6 (а позднее на модифицированном PDP-10); Tymshare разработала TYMCOM X, основанную на TOPS-10, но использующую файловую систему, организованную по страницам, как в TOPS-20.

Клоны

В 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. Попытки сторонних производителей продавать клоны PDP 10 были относительно безуспешными; см. Foonly, Systems Concepts и XKL.

Использование компанией CompuServe

Одна из крупнейших коллекций систем архитектуры DECsystem 10, когда-либо собранных, находилась в CompuServe, которая в период расцвета управляла более чем 200 слабосвязанными системами в трех центрах обработки данных в Колумбусе, штат Огайо. CompuServe использовала эти системы в качестве «хостов», предоставляя доступ к коммерческим приложениям и информационной службе CompuServe. Первые такие системы были приобретены у DEC, но когда DEC отказалась от архитектуры PDP 10 в пользу VAX, CompuServe и другие пользователи PDP 10 начали закупать компьютеры, совместимые по подключению, у Systems Concepts. По состоянию на январь 2007 года CompuServe эксплуатировала небольшое количество машин с архитектурой PDP 10 для выполнения некоторых функций биллинга и маршрутизации. Основные блоки питания, используемые в машинах серии KL, были настолько неэффективными, что инженеры CompuServe разработали замену, потребляющую примерно вдвое меньше энергии. CompuServe предложила DEC бесплатную лицензию на конструкцию своего блока питания KL, при условии, что DEC гарантирует установку более эффективного блока питания во все новые KL, приобретаемые CompuServe. DEC отклонила это предложение. Еще одним изменением, внесенным инженерами CompuServe в PDP 10, стала замена сотен ламп-индикаторов на процессорном шкафу 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, который, возможно, находился на стадии прототипирования. Это событие означало конец ITS и технических сообществ, породивших оригинальный жаргонный файл, но к 1990-м годам для многих опытных хакеров считалось почётным начинать свой путь именно с PDP 10. Инструкции ассемблера PDP 10 LDB и DPB (загрузка/выгрузка байта) сохранились в виде функций в языке программирования Common Lisp. См. раздел "Ссылки" в статье о LISP. 36-битный размер слова PDP 6 и PDP 10 был обусловлен удобством программирования, позволявшим хранить в одном слове два 18-битных указателя LISP. Уилл Кроутер создал Adventure, прототип компьютерной приключенческой игры, для PDP 10. Дон Даглоу создал первую компьютерную игру в бейсбол (1971) и Dungeon (1975), первую ролевую видеоигру на PDP 10. Уолтер Брайт первоначально разработал Empire для PDP 10. Рой Трубшоу и Ричард Бартл создали первый MUD на PDP 10. Zork был написан на PDP 10. Infocom использовала PDP 10 для разработки и тестирования игр. Билл Гейтс и Пол Аллен первоначально написали Altair BASIC, используя эмулятор Intel 8080 на PDP 10 в Гарвардском университете. Аллен перепрофилировал ассемблер PDP 10 для кросс-компиляции кода для чипа 8080. Вскоре после этого они основали Microsoft.

Эмуляция или симуляция

Программное обеспечение для моделирования исторических компьютеров SIMH содержит модули для эмуляции всех моделей процессоров PDP-10 на компьютерах с операционными системами Windows или Unix. Копии оригинальных дистрибутивных лент DEC доступны для скачивания из Интернета, что позволяет установить рабочую систему TOPS-10 или TOPS-20. ITS и WAITS также доступны для использования с SIMH. Программное обеспечение KLH10, разработанное Кеном Харренстейном для Unix-подобных систем, эмулирует процессор KL10B с расширенной адресацией и 4 МВт памяти или процессор KS10 с 512 КВт памяти. Эмуляция KL10 поддерживает микрокод KL10 версии 442, что позволяет запускать финальные версии операционных систем TOPS-10 и TOPS-20. Эмуляция KS10 поддерживает как микрокод ITS v.262 для финальной версии KS10 ITS, так и микрокод DEC v.130 для финальных версий KS TOPS-10 и TOPS-20.

Новостные группы

альтернативная система PDP-10