En kort titt på PDP-11, den mest inflytelserika minidatorn genom tiderna
Datorteknikens historia kan grovt delas in i tre epoker: stordatorernas, minidatorernas och mikrodatorernas era. Minidatorer blev en viktig länk mellan de första stordatorerna och dagens allestädes närvarande mikrodatorer. Detta är historien om PDP-11, den mest inflytelserika och framgångsrika minidatorn.
En gång i tiden användes minidatorer i en mängd olika applikationer. De fungerade som kommunikationskontroller, instrumentkontroller, stora systemförprocessorer, skrivbordsräknare och realtidsdatainsamlingsprocessorer. Men de lade också grunden för betydande framsteg inom hårdvaruarkitektur och gav stora bidrag till moderna operativsystem, programmeringsspråk och interaktiva datorer som vi känner dem idag.
I dagens datorvärld, där varje dator kör någon version av Windows, Mac eller Linux, är det svårt att urskilja de processorer som ligger bakom operativsystemet. Men det fanns en tid då skillnader i CPU-arkitektur betydde mycket. PDP-11 hjälper till att förklara varför det är så.
PDP-11 introducerades 1970 när de flesta datorer gjordes på dyra GE, CDC och IBM stordatorer som få hade tillgång till. Det fanns inga bärbara datorer, inga stationära datorer, inga persondatorer. Endast ett fåtal företag var involverade i programmering, mestadels inom assemblerspråk, COBOL och FORTRAN. Inmatning gjordes med hålkort och program lanserades av icke-interaktiva batchkörningar.
Även om den första PDP-11 var blygsam, satte den scenen för minidatorinvasionen som gjorde nästa generations datorer mer överkomliga, vilket i grunden revolutionerade datoranvändningen. PDP-11 hjälpte till att skapa UNIX-operativsystemet och programmeringsspråket C. Det skulle också i hög grad påverka nästa generations datorarkitekturer. Under de 22 åren av PDP-11:s liv – en tid utan motstycke med dagens standarder – har mer än 600 000 PDP-11 sålts.
De tidiga PDP-11:orna var inte så imponerande. Den första 11/20 PDP-11 kostade $20 000 men kom bara med 4 KB RAM. Den använde papperstejp som lagring och hade en ASR-33 teletypkonsol som skrev ut 10 tecken per sekund. Men den hade också en fantastisk ortogonal 16-bitars arkitektur, åtta register, 65 KB adressutrymme, en cykeltid på 1,25 MHz och en flexibel UNIBUS-hårdvarubuss som stödde framtida kringutrustning. Det var en vinnande kombination för dess skapare, Digital Equipment Corporation.
Den första applikationen för PDP-11 inkluderade maskinvarukontroll i realtid, fabriksautomation och databehandling. Eftersom PDP-11 fick ett rykte för flexibilitet, programmerbarhet och prisvärdhet, fann den användning i trafikljuskontrollsystem, Nikes missilförsvarssystem, flygledning, kärnkraftverk, marinens pilotutbildningssystem och telekommunikation. Han var också banbrytande för ordbehandling och databehandling som vi nu tar för givet.
Och påverkan av PDP-11 är mest uppenbar i programmeringen av enhetens montering.
Grundläggande programmering
Innan uppfinningen av högnivåspråk som Python, Java och Fortran gjordes programmering i assemblerspråk. Assembly språkprogrammering kan göras med mycket lite RAM-minne och diskutrymme, perfekt för de första dagarna av datoranvändning.
Assembly language är ett mellanformat på låg nivå som konverteras till maskinspråk, som sedan kan köras direkt av datorn. Det är på låg nivå eftersom du direkt styr aspekter av datorns arkitektur. Enkelt uttryckt flyttar assemblerspråksprogrammering dina data byte för byte genom hårdvaruregister och minne. Det som skilde PDP-11-programmering åt var den eleganta designen av minidatorn. Varje instruktion hade sin plats, och varje instruktion hade en mening.
16-bitars adressutrymmet innebar att varje register direkt kunde adressera upp till 64 KB RAM, med de översta 4 KB reserverade för minnesmappad ingång och utdata. PDP-11s kunde adressera totalt 128 KB RAM med hjälp av registersegment (mer om det om ett ögonblick). Så även om PDP-11-systemen bara levererades med 4 KB RAM, var de fortfarande produktiva på grund av den smarta användningen av tidiga programmeringstekniker.
Monteringsprogram
Det enklaste sättet att förstå detta koncept är med ett enkelt PDP-11 assembly-språkprogram, som vi ska titta på nedan. Nyckelord som börjar med ”.”är direktiv för assemblern. .globl
exporterar etiketten som en symbol till länken för användning av operativsystemet. .text
definierar början av ett kodsegment. .data
definierar början av ett enskilt datasegment. Nyckelord som slutar på ”:”är taggar. Assembly-språkprogrammering använder etiketter för att symboliskt adressera minnet. (Obs: med tillkomsten av jargong och PDP-11-kodning är all text efter / en kommentar.)
Nyckelord | Översättning |
.globl_main | Exportera etiketten _main som en ingångspunkt för användning av operativsystemet. |
.text | Start av instruktionssegment som innehåller skrivskyddad kod |
_main: MOTORVÄRDE1, R0 | Kopiera ordvärdet från minnesplatsen VAL1 till register 0. |
LÄGG TILL 10 USD, R0 | Lägg till 10 till värdet i register 0 |
MOTOR R0 VÄRDE1 | Kopiera värdet från register 0 till minnesplats VAL1. |
_.data | Början av ett datasegment som innehåller läs/skrivdata. |
VAL1:. ord 100 dollar | Reservera 2 byte minne för att hålla Val1 initierad till 100. |
Även om du kan använda numeriska värden för minnesadresser, förenklar programmeringen genom att använda etiketter istället för hårdkodade adresser och du kan flytta runt kod i minnet. Detta ger operativsystemet flexibiliteten att exekvera kod, vilket gör varje program snabbt och effektivt.
monteringsdirektiv. data placerar data i ett minnessegment som är både läsbart och skrivbart. Kodminnessegmentet är skrivskyddat för att förhindra att programmeringsfel förstör programmet och orsakar krascher. Denna separation av instruktioner från data på PDP-11 kallas ”separation av instruktioner och data”. Förutom att förbättra stabiliteten fördubblar den här funktionen även adressutrymmet, vilket ger 64 KB för kod och 64 KB för data, vilket ansågs vara en innovation på den tiden. Följaktligen använde Intel X86 mikrodatorerna senare i stor utsträckning segment.
Lämna ett svar