zyga:
Projekt niestety na tym etapie uległ "hibernacji", ale pomyślałem że pomysł był na tyle ciekawy żeby się nim podzielić.
Chętnie przyjmuję konstruktywną krytykę, bo wtedy mogę się zorientować że błądzę.
A ja bym chętnie pomógł tyle, że nie w kopiowaniu tylko unowocześnianiu.
zyga:
Nie lubię tekstów "zamknij się, głupi jesteś, na niczym się nie znasz"
No niestety ludzie są tacy. Pracujesz w korporacji?
Data:
Wprawdzie w Alterze zaimplementowano całkiem zmyślny kontroler DRAM z tabelką predykcji, który przy dostępie sekwencyjnym do RAM sobie wykombinuje, kiedy magistrala wolna i można pociągnąć RAS (EDO SIMy mogą być odświeżane samym RASem)
Wydaje mi się, że trochę nawyrost te informacje podałeś, predykcja przy jednopotokowym procku to trochę za dużo powiedziane, np. LDA #$00 STA $1000 generuje pięć odczytów w ciagu i jeden w zapisie, więc jeżeli rozdzielić to na dwa wątki (dane, komendy) to opóźnienie będzie przy pierwszym odczycie i zapisie największe (70ns nie oznacza że dane są dostępne w 70ns). Oczywiście opóźnianie zapisu przyniesie tutaj zysk przy odczycie w ciagu, tyle że może spowodować nie zamierzone zmiany w działaniu programu (selfmodyfikacja), suma sumarum, CPU przy 20Mhz powinien znacząco zwolnić na tym typie pamięci, w zależności od testu. Można się tutaj pokusić o odczyt danych w pustych cyklach
LDA #$00 STA $1000,x INX... np INX to jeden odczyt ale dwa cykle, tyle że układ który nadzoruje to bez sygnału z procka (sync?) jest bardzo kłopotliwy (np. bne) lecz to można by nazwać predykcją.
Co do odświeżania RAS before CAS, CAS before RAS, ukryty licznik itp. W c64 wersja z SHARP, pamięci dram są z ukrytym licznikiem i odświeżanie jest możliwe za pomocą samego RAS, co też ma zastosowanie w TDC, więc nie jest to nowość EDO.