De fleste datamaskinbrukere bryr seg ikke spesielt mye om ytelsen når de kjøper en datamaskin. Så lenge det er raskt og billig nok, er det bra nok. De vil kjøpe en datamaskin med en nåværende eller tidligere generasjons CPU og se etter riktig mengde lagringsplass til nærmeste halvterabyte.
Noen kan se etter CPU-hastighet, kjernetall eller RAM-kapasitet, men det pleier å være det. Hvis du er en teknisk entusiast, kan du være mer oppmerksom på disse tingene, slik at du vet hva du får og om det virkelig er en god avtale.
En av måtene å få mest mulig ytelse ut av datamaskinen din er å få RAM med høy ytelse. Det betydelige prangende salgstallet er klokkehastigheten til RAM, for eksempel DDR4-3200 eller DDR5-6400. Teknisk sett er det andre tallet ikke klokkehastigheten. Det er overføringshastigheten. Dette er dobbel klokkehastighet fordi DDR RAM er Double Data Rate. Likevel høres det høyere tallet bedre ut på markedsføringsmaterialet.
Denne overføringshastigheten er et mål på båndbredden til RAM, så høyere tall er bedre. Båndbredde er imidlertid ikke den eneste faktoren i RAM-ytelse. Latency er like viktig, om ikke mer.
Hva er latens?
Latens er et mål på forsinkelsen mellom en prosess som settes i gang og den faktisk skjer. Et enkelt eksempel er "ping" av internettforbindelsen din. Hvis du noen gang har kjørt en hastighetstest, har du sett nedlastingshastigheten og pinget. Nedlastingshastigheten er internettbåndbredden din, og ping er ventetiden mellom du sender en forespørsel og serveren som mottar den. Som mange spillere vil vite, spiller det ingen rolle hvor raskt internett ditt er. Du vil ikke ha en god opplevelse hvis du har høy latenstid.
Høyytelses RAM vil alltid annonsere hastigheten. Det vil ofte annonsere minst ett spesifikt mål på latens. Det vanligste og viktigste målet på latens er CAS-latens, noen ganger forkortet til CL. Ved å se litt dypere inn i produktspesifikasjonene, er det generelt mulig å finne de fire viktigste primærtimingene. Disse er tCL/tCAS (CAS-latensen), tRCD, tRP og tRAS. Disse tidspunktene kan av og til følges av et femte tall, en kommandohastighet, men det er litt annerledes og generelt uviktig.
Grunnleggende om RAM-drift
Før vi definerer de primære tidspunktene, vil det være viktig å forstå det grunnleggende om hvordan RAM faktisk fungerer. Data i RAM lagres i kolonner, og kun én kan samhandles med når som helst. For å kunne lese fra eller skrive til en kolonne, må du først åpne raden som kolonnen er plassert i. Bare én rad kan være åpen samtidig. RAM kan leveres med flere banker. I dette tilfellet kan bare én rad være tilgjengelig per bank. Mens bare én kolonne kan samhandles på en gang, kan det å ha en annen rad åpen i en andre bank gjøre det mulig å sette den neste lese- eller skriveoperasjonen i kø effektivt.
Det er viktig å forstå at tidspunkter ikke er absolutte verdier. De er faktisk multipler av RAM I/O-klokken ettersom de er enheter av klokkesykluser. Igjen er RAM Double the Data Rate, som er halvparten av den annonserte hastigheten. Du må gjøre litt matematikk for å bestemme den faktiske latensen for spesifikk timing. Du kan gjøre 1/(annonsert overføringshastighet i Ts/2) for å få lengden på en enkelt klokkesyklus i sekunder og deretter multiplisere det med tidsforholdet du vil vite verdien av. Alternativt, anta at du vil ha en enklere tid. I så fall kan du gjøre en overføringshastighet på 2000/annonsert i MT-er for å få lengden på en enkelt klokkesyklus i nanosekunder og multiplisere det med tidsforholdet.
For eksempel, hvis vi har to sett med RAM, DDR4-3000 CL15 og DDR4-3200 CL16, kan vi gjøre (2000/3000)*15 og (2000/3200)*16 for å oppdage at den absolutte CAS-latenstiden for begge typer RAM er 10 nanosekunder.
Primære tidspunkter
De primære timingene til RAM presenteres vanligvis som et sett med fire tall atskilt med bindestreker. Noen ganger vil disse bli ledsaget av enten en "1T" eller "2T" på slutten. For de følgende eksemplene vil vi bruke de primære timingene fra to oppføringer i vår nylige artikkel om beste spill-RAM i 2022: den G.Skill Trident Z Royal DDR4 3200 CL16-18-18-38 og G.Skill Trident Z5 RGB DDR5 6400 CL32-39-39-102. For disse eksemplene er de primære tidspunktene henholdsvis 16-18-18-38 og 32-39-39-102. Tiden for en enkelt klokkesyklus er henholdsvis 0,625 nanosekunder og 0,3125 nanosekunder.
Merk: Alle disse tidspunktene påvirker enhver operasjon, lesing eller skriving, men i eksemplene nedenfor vil vi bare referere til leseoperasjoner for å gjøre ting enkelt.
CAS-latens
Det første tallet i de primære timingene er CAS-latensen. Dette er vanligvis den primære timingen for å forbedres hvis du prøver å overklokke RAM-en. CAS-latens kan også angis ved CL, tCAS eller tCL, med de to sistnevnte mer sannsynlig å bli funnet i BIOS og andre konfigurasjonsverktøy. CAS er forkortelse for Column Address Strobe. Det er teknisk sett ikke en strobe lenger. Men kommandoen leser data fra en kolonne i en åpen rad i det som er kjent som et "sidetreff."
tCL er et mål på hvor mange sykluser etter at en CAS-instruksjon er sendt at svaret vil begynne å bli returnert over I/O-bussen. Så for vårt DDR4-eksempel er CAS-latenstiden 10 nanosekunder; for vårt DDR5-eksempel er CAS-latenstiden også 10 nanosekunder.
RAS til CAS forsinkelse
Den andre oppføringen i de primære timingene er RAS til CAS-forsinkelsen. Dette vil generelt bli betegnet som tRCD og er en minimumsverdi, ikke en eksakt verdi. Hvis det ikke er noen rader åpne når en leseinstruksjon kommer inn, er dette kjent som en "sidemiss." En rad må først åpnes for å få tilgang til en kolonne for å lese dens data. RAS står for Row Access Strobe. I likhet med CAS er det ikke lenger en stroboskop med navnet som en bakrus, men det er navnet på kommandoen som gis for å åpne en rad.
RAS til CAS-forsinkelsen er minimumsmengden av klokkesykluser som tas for å åpne raden, forutsatt at ingen er åpen. Tiden for å kunne lese data i det scenariet er tRCD + tCL. DDR4-eksemplet vårt har en tRCD på 18, som er 11,25 nanosekunder, mens vårt DDR5-eksempel har en tRCD på 39, som gir 12,1875 nanosekunder.
Tid for forhåndslading av rad
Den tredje primære timingen er Row Precharge Time, vanligvis forkortet til tRP. Denne verdien er viktig når det er en annen type sideglipp. I dette tilfellet er ikke høyre rad åpen, men en annen rad er det. For å åpne den høyre raden, må den andre raden først lukkes. Prosessen med å fullføre en rad kalles forhåndslading. Dette innebærer å skrive verdiene til raden som ble lest fra da den åpnet.
Row Precharge Time er det minste antallet klokkesykluser som kreves for å fullføre forhåndsladeprosessen på en åpen rad. Den totale tiden for å kunne lese data fra en celle, i dette scenariet, vil være tRP + tRCD + tCL. Siden verdiene til tRP er de samme som tRCD i begge eksemplene våre, er det lett å se at de slutter opp med de samme verdiene: 11,25 nanosekunder for DDR4 tRP og 12,1875 nanosekunder for DDR5 tRP.
Radaktiveringstid
Den fjerde primære timingen er radaktiveringstiden, vanligvis forkortet til tRAS. Dette er minimum antall klokkesykluser mellom kommandoen for å åpne en rad og forhåndsladingskommandoen for å lukke den igjen. Det er tiden som trengs for å oppdatere raden internt. Dette er den eneste primære timingen som overlapper med en annen, spesielt tRCD. Verdiene varierer, men er vanligvis omtrent tRCD + tCL, selv om de kan variere opp til rundt tRCD + (2* tCL).
DDR4-eksemplet vårt har en tRAS på 38 sykluser som gir en total tid på 23,75 nanosekunder. DDR5-eksemplet vårt har en rRAS-verdi på 102 sykluser som gir en total tid på 31,875 nanosekunder.
Historisk sett for synkronisert DRAM har verdiene vært veldig nær tRCD + tCL, som vist i vårt eksempel DDR4-timing. tRCD + (2* tCL)-scenarioet ble tradisjonelt brukt for asynkron DRAM, da minnekontrolleren trengte å gi mer enn nok tid til at operasjonen skulle fullføres. Interessant nok bruker DDR5 for øyeblikket også tRCD + (2* tCL) summen. Det er uklart om det er forårsaket av en endring i standarden eller om det er et problem med tidlige DDR5-produkter som vil bli strammet inn etter hvert som plattformen modnes.
Interessant nok er det noen bevis på at det er mulig å starte opp med en tRAS lavere enn tRCD + tCL. Teoretisk sett burde dette egentlig ikke fungere. Det er uklart om dette er fordi denne verdien, som de fleste andre timinger, er et minimum og minnekontrolleren velger å bruke løsere timings i praksis. Eller hvis innstillingene bare var delvis stabile. Av de primære timingene har dette sannsynligvis den minste effekten på den faktiske ytelsen, men det kan være verdt å justere hvis du er ute etter topp ytelse, spesielt med de høye verdiene sett i gjeldende DDR5.
Kommandohastighet
Kommandohastigheten er antall sykluser mellom en valgt DRAM-brikke og en kommando utført på den brikken. Det finnes mange akronymer for denne verdien, for eksempel CR, CMD, CPC og tCPD. Den enkleste måten å fortelle på er at tallverdien vanligvis følges av en "T." Til tross for T-notasjonen, er dette fortsatt et mål i klokkesykluser.
Det meste av RAM du finner vil kjøre på 2T, selv om noen kan kjøre på 1T. Det vil være en minimal forskjell siden dette er forskjellen på en enkelt klokkesyklus, mindre enn et nanosekund.
Sekundær og tertiær timing
Det er mange andre sekundære og tertiære tidspunkter som kan endres. Det er imidlertid svært komplisert å gjøre det. Selv erfarne minneoverklokkere kan ta en dag eller mer å ringe inn stabile innstillinger. Noen er lettere å justere enn andre og har større konsekvenser. For eksempel tREFI og tRFC. Disse kontrollerer hvor ofte minnecellene oppdateres og hvor lang tid oppdateringsprosessen tar. Under oppdateringsprosessen må banken ellers sitte stille. Så å ha et så stort gap mellom oppdateringer og så kort oppdateringsperiode som mulig betyr at RAM-en din kan fungere i lengre tid.
Justering av disse verdiene viser en bestemt verdi når RAM-konfigurasjonen din har et utilstrekkelig antall banker. Det er viktig å forstå at å få disse verdiene feil vil føre til store minnekorrupsjonsfeil, da cellene ikke vil bli oppdatert ofte nok. Disse innstillingene er også følsomme for RAM-temperatur, da dette direkte påvirker hvor raskt ladningen i en celle forfaller og dermed hvor ofte den må oppdateres.
Minnekontrollerforhold
Nyere generasjoner av CPUer kan tillate deg å konfigurere minnekontrollerforholdet. Dette er vanligvis kjent som Gear 1, 2 og 4. Gear 1 får minnekontrolleren til å kjøre i et 1:1-forhold med minnet. Dette resulterer imidlertid i overdreven strømforbruk over 3600MTs, noe som påvirker systemstabiliteten. For en viss økning i latens, vil bytte til Gear 2 kjøre minnekontrolleren i et 1:2-forhold, med halve hastigheten til minnet. Dette gir til syvende og sist bare noen fordel fra rundt 4400MT og oppover. Gir 1 er bedre, men Gir 2 kan gi stabilitet ved høyere hastigheter.
Selv om dette er viktig for DDR4 RAM, kjører DDR5 RAM for øyeblikket alltid i Gear 2 ettersom den starter raskere. Selv om det for øyeblikket er unødvendig, siden teknologien ikke er moden nok til å bruke, vil Gear 4 drive minnekontrolleren i et 1:-forhold med minnet på en fjerdedel av hastigheten. Igjen er dette bare nødvendig ved høye hastigheter. Det er imidlertid uklart nøyaktig hvor denne overgangen vil være siden maskinvaren ikke er der ennå.
Konklusjoner
RAM-timing gir utrolig konfigurerbarhet for system-RAM. Imidlertid er de også et dypt kaninhull hvis du kommer inn i full RAM-overklokking. For å hjelpe til med å gjøre det enklere å få de fleste fordelene, lar XMP-standarden minneprodusenter spesifisere anbefalte tidspunkter utenfor JEDEC-standardene. Dette kan tilby ekstra ytelse i en nesten plug-and-play-implementering.
I noen tilfeller vil XMP-profilen bli aktivert som standard. Likevel vil det ofte være nødvendig å velge det manuelt i BIOS. Dette bruker automatisk de høyere anbefalte hastighetene fra leverandøren og strammer inn tidspunktene til de leverandørtestede innstillingene. Hvis du bestemmer deg for å konfigurere RAM-timingene dine, er det viktig å vite hva de er og hva de gjør.