Et kort kig på PDP-11, den mest indflydelsesrige minicomputer nogensinde

Datateknologiens historie kan groft opdeles i tre epoker: æraen med mainframes, minicomputere og mikrocomputere. Minicomputere blev et vigtigt bindeled mellem de første mainframes og nutidens allestedsnærværende mikrocomputere. Dette er historien om PDP-11, den mest indflydelsesrige og succesrige minicomputer.
På et tidspunkt blev minicomputere brugt i en række forskellige applikationer. De tjente som kommunikationscontrollere, instrumentcontrollere, store systemforbehandlere, desktopberegnere og dataindsamlingsprocessorer i realtid. Men de lagde også grundlaget for betydelige fremskridt inden for hardwarearkitektur og ydede store bidrag til moderne operativsystemer, programmeringssprog og interaktive databehandlinger, som vi kender dem i dag.
I dagens computerverden, hvor hver computer kører en eller anden version af Windows, Mac eller Linux, er det svært at skelne de CPU’er, der ligger til grund for operativsystemet. Men der var engang, hvor forskelle i CPU-arkitektur betød meget. PDP-11 hjælper med at forklare, hvorfor det er sådan.
PDP-11 blev introduceret i 1970, da det meste af computeren blev udført på dyre GE, CDC og IBM mainframes, som få havde adgang til. Der var ingen bærbare computere, ingen stationære computere, ingen personlige computere. Kun få virksomheder var involveret i programmering, mest i assemblersprog, COBOL og FORTRAN. Input blev lavet med hulkort, og programmer blev lanceret ved ikke-interaktive batch-kørsler.
Selvom den første PDP-11 var beskeden, satte den scenen for minicomputer-invasionen, der gjorde næste generations computere mere overkommelige, og i det væsentlige revolutionerede computeren. PDP-11 hjalp med at skabe UNIX-operativsystemet og programmeringssproget C. Det ville også i høj grad påvirke den næste generation af computerarkitekturer. I de 22 år af PDP-11’erens levetid – en hidtil uset tid efter nutidens standarder – er der blevet solgt mere end 600.000 PDP-11’er.
De tidlige PDP-11’ere var ikke så imponerende. Den første 11/20 PDP-11 kostede $20.000, men kom kun med 4 KB RAM. Den brugte papirtape som opbevaring og havde en ASR-33 teletype-konsol, der udskrev 10 tegn i sekundet. Men den havde også en fantastisk ortogonal 16-bit arkitektur, otte registre, 65 KB adresseplads, en cyklustid på 1,25 MHz og en fleksibel UNIBUS hardwarebus, der understøttede fremtidige hardwareudstyr. Det var en vindende kombination for dens skaber, Digital Equipment Corporation.
Den første applikation til PDP-11 omfattede hardwarekontrol i realtid, fabriksautomatisering og databehandling. Da PDP-11 fik et ry for fleksibilitet, programmerbarhed og overkommelig pris, fandt den anvendelse i trafiklyskontrolsystemer, Nikes missilforsvarssystem, lufttrafikkontrol, atomkraftværker, flådens pilottræningssystemer og telekommunikation. Han var også pioner inden for tekstbehandling og databehandling, som vi nu tager for givet.
Og indflydelsen fra PDP-11 er mest tydelig i programmeringen af enhedens samling.
Grundlæggende om samlingsprogrammering
Før opfindelsen af sprog på højt niveau som Python, Java og Fortran blev programmering udført i assemblersprog. Assembly sprog programmering kan udføres med meget lidt RAM og diskplads, ideel til de tidlige dage med computere.
Assembly sprog er et mellemformat på lavt niveau, der konverteres til maskinsprog, som derefter kan køres direkte af computeren. Det er på lavt niveau, fordi du direkte kontrollerer aspekter af computerens arkitektur. Kort sagt flytter assemblersprogprogrammering dine data byte for byte gennem hardwareregistre og hukommelse. Det, der adskilte PDP-11-programmeringen, var det elegante design af minicomputeren. Hver instruktion havde sin plads, og hver instruktion havde en betydning.
Det 16-bit adresserum betød, at hvert register direkte kunne adressere op til 64 KB RAM, med de øverste 4 KB reserveret til hukommelseskortlagt input og output. PDP-11’er kunne adressere i alt 128 KB RAM ved hjælp af registersegmenter (mere om det om et øjeblik). Så selvom PDP-11-systemerne kun blev leveret med 4 KB RAM, var de stadig produktive på grund af den smarte brug af tidlige programmeringsteknikker.
Samlingsprogram
Den nemmeste måde at forstå dette koncept på er med et simpelt PDP-11 assemblersprogsprogram, som vi vil se på nedenfor. Nøgleord, der starter med “.”er retningslinjer for samleren. .globl
eksporterer etiketten som et symbol til linkeren til brug af operativsystemet. .text
definerer starten af et kodesegment. .data
definerer starten på et enkelt datasegment. Nøgleord, der ender på “:”er tags. Assembly sprogprogrammering bruger etiketter til symbolsk at adressere hukommelsen. (Bemærk: med fremkomsten af jargon og PDP-11-kodning er enhver tekst efter / en kommentar.)
Nøgleord | Oversættelse |
.globl_main | Eksporter _main-etiketten som et indgangspunkt til brug for operativsystemet. |
.tekst | Start af instruktionssegment indeholdende skrivebeskyttet kode |
_main: MOTORVÆRDI1, R0 | Kopier ordværdien fra hukommelsesplads VAL1 til register 0. |
TILFØJ 10 USD, R0 | Tilføj 10 til værdien i register 0 |
MOTOR R0 VÆRDI1 | Kopier værdien fra register 0 til hukommelsesplads VAL1. |
_.data | Starten på et datasegment, der indeholder læse/skrive data. |
VAL1:. ord $100 | Reserver 2 bytes hukommelse for at holde Val1 initialiseret til 100. |
Selvom du kan bruge numeriske værdier til hukommelsesadresser, forenkler brugen af etiketter i stedet for hårdkodede adresser programmering og giver dig mulighed for at flytte kode rundt i hukommelsen. Dette giver operativsystemet fleksibiliteten til at udføre kode, hvilket gør hvert program hurtigt og effektivt.
monteringsdirektivet. data placerer data i et hukommelsessegment, der er både læsbart og skrivbart. Kodehukommelsessegmentet er skrivebeskyttet for at forhindre programmeringsfejl i at ødelægge programmet og forårsage nedbrud. Denne adskillelse af instruktioner fra data på PDP-11 kaldes “adskillelse af instruktioner og data”. Ud over at forbedre stabiliteten fordobler denne funktion også adresserummet, hvilket giver 64 KB til kode og 64 KB til data, hvilket blev betragtet som en innovation på det tidspunkt. Derfor gjorde Intel X86-mikrocomputere senere omfattende brug af segmenter.
Skriv et svar