Hoe RAS te begrijpen: Row Access Strobe en Row Access Select
Oké, moderne pc’s lijken een beetje op strak op elkaar gewikkelde machines – elk onderdeel draait op een klok, soms miljarden keren per seconde. Maar één ding dat supercruciaal is en vaak over het hoofd wordt gezien, is het RAM. De timing ervan is complex, met alle primaire, secundaire en tertiaire instellingen die bepalen hoe snel het kan werken. Die configuraties zeggen meestal hoe snel dingen gebeuren, niet of ze correct gebeuren – een soort van prestatie versus stabiliteitskwestie. Hoe dan ook, te midden van dat alles duikt RAS (Row Access Strobe of Row Access Select) op als een belangrijke speler. Het is een beetje vreemd, want in de tijd van async DRAM was RAS letterlijk een stroboscoopsignaal – zoals een tik of tak – maar nu, met modern sync DRAM, is het meer een soort besturingssignaal. Toch is de term blijven hangen.
RAS is in wezen een kleine elektrische verbinding tussen de geheugencontroller en de RAM-chips. Standaard blijft deze hoog. Wanneer de controller de RAS-waarde laag trekt, is dat het signaal dat het RAM-geheugen vertelt: “Hé, ik wil met deze rij data werken.” Het RAM-geheugen start vervolgens het proces om die specifieke rij te openen. RAS moet laag blijven terwijl de rij wordt geopend en moet laag blijven totdat de rij wordt gesloten. En dat is meestal nadat de data uit het geheugen is gelezen of ernaar is geschreven.
Timings gerelateerd aan RAS
Er zijn een heleboel timings gekoppeld aan hoe RAS functioneert – waarschijnlijk de meest besproken is t RAS. Dat is in feite het aantal klokcycli dat RAS nodig heeft om de rij open te houden. Meestal is dit het laatste getal in een set RAM-timings, zoals 16-18-18-36 – het middelste getal is meestal t RAS. Dan is er nog t RCD, de vertraging tussen het laag worden van RAS en het laag worden van CAS (Column Access Strobe).Dit is het venster waarin u uw rij- en kolomadressen instelt. Zie het als de brug tussen het openen van een rij en het openen van een kolom erin. Zonder een correcte synchronisatie van deze timing kan het ophalen van gegevens rommelig of traag worden.
Een andere belangrijke is t RC : de rijcyclustijd. Dat is hoe lang het duurt voordat je een andere rij kunt openen na het sluiten van een andere rij – in feite de minimale tijd tussen het openen van twee rijen. Dan is er nog t RP : de RAS-voorlaadtijd, die aangeeft hoe lang RAS hoog moet zijn voordat het weer laag kan worden om een nieuwe rij te starten. Als deze timings niet kloppen, of als je RAM niet correct is geconfigureerd, kun je stabiliteitsproblemen of vertraging krijgen. Ik weet niet zeker waarom het soms werkt, maar in sommige configuraties kan het aanpassen hiervan de stabiliteit of prestaties daadwerkelijk verbeteren – mits zorgvuldig gedaan, natuurlijk.
Wat doet RAS eigenlijk?
Vrijwel elke RAM-bewerking maakt op de een of andere manier gebruik van RAS. Wanneer u wilt lezen of schrijven, moet u opgeven welke rij en kolom die gegevens bevatten. De dalende flank van RAS vertelt het RAM-geheugen: “Hé, open deze rij”, en dat proces is hetzelfde, ongeacht of u leest of schrijft. Wanneer RAS laag wordt, instrueert het de geheugenchips om een bepaalde rij te openen als deze nog niet open is. De rij blijft open zolang RAS laag blijft, wat nodig is voor snelle toegang.
En hier komen vernieuwingscycli in beeld. RAM-chips lekken na verloop van tijd lading, dus ze moeten regelmatig vernieuwd worden om de gegevens veilig te houden. Dit houdt in dat rijen met regelmatige tussenpozen geopend en gesloten worden – net als het doorbladeren van pagina’s in een boek om alles actief te houden. Regelmatige lees- of schrijfcycli verversen de rij ook, maar omdat vernieuwingen automatisch en op de achtergrond plaatsvinden, heeft het RAM specifieke vernieuwingsbewerkingen nodig om te garanderen dat er niets verloren gaat. Als de vernieuwingstiming niet klopt, kan er corruptie optreden – geloof me, ik heb het meegemaakt.
Verschillende vernieuwingsstrategieën
Er zijn in principe twee hoofdmethoden om RAM te vernieuwen met RAS. Ten eerste hebben we RAS Only Refresh, oftewel ROR. Vrij eenvoudig – geen extra ingewikkelde handelingen. Het RAM-geheugen houdt de rij gewoon open zolang deze moet worden vernieuwd en sluit deze vervolgens. Het belangrijkste is dat het eenvoudig is, maar misschien niet de meest energiezuinige, omdat de rij langer open blijft.
De tweede is CAS Before RAS, of CBR. Deze is iets slimmer: eerst wordt CAS low getrokken, dan RAS, maar er wordt helemaal geen rijadres gespecificeerd. In plaats daarvan gebruikt het RAM-geheugen een interne teller om bij te houden welke rij ververst moet worden. Het opent die rij en verhoogt vervolgens de teller voor de volgende verversingscyclus. Het voordeel? Minder stroomverbruik omdat je niet elke keer adressignalen verstuurt, maar het maakt mogelijk minder ruimte vrij voor nauwkeurig afgestelde ladingsvervalregeling, wat nu meestal geen probleem is. Toch is het een vreemde oplossing als je erover nadenkt.
Op sommige systemen kan CBR zelfs een klein beetje energie besparen, omdat er geen adresdecodering nodig is. Maar over het algemeen zijn beide methoden erop gericht om ervoor te zorgen dat het RAM-geheugen in de loop van de tijd gezond blijft, zonder crashes of gegevensverlies te veroorzaken. Soms kan het aanpassen van de verversingstimings of modusregisters helpen om de zaken te stabiliseren als het geheugen niet goed functioneert.
Het afronden
RAS draait in principe om het vertellen aan je RAM: “Hé, open deze rij”, en dat is cruciaal voor een goede werking. Als RAS verkeerd geconfigureerd is of de timings niet kloppen, kan het ophalen van gegevens vertragen of, erger nog, corrupt raken. Timings zoals t RAS en t RP beïnvloeden hoe lang de rij open blijft en hoe snel het systeem andere taken kan uitvoeren. Inzicht in deze timings is handig bij overklokken of het oplossen van stabiliteitsproblemen, vooral als je in de BIOS-instellingen aan het rommelen bent of tools zoals Thaiphoon Burner of MemTest86 gebruikt.
Vaak kan simpelweg wat rommelen met de RAM-timings of ervoor zorgen dat de BIOS van je moederbord correct is ingesteld op je RAM-specificaties, het verschil maken tussen een vlot en stabiel systeem of een systeem dat enorm hapert. Neem dus de tijd, controleer je RAM-specificaties en wees niet bang om een beetje te experimenteren – maar ga niet over de schreef zonder een back-up. Het aanpassen van de RAM-timing kan een beetje een duistere kunst zijn, maar als je het eenmaal onder de knie hebt, loopt alles meestal soepeler.