De geschiedenis van computers kan worden onderverdeeld in drie tijdperken: de geschiedenis van mainframecomputers, microcomputers en microcomputers. Microcomputers vormden een belangrijke brug tussen de eerste mainframecomputers en de tegenwoordig alomtegenwoordige microcomputers. Dit is het verhaal van de PDP-11, de meest invloedrijke en succesvolle microcomputer aller tijden.
Op dit moment worden microcomputers in verschillende toepassingen gebruikt. Ze dienden als communicatiecontrollers, instrumentcontrollers, grote systeemprocessors, desktopcalculators en realtime data-acquisitieprocessors. Maar ze legden ook de basis voor grote vooruitgang in hardware-engineering en droegen aanzienlijk bij aan moderne besturingssystemen, programmeertalen en interactief computergebruik zoals we die nu kennen.
In de computerwereld van vandaag, waar op elke computer een variant van Windows, Mac of Linux draait, is het moeilijk te zeggen welke CPU’s zich onder het besturingssysteem bevinden. Maar er was een tijd dat verschillen in CPU-architectuur een groot probleem waren. De PDP-11 helpt verklaren waarom dit is.
De PDP-11 werd geïntroduceerd in 1970, een tijd waarin het meeste computergebruik werd gedaan op dure GE-, CDC- en IBM-computers waar maar weinig mensen toegang toe hadden. Er waren geen laptops, desktops of personal computers. De programmering werd gedaan door een paar bedrijven, voornamelijk in assemblage, COBOL en fortran. De invoer werd gedaan op ponskaarten en de programma’s werden uitgevoerd in niet-interactieve groepen.
Hoewel de eerste PDP-11 bescheiden was, legde hij de basis voor de verovering van microcomputers die een nieuwe generatie computers gemakkelijker beschikbaar zouden maken, wat in wezen een revolutie teweeg zou brengen in de computerverwerking. PDP-11 hielp bij de bevalling UNIX-besturingssysteem En de C programmeertaal. Het zal ook grote invloed hebben op de volgende generatie computerarchitecturen. Tijdens de 22-jarige levensduur van de PDP-11 – een periode die volgens de huidige normen ongehoord is – zijn er meer dan 600.000 PDP-11’s verkocht.
De vroege PDP-11-prototypes waren niet al te indrukwekkend. De eerste PDP-11 11/20 kost $ 20.000, maar wordt geleverd met slechts ongeveer 4 KB RAM. Ik gebruikte papieren tape voor opslag en had een telex ASR-33-printercontroller die 10 tekens per seconde afdrukt. Maar het had ook een indrukwekkende 16-bits orthogonale architectuur, acht registers, 65 KB adresruimte, een cyclustijd van 1,25 MHz en een flexibele UNIBUS-hardwarebus die toekomstige randapparatuur ondersteunde. Dit was een succesvolle combinatie voor de maker, Digital Equipment Corporation.
De eerste implementatie van de PDP-11 omvatte real-time instrumentatiecontrole, fabrieksautomatisering en gegevensverwerking. Omdat de PDP-11 een reputatie heeft verworven op het gebied van flexibiliteit, programmeerbaarheid en betaalbaarheid, heeft hij zijn gebruik gezien in verkeerslichtcontrolesystemen, het Nike raketafweersysteem, luchtverkeersleiding, kerncentrales en opleidings- en communicatiesystemen voor marinepiloot. Het was ook een pionier op het gebied van tekstverwerking en gegevensverwerking die we nu als vanzelfsprekend beschouwen.
Het effect van de PDP-11 komt treffend tot uiting in de programmering van de montage van het apparaat.
Basisprincipes van programmeren van assembler
Vóór de uitvinding van talen op hoog niveau, zoals Python, Java en Fortran, gebeurde het programmeren in assembler. Programmeren in assembleertaal kan worden gedaan met heel weinig RAM en opslag – perfect voor een omgeving in de begintijd van computergebruik.
Assembleertaal is een tussenformaat op laag niveau dat wordt omgezet in een machinetaal die vervolgens rechtstreeks door een computer kan worden uitgevoerd. Het is onopvallend omdat je rechtstreeks aspecten van de computerarchitectuur manipuleert. Simpel gezegd, assemblageprogrammering verplaatst uw gegevens byte voor byte door hardware- en geheugenregisters. Wat de PDP-11-programmering anders maakte, was dat het ontwerp van de microcomputer elegant was. Elke instructie heeft zijn plaats en elke instructie is logisch.
De 16-bits adresruimte betekent dat elk register tot 64K RAM kan verwerken, waarbij de hoogste 4K is gereserveerd voor invoer en uitvoer met geheugentoewijzing. PDP-11’s kunnen in totaal 128KB RAM aan met behulp van registerclips (hierover later meer). Dus hoewel PDP-11-systemen werden geleverd met slechts 4 KB RAM, waren ze nog steeds productief door slim gebruik te maken van vroege programmeertechnieken.
assembler programma
Het is het gemakkelijkst om dit concept te begrijpen met een voorbeeld van een eenvoudig PDP-11-assembleertaalprogramma, dat we hieronder zullen bespreken. Zoekwoorden die beginnen met “.” Het zijn aanwijzingen naar de vergadering. .globl
Exporteer een label als pictogram naar de link voor gebruik door het besturingssysteem. .text
Specificeert het begin van het codesegment. .data
Specificeert het begin van een afzonderlijk gegevenssegment. Trefwoorden die eindigen op “:” zijn taxonomieën. Assemblageprogrammering maakt gebruik van labels om het geheugen symbolisch te manipuleren. (Opmerking: met de terminologie PDP-11 en codering, geen tekst na/commentaar.)
Sleutelwoorden: | Vertaling |
.globl _main | Exporteer het _main label als een toegangspunt voor het besturingssysteem om te gebruiken |
.tekst | Begin van het instructieblok waar de alleen-lezen code zich bevindt |
_main: MOV VAL1, R0 | Kopieer de woordwaarde naar geheugenlocatie VAL1 in register 0 |
Voeg $10 toe, R0 | Voeg 10 toe aan de waarde in register 0 |
MOV R0, VAL1 | Kopieer de waarde in register 0 naar geheugenlocatie VAL1 |
_.gegevens | Begin van het gegevenssegment waar gegevens worden gelezen/geschreven |
VAL1: .woord $ 100 | Houd 2 bytes aan opslagruimte om Val1 vast te houden, geconfigureerd op 100 |
Hoewel numerieke waarden kunnen worden gebruikt voor geheugenadressen, vergemakkelijkt het gebruik van labels in plaats van gecodeerde adressen het programmeren en maakt het de code herpositioneerbaar in het geheugen. Dit geeft het besturingssysteem flexibiliteit bij het uitvoeren van de code, zodat elk programma snel en efficiënt is.
De richtlijn voor gegevensverzamelaars plaatst gegevens in een geheugensegment dat kan worden gelezen en geschreven. Het geheugengedeelte van de code is alleen-lezen om te voorkomen dat programmeerfouten het programma beschadigen en crashes veroorzaken. Deze scheiding van instructies en gegevens op de PDP-11 wordt “splitsen van instructies en gegevens” genoemd. Naast het toevoegen van stabiliteit, verdubbelt deze functie ook de adresruimte door 64K voor code en 64K voor gegevens in te schakelen – dit werd destijds als een belangrijke innovatie beschouwd. Dienovereenkomstig maakten de X86-microcomputers van Intel uitgebreid gebruik van sectoren.
“Subtly charming TV maven. Unapologetic communicator. Troublemaker. Travel scientist. Wannabe thinker. Music fanatic. Amateur explorer.”