Krótkie spojrzenie na PDP-11, najbardziej wpływowy minikomputer wszechczasów

Krótkie spojrzenie na PDP-11, najbardziej wpływowy minikomputer wszechczasów

Historię technologii obliczeniowej można z grubsza podzielić na trzy epoki: erę komputerów typu mainframe, minikomputerów i mikrokomputerów. Minikomputery stały się ważnym łącznikiem między pierwszymi komputerami typu mainframe a wszechobecnymi mikrokomputerami dnia dzisiejszego. Oto historia PDP-11, najbardziej wpływowego i odnoszącego sukcesy minikomputera.

Kiedyś minikomputery były wykorzystywane w różnych zastosowaniach. Służyły jako kontrolery komunikacyjne, kontrolery instrumentów, duże preprocesory systemowe, kalkulatory biurkowe i procesory akwizycji danych w czasie rzeczywistym. Ale położyli również podwaliny pod znaczący postęp w architekturze sprzętowej i wnieśli znaczący wkład w nowoczesne systemy operacyjne, języki programowania i interaktywne obliczenia, jakie znamy dzisiaj.

W dzisiejszym świecie informatyki, w którym na każdym komputerze działa jakaś wersja systemu Windows, Mac lub Linux, trudno jest rozróżnić procesory, na których opiera się system operacyjny. Ale był czas, kiedy różnice w architekturze procesora miały duże znaczenie. PDP-11 pomaga wyjaśnić, dlaczego tak jest.

PDP-11 został wprowadzony w 1970 roku, kiedy większość obliczeń wykonywano na drogich komputerach mainframe GE, CDC i IBM, do których niewielu miało dostęp. Nie było laptopów, komputerów stacjonarnych, komputerów osobistych. Tylko kilka firm zajmowało się programowaniem, głównie w języku asemblera, COBOL i FORTRAN. Wprowadzania danych dokonywano za pomocą kart perforowanych, a programy były uruchamiane przez nieinteraktywne przebiegi wsadowe.

Chociaż pierwszy PDP-11 był skromny, przygotował grunt pod inwazję minikomputerów, dzięki której komputery nowej generacji stały się bardziej przystępne cenowo, zasadniczo rewolucjonizując informatykę. PDP-11 pomógł stworzyć system operacyjny UNIX i język programowania C. Miałoby to również ogromny wpływ na następną generację architektur komputerowych. W ciągu 22 lat życia PDP-11 – bezprecedensowego czasu jak na dzisiejsze standardy – sprzedano ponad 600 000 egzemplarzy PDP-11.

Wczesne PDP-11 nie były aż tak imponujące. Pierwszy 11/20 PDP-11 kosztował 20 000 USD, ale był wyposażony tylko w 4 KB pamięci RAM. Używał taśmy papierowej jako pamięci i miał dalekopisową konsolę ASR-33, która drukowała 10 znaków na sekundę. Ale miał też niesamowitą ortogonalną 16-bitową architekturę, osiem rejestrów, 65 KB przestrzeni adresowej, czas cyklu 1,25 MHz i elastyczną magistralę sprzętową UNIBUS, która obsługiwała przyszłe sprzętowe urządzenia peryferyjne. Była to zwycięska kombinacja dla jej twórcy, firmy Digital Equipment Corporation.

Początkowe zastosowanie PDP-11 obejmowało sterowanie sprzętowe w czasie rzeczywistym, automatyzację fabryki i przetwarzanie danych. Ponieważ PDP-11 zyskał reputację dzięki elastyczności, programowalności i przystępności cenowej, znalazł zastosowanie w systemach sterowania sygnalizacją świetlną, systemie obrony przeciwrakietowej Nike, kontroli ruchu lotniczego, elektrowniach jądrowych, systemach szkolenia pilotów Marynarki Wojennej i telekomunikacji. Był także pionierem w przetwarzaniu tekstów i przetwarzaniu danych, które obecnie uważamy za rzecz oczywistą.

A wpływ PDP-11 jest najbardziej widoczny w programowaniu montażu urządzenia.

Podstawy programowania w asemblerze

Przed wynalezieniem języków wysokiego poziomu, takich jak Python, Java i Fortran, programowanie odbywało się w języku asemblera. Programowanie w języku asemblerowym można wykonać przy bardzo małej ilości pamięci RAM i miejsca na dysku, co jest idealne dla wczesnych dni informatyki.

Język asemblera to format pośredni niskiego poziomu, który jest konwertowany na język maszynowy, który może być następnie uruchamiany bezpośrednio przez komputer. Jest niskopoziomowy, ponieważ bezpośrednio kontrolujesz aspekty architektury komputera. Mówiąc najprościej, programowanie w asemblerze przenosi dane bajt po bajcie przez rejestry sprzętowe i pamięć. Tym, co wyróżniało programowanie PDP-11, był elegancki wygląd minikomputera. Każda instrukcja miała swoje miejsce, a każda instrukcja miała znaczenie.

16-bitowa przestrzeń adresowa oznaczała, że ​​każdy rejestr mógł bezpośrednio zaadresować do 64 KB pamięci RAM, z górnymi 4 KB zarezerwowanymi na wejście i wyjście mapowane w pamięci. PDP-11s mógł zaadresować w sumie 128 KB pamięci RAM za pomocą segmentów rejestrów (więcej o tym za chwilę). Więc chociaż systemy PDP-11 były dostarczane tylko z 4 KB pamięci RAM, nadal były wydajne dzięki sprytnemu wykorzystaniu wczesnych technik programowania.

Program montażu

Najłatwiejszym sposobem zrozumienia tego pojęcia jest prosty program w języku asemblera PDP-11, któremu przyjrzymy się poniżej. Słowa kluczowe zaczynające się od „.” są dyrektywami dla asemblera. .globleksportuje etykietę jako symbol do konsolidatora do użytku przez system operacyjny. .textdefiniuje początek segmentu kodu. .datadefiniuje początek pojedynczego segmentu danych. Słowa kluczowe kończące się na „:” to tagi. Programowanie w asemblerze używa etykiet do symbolicznego adresowania pamięci. (Uwaga: wraz z pojawieniem się żargonu i kodowania PDP-11 każdy tekst po / jest komentarzem).

Słowa kluczowe Tłumaczenie
.globl_main Wyeksportuj etykietę _main jako punkt wejścia do użytku przez system operacyjny.
.tekst Początek segmentu instrukcji zawierającego kod tylko do odczytu
_main: WARTOŚĆ SILNIKA1, R0 Skopiuj wartość słowa z komórki pamięci VAL1 do rejestru 0.
DODAJ 10 USD, R0 Dodaj 10 do wartości w rejestrze 0
WARTOŚĆ R0 SILNIKA 1 Skopiuj wartość z rejestru 0 do komórki pamięci VAL1.
_.dane Początek segmentu danych zawierającego dane do odczytu/zapisu.
VAL1:. słowo 100 dolarów Zarezerwuj 2 bajty pamięci do przechowywania wartości Val1 zainicjowanej na 100.

Chociaż możesz używać wartości numerycznych dla adresów pamięci, używanie etykiet zamiast adresów zakodowanych na stałe upraszcza programowanie i umożliwia przenoszenie kodu w pamięci. Daje to systemowi operacyjnemu elastyczność wykonywania kodu, dzięki czemu każdy program jest szybki i wydajny.

dyrektywa asemblera. data umieszcza dane w segmencie pamięci, który można zarówno odczytywać, jak i zapisywać. Segment pamięci kodu jest przeznaczony tylko do odczytu, aby zapobiec uszkodzeniu programu przez błędy programowania i spowodowaniu awarii. To oddzielenie instrukcji od danych na PDP-11 nazywa się „rozdzieleniem instrukcji i danych”. Oprócz poprawy stabilności funkcja ta podwaja również przestrzeń adresową, zapewniając 64 KB na kod i 64 KB na dane, co w tamtych czasach było uważane za innowację. W związku z tym mikrokomputery Intel X86 później szeroko wykorzystywały segmenty.

Dodaj komentarz

Twój adres e-mail nie zostanie opublikowany. Wymagane pola są oznaczone *