Wycieczka do fabryki Goodram
Zaciekawiła mnie w tym materiale metodologia testowania tego RAMu.
Spodziewałem się, że będzie to robione głównie jakimiś wyspecjalizowanymi testbenchami, a nie “farmą” zwykłych pecetów.W tym fragmencie o użyciu asemblera padła informacja, że wynika to m.in. z potrzeby wyłączenia cache’u.
Zastanawiam się, czy to wynika z potrzeby wymuszenia, żeby każdy zapis trafiał do RAMu. Czy może chodzi raczej o zagwarantowanie konkretnej kolejności zapisów na magistrali.Zastanawiam się, czy to wynika z potrzeby wymuszenia, żeby każdy zapis trafiał do RAMu. Czy może chodzi raczej o zagwarantowanie konkretnej kolejności zapisów na magistrali.
tak
Tak na serio asm bez cache mógłby dawać najwyżej jakąś staroszkolną weryfikację zapisów. Dużo bardziej wymagający dla sprzętu jest przecież burst. Napieprzenie w każdym kierunku szybkimi transferami linii z patternami i weryfikacja bloków.
- Ciekawe skąd przychodzą PCB?
- Wszędzie Win 7
- Czy to był po prostu memtest?
- Mnie to nie dziwi. W świecie takich instalacji przemysłowych często nie podnosi się wersji systemu operacyjnego. Powody różne. Czasami w takich miejscach spotykasz do dzisiaj systemy starsze niż Windows XP.
Mnie też nie dziwi. Zauważyłem tylko. Dziwiłoby mnie gdyby odpalali tam IE i wchodzili wypok.
To są maszyny przemysłowe i takie mają firmware.
- Pewnie PCBway.
I cyk, product placement wleciał na serwis. ;-) - Może jakiś fork memtesta. Jakbym był producentem pamięci, to pewnie budowałbym własną bazę testów w oparciu o zwroty sprzętu od klientów.
- To dobra firma, należy im się.
- Zdziwiło mnie, że z takim podekscytowaniem mówił o pisaniu testów w asm.
Testowanie pamięci to w sumie ciekawe zagadnienie. Bo zastanawia mnie na ile by pomógł niskopoziomowy dostęp do kontrolera pamięci. Bo on robi jakieś wstępne testy i coś co nazywają “wygrzewaniem”. Dużo więcej o tym mówili w temacie PCIe w tym materiale z AMD.
- Gadanie, że coś zostało napisane w asm (albo ma chociaż ręcznie zrobione wstawki) do dzisiaj potrafi dać +5 do szacunku. Kiedyś spotkałem się z sytuacją, gdy taki niskopoziomiowy program musiał sam siebie przenosić w różne fragmenty pamięci RAM i potem tam kontynuować swoje wykonywanie. Autor wtedy napisał to w asm, bo tak było mu najlepiej osiągnąć pewność działania. Może tutaj chodzi o coś podobnego?
Kiedyś widziałem ranking twórców asm. Na pierwszym miejscu był Linus. Bo w Linuksie jest dużo wstawek.
Też zauważyłem, że asembler ma do dzisiaj kultowy status wśród graczy.
To w sumie zabawne, bo na współczesnych desktopach użycie asma do optymalizacji na szerszą skalę nie ma żadnego sensu.Btw. wczoraj przeglądałem kod Impulse Trackera.
Nie miałem pojęcia, że ten software był w całości napisany w asemblerze (spodziewałem się go, ale w DSP i sterownikach).Dawno temu był jakiś Rosjanin, robiący wrażenie pisaniem symulacji zjawisk fizycznych i wizualizacji matematyki w asm i winapi. Główną zaletą było chyba to, że mogły działać wydajnie na wolnych komputerach.
Wg Wiki, Impulse Tracker został wydany w 1995 roku. Pewnie większość miała jakieś 486 i około 4 MB RAM. Ten program obsługiwał przynajmniej 16 kanałów. Nie wiem czy ówczesne rozwiązania wyższej abstrakcji potrafiłyby sprostać takim wymaganiom.
Cytujac fragment readme z GitHuba:
The original code was compatible all the way back to an 8086 machine. 8086 would allow you to do conditional jumps only within +/-128 bytes, so I spent too much time shuffling code around to meet this restriction. When I shifted away from this 8086 restriction, I never went back to update the code that was mutilated by it.
Może plan był taki, żeby wspierać bardzo stare platformy.
Przypomniało mi się, że kiedyś opublikowałem kod do wyświetlania na TV obrazu przez Arduino. To był sketch w standardowym IDE ze wstawkami. Ktoś mi wtedy zarzucił, że skoro robię wstawki, to powinienem całość napisać w asm.
- Pewnie PCBway.