Minnesguide – AMD Ryzen 1000/2000/3000
För Zen2/Matisse/R3000 gäller lite andra värden på spänningar och likaså lite annat smått & gott skiljer.
>>Klicka här för att komma till sektionen med Zen2 uppdateringen<<
Inledning och snabb genomgång av SPD, XMP & DOCP
Standard hastigheter på första generations Ryzen (Zen, 1000 serien)
Prestandapåverkan av minneshastighet & latens.
Tester på temat minneshastighet/latens
Hur att få tag i B-Die baserade minnesmoduler?
QVL Listor för de vanligaste AM4 moderkorten
Nyttiga program
Tweaking allmäna tips på vart att börja
Timings genomgång av timings, vad det är och vilka som finns
BCLK klockning
Knep & Knåp
Vidare info Spänningar samt minnesspecifika inställningar i UEFI
Nyttiga länkar
Inledning
Här nedan följer en sammanställning av information gällande internminne på Ryzen plattformarna, denna guide kan innehålla stavfel och grammatiskt tveksamma saker som skulle få vilken språklärare som helst att spräcka ett blodkärl eller två i ren frustration. Det får ni helt enkelt leva med och ta detta för vad det är tänkt att användas som, en hjälp vid val och konfiguration av internminne till Zen och Zen+, den uppdateras fortlöpande till att börja med då det finns en hel del saker att gå igenom och det kan hända att enskilda småsaker blir korrigerade, med det sagt; Håll till godo!
Till att börja med så kan det vara bra att förstå hur Ryzen fungerar med minnen, som alla andra processorer idag så har Zen & Zen+ inbyggd minneskontroller, denna brukar man kalla för IMC (Integrated Memory Controller). Denna är vad som direkt kommunicerar med internminnet och kvalitén på denna avgör för det mesta den hastighet man i slutändan kan nå upp i tillsammans med layout, kopparbanor och deras dragning samt den kvalité moderkortet har på VRM för minnena. En annan sak som påverkar hur högt man kan komma verkar vara om man har en X cpu eller ej (1800x, 2700x, 1600x osv), om det beror på binning av processorerna vet jag icke men generellt lyckas överlag X processorer bättre med hög minneshastighet, har man oturen att få en cpu som inte trivs jättebra med högre infinity fabric frekvenser så kan man prova att ge den lite mera spänning i form av ökad vcore genom offset volt eller justerad vcore LLC. En annan sak som spelar in på hur högt man kan komma är om man kör en manuellt överklockad CPU, med höjd IF frekvens så höjer man generellt också behovet av spänning till cpu kärnorna vilket gör att en överklockad CPU kan vara stabil med låg minneshastighet men inte med hög och samma processor i stock hastighet kan klara högre minneshastigheter utmärkt. Samma sak gäller här, justera vcore antingen direkt genom manuell spänning och/eller justera LLC.
Moderkortet i sig och dess UEFI samt AGESA står ändå för en del saker trots att processorn kommunicerar direkt med minnena, detta är först och främst ”Memory training” under ABL (AGESA bootloader) och därigenom konfigurering av alla spänningar, latenser och motståndsvärden för minnesbussen och minnena och så vidare. Så även om moderkortet inte har speciellt mycket med den direkta kommunikationen att göra så har det desto mer med konfigurationen att göra. Mycket av detta sker under ABL och är sällan synligt till slutanvändaren om man nu inte råkar ha en debug led avläsning på moderkortet. Om man har oturen att få tag i ett moderkort som har ganska dåligt programmerad UEFI så kan det tyvärr påverka minnespotential negativt även om hårdvaran i sig är bra, i det läget kan man ibland styra upp mycket själv men det förutsätter att man orkar engagera sig och att UEFI'n faktiskt gör tillgänglig alla saker man kan behöva justera för att uppnå önskad frekvens.
Då en hel del sker i mjukvara under boot gör det att vissa minnen kan komma att fungera bättre med rent automatiska inställningar på vissa moderkort, här kommer så kallade QVL listor in i bilden, dessa innehåller information om vilka minnesmoduler som fungerar till listans moderkort och vid vilken hastighet, ibland står även spänning som blivit använt eller uefi version. Om man vill köpa minnen & bara slänga på dom på moderkortet utan att behöva göra annat än aktivera XMP/D.O.C.P i bios eller ingenting alls extra så ska man alltid kolla så att minnena man köper finns med på QVL listan eller att man råkar få info från en annan användare som kan bekräfta att dom fungerar.
Här kommer vi in på SPD eller serial presence detect, detta är en lagring av information på minnesmodulerna som avläses för att ställa in timings & hastigheter.

https://en.wikipedia.org/wiki/Serial_presence_detect
Det är även här som olika XMP profiler är lagrade (extreme memory profile). Alla minnen har en så kallad SPD programmering och den avläses vid boot. Programmeringen i sig följer den standard som blivit satt av JEDEC. Oavsett vilken typ av chip minnesmoduler har så kommer ABL läsa av SPD infon alternativt den utökade XMP profilen om så är valt och sedan sätta timings och övriga inställningar där efter. Att minnesmodulen då blivit testad och finns med på QVL listan säkerställer att det inte uppstår inkompatibilitet. Det kan nämligen inträffa att man stöter på problem med vissa moduler på vissa moderkort och ibland hjälper det inte ens att sätta manuella timings & inställningar då det skiter sig redan vi pre post & agesa boot loadern. XMP profiler är från början en sak som Intel lanserade men som fått såpass stort fotfäste på marknaden att även AMD moderkort nyttjar dessa profiler, antingen genom XMP i uefi eller D.O.C.P, D.O.C.P är egentligen bara ett annat sätt att säga att man läser av de lagrade XMP profilerna utan att man använder Intel namnet. Om minnena man kör har "XMP certifiering" så betyder det att dom har en eller fler profiler innehållandes en utökad info om fungerande timings vid högre hastigheter än vad JEDEC standarder egentligen tillåter och oftast finns flertalet profiler lagrade men inte alla moderkort kan avläsa alla profiler då det faktiskt finns fler varianter av XMP och vad som skiljer de olika varianterna av XMP är snudd på omöjligt att få fram. Dock brukar det generellt sett finnas en XMP profil 1 som är "entusiast" profilen och en XMP profil 2 som är "extreme" profilen.

Utdrag av SPD och XMP info samt lite annat i Thaiphoon Burner på mitt internminne, de timings och hastigheter som avläses vid boot syns rätt tydligt även hur lågt JEDEC profilerna ligger, längst ner finns XMP. Här används också minnesbussens riktiga hastighet, se förklaring längre ner
https://www.hardwareluxx.de/community/f13/hardwareluxx-spd-da...
En väldigt stor lista med SPD dumpar från en stor mängd olika minnesmoduler.
Vilka minnen som fungerar bäst annars med Ryzen beror mestadels på vilket minneschip som används på modulerna, dessa chip tillverkas av SK Hynix, Micron eller Samsung. De chip som fungerar bäst vad vi vet hitintills är Samsung ”B-Die”, det finns andra varianter också så som S-Die, anledningen till att B-Die tenderar att orka högst i hastighet på Ryzen är att det finns några timings som är en smula aggressiva och det är inte alla chip som klarar detta i högre hastigheter. B-Die är bland de bättre minneschip som det går att få tag på och de klarar aggressiva timings även i höga hastigheter.
Detta gör att till Ryzen rekommenderas i första hand B-die baserat minne, om man inte känner något större behov av höga hastigheter (upp till ~2933MT/s) så fungerar även Hynix eller Micron chip men förvänta er inga frekvens eller latensrekord med dessa. Fungerar dock utmärkt om man måste hålla en budget och Zen+ (2000 serien Ryzen) med 400 serien moderkort fungerar oftast bättre med Hynix & Micron baserat minne än vad Zen (1000 serien) gör.
På tal om hastigheter så när det kommer till standard hastighet på minnen så är de flesta specade till en viss hastighet vid en viss timingkonfig samt spänning. De flesta minnen och allra helst B-Die minnen kan dock köras ganska långt utanför sin specifikation med bibehållen stabilitet och allra helst med extra spänning. Om man ska överklocka minnen så kan det vara bra att bestämma vid vilken frekvens man vill prova, säg 3466MT/s istället för minnets 3200MT/s, för B-Die kan det räcka gott att endast köra lite mer spänning för att komma upp i den frekvensen, timings kan om man inte redan pressat dom hårt vid 3200 oftast vara de samma vid 3466 men skulle man stöta på patrull så är det bara att släppa lite på primärtimings i första hand samt tRFC och tCWL.
Standard hastigheter på första generations Ryzen (Zen, 1000 serien) är som följer

Det är alltså detta som AMD själva sagt ska fungera, detta har efter en del uppdateringar av AGESA höjts på fyra moduler men om man inte vill överklocka är det dessa hastigheter som egentligen gäller, på samma sätt som 2666MT/s är standar för en 8700k och allt över är OC. För andra generationens Ryzen, 2000 serien (Zen+) är det 2933MT/s som är standard för 2st single rank moduler.
Är det då någon skillnad på minneshastigheter på Ryzen och gör latenser något?
Då måste vi börja med att titta på hur Ryzen fungerar igen, mellan IMC och CPU kärnor och PCI-E buss så finns en anslutning/buss man valt att kalla för Infinity Fabric, hastigheten på denna är en slav av minnesbussens hastighet, detta gör att om man kör 3200Mt minnen så går minnesbussen i 1600MHz och det gör även Infinity Fabric bussen, det gör att all intern kommunikation i Ryzen snabbas upp men även kommunikation utåt bättras på i form av lägre latenser och högre bandbredd. Så förutom att ge bättre minnesbandbredd och lägre latenser så ger bättre minnen också en allmänt högre prestanda ur din Ryzen CPU. Man bör dock vara medveten om att saker som är i första hand limiterade av ren CPU prestanda och inte latens eller bandbredd på minnen inte kommer se någon jätteskillnad i prestanda, en del kan fortfarande se förbättring tack vare infinity fabric frekvenshöjning men det som ser absolut bäst prestandaskillnad är spel. Syntetiska CPU tester är för det mesta inte lika påverkade som spel eller GPU tester, jo du läste rätt, gpu tester. En sak som påverkas enormt av timings och minneshastighet är 3DMark Firestrike & Timespy. En sak till som påverkas av höjd IF frekvens är kommunikationen mellan CCX klustren i Zen och Zen+ kärnan, likaså cache till cache överföringar mellan klustren, även direkt cpu till cpu kommunikation påverkas. Detta är vad jag menar när jag skriver förbättrade latenser internt. Som jag skrev tidigare så påverkar också IF frekvens stabilitet och vissa processorer är mer känsliga än andra för ändrar IF frekvens i det avseendet på samma sätt som att vissa processorer klarar högre cpu frekvens än andra.

Denna bild kan ha felaktig benämning av delar, mest för illustrativt syfte, vissa hävdar att "interconnects" egentligen är IMC
Nu kanske någon funderar varför jag skriver 3200MT/s och inte 3200MHz för minneshastighet, anledningen till detta är enkel. DDR till och med DDR4 använder en teknik som kallas Double Data Rate (DDR), det betyder att minnesoperationer utförs vid både stigning av spänning och när spänning faller. De svängningar som minnesbussen gör med spänningen sker så ofta per sekund att dom mäts i MHz men en svängning är både stigning och ett fall vilket gör att två operationer utförs per svängning. Detta gör att Den faktiska minneshastigheten egentligen ska uttryckas som Mt (Megatransfers) per sekund och inte MHz då antalet spänningssvängningar inte dubbleras, det är bara jobbet per svängning som gör det. Därför går minnesbussen i 1600MHz vid 3200MT/s minneshastighet. En bisak men väl värd att nämna då detta är en allmän villfarelse som dessutom råkar spädas på av branschen i stort. Det verkar dock vara lite av ett förlorat slag detta och personligen hyser jag ingen agg mot den som skriver 3200MHz som minneshastighet, jag försöker däremot själv att inte göra det.

Här finner ni ett par tester & inlägg jag gjort tidigare på temat minneshastighet/latens
#17026152
#17028414
#17022467
#17024530

För att illustrera hur spelprestanda påverkas av minneshastighet & latenser ser ni här en bild från ett av mina tester där ni finner 3 olika minnesinställningar tillsammans med OC och stockfrekvens av cpu, även en underklockning av cpu är med för att demonstrera just hur stor påverkan minnen faktiskt har vid CPU bundna scenarion. Mer info om testerna finns i första länken ovanför men lite snabbt kan vi säga att "3333L" är 3333MT/s med manuella timings helt både primär och sekundärtimings, "3333H" är XMP profil vid 3333MT/s och "2666" är 2666MT/s med fullt automatiska timings.
Vad menar jag då med "cpu bundna förhållanden"? Jo när GPU inte längre håller tillbaka den maximala FPS som kan visas av systemet, i korta ordalag, alltså om man exempelvis har en mycket kraftig GPU för den upplösning man kör, exempelvis om man är intresserad av hög FPS spelande (144-200fps). Då kommer minneshastighet och latenser utan tvekan märkas, speciellt då det har en tendens att lyfta 0.1% low FPS rätt markant. Om man däremot kör en 60fps låsning via v-sync eller liknande så kommer man inte märka någon skillnad innan lägsta FPS hamnar under 60fps pga cpu/minnesbelastning och det är relativt sällan det sker men det finns spel även idag som kan orsaka detta. Andra scenarion är VR där man oftast inte vill hamna under 90FPS alls någonsin vilket kan vara svårare än det låter, med snabba minnen är detta betydligt enklare.
En annan sak värd att veta är att vissa spel kommer reagera mer på låga latenser än höga frekvenser, De 3 sista Far Cry spelen är exempelvis mycket latenskänsliga medans andra spel är inte speciellt latenskänsliga men desto mer frekvenskänsliga. På det stora hela är bägge delarna viktigt men kommer man upp i 3200/3333/3466MT/s så är låga latenser viktigare än höjd frekvens, detta då förtjänsten av höjd infinity fabric frekvens avtar när du kommer upp till denna punkt och minnen har generellt betydligt högre latenser när man kliver över dessa hastigheter, detta ger en sweetspot runt 3333MT/s där IF förtjänst är som störst och latenser kan hållas så låga som möjligt.
Hur att få tag i B-Die baserade minnesmoduler?
Vanligt förekommande minnesmoduler med Samsung B-Die chip (avvikelser kan förekomma med olika revisioner)

G.Skill Flare X 2x8GB 3200CL14
https://www.prisjakt.nu/produkt.php?p=4236779
Dessa vart framtagna specifikt för Ryzen och är det absolut enklaste sättet till god minnesprestanda, det är höga odds att de flesta moderkortstillverkare lagt till anpassade profiler för dessa i uefi och därför behövs minsta möjliga pill med dessa, de finns också i fler varianter.
För att hitta b-die baserade minnen kan man kika på denna sida.
B-Die Finder
Övriga G.Skill med B-Die kan hittas i denna lista, den är inte komplett men relativt korrekt & bra. Den innehåller även andra märken med B-Die minnen
https://www.reddit.com/r/Amd/comments/62vp2g/clearing_up_any_...
Ytterligare en lista som verkar stämma rätt bra
https://www.hardwareluxx.de/community/f13/die-ultimative-hard...
Sedan har vi lite andra saker som är bra och veta ifall man jagar de där sista megahertzen, för absolut bäst resultat bör man köra Single Rank minnen, nu ställer sig säkert en & annan frågan vad Single rank innebär, grovt förenklat så beskriver det layouten som används på minnesmodulen med minneschippen, det finns Single Rank och så finns det Dual Rank. Oftast har högdensitets minnen Dual Rank och lägre densiteter kör single rank. För det mesta är 8GB moduler single rank och 16GB moduler dual rank. Det kan dock vara bra & veta att bandbredden med dual rank ibland kan vara högre än med single rank vid samma hastighet så även om man kanske inte når upp i lika hög hastighet med dual rank så behöver det i slutända inte betyda så mycket då prestanda i spel oftast är bättre med dual rank vid exakt samma hastighet/timings, dock når inte DR lika högt som SR.
En annan sak som också påverkar hur högt man tar sig i hastighet är hur många minnesmoduler man kör, på Ryzen funkar 2 moduler bäst, 4st moduler kommer sätta större belastning på IMC och moderkorts VRM samt införa signalförluster vilket gör att det är i det närmaste omöjligt att komma upp i samma hastigheter med 4 moduler som med 2 moduler. Detta är dock sant med de flesta plattformar och gäller inte enbart Ryzen, detta är en av anledningarna till att poängjagande överklockare oftast använder bara 2 moduler.
Nyttiga program
https://www.techpowerup.com/memtest64/
Memtest64 från techpowerup, ett alternativ till alla andra minnestestare, vilken som är mest effektiv vet jag ärligt talat inte men denna är rekommenderad av andra.
https://www.techpowerup.com/download/ryzen-timing-checker/
Ryzen Timing Checker, mycket bra program som direkt kan visa vilka timings och inställningar man kör
http://hcidesign.com/memtest/
HCI Memtest, ett enkelt stabilitetstest för minnen, gratisversionen har en begränsning på 2GB per program öppet, man kan nämligen köra så många instanser samtidigt som man vill & på så vis dra nytta av alla tillgängliga cpu kärnor och samtidigt se til att så stor del av minnet som möjligt används, gå dock inte för högt för då kommer er SSD/HDD bli det som testas istället
https://www.karhusoftware.com/ramtest/
RAM Test av Karhu software, ett alternativ till Memtest HCI eller Memtest64.
http://www.ocbase.com/index.php/download
OCCT Riktigt bra på att hitta instabilitet både hos cpu & minne
https://www.mersenne.org/download/
Prime95, ett bra test av minnesstabilitet om man kör torture test blend, tar dock mycket tid innan det visar sig.
http://www.softnology.biz/files.html
Thaiphoon Burner, detta program ska användas med största försiktighet, om man är nyfiken på vilken typ av minneschip som sitter på sina internminnen går det bra att läsa av denna info i detta program. Det är dock fullt möjligt att skriva sönder SPD programmeringen på minnena om man gör fel så åter igen, använd med största försiktighet och på egen risk.
https://www.hwinfo.com/download.php
HWiNFO64, ett bra program för avläsning av spänningar & temperaturer, kan även visa SPD info & aktuella timings.
http://www.overclock.net/forum/13-amd-general/1640919-ryzen-d...
Ryzen Dram Calculator, ett smart program där man kan utifrån sina egna minnen (spd läsning) kalkylera eventuella timings, andra kalkyleringar kan också utföras men det är en fördel att veta vilken typ av chip man har på minnesmodulerna.
QVL listor för de flesta AM4 moderkort
https://www.asus.com/uk/Motherboards/ROG-CROSSHAIR-VI-EXTREME...
https://www.asus.com/uk/Motherboards/ROG-CROSSHAIR-VI-HERO/He...
https://www.asus.com/uk/Motherboards/PRIME-X370-PRO/HelpDesk_...
https://www.asus.com/uk/Motherboards/ROG-STRIX-X370-F-GAMING/...
https://www.asus.com/uk/Motherboards/PRIME-B350-PLUS/HelpDesk...
https://www.asus.com/uk/Motherboards/ROG-CROSSHAIR-VII-HERO/H...
https://www.asus.com/uk/Motherboards/ROG-STRIX-X470-F-GAMING/...
https://www.asus.com/uk/Motherboards/TUF-X470-PLUS-GAMING/Hel...
https://www.asus.com/uk/Motherboards/PRIME-X470-PRO/HelpDesk_...
https://www.asus.com/uk/Motherboards/ROG-STRIX-X399-E-GAMING/...
https://www.asus.com/uk/Motherboards/ROG-ZENITH-EXTREME/HelpD...
https://www.asus.com/uk/Motherboards/PRIME-X399-A/HelpDesk_QV...
http://www.asrock.com/mb/AMD/X370%20Taichi/index.us.asp#Memor...
http://www.asrock.com/mb/AMD/Fatal1ty%20X370%20Gaming%20X/ind...
http://www.asrock.com/mb/AMD/Fatal1ty%20X370%20Gaming%20K4/in...
http://www.asrock.com/mb/AMD/X370%20Killer%20SLI/index.us.asp...
http://www.asrock.com/mb/AMD/Fatal1ty%20AB350%20Gaming%20K4/i...
https://www.asrock.com/mb/AMD/X470%20Taichi%20Ultimate/index....
https://www.asrock.com/mb/AMD/X470%20Taichi/index.asp#Memory
https://www.asrock.com/mb/AMD/X470%20Master%20SLIac/index.asp...
https://www.asrock.com/mb/AMD/X470%20Master%20SLI/index.asp#M...
https://www.asrock.com/mb/AMD/Fatal1ty%20X470%20Gaming%20K4/i...
http://uk.gigabyte.com/Motherboard/GA-AX370-Gaming-5-rev-10#s...
https://www.gigabyte.com/uk/Motherboard/GA-AX370-Gaming-K7-re...
https://www.gigabyte.com/uk/Motherboard/GA-AX370-Gaming-K5-re...
https://www.gigabyte.com/uk/Motherboard/GA-AB350-Gaming-3-rev...
https://www.gigabyte.com/uk/Motherboard/X470-AORUS-GAMING-7-W...
https://www.gigabyte.com/uk/Motherboard/X470-AORUS-GAMING-5-W...
https://www.gigabyte.com/uk/Motherboard/X470-AORUS-ULTRA-GAMI...
https://www.msi.com/Motherboard/support/X370-XPOWER-GAMING-TI...
https://www.msi.com/Motherboard/support/X370-GAMING-PRO-CARBO...
https://www.msi.com/Motherboard/support/X370-GAMING-PLUS.html...
https://www.msi.com/Motherboard/support/X370-KRAIT-GAMING.htm...
https://www.msi.com/Motherboard/support/B350M-MORTAR-ARCTIC.h...
https://www.msi.com/Motherboard/support/B350-TOMAHAWK-ARCTIC....
https://www.msi.com/Motherboard/support/B350-GAMING-PLUS.html...
https://www.msi.com/Motherboard/support/X470-GAMING-M7-AC#sup...
https://www.msi.com/Motherboard/support/X470-GAMING-PRO-CARBO...
https://www.msi.com/Motherboard/support/X470-GAMING-PRO#suppo...
https://www.msi.com/Motherboard/support/X470-GAMING-PLUS#supp...
Tweaking
Om man nu införskaffat sig ett par skinande B-Die baserade moduler och inte vet i vilken ände man ska börja för att få ut så mycket av dom som möjligt så kommer här en del nyttig info. Om ni vill att era moduler ska arbeta i rätt hastighet så kan ni bege er in i moderkortets uefi och slå gång på XMP/DOCP och välja rätt minneshastighet. Om ni nu tycker att detta var skrämmande nog och ni inte bryr er om den där sista lilla prestandagnuttan så kan ni nöja er här. För er andra så kan ni kika på nästa steg som involverar manuella timings.
Vi kan börja med följande bilder som innehåller en slags lathund för timings som bör fungera alldeles utmärkt utan allt för stora ingrepp med övriga inställningar, kom dock ihåg att dessa gäller enbart för b-die baserade minnen. Safe inställningarna bör fungera utan någon annan justering, Fast kan behöva lite handpåläggning så som extra dram spänning, högre hastigheter kan också behöva en liten knuff på SoC spänning. (se förklaring nedan)

"The Stilt" som tagit fram dom, dessa är alltså ämnade för B-Die baserade minnen, inte Hynix eller Micron
Timings
Det här med timings blir fort väldigt invecklat men vi kan börja med att ta det på en väldigt enkel nivå, dram är uppbyggt på ett sätt som skulle kunna påminna om excel, du har rader, kolumner, blad och arbetsböcker för att lagra information i celler och dram fungerar på lite samma sätt. Du har flera minneschip på samma minnesmodul och varje chip innehåller sedan rader & kolumner (Rows, Columns) men också stackade rader och kolumner, när man sedan pratar om timings så kan man fritt översätta begreppet till ett samlingsnamn för hur lång väntetid som behövs för att göra minnesoperationer. Väntetiden i sig är oftast definierad som hur många clockcykler som måste passera innan minnesoperationer associerad med denna timing kan utföras.

Lånad av anandtech, en så kallad "förenklad" syn på minnesoperationer.
Nu finns det en mycket stort antal variationer på hur en minnesoperation kan utföras, tänk på excel igen där du har info i en cell men vill flytta den till en annan, detta kommer på dram medföra att du först måste "väcka" den nya cellen till liv med en precharge signal, denna signal har en viss tid allokerad till sig för att det ska vara säkert att cellen faktiskt har hunnits "väckas" til liv, detta är mycket förenklat en precharge timing. Sedan finns det andra latenser som sätter x antal klockcykler som väntetid innan data kan skrivas till en cell det nyss skrivits till, andra som bestämmer hur lång väntetid det ska vara mellan upprepade skrivningar till samma "bank" av minnet (se det som ett arbetsblad i excel...) och sen finns det specialare som definierar hur bred en signal kan vara i antal klockcykler. Det finns också latenser som definierar tider för själva adresseringen av rader och kolumner och banks.
Nu kan man praktiskt taget göra doktorsavhandlingar på hur DRAM fungerar och jag har inte kunskapen att förmedla detta på ett mer pedagogiskt sätt än jag gjort här, för det som vill ha en mer djuplodande genomgång finns det en veritabel uppsjö av information att finna, till exempel hos anandtech.
Nu finns det ett knep att räkna på latenser och frekvenser för att se hur lång faktisk tid som går åt till att överföra data vid givet CAS värde och givet MT/s värde, personligen anser jag att denna uträkning lämnar en hel del övrigt att önska då det kastar alla andra latenser åt sidan och fokuserar enbart på Column adress strobe. Det ger dock en fingervisning i hur en snabb frekvens med högt CAS värde kan vara långsammare än en låg hastighet med lågt CAS värde. https://en.wikipedia.org/wiki/CAS_latency#Memory_timing_examp... ger en bild av hur CAS och MT/s påverkar den slutgiltiga tiden i nanosekunder
Som ett exempel, 3200MT/s CL15 ger en tid på 9,38ns medans 4000MT/s med CL19 ger 9,50ns för första överföringen, kort & gott, timings spelar roll.
Nedan följer en enkel genomgång av de timings man kommer åt att justera på Ryzen
En stor del av infon är direkt saxad från AMD men även andra ställen, nu orkar jag inte översätta allt til kvasisvenska så det får stå kvar på engelska, hoppas det duger ändå.
Primära timings
- tCL
- Column adress strobe. If a row has already been selected, it tells us how many clock cycles we'll have to wait for a result (after sending a column address to the RAM controller). (Lägsta med B-die: ~12-14@3200, 16 för Hynix)
- tRCD
- RAS to CAS delay, read & write är separerad på Ryzen till tRCDWR och tRCDRD Once we send the memory controller a row address, we'll have to wait this many cycles before accessing one of the row's columns. So, if a row hasn't been selected, this means we'll have to wait tRCD + tCL cycles to get our result from the RAM. (Lägsta med B-die: ~12-15@3200, 18 för Hynix)
- tRP
- Row Precharge Time. If we already have a row selected, we'll have to wait this number of cycles before selecting a different row. This means it will take tRP + tRCD + tCL cycles to access the data in a different row. (Lägsta med B-die: ~12-15@3200, 18 för Hynix)
- tRAS
- RAS Active Time. This is the minimum number of cycles that a row has to be active for to ensure we'll have enough time to access the information that's in it. This usually needs to be greater than or equal to the sum of the previous three latencies (tRAS = tCL + tRCD + tRP). (Lägsta med B-die: ~22-32@3200, 38 för Hynix)
- tRC
- Row cycle time, or the number of clock cycles required for a memory row to complete a full operational cycle. Lower values can notably improve performance, but should not be set lower than tRP+tRAS for stability reasons. Räknas inte alltid till primära men det är vissa som gör det (Lägsta med B-die: ~36-45@3200, 56 för Hynix)
Med bra B-Die minnen (bra binning) kan man utan problem köra 14-14-14-14-28-42 på primära timings i 3200MT/s och detta vid 1.35v dram, nu kan vissa moduler kräva lite mer spänning för att klara detta medans vissa till och med kan vägra bli stabila vid dessa timings, mina moduler är ett par som inte kan gå lägre än 14-15-15-15-30, oavsett frekvens. Detta kan dock vara en effekt av SPD programmering och memory training som blir & spöka. I mitt fall gör det inte så mycket då modulerna istället kan hålla dessa timings vid 3466 med inte allt för hård spänning.
Hynix moduler brukar om dom kommer upp i 3200MT/s kräva runt 16-18-18-18-38-56 för att vara stabila.
Sekundära timings
- tWR
- Write recovery time, or the time that must elapse between a valid write operation and the precharging of another bank. Higher values are often better for stability. (Lägsta med B-die: ~10@3200, 22 för Hynix)
- tRFC
- Refresh cycle time, or the time it takes for the memory to read and re-write information to the same DRAM cell for the purposes of preserving information. (Lägsta med B-die: ~256@3200, 560 för Hynix)
- tRFC2
- Refresh cycle time for double frequency (2x) mode. Dividera tRFC med 1.34 för att få fram tRFC2 (Lägsta med B-die: ~190@3200, 416 för Hynix)
- tRFC4
- Refresh cycle time for quad frequency (4x) mode. Dividera tRFC2 med 1.625 för att få fram tRFC4 (Lägsta med B-die: ~117@3200, 256 för Hynix)
- tRDD_L
- RAS to RAS Delay (long), or Row to Row access in the same bank group.
- tRDD_S
- RAS to RAS Delay (short), or Row to Row access in a different bank group.
- tRRD_S
- Activate to activate delay (short), or the number of clock cycles between activate commands in a different bank group. (Lägsta med B-die: ~4@3200, 6 för Hynix)
- tRRD_L
- Activate to activate delay (long), or the number of clock cycles between activate commands in the same bank group. (Lägsta med B-die: ~6@3200, 8 för Hynix)
- tWTR_L
- Write to read delay (long), or the time between a write transaction and read command on the same bank group. (Lägsta med B-die: ~8@3200, 12 för Hynix)
- tWTR_S
- Write to read delay (short), or the time between a write transaction and read command on a different bank group. (Lägsta med B-die: ~3@3200, 4 för Hynix)
- tRTP
- Read to Precharge, or the number of clocks that are inserted between a read command to a row
pre-charge command to the same rank. (Lägsta med B-die: ~6@3200, 12 för Hynix) - tFAW
- Four activation window, or the time that must elapse before new memory banks can be activated after four ACTIVATE commands have been issued. Configured to a minumum 4x tRRD_S, but values >8x tRRD_S are often used for stability. (Lägsta med B-die: ~20-24@3200, 39 för Hynix)
- tCWL
- CAS Write Latency, or the amount of time it takes to write to the open memory bank. WCL is generally configured equal to CAS or CAS-1. This can be a significant timing for stability, and lower values often prove better. (Lägsta med B-die: ~12-14@3200, 16 för Hynix)
När det kommer till sekundära timings så verkar dom vara ungefär lika viktiga allihopa och det finns lite olika beräkningar man kan göra för att se vilka värden man bör sätta, AMD’s blog om timings innehåller en del info på denna front (gäller även primärtimings)
Tertiära timings
- tREFI
- Refresh timer, the amount of time it takes before a charge is refreshed so it does not lose its charge and corrupt. Measured in micro-seconds (µsec). Sätts per automatik men i samband med tRFC
- tCKE
- Clock Enable, When this signal is low, and after one clock cycle, the SDRAM is inhibited and no commands are interpreted despite the state of other lines. The SDRAM is made active on the rising edge of the clock after CKE is made high. Kan påverka stabiliteten rätt duktigt medans prestandapåverkan inte är så stor, högre frekvenser trivs med lägre tCKE värde. Agerar timing med "power down; enabled" mellan strömlägen men modifierar även pulsbredd(Lägsta med B-die: ~6-8@3200, 8 för Hynix)
- tRDWR, tWRRD
- Read-to-write and write-to-read latency, or the time that must elapse between issuing sequential read/write or write/read commands. (Lägsta med B-die: ~5-6@3200, 6 för Hynix)
- tRDRDSCL, tWRWRSCL
- Read-to-read and write-to-write latency, or the time between sequential read or write requests (e.g. DIMM-to-DIMM, or across ranks). Lower values can significantly improve DRAM throughput, but high memory clocks often demand relaxed timings. (Lägsta med B-die: ~2@3200) Dessa två ger väldigt mycket bättre prestanda och kan med B-Die sättas så lågt som 2, på Hynix kan man komma ner till 4 eller 5.
BCLK klockning
Denna term kan för vissa vara ny så vi kan börja med att förklara vad det är i mycket enkla ordalag, tänk på det som en slags ”huvudklocka” som i sin tur multipliers och dividers bygger vidare på, det är i grunden en busshastighet som förr band ihop CPU med nordbrygga (FSB eller Front Side Bus) och resten av moderkortet, idag är dock huvuddelen av nordbryggan integrerad i processorn så det används mer som en ren referensklocka som sedan allt annat bygger på.
Normalt ligger denna klockhastighet på exakt 100MHz och det som händer när man klockar via denna är att alla andra frekvenser höjs, inklusive S-ATA, PCI-e, CPU och minnesbuss hastighet, detta då alla andra hastigheter baseras på denna genom multiplar eller dividerare, nu kanske detta inte låter så illa men största problemet här är utan tvekan S-ATA och PCI-e, S-ATA då lagringslösningar normalt inte alls gillar höjd frekvens och det leder väldigt ofta till korrumpering av data, inte alla S-ATA anslutna enheter är lika känsliga men man ska inte underskatta just hur känsliga dom kan vara. Näst har vi PCI-E där vi har ett par problem, nummer ett är som för S-ATA att data som skickas via bussen blir korrupt eller att anslutna enheter bara slutar fungera/inte kommunicera tills hastighet sänks igen. Nummer två är att på Ryzen kommer själva länkhastigheten och dess version sänkas, från 100MHz till 105 eller 107MHz är det PCI-e 3.0, däröver sker en regression till PCI-e 2.0 och över 145MHz sjunker det till 1.0. En sänkning till 2.0 är kanske inte hela världen om man enbart spelar men ha i åtanke att det gäller även NVME anslutna enheter så där en anslutning tidigare gav 4 lanes vid 3.0 hastighet så är det bara 2.0 hastighet. Dessutom så sänks hastigheten mellan cpu och sydbryggan så bandbredden mer eller mindre halveras till den så har du många lagringslösningar via den så kommer skillnaden i hastighet märkas.

Här syns rät tydligt vad som händer med PCI-E med olika BCLK frekvenser
Med denna rätt stora brasklapp så finns det ändå ett par lösningar på de problem som uppstår, på nya Zen+ verkar det gå att asynkront köra BCLK högre utan att påverka övriga busshastigheter, om detta gäller även på äldre Zen med nya moderkort är mycket otydligt just nu och det är ännu mer otydligt om alla nya moderkort stödjer detta (eller äldre för den delen). Vissa moderkort har även ett ”halvt” stöd för asynkron BCLK klockning där man kan sätta en extern referens klocka för S-ATA bussen, detta avhjälper det största problemet men kvarstår gör PCI-E problematiken. Speciellt med NVME verkar det vara mycket känsligt för hastigheter annat än 100MHz där enheter bara slutar kommunicera tills klockan återställs.
Exakt hur anslutna enheter reagerar går icke att säga på förhand då alla enheter reagerar olika, det kan även skilja mellan olika exemplar av samma produkt på samma sätt som minnen och processorer orkar olika högt i frekvens vid klockning trots samma modell.
För min egen del så med X370 och en första gen Zen så ser det ut som att jag enbart har tillgång till extern S-ATA referensklocka men det problem jag får är att vid 104MHz BCLK slutar mitt integrerade Intel NIC att fungera. Så för min del är det inte jätteintressant att BCLK klocka.
Om vi nu kikar på hur BCLK klockning påverkar minneshastigheten så är det enklaste sättet att räkna på det att välja en minneshastighet i UEFI, säg 3333MT/s, om du då väljer en BCLK på 103MHz så kommer du få en hastighet av 3333x103=3433MT/s, sätter du 104MHz hamnar du på 3466MT/s osv.
Varför skulle man då vilja klocka med BCLK om det för med sig så mycket problem?
Jo därför att man normalt sett kan komma högre i både CPU och minneshastighet än man kan utan BCLK klockning, vad som är ännu mer underligt är att med BCLK klockning kommer man i många fall undan med lägre energiförbrukning vid samma klock som om man klockat utan bclk. Om man dessutom vill behålla stock inställningar i övrigt på CPU för att ha kvar XFR & PB (speciellt på 26/2700x) fungerar BCLK klockning väldigt bra.
Knep & Knåp
När det kommer till att pusha minneshastighet på Ryzen så finns det ett par knep, börja alltid vid en lägre frekvens och arbeta dig uppåt, på så vis låter man memory training jobba och hitta rätt inställningar för varje ökning. Säg att du har ett mål på 3466Mt, börja då inte på 3466 utan sätt de timings och spänningar som du tänker köra men använd en lägre hastighet så som 2933, öka sedan till 3200 och sedan 3333 och sist 3466. Låt alltså datorn starta om efter du sparat i uefi och låt den gå genom memory training för varje steg. Att hoppa direkt på 3466 skulle med all förmodan resultera i en icke boot med failsafe settings efter fail count har löpt ut. Detta då memory training får svårt att hitta rätt med för stora hopp i hastigheter.
Steg ett att börja med är att uppdatera EUFI/AGESA så att man har senaste versionen, var noga med att följa eventuellt speciella procedurer, övergången från tidiga UEFI versioner till senaste PinnaclePi versioner kan kräva en speciell Bridge version emellan, efter det så bör CPU köras helt stock för att minimera antalet felkällor vid minnes OC. Nästa steg är att antingen bestämma sig för att sätta timings helt manuellt eller att bara ladda XMP/DOCP profil. Sedan kan man börja på en lägre hastighet så som 2667 och jobba sig uppåt, ett bra test att köra mellan varven är OCCT då det sätter rätt bra press på systemet och visar minnesfel ganska fort. När det kommer till spänningar så är det bra att börja med att öka VDDP till runt ~0.925v och ProcODT till ~53.3ohm, detta kan sedan behöva en något ökad SoC spänning om man går upp runt 2933 eller mer, SoC brukar ligga bäst runt 1.05 till 1.15v, de flesta tillverkarna sätter 1.1v direkt på SoC när man höjer minnesfrekvens men man bör inte köra mer än nödvändigt. Om ni går utanför spec på minnen (frekvens och/eller timings) så kan det behöva en ökad dram spänning och en justerad VTT_DDR spänning.
Om ni nu pressar frekvenser väldigt högt så kan ni behöva justera CAD och Databus inställningarna och sätta lite andra motståndsvärden på dessa men för lägre frekvenser brukar det inte behövas, kör man 4st minnesmoduler så kan det däremot behövas.
En annan sak att hålla ögonen på kan vara att om det laddas fail safe settings så kan spänningar ha återställts till default, får man en failsafe boot kan det med andra ord vara lönt att dubbelkolla främst Dram & vtt_ddr så de stämmer. Detta är dock lite moderkort & uefi beroende men det är rätt vanligt förekommande.
En till sak att hålla koll på är om moderkortet behåller manuella timings inställningar när man byter dram hastighet, det kan nämligen vara så dumt att det inte gör det, även detta är en aning moderkortsberoende.
När det kommer till spänningar vid minnes OC så Kom ihåg att en del spänningar i full auto konfig kommer gå ner nära 0 i idle läge och manuellt satta är alltid att föredra vid all form av överklockning då man kan hålla en lägre spänning rent generellt än vad som skulle behövas vid varierande spänning, det gäller även minnes OC.
Till att börja med kan man börja med att öka på DRAM (om man går utanför spec på timings eller frekvens på minnesmodulerna), VTT_DDR (½a DRAM med liten bump), SoC (0.95-1.15v) och VDDP, sätt inte SoC för högt för det hjälper inte på annat än IMC och intern stabilitet för CPU egentligen, har man lite problem med att få timings stabila eller hastighet så kan det vara bättre att öka på VDDP spänningen en smula först, denna kan man sätta runt 0.9-1v men det brukar räcka med ca 0.925-0.95v. Kom ihåg att du också kan behöva justera Vcore till cpu kärnorna vid höjd Infinity Fabric frekvens/minneshastighet om du har en sämre binnad cpu.
En ganska elementär sak som ändå är ganska enkel att glömma är just vilka minnes slottar man använder, nu påverkar detta på två sätt, ett är att man nyttjar bägge minneskanalerna och inte bara den ena och två är att man nyttjar de primära slottarna, två av de fyra är nämligen bara en slav på de två första så bäst hastighet fås oftast med de primära. Ledningsbanorna från CPU sockeln till minnesslotsen räcker egentligen bara till två slots (en per kanal) men tack vare lite teknisk hokus pokus så kan man sätta på en slavslot på varje primär slot, att sätta en tredje slot introducerar däremot för mycket signalförluster och för hög belastning på IMC'n så därför ser man sällan (aldrig?) mer än två per minneskanal i hårdvara till konsumentdatorer. Moderkort riktade till extrema överklockare brukar till och med ta bort slavslots helt då det bara tillför signalproblem utan något extra värde när man inte nyttjar dom. Nu är alla moderkort olika på denna punkt men väldigt många moderkort har följande layout

Slottarna är döpta A1, A2, B1, B2. A1 närmast cpu och B2 längst från cpu, normalt brukar man vilja populera A2 och B2 först. A står för minneskanal A och B för minneskanal B, ett och två är bara slot ett och två per kanal. Observera att detta är inte en standard alls så kolla alltid i moderkortets manual på vilka slots man ska bruka först, har du fyra minnesmoduler spelar det såklart ingen roll.
Vidare info:
Om ni nu känner er äventyrliga och vill ta det hela så långt det bara går med bibehållen stabilitet och utan tokhöga spänningar så kan ni börja pressa timings än hårdare, för att göra det så kan det vara bra att veta om följande inställningar i uefi som kommer påverka minnesbuss och minnesmodulers stabilitet. Tyvärr är det inte alla moderkort som har eller visar alla nedanstående inställningar och är uefi inte programmerat att justera dessa själv vid minnes OC blir det genast mycket svårare att uppnå högre hastigheter på internminnet, en del av dessa saker kan dock vara lite gömda under advanced/AMD CBS eller AMD PBS. AMD CBS verkar mestadels innehålla saker anslutna till processorn och nordbryggan i någon form, AMD PBS däremot verkar vara mer generellt moderkort och sydbrygge grejer.
Under AMD CBS brukar man därför hitta minnesrelaterade grejer som annars inte är synliga, saker som VDDP, CLDO_VDDP eller referens volt för individuella minneskanaler och så vidare, nackdelen att ändra saker här under är att default värden normalt sett inte är ifyllda så det gäller att utöva en viss försiktighet med de värden man sätter, speciellt på spänningar, dessa är ofta angivna i mV istället för volt. Det finns dock moderkort som lägger dessa under AMD PBS som i detta fallet:

Här syns VDDIO, VDDP, PLL, VTT MEM samt AddCmd MemVref
Spänningar, finns oftast under OC avdelningar i uefi:

Här syns på ett bra sätt de olika spänningarna och ProcODT och vart dom hör hemma
- (1) CPU Voltage eller Vcore eller VDDCR_CPU
- Detta kanske låter lite underligt men om ni kör manuellt överklockad CPU så kan ni komma att behöva köra något högre Vcore vid högre minneshastigheter, om detta beror på spänningsfall eller om det beror på den ökade Infinity Fabric frekvensen och att det då kan gå åt en del extra vcore är svårt att säga men om en minneshastighet fungerar i stock men inte vid manuell OC av CPU så kan det hjälpa med något ökad Vcore. (1.425v är enligt AMD max för Zen och 1.38v för Zen+ innan man ser förkortad livslängd). Även vid stock hastigheter på CPU kan man råka ut för problem vid ökad minneshastighet som kan avhjälpas med justerad vcore eller LLC för vcore, justerar man vcore då så bör man köra en offset voltage och justerar man LLC så får man se upp att det inte överskjuter målet för grovt.
- (3) DRAM Voltage eller MEM_VDDIO eller VDIMM
- Arbetsspänning för minnesmodulerna, mellan 1.35 och 1.45v funkar utan problem, vid 1.45 är det bra med lite luftcirkulation runt minnena, för varma minnen kommer orsaka instabilitet. Denna spänning påverkar minnesmodulens stabilitet i första hand. Observera att B-Die tål mer spänning än exempelvis Hynix AFR/MFR men upp till 1.4v ska vara i det närmaste totalt ofarligt oavsett minneschip, i övrigt bör man läsa på innan man övervoltar för hårt på just sin specifika minnesmodul. AMD säger att upp till 1.5v ska vara ok vad det gäller IMC.
- (6) VTT_DDR eller VREF Voltage eller MEM_VTT
- En referensspänning för minnesmodulerna, denna ska som standard vara halva DRAM spänningen men för extra stabilitet kan den förskjutas några snäpp uppåt, kör man 1.4v dram så ska VTT_DDR vara 0.7v, för extra stabilitet kan det vara bra med 0.725v eller närliggande, denna spänning ger bättre stabilitet för minnesmodul och minnesbuss. Gå ej över 0.9v
- VDDP
- En spänning som appliceras på länken mellan IMC och minnesmodulernas IC chip, denna spänning kan hjälpa till att ge stabil OC på minne och speciellt hjälper den på vid låga timings och höga frekvenser. Bör ligga inom 0.9v till 1.0v vid minnes OC och det brukar räcka med ca 0.925-0.95v
- CLDO_VDDP
- I vissa fall kan det hjälpa att justera denna en smula om man hittar en viss hastighet som total vägrar fungera stabilt även om både högre och lägre hastigheter gör det, lite av en sista åtgärd att prova. Denna har en sweetspot vid given minneshastighet, lite som SoC spänning. Vilka värden som gäller är lite svårt att få fram men utgå från stock och gör endast väldigt små justeringar. http://www.overclock.net/forum/26457559-post292.html innehåller en bra förklaring
- (5) VPPM eller VPP_MEM eller AddCmd MemVRef
- En ny spänning med DDR4 som tidigare togs från dram spänning, används för "DRAM row access", inget man ska behöva pilla på egentligen.
- (2) SoC voltage eller VDDR_SOC eller VDDCR SOC
- Den spänning som matas in i uncore i CPU, alltså de områden som innehåller allt utom cpu kärnorna rent praktiskt (IMC, PCI-E, SoC delen och iGPU). Denna bör hållas inom 0.95v till 1.15v och 1.2v max innan degradering inträffar på 1000 serien Ryzen (Zen), för APUer med integrerad GPU så kan denna vara högre. För 2000 serien (Zen+) är denna ökad till 1.25v som max innan degradering inträffar. Högre SoC spänning ger inte alltid mer stabilitet utan här gäller det att hitta en sweetspot. SoC spänning ger alltså IMC och minnesbussen bättre stabilitet i första hand, inte själva minnesmodulen i sig. Om ni kör överklockad CPU kan ni behöva öka denna ännu något mer än vid stock hastighet på cpu, blir dock beroende på Vcore en smula.
- PLL Voltage eller +1.8 voltage
- Phase Locked Loop, skall enligt utsago påverka renheten hos given klocksignal (BCLK). Skall vara fast värde och inte auto då moderkort har en tendens att övervolta PLL i onödan, bör vara 1.8v eller lägre om man känner för att undervolta något, påverkar temperatur (eller bara avläsning av temp) hos Zen (eventuellt Zen+ också) enormt mycket medans det endast ger extra stabilitet med höjd PLL vid LN2 situationer eller vid riktigt extrem BCLK klockning.
- Load Line Calibration (LLC)
- Denna inställning åtgärdar spänningsfall som kan ske vid full load (vdroop), vissa moderkort saknar detta helt, andra har det för individuellt för Vcore, Dram och SoC spänning. Poängen med LLC är att justera den så att den spänning som den appliceras på förblir exakt likadan oavsett idle eller full load, om spänningen stiger under load är LLC för högt satt, sjunker spänningen är den för lågt satt. Man måste med andra ord kolla upp detta med valfritt övervakningsprogram. Kom ihåg att en del spänningar i full auto konfig kommer gå ner nära 0 i idle läge och manuellt satta är alltid att föredra vid all form av överklockning.
Advanced memory settings:
- Fail Count
- Hur många gånger memory training ska försöka hitta rätt inställningar innan det defaultar till safe mode inställningar för minnet, när man jagar högsta möjliga hastighet kan denna sättas till 5, om man inte vill vänta i evigheter på att memory training ska ge upp kan man sätta den till 2, för det mesta skiter sig nämligen mem training på första försöket.
- (4) ProcODT
- En slags rening/ filter för signalen som motverkar brus(Processor on-die termination) som kan justeras till olika motståndsvärden, denna kan avhjälpa instabilitet vid höga minneshastigheter. Vid 3333-3466MT/s rekommenderas ett värde på 53.3 eller 60. Gå inte gärna över 60 eller under 40. Om inga problem finnes så låt stå på auto. För högre hastigheter än 3466 på 1000 serien Ryzen så kan man behöva gå över 60, 68 brukar räcka för 3600MT/s. Gå inte över 80 enligt AMD utan extrem kylning, andra säger 96 För Dual Rank minnen eller 4 minnesmoduler kan ett högre ProcODT värde funka bättre, så vid 3333-3466 kanske det är bättre att prova 68 eller mer.
- Gear Down Mode
- Låter minnesmodulen arbeta i halvfart på en form av intern växling (grovt förenklat), detta kan tillåta högre hastigheter men offrar prestanda för att komma dit, för B-Die minnen kan det avaktiveras utan större strul, över 3600MT/s kan det behövas igång. För ojämna CAS värden behöver denna vara aktiverad, slår du av denna med ojämt CAS värde resulterar det i att datorn inte bootar, det kan dock på vissa moderkort vara precis tvärs om. Osäkert om det är by design...
- Power Down Mode
- Strömspar för minnen genom att offra prestanda, slå av oavsett minnestyp för bättre prestanda på kostnad av pytteliten ökning i strömförbrukning.
- Bank Group Swap
- Denna påverkar hur minnet används rent fysiskt och hur data lagras samt var på minnet rent fysiskt det sker, man växlar ”mappning” med denna. Med BGS avslaget kommer spel prestera bättre medans syntetiska tester tenderar att prestera bättre med den påslagen
- Command Rate
- Hur många clock cykler som används innan data kan skickas efter ett chip blivit valt genom adress, 1T är det snabbare värdet men kan orsaka en del instabilitet på sämre minnesmoduler eller när man jagar extrema hastigheter, 2T kan då vara att föredra även om man offrar lite prestanda i processen. Hynix gillar oftast 2T (Delay between when a memory chip is selected and when the first active command can be issued. The factors that determine whether a memory subsystem can tolerate a 1T command rate are many, including the number of memory banks, the number of DIMMs present, and the quality of the DIMMs.)
CAD Bus settings: Här hittar man 4 olika motståndsvärden som i sin tur påverkar minnesbussen, dessa kan vara värt att prova om man vill få till den där sista gnuttan stabilitet som eventuellt saknas, annars lämna på auto. Värden som 30 på alla 4 eller 30/30/40/60 är också vanliga vid höga hastigheter, även Hynix moduler verkar må bra av högre värden på dessa. Vad som är maximala värden här verkar vara en aning tvetydigt.
- CAD_BUS ClkDrvb
- Clock Drive Strength, ett värde mellan 24 & 30ohm är att föredra, vissa rekommendera uppåt 40
- CAD_BUS AddrCmdDrv
- Address / Command Drive Strength, samma som Clock Drive när det gäller värde.
- CAD_BUS CsOdtDrv
- CS / ODT Drive Strength, mellan 24 och 40 brukar vara bra
- CAD_BUS CkeDrv
- CKE Drive Strength, värde mellan 30 och 60 är att föredra
Data bus settings Här har vi en del terminerings motstånd för minnesbussen, som exempel har vi RZQ vilket är 240ohm, tar man RZQ/7 så är det ~34 ohm, kör man RZQ/5 är det 48ohm
- RTT Nom
- Vanligt förekommande värde vid högre hastighet är RZQ/7 (34ohm)
- RTT WR
- vanligtvis Off
- RTT Park
- Vanligt förekommande värde vid högre hastighet är RZQ/5 (48ohm)
- DQS str
- Vanligt förekommande värde vid högre hastighet är 60
Som ett exempel så kör jag följande inställningar just nu med ett kit Corsair 3733 2x8GB single rank b-die minnen med en 1800x. Dessa är inte de bäst presterande B-Die modulerna men dom är lågprofil vilket väldigt få andra är, praktiskt med stora luftkylare.

Dram voltage: 1.45v efter LLC
vtt-ddr: 0.74v
SoC voltage: 1.125v efter LLC
VDDP voltage: Auto (0.928v)
CommandRate: 1T
GearDownMode: Off
PowerDownMode: Off
ProcODT: 53.3
CAD BUS: Auto
Data BUS: Auto
Det resulterar i följande prestanda

Med B-Die behöver man med andra ord inte krångla med allt för många inställningar men det beror lite på moderkortet också hur bra det är på memory training och allmän kvalité. Om jag vill högre än 3466MT/s lär jag börja pilla på CAD bus & på Data BUS inställningar plus att jag måste krana på spänningar såpass at det inte är värt det.
Nyttiga länkar:
Swec; Zen samlingstråd
Swec; AMD Ryzen 2000 "Pinnacle Ridge" – samlingstråden
Swec; Tråden om minnen till Ryzen, frågor svar, goda råd, resultat med mera
Swec; Ryzen - overclocks!
AMD Memory OC Blog
AMD DRAM Blog om timings
Inte helt dum genomgång av Robert Hallock, spelades in vid lansering av första gen Ryzen så senare förbättringar med fler minneshastigheter fanns inte då.
#AMD #Ryzen #zen #zen+ #b-die #bdie #DDR4 #timings #AM4 #minnen #överklockning
| nVidia RTX3090FE | R9 5800X3D | MSI x570 Unify | Ballistix sport 3000c15 32GB DR@3800c16 | Custom Loop EKWB | 12TB nvme, 2TB sata SSD | RM1000x | Creative X4 | Antec C8 | Alienware aw3821dw | >Antec C8 Custom Loop< |