Synchronous DRAM eller SDRAM är den nuvarande standarden för DRAM. Dess primära användning är för system-RAM, även om det också används i VRAM på grafikkort och varhelst annat DRAM används. Det är så dominerande inom sitt område att "S" vanligtvis släpps, och det kallas helt enkelt DRAM. Synkroniseringen av SDRAM är avgörande för dess prestanda och var avgörande för dess uppgång jämfört med föregångaren, asynkront DRAM.
Arbetar synkroniserat
Synchronous syftar på att SDRAM har en intern klocka och att klockhastigheten är känd för systemet. Det betyder inte att den körs med samma klockhastighet som CPU: n. Men den har en intern klocka, och processorn vet det. Detta gör att interaktioner med RAM-minnet kan optimeras så att I/O-bussen utnyttjas fullt ut istället för att lämnas inaktiv för att säkerställa att inga kommandon stör andra kommandon.
En del av problemet är att när man skriver data till DRAM. Data måste tillhandahållas samtidigt som kommandot för att skriva data. Vid läsning av data läses dock data tillbaka två eller tre klockcykler efter att läskommandot utfärdats. Detta innebär att DRAM-styrenheten måste ge tillräckligt med tid för att läsoperationer ska slutföras innan en skrivoperation inträffar. Med asynkront DRAM skedde detta genom att helt enkelt ge mer än tillräckligt med tid för operationen att slutföras. Denna praxis lämnade dock I/O-bussen inaktiv. Samtidigt väntade kontrollanten tillräckligt för att vara säker, vilket var en ineffektiv resursanvändning.
Synchronous DRAM använder en intern klocka för att synkronisera överföringen av data och exekveringen av kommandon. Detta gör att minnesstyrenhetens tidsfunktioner utnyttjar I/O-bussen optimalt och säkerställer högre prestanda.
Förbättringar jämfört med asynkront DRAM
Förutom förbättringar i timing som möjliggör förbättrad kontroll, är den huvudsakliga förbättringen av SDRAM möjligheten att ha flera minnesbanker i DRAM. Varje bank verkar i huvudsak oberoende internt. Inom en bank kan bara en rad vara öppen samtidigt. Ändå kan en andra rad öppnas i en annan bank, vilket gör att läs- eller skrivoperationer kan pipelineras. Denna design förhindrar I/O-bussen från att stå stilla. Samtidigt står en ny läs- eller skrivoperation i kö, vilket ökar effektiviteten.
Ett sätt att tänka på detta är att lägga till en tredje dimension till en tvådimensionell array. Du kan fortfarande bara läsa eller skriva data från en plats åt gången. Men du kan förbereda ytterligare en rad i en annan bank medan en interageras med.
En annan fördel med SDRAM kommer från införandet av tidsdata på ett chip i minnet. Vissa moderna RAM-minnen tillåter prestanda snabbare än de officiella DRAM-standarderna genom att koda deras specifika timingprestandainformation på det chipet. Det kan också vara möjligt att manuellt åsidosätta dessa inställningar, vilket gör att RAM-minnet kan "överklockas". Detta är ofta mycket djupgående, eftersom många timingvärden kan konfigureras och tenderar att ge minimal prestanda fördel. Överklockning av RAM-minne riskerar också att bli instabilt men kan erbjuda fördelar i vissa arbetsbelastningar.
Förbättringar över tid
Den faktiska minnesklockhastigheten har inte ökat mycket sedan SDRAM släpptes. Den första iterationen av SDRAM fick retroonymet SDR. Detta är en förkortning för Single Data Rate för att skilja det från det senare DDR- eller Double Data Rate-minnet. Dessa typer, liksom många andra former av DRAM, är alla exempel på SDRAM. DRAM-chippets klockcykel styr tiden mellan de snabbaste operationerna av DRAM. Till exempel, att läsa en kolumn från en öppen rad tar en enda klockcykel.
Det är viktigt att notera att det finns två distinkta klockhastigheter för SDRAM, den interna klockan och I/O-bussklockan. Båda kan styras oberoende och har uppgraderats med tiden. Den interna klockan är själva minnets hastighet och påverkar latensen direkt. I/O-klockan styr hur ofta data som har lästs från – eller kommer att skrivas till – SDRAM-minnet kan överföras. Denna klockhastighet, i kombination med I/O-bussens bredd, påverkar bandbredden. Båda klockorna är länkade och är avgörande för SDRAMs höga prestanda.
Hur hastigheterna har ökat
Den officiella JEDEC-standarden för den första generationen av DDR SDRAM hade minnesklockor mellan 100 och 200MHz. DDR3 erbjöd fortfarande 100MHz minnesklockor, även om den också standardiserade klockhastigheter upp till 266,6 MHz. Trots detta ändras interna I/O-klockhastigheten och mängden data som ingick i en läsoperation innebar att även vid en 100MHz minnesklocka fyrdubblades bandbredden för en tidsenhet.
DDR4 ändrade uppgraderingsmönstret och fördubblade minnesklockan med ett intervall mellan 200 och 400MHz, vilket återigen uppnådde en fördubbling av tillgänglig bandbredd samtidigt som latensen minskade. DDR5-standarden börjar också med en minnesklocka på 200MHz. Ändå når den upp till 450MHz, vilket återgår till att fördubbla mängden data som överförs per cykel för att fördubbla bandbredden.
Slutsats
Synchronous DRAM är den primära typen av DRAM som används idag. Det är grunden för system-RAM och VRAM i grafikapplikationer. Genom att synkronisera DRAM: s handlingar med klockor kan den faktiska prestandan hos DRAM: t vara känd, vilket gör det möjligt för operationer att effektivt köa för exekvering. Detta är mycket effektivare än att lämna mer än tillräckligt med tid eftersom det inte finns någon direkt åtgärd eller sätt att veta när ett specifikt kommando har slutförts.
Klockorna som styr SDRAM är avgörande för dess höga prestanda. De styr hur ofta kommandon kan köras och hur snabbt data kan läsas från eller skrivas till DRAM. Genom att ha dessa tidpunkter kända kan de optimeras för toppprestanda.