Wat is synchrone DRAM?

Synchrone DRAM of SDRAM is de huidige standaard voor DRAM. Het primaire gebruik is voor systeem-RAM, hoewel het ook wordt gebruikt in VRAM op grafische kaarten en overal waar DRAM anders wordt gebruikt. Het is zo dominant in zijn vakgebied dat de "S" meestal wordt weggelaten, en het wordt eenvoudigweg DRAM genoemd. De synchronisatie van SDRAM is van cruciaal belang voor de prestaties en speelde een belangrijke rol bij de opkomst ten opzichte van zijn voorganger, asynchrone DRAM.

Synchroon werken

Synchroon verwijst naar het feit dat SDRAM een interne klok heeft en dat de kloksnelheid bekend is bij het systeem. Dat wil niet zeggen dat het op dezelfde kloksnelheid werkt als de CPU. Maar het heeft een interne klok en de CPU weet het. Hierdoor kunnen de interacties met het RAM-geheugen worden geoptimaliseerd, zodat de I/O-bus volledig wordt benut in plaats van inactief te blijven om ervoor te zorgen dat geen commando's interfereren met andere commando's.

Een deel van het probleem is dat bij het schrijven van gegevens naar DRAM. De gegevens moeten gelijktijdig worden verstrekt als de opdracht om de gegevens te schrijven. Bij het lezen van gegevens worden de gegevens echter twee of drie klokcycli teruggelezen nadat het leescommando is gegeven. Dit betekent dat de DRAM-controller voldoende tijd nodig heeft om leesbewerkingen te voltooien voordat een schrijfbewerking plaatsvindt. Met asynchrone DRAM gebeurde dit door simpelweg meer dan genoeg tijd te geven om de bewerking te voltooien. Deze praktijk liet de I/O-bus echter inactief. Tegelijkertijd wachtte de controller op genoeg om zeker te zijn, wat een inefficiënt gebruik van middelen was.

Synchrone DRAM gebruikt een interne klok om de overdracht van gegevens en de uitvoering van opdrachten te synchroniseren. Hierdoor kunnen de tijdbewerkingen van de geheugencontroller optimaal gebruik maken van de I/O-bus en zorgen voor hogere prestatieniveaus.

Verbeteringen ten opzichte van asynchrone DRAM

Afgezien van verbeteringen in timing die een betere controle mogelijk maken, is de belangrijkste verbetering van SDRAM de mogelijkheid om meerdere geheugenbanken binnen de DRAM te hebben. Elke bank opereert in wezen intern onafhankelijk. Binnen een bank kan er maar één rij tegelijk open zijn. Toch kan een tweede rij in een andere bank worden geopend, waardoor lees- of schrijfbewerkingen kunnen worden gepijplijnd. Dit ontwerp voorkomt dat de I/O-bus inactief blijft. Tegelijkertijd wordt een nieuwe lees- of schrijfbewerking in de wachtrij geplaatst, waardoor de efficiëntie toeneemt.

Een manier om hierover na te denken is door een derde dimensie toe te voegen aan een tweedimensionale array. U kunt nog steeds maar op één plaats tegelijk gegevens lezen of schrijven. Maar u kunt een andere rij in een andere bank voorbereiden terwijl er met een wordt gecommuniceerd.

Een ander voordeel van SDRAM is de opname van timinggegevens op een chip in het geheugen. Sommige moderne RAM-sticks zorgen voor snellere prestaties dan de officiële DRAM-standaarden door hun specifieke timing-prestatie-informatie op die chip te coderen. Het kan ook mogelijk zijn om deze instellingen handmatig te overschrijven, waardoor het RAM-geheugen kan worden "overklokt". Dit is vaak zeer diepgaand, omdat veel timingwaarden kunnen worden geconfigureerd en de neiging hebben om minimale prestaties te leveren ten goede komen. Het overklokken van RAM brengt ook het risico met zich mee van instabiliteit, maar kan bij sommige workloads voordelen bieden.

Verbeteringen in de loop van de tijd

De werkelijke kloksnelheid van het geheugen is niet veel toegenomen sinds de release van SDRAM. De eerste iteratie van SDRAM ontving de retroniem SDR. Dit is een afkorting voor Single Data Rate om het te onderscheiden van het latere DDR- of Double Data Rate-geheugen. Deze typen, evenals vele andere vormen van DRAM, zijn allemaal voorbeelden van SDRAM. De klokcyclus van de DRAM-chip regelt de tijd tussen de snelste bewerkingen van DRAM. Het lezen van een kolom uit een open rij kost bijvoorbeeld een enkele klokcyclus.

Het is belangrijk op te merken dat er twee verschillende kloksnelheden zijn voor SDRAM, de interne klok en de I/O-busklok. Beide kunnen onafhankelijk worden bestuurd en zijn in de loop van de tijd geüpgraded. De interne klok is de snelheid van het geheugen zelf en heeft direct invloed op de latency. De I/O-klok regelt hoe vaak gegevens die zijn gelezen van - of zullen worden geschreven naar - de SDRAM kunnen worden verzonden. Deze kloksnelheid, gecombineerd met de breedte van de I/O-bus, heeft invloed op de bandbreedte. Beide klokken zijn gekoppeld en zijn essentieel voor de hoge prestaties van SDRAM.

Hoe snelheden zijn toegenomen

De officiële JEDEC-standaard voor de eerste generatie DDR SDRAM had geheugenklokken tussen 100 en 200 MHz. DDR3 bood nog steeds 100 MHz geheugenklokken, hoewel het ook kloksnelheden tot 266,6 MHz standaardiseerde. Desondanks zijn interne wijzigingen in de I/O-kloksnelheid en de hoeveelheid gegevens die bij een leesbewerking waren inbegrepen, betekende dat zelfs bij een geheugenklok van 100 MHz de bandbreedte voor een tijdseenheid werd verviervoudigd.

DDR4 veranderde het upgradepatroon en verdubbelde de geheugenklok met een bereik tussen 200 en 400 MHz, waarmee opnieuw een verdubbeling van de beschikbare bandbreedte werd bereikt en de latentie werd verminderd. De DDR5-standaard begint ook met een geheugenklok van 200MHz. Toch bereikt het een snelheid van 450 MHz, waardoor het weer terugkeert naar een verdubbeling van de hoeveelheid gegevens die per cyclus wordt overgedragen om de bandbreedte te verdubbelen.

Conclusie

Synchrone DRAM is het primaire type DRAM dat tegenwoordig wordt gebruikt. Het is de basis voor systeem-RAM en VRAM in grafische toepassingen. Door acties van de DRAM te synchroniseren met klokken, kan de werkelijke prestatie van de DRAM bekend zijn, waardoor bewerkingen efficiënt in de wachtrij kunnen worden geplaatst voor uitvoering. Dit is veel efficiënter dan meer dan voldoende tijd te laten, omdat er geen directe maatregel of manier is om te weten wanneer een specifieke opdracht is voltooid.

De klokken die SDRAM aansturen, zijn van cruciaal belang voor de hoge prestaties. Ze bepalen hoe vaak opdrachten kunnen worden uitgevoerd en hoe snel gegevens kunnen worden gelezen van of geschreven naar het DRAM. Door deze timings bekend te maken, kunnen ze worden geoptimaliseerd voor topprestaties.