Evolutie van PC’s: het geheugen

Evolutie van de PCHet allereerste moederbord dat ik los kocht was een 80286 moederbord met sockets voor sipp modules: dat waren geheugenmodules met pinnetjes. Niemand kent ze nu nog. Dit en meer ontwikkelingen op het gebied van ram-geheugen in pc’s in dit artikel.

Statisch, dynamisch

In de ZX81 hobbycomputer werd oorspronkelijk nog gebruik gemaakt van statisch geheugen (2 chips van 512 bytes per stuk): de stand van elk bit van het geheugen wordt in zo’n chip door een paar samenwerkende transistoren vastgehouden.

Geheugen kon pas echt groot worden met de toepassing van dynamisch geheugen: hierin wordt elk bit opgeslagen in één (piepklein) condensatortje. Dynamisch geheugen is als een lekke emmer: gegevens gaan verloren, tenzij het hele geheugen regelmatig een „refresh” krijgt — de huidige waarde wordt dan opnieuw geschreven (de halfvolle emmertjes worden weer tot de rand gevuld).

Hoeveelheid en prijs

Oorspronkelijk bestond geheugen in een ibm compatibele pc (en hobbycomputers) uit een flinke serie op het moederbord geprikte geheugenchips: voor de standaardhoeveelheid waarschijnlijk al 16 of meer chips en vaak had je dan ook nog lege voetjes om het geheugen uit te kunnen breiden naar 640kB. In latere versies plaatsten fabrikanten vaak 768kB of zelfs 1MB geheugen vanwege de ruimtebesparing; je kon het extra geheugen niet eens rechtstreeks voor dos gebruiken.

Bovenaan dit artikel vertelde ik over de sipps die in het eerste moederbord dat ik kocht gingen. Deze 30-pin sipps werden snel opgevolgd door 30-pin simms (dezelfde modules maar dan zonder de pootjes) wat jaren lang de standaard bleef. Je had ze in 256kB, 1MB en 4MB uitvoering en je moest ze altijd in setjes van 2 of 4 precies dezelfde gebruiken.

c t 1995 heft 11 p355 Praxistip Speicher

pagina uit een tijdschrift uit 1995
in de grafiek: de prijs van 1MB geheugen in D-Mark

Ongeveer bij de komst van de 486 cpu werden 30-pins simms opgevolgd door 72-pin simms. Onder andere de firma WED/ECMIC maakte adaptertjes waarmee je 4 30-pin simms kon gebruiken in een socket bedoeld voor 1 72-pin simm. Maar dat type is intussen al weer ruim tien jaar geleden opgevolgd door 168-pin dimms.

De prijs van computergeheugen was altijd al net zo volatiel als nu: het is niets bijzonders als de de prijs verdubbelt of halveert in een paar maanden tijd. Dat was al zo in de tijd van de losse geheugenchips en dat is ook zo bij geheugenmodules.

Er was trouwens een tijd dat geheugenmodules voor een standaard hobbycomputer duurder waren dan hun gewicht in puur goud.

Parity

Volgens mij was het met de AT 286 computer dat ibm de „parity check” introduceerde: 12,5% aan extra geheugenchips zorgen ervoor dat als er ergens in een van de geheugenchips 1 van de duizenden bits niet goed werkt dit doorgegeven wordt aan de cpu (als een „nmi” interrupt). En dan gebeurde dit:

parity-error

in de linkerbovenhoek van het scherm en verder niets meer. Het Operating System dos liep simpelweg helemaal vast. En dit is voor zover ik weet bij latere Operating Systems van Microsoft ook altijd zo gebleven.

Behalve als er een geheugenmodule stuk is, kon deze melding kan ook optreden als gevolg van kosmische straling — dat is ongeveer één keer per systeem per jaar.

Op de 30-pin simms werd normaal gesproken altijd een 9e (of later: het 3e chipje) voor het paritybit toegevoegd, alleen in érg goedkope (merk-)systemen ontbrak dit in die tijd wel eens. Zo’n enkel paritybit is alleen geschikt voor detectie van fouten in een oneven aantal bits, zoals het spreekwoordelijke „omgevallen bitje”.

Een 72-pin simm heeft 32 databits en 4 paritybits, het moederbord zou deze 4 paritybits kunnen gaan combineren voor de iets betere ecc check. Dat is alleen in theorie mogelijk, want de 32 databits kunnen als 4 onafhankelijke bytes geschreven kunnen worden en in zo’n geval wordt het herberekenen van de ecc wel erg complex (en langzaam).

Er waren fabrikanten van geheugenmodules die bespaarden op de kosten door de parity niet in een geheugenchip op te slaan, maar door hem bij elke leesactie opnieuw te laten berekenen met een speciaal chipje op de simm. Dit werkte niet in alle computers even goed, waarschijnlijk door de vertraging die deze berekening veroorzaakte. In die tijd werd er op nog veel meer manieren gerotzooid met geheugenmodules, waar ik al eerder een artikel over schreef.

Voor systemen waar nog betere check belangrijk was werden er simms gemaakt met extra bits, terwijl voor bouwers die goedkoper geheugen wilden de paritybits werden weggelaten. Je kon 32-bits, 36-bits en 40-bits geheugenmodules kopen. Er waren alleen bijna geen moederborden met ondersteuning voor 40-bit simms en in de praktijk stapte nu bijna iedereen over op geheugenmodules zonder parity (32 bits dus): omdat het goedkoper was, omdat de kwaliteit van geheugen toegenomen was en omdat het OS een gevonden fout toch niet kon oplossen.

SPF chip

Tegenwoordig bevatten dimms een kleine chip waarin de specificaties van de module zijn opgeslagen. Op die manier kan het moederbord zichzelf automatisch configureren op deze module. Het spreekt voor zich dat bij de allergoedkoopste partijen geheugenmodules deze chip gewoon ontbrak.

Rare dimms

Een van de vreemdste fenomenen op geheugengebied was dat je de eerste dimms te koop in een „gebufferde” en een „ongebufferde” versie. De bufferchips op de dimm zorgden voor een vertraging en daar konden pc’s niet tegen.

Je kon bij dimms ook kiezen tussen een 3 Volt en een 5 Volt uitvoering. Het soort dimms is gecodeerd met een nokjes, als ze niet werken zullen ze ook niet in het voetje passen.

Waarom je deze dingen kon kopen is me nooit duidelijk geworden: ik ken geen enkel systeem dat kan werken met een ander type dan precies dat ene „standaardtype” dimm.

Cache

Het cachegeheugen is een speciaal stuk snel (dus statisch) geheugen in de pc, als het ware tussen de cpu en het gewone geheugen in. Vanaf de snelste typen 386DX werd het moederbord meestal uitgerust met cachegeheugen, omdat toen de processor te veel vertraagd werd door het gewone (dynamische) werkgeheugen.

Wilde je een systeem bouwen met veel werkgeheugen, meer dan wat de meeste gebruikers  hadden, dan moest je bij de meeste moederborden een grotere „Tag ram” chip plaatsen: de grootte van deze chip bepaalde namelijk hoeveel Megabyte van het werkgeheugen cache-baar was. Alles boven dat maximum wordt niet gecached en dat maakt zo’n pc erg traag.

Vanaf de 486 werden cpu’s geleverd met een ingebouwde cache. Maar omdat deze relatief klein was werd door moederbordfabrikanten gewoonlijk nog steeds een externe cache toegevoegd: de cache in de cpu werd voortaan „L1 cache” genoemd en de cache op het moederbord „L2 cache”. De allergoedkoopste systemen hadden natuurlijk geen L2 cache.

Een tijd was het zo dat je op sommige moederborden, bijvoorbeeld het Intel Endeavour moederbord, zelf een L2 cache kon toevoegen door het plaatsen van een COASt module (soms ook „CELP module” genoemd). Dit was een standaard die — vreemd genoeg — bedacht is door Motorola.

Vanaf de PentiumPro is in de meeste cpu’s ook de L2 cache ingebouwd. cpu’s die dit niet hebben bestaan wel, maar ze zijn altijd heel erg langzaam.

Videokaart

Sinds behoorlijk wat jaren is het normaal om de videokaart rechtstreeks toegang te geven tot het geheugen van de cpu. Dit is tegenwoordig niet meer zo bezwaarlijk als zeg 10 jaar geleden: als eerste omdat het geheugen steeds sneller geworden is, als tweede omdat bij 3D spelletjes de cpu toch al grote hoeveelheden videogeheugen moet vullen.

In de jaren ’90 was het op een systeem goed te merken wanneer je videokaart het systeemgeheugen als „framebuffer” gebruikte: bij een hoge resolutie werd het systeem er ongeveer de helft trager door.

Groot en snel

1GB = 1024MB = 1024*1024kB

De afgelopen 10 jaar is er niet zoveel ontwikkeling meer op geheugengebied als in de jaren ’90. Het enige dat tegenwoordig nog verandert is dat geheugen steeds groter, sneller en goedkoper wordt.

Momenteel (2009) worden computers uitgerust met minimaal 1GB geheugen en ondersteunen cpu’s vanwege de 32-bits adresbus maximaal 4GB geheugen. Wil je meer geheugen kunnen gebruiken, dan moet je overstappen op de 64-bits versie van een Operating System.

Geheugen is tegenwoordig zo goedkoop dat veel systemen, zelfs laptops, worden uitgerust met de maximum hoeveelheid geheugen.

Vergelijk met vroeger:

  • Het kopiëren van 64kB geheugen met het snelste kopieercommando van de Z80-A microprocessor duurde 25 jaar geleden op de ZX Spectrum ongeveer een hele seconde. Als geheugen nu nog steeds dezelfde snelheid zou hebben, dan zou het opstarten van een pc met 1GB geheugen (16384 keer zoveel) meer dan 4 uur kosten;
  • Als de prijzen van geheugen sinds september 1991 niet meer gezakt zouden zijn, dan betaalden we nu (september 2011) voor een karige 1GB geheugen ongeveer 52.000 euro — maar gelukkig daalde de prijs de afgelopen 20 jaar met gemiddeld bijna 37% per jaar.

In de tijd dat ibm het systeem os/2 wilde verkopen als opvolger van dos, moest je 16MB geheugen hebben om het goed te kunnen gebruiken. In de tijd dat dit speelde was 1MB of 4MB normaal voor een pc en kostte uitbreiding naar 16MB je ruim 1.000 gulden. Dat was een bedrag dat niemand er voor over had om even os/2 te kunnen uitproberen. Concurrent Microsoft kwam met Windows op de markt, dat genoeg had aan 4MB geheugen en wat dit kleine verschil in de systeemeisen betekende voor de verloop van de geschiedenis is bij iedereen bekend.

Chipfabrikanten zetten graag hun nieuwste productieprocessen in voor de productie van geheugenchips (Intel meestal uitgezonderd). Dit omdat de structuur van een geheugenchip heel erg simpel is; een grotere geheugenchip is gewoon meer van hetzelfde, dat is een snelle manier om een nieuw productieproces toe te passen.

Advertenties

3 gedachtes over “Evolutie van PC’s: het geheugen

  1. Begin jaren ’90 was het nog een groot probleem om zoveel geheugen in je PC te zetten dat je OS/2 kon draaien. Je had OS/2 willen uitproberen, maar dat kon niet want geheugen was te duur.

    Tegenwoordig zijn de rollen omgedraaid: met de nieuwe i7 moederborden van Intel plaats je DDR3 geheugenmodules in groepjes van 3. Voor zo’n $800 koop je nu een moederbord met CPU en 24 Gigabyte geheugen. Je kunt 24GB in je PC zetten, maar niemand heeft daar nog een zinvolle toepassing voor bedacht.

    In de reacties bij het volgende artikel lees je een oplossing: programmeurs moeten gewoon nog slechter gaan programmeren.
    24 Gigabytes of Memory Ought to be Enough for Anybody

    Op school heb ik trouwens nog ooit moeten leren dat een „echte computer” per definitie te weinig geheugen heeft.

  2. Het OS heeft in het verleden altijd een grote rol gespeeld om meer geheugen te willen gebruiken. In de tijd van de 286 en 386DX CPU’s was geheugen ontzettend duur, maar toch boden moederborden relatief veel uitbreidingsruimte voor geheugen: het was voor iedereen duidelijk dat je in de toekomst veel meer geheugen zou willen gaan gebruiken–het probleem was dat op dat moment het nog meerdere netto modale maandsalarissen kostte om een standaard moederbord tot het maximum uit te breiden.

    De drijfveer vanuit het OS is verdwenen, sterker nog: Microsoft geeft tegenwoordig aan dat ze Windows steeds zuiniger met geheugen kunnen laten omgaan. Voor een gewone hobbycomputer is 4GB of 8GB voorlopig (2016) genoeg. Een van de weinige redenen waarom iemand tegenwoordig veel meer geheugen zou willen gebruiken, is het draaien van virtuele machines. Het is tegenwoordig vooral de keuze voor een type CPU die bepaalt wat de maximale hoeveel geheugen is dat je kunt gebruiken: standaard moederborden zijn beperkt tot een maximum van 32GB of 64GB geheugen en dat is genoeg om een paar virtuele machines tegelijk te draaien.

Vertel jouw mening

Vul je gegevens in of klik op een icoon om in te loggen.

WordPress.com logo

Je reageert onder je WordPress.com account. Log uit / Bijwerken )

Twitter-afbeelding

Je reageert onder je Twitter account. Log uit / Bijwerken )

Facebook foto

Je reageert onder je Facebook account. Log uit / Bijwerken )

Google+ photo

Je reageert onder je Google+ account. Log uit / Bijwerken )

Verbinden met %s