Jump to content

ПДП-8

(Перенаправлено с PDP-8/S )
ПДП-8
PDP-8 на выставке в Национальном музее вычислительной техники в Блетчли , Англия. Этот пример относится к первому поколению PDP-8, построенному на дискретных транзисторах и позже известному как Straight 8 .
Разработчик Корпорация цифрового оборудования
Семейство продуктов Программируемый процессор данных
Тип Миникомпьютер
Дата выпуска 22 марта 1965 г .; 59 лет назад ( 1965-03-22 )
Начальная цена 18 500 долларов США , что эквивалентно примерно 178 900 долларов США в 2023 году.
Продано единиц 50,000+
Платформа Декабрь 12 бит
Предшественник ПДП-5
Преемник ПДП-12

PDP -8 — семейство 12-битных миникомпьютеров , производимых Digital Equipment Corporation (DEC) . Это был первый коммерчески успешный мини-компьютер: за время существования модели было продано более 50 000 единиц. [ 1 ] Его базовая конструкция соответствует новаторскому LINC , но имеет меньший набор команд , который представляет собой расширенную версию набора команд PDP-5 . [ 2 ] Аналогичными машинами от DEC являются PDP-12 , который представляет собой модернизированную версию концепций PDP-8 и LINC, а также PDP-14 систему промышленного контроллера .

Открытый PDP-8/E с логическими модулями за передней панелью и одним двойным приводом TU56 DECtape вверху.
«Straight-8» работает в Штутгартском компьютерном музее.

Самая ранняя модель PDP-8, неофициально известная как «Straight-8», была представлена ​​22 марта 1965 года по цене 18 500 долларов. [ 3 ] (что эквивалентно примерно 178 900 долларов США в 2023 году). [ 4 ] ). Он использует диодно-транзисторную логику, упакованную на флип-чип- картах в машине размером с небольшой бытовой холодильник . Это был первый компьютер, проданный менее чем за 20 000 долларов. [ 5 ] что сделало его самым продаваемым компьютером в истории того времени. [ 6 ] [ не удалось пройти проверку ] [ 7 ] [ не удалось пройти проверку ] Straight-8 был заменен в 1966 году PDP-8/S, который был доступен в настольных и стоечных моделях. Использование однобитного последовательного арифметико-логического устройства (АЛУ) позволило сделать PDP-8/S меньше и дешевле, хотя и медленнее, чем исходный PDP-8. Базовая модель 8/S продавалась менее чем за 10 000 долларов и стала первой машиной, достигшей этого рубежа. [ 5 ] [ 8 ]

Более поздние системы (PDP-8/I и /L, PDP-8/E, /F и /M и PDP-8/A) вернулись к более быстрой, полностью параллельной реализации, но используют гораздо менее дорогостоящие транзисторы. Транзисторная логика (TTL) MSI Логика . Большинство сохранившихся PDP-8 относятся к этой эпохе. PDP-8/E широко распространен и хорошо известен, поскольку для него было доступно множество типов устройств ввода-вывода . Последние коммерческие модели PDP-8, представленные в 1979 году, называются «CMOS-8» и основаны на микропроцессорах CMOS . Они не имели конкурентоспособной цены, и предложение провалилось. Intersil продавала интегральные схемы на коммерческой основе до 1982 года как семейство Intersil 6100 . Благодаря технологии КМОП они имели низкое энергопотребление и использовались в некоторых встроенных военных системах.

Главным инженером, спроектировавшим первоначальную версию PDP-8, был Эдсон де Кастро , позже основавший Data General . [ 9 ]

Архитектурное значение

[ редактировать ]

PDP-8 сочетает в себе низкую стоимость, [ 3 ] простота, расширяемость и тщательное проектирование для повышения эффективности. Наибольшее историческое значение заключалось в том, что низкая стоимость и большой объем PDP-8 сделали компьютер доступным для многих новых клиентов для многих новых целей. Его непреходящее значение заключается в том, что он является историческим примером создания стоимости. [ 10 ] компьютерный дизайн.

Низкая сложность привела к другим затратам. Это сделало программирование громоздким, как видно из примеров в этой статье и из обсуждения «страниц» и «полей». Большая часть кода выполняла требуемую механику, а не излагала алгоритм. Например, вычитание числа включает в себя вычисление его дополнения до двух и его сложение; написание условного перехода включает в себя запись условного пропуска вокруг перехода, при этом пропуск кодирует отрицательное условие на желаемое. Некоторые амбициозные программные проекты не умещались в памяти или имели конструктивные дефекты, которые невозможно было устранить. Например, как отмечено ниже , непреднамеренная рекурсия подпрограммы приводит к дефектам, которые трудно отследить до рассматриваемой подпрограммы.

Поскольку прогресс в проектировании снизил затраты на логику и память, время программиста стало относительно более важным. [ 11 ] Последующие разработки компьютеров подчеркивали простоту программирования, обычно с использованием более крупных и интуитивно понятных наборов команд. [ 12 ]

В конце концов, большая часть машинного кода была сгенерирована компиляторами и генераторами отчетов. [ 13 ] Компьютер с сокращенным набором команд вернулся к акценту PDP-8 на простом наборе команд и выполнении нескольких действий за один цикл команд, чтобы максимизировать скорость выполнения, хотя новые компьютеры имеют гораздо более длинные слова команд.

Описание

[ редактировать ]
Регистры PDP-8
1 1 1 0 9 8 7 6 5 4 3 2 1 0 (битовая позиция)
Основные регистры
переменного тока переменного тока аккумулятор
МК Множитель Коэффициент
Счетчик программ
ПК Программный счетчик
Флаги состояния
  л L чернильный регистр

В PDP-8 использовались идеи нескольких 12-битных предшественников, таких как LINC, разработанный У.А. Кларком и К.Э. Молнаром , вдохновленными Сеймура Крея миникомпьютером CDC 160 . [ 2 ] [ 14 ]

PDP-8/e в Музее живых компьютеров .

PDP-8 использует 12 бит для размера слова и арифметических операций (для целых чисел без знака от 0 до 4095 или целых чисел со знаком от -2048 до +2047). Однако программное обеспечение может выполнять арифметические операции с множественной точностью . был доступен интерпретатор с плавающей запятой Например, для операций , который использует 36-битное представление с плавающей запятой с мантиссой из двух слов (24 бита) (мантиссой) и экспонентой из одного слова. [ 15 ] С учетом ограничений скорости и памяти PDP-8 может выполнять вычисления аналогично более дорогим современным электронным компьютерам, таким как IBM 1130 и различным моделям IBM System/360 , но при этом его проще взаимодействовать с внешними устройствами.

Адресное пространство памяти также составляет 12 бит, поэтому базовая конфигурация PDP-8 имеет оперативной памяти. 4096 (2 бита) 12 ) двенадцатибитные слова, или 6 КБ в современных терминах. Дополнительный блок расширения памяти может переключать банки памяти с помощью инструкций IOT. Память представляет собой память на магнитных сердечниках с временем цикла 1,5 микросекунды (0,667 МГц ), так что типичная двухтактная инструкция обращения к памяти (Fetch, Execute) выполняется со скоростью 0,333 MIPS . Карманная справочная карта 1974 года для PDP-8/E дает базовое время инструкции 1,2 микросекунды или 2,6 микросекунды для инструкций, обращающихся к памяти.

PDP-8 был частично разработан для поддержки современных телекоммуникаций и текстовых сообщений. В то время широко использовались шестибитные коды символов , а двенадцатибитные слова PDP-8 могут эффективно хранить два таких символа. Кроме того, шестибитный код телетайпа, называемый кодом телетайпа или кодом TTS, широко использовался службами новостей, и одним из первых приложений для PDP-8 был набор текста с использованием этого кода. [ 16 ]

Инструкции PDP-8 имеют трехбитный код операции, поэтому инструкций всего восемь. Программист может использовать множество дополнительных мнемоник инструкций, которые ассемблер преобразует в конкретные инструкции OPR или IOT. PDP-8 имеет только три видимых программисту регистра : 12-битный аккумулятор (AC), программный счетчик (PC) и флаг переноса, называемый «регистр связи» (L). Дополнительные регистры, невидимые программисту, — это регистр буфера памяти и регистр адреса памяти . Чтобы сэкономить деньги, они служат нескольким целям на разных этапах операционного цикла. Например, регистр буфера памяти предоставляет арифметические операнды, является частью регистра команд и хранит данные для перезаписи основной памяти , которые стираются при чтении.

Для ввода и вывода PDP-8 имеет одно прерывание, совместно используемое всеми устройствами, шину ввода-вывода, к которой обращаются инструкции ввода-вывода, и канал прямого доступа к памяти (DMA). Программируемая шина ввода-вывода обычно работает с периферийными устройствами с низкой и средней скоростью, такими как принтеры , телетайпы , перфораторы и считыватели бумажной ленты , в то время как DMA используется для экранов электронно-лучевой трубки со световым пером , аналого-цифровых преобразователей , цифровых Аналоговые преобразователи , ленточные накопители и дисководы .

обслуживаются более дорогими триггерными регистрами. Чтобы сэкономить деньги, в конструкции используется недорогая основная память для многих целей, которые в других компьютерах [ 17 ] такие как вспомогательные счетчики и связь с подпрограммами.

В базовых моделях используется программное обеспечение для умножения и деления. Для более быстрого выполнения математических вычислений расширенный арифметический элемент (EAE) предоставляет инструкции умножения и деления с помощью дополнительного регистра — регистра множителя/частного (MQ). EAE был опцией оригинального PDP-8. [ 18 ] 8/я, [ 19 ] и 8/E, но он является неотъемлемой частью микропроцессора Intersil 6100 .

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

Из-за своей простоты ранние модели PDP-8 были дешевле, чем большинство других коммерчески доступных компьютеров. Однако они использовали дорогостоящие методы производства, часто используемые для прототипов. Они использовали тысячи очень маленьких стандартизированных логических модулей с золотыми разъемами, объединенных дорогой сложной объединительной платой с проволочной обмоткой в ​​большом шкафу.

В более поздней модели 8/S, представленной в августе 1966 г., [ 8 ] два разных логических напряжения увеличили эффективность недорогой диодно -транзисторной логики . [ 20 ] 8/S также уменьшил количество логических вентилей за счет использования последовательного канала данных шириной в один бит для выполнения арифметических операций. ЦП PDP-8/S имеет всего около 519 логических элементов . Для сравнения, небольшие микроконтроллеры (по состоянию на 2008 год) обычно имеют 15 000 и более. Уменьшение количества электроники позволило сделать корпус гораздо меньшего размера, примерно с хлебницу. 8/S был разработан Солом Динманом. [ 21 ]

Еще более поздняя модель PDP-8/E представляет собой более крупный и производительный компьютер, но в дальнейшем модернизированный для большей выгоды. Он использует более быструю транзисторно-транзисторную логику в интегральных схемах. Основная память была переработана. Это позволяет осуществлять расширение с меньшими затратами, поскольку в более ранних моделях используется OMNIBUS вместо проводной объединительной платы. (Личный отчет о разработке PDP-8/E можно прочитать на Wiki по истории техники и технологий. [ 22 ] )

Передняя панель PDP-8/S
Передняя панель PDP-8/L
Передняя панель PDP-8/I
Передняя панель PDP-8/E
Передняя панель PDP-8/F
Передняя панель PDP-8/A 400

Общий объем продаж семейства PDP-8 оценивается более чем в 300 000 машин. [ 23 ] Были изготовлены следующие модели:

Обзор моделей PDP-8 [ 24 ]
Модель Описание Год Цена Количество произведено Масса
ПДП-8 Полудискретные компоненты. Использовал некоторые гибридные микросхемы . ДТЛ . 1965 $18,000 1450 250 фунтов (113 кг) [ 25 ]
ЛИНК-8 Может запускать код LINC или PDP-8. 1966 $38,500 142
ПДП-8/С Более дешевая серийная версия PDP-8. 1966 $10,000 1024 84 фунта (38 кг) [ 26 ]
ПДП-8/И Первый PDP-8, сделанный на стандартных TTL. микросхемах 1968 $12,800 3698 250 фунтов (110 кг) [ 27 ]
ПДП-8/Л Более дешевый аналог PDP-8/I. 1968 $8,500 3902 80 фунтов (36 кг) [ 28 ]
ПДП-12 PDP-8/I с поддержкой инструкций LINC (заменил LINC-8) 1969 $27,900 755
ПДП-8/Е Меньше плат большего размера для повышения цены и эффективности 1970 $6,500 90 фунтов (41 кг) (типично) [ 29 ]
ПДП-8/Ф Более дешевый аналог PDP-8/E 1972 57 фунтов (26 кг) (типично) [ 30 ]
ПДП-8/М OEM PDP-8/F с измененной передней панелью 1972 $5,000 [ 31 ] 57 фунтов (26 кг) (типично) [ 32 ]
ПДП-8/А Логика LSI позволила ЦП разместиться на одной плате. 1974 $1,835
Интерсил 6100 Однокристальный PDP-8-совместимый микропроцессор (используется в VT78 ) 1975 [ 33 ] [ 34 ]
Харрис 6120 Однокристальный CMOS-микропроцессор, совместимый с PDP-8 (используется в текстовых процессорах DECmate ) 1976 [ 34 ]

Современные реализации

[ редактировать ]

PDP-8 легко эмулируется , поскольку его набор команд намного проще, чем у современных архитектур. Энтузиасты создали целые PDP-8, используя отдельные FPGA устройства .

В Интернете доступно несколько программных моделей PDP-8, а также с открытым исходным кодом аппаратные повторные реализации . Лучшие из них корректно работают с операционными системами и диагностическим программным обеспечением DEC. Программное моделирование часто моделирует PDP-8 последних моделей со всеми возможными периферийными устройствами. Даже они используют лишь небольшую часть мощности современного персонального компьютера.

Одна из первых коммерческих версий виртуальной машины PDP-8/S работала на Kaypro 386 (компьютер на базе 80386) и была написана на компьютерном языке C (до завершения разработки стандарта ANSI-C) и ассемблере Дэвида Бичера. из Денвера, Колорадо. Он заменил вышедший из строя компьютер PDP-8/S, который управлял машиной для подачи топлива на реакторе № 85 в Платтвилле, штат Колорадо, на электростанции, работающей на ядерном топливе, Форт. Святой Врайн. Она прошла проверку Rockwell International и безупречно работала в течение 2,5 лет во время эксплуатации машины для обращения с топливом, когда она использовалась для удаления топлива из активной зоны реактора и вывода станции из эксплуатации. Он включал в себя имитацию загрузчика бумажной ленты и переднюю панель.

Ввод/вывод

[ редактировать ]

Системы ввода-вывода претерпели огромные изменения в эпоху PDP-8. Ранние модели PDP-8 использовали интерфейс на передней панели , устройство чтения бумажной ленты и телетайпный принтер с дополнительным дыроколом для бумажной ленты. системы ввода-вывода, такие как магнитная лента , RS-232 и с токовой петлей тупые терминалы , считыватели перфокарт и диски с фиксированной головкой Со временем были добавлены . К концу эпохи PDP-8 гибкие диски и с картриджами дисководы с подвижной головкой стали популярными устройствами ввода-вывода. Современные энтузиасты создали стандартные ПК в стиле адаптеры жестких дисков IDE для реальных и смоделированных компьютеров PDP-8.

Поддерживаются несколько типов ввода-вывода:

  • Выделенные слоты на объединительной плате для контроллеров ввода-вывода
  • «Отрицательная» шина ввода-вывода (с использованием сигнализации отрицательного напряжения)
  • «Положительная» шина ввода-вывода (та же архитектура с использованием сигнализации TTL)
  • Омнибус (объединительная плата невыделенных слотов системной шины ), представленный в PDP-8/E. (Подробности описаны в указанной ниже статье IEEE.)

Поддерживается упрощенная и недорогая форма прямого доступа к памяти, называемая «трехцикловым прерыванием данных». для этого требуется помощь процессора. Метод «разрыва данных» перемещает часть общей логики, необходимой для реализации ввода-вывода DMA от каждого устройства ввода-вывода, в одну общую копию логики внутри процессора. «Разрыв данных» возлагает на процессор ответственность за поддержание адреса DMA и регистров количества слов. В трех последовательных циклах памяти процессор обновляет количество слов, обновляет адрес передачи и сохраняет или извлекает фактическое слово данных ввода-вывода.

Прерывание данных за один цикл эффективно утрояет скорость передачи DMA, поскольку необходимо передавать в основную память и из нее только целевые данные. Однако устройствам ввода-вывода требуется больше электронной логики для управления собственным количеством слов и регистрами адреса передачи. К тому времени, когда был представлен PDP-8/E, электронная логика стала менее дорогой, а «разрыв данных за один цикл» стал более популярным.

Возможности программирования

[ редактировать ]

Ранние системы PDP-8 поставлялись без предустановленного программного обеспечения; каждый раз, когда PDP-8 включался, пользователь вводил инструкции вручную, используя группу из 12 тумблеров. Обычно эти инструкции представляли собой загрузчик начальной загрузки для чтения программы с устройства чтения бумажной ленты. Затем можно было бы продолжить разработку программы, используя ввод и вывод бумажной ленты.

Стали доступны бумажные версии ряда языков программирования, включая FOCAL от DEC. интерпретатор [ 35 ] а также компилятор и среда выполнения 4K FORTRAN .

К концу эпохи PDP-8 такие операционные системы, как OS/8 и COS-310, позволяли использовать традиционный строкового режима редактор командной строки и систему разработки компиляторов с использованием таких языков, как ассемблер PAL-III, FORTRAN, BASIC и DIBOL. .

Были доступны довольно современная и продвинутая операционная система реального времени (RTOS) и с вытесняющей многозадачностью многопользовательские системы : была доступна система реального времени (RTS-8), а также многопользовательские коммерческие системы (COS-300 и COS-310) и специализированная однопользовательская система обработки текстов (WPS-8).

Также была доступна система времени разделения TSS-8 . TSS-8 позволяет нескольким пользователям входить в систему через терминалы со скоростью 110 бод, а также редактировать, компилировать и отлаживать программы. Языки включают специальную версию BASIC, подмножество FORTRAN, подобное FORTRAN-1 (без написанных пользователем подпрограмм или функций), подмножество ALGOL , FOCAL, и ассемблер под названием PAL-D.

Значительное количество пожертвованного пользователями программного обеспечения для PDP-8 было доступно в DECUS , Сообществе пользователей Digital Equipment Corporation, и часто сопровождалось полными списками исходных кодов и документацией.

Набор инструкций

[ редактировать ]

Три старших бита 12-битного командного слова (обозначенные битами от 0 до 2) представляют собой код операции. Для шести операций, относящихся к памяти, биты с 5 по 11 предоставляют семибитный адрес. Бит 4, если он установлен, указывает на необходимость завершения адреса с использованием пяти старших бит регистра счетчика программ (PC), что означает, что адресуемая ячейка находится в пределах тех же 128 слов, что и инструкция. Если бит 4 сброшен, используются нули, поэтому адресная ячейка находится в пределах первых 128 слов памяти. Бит 3 указывает косвенность; если установлено, адрес, полученный, как описано выше, указывает на 12-битное значение в памяти, которое дает фактический эффективный адрес для инструкции; таким образом, операнды могут находиться где угодно в памяти за счет дополнительного слова. Инструкция JMP не оперирует со словом памяти, за исключением случаев, когда указана косвенная адресация, но имеет те же битовые поля.

0 2 3 4 5 11
Операция я С Компенсировать
Страницы памяти

Такое использование командного слова делит память из 4096 слов на страницы по 128 слов ; бит 4 инструкции выбирает либо текущую страницу, либо страницу 0 (адреса 0000–0177 в восьмеричном формате ). Память на странице 0 имеет большое значение, поскольку к размещенным здесь переменным можно обращаться непосредственно с любой страницы. (Более того, по адресу 0000 должна запускаться любая процедура обработки прерывания, а адреса 0010–0017 обладают особым свойством автоматического приращения перед любой косвенной ссылкой через них.)

Стандартный ассемблер помещает постоянные значения для арифметических операций на текущую страницу. Аналогично, переходы между страницами и вызовы подпрограмм используют косвенный адрес на текущей странице.

Было важно написать подпрограммы, умещающиеся на страницах из 128 слов, или организовать подпрограммы так, чтобы минимизировать переходы между страницами, поскольку ссылки и переходы за пределы текущей страницы требуют дополнительного слова. Следовательно, много времени было потрачено на умное сохранение одного или нескольких слов. Программисты намеренно размещали код в конце страницы, чтобы обеспечить свободный переход к следующей странице по мере увеличения ПК.

Основные инструкции

[ редактировать ]
000 – И – И операнд памяти с AC.
001 – TAD – дополнение до двух добавляет операнд памяти к <L,AC> ( 12-битное значение со знаком (AC) с переносом в L).
010 — ISZ — увеличить операнд памяти и пропустить следующую инструкцию, если результат равен нулю.
011 – DCA – внесение AC в операнд памяти и очистка AC.
100 – JMS – JuMp to Subroutine (сохранение адреса возврата в первом слове подпрограммы!).
101 – ЮМП – ЮМП.
110 – IOT – Передача ввода/вывода (см. ниже).
111 – OPR – микрокодированные операции (см. ниже).

Инструкции IOT (передача ввода-вывода)

[ редактировать ]

Процессор PDP-8 определял несколько инструкций IOT, а просто обеспечивал основу. Большинство инструкций IOT определялись отдельными устройствами ввода-вывода.

0 2 3 8 9 11
6 = Интернет вещей Устройство Функция
Устройство

Биты с 3 по 8 инструкции IOT выбирают устройство ввода-вывода. Некоторые из этих адресов устройств стандартизированы по соглашению:

  • 00 обрабатывается процессором и не отправляется никакому устройству ввода-вывода (см. ниже).
  • 01 обычно является высокоскоростным устройством чтения бумажной ленты.
  • 02 — высокоскоростной перфоратор для бумажной ленты.
  • 03 — клавиатура консоли (и любое связанное с ней низкоскоростное устройство чтения бумажной ленты).
  • 04 — консольный принтер (и любой связанный с ним низкоскоростной перфоратор для бумажной ленты).

Инструкции для устройства 0 влияют на процессор в целом. Например, ION (6001) разрешает обработку прерываний, а IOFF (6002) отключает ее.

Функция

Биты с 9 по 11 инструкции IOT выбирают функцию(и), которую выполняет устройство. Простые устройства (такие как устройство чтения бумажной ленты и перфоратор, а также консольная клавиатура и принтер) используют биты стандартным образом:

  • Бит 11 заставляет процессор пропускать следующую инструкцию, если устройство ввода-вывода готово.
  • Бит 10 очищает AC.
  • Бит 9 перемещает слово между AC и устройством, инициирует еще одну передачу ввода-вывода и очищает флаг «готовности» устройства.

Эти операции выполняются в четко определенном порядке, который дает полезные результаты, если установлено более одного бита.

Более сложные устройства, такие как дисководы, используют эти 3 бита в зависимости от устройства. Обычно устройство декодирует 3 бита, чтобы получить 8 возможных функциональных кодов.

ОПР (OPeRate)

[ редактировать ]

Многие операции выполняются с использованием OPR, включая большинство условных операторов. OPR не обращается к ячейке памяти; условное выполнение достигается путем условного пропуска следующей инструкции, которая обычно является JMP.

Говорят, что инструкция OPR «микрокодирована». Это не означало то, что означает это слово сегодня (что программа более низкого уровня извлекала и интерпретировала инструкцию OPR), но означало, что каждый бит командного слова определяет определенное действие, и программист мог выполнить несколько действий за один командный цикл. установив несколько битов. При использовании программист может написать несколько мнемоник инструкций рядом друг с другом, а ассемблер объединяет их с помощью OR для создания фактического командного слова. Многие устройства ввода-вывода поддерживают «микрокодированные» инструкции IOT.

Микрокодированные действия происходят в четко определенной последовательности, призванной максимизировать полезность многих комбинаций.

Инструкции OPR разделены на группы. Биты 3, 8 и 11 идентифицируют группу инструкции OPR, поэтому невозможно объединить микрокодированные действия из разных групп.

Одно действие (и соответствующий бит), одинаковое во всех группах, — это бит 4, CLA. Если установлено, аккумулятор очищается.

        00 01 02 03 04 05 06 07 08 09 10 11
        ___________________________________
       | 1| 1| 1| 0|  |  |  |  |  |  |  |  |
       |__|__|__|__|__|__|__|__|__|__|__|__|
                   |CLA   CMA   RAR   BSW
                       CLL   CML   RAL   IAC

    Execution order  1  1  2  2  4  4  4  3
7200 — CLA — Очистить аккумулятор
7100 — CLL — Очистить бит L
7040 – CMA – Единичный аккумулятор
7020 — CML — Дополняющий бит L
7001 — IAC — Приращение <L,AC>
7010 — RAR — Поворот <L,AC> вправо
7004 – RAL – Поворот <L,AC> влево
7012 — RTR — повернуть <L,AC> вправо дважды
7006 — RTL — повернуть <L,AC> влево дважды
7002 – BSW – замена 6-битных «байтов» (PDP 8/e и выше)

В большинстве случаев операции упорядочены таким образом, чтобы их можно было комбинировать наиболее полезными способами. Например, сочетание CLA (CLear Accumulator), CLL (CLear Link) и IAC (Increment ACcumulator) сначала очищает AC и Link, затем увеличивает аккумулятор, оставляя его равным 1. Добавление RAL к смеси (так что CLA CLL IAC RAL) заставляет аккумулятор очищаться, увеличиваться, а затем поворачиваться влево, оставляя его равным 2. Таким образом, небольшие целочисленные константы помещались в аккумулятор с помощью одной инструкции.

Комбинация CMA IAC, которую ассемблер позволяет сокращать до CIA, дает арифметическую обратную величину AC: отрицание с дополнением до двух. Поскольку инструкции вычитания нет, только операция сложения до двух (TAD), вычисляющая разницу двух операндов, требует сначала отрицания вычитаемого.

Команда OPR группы 1, в которой не установлен ни один из микропрограммных битов, не выполняет никаких действий. Программист может написать NOP (Нет операции) для сборки такой инструкции.

Группа 2 или группа

[ редактировать ]
         00 01 02 03 04 05 06 07 08 09 10 11
        ___________________________________
       | 1| 1| 1| 1|  |  |  |  | 0|  |  | 0|
       |__|__|__|__|__|__|__|__|__|__|__|__|
                   |CLA   SZA      OSR
                       SMA   SNL      HLT

                     2  1  1  1     3  3
7600 — CLA — Прозрачный AC
7500 – SMA – Пропустить AC < 0 (или группу)
7440 — СЗА — Пропустить АС = 0 (или группу)
7420 – SNL – Пропустить L ≠ 0 (или группу)
7404 — OSR — «или» с переменным током логические переключатели передней панели
7402 — ЛДС — Стоп

Три бита (CLA, OSR, HLT) выполняют действия, если они установлены. Еще три бита (SMA, SZA, SNL) кодируют условия пропуска; пропуск выполняется, если какое-либо из указанных условий истинно. Например, «SMA SZA», код операции 7540, пропускается, если AC ≤ 0.

Команда OPR группы 2, в которой не установлен ни один из микропрограммных битов, является еще одной командой No-Op.

Группа 2 и Группа

[ редактировать ]
         00 01 02 03 04 05 06 07 08 09 10 11
        ___________________________________
       | 1| 1| 1| 1|  |  |  |  | 1|  |  | 0|
       |__|__|__|__|__|__|__|__|__|__|__|__|
                   |CLA   SNA      OSR
                       SPA   SZL      HLT

                     2  1  1  1     3  2
7410 — СКП — Пропустить безусловно
7610 — CLA — Прозрачный AC
7510 – SPA – Пропустить AC ≥ 0 (и группу)
7450 – SNA – Пропустить AC ≠ 0 (и группу)
7430 — SZL — Пропустить L = 0 (и группу)

Когда бит 8 установлен, условие пропуска группы 2 инвертируется; пропуск не выполняется, если какое-либо из условий или групп верно. По законам Де Моргана это означает, что пропуск выполняется, если все указанные инвертированные условия истинны. Например, «SPA SNA», код операции 7550, пропускает, если AC > 0. Если ни один из битов 5–7 не установлен, то пропуск является безусловным.

На действия (CLA, OSR, HLT) бит 8 не влияет.

Неиспользуемые битовые комбинации OPR определяются как третья группа микропрограммных действий, в основном влияющих на регистр MQ (множитель/частное). Регистр MQ и инструкции расширенного арифметического элемента (EAE) являются дополнительными и существуют только при покупке опции EAE. [ 36 ]

        00 01 02 03 04 05 06 07 08 09 10 11
        ___________________________________
       | 1| 1| 1| 1|  |  |  |  |  |  |  | 1|
       |__|__|__|__|__|__|__|__|__|__|__|__|
                   |CLA   SCA   \_    _/
                   |   MQA   MQL  CODE

                     1* 2  2  2     3
7601 – CLA – Прозрачный AC
7501 – MQA – Коэффициент множителя с AC (логический или MQ в AC)
7441 — SCA — Счетчик шагов нагрузки в переменный ток
7421 – MQL – Коэффициент нагрузки множителя (перенос AC в MQ, очистка AC)
7621 — CAM — CLA + MQL очищает как AC, так и MQ.

Обычно CLA и MQA объединялись для передачи MQ в AC. Другая полезная комбинация — MQA и MQL для обмена двумя регистрами.

Три бита определяют выполняемую команду умножения/деления:

7401 — Нет операции
7403 — SCL — Загрузка счетчика шагов (следует сразу слово, PDP-8/I и выше)
7405 — ОЧЕНЬ — Умножить
7407 — DVI — Разделить
7411 — НМИ — Нормализовать
7413 – SHL – Сдвиг влево (следует сразу слово)
7415 — ASR — Арифметический сдвиг вправо
7417 — LSR — Логический сдвиг вправо

Управление памятью

[ редактировать ]
Основной стек памяти PDP-8/I
Один из трех взаимосвязанных модулей, составляющих основную плоскость памяти PDP-8.
Один из трех взаимосвязанных модулей, составляющих основную плоскость памяти PDP-8. Это средний из трех элементов, содержащий массив настоящих ферритовых сердечников.
Один из трех взаимосвязанных модулей, составляющих основную плоскость памяти PDP-8.

12-битное слово может иметь 4096 различных значений, и это максимальное количество слов, к которым исходный PDP-8 может обращаться косвенно через указатель слова. 4096 12-битных слов представляют собой 6144 байта в современной терминологии или 6 КБ. Поскольку программы стали более сложными и цена на память упала, стало желательно расширить этот предел.

Чтобы сохранить совместимость с ранее существовавшими программами, новое оборудование, выходящее за рамки исходной конструкции, добавляло старшие биты к эффективным адресам, сгенерированным программой. Контроллер расширения памяти расширяет адресную память в 8 раз, до общего объема 32 768 слов. Это расширение считалось достаточным, поскольку, поскольку основная память тогда стоила около 50 центов за слово, полные 32 КБ памяти равнялись стоимости ЦП.

Каждые 4 КБ памяти называются полем. Контроллер расширения памяти содержит два трехбитных регистра: DF (поле данных) и IF (поле инструкций). Эти регистры определяют поле для каждой ссылки на память ЦП, что в общей сложности составляет 15 бит адреса. Регистр IF определяет поле для выборки команд и прямых обращений к памяти; регистр DF определяет поле для косвенного доступа к данным. Программа, работающая в одном поле, может ссылаться на данные в том же поле посредством прямой адресации и ссылаться на данные в другом поле посредством косвенной адресации.

Набор инструкций ввода-вывода в диапазоне от 6200 до 6277 обрабатывается контроллером расширения памяти и предоставляет доступ к регистрам DF и IF. Инструкция 62X1 (CDF, ​​Change Data Field) устанавливает поле данных в X. Аналогично 62X2 (CIF) устанавливает поле инструкции, а 62X3 устанавливает оба. Ранее существовавшие программы никогда не выполняли CIF или CDF; регистры DF и IF указывали бы на одно и то же поле, единственное поле, которым были ограничены эти программы. Действие инструкции CIF было отложено до следующей инструкции JMP или JMS, чтобы выполнение CIF не вызывало скачка.

Программам с несколькими полями было сложнее работать с границами полей и регистрами DF и IF, чем если бы они могли просто генерировать 15-битные адреса, но конструкция обеспечивала обратную совместимость и согласовывалась с 12-битной архитектурой. используется во всей PDP-8. Сравните более поздний процессор Intel 8086 , чьи 16-битные адреса памяти расширяются до 20 бит путем объединения их с содержимым указанного или подразумеваемого сегментного регистра .

Схема расширенной памяти позволяет существующим программам обрабатывать увеличенную память с минимальными изменениями. Например, 4K FOCAL обычно содержал около 3 КБ кода и только 1 КБ оставался для пользовательских программ и данных. С помощью нескольких патчей FOCAL сможет использовать второе поле 4K для пользовательских программ и данных. Более того, отдельным пользователям можно было бы выделить дополнительные поля 4K, превратив 4K FOCAL в многопользовательскую систему с разделением времени.

Виртуализация

В моделях PDP-8/E и более поздних моделях контроллер расширения памяти был усовершенствован для обеспечения виртуализации машин. Программа, написанная для использования всех ресурсов PDP-8, может сосуществовать с другими такими же программами на том же PDP-8 под управлением менеджера виртуальных машин. Менеджер может заставить все инструкции ввода-вывода (включая те, которые выполняются на контроллере расширения памяти) вызывать ловушку (прерывание, обрабатываемое менеджером). Таким образом, менеджер может отображать ссылки на память, отображать поля данных или инструкций и перенаправлять ввод-вывод на разные устройства. Каждая оригинальная программа имеет полный доступ к «виртуальной машине», предоставляемой менеджером.

Новые инструкции ввода-вывода для контроллера расширения памяти извлекают текущие значения полей данных и инструкций, позволяя программному обеспечению сохранять и восстанавливать большую часть состояния машины через ловушку. Однако программа не может определить, находится ли ЦП в процессе отсрочки действия инструкции CIF (выполнил ли он CIF и еще не выполнил соответствующую инструкцию перехода). Менеджер должен включать полный эмулятор PDP-8 (не сложно для машины с 8 командами). Всякий раз, когда инструкция CIF перехватывается диспетчером, он должен эмулировать инструкции до следующего перехода. К счастью, поскольку переход обычно является следующей инструкцией после CIF, такая эмуляция не сильно замедляет работу программ, но является хорошим обходным решением, казалось бы, небольшого недостатка конструкции. [ нужна ссылка ]

Ко времени появления PDP-8/A цены на память упали настолько, что стало желательно иметь память, превышающую 32 КБ. В 8/A добавлен новый набор инструкций для работы с более чем восемью полями памяти. Номер поля теперь можно было поместить в AC, а не жестко запрограммировать в инструкции. Однако к этому времени PDP-8 находился в упадке, поэтому для использования этих новых функций было изменено очень мало стандартного программного обеспечения.

В следующих примерах показан код на языке ассемблера PDP-8 , который можно было бы написать для ассемблера PAL-III.

Сравнение двух чисел

[ редактировать ]

Следующий фрагмент кода показывает, что нужно просто для сравнения двух чисел:

    /Compare numbers in memory at OPD1 and OPD2
            CLA CLL     /Must start with 0 in AC and link
            TAD OPD1    /Load first operand into AC (by adding it to 0); link is still clear
            CIA         /Complement, then increment AC, negating it
            TAD OPD2    /AC now has OPD2-OPD1; if OPD2≥OPD1, sum overflows and link is set
            SZL         /Skip if link is clear
            JMP OP2GT   /Jump somewhere in the case that OPD2≥OPD1;
                        /Otherwise, fall through to code below.

Как показано, большая часть текста типичной программы PDP-8 фокусируется не на задуманном автором алгоритме, а на механике низкого уровня. Дополнительная проблема с читаемостью заключается в том, что в условных переходах, подобных показанному выше, условная инструкция (которая пропускает JMP) выделяет противоположное интересующему условию.

Строковый вывод

[ редактировать ]

Эта полная программа на языке ассемблера PDP-8 выводит «Hello, world!» к телетайпу.

    *10                   / Set current assembly origin to address 10,
    STPTR,    STRNG-1     / An auto-increment register (one of eight at 10-17)

    *200                  / Set current assembly origin to program text area
    HELLO,  CLA CLL       / Clear AC and Link again (needed when we loop back from tls)
            TAD I Z STPTR / Get next character, indirect via PRE-auto-increment address from the zero page
            SNA           / Skip if non-zero (not end of string)
            HLT           / Else halt on zero (end of string)
            TLS           / Output the character in the AC to the teleprinter
            TSF           / Skip if teleprinter ready for character
            JMP .-1       / Else jump back and try again
            JMP HELLO     / Jump back for the next character

    STRNG,  310           / H
            345           / e
            354           / l
            354           / l
            357           / o
            254           /,
            240           / (space)
            367           / w
            357           / o
            362           / r
            354           / l
            344           / d
            241           / !
            0             / End of string
    $HELLO                /DEFAULT TERMINATOR

Подпрограммы

[ редактировать ]

Процессор PDP-8 не реализует стек для хранения регистров или другого контекста при подпрограммы вызове или возникновении прерывания . (Стек может быть реализован программно, как показано в следующем разделе.) Вместо этого инструкция JMS просто сохраняет обновленный ПК (указывая за JMS на обратный адрес) по эффективному адресу и переходит к эффективному адресу плюс один. Подпрограмма вернулась к вызывающей стороне, используя косвенную инструкцию JMP, которая обращается к первому слову подпрограммы.

Например, вот «Привет, Мир!» переписан для использования подпрограммы. Когда инструкция JMS переходит к подпрограмме, она изменяет 0, закодированный в позиции OUT1:

    *10                     / Set current assembly origin to address 10,
    STPTR,  STRNG-1         / An auto-increment register (one of eight at 10-17)

    *200                    / Set assembly origin (load address)
    LOOP,   TAD I STPTR     / Pre-increment mem location 10, fetch indirect to get the next character of our message
            SNA             / Skip on non-zero AC
            HLT             / Else halt at end of message
            JMS OUT1        / Write out one character
            JMP LOOP        / And loop back for more
    OUT1,   0               / Will be replaced by caller's updated PC
            TSF             / Skip if printer ready
            JMP .-1         / Wait for flag
            TLS             / Send the character in the AC
            CLA CLL         / Clear AC and Link for next pass
            JMP I OUT1      / Return to caller
    STRNG, "H               / A well-known message
           "e               /
           "l               / NOTE:
           "l               /
           "o               /   Strings in PAL-8 and PAL-III were "sixbit"
           ",               /   To use ASCII, we spell it out, character by character
           "                /
           "w               /
           "o               /
           "r               /
           "l               /
           "d               /
           "!               /
           015              /
           012              /
           0                / Mark the end of our null-terminated string (.ASCIZ hadn't been invented yet!)

Тот факт, что инструкция JMS использует это слово непосредственно перед кодом подпрограммы для ввода адреса возврата , предотвращает повторный вход и рекурсию без дополнительной работы со стороны программиста. Это также затрудняет использование ПЗУ с PDP-8, поскольку хранилище адреса возврата для чтения и записи смешивается с хранилищем кода только для чтения в адресном пространстве. Программы, предназначенные для размещения в ПЗУ, решают эту проблему несколькими способами:

  • Они копируют себя в память для чтения и записи перед выполнением или
  • Они помещаются в специальные карты ПЗУ, которые обеспечивают несколько слов памяти для чтения/записи, доступ к которым осуществляется косвенно посредством использования тринадцатого бита флага в каждом слове ПЗУ.
  • Они избегают использования подпрограмм; или используйте код, подобный следующему, вместо инструкции JMS, чтобы поместить адрес возврата в память для чтения и записи:
    JUMPL, DCA TEMP         / Deposit the accumulator in some temporary location
           TAD JUMPL+3      / Load the return address into the accumulator: hard coded
           JMP SUBRO        / Go to the subroutine, and have it handle jumping back (to JUMPL+3)

Использование инструкции JMS затрудняет отладку. Если программист совершает ошибку, вызывая саму подпрограмму напрямую или через промежуточную подпрограмму, то адрес возврата внешнего вызова уничтожается адресом возврата последующего вызова, что приводит к бесконечному циклу. Если один модуль закодирован с неправильным или устаревшим адресом подпрограммы, он не просто не сможет выполнить всю последовательность кода подпрограммы, но и может изменить слово кода подпрограммы, введя адрес возврата, который процессор может интерпретировать как инструкцию во время последующего корректного вызова подпрограммы. Оба типа ошибок могут проявиться во время выполнения правильно написанного кода.

Программный стек

[ редактировать ]

Хотя PDP-8 не имеет аппаратного стека , стеки можно реализовать программно. [ 37 ] Вот примеры подпрограмм PUSH и POP, упрощенные для исключения таких проблем, как проверка переполнения и опустошения стека:

    *100              /make routines accessible for next example
    PUSH, 0
          DCA DATA
          CLA CMA     / -1
          TAD SP
          DCA SP
          TAD DATA
          DCA I SP
          JMP I PUSH     /Return

    POP,  0
          CLA CLL
          TAD I SP
          ISZ SP
          JMP I POP

    DATA, 0
    SP, 0

А вот «Hello World» с реализованным этим «стеком» и подпрограммой «OUT»:

    *200
    MAIN,  CLA CLL         /Set the message pointer
           TAD (MESSG      /To the beginning of the message (literal)
           DCA SP

    LOOP,  JMS POP
           SNA             /Stop execution if zero
           HLT
           JMS OUT         /Otherwise, output a character
           JMP LOOP

    MESSG, "H
           "e
           "l
           "l
           "o
           ",
           "
           "w
           "o
           "r
           "l
           "d
           "!
           015
           012
           0

    OUT,    0               / Will be replaced by caller's updated PC
            TSF             / Skip if printer ready
            JMP .-1         / Wait for flag
            TLS             / Send the character in the AC
            CLA CLL         / Clear AC and Link for next pass
            JMP I OUT       / Return to caller

Связанный список

[ редактировать ]

Другая возможная подпрограмма для PDP-8 — это связанный список.

     GETN, 0     /Gets the number pointed to and moves the pointer
     CLA CLL     /Clear accumulator
     TAD I PTR   /Gets the number pointed to
     DCA TEMP    /Save current value
     ISZ PTR     /Increment pointer
     TAD I PTR   /Get next address
     DCA PTR     /Put in pointer
     JMP I GETN  /return
     PTR,  0
     TEMP, 0

Прерывания

[ редактировать ]

имеется одна линия прерывания На шине ввода-вывода PDP-8 . Процессор обрабатывает любое прерывание, запрещая дальнейшие прерывания и выполняя команду JMS в позицию 0000. Поскольку сложно писать реентерабельные подпрограммы, сложно вкладывать прерывания, и обычно этого не делают; каждое прерывание выполняется до завершения и повторно разрешает прерывания непосредственно перед выполнением JMP I 0 инструкция, которая возвращается из прерывания.

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

Популярный в 1980-х годах учебник по инженерному делу « Искусство цифрового дизайна» Дэвида Винкеля и Франклина Проссера содержит пример задачи, охватывающий несколько глав, в которых авторы демонстрируют процесс проектирования компьютера, совместимого с PDP-8/I. Объясняется функция каждого компонента. Хотя это не серийный проект, поскольку в нем используются более современные компоненты SSI и MSI и твердотельная память, а не основная память, упражнение дает подробное описание работы компьютера.

Нелицензионные клоны

[ редактировать ]

В СССР выпускались миникомпьютеры «Саратов-1» и «Саратов-2», клонировавшие PDP-8 и PDP-8/E соответственно.

Был мини-компьютер ИЗОТ-0310, выпускавшийся в Болгарии в 70-80-х годах, который клонировал PDP-8L.

  1. ^ «Ранние вычисления в НИЗ — Управление истории НИЗ и Стеттенский музей» . History.nih.gov . Проверено 17 июля 2024 г.
  2. ^ Jump up to: а б «Краткий обзор моделей и опций PDP-8» . Раздел - Что такое PDP-5.
  3. ^ Jump up to: а б Дуглас В. Джонс . «Корпорация цифрового оборудования PDP-8 — часто задаваемые вопросы» .
  4. ^ 1634–1699: Маккаскер, Джей-Джей (1997). Сколько это в реальных деньгах? Исторический индекс цен для использования в качестве дефлятора денежных ценностей в экономике Соединенных Штатов: Addenda et Corrigenda (PDF) . Американское антикварное общество . 1700–1799: Маккаскер, Джей-Джей (1992). Сколько это в реальных деньгах? Исторический индекс цен для использования в качестве дефлятора денежных ценностей в экономике Соединенных Штатов (PDF) . Американское антикварное общество . 1800 – настоящее время: Федеральный резервный банк Миннеаполиса. «Индекс потребительских цен (оценка) 1800–» . Проверено 29 февраля 2024 г.
  5. ^ Jump up to: а б Шейн, Эдгар Х. (2004). DEC умерла, да здравствует DEC: вечное наследие Digital Equipment Corporation . Сан-Франциско, Калифорния: Издательство Berrett-Koehler. п. 271. ИСБН  1576753050 .
  6. ^ Дуглас В. Джонс. «Корпорация цифрового оборудования PDP-8» .
  7. ^ «ПДП-8 1965» . История Wired . Смитсоновский институт . 16 марта 2012 г. Архивировано из оригинала 17 февраля 2015 г. Проверено 17 февраля 2015 г.
  8. ^ Jump up to: а б «ПДП-8/С №1» . Компьютерный музей Род-Айленда . 18 августа 2020 г. Архивировано из оригинала 26 февраля 2021 г. Проверено 7 мая 2021 г.
  9. ^ Гленн Рифкин; Джордж Харрар (1988). Настоящий предприниматель: история Кена Олсена и Digital Equipment Corporation . Современные книги. ISBN  978-1-55958-022-9 .
  10. ^ Справочник по малому компьютеру, НОВЫЙ PDP 8/I издание (Вперёд) . Корпорация цифрового оборудования . 1968.
  11. ^ «Сравнительный анализ языков» . Журнал ПК . Том. 4, нет. 22. 29 октября 1985. с. 112. Как лучше всего использовать самый ценный компьютерный ресурс современности: время программиста...
  12. ^ фраза, использованная в разделе 1.1 «Введение в центральный процессор (ЦП)» документа 2007 года о микрокомпьютере Texas Instruments. «ЦП TMS320C28x и набор инструкций (версия F)» (PDF) .
  13. ^ Торбен Эгидиус Могенсен (20 августа 2010 г.). Основы проектирования компиляторов (PDF) . п. 1. Еще одним преимуществом использования языка высокого уровня является то, что одну и ту же программу можно скомпилировать на многих разных машинных языках и, следовательно, запустить на многих разных машинах.
  14. ^ К. Гордон Белл ; Джей Си Мадж; Дж. Э. Макнамара (1978). Компьютерная инженерия: взгляд DEC на проектирование аппаратных систем (PDF) . Цифровая пресса . п. 175 . ISBN  0-932376-00-2 .
  15. ^ Справочное руководство для системных программистов с плавающей запятой PDP-8 (PDF) . Корпорация цифрового оборудования. Сентябрь 1969 г. DEC-08-YQYB-D.
  16. ^ «Система набора текста PDP-8» (PDF) . Корпорация цифрового оборудования. 1965.
  17. ^ К. Гордон Белл и др.; Компьютерные структуры, принципы и организация, 1982, глава PDP-8.
  18. ^ «Глава 8: Расширенный арифметический элемент типа 182» . Руководство пользователя PDP-8 . Корпорация цифрового оборудования. 1966. с. 41.
  19. ^ «Глава 4: Описание и работа системы». Введение в программирование (PDF) . Корпорация цифрового оборудования. 1969. стр. 4–22.
  20. ^ Руководство по техническому обслуживанию PDP-8/S . Корпорация цифрового оборудования. 1971.
  21. ^ «ПДП-8/С» . Технология PDP-8 до наступления тысячелетия . Архивировано из оригинала 23 октября 2000 г. Проверено 13 мая 2021 г.
  22. ^ Ремо Дж. Фогельсанг (2013). «Из первых рук: PDP-8/E All Ride» .
  23. ^ «Часто задаваемые вопросы о DEC PDP-8 Дуга Джонса» . homepage.cs.uiowa.edu . Проверено 24 марта 2024 г.
  24. ^ «Краткий обзор моделей и опций PDP-8 (публикуется раз в два месяца)» . www.faqs.org .
  25. ^ «PDP-8 — высокоскоростной цифровой компьютер» (PDF) . 1965. с. 18.
  26. ^ Руководство по техническому обслуживанию PDP-8/S (PDF) (5-е изд.). Октябрь 1970 г. с. 1-2.
  27. ^ «Таблица 11. Установочные данные». Справочник по малому компьютеру (PDF) (изд. 1967–68 гг.). 1968. с. 290 (300).
  28. ^ «Таблица 13-1 Установочные данные». Справочник по малому компьютеру (PDF) (изд. 1970 г.). 1970. с. 277 (291).
  29. ^ «Технические характеристики семейства PDP-8». Брошюра по продажам PDP-8/e/f/m (PDF) . п. 17.
  30. ^ «Технические характеристики семейства PDP-8». Брошюра по продажам PDP-8/e/f/m (PDF) . п. 17.
  31. ^ «Компьютерный музей System Source: PDP-8M» .
  32. ^ «Технические характеристики семейства PDP-8». Брошюра по продажам PDP-8/e/f/m (PDF) . п. 17.
  33. ^ «Взрыв 1975-1976 годов » AntiqueTech» . AntiqueTech.com. 21 апреля 2009 г. Архивировано из оригинала 3 июля 2017 г. Проверено 19 июня 2017 г.
  34. ^ Jump up to: а б Белл, Гордон (1980), Генеалогическое древо компьютеров Digital , (Плакат), Digital Equipment Corporation , получено 19 июня 2017 г.
  35. ^ Руководство по программированию FOCAL для PDP-8, PDP-8/S, PDP-8/I, LAB-8, LINC-8 (PDF) . Корпорация цифрового оборудования. 1968. ДЕКАБРЬ-08-АДЖАБ-Д.
  36. ^ Справочник по малому компьютеру, 1967–1968 гг . Корпорация цифрового оборудования. 1968. стр. 130–136.
  37. ^ Марк Смотерман. «Подпрограммы DEC PDP-8» . 2002.
  • К. Гордон Белл и Аллен Ньюэлл , 1971, Компьютерные структуры: материалы для чтения и примеры , книжная компания McGraw-Hill, Нью-Йорк. Глава 5. DEC PDP-8 , страницы 120–136. С достаточной детализацией, чтобы инженер-электрик мог его построить (если сможет найти детали).
[ редактировать ]
Arc.Ask3.Ru: конец переведенного документа.
Arc.Ask3.Ru
Номер скриншота №: 31bcc8868696a3e7f7cce9bf331ad6e1__1721217540
URL1:https://arc.ask3.ru/arc/aa/31/e1/31bcc8868696a3e7f7cce9bf331ad6e1.html
Заголовок, (Title) документа по адресу, URL1:
PDP-8 - Wikipedia
Данный printscreen веб страницы (снимок веб страницы, скриншот веб страницы), визуально-программная копия документа расположенного по адресу URL1 и сохраненная в файл, имеет: квалифицированную, усовершенствованную (подтверждены: метки времени, валидность сертификата), открепленную ЭЦП (приложена к данному файлу), что может быть использовано для подтверждения содержания и факта существования документа в этот момент времени. Права на данный скриншот принадлежат администрации Ask3.ru, использование в качестве доказательства только с письменного разрешения правообладателя скриншота. Администрация Ask3.ru не несет ответственности за информацию размещенную на данном скриншоте. Права на прочие зарегистрированные элементы любого права, изображенные на снимках принадлежат их владельцам. Качество перевода предоставляется как есть. Любые претензии, иски не могут быть предъявлены. Если вы не согласны с любым пунктом перечисленным выше, вы не можете использовать данный сайт и информация размещенную на нем (сайте/странице), немедленно покиньте данный сайт. В случае нарушения любого пункта перечисленного выше, штраф 55! (Пятьдесят пять факториал, Денежную единицу (имеющую самостоятельную стоимость) можете выбрать самостоятельно, выплаичвается товарами в течение 7 дней с момента нарушения.)