@tellus82 inte säker på att jag förstod vad som gör att det blir snabbare med DR. Rank1 och Rank2 delar databus. Menar Du att man läser från tex Rank1 och samtidigt använder tiden till att ändra adress i Rank2 så att man inte behöver vänta lika länge?
Det hela kommer sig av den fysiska designen och elektriska designen, minnesmoduler för exempelvis DDR4 har alltså 64bit per rank av minneschip, dessa chip har sedan Banks (chip/del av chip), Rows (page, rad i bank) & columns (pekar ut en cell i en rad i en bank), alltså rader och kolumner, ungefär som ett excel dokument, för att skriva in eller läsa av data från en cell på raden måste kontrollern först välja ut och "öppna upp" rad & kolumn.
Här syns det lite mer pedagogiskt kanske
För alla minnesoperationer måste man vänta en viss tid innan de hinner ske, detta är timings och dess effekt är extra latens, dessa timings varierar med chiptyp och kommer sig av dess fysiska beteende. För att göra en viss operation så kommer man behöva vänta en viss tid innan den faktiskt skett rent fysiskt, vi pratar inte lång tid här men ändå en viss tid.
Här syns en del av de operationer som kan utföras av en dram kontroller, för alla dessa måste man vänta en viss tid, denna väntan ställs in genom timings.
Det som sker med dual rank/triple/quad är att vissa operationer kan "skippa" väntan genom att man redan har en bank/row vald i en rank och kan få åtkomst till den omedelbart genom att bara byta rank, detta genom att kontrollern väljer en annan rank med CS0 / 1 prefix. Man skippar alltså en rad operationer/en operation och kortar därigenom ner väntetiden som annars måste äga rum mellan operationer. För att förkorta och förenkla ännu mer, du kan alltså ha två öppna rader samtidigt och hoppa mellan dom omedelbart genom att bara byta rank. Normalt brukar en kontroller kunna ha 8 pages öppna samtidigt inom en given rank, alltså rader, med dual rank kan konmtrollern då ha 16 rader öppna samtidigt och växla omedelbart mellan dom.
Beroende på minneskontrollern så kan även lite mer multitasking ske på 2 eller fler ranks samtidigt, man kan exempelvis inte skriva till två olika ranks samtidigt men man kan öppna upp för läsning i en rank/bank/row/column på en rank och medans kontrollern väntar på att operationen fysiskt blir färdig kan den då teoretiskt utföra en skriv operation i en annan rank för att sedan komma tillbaka till läsning som då omedelbart finns tillgänglig. Den här biten är som sagt oerhört beroende av hur minneskontrollern är konstruerad och hur den hanterar interleaving och ranks. Här kommer det skilja vad som görs samtidigt på olika ranks och inte mellan olika kontrollers.
CS0 och CS1 är de olika ranks adress som kontrollern kan nyttja. D0-D63 är sedan individuell bank, inom varje individuell bank finns sedan rows och columns
Nu kan man kanske tro att det vore såklart bäst att köra exempelvis quad rank för maximal prestanda då man teoretiskt skulle kunna ha 32 rader öppna samtidigt per minneskanal men tyvärr är det inte så enkelt heller då multipla ranks för med sig ett pra nackdelar utöver de fördelar de även har. Desto fler ranks du har per kanal desto värre blir dessa nackdelar (grovt förenklat).
En av dessa nackdelar är att minneskontrollerns jobb blir bara tyngre & tyngre rent elektriskt ju fler ranks den måste jonglera samtidigt, det har en tendens att tvinga ner den maximala minnesfrekvensen man kan nå men utöver frekvens så kan man också behöva öka command rate till 2 exempelvis eller halvläget Gear Down Mode som är lite mitt mellan 1T och 2T. Lär man köra 2T för stabilitet så kan det äta upp en del av prestandavinsten på samma sätt som lägre frekvens.
| nVidia RTX3090FE | R9 5950x | MSI x570 Unify | Ballistix sport 3000c15 32GB DR@3800c16 | Custom Loop EKWB | 9TB nvme, 3TB sata SSD | RM1000x | Creative X4 | Lian Li o11 Dynamic | Alienware aw3821dw | >Zen2 på 3-400 mobo< | >x570 VRM< | :::AMD Zen Minnesguide:::|:::AMD Zen & Zen+ Överklockningsguide:::