Synchronous DRAM eller SDRAM er gjeldende standard for DRAM. Dens primære bruk er for system-RAM, selv om den også brukes i VRAM på grafikkort og hvor DRAM ellers brukes. Det er så dominerende på sitt felt at "S" vanligvis droppes, og det blir ganske enkelt referert til som DRAM. Synkroniseringen av SDRAM er avgjørende for ytelsen og var medvirkende til fremgangen i forhold til forgjengeren, asynkron DRAM.
Jobber synkronisert
Synkron refererer til at SDRAM har en intern klokke og at klokkehastigheten er kjent for systemet. Det er ikke å si at den kjører med samme klokkehastighet som CPU. Men den har en intern klokke, og CPU'en vet det. Dette gjør at interaksjoner med RAM-en kan optimaliseres slik at I/O-bussen utnyttes fullt ut i stedet for å stå inaktiv for å sikre at ingen kommandoer forstyrrer andre kommandoer.
En del av problemet er at når du skriver data til DRAM. Dataene må gis samtidig som kommandoen for å skrive dataene. Ved lesing av data blir dataene imidlertid lest tilbake to eller tre klokkesykluser etter at lesekommandoen er gitt. Dette betyr at DRAM-kontrolleren må gi nok tid til at leseoperasjoner kan fullføres før en skriveoperasjon skjer. Med asynkron DRAM skjedde dette ved ganske enkelt å la mer enn nok tid for operasjonen å fullføre. Denne praksisen gjorde imidlertid at I/O-bussen ble inaktiv. Samtidig ventet kontrolleren på nok til å være sikker, noe som var en ineffektiv ressursbruk.
Synchronous DRAM bruker en intern klokke for å synkronisere overføring av data og utførelse av kommandoer. Dette lar minnekontrollerens tidsoperasjoner utnytte I/O-bussen optimalt og sikrer høyere ytelsesnivåer.
Forbedringer i forhold til asynkron DRAM
Utenom forbedringer i timing som tillater forbedret kontroll, er hovedforbedringen til SDRAM muligheten til å ha flere minnebanker i DRAM. Hver bank opererer i hovedsak uavhengig internt. Innenfor en bank kan bare én rad være åpen samtidig. Likevel kan en andre rad åpnes i en annen bank, slik at lese- eller skriveoperasjoner kan utføres i pipeline. Denne utformingen forhindrer I/O-bussen fra å sitte stille. Samtidig står en ny lese- eller skriveoperasjon i kø, noe som øker effektiviteten.
En måte å tenke på dette er å legge til en tredje dimensjon til en todimensjonal matrise. Du kan fortsatt bare lese eller skrive data fra ett sted om gangen. Men du kan forberede en ny rad i en annen bank mens en blir interaksjon med.
En annen fordel med SDRAM kommer fra inkluderingen av tidsdata på en brikke i minnet. Noen moderne RAM-pinner tillater ytelse raskere enn de offisielle DRAM-standardene ved å kode deres spesifikke timing-ytelsesinformasjon på den brikken. Det kan også være mulig å manuelt overstyre disse innstillingene, slik at RAM-en kan "overklokkes". Dette er ofte svært dyptgående, da mange timingverdier kan konfigureres og har en tendens til å gi minimal ytelse fordel. Overklokking av RAM kommer også i fare for ustabilitet, men kan tilby fordeler i enkelte arbeidsbelastninger.
Forbedringer over tid
Den faktiske minneklokkehastigheten har ikke økt mye siden utgivelsen av SDRAM. Den første iterasjonen av SDRAM mottok retroonymet SDR. Dette er en forkortelse for Single Data Rate for å skille den fra det senere DDR- eller Double Data Rate-minnet. Disse typene, så vel som mange andre former for DRAM, er alle eksempler på SDRAM. Klokkesyklusen til DRAM-brikken styrer tiden mellom de raskeste operasjonene til DRAM. For eksempel, å lese en kolonne fra en åpen rad tar en enkelt klokkesyklus.
Det er viktig å merke seg at det er to forskjellige klokkehastigheter for SDRAM, den interne klokken og I/O-bussklokken. Begge kan styres uavhengig og har blitt oppgradert over tid. Den interne klokken er hastigheten til selve minnet og påvirker forsinkelsen direkte. I/O-klokken kontrollerer hvor ofte data som er lest fra – eller vil bli skrevet til – SDRAM kan overføres. Denne klokkehastigheten, kombinert med I/O-bussens bredde, påvirker båndbredden. Begge klokkene er koblet sammen og er avgjørende for den høye ytelsen til SDRAM.
Hvordan hastighetene har økt
Den offisielle JEDEC-standarden for den første generasjonen av DDR SDRAM hadde minneklokker mellom 100 og 200MHz. DDR3 tilbød fortsatt 100MHz minneklokker, selv om den også standardiserte klokkehastigheter opp til 266,6 MHz. Til tross for dette, interne endringer i I/O-klokkehastigheten og mengde data inkludert i en leseoperasjon betydde at selv ved en 100MHz minneklokke ble båndbredden for en tidsenhet firedoblet.
DDR4 endret oppgraderingsmønsteret og doblet minneklokken med et område mellom 200 og 400MHz, noe som igjen oppnådde en dobling av tilgjengelig båndbredde samtidig som ventetiden ble redusert. DDR5-standarden starter også med en minneklokke på 200MHz. Likevel når den opp til 450MHz, og går tilbake til å doble mengden data som overføres per syklus for å doble båndbredden.
Konklusjon
Synchronous DRAM er den primære typen DRAM som brukes i dag. Det er grunnlaget for system-RAM og VRAM i grafikkapplikasjoner. Ved å synkronisere handlinger til DRAM med klokker, kan den faktiske ytelsen til DRAM være kjent, noe som gjør at operasjoner effektivt kan settes i kø for utførelse. Dette er mye mer effektivt enn å ha mer enn nok tid fordi det ikke er noen direkte mål eller måte å vite når en spesifikk kommando er fullført.
Klokkene som styrer SDRAM er avgjørende for dens høye ytelse. De kontrollerer hvor ofte kommandoer kan kjøres og hvor raskt data kan leses fra eller skrives til DRAM. Ved å ha disse tidspunktene kjent, kan de optimaliseres for topp ytelse.