Cześć wszystkim
Właśnie tworzę bardzo prosty samouczek z kolekcją niestandardowych plików konfiguracyjnych i LINK DO POBRANIA dla TM5 v0.12
anta777 absolut config Oficjalny Wątek stabilności pamięci Intel DDR4 24/7
Żadna z prac nie jest moja, ale wydaje się to być całkiem dobrą i szybką aplikacją testującą
Aktualizacja: Przeczytaj ten post przed kontynuowaniem Testowanie pamięci za pomocą TestMem5 TM5 z niestandardowymi konfiguracjami
Właśnie tworzę bardzo prosty samouczek z kolekcją niestandardowych plików konfiguracyjnych i LINK DO POBRANIA dla TM5 v0.12
anta777 absolut config Oficjalny Wątek stabilności pamięci Intel DDR4 24/7
Żadna z prac nie jest moja, ale wydaje się to być całkiem dobrą i szybką aplikacją testującą
Aktualizacja: Przeczytaj ten post przed kontynuowaniem Testowanie pamięci za pomocą TestMem5 TM5 z niestandardowymi konfiguracjami
1/ Wyodrębnij do wybranej lokalizacji za pomocą 7zip lub Winrar lub podobnego. Nie jest wymagane żadne zmienianie nazwy ani przenoszenie
2/ Uruchom TM5.exe. Wszystkie pliki są teraz w języku angielskim dzięki @Hequaqua za jego pomysł
i Extreme1@anta777.cfg jest domyślny
3/ Zmiana na inny plik konfiguracyjny jest bardzo prosta. W prawym dolnym rogu TM5 widnieje napis "załaduj konfigurację i wyjdź", gdzie możesz wybrać wymagany plik konfiguracyjny z lokalizacji, do której wszystko wyodrębniłeś, a on zrobi resztę za Ciebie
Następnym razem, gdy uruchomisz TM5.exe, nowy plik konfiguracyjny będzie domyślny
2/ Uruchom TM5.exe. Wszystkie pliki są teraz w języku angielskim dzięki @Hequaqua za jego pomysł
3/ Zmiana na inny plik konfiguracyjny jest bardzo prosta. W prawym dolnym rogu TM5 widnieje napis "załaduj konfigurację i wyjdź", gdzie możesz wybrać wymagany plik konfiguracyjny z lokalizacji, do której wszystko wyodrębniłeś, a on zrobi resztę za Ciebie
1/ Wyodrębnij do wybranej lokalizacji za pomocą 7zip lub podobnego
2/ Powinieneś zobaczyć TM5.exe i folder bin
3/ Otwórz folder bin
4/ Zmień nazwę wybranego pliku .cfg na MT.cfg (możesz usunąć wszystkie pliki .config do innej lokalizacji i skopiować tylko ten, który chcesz, do folderu bin i zmienić jego nazwę na MT.cfg)
5/ Przejdź do TM5.exe i kliknij go. TestMem5 powinien zacząć działać
6/ Jeśli chcesz zmienić na inny plik .cfg, musisz zmienić jego nazwę na MT.cfg i usunąć plik Cfg.link, który został wygenerowany w folderze bin po uruchomieniu TM5.exe
7/ Sugeruję wyodrębnienie nowej instancji z TestMem5 v0.12 (najlepsze konfiguracje).zip i ponowne rozpoczęcie procesu od początku po zmianie nazwy pierwszego wyodrębnionego folderu na coś innego
8/ Jeśli chcesz tylko zmienić plik konfiguracyjny w pierwszym, który wyodrębniłeś, musisz usunąć plik Cfg.link, który został utworzony podczas pierwszego uruchomienia
9/ Pamiętaj, aby zamknąć wszystko inne podczas uruchamiania tego
10/ Istnieje przycisk nad przyciskiem "Wyjście" o nazwie "Załaduj konfigurację i wyjdź", który ma usunąć plik Cfg.link i zamknąć program zamiast robić to ręcznie
2/ Powinieneś zobaczyć TM5.exe i folder bin
4/ Zmień nazwę wybranego pliku .cfg na MT.cfg (możesz usunąć wszystkie pliki .config do innej lokalizacji i skopiować tylko ten, który chcesz, do folderu bin i zmienić jego nazwę na MT.cfg)
5/ Przejdź do TM5.exe i kliknij go. TestMem5 powinien zacząć działać
6/ Jeśli chcesz zmienić na inny plik .cfg, musisz zmienić jego nazwę na MT.cfg i usunąć plik Cfg.link, który został wygenerowany w folderze bin po uruchomieniu TM5.exe
7/ Sugeruję wyodrębnienie nowej instancji z TestMem5 v0.12 (najlepsze konfiguracje).zip i ponowne rozpoczęcie procesu od początku po zmianie nazwy pierwszego wyodrębnionego folderu na coś innego
8/ Jeśli chcesz tylko zmienić plik konfiguracyjny w pierwszym, który wyodrębniłeś, musisz usunąć plik Cfg.link, który został utworzony podczas pierwszego uruchomienia
9/ Pamiętaj, aby zamknąć wszystko inne podczas uruchamiania tego
10/ Istnieje przycisk nad przyciskiem "Wyjście" o nazwie "Załaduj konfigurację i wyjdź", który ma usunąć plik Cfg.link i zamknąć program zamiast robić to ręcznie
Jeśli TM5 nie działa @Hequaqua sugeruje uruchomienie go jako administrator
Innym problemem, który znalazłem, jest to, że może być konieczne ustawienie rozmiaru pliku stronicowania w zaawansowanych ustawieniach systemu
Innym problemem, który znalazłem, jest to, że może być konieczne ustawienie rozmiaru pliku stronicowania w zaawansowanych ustawieniach systemu

Veii i KedarWolf uważają, że domyślne testy MT.cfg i 1usmus_v3.cfg mogą pasować do tych numerów błędów, ale inne konfiguracje mogą nie, więc może być konieczne odrobienie pracy domowej
Tutaj jest jego post
Błąd 0 błąd stabilności odświeżania = odcięcie napięcia
Błąd 1=Prosty test 16mb ~ może być związany z napięciem, może być problem z tRFC,
małe problemy z przekroczeniem limitu czasu, na przykład tRRD_L wygląda trochę niezręcznie
Błąd 2, 12 to problem z przekroczeniem limitu czasu, gdzieś coś kończy się zbyt szybko lub brakuje napięcia i komórki nie są naładowane na czas
problem z synchronizacją innymi słowy, którego pierwszym winowajcą jest napięcie gdzieś lub rezystancja gdzieś
Błąd 3 i 4 sprawdzając MT.cfg - to błędy MirrorMove
Ten zestaw pokazuje problemy z tRFC 2 i to tRFC "auto przewidywane" ? jest błędne.
tRFC jest do tej pory zawsze parzyste
ponieważ kroki tRFC to 32,16,8,4,2 ,
Błąd 5, a następnie 6 to brak dopasowania czasów między dimmami (ruch lustrzany danych)
Błąd 6 jest ściśle związany z IMC, czy to procODT, CLDO_VDDP czy vSOC
~ tłumaczy się to na "nie mogłem nawet zacząć przesyłać danych, zawiesiłem się"
błąd 4-6x 6 skutkuje pełnym niebieskim ekranem
Błąd 7, 11 to testy serii
Błąd 9 test serii 4mb to problem ze stabilnością napięcia
Jeśli obniżyłeś tRP, zwiększ vDimm o odrobinę
Jeśli zwiększyłeś tRP do dłuższego opóźnienia, zmniejsz vDIMM +0,01, jeden mały krok
Błąd 10 w większości dotyczy pierwszych 5 głównych czasów
- zauważono, że może to być tRCDWR do RD. może to być również tRP, ale mogą to być również ostatnie dwa tRDWR i tRDRD, które nie współgrają dobrze z twoim głównym tRCDWR/RD
Błąd 13 = Prosty test 64mb, przekroczenie limitu czasu podczas przesyłania dużych danych
= pełna awaria, prawie zawsze związana z napięciem ~ ponieważ pamięć nie była w stanie się sama skorygować
Błąd 14 wiemy, że to MirrorMove Omb, problem z przekroczeniem limitu czasu
- może wystąpić błąd po drugim lub trzecim przejściu, jeśli coś jest nie tak o kilka ns i po prostu "zaginęło"
Dzięki Veii i @KedarWolf za te informacje
Tutaj jest jego post
Błąd 0 błąd stabilności odświeżania = odcięcie napięcia
Błąd 1=Prosty test 16mb ~ może być związany z napięciem, może być problem z tRFC,
małe problemy z przekroczeniem limitu czasu, na przykład tRRD_L wygląda trochę niezręcznie
Błąd 2, 12 to problem z przekroczeniem limitu czasu, gdzieś coś kończy się zbyt szybko lub brakuje napięcia i komórki nie są naładowane na czas
problem z synchronizacją innymi słowy, którego pierwszym winowajcą jest napięcie gdzieś lub rezystancja gdzieś
Błąd 3 i 4 sprawdzając MT.cfg - to błędy MirrorMove
Ten zestaw pokazuje problemy z tRFC 2 i to tRFC "auto przewidywane" ? jest błędne.
tRFC jest do tej pory zawsze parzyste
ponieważ kroki tRFC to 32,16,8,4,2 ,
Błąd 5, a następnie 6 to brak dopasowania czasów między dimmami (ruch lustrzany danych)
Błąd 6 jest ściśle związany z IMC, czy to procODT, CLDO_VDDP czy vSOC
~ tłumaczy się to na "nie mogłem nawet zacząć przesyłać danych, zawiesiłem się"
błąd 4-6x 6 skutkuje pełnym niebieskim ekranem
Błąd 7, 11 to testy serii
- wystąpi błąd, jeśli CAD_BUS nie jest optymalny
- wystąpi błąd, jeśli tRFC jest zbyt niski
- najczęściej występuje błąd dopiero po pewnym czasie
Błąd 9 test serii 4mb to problem ze stabilnością napięcia
Jeśli obniżyłeś tRP, zwiększ vDimm o odrobinę
Jeśli zwiększyłeś tRP do dłuższego opóźnienia, zmniejsz vDIMM +0,01, jeden mały krok
Błąd 10 w większości dotyczy pierwszych 5 głównych czasów
- zauważono, że może to być tRCDWR do RD. może to być również tRP, ale mogą to być również ostatnie dwa tRDWR i tRDRD, które nie współgrają dobrze z twoim głównym tRCDWR/RD
Błąd 13 = Prosty test 64mb, przekroczenie limitu czasu podczas przesyłania dużych danych
= pełna awaria, prawie zawsze związana z napięciem ~ ponieważ pamięć nie była w stanie się sama skorygować
Błąd 14 wiemy, że to MirrorMove Omb, problem z przekroczeniem limitu czasu
- może wystąpić błąd po drugim lub trzecim przejściu, jeśli coś jest nie tak o kilka ns i po prostu "zaginęło"
Dzięki Veii i @KedarWolf za te informacje
W dowolnej kolejności:
Ollie.cfg
Extreme1@ anta777.cfg
1usmus_v3.cfg
Heavy5opt@ anta777.cfg
2020high@ anta777.cfg
2020medium@ anta777.cfg
2020low@ anta777.cfg
Light1@ anta777.cfg
SuperLight2@ anta777.cfg
Proszę skomentować swój ulubiony .cfg i dlaczego
Dziękuję
Ollie.cfg
Extreme1@ anta777.cfg
1usmus_v3.cfg
Heavy5opt@ anta777.cfg
2020high@ anta777.cfg
2020medium@ anta777.cfg
2020low@ anta777.cfg
Light1@ anta777.cfg
SuperLight2@ anta777.cfg
Proszę skomentować swój ulubiony .cfg i dlaczego
Dziękuję
@KedarWolf
Aby zmienić język na angielski, edytuj plik .cfg i zmień Language=1 na Language=0
Używając usmus .cfg, chcesz zmienić na 25 cykli. Zajmuje to około 3 godzin. Domyślne 3 cykle są niewystarczająco długie
Dzięki @Hequaqua za pomysł, aby ustawić pobieranie na język angielski
Dzięki @h610er za wskazówkę, jak sprawić, by Extreme1@ anta777.cfg działał, zmieniając rozmiar okna za pomocą jego pierwszego postu na OCN
Testowanie pamięci za pomocą TestMem5 TM5 z niestandardowymi konfiguracjami
Dzięki wszystkim osobom, które przyczyniły się do powstania tego oprogramowania
Jeśli chcesz, aby coś zostało dodane do tej sekcji, zostaw komentarz w wątku z @munternet po nim
Aby zmienić język na angielski, edytuj plik .cfg i zmień Language=1 na Language=0
Używając usmus .cfg, chcesz zmienić na 25 cykli. Zajmuje to około 3 godzin. Domyślne 3 cykle są niewystarczająco długie
Dzięki @Hequaqua za pomysł, aby ustawić pobieranie na język angielski
Dzięki @h610er za wskazówkę, jak sprawić, by Extreme1@ anta777.cfg działał, zmieniając rozmiar okna za pomocą jego pierwszego postu na OCN
Dzięki wszystkim osobom, które przyczyniły się do powstania tego oprogramowania
Jeśli chcesz, aby coś zostało dodane do tej sekcji, zostaw komentarz w wątku z @munternet po nim
Dlaczego ten program jest potrzebny.
Cóż, myślę, że wiesz, o co chodzi w programie, w końcu wersja 5. W tej chwili testy pamięci nie są złe, ale raczej złe. Nie chciałbym mówić o "wszystkich" testach, ale większość z nich nie jest świadoma znaczących zmian w sprzęcie. A główna "szkoda" wcale nie pochodzi z pamięci, niewiele się rozwinęła, a mianowicie z procesora i kontrolera pamięci (w mniejszym stopniu). Procesory stały się szybsze, jest ich dużo i stały się dziwne.
Na przykład, wcześniej pamięć "siedziała" na jednym kontrolerze, z którym komunikował się procesor. Teraz pamięć może wisieć na różnych procesorach i w rezultacie mieć inną "odległość" od konkretnego rdzenia procesora do konkretnego DIMM. Ponadto zwiększyła się ilość pamięci podręcznej w procesorze, co może wpływać na testowanie. Na przykład TM4 używał rozmiaru bloku testowego 512K. W momencie pisania programu było to optymalne, ale teraz ten blok spokojnie mieści się w L2 i test wcale nie działa tak, jak zamierzono. Czy ten nieprzyjemny moment wpłynie na jakość wykrywania awarii pamięci? Niewątpliwie i w najbardziej obrzydliwy sposób. Niestety. Inne programy mogą działać na bloku dostępu, co jest teraz niezwykle nierozsądne i powoduje więcej problemów niż mityczne korzyści. Wszystko staje się przestarzałe. Niestety, ten sam los spotkał MemTest86. Całkiem dobry i skuteczny, teraz spokojnie zdegradował się do "tylko testu". Powód jest ten sam - moduły testowe nie zmieniały się od dłuższego czasu, a sprzęt nie stoi w miejscu. Niestety. Inne programy mogą działać na bloku dostępu, co jest teraz niezwykle nierozsądne i powoduje więcej problemów niż mityczne korzyści. Wszystko staje się przestarzałe. Niestety, ten sam los spotkał MemTest86. Całkiem dobry i skuteczny, teraz spokojnie zdegradował się do "tylko testu". Powód jest ten sam - moduły testowe nie zmieniały się od dłuższego czasu, a sprzęt nie stoi w miejscu. Niestety. Inne programy mogą działać na bloku dostępu, co jest teraz niezwykle nierozsądne i powoduje więcej problemów niż mityczne korzyści. Wszystko staje się przestarzałe. Niestety, ten sam los spotkał MemTest86. Całkiem dobry i skuteczny, teraz spokojnie zdegradował się do "tylko testu". Powód jest ten sam - moduły testowe nie zmieniały się od dłuższego czasu, a sprzęt nie stoi w miejscu.
Jednak jeśli przeczytasz horror o problemach z testowaniem, proszę
Co nowego.
Dodano pełną obsługę 16 testów i możliwość ładowania innych plików konfiguracyjnych testów. Niestety, pełne i niezauważalne ponowne uruchomienie programu jest bardzo trudne, więc będziesz musiał użyć "ręcznego" uruchomienia. Po zainstalowaniu nowego pliku ustawień program się zamyka.
Wygląd.
W oknie programu po lewej stronie wyświetlany jest typ i nazwa procesora, jego częstotliwość, liczba rdzeni i obsługiwane tryby SSE.
Prawa strona pokazuje stan pamięci systemowej - ile jest dostępne i ile program jest zajęty.
Środkowa lewa strona pokazuje postęp testowania, po wykryciu awarii komórki 0-5 zmieniają kolor na czerwony, a liczba niepowodzeń testu jest wyświetlana w sekcji stanu w prawym środkowym rogu.
Mały opis.
Ten program jest zbudowany na nieco innej zasadzie niż wszystkie poprzednie. Mianowicie - jest konfigurowalny... Co więcej, może być konfigurowany przez użytkownika dla tych warunków, które wydają mu się najlepsze. Program ma koncepcję "modułu testowego" i "testu". Moduł jest wywoływany w celu przeprowadzenia testu, ale można go (i należy) konfigurować na różne sposoby. Formalnie rzecz biorąc, testy w S&M to jeden i ten sam moduł, ale z różnymi ustawieniami - czy widziałeś, że wydajność testów znacznie się różni? ... i ten efekt może być inny dla różnych pamięci (różnych producentów). Cóż, jeśli wydajność się zmienia, to logicznym wnioskiem z tego jest to, że dostosowując parametry, można ją podnieść (wydajność, to znaczy). Trudno uznać program, który został napisany 5 lat temu, za optymalny.
Zatem test = moduł testowy + indywidualne ustawienia. Drugim punktem jest liczba wątków testowych. W przypadku nowoczesnych procesorów liczba wątków testowych powinna być większa niż jeden, co ułatwi (dokładniej, częściej) komunikację z procesorami z własną pamięcią. Dotyczy to zwłaszcza K10-11-12 z jego rozproszoną magistralą. Program obsługuje inną (powiedzmy to łagodnie) liczbę wątków testowych. Z doświadczenia S&M mogę powiedzieć - najszybszy tryb dla jednego procesu, ale wielokrotnie informowano mnie, że włączenie trybu wielokrotnego, chociaż prowadzi do niewielkiego spadku prędkości, zwiększa wydajność algorytmu. Cóż... chociaż prędkość pracy jest prawie synonimem jakości (ponieważ wolny algorytm nie znajdzie błędów), głupotą jest kłócić się z praktyką. Program obsługuje inną (powiedzmy to łagodnie) liczbę wątków testowych. Z doświadczenia S&M mogę powiedzieć - najszybszy tryb dla jednego procesu, ale wielokrotnie informowano mnie, że włączenie trybu wielokrotnego, chociaż prowadzi do niewielkiego spadku prędkości, zwiększa wydajność algorytmu. Cóż... chociaż prędkość pracy jest prawie synonimem jakości (ponieważ wolny algorytm nie znajdzie błędów), głupotą jest kłócić się z praktyką. Program obsługuje inną (powiedzmy to łagodnie) liczbę wątków testowych. Z doświadczenia S&M mogę powiedzieć - najszybszy tryb dla jednego procesu, ale wielokrotnie informowano mnie, że włączenie trybu wielokrotnego, chociaż prowadzi do niewielkiego spadku prędkości, zwiększa wydajność algorytmu. Cóż... chociaż prędkość pracy jest prawie synonimem jakości (ponieważ wolny algorytm nie znajdzie błędów), głupotą jest kłócić się z praktyką.
W tej chwili planowane (i obsługiwane) są następujące parametry testowe:
Moduły testowe.
Na razie są tylko dwa, ale to tymczasowe.
1. Test 0, a mianowicie i tylko na nim działa ten moduł - kontrola stabilności danych. Chodzi o to, że cała pamięć jest podpisana pewnym niestałym wzorem, następnie wykonywane są testy i sprawdzane jest bezpieczeństwo tych danych.
Test dramatycznie spowalnia prędkość testowania.
2. SimpleTest - chociaż nazywa się to proste, to bardziej sarkazm. Obsługiwane są wszystkie ustawienia (rozmiar-metoda-szablon), ale niezbyt wydajnie zoptymalizowane ze względu na zwiększoną wszechstronność. Jednak straty wynikające z nieoptymalnej implementacji oprogramowania nie są tak duże i są niwelowane po włączeniu testowania wielowątkowego - kilka procesorów zatyka kanał wejścia/wyjścia pamięci w 100%.
Jednak jeśli coś można uprościć, prędkość wzrośnie.
Funkcja: program składa się z dwóch części - programu uruchamiającego i biblioteki DLL z modułami testowymi. Rozpakuj wszystko i zachowaj katalogi.
Napisałem dwie funkcje: MirrorMove i MirrorMove128.
Istotą jest to, że blok testowy jest wywracany na lewą stronę. W takim przypadku dwa procesy odczytu i zapisu idą na spotkanie. Jeśli kontroler pamięci próbuje być sprytny i dostosować się do trybu dostępu, to z takiej pornografii jego szef powinien zostać zdemontowany - nigdy nie ma dwóch równych procesów w + i w - adresowaniu. Same funkcje tylko wstrząsają blokiem, ale nie testują integralności danych. Test 0 służy do weryfikacji. Dlatego, jeśli chcesz użyć tych funkcji, nie wyłączaj testu 0.
MirrorMove
- odbija blok testowy. Przy parzystej liczbie odbić stan końcowy bloku nie ulega zmianie (jeśli nie ma awarii). Sam blok można podzielić na kilka podbloków i "odbijać" jednocześnie [/ i]. To stwarza duże problemy dla kontrolera (i samej pamięci) - częściej trzeba przeciążać strony SDRAM.
Konfigurowalny jest tylko rozmiar bloku testowego i parametr, który może przyjmować wartości 1,2,3,4 - to liczba podbloków w bloku.
Wszystkie inne ustawienia (i to jest tryb generowania szablonów) są ignorowane.
MirrorMove128
- podobny do MirrorMove, ale działa nieco inaczej - operacje są wykonywane na stronie 128 bajtów (patrz poniżej), dodatkowe przesunięcie jest dokonywane między dostępami. Te. ruch (odbicie) odbywa się w pasmach w kilku przejściach - najpierw pasma parzyste, potem nieparzyste (dla 2 pasm). Oprócz zwiększenia obciążenia kontrolera pamięci, ta akcja powoduje intensywne przeładowanie strony w SDRAM, co zwiększa prawdopodobieństwo awarii. (cóż, oczywiście ogrzewanie)
Konfigurowalny jest tylko rozmiar bloku testowego i parametr, który może przyjmować wartości od 0 i więcej. Sam parametr oznacza, o ile dodatkowe [/ i] należy przesunąć w stronach po 128 bajtów. Te. 0 będzie oznaczać dostęp liniowy (prawie jak w MirrorMove), 1 - pomiń stronę i przeskocz "co drugi raz", 2 - pomiń 2 strony (256 bajtów) ...
W związku z tym parametr ustawia liczbę dodatkowych pasm (przejść) do wypełnienia całego bloku. Sądząc po czasie wykonania ruchu, dla Core2 (prawdopodobnie i innych procesorów ze starym trybem przeplotu) 510 godzin powoduje największe problemy. Oznacza to, że jest potencjalnie interesujące do testowania. W przypadku innych procesorów i systemów dobrze byłoby sprawdzić liczby w potęgach dwóch minus 2. To '-2' zmusza do wybrania nie jednej, ale dwóch stron SDRAM, co powoduje wzrost czasu. Oznacza to, że dla optymalizacji dobrze byłoby sprawdzić wiersz 128-2 = 126, 256-2, 512-2, 1024-2, 2048-2.
Jeśli chodzi o dostęp do 128 bajtów, zrobiono to celowo. Z reguły jednostką transferu danych na magistrali jest 64 bajty, co odpowiada linii pamięci podręcznej, ale w Core2 (i wyższych) ta linia jest sparowana, a jej wymiar wynosi 128 bajtów. Jeśli odczytasz 64 bajty, prędkość pobierania spadnie. Ponadto w nowych procesorach (AMD K10, K11 ...; Intel Core i *), przeplot nie jest małymi literami, ale blokiem i 64-bajtową jednostką dostępu. Zatem podczas dostępu do 128 bajtów odczytywane są oba DIMM.
Dalszy wzrost z 128 do 256 bajtów nie jest jeszcze istotny... ale możesz to zrobić. Będzie MirrorMove256
W wersji TM5 0.5 zmieniono wymiar prezentacji bloku testowego testu. Wcześniej było w bajtach, teraz w megabajtach. Argumentem jest to, że małe bloki są ładnie buforowane w L2 / L3 i nie będą testowane. Znaczenie? Nie ma sensu, ale wygoda cierpi, więc to zmieniłem.
Ponieważ w nowoczesnych procesorach pamięć podręczna ma więcej niż 4 Mb (lub rząd wielkości), liczby 0-3 nie są interesujące i są interpretowane w specjalny sposób. Mianowicie, jako stopień łamania okna.
Testowanie odbywa się w oknie 1 Gb (tę liczbę można zmienić), a blok testowy powinien się w nim zmieścić. Możesz określić rozmiar bloku testowego w wartości bezwzględnej Mb lub jako część okna. Oto liczby 0-3 i definiują tę "część".
0 = całe okno
1 = 1/2 okna
2 = 1/3 okna
3 = 1/4 okna
Prawdopodobnie dla funkcji MirrorMove * lepiej jest określić 0 i dać całe okno.
Personalizacja.
Po uruchomieniu programu w katalogu bin pojawił się plik MT.cfg, który jest plikiem konfiguracyjnym testu.
Włącz = 1 - 1 = włączone, 0 = wyłączone
Czas = 100 - czas testowania, 100%
Funkcja = SimpleTest -
Nazwa funkcji DLL Nazwa = bin
MT0.dll - nazwa dll
Tryb wzoru = 1 - typ wzoru. 0 = stała, 1 = zmienna, 2 = losowa
Parametr wzoru0 = 0x1E5F - używany do generowania wzoru; Dla trybu 2 służy jako mnożnik
Parametr wzoru1 = 0x45357354 - podobnie. Dla trybu 2 jest dodawany do szablonu.
Parametr = 0 - zasada poruszania się po adresach.
Rozmiar bloku testowego = 4194304 - rozmiar bloku w bajtach
Aby wygenerować szablon w trybie 2, do uzyskania RND = Wartość * Param0 + Param1 używana jest prosta formuła
Parametr to sposób przejścia do następnego bloku. 0 = liniowe (sekwencyjne) pomijanie. Inne wartości są tylko dla ich DIMM. Sama liczba oznacza, o ile przesunąć.
Chodzi o to, że najpierw sprawdzany jest jeden DIMM, a następnie drugi (i trzeci, dla wariantów takich jak Core i7).
Jednostka dostępu, tj. liczba bajtów pobieranych z jednego DIMM na raz 64 bajty. W związku z tym, ustawiając parametr = 1, kontrola będzie przebiegać na każdym bloku wybranego DIMM. Jeśli "2" - to po jednym .....
Nawiasem mówiąc, sekcja dotycząca konfiguracji sprzętu jest tutaj ważna. Myślę, że prawie każdy ma pamięć w sparowanych gniazdach i działa tryb DUAL. Musisz więc zrobić jedną rzecz - przełączyć tryb przeplotu. 0 dla starszych procesorów (bez zintegrowanego kontrolera pamięci) i 1 dla nowszych.
Menadżer pamięci w systemie Windows 7 ma jedną funkcję - gdy tylko zabierzesz pamięć z systemu Windows, natychmiast zaczyna się ona opróżniać coraz bardziej. Zazwyczaj wystarczy poczekać kilka cykli, a proces ten się uspokoi. Jeśli to przeszkadza, możesz wyłączyć ten "miękki" tryb żądania pamięci.
Jeśli umieścisz: Capable = 0x 0, wówczas zajęta pamięć zostanie natychmiast zablokowana.
Strona wsparcia TestMem - TestMem V
Cóż, myślę, że wiesz, o co chodzi w programie, w końcu wersja 5. W tej chwili testy pamięci nie są złe, ale raczej złe. Nie chciałbym mówić o "wszystkich" testach, ale większość z nich nie jest świadoma znaczących zmian w sprzęcie. A główna "szkoda" wcale nie pochodzi z pamięci, niewiele się rozwinęła, a mianowicie z procesora i kontrolera pamięci (w mniejszym stopniu). Procesory stały się szybsze, jest ich dużo i stały się dziwne.
Jednak jeśli przeczytasz horror o problemach z testowaniem, proszę
Co nowego.
Dodano pełną obsługę 16 testów i możliwość ładowania innych plików konfiguracyjnych testów. Niestety, pełne i niezauważalne ponowne uruchomienie programu jest bardzo trudne, więc będziesz musiał użyć "ręcznego" uruchomienia. Po zainstalowaniu nowego pliku ustawień program się zamyka.
Wygląd.

W oknie programu po lewej stronie wyświetlany jest typ i nazwa procesora, jego częstotliwość, liczba rdzeni i obsługiwane tryby SSE.
Prawa strona pokazuje stan pamięci systemowej - ile jest dostępne i ile program jest zajęty.
Środkowa lewa strona pokazuje postęp testowania, po wykryciu awarii komórki 0-5 zmieniają kolor na czerwony, a liczba niepowodzeń testu jest wyświetlana w sekcji stanu w prawym środkowym rogu.
Mały opis.
Ten program jest zbudowany na nieco innej zasadzie niż wszystkie poprzednie. Mianowicie - jest konfigurowalny... Co więcej, może być konfigurowany przez użytkownika dla tych warunków, które wydają mu się najlepsze. Program ma koncepcję "modułu testowego" i "testu". Moduł jest wywoływany w celu przeprowadzenia testu, ale można go (i należy) konfigurować na różne sposoby. Formalnie rzecz biorąc, testy w S&M to jeden i ten sam moduł, ale z różnymi ustawieniami - czy widziałeś, że wydajność testów znacznie się różni? ... i ten efekt może być inny dla różnych pamięci (różnych producentów). Cóż, jeśli wydajność się zmienia, to logicznym wnioskiem z tego jest to, że dostosowując parametry, można ją podnieść (wydajność, to znaczy). Trudno uznać program, który został napisany 5 lat temu, za optymalny.
W tej chwili planowane (i obsługiwane) są następujące parametry testowe:
- rozmiar bloku. Im mniejszy, tym wydajniejszy algorytm. Ale jeśli blok zmieści się w pamięci podręcznej, algorytm zawiedzie.
- metoda pomijania bloku. Liniowa lub odbijająca. Pierwszy ma dużą prędkość, drugi - intensywniej obciąża wiązkę kontroler-DIMM i prowadzi do większego nagrzewania pamięci. (um, nie bez powodu czwarty test w S&M tak bardzo nagrzewał pamięć).
- zasada generowania szablonów. Stała, zmienna i losowa.
Moduły testowe.
Na razie są tylko dwa, ale to tymczasowe.
1. Test 0, a mianowicie i tylko na nim działa ten moduł - kontrola stabilności danych. Chodzi o to, że cała pamięć jest podpisana pewnym niestałym wzorem, następnie wykonywane są testy i sprawdzane jest bezpieczeństwo tych danych.
Test dramatycznie spowalnia prędkość testowania.
2. SimpleTest - chociaż nazywa się to proste, to bardziej sarkazm. Obsługiwane są wszystkie ustawienia (rozmiar-metoda-szablon), ale niezbyt wydajnie zoptymalizowane ze względu na zwiększoną wszechstronność. Jednak straty wynikające z nieoptymalnej implementacji oprogramowania nie są tak duże i są niwelowane po włączeniu testowania wielowątkowego - kilka procesorów zatyka kanał wejścia/wyjścia pamięci w 100%.
Funkcja: program składa się z dwóch części - programu uruchamiającego i biblioteki DLL z modułami testowymi. Rozpakuj wszystko i zachowaj katalogi.
Napisałem dwie funkcje: MirrorMove i MirrorMove128.
Istotą jest to, że blok testowy jest wywracany na lewą stronę. W takim przypadku dwa procesy odczytu i zapisu idą na spotkanie. Jeśli kontroler pamięci próbuje być sprytny i dostosować się do trybu dostępu, to z takiej pornografii jego szef powinien zostać zdemontowany - nigdy nie ma dwóch równych procesów w + i w - adresowaniu. Same funkcje tylko wstrząsają blokiem, ale nie testują integralności danych. Test 0 służy do weryfikacji. Dlatego, jeśli chcesz użyć tych funkcji, nie wyłączaj testu 0.
MirrorMove
- odbija blok testowy. Przy parzystej liczbie odbić stan końcowy bloku nie ulega zmianie (jeśli nie ma awarii). Sam blok można podzielić na kilka podbloków i "odbijać" jednocześnie [/ i]. To stwarza duże problemy dla kontrolera (i samej pamięci) - częściej trzeba przeciążać strony SDRAM.
Konfigurowalny jest tylko rozmiar bloku testowego i parametr, który może przyjmować wartości 1,2,3,4 - to liczba podbloków w bloku.
Wszystkie inne ustawienia (i to jest tryb generowania szablonów) są ignorowane.
MirrorMove128
- podobny do MirrorMove, ale działa nieco inaczej - operacje są wykonywane na stronie 128 bajtów (patrz poniżej), dodatkowe przesunięcie jest dokonywane między dostępami. Te. ruch (odbicie) odbywa się w pasmach w kilku przejściach - najpierw pasma parzyste, potem nieparzyste (dla 2 pasm). Oprócz zwiększenia obciążenia kontrolera pamięci, ta akcja powoduje intensywne przeładowanie strony w SDRAM, co zwiększa prawdopodobieństwo awarii. (cóż, oczywiście ogrzewanie)
Konfigurowalny jest tylko rozmiar bloku testowego i parametr, który może przyjmować wartości od 0 i więcej. Sam parametr oznacza, o ile dodatkowe [/ i] należy przesunąć w stronach po 128 bajtów. Te. 0 będzie oznaczać dostęp liniowy (prawie jak w MirrorMove), 1 - pomiń stronę i przeskocz "co drugi raz", 2 - pomiń 2 strony (256 bajtów) ...
W związku z tym parametr ustawia liczbę dodatkowych pasm (przejść) do wypełnienia całego bloku. Sądząc po czasie wykonania ruchu, dla Core2 (prawdopodobnie i innych procesorów ze starym trybem przeplotu) 510 godzin powoduje największe problemy. Oznacza to, że jest potencjalnie interesujące do testowania. W przypadku innych procesorów i systemów dobrze byłoby sprawdzić liczby w potęgach dwóch minus 2. To '-2' zmusza do wybrania nie jednej, ale dwóch stron SDRAM, co powoduje wzrost czasu. Oznacza to, że dla optymalizacji dobrze byłoby sprawdzić wiersz 128-2 = 126, 256-2, 512-2, 1024-2, 2048-2.
Jeśli chodzi o dostęp do 128 bajtów, zrobiono to celowo. Z reguły jednostką transferu danych na magistrali jest 64 bajty, co odpowiada linii pamięci podręcznej, ale w Core2 (i wyższych) ta linia jest sparowana, a jej wymiar wynosi 128 bajtów. Jeśli odczytasz 64 bajty, prędkość pobierania spadnie. Ponadto w nowych procesorach (AMD K10, K11 ...; Intel Core i *), przeplot nie jest małymi literami, ale blokiem i 64-bajtową jednostką dostępu. Zatem podczas dostępu do 128 bajtów odczytywane są oba DIMM.
Dalszy wzrost z 128 do 256 bajtów nie jest jeszcze istotny... ale możesz to zrobić. Będzie MirrorMove256
W wersji TM5 0.5 zmieniono wymiar prezentacji bloku testowego testu. Wcześniej było w bajtach, teraz w megabajtach. Argumentem jest to, że małe bloki są ładnie buforowane w L2 / L3 i nie będą testowane. Znaczenie? Nie ma sensu, ale wygoda cierpi, więc to zmieniłem.
Ponieważ w nowoczesnych procesorach pamięć podręczna ma więcej niż 4 Mb (lub rząd wielkości), liczby 0-3 nie są interesujące i są interpretowane w specjalny sposób. Mianowicie, jako stopień łamania okna.
Testowanie odbywa się w oknie 1 Gb (tę liczbę można zmienić), a blok testowy powinien się w nim zmieścić. Możesz określić rozmiar bloku testowego w wartości bezwzględnej Mb lub jako część okna. Oto liczby 0-3 i definiują tę "część".
0 = całe okno
1 = 1/2 okna
2 = 1/3 okna
3 = 1/4 okna
Prawdopodobnie dla funkcji MirrorMove * lepiej jest określić 0 i dać całe okno.
Personalizacja.
Po uruchomieniu programu w katalogu bin pojawił się plik MT.cfg, który jest plikiem konfiguracyjnym testu.
Włącz = 1 - 1 = włączone, 0 = wyłączone
Czas = 100 - czas testowania, 100%
Funkcja = SimpleTest -
Nazwa funkcji DLL Nazwa = bin
MT0.dll - nazwa dll
Tryb wzoru = 1 - typ wzoru. 0 = stała, 1 = zmienna, 2 = losowa
Parametr wzoru0 = 0x1E5F - używany do generowania wzoru; Dla trybu 2 służy jako mnożnik
Parametr wzoru1 = 0x45357354 - podobnie. Dla trybu 2 jest dodawany do szablonu.
Parametr = 0 - zasada poruszania się po adresach.
Rozmiar bloku testowego = 4194304 - rozmiar bloku w bajtach
Aby wygenerować szablon w trybie 2, do uzyskania RND = Wartość * Param0 + Param1 używana jest prosta formuła
Parametr to sposób przejścia do następnego bloku. 0 = liniowe (sekwencyjne) pomijanie. Inne wartości są tylko dla ich DIMM. Sama liczba oznacza, o ile przesunąć.
Chodzi o to, że najpierw sprawdzany jest jeden DIMM, a następnie drugi (i trzeci, dla wariantów takich jak Core i7).
Jednostka dostępu, tj. liczba bajtów pobieranych z jednego DIMM na raz 64 bajty. W związku z tym, ustawiając parametr = 1, kontrola będzie przebiegać na każdym bloku wybranego DIMM. Jeśli "2" - to po jednym .....
Nawiasem mówiąc, sekcja dotycząca konfiguracji sprzętu jest tutaj ważna. Myślę, że prawie każdy ma pamięć w sparowanych gniazdach i działa tryb DUAL. Musisz więc zrobić jedną rzecz - przełączyć tryb przeplotu. 0 dla starszych procesorów (bez zintegrowanego kontrolera pamięci) i 1 dla nowszych.
Menadżer pamięci w systemie Windows 7 ma jedną funkcję - gdy tylko zabierzesz pamięć z systemu Windows, natychmiast zaczyna się ona opróżniać coraz bardziej. Zazwyczaj wystarczy poczekać kilka cykli, a proces ten się uspokoi. Jeśli to przeszkadza, możesz wyłączyć ten "miękki" tryb żądania pamięci.
Jeśli umieścisz: Capable = 0x 0, wówczas zajęta pamięć zostanie natychmiast zablokowana.
Strona wsparcia TestMem - TestMem V