Het geheugen van de toekomst

Inhoudsopgave
  1. 1. Functie van het geheugen
  2. 2. DRAM: de basis
  3. 3. DIMM modules
  4. 4. Bandbreedte en wachttijd
  5. 5. Bandbreedte en wachttijd (vervolg)
  6. 6. De praktijk
  7. 7. Sneller geheugen
  8. 8. De wereld van RDRAM
  9. 9. De keerzijde van de medaille
  10. 10. Rekenen aan RDRAM
  11. 11. De waarde van Rambus
  12. 12. DDR-SDRAM
  13. 13. Conclusie
  14. 14. Reacties

Functie van het geheugen

Dit artikel is oorspronkelijk geschreven voor Computer!Totaal Oktober 2000.

Nog nooit waren de problemen binnen de geheugenwereld zo gecompliceerd. Iedereen is het er over eens dat het bestaande type geheugen voor de pc geen lang leven meer is beschoren. Maar over de keuze van de ideale opvolger bestaat alleen maar onduidelijkheid. Voor de gebruikers van geheugen wordt het er allemaal niet eenvoudiger op. Hoogste tijd dus om de zaken op een rijtje te zetten en uit te leggen hoe dat (DRAM-)geheugen werkt. Verder gaan we uitgebreid in op de voor- en nadelen van nieuwe typen geheugen, zoals Rambus RDRAM en DDR-SDRAM.

Intern geheugen is een van de meest vitale onderdelen van een computer. Al is een systeem nog zo snel, als het niets vast kan houden in het geheugen zijn de gebruiksmogelijkheden nihil. Bij de eerste homecomputers was een geheugencapaciteit van 64 kilobyte nog voldoende. Tegenwoordig is het duizendvoudige daarvan (64 megabyte) de standaard voor nieuwe pc’s! En flink wat computergebruikers vinden zelfs dát intussen al veel te weinig.

Functie van het geheugen

De taak van het geheugen is op het eerste gezicht natuurlijk erg simpel. Je stopt er data in, in de vorm van een serie nullen en enen, en wilt er op een later tijdstip precies diezelfde data weer uit zien te krijgen voor verdere verwerking. Het principe mag dan simpel zijn, in de praktijk komt hier veel bij kijken. Hoe laat je elektronische componenten namelijk een 0 onthouden (in de wereld van de elektriciteit gelijk aan geen spanning) of een 1 (gelijk aan wel spanning)? En hoe geef je precies aan wélk stuk van het geheugen je wilt uitlezen of beschrijven?

Het klinkt misschien vreemd, maar het snelste en eenvoudigste type geheugen wordt vrijwel nooit gebruikt: SRAM, ofwel Static Random Access Memory. SRAM doet in principe precies wat u van geheugen zou mogen verwachten. In één SRAM-cel wordt een bit geplaatst (een 0 of 1), en zo lang de geheugenmodule spanning krijgt blijft deze bit tot in de oneindigheid ‘bewaard’. SRAM maakt hiervoor per bit gebruik van vier tot zes transistors, die het elektrische signaal versterken. Dit grote aantal componenten vormt echter hét nadeel van SRAM, want het zorgt ervoor dat de SRAM-modules erg groot en log zijn. Vandaar dat alle typen geheugen de laatste jaren worden gebaseerd op een andere techniek: DRAM, ofwel Dynamic Random Access Memory.

DRAM: de basis

Bij DRAM-modules zijn nog maar twee elektronische componenten nodig per te onthouden bit: een transistor en een condensator. De condensator kan door middel van een spanning worden ‘opgeladen’. Is zo’n condensator geladen dan staat dat gelijk aan een 1, terwijl een lege condensator een 0 voorstelt. De transistor werkt als een schakelaar die de condensator met de buitenwereld kan verbinden. Figuur 1 laat dat zien.


figuur 1: de opbouw van een DRAM cel

Het voordeel van de DRAM-techniek is dat de modules vele malen kleiner zijn dan SRAM-modules met evenveel opslagcapaciteit. Maar DRAM heeft helaas ook een groot nadeel: condensators verliezen na een tijdje hun lading door elektrische lekkage. Om de zoveel tijd moeten de gegevens dus even opnieuw in de cellen worden geplaatst. Ook als data uit DRAM-cellen worden gelezen verliezen de condensators hun lading. Wordt een deel van een DRAM-module uitgelezen, dan moet dit gedeelte meteen daarna weer met dezelfde data worden beschreven. Dat kost natuurlijk extra tijd en gedurende deze periode kan de geheugenmodule niet worden benaderd. Het opnieuw beschrijven van de geheugenmodule heet in het jargon ‘refreshen’. Je zou het opfrissen kunnen noemen.

De opbouw van een DRAM-geheugenchip is in principe erg eenvoudig en laat zich vergelijken met de vorm van een grote ladenkast. Zoals een ladenkast meerdere rijen en kolommen laatjes kan hebben, zijn in een DRAM-geheugenchip miljoenen geheugencellen verzameld in een matrix. 


Figuur 2: De aansturing van een DRAM geheugenchip

We zien in figuur 2 een schematische voorstelling waarbij alle geheugencellen in een groot vierkant zitten. De geheugenmodule is via twee wegen op het moederbord aangesloten: een adresbus en een databus. Via de adresbus wordt eerst het rijnummer van de gewenste data doorgegeven. De Rij Adres Decoder vangt dit rijnummer op en activeert de gewenste rij. Daar wordt het kolomnummer van de gewenste data doorgeven. Deze gegevens worden opgevangen door de Kolom Adres Decoder die de juiste kolom activeert. Op dat moment is dus de juiste geheugencel binnen de chip geselecteerd en worden de data bij een leesactie via de databus naar buiten gestuurd of bij een schrijfactie via de databus ingelezen.

DIMM modules

In de praktijk is het zo dat een DRAM-module meestal niet één, maar meerdere bits tegelijk met de databus verbindt. Laten we als voorbeeld een DIMM-module met acht chips erop bekijken. De databus van een DIMM module is 64 bit (8 byte) breed. Tijdens een lees- of schrijfactie worden van alle modules tegelijkertijd dezelfde rijen en kolommen geselecteerd. De data op hetzelfde rij-adres binnen alle chips noemt men een geheugen-page. Bij aanwezigheid van acht chips op de module levert iedere chip acht 8 bit per keer. Als er dus 64 bit aan data wordt gelezen komen de eerste 8 bit van de eerste chip, de tweede 8 bit van de tweede chip, en zo gaat dat door tot de achtste chip z’n taak heeft uitgevoerd. De gegevens die bij elkaar horen staan dus verdeeld over alle chips op de module en bevinden zich in iedere chip op hetzelfde rij- en kolom-adres.

Op DIMM-modules is vaak een code te vinden in de vorm van ‘8M*8’. Dit houdt in dat iedere chip 8 Megabyte aan data kan bevatten en iedere chip 8 bit tegelijkertijd aan de databus verbindt. 64 MB geheugenmodules worden vrijwel altijd opgebouwd met acht van deze 8M*8-chips. Op een 128 MB module komen we vaak zestien chips tegen. Zulke modules zijn dan dubbelzijdig uitgevoerd en gedragen zich als twee DIMM-modules in één. Iedere set van geheugenchips die samen een rij van 64 bit vormen noemen we een geheugenbank. Een 128 MB module bevat dus vaker twee geheugenbanken.

Bandbreedte en wachttijd

De snelheid van een geheugenmodule wordt door twee zaken bepaald: bandbreedte (de hoeveelheid data die per seconde kan worden verwerkt) en de verschillende wachttijden, die in het Engels latencies worden genoemd. We zullen de snelheid van DRAM-geheugenmodules bestuderen bij leesacties. Bij het wegschrijven van data naar het geheugen is de snelheid van een geheugenmodule namelijk niet van belang. De processor kan data immers wegschrijven naar een geheugenbuffer in de moederbord-chipset, die er verder voor zorgt dat de gegevens in het geheugen terecht komen. De processor kan dan al weer andere taken uitvoeren. Bij het lezen van data uit het geheugen is het echter mogelijk dat de processor voor verdere werkzaamheden afhankelijk is van de aangevraagde data en er dus op moet wachten. De snelheid van een geheugenmodule is dan wél erg belangrijk.
Het is in dit verband belangrijk om het verschil te bekijken tussen DRAM en SDRAM. De S in de naam staat voor ‘Synchronous’. SDRAM-modules werken synchroon aan de Front Side Bus van het moederbord, dus bijvoorbeeld op 66, 100 of 133 MHz. Vaak worden SDRAM-modules dan ook aangeduid als PC66, PC100 of PC133, om daarmee de maximale werksnelheid aan te geven.

De maximale bandbreedte van de verschillende typen SDRAM-modules is eenvoudig te berekenen. We hebben al gezien dat DIMM’s 64 bit tegelijkertijd op de databus plaatsen. Per klokslag zouden er zo 8 bytes kunnen worden gelezen. De term 100 MHz geeft aan dat er honderd miljoen ‘klokslagen’ per seconde zijn. In totaal kunnen er dus er dus 100M x 8 = 800 Megabytes aan data per seconde worden verwerkt. Voor PC133-modules (werkend op 133 MHz dus) is deze maximale bandbreedte gelijk aan 133M x 8 = 1066 MB/s.

Dat deze maximale bandbreedtes in de praktijk nooit worden gehaald komt door de verschillende wachttijden, die we al eerder hebben genoemd. Al deze wachttijden worden bij SDRAM-modules uitgedrukt in het aantal klokslagen. 
De eerste belangrijke wachttijd wordt gevormd door de periode die nodig is tussen het tijdstip waarop het rij-adres op de adresbus wordt geplaatst en het moment waarop het kolom-adres op de adresbus mag arriveren. Deze wachttijd wordt de ‘RAS to CAS latency’ genoemd. De tweede belangrijke wachttijd geldt voor de tijd die verstrijkt tussen het plaatsen van het kolom-adres op de adresbus en het verschijnen van de gewenste data op de databus. Deze wachttijd noemen we ‘CAS latency’. 

Bandbreedte en wachttijd (vervolg)

Het vinden van de derde belangrijke wachttijd kost wat meer moeite. Eerst moeten we analyseren wat er gebeurt als twee stukken data achter elkaar worden aangevraagd. De meest ideale situatie doet zich voor als het tweede stuk gegevens in dezelfde rij staat, maar in een andere kolom. Dit wordt in het jargon een ‘page hit’ genoemd. De RAS to CAS latency is dan gelijk aan 0 en we hoeven dus alleen tijdens de periode van de CAS latency te wachten op de nieuwe data. Bij een ‘page miss’ is ook nog de overgang naar een nieuwe rij nodig en zijn zowel de RAS to CAS als de CAS latency van toepassing. De minst ideale situatie doet zich voor als een andere rij in dezelfde geheugenbank nodig is, terwijl de vorige rij nog ‘open’ staat. Zoals gezegd moeten de gegevens eerst opnieuw worden weggeschreven, voordat we nieuwe data kunnen aanvragen. De wachttijd die hiervoor nodig is noemen we ‘Precharge Time’.

De drie belangrijke wachttijden zijn meestal 2T of 3T lang, wat 2 of 3 klokslagen betekent. Bij 100 MHz is één klokslag gelijk aan 10 ns (1 nanoseconde = 0,000001 seconde) De verschillende wachttijden zijn dus in de praktijk meestal 20 of 30 nanoseconde. Vaak wordt bij SDRAM-modules nog een extra code toegevoegd, zoals bijvoorbeeld SDRAM-222. Wat schuilt er achter deze term? De eerste 2 betekent een CAS latency van 2T, de tweede 2 een RAS to CAS latency van 2T en de derde 2 een Precharge Time van 2T. SDRAM-222-modules zijn op dit moment de snelste in hun soort die verkrijgbaar zijn, de langzaamste zijn meestal van het type SDRAM-333. Geeft de fabrikant geen verdere specificaties, dan kunt u er bijna zeker van zijn dat het om een SDRAM-333-module gaat. Het is vaak erg lastig om SDRAM-222-modules te pakken te krijgen. Ze zijn niet alleen sneller, maar ook een stuk duurder. Op de bestaande DIMM-modules is altijd een kleine EPROM-chip aanwezig, waarin de timing-informatie van de module is opgeslagen. Zo weet het moederbord met welke wachttijden rekening moet worden gehouden. Deze EPROM-chip draagt de naam SPD, wat staat voor Serial Presence Detect.

De praktijk

Om te achterhalen hoe snel een geheugenmodule in werkelijkheid is, moeten we bekijken welke wachttijden de processor precies ziet. Om te beginnen duurt het gemiddeld één klokslag om de geheugenaanvraag van de processor naar de chipset te versturen. Vervolgens is één klokslag nodig om de geheugenaanvraag van de chipset naar de geheugenmodule te sturen. Afhankelijk van het feit of we een page-hit of page-miss hebben volgt dan de cyclus van RAS to CAS latency, CAS latency en eventueel Precharge Time. Daarna duurt het één klokslag om de data te versturen en circa twee klokslagen om de data van de DRAM-outputbuffer bij de processor te krijgen. Aan de RAS to CAS, CAS en Precharge Time latencies moeten we dus gemiddeld 5T toevoegen voor de communicatie met de processor.

Een DIMM-module verzendt 64 bit per keer en heeft de mogelijkheid om 256 achtereenvolgende bits zonder extra vertraging achter elkaar te verplaatsen. De eerste 64 bit hebben dus een lange wachttijd, terwijl voor de tweede tot en met de vierde serie van 64 bit steeds nog maar één klokslag per serie nodig is. Het versturen van data in vier opeenvolgende cycli is overigens een eigenschap van DRAM die in de tijd van EDO-RAM is geïntroduceerd.

We kunnen nu de bandbreedte van PC133-, SDRAM-333- en SDRAM-222-modules berekenen. Dit alles vinden we terug in de tabellen 1 en 2. Uit de inhoud van die tabellen kunnen we een aantal conclusies trekken. Allereerst blijkt er een wezenlijk snelheidsverschil te bestaan tussen SDRAM-333- en SDRAM-222-modules. Belangrijker nog is de constatering dat een DIMM-module zelfs in de meest ideale situatie slechts veertig procent van de maximale, theoretische bandbreedte kan halen!

Tabel 1: Bandbreedte in de praktijk (PC133 SDRAM-333)

  Kans op deze situatie SDRAM wachttijden Totale wachttijd voor de eerste 64 bit Totale wachttijd voor de complete 256 bit Maximale bandbreedte in de praktijk
Page hit ca. 55% Alleen CAS latency: 3T 3T + 5T = 8T 8T + 1T + 1T + 1T = 11T 369 MB/s
Page miss ca. 40% RAS to CAS en CAS latency: 3T + 3T = 6T 6T + 5T = 11T 11T + 1T + 1T + 1T = 14T 290 MB/s
Page miss en oude rij nog open staand ca. 5% RAS to CAS en CAS latency / precharge time: 3T + 3T + 3T = 9T 9T + 5T = 14T 14T + 1T + 1T + 1T = 17T 239 MB/s

Tabel 2: Bandbreedte in de praktijk (PC133 SDRAM-222)

  Kans op deze situatie SDRAM wachttijden Totale wachttijd voor de eerste 64 bit Totale wachttijd voor de complete 256 bit Maximale bandbreedte in de praktijk
Page hit ca. 55% Alleen CAS latency: 2T 2T + 5T = 7T 7T + 1T + 1T + 1T = 10T 406 MB/s
Page miss ca. 40% RAS to CAS en CAS latency: 2T + 2T = 4T 4T + 5T = 9T 9T + 1T + 1T + 1T = 12T 338 MB/s
Page miss en oude rij nog open staand ca. 5% RAS to CAS en CAS latency / precharge time: 2T + 2T + 2T = 6T 6T + 5T = 11T 11T + 1T + 1T + 1T = 14T 290 MB/s

Sneller geheugen

Voordat we bekijken welke mogelijkheden er zijn voor snellere typen geheugen is het interessant om te analyseren waar dat voor nodig is. Misschien weet u dat het geheugen op het moederbord is verbonden met de zogeheten North Bridge van de chipset. Die North Bridge kunnen we vergelijken met een politieagent, die het verkeer regelt tussen vier belangrijke onderdelen van de pc: de processor, de AGP-bus, de PCI-bus en natuurlijk het geheugen. Theoretisch is het mogelijk dat zowel de processor, de AGP-bus als de PCI-bus tegelijkertijd op volle kracht het geheugen willen benaderen. De gewenste geheugenbandbreedte is dan dus gelijk aan de som van de bandbreedte van de processor, de AGP-bus en PCI-bus.

In figuur 3 is zo’n situatie in beeld gebracht. Als voorbeeld is een Pentium III-processor genomen op 133 MHz FSB en een daarvoor geschikt moederbord, bijvoorbeeld met Intel 815- of VIA Apollo Pro 133(A)-chipset. De maximale bandbreedte van de 64 bit verbinding tussen chipset en processor is 133 MHz * 8 bytes = 1066 MB/s. De bandbreedte van een AGP 4X bus is gelijk aan 66 MHz * 4 bytes * 4 = 1066 MB/s. Als laatste is er de bijna te verwaarlozen bandbreedte van de PCI-bus: 33 MHz * 4 bytes = 133 MB/s. Alles bij elkaar opgeteld komen we dan op een gezamenlijke bandbreedte van 2266 MB/s. Maar dat ligt wel ver boven de theoretische bandbreedte van PC133 SDRAM, die zoals gezegd 1066 MB/s bedraagt.


Figuur 3: De huidige situatie met de doorvoersnelheden tussen de diverse bussen

In de toekomst wordt dit probleem nog veel groter: de Intel Pentium IV krijgt bijvoorbeeld een ‘quad-pumped’ 100 MHz bus, wat in de praktijk betekent dat die eigenlijk op 400 MHz werkt. De bandbreedte hiervan is een dikke 3200 MB/s (400 MHz * 8 byte). Verder praat Intel al over AGP 8X, nu nog onder de codenaam Beyond AGP 4X. De bandbreedte hiervan is 66 MHz * 4 bytes * 8 = 2133 MB/s. Als laatste zorgt de nieuwe Accelerated HUB Architecture nog voor een extra aansluiting van 266 MB/s. Al deze ontwikkelingen maken duidelijk dat de pc-wereld wel toe is aan sneller geheugen!


Figuur 4: De toekomstige situatie waarin de doorvoersnelheden van de diverse bussen nog veel groter worden.

Op dit moment zijn er twee levensvatbare initiatieven voor sneller geheugen. Aan de ene kant pleit Intel samen met het bedrijf Rambus voor de invoering van Direct RDRAM. Maar de meeste geheugenfabrikanten hebben nu juist hun voorkeur gegeven aan DDR-SDRAM. Een moeilijke kwestie, omdat er niet zonder meer kan worden gezegd welke keuze (op termijn) de beste is. Alle nieuwe geheugentypes zijn trouwens nog altijd gebaseerd op DRAM.

De wereld van RDRAM

In principe zijn er twee manieren om de bandbreedte van geheugen te vergroten. Eén mogelijkheid is om de klokfrequentie - dus het aantal tikken - van het geheugen op te voeren. Een tweede optie is verbreding van de databus, waardoor meer bits per klokslag kunnen worden verstuurd. Het probleem is echter dat beide ‘oplossingen’ elkaar tegenwerken: hoe breder de databus, hoe moeilijker het is om de juiste signaalwaarden te behouden bij hoge frequenties. Andersom geldt dat natuurlijk ook: hoe hoger de klokfrequentie, des te moeilijker wordt het om een brede databus in stand te houden.

De firma Rambus, ontwikkelaar van het RDRAM-systeem, is in principe een andere weg ingeslagen dan de andere geheugenfabrikanten. In plaats van een brede databus van 64 bit (zoals we die nu ook bij SDRAM-DIMM’s hebben), kiest Rambus voor een smalle 16 bit databus, maar wel op een erg hoge frequentie. Een Rambus-kanaal werkt op 400 MHz, en dan in DDR-modus (Double Data Rate). Door zowel op positieve als negatieve klokflanken dataoverdracht plaats te laten vinden werkt Rambus dus eigenlijk op 800 MHz. De maximale theoretische bandbreedte van RDRAM komt zo neer op 800 MHz * 2 bytes = 1600 MB/s. Dat is een stuk meer dan de bestaande PC133 SDRAM-modules presteren! 

Duiken we wat dieper in het Rambus-systeem, dan blijkt het echter toch wat minder ideaal te zijn dan het ogenschijnlijk lijkt. Een citaat van webjournalist Paul DeMone: “Het goede nieuws van RDRAM is dat het sneller werkt dat het huidige geheugen. En het slechte nieuws van RDRAM is dat het langzamer is dan het huidige geheugen.” Het klinkt gek, maar het klopt helemaal!

De beschreven Rambus-snelheid noemt Rambus vanwege de marketing PC800. Dit in de hoop dat mensen denken dat PC800 Rambus-geheugen achtmaal sneller is PC100 SDRAM-geheugen. Aangezien de yields (het percentage bruikbare chips na fabricage) van PC800 RDRAM erg laag zijn, heeft men ook een PC600- en een PC700-standaard ontworpen. Zoals tabel 3 laat zien werken deze echter niet altijd op 300 of 350 MHz DDR! 

Tabel 3: Kloksnelheden en theoretisch maximale bandbreedtes van RDRAM

Rambus Type CPU met 100 MHz FSB CPU met 133 MHz FSB
PC600 300 MHz DDR: 1200 MB/s 266 MHz DDR: 1066 MB/s
PC700 300 MHz DDR: 1200 MB/s 356 MHz DDR: 1424 MB/s
PC800 400 MHz DDR: 1600 MB/s 400 MHz DDR: 1600 MB/s

Veel mensen hebben al bij voorbaat een afkeer gekregen voor de weg die Rambus is ingeslagen. Toch ligt de keuze voor het Rambus-systeem erg voor de hand. Op meerdere plaatsen binnen de pc komen we namelijk soortgelijke veranderingen tegen. Het duidelijkste voorbeeld is wel de overgang van de parallelle poort naar de USB-bus. Een parallelle poort kan 8 bit tegelijkertijd versturen, maar slechts op een lage snelheid. Bij USB is gekozen voor het serieel versturen van 1 bit tegelijkertijd, maar dan wel op een veel hogere snelheid. Iets soortgelijks gaan we in de toekomst zien bij de opvolger van de Ultra ATA/100-standaard voor harde schijven. Ultra ATA/100 wordt opgevolgd door Serial ATA, dat maar 1 bit (in plaats van 16) tegelijkertijd verstuurt, maar op veel hogere snelheden. Een groot voordeel van smalle databussen zien we als we een geheugenbus twee keer op een moederbord willen situeren. Twee SDRAM-bussen op één moederbord plaatsen is bijna onmogelijk, omdat alles wat nodig is voor de 64 bit databus twee keer moet worden uitgevoerd. Dat maakt het leggen van de benodigde spoortjes op de moederborden vrijwel onmogelijk. Als een fabrikant het al voor elkaar zou krijgen, dan moet het moederbord uit vele extra lagen bestaan. Daarmee worden de kosten enorm opgeschroefd. Het dubbel uitvoeren van een Rambus-geheugenbus is door toepassing van de smalle databus een veel kleiner probleem. Op sommige moederborden met een Intel 840-chipset gebeurt het zelfs al! Vanwege de smalle databus is Rambus-geheugen ook veel makkelijker te integreren. De Sony Playstation 2 bijvoorbeeld maakt gebruik van 32 MB RDRAM-geheugen.

De keerzijde van de medaille

De aansturing van RDRAM verschilt sterk met die van SDRAM. Dat is duidelijk te zien in figuur 5. In het bovenste gedeelte is de werking van SDRAM afgebeeld. Wordt er 64 bit aan data aangevraagd, dan worden alle chips op de DIMM-module tegelijkertijd (dus parallel) aangesproken. De databus van SDRAM’s loopt dus als het ware ‘onder de modules door’. In het tweede gedeelte van dezelfde figuur 5 wordt de werkwijze van RDRAM getoond. De databus loopt hier door de modules en door de verschillende geheugenchips heen, die serieel worden aangesproken. Het houdt dus in dat de data niet verspreid zijn over de verschillende geheugenchips, maar dat in de eerste chip het eerste stuk data staat, in de tweede chip het tweede, enzovoort. Een volledige Rambus-keten mag uit maximaal 32 chips bestaan, verdeeld over maximaal twee (op sommige moederborden drie) zogenaamde RIMM-modules. Het einde van de Rambus-bus wordt op het moederbord aangegeven, ‘getermineerd’ in vakjargon. Dit brengt met zich mee dat in ongebruikte RIMM-slots een ‘lege’ RIMM-module moet worden geplaatst.


Figuur 5: De aansturing van RDRAM is duidelijk anders dan bij SDRAM

De seriële opbouw van een Rambus-geheugenbus veroorzaakt wel enkele extra complicaties. Het minst belangrijke probleem wordt veroorzaakt door het feit dat de verschillende chips niet gelijkmatig worden gebruikt. Dit kan ervoor zorgen dat bepaalde chips erg heet worden. Om dit probleem te omzeilen zijn RIMM-modules voorzien van een ‘heatdispenser’, die de hitte over de gehele module verdeelt. Dat verklaart waarom RIMM-modules van een speciaal kapje zijn voorzien.

Belangrijker is het probleem is dat het versturen van data vanuit de laatste chip een stuk langer kan duren dan bij de eerste chip het geval is, door de relatief lange afstand die moet worden afgelegd. De lengte van de Rambus-geheugenbus maakt het nodig om extra wachttijden te introduceren. Deze worden zo gekozen dat de laatste module er nog net in past. De werking van de modules die als eerste gegevens verzenden tijdens een cyclus wordt dus in principe vertraagd. Dit verklaart dan ook waarom RDRAM met zeer hoge wachttijden kampt.

Rekenen aan RDRAM

Natuurlijk kunnen we ook op RDRAM berekeningen loslaten. Net als bij SDRAM worden bij RDRAM de data in cycli van vier verstuurd. De fasen twee tot en met vier nemen elk nog maar één klokslag in beslag. Vertaald in ‘T-termen’ (eerder getoond in tabel 2) heeft een SDRAM-222-module de karakteristiek 7T-1T-1T-1T, als er sprake is van een page hit. Voor een Rambus-configuratie is die karakteristiek: 12T-1T-1T-1T. De extra wachttijd wordt veroorzaakt door de lengte van de bus. De precieze berekening laten we maar achterwege, omdat het daarmee wel heel erg complex wordt. Met deze informatie kunnen we ook voor Rambus de maximale bandbreedte in de praktijk berekenen. De resultaten worden getoond in tabel 4. Om het nog een beetje eenvoudig te houden beschouwen we alleen het meest voorkomende geval van een page-hit.

Tabel 4: Bandbreedtes van geheugen in de praktijk

Type geheugen Klokfrequentie T = 1/f = Aantal bit na één sessie Totale wachttijd voor één sessie Maximale bandbreedte in de praktijk
PC133 SDRAM-222 133 MHz 7,5 ns 256 (4 * 64) 7T + 1T + 1T + 1T = 10T 406 MB/s
PC133 SDRAM-333 133 MHz 7,5 ns 256 (4 * 64) 8T + 1T + 1T + 1T = 11T 369 MB/s
PC800 RDRAM 800 MHz 1,25 ns 64 (4 * 16) 12T + 1T + 1T + 1T = 15T 407 MB/s
PC700 RDRAM 712 MHz 1,40 ns 64 (4 * 16) 12T + 1T + 1T + 1T = 15T 362 MB/s
PC600 RDRAM 533 MHz 1,88 ns 64 (4 * 16) 12T + 1T + 1T + 1T = 15T 271 MB/s

Hoewel de maximale bandbreedte van Rambus-geheugen in therorie veel hoger is dan die van PC133 SDRAM, is een PC800 RDRAM-configuratie in de praktijk vrijwel even snel als een PC133 SDRAM-222-configuratie. Daaruit blijkt dat niet alleen de theoretische bandbreedte, maar vooral ook de wachttijden erg belangrijk zijn. Uit de tabel kunnen we nog een tweede conclusie trekken die belangrijk is: PC600 en PC700 RDRAM is niet interessant! De prestaties die hiermee worden bereikt liggen lager dan bij SDRAM PC133-geheugen.

Om de berekening van de waarden te ondersteunen hebben we met enkele benchmarks PC800 RDRAM vergeleken met PC133 SDRAM-222-geheugen. Ook dan blijkt dat de prestaties vrijwel gelijk zijn. Voor deze test is gebruik gemaakt van een Intel Pentium III 800 MHz-processor (133 MHz FSB), een Hercules 3D Prophet DDR/DVI-videokaart, een AOpen AX6BC Pro-moederbord (Intel BX-chipset) voor de SDRAM-configuratie en een AOpen AX6C-moederbord (Intel 820-chipset) voor de RDRAM-configuratie. De resultaten zien we in tabel 5.

Tabel 5: Vergelijking SDRAM en RDRAM

Type geheugen Sysmark 2000 Office Sysmark 2000 Content 3D Mark 2000
PC800 RDRAM 158 168 4807
PC133 SDRAM-333 160 162 4969

De waarde van Rambus

Zoals blijkt is Rambus op dit moment nog niet echt waardevol, omdat de prestaties vrijwel gelijk zijn aan die van PC133 SDRAM-222. Wat de aanschaf betreft heeft Rambus zelfs een groot nadeel: RIMM-modules zijn vele malen duurder dan DIMM-modules! Op basis van de nu bekende gegevens ligt die prijs zelfs zes keer zo hoog. Over de oorzaak daarvan bestaat wel wat verwarring. Volgens veel fabrikanten is er bij de fabricage sprake van veel uitval, anderen zeggen dat er hoge royalties (vergoedingen) moeten worden betaald. Maar het lijkt toch vooral op onwil van geheugenfabrikanten. Om dat duidelijk te maken is enige achtergrondinformatie nodig. De firma Rambus is de uitvinder van het RDRAM-systeem, maar produceert dit niet zelf. In ruil voor royalties kunnen chipset-fabrikanten RDRAM-chipsets maken en geheugenfabrikanten RDRAM-geheugenmodules. Intel heeft echter veel vertrouwen in de toekomst van RDRAM en sloot daarom een deal met Rambus: Intel mag zonder betaling van royalties RDRAM-chipsets maken en heeft zelfs de mogelijkheid bedongen om over een paar jaar een flink percentage van de aandelen Rambus Inc. te mogen kopen. In ruil daarvoor moet Intel onvoorwaardelijk RDRAM op de markt ‘pushen’. Vandaar dus dat Intel nu de Pentium III en binnenkort ook de Pentium IV koste wat kost met RDRAM wil verkopen. Natuurlijk zitten de geheugenfabrikanten niet te wachten op zo’n een-tweetje van Intel en Rambus. Zij worden niet graag gedwongen om RDRAM-modules te maken en daarvoor royalties af te dragen. Dus van harte gaat dat produceren van RDRAM-modules zeker niet! Het gevolg laat zich raden: er ontstaat schaarste, en dat verklaart de astronomische prijzen voor RDRAM. Er is trouwens nóg een reden voor het gebrek aan enthousiasme: de geheugenfabrikanten hebben inmiddels hun eigen opvolger hebben bedacht...

DDR-SDRAM

Over DDR-SDRAM hoeven we gelukkig geen lange technische verhalen af te steken. Het werkt precies zo als normale SDRAM, alleen is het bekende DDR-systeem (Double Data Rate) toegepast, waardoor per klokslag twee keer dataoverdracht kan plaatsvinden. De wachttijden en andere zaken blijven gelijk. Om een lang verhaal kort te maken betekent dit dat de zowel theoretische als de praktische maximale bandbreedtes worden verdubbeld ten opzichte van SDRAM. Het grootste voordeel voor geheugenfabrikanten is dat ze DDR-SDRAM-chips met hun ‘oude’ apparatuur kunnen fabriceren. Dit scheelt ontzettend veel aan investeringen, omdat een geheugenfabriek al snel een paar miljard gulden kost.

DDR-SDRAM komt er in twee smaken: 100 MHz DDR (dus eigenlijk 200 MHz, vanwege die dubbele dataoverdracht) en 133 MHz DDR (eigenlijk 266 MHz). De bijbehorende theoretische maximale bandbreedtes zijn 1600 MB/s en 2100 MB/s, het dubbele van de theoretische maximale bandbreedtes van de PC100 en PC133 SDRAM-modules. Om de marketing een handje te helpen krijgen de DDR-modules de namen PC1600 en PC2100. De getallen die worden genoemd hebben hier dus niets te maken met de klokfrequenties! DDR-SDRAM kent veel aanhangers binnen de industrie. Zo zijn onder andere VIA en ALI bezig met DDR-chipsets, zowel voor Intel- als AMD-processors. Zoals gezegd hebben ook de meeste geheugenfabrikanten hun zinnen gezet op DDR-SDRAM. 

Op papier is DDR-SDRAM de meest interessante geheugentechniek voor de komende generatie PC’s. Toch is er ook hier sprake van haken en ogen! Zo hebben de meeste fabrikanten nog steeds flinke problemen bij de productie van DDR-SDRAM-chips. Men verwacht voorlopig dan ook grote schaarste. Hoewel de eerste DDR-SDRAM-platforms nu al verkrijgbaar zouden moeten zijn, hebben we nog steeds geen DDR-SDRAM-systeem aan de tand kunnen voelen. Er is ook nog geen enkele geheugen- of chipsetfabrikant die ‘harde’ benchmarks kan laten zien. Dat is een teken aan de wand. De invoering van DDR-SDRAM is een stuk gecompliceerder dan bij RDRAM het geval is.

Het grootste probleem van DDR-SDRAM is dat de uitvoering bijna niet schaalbaar is. We hebben al gezien dat de klokfrequentie verhogen absoluut niet mogelijk is, als gevolg van de brede databus. Ook het plaatsen van twee DDR-SDRAM-controllers op een moederbord zal vanwege de complexiteit vrijwel onmogelijk zijn. Voor de aanhangers van DDR-SDRAM wordt het dus erg moeilijk om een opvolger te vinden voor het systeem.

Conclusie

Het is duidelijk dat er een grote vraag is naar sneller geheugen. Voor de komende generatie systemen lijkt DDR-SDRAM daarvoor voorlopig de beste keus te zijn. We hebben gezien dat het bestaande PC800 RDRAM vrijwel geen voordeel biedt ten opzichte van PC133 SDRAM-geheugen en het grote prijsverschil zal de komende tijd zeker blijven bestaan. De techniek achter het Rambus-geheugen is met het oog op de verdere toekomst het meest interessant, omdat er in tegenstelling tot DDR-SDRAM nog voldoende mogelijkheden zijn voor verdere vernieuwing en uitbreiding, bijvoorbeeld door het plaatsen van meerdere Rambus-controllers op één moederbord. Net als u volgen we de verdere ontwikkelingen natuurlijk op de voet.

0