Короткий огляд 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. |
_.дані | Початок сегмента даних, що містить дані читання/запису. |
VAL1:. слово 100 доларів | Зарезервуйте 2 байти пам’яті для утримання Val1, ініціалізованого на 100. |
Хоча ви можете використовувати числові значення для адрес пам’яті, використання міток замість жорстко закодованих адрес спрощує програмування та дозволяє переміщувати код у пам’яті. Це дає операційній системі гнучкість для виконання коду, роблячи кожну програму швидкою та ефективною.
директива асемблера. data розміщує дані в сегменті пам’яті, який доступний як для читання, так і для запису. Сегмент пам’яті коду призначений лише для читання, щоб запобігти помилкам програмування, які можуть пошкодити програму та спричинити збої. Це відокремлення інструкцій від даних на PDP-11 називається «відокремлення інструкцій і даних». Окрім покращення стабільності, ця функція також подвоює адресний простір, надаючи 64 КБ для коду та 64 КБ для даних, що вважалося інновацією на той час. Відповідно, мікрокомп’ютери Intel X86 пізніше широко використовували сегменти.
Залишити відповідь