Da passt etwas nicht. Bei 33/66 MHz ist der Speichertransfer unterirdisch, bei 40/80 hat er sich ordentlich verbessert (siehe Diagramm unten rechts)
Hast Du das Dirty Tag mit ctcm geprüft?
Da passt etwas nicht. Bei 33/66 MHz ist der Speichertransfer unterirdisch, bei 40/80 hat er sich ordentlich verbessert (siehe Diagramm unten rechts)
Hast Du das Dirty Tag mit ctcm geprüft?
Ich bekomme ähnliche Werte mit einem Cx486DX2 v80 (80MHz) auf dem CH471:
CTCM sagt: L2 Dirty Tag ok.
Außerdem habe ich den WriteBack ans Laufen gebracht, es bootet von Diskette mit aktiviertem L1 Writeback.
Edit: Wenn ich beide Caches in WT schalte, bekomme ich für den Speicherdurchsatz auch "bessere" Werte:
Aber jetzt sieht SpeedSys nur noch den L1-Cache?!?
Ich bin mir nicht so sicher, ob man SpeedSys hier trauen kann...
Du erkennst es unten an der Kurve. Der erste Knick bei 8kB ist der L1, der zweite bei 256kB der L2 und dahinter der Speicher. Der ist im unteren Bild fast auf L2 Niveau. Das bekommen einige Programme nicht mehr aufgelöst, weswegen sie denken, dass kein L2 vorhanden ist. Bei Dir ist eindeutig erkennbar, dass L2 vorhanden ist.
Bei Deinem unteren Bild ist der RAM deutlich schneller unterwegs als oben. Wenn das obere Bild L2/WB ist und das untere L2/WT, dann stimmt da irgendwas nicht.
Für den „Moving-Wert“ im DRAM dürfen beim WB die Werte ggf. etwas niedriger sein als beim WT, aber nicht fürs Reading.
Teste das mal in Anwendungen wie 3DBench, Doom oder PCP Bench.
Ein kurzer Ausflug:
Beim WT geht jeder Schreibvorgang direkt in den RAM und nicht in den Cache, egal ob die Adresse im Cache liegt oder nicht. Bei WB, geht der Schreibvorgang einer dort vorhandenen Adresse zunächst in den Cache und wird erst später bei Bedarf in den RAM geschrieben. Ist die Adresse nicht im Cache vorhanden, geht sie natürlich auch gleich in den RAM, wie bei WT.
Das Dirty Tag ist eine Art Merker für veränderte Adressen, da bei WB im Gegensatz zu WT, RAM und Cache nicht mehr konsistent sind. Ist das Dirty Bit nicht vorhanden, wird nach jedem Schreibvorgang in den Cache der gesamte Inhalt in den RAM geschrieben, das kostet den kompletten Vorteil von WB, was meist langsamer ist, als WT.
Da mit DMA (Direct Memory Access) auch andere Teilnehmer (z.B. SCSI Controller) direkt in den RAM schreiben dürfen, können sich noch weitere Inkonsistenzen zwischen RAM und Cache ergeben. Das WB im Cache bedeutet dadurch viel Management für den RAM- und Cache- Controller und bedeutet natürlich auch etwas Overhead.
Richtig spaßig wird’s, wenn L1 und L2 Write Back können. Da muss alles richtig ineinander greifen, was bei einigen Boards nicht in jedem Fall gut klappt. Beim ASUS SV2GX4 zum Beispiel führen DMA Zugriffe vom SCSI- oder Floppy Controller zu Abstürzen wenn ein Pentium Overdrive mit L1WB läuft. Andererseits gibt es keine Probleme mit einem Am5x86 mit L1WB. Im 386/486er ging das erst los mit Cache, da gabs noch viele Kinderkrankheiten im Zusammenhang mit WriteBack-Caches. Beim Pentium war Write Back für L1 und L2 dann selbstverständlich und fehlerfrei.
Für Programme mit kleinen Schleifen, die sich hauptsächlich im Cache abspielen ist WB eindeutig schneller. Bei Programmen mit Schleifen für die der Cache nicht ausreicht, kann WT ein Vorteil haben. In 99,9% der Fälle sollte WB aber die bessere Alternative sein.
Ich habe noch etwas gerätselt, was falsch sein könnte, und die L1- und L2-Cacheeinstellungen durchprobiert (Cyrix DX2@80MHz, 32MB RAM, S3 Vision864 VLB):
3DBench | PCPlayer VGA | Doom (Hi) | PCPlayer SVGA | |
L1+L2 WB | 58,4 | 13,5 | 28,9 | 5,2 |
L1+L2 WT | 58,1 | 14,9 | 29,9 | 5,7 |
L1 WT, L2 WB | 58,2 | 13,5 | 28,7 | 5,1 |
L1 WB, L2 WT | 58,6 | 15,2 | 30,3 | 5,7 |
L2 im WB ist langsamer als im WT, die schnellste Kombo ist L1 WB + L2 WT.
Nach weiterem Gesuche folgende Erkenntnis: der Dirty/Alter TAG im L2 ist *nicht* aktiv, egal, was mir CTCM auch erzählen will. Zum Glück kann man das nachträglich per CTCHIP-Tool umstellen.
Danach habe ich das bekommen:
3DBench | PCPlayer VGA | Doom (Hi) | PCPlayer SVGA | |
L1 WT, L2 WB + Dirty | 58,5 | 14,9 | 30,1 | 5,7 |
L1 WB, L2 WB + Dirty | 58,6 | 15,0 | 30,2 | 5,7 |
und SpeedSys sagt:
Einen großen Unterschied zwischen L2 WT und L2 WB+Dirty TAG gibts aber nicht. Vielleicht ist das unter Windows oder Linux anders, oder man sieht erst größere Unterschiede bei schnelleren CPUs.
Unter DOS scheint sich das irgendwie nicht zu lohnen.
Danke für die Darstellung! Das passt noch nicht zur eigentlichen Erwartung des Write Back. Irgend etwas in Deiner Board/CPU Kombi beißt sich noch. Die DRAM Performance ist bei Dir mit Write Through deutlich schlechter.
Anbei zwei WT/WB Vergleiche mit iDX2/66(WB) und Pentium Oberdrive auf dem SV2GX4, ebenfalls mit SiS471. Was auffällt, dass der DX2 sogar langsamer wird mit L1WB. Der „organisatorische Overhead“ der Write Back Strategie fällt bei dem „langsamen“ DX2 wohl noch sehr ins Gewicht. Der POD profitiert deutlich vom WB, sowohl im L1 als auch im L2 Cache. Der Cyrix DX2 scheint noch mehr mit dem WB Management überfordert zu sein.
Performance-Vergleich der Cache-Strategie für P24T und P24D
Mit einem DX2-66 und einem PODP bekomme ich ähnliche Werte, allerdings hat mein CH-471 nur 256kB L2-Cache. Daher ist alles bei mir etwas langsamer. L1WT beim PODP kostet mich im Vergleich zu L1WB ca. 5-6% Performance, dafür geht bei L1WB Diskette und Sound nicht mehr (DMA halt...).
DRAM Burst Write funktioniert übrigens nur mit L1WT, egal welche CPU.
Anbei noch das BIOS, welches ich benutze. Ist ein anderes als das VOBIS BIOS, hat den Fix mit dem L2 Dirty TAG und kann auch mit einem AMD 5x86. Ich weiß nicht mehr genau, wo ich das herhabe, wahrscheinlich aber von hier: https://www.vogons.org/viewtopic.php?t=87814&p=1070105
Und abschließend noch ein Bild von den Jumpersettings, um einen Cyrix Cx486DX2-v80 mit L1WB auf dem Board zu betreiben (nicht ershrecken )
Der Speicherdurchsatz ist wohl vom Cache abhängig
Mit 256kb:
Mit 1024kb:
Mit 1024kb und dem BIOS von tom4dos
Mit dem BIOS von tom4dos wird auch endlich der Cx5x86-120 erkannt. Der Speicherdurchsatz ist klasse aber die Werte vom Cache kommen nicht an die des UM8810PAIO ran. Hier schafft das UM8810PAIO 170MB/s beim L1 Cache. Write back bekomme ich mit diesem Board leider nicht ans Laufen.
Womit erstellst Du diese schönen Grafiken?
Microsoft Excel
In Excel kenne ich mich leider nicht gut aus aber hier sind mal meine Werte:
Cx5x86-120, Chicony CH-471B, 1024kb Cache, S3 Vision968 VL 4MB, L1 WB, L2 WT
PCP Bench 640x480 - 9,4
PCP Bench 320x200 - 23,9
Doom max. Details - 52,3
Quake 640x480 - 17,2
Die Werte sind ziemlich gut.
Hast Du Quake wirklich in 640x480 laufen lassen und 17,2fps erreicht?
Beim SVGA PCP Bench solltest Du einen VBE 2.0 Treiber aktivieren, damit erhältst Du dank LFB spürbar höhere Werte.
Ich hab vor Jahren mal einen Vergleich auf dem SV2GX4 angelegt.
Ja das waren wirklich 640x480 bei Quake.
Das mit dem VBE 2.0 Treiber muss ich mal probieren.
Der Cache war nur im WT Modus, habe ich jetzt erst gemerkt.
tom4dos verwendest Du eigentlich eine 4V CPU?
Du meinst den Cyrix DX2-80 von oben? Ja, das ist eine 4V-CPU.
Du meinst den Cyrix DX2-80 von oben? Ja, das ist eine 4V-CPU.
Ok, dann ist alles gut. Du kennst also die Funktion von P4. Hab nämlich gesehen, dass der Jumper auf 4V steht und wusste nicht ob Du das weißt.
Ich habe gestern erst eine Beschreibung von P4 gefunden. Damit kann man 3,3V, 3,45V, 3,6V und 4V einstellen.
Mein Board war auf 3,45V eingestellt. Ideal für den Cx5x86.
Lineablu ich denke nicht dass das mit 120MHz möglich ist. Teste bitte nochmal mit 320x240. Manchmal funktioniert das umstellen der Auflösung per batch nicht , wenn die Modi von der Grafikkarte nicht unterstützt werden. Dann läuft der Bench trotzdem in 320x240.
Du hattest natürlich Recht. Es war wirklich 320x240.
Ich habe bei ebay wieder so ein Board entdeckt. Wieder eine abgespeckte Version. Dieses Mal mit dem zweitem IDE Port aber dafür ohne Spannungsregler.
Heute habe ich das Board fertig bekommen. Die fehlenden Scheibenkondensatoren habe ich heute bekommen und eingelötet sowie neue Elkos.
Als nächstes kommt noch der Isopropanol Waschgang. Dazu komme ich warscheinlich erst am Wochenende.
Den Jumper J35 habe ich auch mal eingelötet. Angeblich soll das Board auch 66MHz FSB können. Mal schaun ob da was geht...
66MHZ FSB >> 486DX50 übertakten?
Sie haben noch kein Benutzerkonto auf unserer Seite? Registrieren Sie sich kostenlos und nehmen Sie an unserer Community teil!