AMD K6, K6/2, K6/2CXT-Utility SetK6, c't, Andreas Stiller im November 98
**********************************************************************
SetK6.exe  32-Bit-Version fr Win95/98 und Win NT
SetK6D.exe DOS-Version
Direct95.VXD Treiber fr Win95/98
DirectNT.SYS Treiber fr NT


SetK6 kontrolliert und setzt die internen Prozessorregister fr
Write Allokation und Write Combining (nur K6/2CXT). Falls das BIOS
den Prozessor nicht kennt und nicht korrekt initialisiert, luft
der Prozessor im Schnitt etwa fnf Prozent  langsamer als ntig.

Als Konsol-Applikation sollte man SETK6 unter Windows aus der
MSDOS-Shell aufrufen, falls man Parameter bergeben will.

SetK6, Setk6D ohne Parameter gibt den aktuellen Zustand aus.


Setk6 /on  :  aktiviert es unter Windows die Write-Allocation fr
	      den gesamten Speicher.
Setk6 /off :  deaktiviert Write-Allocation
Setk6 /on xxM: aktiviert den Speicher bis xx MByte oder kurz:
Setk6 xxM      mit xx: dezimal mit angehngten M, also z.B.
	       set 64M (Achtung ohne M interpretiert setk6 die
	       Zahl hexadezimal, also setk6 64 => setk6 100M)

unter DOS mu der Speicherbereich angegeben werden !

Erweiterung fr den K6/2CXT (neuere Version des K6)

Der CXT-Prozessor untersttzt sogenanntes Write-Combining fr
uncached Memory. Hierber lt sich insbesondere ein schnellerer
Zugriff auf den Linearen Frame Buffer (LFB) der Grafikkarte
bewerkstelligen (hnlich wie beim Pentium II). Zu diesem Zweck
bietet der K6/2CXT zwei Memory Type Range Register (MTRR), die man auf
die physischen Adrelage und die Gre der LFBs einstellen kann.
setk6 holt sich die Adrelage aus dem PCI-Header, hier knnen
allerdings mehrere Ressourcen eingetragen sein.

setk6 /M0:LFB,xxM setzt MTRR0 auf den ersten gefundenen Eintrag im
		  Header mit xxM als Gre (Default 64M) auf
		  Attribut WC (Write Combining)

setk6 /M0:LFB2,xxM setzt MTRR0 auf den zweiten gefundenen Eintrag

setk6 /M1:LFB,xxM entsprechend fr MTRR1

Man kann explizit ein Attribut angeben, z.B.
setk6 /M0:LFB,16M,WC  oder ...,UC (uncached) ...NE (No effect)

Falls die Eintrge im PCI-Header nichtmit dem tatschlichen
Framebuffer bereinstimmen, kann man statt LFB auch die Adresse
eingaben, also

setk6  /M0:E0000000  oder /M0:3584M

Ohne Angabe der MTRR-Nummer nimmt setk6 das nchste freie MTRR
also:

setk6 /M:LFB : erster freies MTRR wird auf LFB gem PCI-Header gesetzt
	       mit Defaultgre 64M

setk6 gibt auch zum Vergleich mit/ohne Write-Allokation die
Fllrate (Memset) fr einen 32 KByte groen Speicherblock in den
Speicher aus.

Andreas Stiller/c't November 1998
