AMD K6, K6/2, K6/2CXT, K6-III-Utility SetK6, c't,
Andreas Stiller im Mrz 99
**********************************************************************
SetK6V3.exe  32-Bit-Version fr Win95/98 und Win NT
SetK6V3D.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 und K6-III).
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-2/CXT und K6-III

K6-2/CXT-und -III-Prozessoren untersttzen 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 16M) 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 nicht mit 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.

Unter Windows sieht der typische Aufruf so aus:

setk6 /on /M0:LFB /1:LFB2

und unter DOS bei 64 MByte Speicher

setk6D /on:64M /M0:LFB /1:LFB2

Andreas Stiller/c't April 99
