Краткий обзор PDP-11, самого влиятельного миникомпьютера всех времен

Краткий обзор PDP-11, самого влиятельного миникомпьютера всех времен

Историю вычислительной техники можно условно разделить на три эпохи: эпоху мейнфреймов, миникомпьютеров и микрокомпьютеров. Миникомпьютеры стали важным связующим звеном между первыми мейнфреймами и вездесущими микрокомпьютерами сегодняшнего дня. Это история PDP-11, самого влиятельного и успешного мини-компьютера.

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

В современном мире вычислений, в котором на каждом компьютере установлена ​​какая-либо версия Windows, Mac или Linux, трудно различить процессоры, лежащие в основе операционной системы. Но было время, когда различия в архитектуре ЦП имели большое значение. PDP-11 помогает объяснить, почему это так.

PDP-11 был представлен в 1970 году, когда большая часть вычислений выполнялась на дорогих мейнфреймах GE, CDC и IBM, к которым мало кто имел доступ. Не было ни ноутбуков, ни настольных компьютеров, ни персональных компьютеров. Лишь несколько компаний занимались программированием, в основном на ассемблере, COBOL и FORTRAN. Ввод производился перфокартами, а программы запускались неинтерактивными пакетными запусками.

Хотя первый PDP-11 был скромным, он подготовил почву для вторжения миникомпьютеров, которое сделало компьютеры следующего поколения более доступными, что по сути произвело революцию в вычислительной технике. PDP-11 помог создать операционную систему UNIX и язык программирования C. Это также сильно повлияет на следующее поколение компьютерных архитектур. За 22 года жизни PDP-11 — беспрецедентный срок по сегодняшним меркам — было продано более 600 000 PDP-11.

Ранние PDP-11 не впечатляли. Первый 11/20 PDP-11 стоил 20 000 долларов, но имел только 4 КБ ОЗУ. Он использовал бумажную ленту в качестве хранилища и имел консоль телетайпа ASR-33, которая печатала 10 символов в секунду. Но у него также была потрясающая ортогональная 16-битная архитектура, восемь регистров, 65 КБ адресного пространства, время цикла 1,25 МГц и гибкая аппаратная шина UNIBUS, которая поддерживала будущие аппаратные периферийные устройства. Это была выигрышная комбинация для ее создателя, корпорации Digital Equipment Corporation.

Первоначальное приложение для PDP-11 включало аппаратное управление в реальном времени, автоматизацию производства и обработку данных. Поскольку PDP-11 приобрел репутацию гибкости, программируемости и доступности, он нашел применение в системах управления светофорами, системе противоракетной обороны Nike, управлении воздушным движением, атомных электростанциях, системах обучения пилотов ВМФ и телекоммуникациях. Он также был пионером в обработке текстов и данных, которые мы сейчас воспринимаем как должное.

И влияние PDP-11 больше всего проявляется в программировании сборки устройства.

Основы программирования на ассемблере

До изобретения языков высокого уровня, таких как Python, Java и Fortran, программирование выполнялось на языке ассемблера. Программирование на языке ассемблера может быть выполнено с очень небольшим объемом оперативной памяти и дискового пространства, что идеально подходит для первых дней вычислительной техники.

Язык ассемблера — это промежуточный формат низкого уровня, который преобразуется в машинный язык, который затем может запускаться непосредственно компьютером. Он низкоуровневый, потому что вы напрямую контролируете аспекты архитектуры компьютера. Проще говоря, программирование на языке ассемблера перемещает ваши данные байт за байтом через аппаратные регистры и память. Что отличало программирование PDP-11, так это элегантный дизайн миникомпьютера. Каждая инструкция имела свое место, и каждая инструкция имела смысл.

16-битное адресное пространство означало, что каждый регистр мог напрямую адресовать до 64 КБ ОЗУ, причем верхние 4 КБ были зарезервированы для ввода и вывода с отображением памяти. PDP-11 могли адресовать в общей сложности 128 КБ ОЗУ, используя сегменты регистров (подробнее об этом чуть позже). Таким образом, несмотря на то, что системы PDP-11 поставлялись только с 4 КБ ОЗУ, они все еще были производительными благодаря умному использованию ранних методов программирования.

Программа сборки

Самый простой способ понять эту концепцию — использовать простую программу на языке ассемблера для PDP-11, которую мы рассмотрим ниже. Ключевые слова, начинающиеся с «.», являются директивами для ассемблера. .globlэкспортирует метку как символ компоновщику для использования операционной системой. .textопределяет начало сегмента кода. .dataопределяет начало одного сегмента данных. Ключевые слова, оканчивающиеся на «:», являются тегами. Программирование на языке ассемблера использует метки для символической адресации памяти. (Примечание: с появлением жаргона и кодировки PDP-11 любой текст после / является комментарием.)

Ключевые слова Перевод
.globl_main Экспортируйте метку _main как точку входа для использования операционной системой.
.текст Начало сегмента инструкции, содержащего код только для чтения
_main: ЗНАЧЕНИЕ ДВИГАТЕЛЯ1, R0 Скопируйте значение слова из ячейки памяти VAL1 в регистр 0.
ДОБАВЬТЕ $10, R0 Добавьте 10 к значению в регистре 0
ДВИГАТЕЛЬ R0 ЗНАЧ1 Скопируйте значение из регистра 0 в ячейку памяти VAL1.
_.данные Начало сегмента данных, содержащего данные для чтения/записи.
ВАЛ1:. слово $100 Зарезервируйте 2 байта памяти для хранения значения Val1, инициализированного значением 100.

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

директива ассемблера. data помещает данные в сегмент памяти, доступный как для чтения, так и для записи. Сегмент памяти кода доступен только для чтения, чтобы ошибки программирования не могли повредить программу и вызвать сбои. Такое отделение инструкций от данных на PDP-11 называется «разделением инструкций и данных». Помимо повышения стабильности, эта функция также удваивает адресное пространство, предоставляя 64 КБ для кода и 64 КБ для данных, что в то время считалось нововведением. Соответственно, микрокомпьютеры Intel X86 позже широко использовали сегменты.

Добавить комментарий

Ваш адрес email не будет опубликован. Обязательные поля помечены *