Ich habe ein wenig mit verschiedenen CPUs herumexperimentiert, hier die Ergebnisse.
Grundsätzlich unterstützt mein Board die folgenden FSB-Takte (1:1 gleich mit VLB und PCI-Takt):
Code: Alles auswählen
FSB | PCI | VLB
--------+-----+-----
16 MHz* | (-) | (-) Zeichenerklärung:
20 MHz* | (-) | * : Einstellung undokumentiert
25 MHz | | (-): Taktrate unter Spezifikation, Geräte funktionieren nicht
33 MHz | | (+): Taktrate über Spezifikation, Geräte teilweise instabil
40 MHz | (+) |
50 MHz | (+) | (+)
Die Multiplikatoren werden prinzipiell fix vom Prozessor vorgegeben, nur bei 486DX4- und 5x86-Modellen kann der Multiplikator über den CLKMUL-Pin (R17) eingestellt werden:
Code: Alles auswählen
CLKMUL | 0 | 1
-------+----+----
486DX | 1x | 1x
486DX2 | 2x | 2x
486DX4 | 3x | 2x
5x86 | 4x | 3x
Ursprünglich sollte bei Verbindung von CLKMUL mit BREQ (Q15) der Multiplikator 2.5x möglich sein, ich weiß aber nicht, ob das je von einem 486er unterstützt wurde.
Zum Problem mit der falsch angezeigten CPU-Geschwindigkeit: Mein Board interpretiert die folgenden Taktraten falsch:
Code: Alles auswählen
Realer Takt | Angezeigt
------------+----------
16 (1x16) | 32 MHz
20 (1x20) | 32 MHz
48 (3x16) | 40 MHz
60 (3x20) | 50 MHz
80 (2x40) | 75 MHz
150 (3x50) | 120 MHz
Dieses Verhalten legt folgenden Schluß nahe: Die Geschwindigkeit wird zwar beim Booten gemessen (wahrscheinlich über eine simple Delay-Schleife), das Ergebnis wird aber nicht direkt angezeigt, sondern mit einer Tabelle verglichen und ein möglichst naher Wert aus der Tabelle ausgegeben. Marketingtechnisch macht das durchaus Sinn, denn so wird sichergestellt, daß beim Booten immer die gleiche Zahl angezeigt wird, die auf dem Prozessor draufsteht.
Die Werte 16, 20, 60, 80 und 150 fehlen aber in meiner BIOS-Tabelle, daher erscheint der nächstkleinere Wert. Wenn es keinen nächstkleineren Wert gibt, wird einfach "32 MHz" genommen. Diese Angabe taucht auch dann auf, wenn bei der Messung was schiefgegangen ist (kommt manchmal nach einem Reset vor).
Zu allen vorhandenen Werten der Tabelle sind Faktoren für die automatische Einstellung der BIOS-Parameter zugeordnet:
Code: Alles auswählen
Speicher | WS | ISA-Bus | zugeordnet zu
---------+----+---------+-------------
Fastest | 0 | FSB/3 | 25/50/75 MHz
Faster | 0 | FSB/4 | 33/66/100 MHz
Slower | 1 | 7.159 | 40/120 MHz
So kommt es, daß die Automatik in gewissen Fällen danebenhaut: Bei 80 (40FSB) MHz werden 75 MHz angezeigt und das System für 25 MHz FSB konfiguriert.
Ähnliche Probleme tauchen bei Verwendung von 50 MHz FSB auf, aber das Board läuft dann eh nicht mehr stabil.
Locutus hat geschrieben:Aber woher will man wissen, ob nun wirklich der falsch erkannte CPU-Takt für die Bestimmung des ISA-Takts, Speichertiming etc. herangezogen wird?
Wenn im BIOS die Automatik eingeschaltet ist, ändern sich die Werte dementsprechend. Man kann das dann auch mit Benchmarks feststellen.
Die Automatik habe ich normalerweise ausgeschaltet. Zum einen, weil mein RAM schnellere Timings verträgt, als das BIOS annimmt, und zum anderen, weil ich meine ISA-Karten schonen möchte und daher den ISA-Bus auf den fixen Wert von 7.159 MHz gestellt habe. Das kostet zwar Performance, aber ich habe eh nur Soundkarten stecken, und bei denen macht das nicht viel aus.