Het onderdeel van de chipset dat het geheugen aanstuurt. Ook vaak aangeduid als Northbridge.
De lijnen die van de chipset naar de geheugenmodules lopen. Over deze lijnen verzend de geheugencontroller de adressen en de commando’s waarmee de geheugenchips worden aangestuurd. Zeg maar de teugels van de geheugencontroller. Er zijn maximaal 13 adreslijnen waarmee er dus maximaal 2^13 = 8192 rijen en kolommen geadresseerd kunnen worden.
De lijnen tussen de geheugencontroller en de geheugenchips waar de daadwerkelijke data overheen gaat. Dit zijn in het geval van de recente SDRAM soorten 64 stuks (64bit) en voor RIMM worden er 16 gebruikt. In het geval van ECC worden er respectievelijk 72 en 18 datalijnen gebruikt.
Dual Inline Memory Module. Ze heten zo omdat aan beide kanten van het PCB pinnen zitten daar waar op een SIMM de pinnen allemaal aan één kant zitten. Verkrijgbaar in drie soorten, met 168, 184 en 240 pinnen, allen voorzien van een 64/72bits databreedte. De 168pins DIMM’s zijn te krijgen met FPM- EDO- en (VC- en E-) SDRAM chips in vele verschillende maten (van 16MB tot 1GB). De 184pins uitvoering wordt gebruikt voor de DDR-SDRAM modules en deze zijn verkrijgbaar in 128MB t/m 2GB uitvoering. De 240pins uitvoering wordt gebruikt voor de DDR2-SDRAM modules. Deze laatste is verkrijgbaar in 256MB t/m 4GB uitvoering.
Rambus Inline Memory Module. Module gebruikt voor RDRAM. Een RIMM telt 184 pinnen en kan 16 chips bevatten. De databreedte is 16/18bits. In combinatie met de Pentium4 worden deze RIMM’s per identiek paar op het moederbord geplaatst om zo nog meer bandbreedte ter beschikking te stellen. Dankzij het lage aantal lijnen in vergelijking met DIMM’s is een dubbele RIMM geheugenbus relatief makkelijk te implementeren.
Small Outline Dual Inline Memory Module. Dit is de laptopvariant van de DIMM, ze zijn ongeveer de helft kleiner dan een reguliere DIMM. Verkrijgbaar in vier soorten, met 72, 100, 144 en 200 pinnen. Met uitzondering van de 32bits 100pins uitvoering zijn ze voorzien van een 64/72bits databreedte. De 72pins SO-DIMM’s zijn te krijgen met EDO chips, de 100pins SO-DIMM’s zijn te krijgen met FPM chips, de 144 pins uitvoering wordt gebruikt voor SDR-SDRAM chips en de 200 pins voor DDR en DDR2 chips.
Row Address Strobe. Signaal dat wordt verstuurd om de geheugenchip de verstuurde rij adressen te laten herkennen.
tRP. Het terugschrijven van de data in de Sense Amps naar de originele geheugencellen. Hierdoor worden de Sense Amps weer vrijgegeven voor een volgende actie (refresh of RAS-To-CAS)
In deze modus regelt de DIMM zelf de RAS Precharge. Het effect is dat na élke benadering de Open Page gesloten wordt, waarmee je het voordeel van een langer open te houden page mist.
Column Address Strobe. Signaal dat wordt verstuurd om de geheugenchip de verstuurde kolom adressen te laten herkennen.
CL. Het aantal kloktikken dat nodig is om de juiste kolom te selecteren van de rij (page) die in de Sense Amps zit en de inhoud naar de latch te transporteren alwaar de data beschikbaar is voor de geheugencontroller. Hoe lager het aantal kloktikken hoe beter (want minder wachttijd). In de SPD staat de juiste instelling, maar het kan ook in het BIOS met de hand worden ingesteld: 2, 2,5 of 3.
tRCD. Het aantal kloktikken dat nodig is om een geadresseerde rij (page) volledig naar de Sense Amps te schrijven (alwaar het gebufferd wordt). Mogelijkheden zijn 2 of 3 tikken waarbij de laagste de snelste is.
CMD rate. Het aantal kloktikken tussen de Chip-Select (CS) en de Bank-Select (BS). De waarde kan op 1T of 2T in worden gesteld (mits de juiste chipset en BIOS). 1T is sneller. Hoe minder chiprijen aanwezig zijn hoe makkelijker 1T ingesteld kan worden.
Sense Amplifier. Dit is een buffer aan het uiteinde van de kolommen (elke kolom heeft één Sense Amp). Een Sense Amp kan precies de inhoud van één geheugencel omvatten en de Sense Amps binnen één bank kunnen precies één rij (page) omvatten. De hoeveelheid Sense Amps binnen een bank, de Page Size, is een belangrijke maat voor een geheugenmodule. Afhankelijk van de interne constructie van de geheugenchips is deze buffer 2, 4, 8 of 16Kbyte groot.
Een belangrijke wetenswaardigheid is dat als een geheugencel wordt benaderd (lees- en/of schrijfactie) de inhoud gewist wordt! Door telkens gebruik te maken van de Sense Amps kan de gebufferde inhoud naderhand weer naar de originele cellen worden teruggeschreven (tRP).
Een page is de verzameling van alle geheugencellen met hetzelfde rij adres binnen een bepaalde bank/chiprij van alle chips op een module. Een page (rij) past precies in z’n geheel in de Sense Amps (de kleine buffers aan het uiteinde v.d. kolommen).
Wanneer de gewenste data reeds in de Sense Amps (Open Page) staat. Hier wordt een extra adresseringsstap overgeslagen; de juiste rij hoeft niet geselecteerd te worden en hoeft ook niet naar de Sense Amps te worden weggeschreven. Dit bespaart tijd.
tRC (RAS Cycle time). De tijd dat een Open Page actief/open is totdat er een RAS Precharge (tRP) optreed. Dit is van belang wanneer er een Page-miss optreed en de benodigde data in dezelfde bank staat. Hierdoor moeten de Sense Amps eerst worden geleegd (tRP) en vervolgens weer worden gevuld met de juiste page. De tRP (2 of 3 kloktikken) plus de minimale tijd dat een page open moet zijn (Row Active Time, tRAS) vormen samen de Active to Precharge time met een minimum van 5T (kloktikken)
Tegenovergestelde van Page Hit. De benodigde data staat niet in een Open Page zodat de juiste rij geselecteerd moet worden, de huidige inhoud v.d. Sense Amps naar de originele cellen teruggeschreven (RAS Precharge) moet worden en daarna de inhoud van de juiste cellen naar de Sense Amps moet worden geschreven.
Wanneer een page in de Sense Amps staat is noemen we het een Open Page. Een page kan niet altijd open blijven omdat de Sense Amps nodig zijn voor de refresh-cycli. Aan de andere kant is er ook een minimale hoeveelheid tijd dat een page open moet blijven, de Row Active Time (tRAS).
Zie Sense Amps
Een geheugenchip bestaat vanwege snelheidseisen uit meerdere kleine tweedimensionale geheugenvelden met de per veld noodzakelijke schakelingen voor het lezen en schrijven daaromheen geplaatst. De velden hebben een vaste afmeting van 4096 rijen en in het geval van 256+Mbit chips 8192 rijen (die 8192 is het maximum zoals onder Adres- en commandolijnen wordt verklaard). De reden voor de 2^12 = 4096 rijen is de refresh.
Het tweedimensionale principe waarmee een geheugenveld in adressen wordt opgedeeld. Als een schaakbord, maar dan met 4096*512=2097152 of 8192*512=4194304 vakjes.
Het uitgangsregister. De opgevraagde data wordt vanuit de Sense Amps naar de Latch getransporteerd van waaruit de cpu/geheugencontroller de data ophaalt.
Error Checking & Correcting of Error Correcting Code. Dit is een functie waarmee foutieve bits kunnen worden hersteld. Door omstandigheden (straling van buiten af, spanningspieken e.d.) kan een de inhoud van een geheugencel beschadigd raken (een Soft Error); een logische één wordt een logische nul. Dit omvallen van een bit kan behoorlijke gevolgen hebben voor de werking van een computer. Een DIMM met ECC functie heeft een extra geheugenchip en elke databyte (8bits) dat wordt opgeslagen krijgt een pariteit bit mee welke in de extra geheugenchip wordt opgeslagen. Bij het opvragen van data wordt middels een snel algoritme aan de hand v.d. pariteitsbit gecontroleerd of alle bits in de byte onbeschadigd zijn, zo ja dan is er niets aan het handje, zo nee, dan wordt de omgevallen bit hersteld alvorens het byte naar de processor verstuurd wordt.
ECC DIMM’s zijn logischerwijs duurder dan non-ECC DIMM’s; voor elke byte zijn er 9bits nodig i.p.v. 8, vandaar de extra geheugenchip (welke de totale nuttige omvang overigens niet vergroot), zie ook het plaatje bij DIMM keys. Een ECC DIMM is overigens niks langzamer dan een non-ECC DIMM, alleen in het geval dat er tegen een Soft error op wordt gelopen, dan zal er een extra kloktik in worden gelast om de fout te herstellen.
De kans op een omgevallen bit is niet zo groot; volgens een technische studie van Micron ontstaat op een 16MB DIMM slechts één maal in de 16 jaar een Soft error. Dit betekend dat in een 256MB DIMM elk jaar een Soft error voorkomt. Je kunt je voorstellen dat in een kritieke bedrijfsserver met meerdere Gigabytes aan ram het aantal Soft errors per jaar behoorlijk kan oplopen, vandaar dat daar te allen tijde ECC wordt gebruikt.
ECC en non-ECC DIMM’s kunnen samenwerken op één moederbord, met als gevolg dat de ECC functie niet gebruikt kan worden. Overigens moet een moederbord/geheugencontroller wel de mogelijkheid hebben om met ECC om te gaan; niet alle moederborden kunnen de ECC functie van ECC DIMM’s activeren.
Een DIMM is single-sided of double-sided. Één side is een chiprij.
Een DIMM met één chiprij (verwarrend genoeg ook wel ‘bank’ genaamd). Veelal te herkennen omdat er slechts aan één kant geheugenchips zitten. Dit hoeft niet altijd het geval te zijn; er bestaan ook single-sided DIMM’s met aan beide kanten chips. Een DIMM heeft een databreedte van 64bits, dit betekend dat alle chips op de DIMM tezamen minimaal deze 64bits moeten kunnen vullen. Acht chips met elk acht datalijnen krijgen de 64 datalijnen van de DIMM vol, dit kunnen ook 16 chips met elk 4 datalijnen zijn (simpel rekensommetje van 8x8 of 16x4 = 64). In het geval dat alle chips gezamenlijk op 64 datalijnen uitkomen spreekt met altijd van een single-sided DIMM, ongeacht of er nu wel of niet aan beide kanten v.d. DIMM chips zitten. (zie ook chipstructuur)
Een RIMM wordt single-sided genoemd als er chips aan beide kanten zitten. Door het seriële karakter maakt het totaal aantal datapinnen van alle RDRAM chips tezamen niet uit (elke RDRAM chip, buiten de ECC lijnen gerekend, precies 16 stuks); één chip vult het Rambus geheugenkanaal al op.
Een DIMM met twee chiprijen (banken). Veelal te herkennen omdat er aan beide kanten geheugenchips zitten. Echter, zoals bij ‘Single-sided’ opgemerkt kan een DIMM met aan beide zijden chips ook single-sided zijn. Om een DIMM daadwerkelijk als double-sided te kenmerken moeten alle chips op de DIMM gezamenlijk 128 datalijnen hebben, dit door bijvoorbeeld 16 chips met elk acht datalijnen (16x8 = 128). Alleen kunnen er maar 64 datalijnen van de DIMM naar buiten, dus hebben we er tweemaal te veel. Wel, de datalijnen worden per paar parallel geschakeld zodat we toch weer op 64 datalijnen voor de DIMM uitkomen. Het gevolg van dit concept is wel dat de geheugencontroller twee chiprijen (banken) ziet en deze ook moet selecteren (Chip-Select, SC) eer hij ze aan kan spreken.
Veel chipsets kunnen nogal lastig doen wat betreft het aantal banken. Er zijn moederborden met bijvoorbeeld vier DIMM sockets, maar waarvan de chipset maximaal zes banken aan kan sturen. In zo’n geval moet je er voor zorgen dat je alle vier de sockets niet gaat vullen met alleen maar double-sided DIMM’s, want dat zijn acht banken. Neem vier single-sided’s of een combinatie van single- en double-sided waarmee je niet boven de zes banken uit komt.
Ook bij RIMM’s komt de term double-sided voor. Net als eerder opgemerkt (zie Single-sided) gaat het hier alleen om het fysieke voorkomen.
Direct op elkaar volgende gegevens die binnen dezelfde rij van een geheugenmodule zijn opgeslagen kan de chipset zonder veel adresseerwerk (overslaan van tRP en tRCD) met elke kloktik verzenden. Dit is de maximum doorvoer die een DIMM kan halen (en waar de snelheidsaanduiding op gebaseerd is). Zie het als het openen van een waterkraan; eerst moet je handelingen verrichten om de kraan te openen zodat de eerste drup er uit komt, maar vervolgens stromen de overige druppels er automatisch achteraan.
Een term die verwarrend genoeg in meerdere gevallen gebruikt wordt. Een geheugenchip is intern opgedeeld in geheugenvelden en een aantal geheugenvelden vormen samen een bank. Een (DDR-)SDRAM chip van 64Mbit en groter bestaat uit vier banken en een 128Mbit RDRAM chip telt zelfs 32 banken. De chip is om snelheidsredenen opgedeeld in deze banken zodat bepaalde acties elkaar kunnen overlappen; van één bank wordt gelezen terwijl het proces om het juiste adres te benaderen op de andere bank alvast ingezet kan worden. Belangrijk om te weten is dat in het geval van een DIMM de banken van elke individuele chiprij samen worden gevoegd; zodoende kan een DIMM, ongeacht het aantal chips nooit meer dan vier (single-sided) of acht (double-sided) banken totaal tellen. Alle eerste banken van alle chips binnen de chiprij vormen samen de gehele eerste bank, en dit geldt ook voor de tweede, derde en vierde bank. In het geval van een RIMM (dus met RDRAM chips) is dit niet zo; hier blijven alle interne banken apart en zal met het toevoegen van elke chip op de RIMM het totaal aantal banken op de RIMM alleen maar stijgen. Dit komt voort uit het feit dat RDRAM chips onafhankelijk van elkaar de hele 16bits geheugenbus opvullen en bij DIMM’s de chips parallel geschakeld zijn om de gehele 64bits geheugenbus op te vullen.
Het laten overlappen van meerdere acties om tijd te winnen. Één bank adresseren terwijl de ander data levert of schrijft. Bank interleaving levert alleen maar voordeel op bij sequentieel transport van grote gegevenspakketten. Deze functie werkt prima met één DIMM; deze bestaat tenslotte uit meerdere banken. De omvang v.d. gebruikte chips is bepalend of 2-way of 4-way interleaving ingesteld kan worden: alle chips van 64Mbit en groter hebben vier banken en kunnen dus met 4-way-interleave overweg. (zie voor omvang: chipstructuur)
Een DRAM geheugencel lijdt aan geheugenverlies, hoe ironisch! Een cel is een minuscule condensator en omdat de directe omgeving (silicium) een beetje geleidend is ontlaad deze kleine condensator (30~40 femtoFarad) zich continu met als gevolg dat na verloop van tijd (we praten over milliseconden) alle opgeslagen informatie verloren gaat. Om deze amnesie tegen te gaan worden om de 64ms de cellen ververst, de Refresh; de inhoud van een complete rij cellen (page) wordt naar de Sense Amps aan het uiteinde v.d. kolommen geschreven en vervolgens weer teruggekopieerd naar de desbetreffende rij cellen, zodat ze weer volledig opgeladen zijn. Dit rij na rij. Een extern kloksignaal met een periode van 15,6µs zorgt er voor dat na 64ms exact 4096 rijen per keer worden ververst (het standaard ritme van 4k-refresh). 256Mbit chips gebruiken een 8k-refresh (deze hebben twee maal zoveel rijen).
Printed Circuit Board (printplaat). Het rechthoekige plaatje waar de chips en de pinnen op zitten. Deze plaat bestaat uit meerdere lagen met daartussen de printbanen van en naar de chips en de externe pinnen. Het minimum aantal lagen is vier, maar de betere DIMM fabrikanten gebruiken zes lagen. Een belangrijk aspect v.d. DIMM; wanneer goed geconstrueerd zijn de signalen minder ontvankelijk voor storingen en ruis. Hierdoor is de dataoverdracht betrouwbaarder, maar kan de DIMM ook op hogere snelheden draaien.
De chipstructuur geeft aan hoe een chip is opgebouwd; hoeveel datalijnen, hoeveel geheugencellen en hoe deze zijn gerangschikt. Veelal kom je termen tegen als 32Mx8 of 64Mx4 om maar wat te noemen, maar wat betekenen ze nu precies? Het staat voor het aantal Megabits per datalijn van één chip. Dus 32Mx8 betekend 32Megabit per elke datalijn, en daar zijn er acht van, dat maakt 32Megabit maal acht is 256Mbit. Dit is dus een chip welke 256Mbit groot is. Hieronder een overzichtje voor diverse (DDR-)SDRAM DIMM maten:
chipstructuur | DIMM structuur (aantal chips / pagesize) |
capaciteit (DRAM density) | structuurdiepte x datalijnen | bank | row | col | 32MB | 64MB | 128MB | 256MB | 512MB | 1GB |
16Mbit | 4Mx4 | 2 | 12 | 9 | 161 / 4K | | | | | |
64Mbit | 4Mx16 | 4 | 12 | 8 | 4 / 2K | | | | | |
64Mbit | 8Mx8 | 4 | 12 | 9 | | 8 / 4K | 161 / 4K | | | |
64Mbit | 16Mx4 | 4 | 12 | 10 | | | | 321/3 / 8K | | |
128Mbit | 8Mx16 | 4 | 12 | 9 | 4 / 4K | | | | | |
128Mbit | 16Mx8 | 4 | 12 | 10 | | | 8 / 8K | 161 / 8K | | |
128Mbit | 32Mx4 | 4 | 12 | 11 | | | | 162 / 16K | 323 / 16K | |
256Mbit | 16Mx16 | 4 | 13 | 9 | | | 4 / 4K | | | |
256Mbit | 32Mx8 | 4 | 13 | 10 | | | | 8 / 8K | 161 / 8K | |
256Mbit | 64Mx4 | 4 | 13 | 11 | | | | | 162 / 16K | 323 / 16K |
512Mbit | 64Mx8 | 4 | 13 | 11 | | | | | 8 / 16K | 161 / 16K |
512Mbit | 128Mx4 | 4 | 13 | 12 | | | | | | 162 / 32K |
1 Double-sided DIMM met per twee chips de datalijnen parallel geschakeld.
2 Single-sided DIMM met aan beide kanten chips. Voldoet niet aan de PC100/133 specs.
3 32 chip modules (stacked DIMM's), alleen registered DIMM's.
512Mbit bestaat alleen in DDR-SDRAM. Nog slecht verkrijgbaar en op dit moment erg duur. 1024Mbit (1Gbit) DDR-SDRAM chips worden op dit moment gesampled. Met 32 van deze chips is zelfs een 4GB stacked DIMM te construeren (extreem prijzige DIMM's).
Bovenstaand overzicht geldt ook voor DDR-SDRAM DIMM’s, met de opmerking dat daar geen 16Mbit voor verkrijgbaar is.
Af en toe wordt er een andere notatie gebruikt, bijvoorbeeld 4x2Mx8. Dit houdt in dat er 8 datalijnen zijn met elk 4 geheugenvelden van 2Mbit. Dit is hetzelfde als een 8Mx8 chip.
Verder staat er Row en Col vermeld in de tabel. Dit zijn de adresbits voor respectievelijk de rijen en de kolommen. Bij de 64Mbit 4Mx16 chip staat Row 12 en Col 8, dit houdt in dat er per geheugenveld 2^12=4096 rijen zijn en 2^8=256 kolommen (is 1Mbit per geheugenveld, wat het een 4x1Mx16 chip maakt).
Een DIMM kan voorzien zijn van extra registers (zeg maar een soort buffer) voor de inkomende adres- en commandosignalen. Een standaard huis- tuin en keuken DIMM is niet van registers voorzien en die noemen we dan ook unbuffered DIMM. Als een computer uitgerust is met veel DIMM’s en dus geheugenchips zijn er veel meer signalen nodig om deze chips aan te sturen, plus dat al deze signalen een behoorlijke elektrische last genereren op de bus (iets wat ongewenst is). De functie van de registers is om een deel van het adresseerwerk van de chipset over te nemen; in plaats van afzonderlijke chips 'ziet' de chipset alleen de enkele registers van de diverse DIMM's. De registers adresseren vervolgens de benodigde chips. Het voordeel is dat de chipset meer chips aan kan sturen (indirect welliswaar) en er een mindere elekrische belasting is op de geheugenbus.
Zie het als een manier om het grote aantal teugels niet te laten verwarren in het geval van een achtspan koets, daar waar bij een tweespan koets de teugels een veel geringere kans hebben om in elkaar verwikkeld te raken.
Het nadeel van deze stabiliteitsbevorderende functie is dat alle inkomende adres- en commandosignalen met één tik worden vertraagd (deze tijd is namelijk nodig om de juiste chips te adresseren) waardoor de totale geheugenperformance iets minder is. Echter, dit is een nadeel dat niet opweegt tegen het voordeel. Registered DIMM’s kunnen niet samenwerken met unbuffered DIMM’s, je kan deze twee soorten dus niet tegelijk op één moederbord gebruiken. Overigens moet de geheugencontroller wel met registered DIMM’s om kunnen gaan; niet alle moederborden werken met registered DIMM’s.Registered geheugen is te herkennen aan de twee extra registerchips en een PLL chip, zie ook het plaatje bij DIMM keys
Het tegenovergestelde van registered. De geheugencontroller staat zonder tussenkomst van een register in direct contact met alle aanwezige geheugenchips. In het geval van drie en soms vier dubbelzijdige DIMM’s is dit geen probleem. Unbuffered en registered DIMM’s kunnen nooit met elkaar samenwerken op één moederbord, vergewis je er dus van dat je geen registered en unbuffered mengt.
Latency betekend niets anders dan wachttijd. Alle stappen die worden genomen om de benodigde data op te halen kosten tijd, deze tijd wordt tegenwoordig in het aantal kloktikken uitgedrukt. De kloktikken zijn afgeleid van de snelheid waar het geheugen op draait. Zo betekend een latentie van 3 kloktikken in het geval van een PC133 DIMM dat er 22,5ns moet worden gewacht (één kloktik van een 133MHz DIMM duurt 1000ns/133=7.5ns).
Geheugenmodules zijn naast de snelheidsaanduiding voorzien van latentie aanduidingen (in feite ook een snelheidsaanduiding maar voor de duidelijkheid heb ik het gescheiden). Een voorbeeld: PC133 333. Dit betekend dat het een PC133 DIMM is met de volgende latenties: CL = 3, RAS-to-CAS delay = 3 en RAS precharge time =3. Waarbij de 3 staat voor het aantal kloktikken dat er gewacht wordt. I.p.v. een 3 kan er ook een 2 staan, dat zijn de snellere modules.
Op een DDR-SDRAM DIMM is er naast de 2 en 3 nog een derde mogelijkheid voor CL, namelijk 2,5.
Op een RIMM staat er achter de snelheidsaanduiding slechts één getal, b.v. PC800-45. Dit is de Row Access Time, en hoe lager hoe beter (laagste is vooralsnog 40ns).
Ook hier geldt dat modules met verschillende latentietijden gemengd kunnen worden. De traagste settings zullen evenwel gebruikt worden.
Serial Presence Detect. Een EEPROM (ROM chip) op de geheugenmodule waarin alle parameters staan met hun waarde plus extra info over de fabrikant en het type module. Het BIOS leest de SPD uit via de System Management Bus en stelt de parameters overeenkomstig de waardes in de SPD in. Het gevolg is dat er niet in het BIOS hoeft te worden gefrutseld om de module goed te laten functioneren.
Een optie is om in het BIOS de SPD te overrulen en handmatig instellingen te doen. Dit laatste kan je doen om het maximale uit de module te halen; vaak is een geheugenmodule tot strakkere (lees: snellere) timings in staat dan door de SPD wordt aangegeven (dit i.v.m. stabiliteit en Jedec of Intel standaarden).
Dit is de manier hoe de chipset met pages omgaat. Dit is met name relevant in het geval van toevallige benaderingen van kleine datablokken. Als de chipset genoeg pages simultaan open kan houden is de kans op een toevalstreffer dat de gevraagde data in de Sense Amps staat (Page Hit) een stuk groter. Nu kan de chipset twee dingen doen 1) na het benaderen van de open page deze page sluiten om de Sense Amps te gebruiken voor b.v. de refresh of een precharge, en daarmee de kans op een volgende toevalstreffer verkleinen, of 2) de page nog openhouden en de kans op een volgende toevalstreffer vergroten. Nu kan een page niet onbeperkt openstaat omdat de Sense Amps gebruikt moeten worden voor de refresh. De chipset kan ook een pagehit-limit instellen; na een x aantal malen (b.v. 4, 8 of 16) een page hit wordt de page gesloten.
Naast de gebruikelijk aanduiding in totaal aantal MB’s (b.v. 256MB, 512MB) wordt er een andere manier gebruikt om de omvang van een DIMM aan te geven. Zo kun je 32Mx64 of 64Mx72 tegenkomen. Het eerste getal staat voor het aantal megabits en het tweede getal staat voor het aantal datalijnen. Een DIMM heeft altijd 64 nuttige datalijnen, de overige acht zijn in het geval van een x72 DIMM de ECC lijnen en deze tellen niet mee in de berekening voor de totale omvang. Zo telt een 32Mx64 DIMM 32x64=2048Mbit en dat is gedeeld door acht 256MB. Een 64Mx72 DIMM telt 64x64=4096Mbits is 512MB.
Double Data Rate. Een techniek waarbij per kloktik twee maal zoveel data kan worden getransporteerd; op zowel de op- als neergaande klokflank wordt een bit vervoerd. Wordt toegepast voor DDR-SDRAM maar ook voor RDRAM.
De tweede versie van Double Data Rate SDRAM. Het grootste verschil met DDR-SDRAM is dat er 4 bits tegelijk wordt uitgelezen, in plaats van de gebruikelijke 2 bits. Om de aanvoer van de extra bits bij te kunnen houden is de I/O buffer tweemaal sneller gemaakt. Door dit allemaal is er tweemaal zoveel bandbreedte ten opzichte van DDR-SDRAM. Er worden dus gewoon nog steeds 2 bitjes per kloktik verstuurd, echter de klok is tweemaal sneller.
Single Data Rate. Per kloktik wordt er één bit getransporteerd op de opgaande klokflank. Wordt met uitzondering van DDR-SDRAM door alle SDRAM soorten gebruikt.
Quad Data Rate. Per kloktik worden vier bits getransporteerd. Er zijn verschillende manieren om zoiets voor elkaar te krijgen, één is dat er gelijktijdig geschreven en gelezen kan worden op DDR snelheid (b.v. in het geval van de QDR-SRAM's waar het lezen en schrijven door afzonderlijke lijnen/poorten gaat). In feite is een zuivere leesactie net zo snel als een leesactie op een DDR chip, er worden in totaal pas vier bits verplaatst als er gelijktijdig wordt geschrven en gelezen.
Een andere manier is per op- of neergaande kloktik twee bits mee te zenden (is vier per gehele kloktik). Dit heeft nogal wat voeten in aarde omdat timings erg belangrijk worden. Stel je een kloksignaal voor dat op 1.6V werkt, als de spanning nul is en snel wordt opgevoerd naar 1.6V heb je een opgaande klokflank. Echter, verdeel je deze opgaande klokflank in twee gedeeltes (0,0V ~ 0,8V en 0,9V ~ 1,6V) dan kun je elk spanningsniveau een bit meegeven. De geheugencontroller zal de verschillen tussen 0,0V, 0,8V en 1,6V zien en twee bits lezen per op- of neergaande klokflank. De Quad Pumped FSB van de P4 werkt naar alle waarschijnlijkheid ook met dit principe.
Hieronder een voorbeeld van een 100MHz frequentie (10ns) met de drie soorten; SDR, DDR en QDR. Elk pijltje geeft een bit aan op de respectievelijke klokflank (in het geval van SDR alleen op de opgaande etc.)

Het aantal kanalen tussen de geheugencontroller en het geheugen. Meer kanalen betekent dat meer data per seconde getransporteerd kan worden (bandbreedte). Bijkomstigheid is wel dat bij veruit de meeste dual-channel chipsets elk geheugenkanaal voorzien moet zijn van geheugen; dus de modules per identiek paar (of zelfs viertal) plaatsen. Identiek betekent niet noodzakelijkerwijs hetzelfde merk en partnummer, maar wel hetzelfde aantal chips met dezelfde dichtheden en organisatie. Soms is het wel mogelijk met slechts gedeeltelijk of ongelijk gevulde kanalen te draaien, maar dan zal het trager draaien en ben je dus de meerwaarde van een dual-channel chipset kwijt. Een afrader dus. Uitzondering op deze regel is de crossbar memory controller van de nVidia nForce chipsets. Omdat het over twee losse memory controllers beschikt zal het altijd dual channel draaien als beide mem controllers bezet zijn, ongeacht exacte DIMM combinatie. Toch is ook hier de performance optimaal bij identieke DIMMs.
Linkjes:
Alle Single Channel chipsets
Alle Dual Channel chipsets
Alle Quad Channel chipsets
Meestal is in een ideale situatie de bandbreedte van alle geheugenkanalen samen gelijk aan die van de processor (FSB). Daarnaast is dual channel nuttig voor servers wanneer er veel DMA activiteiten plaatsvinden (b.v. meerdere PCI bussen die intensief gebruikt worden door veel I/O's). In specifiek dit geval wil je dus meer bandbreedte dan de FSB kan verwerken.
De moderne DIMM’s en RIMM’s hebben allemaal een PC rating die op een bepaalde manier de maximaal te halen snelheid aanduidt. Voor SDRAM DIMM’s worden PC66, PC100 en PC133 gebruikt. Deze getallen staan voor het aantal MHz waarop de DIMM kan werken. Voor RDRAM RIMM’s geldt hetzelfde: PC600, PC700 en PC800 (hoewel het hier om discutabele MHz’en gaat daar een RIMM met het Double Data Rate principe werkt).
In het geval van een DDR-SDRAM DIMM staan de getallen voor het aantal MB’s die de DIMM per seconde kan leveren. PC1600, PC2100 en PC2700 draaien op 100, 133 en 166MHz wat vervolgens door het DDR principe verdubbeld wordt.
Het mixen van modules met een verschillende snelheidsaanduiding levert in principe geen problemen op; zo kan een PC133 DIMM prima naast een PC100 DIMM worden gebruikt. Een PC2100 naast een PC2700 DIMM of PC700 naast een PC800 RIMM hoeft ook geen problemen op te leveren. Let wel dat de langzaamste module bepalend is voor de totale snelheid (de snelste DIMM past zich aan aan de langzaamste DIMM, mits handmatig niet anders geforceerd).
Let wel dat alle snelheidsaanduidingen weergegeven worden in het ideale geval van Burst-mode. Hiermee worden we enigszins om de tuin geleid omdat deze snelheid in lang niet alle gevallen wordt gehaald; de latenties steken daar een stokje voor.
Module aanduiding | PC66-22 | PC100-333 | PC100-222 | PC133-333 | PC133-222 | PC150-333 | PC166-333 | PC1600-2022 | PC2100-2533 | PC2100-2033 | PC2100-2022 | PC2700-2533 | PC2700-2032 | PC2700-2022 | PC3200-3044 | PC3200-3033 | PC3200-2533 | PC3200-2033 | PC3200-2032 | PC3200-2022 | PC3500-3044 | PC3700-3044 | PC4000-3044 | PC4400-3044 | PC2-3200-4044 | PC2-4300-4044 | PC2-5300-5055 | PC2-6400-5055 | PC600-45 | PC700-45 | PC800-45 | PC1066 | PC1200 | RIMM3200 | RIMM4200 | RIMM4800 | RIMM6400 |
| Intro | Maximale doorvoer | Chip aanduiding | Specs | Clock MHz/ns | tCAS T/ns | tRCD T/ns | tRP T/ns | tRAS T/ns | 1996 | 533MB/s | PC66 | Intel/JEDEC | 66/15 | 2T/30 | 2T/30 | 2T/30 | 5T/75 | 1998 | 800MB/s | PC100 | Intel/JEDEC | 100/10 | 3T/30 | 3T/30 | 3T/30 | 5T/50 | 1999 | 800MB/s | PC100 | Intel/JEDEC | 100/10 | 2T/20 | 2T/20 | 2T/20 | 5T/50 | 1999 | 1066MB/s | PC133 | Intel/JEDEC | 133/7,5 | 3T/22,5 | 3T/22,5 | 3T/22,5 | 6T/45 | 2000 | 1066MB/s | PC133 | Intel/JEDEC | 133/7,5 | 2T/15 | 2T/15 | 2T/15 | 6T/45 | 2000 | 1200MB/s | PC150 | - | 150/6,67 | 3T/20 | 3T/20 | 3T/20 | 7T/47 | 2000 | 1333MB/s | PC166 | - | 166/6 | 3T/18 | 3T/18 | 3T/18 | 8T/48 | 2000 | 1600MB/s | DDR200 | JEDEC | 100/10 | 2T/20 | 2T/20 | 2T/20 | 5T/50 | 2000 | 2133MB/s | DDR266 | JEDEC | 133/7,5 | 2,5T/18,8 | 3T/22,5 | 3T/22,5 | 6T/45 | 2001 | 2133MB/s | DDR266 | JEDEC | 133/7,5 | 2T/15 | 3T/22,5 | 3T/22,5 | 6T/45 | 2001 | 2133MB/s | DDR266 | JEDEC | 133/7,5 | 2T/15 | 2T/15 | 2T/15 | 6T/45 | 2001 | 2666MB/s | DDR333 | JEDEC | 166/6 | 2,5T/15 | 2T/18 | 2T/18 | 7T/42 | 2002 | 2666MB/s | DDR333 | Micron | 166/6 | 2T/12 | 3T/18 | 2T/12 | 7T/45 | 2001 | 2666MB/s | DDR333 | JEDEC | 166/6 | 2T/12 | 2T/12 | 2T/12 | 7T/45 | 2001 | 3200MB/s | DDR400 | Micron/JEDEC | 200/5 | 3T/15 | 4T/20 | 4T/20 | 8T/40 | 2001 | 3200MB/s | DDR400 | Micron | 200/5 | 3T/15 | 3T/15 | 3T/15 | 8T/40 | 2001 | 3200MB/s | DDR400 | Micron/JEDEC | 200/5 | 2,5T/12,5 | 3T/15 | 3T/15 | 6T/30 | 2001 | 3200MB/s | DDR400 | Micron/JEDEC | 200/5 | 2T/10 | 3T/15 | 3T/15 | 6T/30 | 2002 | 3200MB/s | DDR400 | Micron | 200/5 | 2T/10 | 3T/15 | 2T/10 | 6T/30 | 2001 | 3200MB/s | DDR400 | Micron | 200/5 | 2T/10 | 2T/10 | 2T/10 | 5T/40 | 2002 | 3466MB/s | DDR433 | Micron | 216/4,6 | 3T/13,8 | 4T/18,4 | 4T/18,4 | 8T/36,8 | 2003 | 3733MB/s | DDR466 | Micron | 233/4,3 | 3T/12,9 | 4T/17,2 | 4T/17,2 | 8T/34,4 | 2003 | 4000MB/s | DDR500 | Micron | 250/4 | 3T/12 | 4T/16 | 4T/16 | 8T/32 | 2004 | 4400MB/s | DDR550 | Micron | 275/3,64 | 3T/10,9 | 4T/14,5 | 4T/14,5 | 8T/29,1 | 2004 | 3200MB/s | DDR2-400 | JEDEC | 200/5 | 4T/20 | 4T/20 | 4T/20 | 10T/50 | 2004 | 4266MB/s | DDR2-533 | JEDEC | 266/3,75 | 4T/15 | 4T/15 | 4T/15 | 12T/45 | 2004 | 5333MB/s | DDR2-667 | JEDEC | 333/3 | 5T/15 | 5T/15 | 5T/15 | 15T/45 | 2005 | 6400MB/s | DDR2-800 | - | 400/2,5 | 5T/12,5 | 5T/12,5 | 5T/12,5 | 15T/37,5 | 1999 | 1200MB/s | - | RAMBUS | 300/3,33 | 7~11T/23,3~33,3 | 5T/16,7 | 6T/20 | 16T/53,3 | 1999 | 1600MB/s | - | RAMBUS | 356/2,80 | 8~12T/22,4~33,6 | 7T/19,6 | 8T/22,4 | 20T/56 | 1999 | 1433MB/s | - | RAMBUS | 400/2,5 | 8~12T/20~30 | 9T/22,5 | 8T/20 | 20T/50 | 2001 | 2133MB/s | - | RAMBUS | 533/1,87 | - | - | - | - | 2004 | 2400MB/s | - | RAMBUS | 600/1,67 | - | - | - | - | 2002 | 3200MB/s | - | RAMBUS | 400/2,5 | - | - | - | - | 2002 | 4266MB/s | - | RAMBUS | 533/1,87 | - | - | - | - | 2003 | 4800MB/s | - | RAMBUS | 600/1,67 | - | - | - | - | 2004 | 6400MB/s | - | RAMBUS | 800/1,25 | - | - | - | - |
|
RDRAM: CAS Latency is variabel door o.a. de uitrusting van het Rambuskanaal (aantal chips en RIMM's, dit i.v.m. de afstanden en daaraan gerelateerde (kunstmatige) synchronisatie wachttijden.
PC3200: Intel heeft de specs voor DDR400 vrijgegeven. Dit is een aanvulling op de bestaande JEDEC DDR1 rev. 2.0 specs.
Hieronder vind je een illustratie om de verschillende soorten (DDR) SDRAM geheugenreepjes te kunnen onderscheiden qua voltages, ECC en buffering.De keys (de inkepingen) zijn bepalend voor de vDDQ (spanning op het I/O gedeelte v.d. chips) en of een DIMM unbuffered of buffered is. ECC is te herkennen aan de extra geheugen chip en een registered DIMM telt twee extra register chips en een PLL chip.

Fast Page Mode. Dit is een verbetering op het standaard DRAM (Dynamic Random Access Memory). FPM slaat in sommige gevallen een stap over waardoor het in de praktijk sneller werkt. Mocht een te benaderen cel in de rij (de Page dus) staan welke al in de Sense Amps staat, dan kan deze direct worden uitgelezen i.p.v. dat de rij eerst nogmaals naar de Sense Amps moet worden weggeschreven. Aangezien opeenvolgende celbenaderingen erg vaak in dezelfde Page staan (Page Hit) kan dit qua performance behoorlijk schelen.
1987
60ns en 70ns
CAS latency: 40ns
Theoretische bandbreedte: 175~200MB/s
Berekening in geval van 66MHz (15ns) FSB: CAS 40ns / FSB 15ns = 2,66 (per gemiddeld 2,66 kloktikken éénmaal dataoverdracht). FSB 66MHz * 64bit = 533 / 2,66 = ~200MB/s
30pins SIMM* 5V 8bits
72pins SIMM 5 en 3,3V 32bits
168pins DIMM* 5 en 3,3V 64bits
Enhanced DRAM. Een stervensdure en daarom hoogst ongebruikelijke variant op FPM. De chips combineren 'normale' DRAM met SRAM caches. Dit maskeert de DRAM charge time volledig waardoor de prestatie vergelijkbaar wordt met het latere SDRAM. Het werd als de ideale combinatie met een 50MHz FSB 486 gepromote.
?
10ns en 15ns
CAS latency: ?
Theoretische bandbreedte: ~400MB/s op 50MHz
72pins SIMM 5V 32bits
Extended Data Out. Een directe doorontwikkeling van FPM (ook wel HPM, Hyper Page Mode genoemd). Het principe is dat de data langer in de latch (het uitgangsregister) staat, waardoor tijdens het lezen vanuit de latch er al begonnen kan worden met de volgende adresseringsstap (zeg maar een soort pipelining), dit scheelt tijd en verhoogd de doorvoer.
1995
50ns, 60ns en 70ns
CAS latency: 25ns (in geval van een 60ns chip)
Theoretische bandbreedte: ~300MB/s
Berekening in geval van 66MHz (15ns) FSB: CAS 25ns / FSB 15ns = 1,66. FSB66MHz * 64bit = 533 / 1,66 = ~300MB/s.
72pins SIMM 5 en 3,3V 32bits
168pins DIMM* 5 en 3,3V 64bits
72pins SO-DIMM 3,3V 64bits
Burst EDO. Heeft twee extra technieken, 1) de chips zijn intern dual-banked (zie bank). Hierdoor kan binnen één chip interleaving plaats vinden: de ene logische bank wordt geadresseerd terwijl de ander nog bezig is data te verzenden. 2) er is een adresgenerator toegevoegd. Als de geheugencontroller een adresseringsstap uitvoert genereert de BEDO chip adresgenerator vervolgens zélf twee kolom adressen. Hierdoor wordt tijd gewonnen in het (ideale) geval de geheugencontroller sowieso deze twee adressen opeenvolgend zou hebben geadresseerd. Het gevolg is dat in burst-mode de bandbreedte toeneemt. BEDO is overigens erg weinig toegepast.
?
CAS latency: 15ns
Theoretische bandbreedte: 533MB/s in burst-mode
Berekening in geval van 66MHz (15ns) FSB: CAS 15ns / FSB 15ns = 1,0 (elke kloktik dataoverdracht). FSB66MHz * 64bit = 533 / 1,0 = 533MB/s.
SIMM/DIMM?
Synchronous DRAM. Van origine ontworpen om synchroon te lopen met de FSB en de chipset snelheid. Iets waar in latere jaren deels verandering in kwam (zie asynchrone FSB – RAM opties v.d. huidige chipsets, desalniettemin loopt het geheugen net zo snel als de chipset). Vertoont veel overeenkomsten met BEDO, heeft ook een interne adresgenerator om in burst-mode de volgende kolomen zélf te adresseren en bestaat ook intern uit meerdere banken (twee voor 64Mbit chips, vier voor grotere chips), echter daar waar BEDO niet tot boven de 66MHz kon werken kan SDRAM het dubbele en meer halen.
1997 (PC66), 1998 (PC100), 1999/2000 (PC133)
PC66 (66MHz, 15ns), PC100 (100MHz, 10ns) en PC133 (133MHz, 7,5ns)
CAS latency 2 en 3 kloktikken
Theoretische bandbreedte: 533, 800 en 1066MB/s in burst-mode
Berekening: xxxMHz* 64bit / 8 = xxxMB/s
168pins DIMM 3,3V 64bits
144pins SO-DIMM 3,3V 64bits
Virtual Channel SDRAM. Dit is hetzelfde als SDRAM, met als extra enkele high-speed registers. Deze registers zorgen ervoor dat elke geheugenbenadering een eigen "Virtual Channel" krijgt. Zo kan er gelijktijdig via het ene kanaal een leesbenadering worden afgehandeld, terwijl via een ander kanaal een adressering plaatsvindt. VC-SDRAM zorgt zodoende niet voor een grotere bandbreedte, maar voor een efficiënter gebruik v.d. bandbreedte. Afhankelijk van het soort benaderingen kan in specifieke gevallen (simultane benaderingen) de latency lager uitvallen. VC SDRAM is vrij schaars, is niet met alle chipsets compatible en biedt in de praktijk slechts een erg klein performancevoordeel t.o.v. standaard SDRAM.
?
PC100 (100MHz, 10ns) en PC133 (133MHz, 7.5ns)
CAS latency 2 kloktikken
Theoretische bandbreedte: 800 en 1066MB/s in burst-mode
168pins DIMM 3,3V 64bits
Enhanced SDRAM. Een techniek wederom gebaseerd op SDRAM. Deze chips lopen op maximaal 166MHz en de Sense Amps zijn voorzien van extra cache; het row register cache. Dit cache neemt direct de inhoud v.d. Sense Amps over, waardoor deze laatste gelijk weer ingezet kunnen worden voor een andere actie (veelal een precharge) met als gevolg dat de volgende stap eerder uitgevoerd kan worden. Het effect is een efficiënter gebruik v.d. bandbreedte.
ESDRAM is compatible met de meeste chipsets alleen nooit echt doorgebroken. De daadwerkelijke praktijkwinst is niet helemaal duidelijk, dit hangt ook af van hoe het geheugen gebruikt wordt (lees: welke applicaties/toepassingen).
?
133 (7,5ns) en 166MHz (6ns)
CAS latency 2 kloktikken
Theoretische bandbreedte: 1066 en 1333MB/s in burst-mode
168pins DIMM 3,3V 64bits
Double Data Rate SDRAM. In feite een SDRAM waarbij er per kloktik twee maal zoveel data wordt verstuurd; een bit op de opgaande en een bit op de neergaande klokflank (SDRAM verstuurd alleen data op de opgaande klokflank). De inkomende signalen (adres en commando) verlopen nog wel via het ‘ouderwetse’ SDR (Single Data Rate) principe.
Een bijkomstigheid is dat CAS latenties nu ook in halve waardes kunnen worden weergegeven; moest in het oude geval er twee of drie kloktikken gewacht worden, nu kan er ook tweeëneenhalf kloktik gewacht worden. Data kan halverwege een kloktik op de neergaande flank worden gezet (nadat de opgaande al voorbij is) voor transport. Wordt tegenwoordig steeds meer gebruikt, in eerste instantie alleen voor AMD CPU’s, maar nu ook te gebruiken in combinatie met Intel CPU’s.
2000
PC1600 (DDR200, 100MHz), PC2100 (DDR266, 133MHz), PC2700 (DDR333, 166MHz) en PC3200 (DDR400, 200MHz)
Cas latency 2,5 en 2 kloktikken
Theoretische bandbreedte: 1600, 2133 2667 en 3200MB/s in burst-mode
184pins DIMM 2,5V 64bits
200pins SO-DIMM 2,5V 64bits
DDR2 (ook wel DDRII, DDR-II genoemd) is simpel gezegd DDR in een nieuw jasje (tamelijk simpel gezegd); het basis principe is namelijk gewoon hetzelfde namelijk data op zowel de op- als neergaande klokflank. Er is een redelijk stel veranderingen doorgevoerd om het aantal MHz'en van de in- en outputbuffers/data queue's omhoog te gooien (let wel, de kern v.d. geheugenchip wordt niet sneller, alleen de buffers en de bus) omdat met de huidige protocollen en toegepaste technieken het aantal MHz'en moeilijk kan worden verhoogd daar er allerlei reflecties ontstaan en je onzuivere signalen krijgt maar ook problemen met het adresseren v.d. chips. Voor bus based toepassingen (zoals op een mobo waar alle chips samen op een lange bus zitten) is 200MHz het officiële maximum voor DDR (PC3200), sneller kan wel getuige de diverse officieuze DIMM's (PC3500,PC4000,etc) maar het is niet voor niets dat alle chipsetfabrikanten er hun handen vanaf getrokken hebben; bij dergelijke snelheden is 100% stabilteit met meerdere DIMM's niet meer te garanderen, het is zelfs zo dat hoe sneller de operationele snelheid v.d. DIMM's hoe minder DIMM's ondersteund worden (veelal max drie unbuffered in het geval van PC2700 en twee in het geval van PC3200). In het geval van videokaarten heb je het meer over een point-to-point achtige verbinding; je hebt geen last van grote stubs (het gedeelte op de DIMM vanaf de bus/DIMM socket naar de chips zelf dat haaks op de bus op het moederbird staat) en de verbindingen tussen de controller en de chips zijn vele malen korter, hierdoor kan met DDR-SDRAM een veel hogere snelheid worden. Maar ook hier houdt 't op een gegeven moment op.
Wat zijn dan die veranderingen ten opzichte van DDR-SDRAM? Onder andere een lagere spanning (1,8v i.p.v. 2,5v), betere terminering van differential clocking (het verschil tussen signalen i.p.v. het signaal zelf) en een andere chip packaging (micro BGA) en in het geval van DIMM's kleinere stubs (dus minder reflectie op de bus). Dit allemaal om hogere kloksnelheden te halen. Er zijn trouwens meer wijzigingen die o.a. betrekking hebben op wachttijden (zoals additieve wachttijden vóór de CAS Latency).
Tevens is de burst-length voor DDR2 gefixeerd op vier zodat de hoeveelheid data die bij elke benadering van een 64bit DIMM 32Byte oplevert, namelijk 2 kloktikken met telkens twee maal (want DDR) 8Byte is, dit om diepere technische zaken als driver/tranceiver logica simpeler te houden (nu is een flexibele burst van 2~8 normaal).
Gevolg is dat je met DDR2 hogere snelheden = meer MB/s kunt halen. Een 200MHz DDR2 DIMM doet dus 200MHz maal twee (want DDR) keer 64bit (databusbreedte) 3.2GB/s, een 266MHz'er (DDR533) haalt zo 4.3GB/s etc.
2004
PC2-3200 (DDR2-400, 200MHz), PC2-4300 (DDR2-533, 266MHz), PC2-5300 (DDR2-667, 333MHz) en PC2-6400 (DDR2-800, 400MHz)
Cas latency 3, 4 en 5 kloktikken
Theoretische bandbreedte: 3200, 4266, 5333 en 6400MB/s in burst-mode
240pins DIMM 1,8V 64bits
200pins SO-DIMM 1,8V 64bits
Rambus DRAM. Ook wel DRDRAM (Direct Rambus DRAM) genoemd. Een techniek die afwijkt van alle eerder genoemde geheugensoorten. Het basisprincipes van data opslaan en adresseren is hetzelfde, echter, alle overige zaken verlopen anders. Het grootste verschil is dat er van het parallelle principe is afgestapt. In het geval van (DDR)SDRAM vullen meerdere chips het 64bits geheugenkanaal op (bijvoorbeeld 8 chips met elk 8 datalijnen is 64 lijnen totaal). In het geval van RDRAM vult één chip voorzien van 16 datalijnen het 16bits Rambus kanaal op. Een 32bits Dual Channel Rambus kanaal kan al gevuld worden met twéé chips. Daarnaast bestaat een RDRAM chip (ook wel Rambus device genoemd) met 32 stuks uit veel meer interne banken dan een (DDR)SDRAM chip (4 banken). Hierdoor zijn veel hogere snelheden te bereiken; van 400MHz met het DDR principe (800MHz effectief) tot 800MHz DDR (1600MHz effectief). De overige RDRAM chips sluiten als een ketting gewoon aan op de eerste RDRAM chip (serieel principe). Het grote voordeel is dat er een hoge theoretische bandbreedte beschikbaar is, de keerzijde van de medaille zijn de hogere latenties. Deze hoge latenties worden ondermeer veroorzaakt door het lange Rambus kanaal. Door het seriële principe zit er een behoorlijke fysieke afstand tussen de eerste RDRAM chip die de geheugencontroller tegenkomt en de laatste, en omdat de overdracht zo enorm snel gaat (800MHz effectief = 2.5ns) zal de laatste chip in het kanaal relatief veel later antwoorden op een leesopdracht dan de eerste chip, wat enorme datachaos met zich meebrengt. Hiertoe wordt bij elke chip een vertragingstijd ingeprogrammeerd. Deze kunstmatige rem zorgt er voor dat de antwoordtijd van alle afzonderlijke chips zodoende is dat alles in de juiste volgorde en binnen het juiste tijdsbestek bij de geheugencontroller aankomt. Een ander vertragend aspect is de hitte. De RDRAM chips zijn heethoofden zodat er meerdere bedrijfsmodi in het bestaan zijn geroepen om het hoofd koel te houden: Active, Stand-by, Nap en Power-down. Van Stand-by naar Active overschakelen kost enkele kloktikken, maar van Nap (dutje) naar Active (weer wakker) kan duizenden kloktikken tijd kosten. Daarenboven kan een chipset niet alle RDRAM chips continu Active houden (de i820 chipset kan b.v. maar 4 chips tegelijk Active houden). De eerste RDRAM chipsets hadden een 16bits Dual Channel geheugencontroller, waardoor je de In de 16bits RIMM reepjes per-se in paren moet plaatsen om aan de CPU bandbreedte te voldoen. In de nadagen van RDRAM werden ook RDRAM chipsets met een 32bits geheugencontroller uitbracht, waarmee de geheugenbandbreedte per kanaal wordt verdubbeld. Hiervoor heb je echter wel speciale 32bits RIMM modules nodig, de 242pins RIMMxxxx modules. Deze hoeven niet meer in paren te worden geplaatst.
1999
PC600 (300MHz DDR), PC700 (356MHz DDR), PC800 (400MHz DDR), PC1066 (533MHz DDR), PC1200 (600MHz DDR), RIMM3200 (2x 400MHz DDR), RIMM4200 (2x 533MHz DDR), RIMM4800 (2x 600MHz DDR) en RIMM6400 (2x 800MHz DDR).
Toegangstijd (als getal achter de PCxxx aanduiding) 50ns, 45ns en 40ns (lager=sneller)
Theoretische bandbreedte: 1066, 1200, 1600, 2133, 2400, 3200, 4200, 4800 en 6400MB/s.
184pins RIMM 2,5V 16bits
242pins RIMM 2,5V 32bits