Skocz do zawartości
Beereq

Instrukcja edycji timingów i częstotliwości w SPD pamięci RAM

Rekomendowane odpowiedzi

Witam!

 

Miałem chwilkę wolnego czasu, który postanowiłem przeznaczyć na opisanie jak edytować timingi i częstotliwości zapisane w SPD naszych pamięci za pomocą programu SPDTool.

 

Program umożliwia czytanie, edycję i zapis zmienionych ustawień do SPD pamięci RAM DDR2. (DDR3 nie jest obsługiwane)

 

Zaczynamy:

 

  • Ściągamy program SPDTool 0.63 (koniecznie ta, najnowsza wersja, ze względu na support dla nowszych chipsetów) - google.pl
  • Odpalamy, wchodzimy w File -> Read, po czym wybieramy którym modułem chcemy się zająć
  • Wybieramy File/Save i zapisujemy w bezpiecznym miejscu backup swoich aktualnych ustawień SPD.
  • W głównym oknie na dole klikamy w "Timing Summary" - dzięki temu ujrzymy aktualne ustawienia pamięci w podstawowych profilach JEDEC

Dla ułatwienia zacznę od przykładu - moich pamięci A-Data, których SPD wygląda domyślnie tak:

 

Dołączona grafika Dołączona grafika

 

JEDEC #2 266Mhz 4-4-4-12 oraz

JEDEC #3 400 Mhz 5-5-5-18

 

gdzie się podziało JEDEC #1 ? otóż jest (200Mhz)- co zresztą potwierdza nam SPD Tool w dolnej części okna, jednak CPU-Z tego nie pokazuje.

 

Dodatkowo mamy 2 profile EPP (Enhanced Performance Profile) - które z kolei pokazuje CPU-Z, ale są niewidoczne w dolnej części okna SPDTool.

 

Myślę, że nie namieszałem zbyt mocno na sam początek :)

 

Jedziemy dalej

 

Sprawdziłem i wiem, że moje pamięci robią więcej niż 280(560) Mhz na CL3-3-3-9 @ 1,8v, oraz ponad 510(1020)Mhz CL5-5-5-15 @ 2,0v. Na CL4 to porażka – nie wyjdą ponad 415(830)Mhz i to przy napięciu 2,2v.

 

Co chcę osiągnąć?

 

  • Ustawić profil EPP z taktowaniem 500Mhz CL5
  • Profil JEDEC 266Mhz zastąpić 333Mhz, nie zmieniając timingów
  • Dopisać do tabeli profil JEDEC 266Mhz (zastąpić profil 200Mhz) z timingami 3-3-3-9

Jak się do tego zabrać?

 

Na początek musimy wiedzieć, że w podstawowych profilach pamięci SPD możemy zapisać timingi dla maksymalnie 3 częstotliwości, u mnie jest to domyślnie 400,266 i 200Mhz - widać to na dole okna SPDTool.

 

Co bardzo ważne niestety nie można ustawić różnych częstotliwości dla jednego CAS Latency (CL), np. nie da się ustawić trzech profili 400Mhz CL4 i 333Mhz CL4 oraz 266Mhz. Dlaczego?

 

Zasada

 

Poprzez opcję "CAS Latencies Supported" wybieramy obsługiwane przez naszą pamięć CL, jeśli wybierzemy taką opcję która ma 3 wartości (przykład 3,4,5) to możemy stworzyć 3 profile, najwolniejszy z CL3, trochę szybszy z CL4 i najszybszy (chodzi o częstotliwość) z CL5.

 

Jeśli wybierzemy np. 3,4 - wtedy też stworzymy 3 profile, ale brane pod uwagę będą brane tylko dwa - ten z CL4 i ten z CL3, ostatni z przydzielonym z automatu CL2 w pewnym sensie nie będzie istniał, bo CAS Latencies Supported nie przyjmuje wartości 2,3,4 lecz 3,4.

 

Profile podstawowe (JEDEC) niższe od najszybszego ustala się na zasadzie "z jaką częstotliwością i pozostałymi timingami może pracować pamięć przy CL o jeden niższym od najwyższego CL" oraz "z jaką częstotliwością i pozostałymi timingami może pracować pamięć przy CL o dwa niższym od najwyższego CL" Rozumiecie? Mam nadzieję, że tak... jeśli tego nie zrozumiecie nie czytajcie dalej.

 

Ustawienie CL: opcja CAS Latencies SupportedUstawienie tRCD: opcja Minimum RAS to CAS delay (tRCDUstawienie tRP – opcja Minimum Row Precharge Time (tRPUstawienie tRAS – opcja Minimum Active to Precharge Time (tRAS)Ustawienie tRC - opcja Minimum Active to Active/Refresh Time (t...Ustawienie częstotliwości pamięci przy najwyższym CL: SDRAM Cycle time at Maximum Supporte...Ustawienie częstotliwości pamięci dla profilu z CL o 1 niższym od najwyższego (profil "środkowy"): Minimum Clock Cycle at CLX-1Ustawienie częstotliwości pamięci dla profilu z CL o 2 niższym od najwyższego (profil "dolny"):Minimum Clock Cycle at CLX-2

Ustawienia częstotliwości raczej nie muszę wyjaśniać – ustawiamy i pojawia sie ustawiona wartość w tabeli. Dodamy tylko, że wybieramy częstotliwość rzeczywistą, a nie efektywną. Np. Dla DDR 800Mhz wybieramy 400Mhz (2,5ns).

 

W teorii ustawianie timingów (poza CL, które ustawia się za pomocą wartości liczbowej, a nie czasu wyrażonego w ns) wyglądałoby tak, że obliczam jaki chce mieć timing dla danej częstotliwości i ustawiam taki czas w ns, jaki mi wyszedł z obliczeń;

 

zadana wartość timingu x 1000/częstotliwość pamięci (rzeczywista) = czas w ns

 

przykład – ustawienie trp na 15 dla częstotliwości 400(800)Mhz oraz jednocześnie trp 12 dla częstotliwości 333(666)Mhz

 

15x1000/400 = 37,5ns – zaokrąglamy w dół (zawsze) – wychodzi 37ns.

12x1000/333 = 36,03ns – po zaokrągleniu mamy 36ns

 

I co teraz?

 

Wyszły nam 2 różniące się wartości – niby nic wielkiego, ale zauważcie że nie możemy ustawiać niezależnie timingów dla każdego z 3 profili, ustawiamy tylko raz – dla całej kolumny od razu.

 

Dlatego też moim zdaniem nie ma większego sensu tego liczyć, tylko po prostu krokami co 0,25ns zmniejszać/zwiększać daną wartość do takiego poziomu aż uzyskamy żądane timingi. Czasami uzyskanie niektórych timingów będzie niemożliwe np. Trp 18 dla 400Mhz i 12 dla 333Mhz

 

Troszkę inaczej działa ustawianie EPP, gdzie dla każdego profilu ustalamy timingi niezależnie (włącznie z CL), o czym będzie później :)

 

Działamy

 

Zacznę od uporządkowania tabeli tak abym miał kolejno częstotliwości 400, 333, 266 Mhz.

 

400 jest na swoim miejscu więc tego nie ruszam (SDRAM Cycle time at Maximum Supporte...)

 

Na drugim miejscu chcę mieć 333 Mhz – szukam opcji Minimum Clock Cycle at CLX-1 i ustawiam na 3.00ns (333Mhz)

 

Na trzecim miejscu chcę mieć 266Mhz – szukam opcji Minimum Clock Cycle at CLX-2 – wybieram 3.75 ns (267Mhz).

 

Zauważyliście, że niektóre timingi uległy zmianie? Zmieniły się ponieważ zmieniła się częstotliwość w 2 ostatnich profilach, a więc żeby uzyskać taką samą wartość timingu potrzeba już mniej czasu (wzór powyżej).

 

Ustawiam kolejno timingi;

 

TCL mamy ustawione, więc przechodzę do TRCD – stopniowo zmniejszam Minimum RAS to CAS delay (tRCD), aż uzyskam żądane timingi – z 12,50ns zrobiło się 11,25ns

 

analogicznie ustawiam TRP – gdzie również zmniejszam czas do 11,25ns

 

Dołączona grafika

 

Chcę zmienić jeszcze ustawienie TRAS – zmniejszam czas z 45ns przy Minimum Active to Precharge Time (tRAS) do wartości 36ns.

 

Nistety nie udało się ustawić dla 266Mhz TRAS na 9 – musi być 10, chyba że zgodzimy się na TRAS 14 (zamiast 15) dla 400Mhz oraz 11 dla 333Mhz– wtedy ustawiamy 33ns.

 

TRC pozostawię bez zmian.

 

Upewniam się, że wszystko ustawiłem prawidłowo i przechodzę do profili epp, chyba że ktoś takowych nie ma - wtedy może ten krok pominąć - lub dopisać profile.

 

Edycji profili EPP

 

W CPU-Z widzę 2 bardzo podobne profile EPP – to samo napięcie, różnica w 2 timingach, postanowiłem w profilu 1 zmniejszę TRAS do 11, z kolei dla drugiego profilu ustawię 500Mhz CL 5-5-5-15 @ 2,1v.

 

Przewijam listę opcji w SPDTool – dochodzę do serii EPP Profile 0, a konkretnie do:

 

EPP Profile 0 Minimum Act. To Precharge ti... – jest to ustawienie tRAS, które chcę zmienić z 12 do 11 – liczę czas ze wzoru – wychodzi mi 27,5ns (11x1000/400) – zaokrąglam w dół i zmieniam wartość z 30 do 27ns.

 

Profil pierwszy załatwiony

 

Teraz przechodzę do sekcji EPP Profile 1, gdzie zaczynam od zmiany napięcia - EPP Profile 1 Voltage Level - ustawiam z zapasem 0,1v (na 2,1)

 

i zmiany częstotliwości z 400 do 500Mhz poprzez opcję EPP Profile 1 Minimum Cycle at supported...

 

Następnie zmieniam CL dla tego profilu z 4 do 5 – opcja EPP Profile 1 CAS Latency

 

Przechodzę do TRCD – opcja EPP Profile 1 Minimum RAS to CAS delay (t.. – nie wymaga zmiany, pozostawiam na 10,00ns (obliczone)

 

Analogicznie zajmuje się TRP – EPP Profile 1 Minimum Row Precharge Tim...

 

oraz TRAS – EPP Profile 1 Minimum Act. To Precharge ti...

 

 

Czas zapisać nowe ustawienia w SPD pamięci

 

Zamykam CPU-Z (czasami ustawienia nie chcą się zapisać, gdy ten program jest włączony) – prawdopodobnie SPD wtedy jest "Read only"

 

Przechodzę do Edit/Fix checksum

 

Następnie do File/Write i wybieram moduł do którego chcę wysłać nowe ustawienia (ten sam, z którego czytaliśmy na początku).

 

Odpalam CPU-Z i widzę efekt swojej pracy (na przykładzie zmodowanego wcześniej SPD w drugiej kości) :)

 

Dołączona grafika

 

 

Sorry, że tak dużo czytania, jednak chciałem pokazać jak to się robi krok po kroku na przykładzie.

 

Tekst pisany tak na szybko, mam nadzieję że w ogóle jest ktokolwiek zainteresowany tym tematem :)

 

Oczywiście nie odpowiadam za jakiekolwiek ewentualne uszkodzenia sprzętu itp.

 

Sugeruję nie zmieniać innych parametrów niż te, które opisałem

 

Jeśli ktoś nie chce sam się tym bawić – oferuję pomoc :)

 

Jeśli macie jakieś pytania i/lub propozycje - piszcie

  • Upvote 4

Udostępnij tę odpowiedź


Odnośnik do odpowiedzi
Udostępnij na innych stronach



×
×
  • Dodaj nową pozycję...