#Klooienmetcomputers

Van 4004 naar 86-64

Arnout van Kempen over rommelen in een digitale wereld.

Vrijwel iedere machine die we tegenwoordig computer noemen, heeft een Von Neumann-architectuur. Dat betekent kort gezegd dat deze beschikt over input en output, een geheugen waarin data en programma's worden opgeslagen voor gebruik door de processor en een processor of CPU. Die CPU leest data uit het geheugen en interpreteert die als programma-instructies of als 'echte' data, al naar gelang de instructies. Tot 1971 werd een CPU gebouwd met allerlei technieken, relais, radiolampen, transistors en tegenwoordig met transistors op een snipper silicium, een chip. Voor de liefhebbers is het wel interessant te zien dat de ontwikkeling van radio en van computers zo gelijk op gaat. De radiolamp en transistor zijn zowel versterkers als schakelaars, afhankelijk van hoe je ze gebruikt. Dat veel radiohobbyisten van vroeger later computerhobbyisten werden, mag geen toeval heten.

In 1971 kwam de firma Intel, bijna onbedoeld, met de eerste microprocessor op de markt, de 4004. Dit was een CPU op één chip, een IC, met een databreedte van 4 bits. De 4004 werd gemaakt als basis voor een kantoorrekenmachine. Later werd de databreedte verdubbeld en kwam de 8008 op de markt. Deze CPU werd geen doorslaand succes. Voor rekenmachines was de 4004 goed genoeg, maar voor serieuze computers was de 4004 veel te beperkt en de 8008 loste dat onvoldoende op. De problemen van de 8008 werden door Intel opgelost met de 8080 uit 1974. Dit was de eerste CPU waarmee serieus computers gebouwd werden. Het besturingssysteem CP/M, de directe voorouder van MS-DOS, werd geschreven voor de 8080 en de compatible opvolgers Z80 en 8085.

De ontwerpers van de 8080 kregen ruzie met Intel en begonnen voor zichzelf. Alle ideeën die zij hadden voor de 8080, maar waar Intel niet van wilde weten, konden ze kwijt in hun eigen bedrijf, waar ze in 1976 de Z80 ontwierpen. Daarmee is de Z80 in feite een verbeterde versie van de 8080. Met de 8080, de Z80 en overigens reeksen andere processors van concurrenten, brak de 8 bit revolutie echt los. Computers als de TRS-80, Apple II en Commodore PET bereikten huishoudens, al snel gevolgd door immens populaire systemen als de Commodore 64 en de ZX Spectrum.

In de concurrentieslag die volgde, begon de 8-bits processor te beperkt te worden. Al deze CPU's hadden een adresbus van 16 bits en konden dus niet meer dan 2^16=64Kilobyte aan geheugen adresseren. Via slimme trucjes kon dat nog wel wat uitgebreid worden, zoals de Commodore 128 en de ZX Spectrum 128 lieten zien, maar eigenlijk was de koek wel op. De 16 bits CPU stond voor de deur. Met name de firma Motorola had met de 68000 een ijzersterke positie in die markt. De processor had een geheugen-bus van 16 bits, later zelfs 32 bits, en een adresbus van 24 bits. Dat betekende een geheugenbereik van 2^24=16Megabytes. De Atari ST, de Commodore Amiga, de Apple Macintosh en zelfs de Philips cd-i, maakten gebruik van de 68000.

IBM deed pogingen computers in de markt te zetten die op een bureau pasten. Zakelijke computers, maar veel kleiner dan de mainframes die IBM gewend was te maken. In 1981 kwam IBM met de System/23 Datamaster, wat geen succes werd. Niet zo vreemd, want letterlijk één maand later kwam datzelfde IBM met de 5150, beter bekend als de PC. Deze was veel goedkoper dan de S/23 en in veel opzichten ook beter geschikt voor het beoogde gebruik. De PC moest vooral concurrentie bieden aan de computers van Apple, die met dank aan VisiCalc oprukten in het bedrijfsleven. IBM kon leven met een thuiscomputermarkt waar het geen rol speelde, maar niet met thuiscomputers die de hegemonie van IBM begonnen te bedreigen in de zakelijke omgeving.

Over de ontwikkeling van de IBM PC valt veel te vertellen, maar voor ons verhaal is van betekenis dat IBM doorzag dat de zakelijke gebruikers van microcomputers gewend waren aan CP/M. Dat betekende dat de PC, desnoods tot in het absurde, op een CP/M computer moest lijken. Bill Gates en de zijnen moesten dan ook MS-DOS zo maken dat het sprekend leek op CP/M. Daar hoorde een CPU bij die zoveel mogelijk leek op de 8080 of de Z80, maar dan 16-bits. Intel, dat bezig was met de ontwikkeling van de 8800, had een overgangs-CPU gemaakt, de 8086. Het doel was dat de 8800 vele jaren mee zou kunnen en de 8086 zou alleen dienen voor klanten die een stap verder wilden dan de 8080, maar niet al te lang op dat platform wilden blijven hangen. Voor IBM was de 8086 ideaal, omdat deze overduidelijk een opgevoerde 8080 is. In de 8800 had IBM nauwelijks interesse. Het onverwacht enorme succes van de PC en later de IBM-klonen, resulteerde in een inmiddels meer dan veertigjarige carrière van de 8086 en het feitelijk einde van de 8800.

De 8086 is zoals gezegd echt een overgangsmodel. Prima voor toepassingen waar ook de 8080 mee overweg kon, maar nauwelijks geschikt voor multi-tasking en vrijwel volledig ongeschikt voor multi-user gebruik. Het probleem van 'echte' multi-tasking en multi-user systemen is dat processen netjes gescheiden moeten worden, toegang tot de hardware beperkt moet worden en gebruikers moeten worden gescheiden van het besturingssysteem. In de praktijk is daar een functionaliteit voor nodig die dynamisch geheugenbeheer heet, dynamic memory management, en een beschermde instructieset waar alleen het besturingssysteem toegang toe heeft. Het resultaat is dat de gebruiker en de programma’s van de gebruiker, de andere gebruikers niet 'zien'. Intel voegde deze functionaliteit toe aan de opvolger van de 8086, de 80286. Sindsdien zijn de CPU's van Intel geschikt voor moderne besturingssystemen als OS X, Linux, OS/2 en MS Windows.

Een flink aantal opvolgers later zijn we inmiddels aangeland bij CPU's die met 64 bits data (!) werken en over nog een scala aan vernieuwingen beschikken. Maar Intel heeft altijd gezorgd voor comptabiliteit met de oorspronkelijke 8086. Dat betekent dat een programma dat op een PC van veertig jaar geleden draait nog steeds zonder al te veel problemen op een moderne computer kan draaien. De instructieset van de hedendaagse CPU's wordt dan ook wel aangeduid met 86-64. Het is nog steeds de 8086-familie, maar dan wel 64 bits.

Is alles nu dus Intel x86? Nee, een klein Brits bedrijfje ontwikkelde in 1985 voor haar thuiscomputers de Acorn RISC Machine. Lang verhaal kort, deze ARM-architectuur is tegenwoordig de basis voor CPU's van Apple, van Nintendo spelcomputers, van tablets, mobiele telefoons en sinds kort zelfs van computers die MS Windows gebruiken. Maar op ARM komen we later terug.

Wie mee wil doen met #klooienmetcomputers kan dat doen via GitHub. Maak een account op github.com en zoek naar Abmvk/kmc. Het account Abmvk volgen kan ook. Lezers zijn vrij te gebruiken wat ze willen en om zelf zaken toe te voegen of aan te passen, vragen te stellen of commentaar te leveren.

Arnout van Kempen di CCO CISA is directeur compliance & risk bij aaff, de fusieorganisatie van Alfa en ABAB. Hij schrijft op persoonlijke titel.

Gerelateerd

reacties

Reageer op dit artikel

Spelregels debat

    Aanmelden nieuwsbrief

    Ontvang elke werkdag (maandag t/m vrijdag) de laatste nieuwsberichten, opinies en artikelen in uw mailbox.

    Bent u NBA-lid? Dan kunt u zich ook aanmelden via uw ledenprofiel op MijnNBA.nl.