saccade.com
Можно сказать, что историю вычислительной техники можно разделить на три эпохи: история мэйнфреймов, микрокомпьютеров и микрокомпьютеров. Микрокомпьютеры стали важным связующим звеном между первыми универсальными компьютерами и вездесущими сегодня микрокомпьютерами. Это история PDP-11, самого влиятельного и успешного микрокомпьютера всех времен.
В настоящее время микрокомпьютеры используются в различных приложениях. Они служили контроллерами связи, контроллерами приборов, большими системными процессорами, настольными калькуляторами и процессорами сбора данных в реальном времени. Но они также заложили основу для крупных достижений в разработке аппаратного обеспечения и внесли значительный вклад в современные операционные системы, языки программирования и интерактивные вычисления, какими мы их знаем сегодня.
В современном вычислительном мире, где каждый компьютер работает под управлением той или иной версии Windows, Mac или Linux, трудно сказать, какие процессоры находятся под управлением операционной системы. Но было время, когда различия в архитектуре ЦП были серьезной проблемой. PDP-11 помогает объяснить, почему это так.
PDP-11 был представлен в 1970 году, когда большая часть вычислений выполнялась на дорогих компьютерах GE, CDC и IBM, к которым мало кто имел доступ. Не было ни ноутбуков, ни настольных компьютеров, ни персональных компьютеров. Программирование выполнялось несколькими компаниями, в основном на ассемблере, COBOL и Фортран. Запись производилась на перфокартах, а программы запускались неинтерактивными группами.
Хотя первый PDP-11 был скромным, он заложил основу для завоевания микрокомпьютеров, которые сделали компьютеры нового поколения более доступными, что по сути произвело революцию в вычислительной технике. PDP-11 помог родить Операционная система ЮНИКС И язык программирования С. Это также сильно повлияет на следующее поколение компьютерных архитектур. За 22-летний срок службы PDP-11 — неслыханный по сегодняшним меркам период — было продано более 600 000 PDP-11.
Ранние прототипы PDP-11 не слишком впечатляли. Первый PDP-11 11/20 стоит 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 долл. США, 0 руб. | Добавьте 10 к значению в регистре 0 |
ДВИГАТЕЛЬ R0, ЗНАЧ1 | Скопируйте значение из регистра 0 в ячейку памяти VAL1. |
_.данные | Начало сегмента данных, где данные считываются/записываются |
VAL1: .слово $100 | Оставьте 2 байта памяти для хранения Val1, настроенного на 100 |
Хотя для адресов памяти можно использовать числовые значения, использование меток вместо закодированных адресов облегчает программирование и позволяет перемещать код в памяти. Это дает операционной системе гибкость при выполнении кода, гарантируя, что каждая программа будет быстрой и эффективной.
Директива сборщика данных помещает данные в сегмент памяти, доступный для чтения и записи. Часть памяти кода доступна только для чтения, чтобы ошибки программирования не могли повредить программу и вызвать сбои. Такое разделение инструкций и данных на PDP-11 называется «разделением инструкций и данных». Помимо повышения стабильности, эта функция также удваивает адресное пространство, позволяя использовать 64 КБ для кода и 64 КБ для данных — в то время это считалось серьезным нововведением. Соответственно, микрокомпьютеры X86 от Intel широко использовали секторы.
«Аналитик. Полный телевизионный первопроходец. Фанатик бекона. Интернет-фанатик. Пожизненный эксперт по пиву. Поклонник Интернета. Любитель Twitter».
More Stories
NFT Gaming Psycho поддерживает превращение игроков-людей в NPC
iOS 15.6 от Apple на вашем iPhone: каждое обновление, о котором вам нужно знать
Steam Deck меняет то, как я покупаю игры