Pro-formance c't 10/96 S. 124, as
-----------------------------------------------------
ppro.doc     dies hier
ctppro1.pas  Source in BP 7.0, wie in c't verffentlicht
ctppro1.exe  ausfhrbares Programm
ctppro.exe   erweiterte Version mit Chipsatz-Konfiguration etc.

             Programme von J.Hinkley
             (mit freundlicher Genehmigung des Autors)
fastvid.zip  Diverse Tools
OS2.zip      OS2-Treiber


Der Pentium-Pro-Prozessor enthlt interne Register (Memory Type
Range Register MTRR), die programmiert werden mssen, will man die
volle PCI-Performance erreichen, etwa zum Framebuffer der
Grafikkarte. Dann steigt die Transferleistung schneller
Grafikkarten (Matrox Millenium, ET6000 etc. ) von etwa 20 MByte/s
auf gut 90 MByte/s an -- sofern auch die Write-Buffer des
Chipsatztes eingeschaltet sind.

Die MTRRs des PPros unterteilen sich in die Fix Range MTRRs
zwischen 0 und 1 MByte, wo vor allem der VGA-Video-Speicher
A0000-BFFFF zu finden ist, sowie acht Variable Range MTRRs, die
fr den Adrebereich > 1MB verantwortlich zeichnen.
Fr die jeweilgen Adrebereiche kann man Speicherattribute
whlen:
UC  uncached
WC  Write Combining
WP  Write Protect
WT  Write Through
WB  Write Back

Das erste variable MTRR ist fr den normalen Hauptspeicher
zustndig und dabei blicherweise auf WB gesetzt. Das zweite
Register ist meistens frei, hier kann man den Linearen
Framebuffer (LFB) der Grafikkarte eintragen, der auf Write Combining
zu setzen ist (WC). Wo sich der Framebuffer befindet, kann man
z.B. unter Windows 95 aus dem Device-Manager /Ressourcen ersehen.

Mit FastVid von J. Hinkley kann man sowohl den Write-Buffer beim
Orion-Chipsatz freischalten, als auch die MTRRs fr VGA-Bereich
und Framebuffer auf WC setzen. Falls die Grafikkarte VESA
untersttzt, gibt Fastvid auch die Startadresse des LFB aus.
In OS2.Zip sind OS2-taugliche Treiber.

Mit Vspeed kann man die Grafikgeschwindigkeit messen. Auch das
ct-Tool ctcm gibt mit Parameter /vid die Transfergeschwindigkeit
zur VGA-Karte aus.

Alternativ zu Fastvid kann man das Programm ctppro nutzen, das
auch die aktuelle Belegung aller MTRRs ausgibt.
ctppro liegt in zwei Fassungen vor, die verkrzte Heftfassung
ctppro1 erlaubt es die MTTRs und fr den VGA-Bereich beliebige
Speicherattribute zu setzen. Auerdem kann man mit "M" die
Fast-Strings der PPro-CPU ab CPU-Step 2 freischalten, die wegen
eines Fehlers im Step 1 gemeinhin abgeschaltet sind.

V             :setzt VGA-Bereich A0000-BFFFF auf WC
V:aa          :setzt VGA-Bereich A0000-BFFFF auf Attribut aa
n/xx,yy:aa    :setzt MTRR n mit Startadresse xx und Gre yy auf aa
xx,yy:aa      :setzt MTRR 1 mit Startadresse xx und Gre yy auf aa
xx,yy         :setzt MTRR 1 mit Startadresse xx un Gre yy auf WC
              : xx und yy hexadezimal oder
                dezimal mit angehngtem K,M,G fr K/M/GByte
M             :Fast String Move ein

Alle Befehle lassen sich batch-tauglich direkt in der Kommandozeile
eingeben, z.B.

ctppro1 V E0000000,8M M

bersichtlicher und leistungsfhiger ist ctppro, welches
zustzlich folgende Features aufweist:

 -- Es kann ausgewhlte Bits der PPro-Chipstze Orion und Natoma
    setzen, also Buffer ein/ausschalten Read around Write setzen etc.

S1    Setzt unter 1) angezeigtes Bit auf ein
S123  Setzt unter 1,2,3 angezeigte Bits  auf ein
R1    Setzt unter 1) angezeigte Bits auf aus
R123  ...

-- Es bestimmt die Framebuffer-Adresse aus dem PCI-Header, auf Wunsch
   auch die maximale Gre (letzeres kann zuweilen bei der Detektion
   mit anderer Hardware kollidieren, wird daher defaultmig nicht
   durchgefhrt).

P        :PCI-Header auswerten
FRAME,yy :bernimmt Framebuffer-Adresse mit Gre yy nach MTRR1
FRAME    :bernimmt Framebuffer-Adrese und detektierte Gre nach MTRR1

-- Es kann auch die Fixed Range MTRRs setzen.

Weiteres dazu siehe Hilfe-Funktion von CTppro






