ngig. Bitte beachten Sie daher unbedingt die Hinweise und Warnungen im jeweiligen Hilfetext (Aufruf mit Taste <F1>) und ziehen Sie die angegebenen c't-Ver
ffentlichungen zur n
heren Information heran.
Die Oberfl
che wurde in Turbo Vision erstellt und kann mit der Maus oder den Tasten Cursor, Tab sowie ALT+Buchstabe bedient werden. Die Turbo-Vision-Oberf
che dient lediglich dazu, die einzelnen Programme mit geeigneten Parameter zu starten und die Ausgabe in scrollbare Fenster umzuleiten. Im
brigen sind die Programme auch einzeln direkt von der Kommando-Ebene aus aufrufbar. Was die Programme machen und welche Parameter sie erwarten, erfahren Sie hier per Hilfe-Funktion.
Da viele Routinen exakte Zeitmessung erfordern und teilweise gesch
tzte Befehle verwenden, sollte bei System ab 386 unbedingt der Real
Mode eingeschaltet sein. Im virtuellen
Modus verweigern viele Me
-Programme ihren Dienst.
Voraussetzungen:
Da fast alle Me
-Programme ausgesprochen Hardware-sensitiv sind, k
nnen Abweichungen vom AT-Standard zu Fehlern f
hren. F
zise Zeitmessungen ist es bei Laptops, Notebooks und "Green Machines" of n
tig, die Power-Management-Funktionen au
er Kraft zu setzen, da hier hier teilweise nichtabschaltbare System- Management-Interrupts oder dynamische Taktumschaltung dazwischenfunken. Ebenso k
nnen Watchdog-Timer (etwa bei PS/2) die Messungen beeinflussen, (Bei PS/2 schalten die Programme den Watchdog ab). Die Watchdog-Timer von EISA und PCI sind hingegen unkritisch, da sie sich nur auf konkurrierende Busmaster beziehen.
Siehe auch Installation
Bitte ziehen Sie zur Interpretation von Ergebnissen und/oder Nebeneffekten die einschl
gigen c't-Ver
ffentlichungen heran. Die Redaktion kann keine Einzelberatung zu diesen Fragen leisten. 2
Die c't-Redaktion
bernimmt keinerlei Gew
r das einwandfreie Funktionieren in jedem Anwendungsfall und haftet nicht f
r Sch
den durch Rechnerausfall, Datenverlust, Besch
digung oder irgendeine andere Ursache sowie Folgesch
den gleich welcher Art. Der Einsatz der Programme erfolgt auf eigene Gefahr.
=> Weiter mit ESC-Taste
Installation
Die Installation der Software beschr
nkt sich auf ein einfaches xcopy, zum Beispiel nach c: in das Verzeichnis ctsi: &
md c:\ctsi
xcopy a:*.* /s c:\ctsi
Alle Me
programme (.EXE) werden aus der Turbo-Vision Shell aufgerufen; sie sollten sich entweder im gleichen Verzeichnis BIN wie die Shell befinden oder einen Pfad auf ihr Verzeichnis haben. Dier Ergebnisse werden in einer Ergebnisdatei abgelegt (Default: C:\Result.txt). Man kann im Men
Optionen oder per SET einen anderen Namen oder Pfad w
hlen (siehe Ergebnisdatei).
Einige Programme (ctChipz, ctKurve) ben
tigen noch zus
tzliche Dateien. Diese haben eigene Verzeichnisse (CFG und CCH). Insbesondere braucht die Shell selber in ihrem Verzeichnis die Ressourcen-Datei ctsi.tvr sowie die f
r den Protected Mode n
tigen Dateien: N
rtm.exe :Run-Time-Module
dpmi16bi.ovl :DOS Protected Mode Interface
Die Turbo-Vision-Shell kommt in zwei Versionen daher: *
CTSI: Protected Mode
CTSIR: Real Mode
Die Real-Mode-Shell l
t den aufgerufenen Programmen wenig Raum im engen 640-KByte-DOS-Bereich. Um Speicherplatz zu sparen, mu
te das Clipboard au
er Funktion gesetzt werden. Wenn irgend m
glich, sollten Sie daher die Protected-Mode-Version benutzen, die fast gar keinen Platz im DOS-Raum belegt.
r genauere Messungen sollte man auf alle
berfl
ssigen Treiber und TSRs verzichten (Smartdrive zum Beispiel ist recht st
rend, wenn man mit dem Festplatten-Benchprogramm HDBench die Platte(n) vermessen m
chte.) Y
Am besten erzeugt man erzeugt sich eine bootf
hige Diskette (mit DOS 5.0 oder 6.0) per
format a: /s Q
und kopiert darauf HIMEM.SYS und das mitgelieferte CONFIG.SYS gem
dem Schema:
DEVICE=WBOOT.SYS
DEVICE=C:\SCSI\ASPI4DOS.SYS:ASPI /D
REM Falls ASPI- oder andere HD-Treiber n
DEVICE=HIMEM.SYS
DOS=UMB,HMA
SHELL=C:\COMMAND.COM C:\ /E:512 /p
DEVICE=C:\MOUSE\MOUSE.SYS
AUTOEXEC.BAT beschr
nkt sich auf
kgas
cd \ctsi
ctsi
Tastatur-Treiber
Bei KGAS handelt es sich um eine erweiterte Fassung des in c't 3/91 vorgestellten kleinen Tastatur-Treibers: ~
Umlaute inbegriffen
Mini-Tastaturtreiber f
r PCs
Programm, PCDOS/MSDOS, KEYBGR-Ersatz in rund 400 Bytes
3/91, S. 246
Er belegt deutlich weniger Speicherplatz als KEYBGR, bietet mehr und ist daher zweckdienlicher:
Capitals-Lock statt Shift-lock ;
keine Warte-Funktion bei den Akzenten ^ ` ', stattdessen: `
: alt-shift a,e,i,o,u
: alt-Ctrl a,e,i,o,u
: alt-Ctrl-Shift a,e,i,o,u
ALT-CTRL-RET f
hrt nicht gleich zum Reset, sondern bietet eine Auswahl an: '
ck: als w
re nichts geschehen ...
Break: Abbruch irgendwelcher Programme
Warmstart: schnelles Hochfahren des Rechners bei
Programm-Absturz oder zum
ndern von
Treiber/TSR-Konfigurationen
Debug: falls auf INT3 ein Debugger installiert ist
Reset: Normaler Reset
Zum Warmstart braucht kgas den speziellen Warmstart-Treiber wboot.sys. Dennoch klappt der Warmstart bei Vorhandensein von manchen Treibern und TSRs nicht, wenn diese mehr als die normalen Interrupt-Vektoren verbiegen und diese Verbiegung nicht bei dem Warmstart-Interrupt 19h wieder aufheben.
Warmstart-Treiber
WBOOT h
ngt sich in den Warmstart-Interrupt 19h ein und sorgt daf
r, da
beim Warmstart alle Interrupts auf den Startwert zur
ckgesetzt werden. Dazu ist es unerl
lich, da
WBOOT.SYS als allererste Zeile in CONFIG.SYS eingetragen wird!
Real Mode
Das ist der auf 8088-Niveau eingeschr
nkte Betriebsmodus der x86-Prozessoren (1 MByte Adre
bereich). 286er beherrschen zus
tzlich den Protected Mode (16 MByte). Die Prozessoren vom 386 an aufw
rts k
nnen den Real-Mode im Protected Mode simulieren, das ist der sogenannte virtuelle
Modus.
Virtueller Modus
Diesen benutzen Windows, OS/2 oder NT in den DOS-Boxen. Sie simulieren damit einen Real
Modus. Alle Interrupts und Exceptions gelangen erst (unsichtbar) zum virtuellen Monitor, der sie dann normalerweise an die Behandlungsroutine im DOS-Bereich weiterreicht. Das verz
gert die Interrupt-Behandlung nat
rlich zum Teil erheblich. Im virtuellen Modus mu
die logische Adresse nicht gleich der physikalischen sein, eine im Prozessor integrierte Paging-Unit setzt die logischen Adressen mit Hilfe eines Page-Directory in physikalische um. Zus
tzlich lassen sich im virtuellen Modus alle I/O-Operationen
berwachen. q
Memory-Manager wie QEMM, MAX und EMM386 machen ebenfalls von den Paging-M
glichkeiten in diesem Modus Gebrauch. i
Aus all diesen Gr
nden ist der virtuelle Modus f
r exakte Zeitmessungen im PC-System v
llig ungeeignet!
Memory Control Bl
cke (DOS)
Listet
hnlich wie der DOS-Befehl mem /debug die Memory-Control-Bl
cke auf, ist aber etwas
bersichtlicher geordnet und gibt ein paar Zusatzinformationen aus (Anzahl der Stacks, Buffer, FCBs ..., Treibernamen, -Attribute etc).
(nicht in c't ver
ffentlicht)
Name : ctMCB.EXE
DOS : Ab DOS 3.3
Proz : Ab PC (8088)
Parameter: keine
Prozessor-Erkennung
Beschr
nkt sich auf die softwarem
ige Erkennung von Intel-Cyxrix-IBM-Prozessoren, bestimmt die Queue-L
nge, testet auf bestimmte Bugs
lterer Masken: POPAD, REP INSB, Stringtest beim 386, CMXCHG beim 486er. Gibt ID-String bei 486 SL enhanced und Pentium aus. Versucht auf Wunsch, die interne Prozessor-Maske nach einem Reset zu ermitteln (das geht allerdings nicht immer, f
hrt zuweilen gar zu einem Absturz!). ;
Auf zwei Wegen versucht cterkenn, die Maske zu ermitteln.
Methode A: Der "offizielle" Weg
ber den sogenannten Shut-Down ben
tigt die Mithilfe des BIOS, da das den Wert des EDX-Registers bis zum Aufruf der eingetragenen Reset-Routine nicht ver
ndern darf. Das Programm pr
ft daher zun
chst, ob beim Shut-Down das EDX-Register erhalten bleibt.
Methode B: Ein geheimer, allerdings riskanter Weg f
ngt die CPU unmittelbar nach Reset
ber einen Unkown-Opcode-Interrupt 06h ab. Auch das klappt nicht immer, manchmal bleibt die Tastatur "abgeh
ngt", schlimmstenfalls st
rzt der Rechner ab. $
Genauere CPU-Analyse => Cachemess Z
Name :cterkenn.exe
DOS :ab 3.x
Proz :ab 8088
Mode : m
glichst Real Mode
Parameter: H
n = kein Reset
a = absturzgef
hrdete Reset-Variante
Liefert folgende Errorlevel: o
0: 8088/80188
1: 8086/80186
2: 80286
3: 386
4: 486
5: Pentium
$80: V20
$81: V30
$FF: >= 386 virtuell
CPU/Cache/Speicher-Analyse
(Erweiterte Fassung des Programms aus c't 1/93): &
Cache dekaschiert
c't 1/93, S. 208
Das Messprogramm CMESS analysiert CPU, Cache und Hauptspeicher, in dem es das Timing der verschiedenen Zugriffsarten ausstoppt. Standardm
ig wird ein MOVSB-Zugriff verwendet, die neue Version gestattet es jedoch, auch 16- oder 32bittige Zugriffe, sowie getrennt Schreib- und Lesezugriffe abzustoppen. Au
erdem kann man die Geschwindigkeit der Transfers zum Video-Speicher messen.
Genaueres unter Details
CPU/Cache/Speicher-Analyse
Urspr
ngliche Aufgabe von CMESS war es, bei Write-Back-Caches das Vorhandensein oder Fehlen des sogenannten Dirty-Tags zu ermitteln. Die Rechner laufen auch ohne dieses zus
tzliche SRAM, aber langsamer (insbesondere unter OS/2, NT, Linux, NextStep ..). o
Daneben eignet sich CMESS hervorragend, um die Performance des Datenflusses der CPU/Cache/Hauptspeicher-Implementation zu bestimmen. CMESS schl
sselt auf, ob Cache
Hits oder Cache
Misses, Dirty- oder Clean-Zugriffe vorliegen und bestimmt mit einer durch Simulation gewonnenen Gewichtung einen Mittelwert f
r typische DOS- (640 KB) und Windows-Anwendungen (4 MByte).
r die Schreibzugriffe ben
tigt CMESS sehr viel Heap (2*L1-Cachesize + 1* L2-CacheSize). 486er mit externem L2-Cache von 512 KB brauchen daher einen Heap von 528 KB. Diese lassen sich somit nicht aus dieser Turbo-Vison-Shell heraus aufrufen, sondern nur auf der Kommando-Ebene und auch nur dann, wenn keine gr
eren Treiber (au
er ggf. HIMEM.SYS) und TSRs eingebunden sind und DOS (ab Version 5.0) in der HMA weilt. +
!! Voraussetzungen und Einschr
nkungen !!
Caches nur bis max. 512 KByte
L2-Cache mu
direct mapped sein
Interner Cache (486er, Pentium) mu
eingeschaltet sein
keine aktiven Watchdog-Timer und SMM-Interrrupts
Zur Messung ist der unbedingt der Real-Mode n
tig! DOS-Boxen von Windows, OS/2, NT fallen daher aus, ebenso Memory Manager
la Qemm, Max und EMM386 w
Defaultm
ig stoppt CMESS den Transfer-Befehl REP MOVSB aus, der derzeit immer noch mit am h
ufigsten gebraucht wird. .
ffentlicht in Version 1.0 in c't 1/93) o
Name : ctCM.exe
DOS : ab DOS 3.x
Proz : ab 386SX
Parameter: [Transfertyp][Timer][Cachegr
Transfertyp:
MOVSB (Default),
MOVSW
MOVSD
STOSB
STOSW
STOSD
LODSB
LODSW
LODSD
Timer: T0 (Default) System-Timer 0
T1 Refresh-Timer 1 - ist exakter,
kann aber zu Parity-Problemem f
!!! nicht f
r PS/2 !!!
T2 Timer 2
Cachegr
L1=xxx in KB,
bersteuert die ermittelte L1-Cachegr
L2=xxx in KB,
bersteuert die ermittelte L2-Cachegr
VideoTransfer:
Vid Mi
t Transfers von und zum Videospeicher
(Default Videomodus = $13);
Vid=xxx Mi
t im Videomodus xxx (dezimal) oder $XXX
(hexadezimal)
=> Cache
Topic-Sammlung rund um den Cache: Assoziativer
Cache **** Direct
Mapped
Cache #
**** Write
Back **** WriteThrough
**** L1Cache **** L2Cache
**** Cache
Line **** Index ,
**** Cache-Bereich **** Non
Cacheable
Area +
**** Cache
Miss **** Cache
Hit '
**** Cache
Write
Hit ****Write
**** Write
Clean **** Write
Dirty
**** Burst **** Castoff
**** Koh
renz
**** Dirty **** Clean
**** Interleave **** PageMode !
**** WriteBuffer **** PostWrite
**** Tag-RAM **** Valid
Assoziativer Cache
Eine aufwendige Cache-Verwaltung, die zu jeder
Index-Adresse mehrere Eintr
ge gestattet (zweifach,
vierfach ... voll assoziativ). Dadurch wird das Risiko des
rchteten Trashing erheblich kleiner. Man ben
tigt aber zwei,
vier ... jede Menge Komparatoren, die alle gleichzeitig aktiv sein
ssen. Nicht voll assoziative Caches m
ssen sich au
erdem die
zeitliche Reihenfolge der Eintr
ge merken, damit bei
llung
immer der
lteste rausgeworfen wird (LRU-Algorithmus: Least
Recently Used). Der 486 verf
ber einen
Vierfach-Assoziativ-Cache von 8-KByte.
=> Cache
Burst
Optimale Performance erreicht der 486er bei einem Cache
miss, wenn er eine komplette Cache
Line (vier DWords) in einem Schwung (Burst) einliest. Am schnellsten ist der 2-1-1-1-Burst, der f
r das erste Byte zwei CPU-Takte und f
r die drei folgenden nur noch je einen Takt ben
tigt.
=> Cache
Cache Line
Die Verwaltungseinheit eines Caches. Beim 486 besteht sie aus 4 DWords (also 16 Byte). Jede Cache-Line ben
tigt daneben einen Eintrag im Tag-RAM. Second-Level-Caches haben im Regelfall ebenfalls eine Cache-Line von 4 DWords.
=> Cache
Cache-Bereich
Die meisten Second-Level-Caches geizen mit Adre
bits f
r Tag-RAMs und Komparatoren, so da
sie nur einen Teil des 4-GB-Adre
raums des 486 cachen k
nnen (der 486 selbst cacht alles).
=> Cache
Cache Read Miss
Das angeforderte Datum steht nicht im Cache und mu
vom Hauptspeicher nachgeladen werden. Dabei ist eine andere Cacheline durch die neue zu ersetzen. Bei Write-Backe-Caches mu
die zu ersetzende Cacheline zuvor per Castoff zum Hauptspeicher zur
ckgeschrieben werden, wenn sie als dirty markiert ist.
=> Cache ]
**** Read
Hit **** Write
**** Write
Clean **** Write
Dirty
**** Write
Cache Read Hit
Das angeforderte Datum steht bereits im Cache. Beim First-Level-Cache vermag die CPU darauf genauso schnell zuzugreifen wie auf auf die internen Register. Beim Second-Level-Cache wird das Datum in der Regel per Burst fast waitstate-frei an die CPU und parallel an den 1st-Level-Cache geschickt.
=> Cache ^
**** Read
Miss **** Write
**** Write
Clean **** Write
Dirty
**** Write
Cache Write Hit
Die Adresse, auf die geschrieben werden soll, ist im Cache. Cache und Hauptspeicher m
ssen beide (gleichzeitig) aktualisiert werden. Ein Write
Cache setzt zus
tzlich das Dirty-Bit.
=> Cache \
**** Read
Miss **** Read
**** Write
Clean **** Write
Dirty
**** Write
Cache Write Hit Clean
Betrifft nur Write
Caches. Die betroffene Adresse ist gecacht und noch unver
ndert, also nicht dirty. Dieser Zugriff dauert manchmal einen Takt l
nger, da nicht nur das Datum im Cache abgespeichert, sondern auch noch das Dirty-Bit gesetzt werden mu
=> Cache X
**** Read
Miss **** Read
**** Write
**** Write
Dirty
**** Write
Cache Write Hit Dirty
Betrifft nur Write
Caches. Die betroffene Adresse ist gecacht, aber bereits dirty. Der Cache-Controller braucht nur das Datum im Cache abzuspeichern.
=> Cache X
**** Read
Miss **** Read
**** Write
**** Write
Clean
**** Write
Cache Write Miss
Dieser Zugriff geht im Regelfall v
llig am Cache vorbei direkt auf den Hauptspeicher.
=> Cache ]
**** Read
Miss **** Read
**** Write
**** Write
Clean
**** Write
Dirty
Castoff
Auch beim Write
Back m
ssen irgendwann Daten zum Hauptspeicher zur
ckgeschrieben werden, wenn der Cache den Eintrag f
r ein neues Datum ben
tigt ("Castoff"). Ein spezieller Castoff-Buffer, der eine ganze Cache-Line aufnimmt, kann hierbei viel Zeit sparen.
=> Cache
Daten-Koh
Der wichtigste Job des Cache-Controllers: alle beteiligten Prozessoren und Bus-Master m
ssen mit
bereinstimmenden aktuellen Daten arbeiten. Bei gr
eren Multiprozessor-Systemen wird dieses durch aufwendige Daten-Konsistenz-Protokolle (M.E.S.I.) erreicht.
=> Cache
Direct Mapped Cache
Eine einfache Cache-Verwaltung; Nur ein Komparator ist n
tig, um den Eintrag im Tag-RAM an der Index-Adresse mit dem Rest der Zugriffsadresse ("die Map-Adresse") zu vergleichen. Der Nachteil ist, da
er f
r jede Index-Adresse nur einen einzigen Eintrag erlaubt und so Trashing leicht m
glich wird.
=> Cache
Dirty- oder auch Alter-Bit
Bei Write
Back mu
sich der Cache-Controller merken, welche gecachten Daten im Cache eventuell nicht mit den zugeh
rigen im Hauptspeicher
bereinstimmen, da zwischenzeitlich auf die Adresse geschrieben wurde (ein Vergleich auf wirkliche
nderung findet in aller Regel nicht statt). Ungl
cklich ist, da
zumeist nur ein Dirty-Bit f
r eine ganze Cache-Line gesetzt wird. Beim Castoff m
ssen dann alle vier DWords zur
ckgeschrieben werden, selbst wenn sich nur ein Byte ge
ndert hat. Gegenteil zu Dirty ist Clean.
=> Cache
Clean
Betrifft nur Write
Caches. Wenn auf eine Cacheline noch nicht geschrieben wurde, ist diese "sauber". Sie darf dann einfach ersetzt werden, ohne da
der Cache-Controller sie wie bei Dirty mit einem zeitaufwendigen Castoff zur
ckschreiben mu
=> Cache
First-Level-Cache
Das ist beim 486er der interne Cache des Prozessors, der mit dem externen Second-Level-Cache korrespondiert.
=> Cache L2Cache
Index-Adresse
Der Teil der Zugriffsadresse, der direkt das Tag-RAM adressiert. Bei 64 KB Cache mit einer Cache-Line von 4 DWords sind das die Adre
bits A15 ... A4.
=> Cache
Interleave
Eine Technik, SRAMs oder DRAMs verschachtelt im Adre
raum anzulegen. Dadurch erreicht man bei adre
ig aufeinanderfolgenden Zugriffen (was ja bei Bursts und Opcode-Fetches die Regel ist) einen deutlich schnelleren Zugriff beziehungsweise kann langsamere RAMs einsetzen. Die Verschachtelung kann dword-weise (etwa SiS-Chipsatz) aber auch page-weise (C&T) erfolgen.
=> Cache
Non-Cacheable-Areas
Bestimmte Speicherbereiche mu
man vom Cachen ausnehmen, insbesondere Kommunikationsbereiche wie Dual-Ported-RAMs, memory Mapped I/O (XGAs), Coprozessoren und so weiter.
=> Cache
Page Mode
Der Zugriff auf Daten, die innerhalb einer DRAM-Page liegen (je nach DRAM zwischen 256 Byte und 2 KByte) ist beim Page-Mode (mit CAS only) gut doppelt so schnell wie beim klassischen RAS/CAS-Zugriff. Daf
r dauern aber Page-Wechsel etwas l
nger.
=> Cache
Posted Write Cache
Ein Cache mit Write-Buffern.
=> Cache
Second-Level-Cache
Auch L2-Cache genannt. Ein zweiter Cache zwischen dem kleineren, aber schnelleren First-Level-Cache, und dem gr
ern, aber noch langsameren Hauptspeicher. Er mu
r sorgen, da
der L1-Cache immer komplett im ihm abgebildet ist ("Consistency by Inclusion").
=> Cache L1Cache
Tag-RAM
Sehr schnelles und teures SRAM, in dem der Cache-Controller die Adressen der gecachten Daten vermerkt, sowie gegebenfalls einige Attribute: Dirty bei Write
Thru, oder auch Valid-Bits oder LRU-Bits bei assoziativen
Caches.
=> Cache
Trashing
Eigentlich korrekt Thrashing (zwischen zwei Zust
nden hin- und herh
pfen). Bei uns hat sich durch durch ein naheliegendes Mi
verst
ndnis inzwischen Trashing (Entm
llen) eingeb
rgert.
Es ist das zweitschlimmste (nach der Daten-Inkoh
renz), was einem Cache passieren kann. Bei ungl
cklichen Adre
lagen schmei
en sich aufeinanderfolgende Zugriffe immer wieder gegenseitig aus dem Cache, was viel Zeit kostet. Assoziative
Caches verringern dieses Risiko insbesondere bei kleinen Caches erheblich; ab etwa 64 KByte ist aber auch bei Direct
Mapped
Caches das Risiko schon recht klein. Trashing kann auch beim Page-Mode der DRAMs auftreten (dauernde Page-Wechsel). Hier verringert Interleave das Risiko.
=> Cache
Valid-Bit
Manche Caches (etwa der 1th-Level des 486) merken sich zu jeder Adresse in einem Bit, ob diese g
ltig ist oder nicht. Der Vorteil ist, da
man dann den Cache sehr leicht ein- oder auschalten kann. Die meisten Second-Level-Caches verzichten auf das "teure" Valid-Bit und m
ssen dann beim Einschalten des Caches durch aufwendige F
llroutinen daf
r sorgen, da
der Cache nur g
ltige Eintr
ge enth
lt. Write-Back-Caches m
ssen ferner beim Abschalten des Caches alle Dirty-Eintr
ge zur
ckschreiben.
=> Cache
Write Thru/Through
Jedes geschriebene Datum gelangt sofort oder gepuffert
ber einen oder mehrere Write-Buffer an den Hauptspeicher. Bei einem Cache
Write
hit wird parallel dazu der Cache-Eintrag aktualisiert. Diese Methode benutzt der 486 selbst, der mit vier Write-Buffern (4:x DWord) ausger
stet ist.
=> Cache
Write Back /Write Copy
Ein Write-Back-Cache speichert auch Schreibzugriffe zwischen, aber gemeinhin nur dann, wenn sich das Datum im Cache befindet. Demgegen
ber beschr
nkt sich ein Write-Through-Cache allein auf Lesezugriffe. Z
Allerdings mu
ein Write-Back-Cache bei jedem Lesen eines Datums, welches er nicht im Cache hat, pr
fen, ob er die vom neuen Datum verdr
ngte Cacheline noch zum Hauptspeicher zur
ckschreiben mu
. Das ist dann der Fall, wenn diese zuvor ver
ndert wurde, sie also dirty, "schmutzig" ist. Der Cache-Controller vermerkt einen Schreibvorgang auf das Datum im Dirty- oder Alter-SRAM. Leider sparen sich viele Board-Hersteller und OEMs dieses RAM, so da
der Cache mit Dauer-Dirty arbeitet. Er schreibt dann bei >jedem< Lesen aus dem Hauptspeicher zuvor die komplette Cacheline zur
ck, was viel Zeit kostet. `
Ein Cache
Write
Miss wird im Regelfall direkt auf den Hauptspeicher gef
hrt und nicht gecacht.
=> Cache
Write Buffer
Nehmen das zu schreibende Datum auf und schreiben es erst "bei Gelegenheit", wenn der Bus frei ist, zur
ck. Wenn die Schreibvorg
nge nicht zu schnell aufeinanderfolgen, k
nnen sie aus CPU-Sicht daher waitstate-frei erfolgen. Der 486 hat gleich vier solcher Buffer.
Rechenbeispiel
REP MOVSB bedeutet bei einem 486er mit 2-1-1-1-Burst bei L1-Cache-miss/L2-Cache-hit bei Read und L1-Cache-miss/L2-Cache-Hit bei Write (mhx-mhx)
1x 32bittig Lesen 1. Word 2T
2x 32bittig Lesen 2.-4. Word 1+1+1T
16x 8bittig Lesen 16 Bytes 16*2
----
37T
Speicher-Timing
(bislang nicht in c't ver
ffentlicht) R
Analysiert den gesamten im CMOS-RAM eingetragenen Speicherbereich bis maximal 4 GByte. Ermittelt 8-, 16- oder 32-Bit-Zugriff, RAM, ROM oder freie Bereiche und mi
t die Lesegeschwindigkeit (16- und 32bittig). Daraus l
t sich auf ungecachte Bereiche schlie
en, da dort die Lesegeschwindigkeit deutlich niedriger ist als in den gecachten.
!!! Achtung, benutzt gesch
tzte Befehle !!!
!!! Adre
bereich 0..4 GigaByte !!!
!!! Prozessor > 386SX !!!
!!! Real-Mode mu
sein !!!
!!! funktioniert nicht bei IBM 486SLC/DLC !!!
Name :ctmem.exe
DOS :ab 3.x
Proz :>=386SX
Mode :Real mode
Parameter :keine
Zugriffskurve
(bislang nicht in c't ver
ffentlicht)
Die ber
hmte "Cachekurve" von c't. Sie zeigt den Zeitbedarf f
r einen zuf
lligen Lesezugriff (Wordweise, aligned) innerhalb eines vorgegebenen Adre
bereichs. Damit f
hrt man sozusagen die Cache- und Speicher-Charakteristiken ab, Cachegr
en und deren Performance zeichnen sich klar ab. Der Pentium kommt bei dieser Programmversion innerhalb seines Daten-Caches (8 KB) sogar auf 0 ns, was in der Parallel-Struktur seiner beiden Pipes begr
Das Schwierigkeit beim dem Zugriffs-Programm lagen vor allem darin, einen zuverl
ssigen Zufallsgenerator zu finden, der U
1. so wenig Code braucht, da
er m
glichst wenig durch Thrashing die Messung st
rt, F
2. immer die gleiche Ausf
hrungszeit (auf den Takt genau!) ben
tigt, &
3. so schnell wie irgend m
glich ist 5
4. und dennoch mathematisch ohne Wenn und Aber ....
Bei einem 386er mit einer Cacheline Size von 4 Byte strebt die Zugriffzeit im Cachebereich gegen (2+w)-Takte mit (w= Cache Read Waits) 6
Bei einem 486er zeichnen sich dann drei Bereiche ab: w
0..8 KByte: Zugriff innerhalb des L1-Caches (L1-Hit)
ben
tigt 1 Takt => Zugriffszeit= 1/Prozessortakt
8..32/512KB: Zugriff innerhalb des L2-Caches
mit L1-Miss, L2-Hit
ben
tigt n+x+x+x-2 Takte bei einem n-x-x-x-Burst
n=2-1-1-1 DX => 3/Prozessortakt
n=3-1-1-1 DX => 4/Prozessortakt
n=3-2-2-2 DX => 7/Prozessortakt
n=4-2-2-2 DX/2 => 8/Prozessortakt
n=6-2-2-2 DX/2 => 10/Prozessortakt
n=6-4-4-4 DX/2 => 16/Prozessortakt
=> Zugriffzeit als Grenzwert der Kurve
> Cachegrenze:
Cache-Miss-Zugriffe mit folgenden Bedingungen
Pagemiss
No Dirty (falls Write-Back mit Dirty-SRAM)
Dirty (falls Write-Back ohne Dirty-SRTAM)
Speicher-Test
ft die Qualit
t der dynamischen RAMs. 6
Erweiterte Fassung des Programms aus c't 7/88 S. 162 y
!!! Achtung, benutzt gesch
tzte Befehle !!!
!!! Adre
bereich 0..4 GigaByte !!!
!!! Prozessor > 386SX !!!
!!! Real-Mode mu
sein !!!
!!! funktioniert nicht bei IBM 486SLC/DLC !!!
!!! Neuboot nach dem Test !!!
!!! Kann bis zu mehrere Stunden dauern !!!
!!! Caches m
glichst abschalten !!!
Das Programm l
t sich durch Dr
cken der ESC-Taste stoppen.
Caches (insbesondere Write-Back-Caches) k
nnen zu Fehlinterpretationen f
hren. Man sollte sie zuvor im ROM-Setup abschalten. Bei 486er reicht es aus, nur den externen Cache abzuschalten.
Anders als "herk
mmliche" Diagnose-Programme verzichtet das Programm darauf, massenhaft irgendwelche Speichermuster und -Adressen zu
berpr
fen (ein Spiel, f
r das man eh Aber-Trilliarden von verschiedenen Muster/Adre
-Kombinationen ben
tigte). Vielmehr beschr
nkt es sich auf drei Speichermuster. Daf
r testet es, bis zu welcher Refresh-Rate die DRAMs noch stabil arbeiten, und zeigt die ersten Ausrei
er dann an. Auf diese Art lassen sich auch die Parity-DRAMs testen. Es braucht daf
r aber auch schon bis zu ein paar Stunden. %
Es beginnt mit dem Refreshwert 16 (in Timer-Ticks), wie er standardm
ig in PCs eingestellt ist (genauer gesagt: 18 => 15
s) und durchl
uft dann den gesamten Speicherbereich. Dann verdoppelt es jeweils solange den Refreshwert (= Halbierung der Refreshrate) bis die ersten Fehler auftauchen. >
ffentlicht f
r Adre
bereich von 0..1 MByte in c't 7/88) i
Name : ctRamtst.exe
DOS : ab DOS 2.x
Proz : ab 386SX
Modus : Real
Parameter: keine
CPU/Memory
Eine Sammlung von CPU- und Speicheranalysen, Tests und Timings
FPU
Programme rund um den Coprozessor
Ports
Programme, die sich mit der Port-Belegung auseinandersetzen.
Portmap
Dieses Programm versucht, die Portbelegung samt eventueller Spiegelungen zu erkennen. Von gewissen Ports darf allerdings nicht gelesen werden, wenn man keine Fehlfunktion provozieren m
chte (etwa Floppy- oder NE2000-Datenports). F
r die Peripherie ab Portadresse $100 wertet Portmap eine Port-Informations-Datei "PORT.PRT" aus, in der mit
EXCLUDE von-bis
bereiche ausgeklammert werden k
nnen. Rufen Sie den Men
punkt AUSWAHL auf, um die Datei PORT.PRT zu editieren. ^
Es ist m
glich, das EXCLUDE von der Existenz (<>$FF) anderer Ports abh
ngig zu machen, z.B: $
EXCLUDE 0350h-0353h IF 0340-0343h
schlie
t die Ports 350h bis 353h nur dann aus, wenn sich auf 340h bis 343h etwas <> $FF befindet (wahrscheinlich ein NE2000-Netzwerkkarte).
!!! Warnung !!!
Bei Netzwerkkarten anderen Typs k
nnen schwerwiegende St
rungen
auftreten. Bitte klammern Sie deren Adre
bereich aus oder rufen Sie
das Portmap-Programm nur auf, wenn Sie NICHT eingeloggt sind.
Name : ctPorts.exe
DOS : ab DOS 2.x
Proz : ab 8088
Modus : Real, virtuell
Parameter: D : Zeigt die Port-Inhalte an
Serielle Schnittstellen
Sucht und identifiziert die COM-Schnittstellen sowie die IRQ-Zuordnung.
Name : ctSIOMap.exe
DOS : ab DOS 2.x
Proz : ab 8088
Modus : Real, virtuell
Parameter: n ohne IRQ-Zuordnung
sonst mit IRQ-Zuordnung
Test serieller Schnittstellen
(Programm aus c't 3/89) l
Schnittsalat abger
C-Utiliy testet seriellen Port am PC
Programm, PCDOS/MSDOS
c't 3/89, S. 160
Testet die serielle Schnittstellen. Ben
tigt f
r einen vollst
ndigen Test einen Teststecker.
Name : ctSIO.exe
DOS : ab DOS 2.x
Proz : ab 8088
Modus : Real, virtuell
Parameter: n ohne IRQ-Zuordnung
sonst mit IRQ-Zuordnung
parallele Schnittstellen
Sucht die Druckerschnittstellen, testet auf Bidirektionalit
t. Gibt dazu ein Zeichen an dem Druckerport aus. o
Name : ctPIO.exe
DOS : ab DOS 2.x
Proz : ab 8088
Modus : Real, virtuell
Parameter: keine
Info
ber ATBus-Platten
Programm aus c't 11/91: }
Platten-Auslese
Konfiguration von AT-Bus-Platten lesen
Know-how, PCDOS/MSDOS, Massenspeicher, IDE
c't 11/91, S. 192
Liest die Parameter angeschlossener ATBUS (IDE-)Platten aus, mi
t die I/O-Rate
ber den 16-Bit-Bus (REP INSW). Gegebenenfalls l
t sich die I/O-Rate durch den Setup-Wert "IO-Recovery-Time" oder "Back to Back IO" deutlich verbessern. U
Name : ctAtbus.exe
DOS : ab DOS 2.x
Proz : ab 8088
Modus : Real
Info
ber SCSI-Platten
(nach c't 12/93) Y
Liest die Parameter angeschlossener SCSI-Devices aus. Ben
tigt dazu ein ASPI-Interface. p
Name : ctSCSI.exe
DOS : ab DOS 3.x
Proz : ab 8088
Modus : Real, virtuell
Parameter: keine
FestplattenBenchmark
(Festplattenbenchmark nach c't 5/92).
HDBench erzeugt eine 6,4 MByte gro
e Datei, die unfragmentiert (!) sein sollte. Sorgen Sie also zuvor daf
r (etwa mit Nortons Speed-Disk), da
die Platte aufger
umt ist. F
r ganz exakte Messungen sollte man eine frisch formatierte Partition verwenden. Wenn Sie nicht die Qualit
t von SMARTDRV oder anderer Plattencache-Programme, sondern die Platte selbst testen wollen, m
ssen sie zuvor den Cache abschalten (bei SMARTDRV etwa durch -C f
r Laufwerk C:.
Name : ctHDBen.exe
DOS : ab DOS 3.3
Proz : ab 8088
Modus : Real
Parameter: g datname g: mit Grafik, datname f
r die Daten
Festplatten-Transfer
(unver
ffentlicht) G
t bei IDE- bzw ATBUS-Platten die reine Bus-Tranferrate (REP-INSW). F
Stoppt f
e beliebige Platten (MFM, SCSI, IDE) zwei Zugriffstypen ab:
- 128 Sektoren ab dem gleichen Startzylinder (
hnlich Coretest)
- 128 Sektoren bei wachsendem Startzylinder (
hnlich Norton SI)
Name : ctcore.exe
DOS : ab DOS 3.3
Proz : ab 8088
Modus : Real
Parameter: -
VGA-Timing
Messung der VGA-Frequenz (nur exakt im Real
Mode)
Das Programm VTIM2CT ist eine
berarbeitete Fassung des Programmes VTIMING (Martin Gerdes, Flimmerkiste, Messung der VGA-Bildablenkfrequenz per Software, c't 7/91, S. 188 ff.).
!!! Achtung, Warnung !!! !
VTIM2CT ist gleichzeitig ein Tool, mit dem man jede beliebig hohe Aufl
sung einer Grafikkarte aktivieren kann, ohne da
irgendwelche Karten-/Monitor-Setups es verhindern, die Leistungsgrenzen des Monitors zu
berschreiten. Das hei
t: auch ein ganz normaler VGA-Monitor (maximal 31,5 kHz Zeilenfrequenz) kann mit 50 oder 60 kHz Zeilenfrequenz beaufschlagt werden. Viele
ltere Monitore k
nnen dadurch ernsthaft besch
digt werden. Wenn Ihr Monitor daher nicht synchronisiert oder quietschende Ger
usche von sich gibt, schalten Sie ihn sofort ab!
Sie k
nnen Ihre Messungen auch am abgeschalteten Monitor vornehmen, indem Sie die Ergebnisse in eine Datei umleiten, also etwa
VTIM2CT > test
(in der Kommando-Ebene) 3
!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!! K
Die wesentlichen
nderungen gegen
ber der ver
ffentlichten Fassung sind: $
- Ausgabe auch der Zeilenfrequenz
- Ausgabe auch der Pixel-Takt-Frequenz
- Modus-Umschaltung nach VESA (vierstellig hex), Video/7-Spea und
IBM-VGA (gilt auch f
r Modi jenseits 13h).
- Erh
hung der Me
genauigkeit
Genaueres siehe auch Details r
Name : ctvtim2.exe
DOS : ab DOS 3.3
Proz : ab 8088
Modus : Real
Parameter: werden abgefragt
VGA-Timing Details
Bei der neuen Version wurde daf
r gesorgt, da
das Programm standardm
ig nach der Messung und damit vor seinen Ausgaben (und im Fehlerfalle) in den Text-Modus 3 zur
ckschaltet. Das wurde n
tig, weil viele Grafikkarten in den hochaufl
senden Grafik- oder Beschleuniger-Modi keine BIOS-Unterst
tzung zur Ausgabe von Text mehr enthalten. Die Hersteller gehen (korrekterweise) davon aus, da
diese Modi in der Regel nur per Treiber aktiviert und dann im Vollgrafik-Betrieb angesteuert werden. In der Praxis hei
t das, der Schirm bleibt bei vielen Modi dunkel, und VTIM2CT schickt die Ausgaben seiner Me
werte per DOS/BIOS ins Nirwana. Man kann diese R
ckschaltung durch den Parameter N auf der Kommandozeile von VTIM2CT unterbinden, wenn man VTIM2CT eventuell nur zur Modus-Umschaltung benutzen will. Die normalerweise rund 3 Sekunden dauernde Messung l
t sich dazu auch jederzeit per Tastendruck abbrechen.
VTIM2CT kann trotz
berarbeitung keine Wunder vollbringen, so da
Sie mit Sicherheit gelegentlich auf echte Fehlmessungen sto
en werden. Daher sei hier kurz das benutzte Me
verfahren nebst seiner Einschr
nkungen beschrieben:
VTIM2CT mi
t lediglich die Bildwiederholrate und die Anzahl der sichtbaren Scan-Zeilen. (Scan-Zeilen sind die horizontalen "Linien", bei einer Aufl
sung von 800x600 sind also 600 sichtbare Scan-Zeilen zu erwarten).
Die Zeilenfrequenz wird unmittelbar aus der Bildwiederholrate durch Multiplikation mit der Summe aus sichtbaren und (zu Synchron-Zwecken) unsichtbaren Scan-Zeilen errechnet. Die Zeilenfrequenz ist zwar ein ABGELEITETER und kein direkt gemessener Wert, solange aber die Zahl der Gesamt-Scan-Zeilen (Variable "VTotal" im Listing) VGA-konform ermittelt werden kann, ist das so ermittelte Ergebnis verl
lich. Erst bei Aufl
sungen mit mehr als 1024 Scan-Zeilen sind Probleme zu erwarten.
Auf diesen Werten basiert auch die Messung der Frequenz des Pixel-Taktes. Hierzu wird vor allem die Anzahl der Pixel pro Scan-Zeile gebraucht, die aber leider nur umst
ndlich und leider - speziell in Super-VGA-Modi mit mehr als 8-Bit-Farbtiefe - nicht mehr verl
lich aus dem Horizontal-Total-Register extrahiert werden kann (siehe Listing). Dieser Wert mu
daher mit gewissem Argwohn betrachet werden.
Das Problem an der Sache ist, da
zu einer allgemeing
ltigen Messung nur Mittel benutzt werden k
nnen, die eine Standard-IBM-VGA-Karte bietet, deren h
glicherweise der Abbruch der Messung (aufgrund von Plausibilit
tstests) k
nnen daher auftreten, wenn n
- ein Interlaced-Modus aktiv ist, denn das l
t sich nur Chipsatz-spezifisch abfragen. Das Programm versucht hier, anhand hoher Bildwiederholraten (gr
er 85 Hz) und "verd
chtiger" Scan-Zeilenzahl (600/2, 768/2, 1024/2) auf Interlaced-Modus zu schlie
en. Hier l
t sich aber ein Modus mit 960 Zeilen zum Beispiel nicht mehr behandeln, weil die H
lfte davon (480) zu den Standardaufl
sungen z
hlt, die heute ohne weiteres mit mehr als 85 Hz dargestellt werden. Lediglich bei ET4000-Karten l
t sich anhand der mehr als doppelt so hohen Vtotal-Werte gegen
ber den sichtbaren Scan-Zeilen sicher auf Interlaced-Modus tippen.
- mehr als 1024 sichtbare Zeilen angezeigt werden (im Prinzip wird es sogar schon heikel, wenn bei genau 1024 sichtbaren Zeilen gemessen wird, denn das befragte Register, da
sichtbare und unsichtbare Zeilen zusammen enth
lt (Vtotal), kann nur 1024 Zeilen aufnehmen; meistens erscheint dann wenigstens der
berlauf in diesem Register. Das Programm ber
cksichtigt diesen Fall gesondert und erzielte auf den VGAs in der Redaktion bisher immer "Treffer".
- wenn Modi mit mehr als 256 Farben gemessen werden. Hier gibt es gro
e, Chipsatz- und DAC-spezifische Unterschiede, was die real benutzte und die am Ausgang wirksame Clock-Frequenz und die im Horizontal-Total-Register (HTot) vermerkte Pixel-Zahl betrifft. Einige S3-Karten etwa arbeiten im True-Color-Mode mit vierfach h
herer Taktfrequenz und takten je ein Byte (32 Bit) einzeln pro Taktzyklus an den Ausgang. Sie vermerken aber nur eine verdoppelte Taktfrequenz im HTot-Register und eine weitere Verdopplung in einem nicht mehr VGA-konform zug
nglichen Register. Das hei
t, VTIM2CT ermittelt die doppelte Taktfrequenz. Der Monitor "sieht" aber als Frequenz, mit der seine Pixeldaten angeliefert werden, nur ein Viertel des kartenintern benutzten Takts.
Nochmal ein Beispiel mit Zahlen: F
r den Modus 640 x 480 mit 32 Bit Farbtiefe (meist aber nur 24 davon signifikant) w
hlt das BIOS am Frequenzsynthesizer eine Taktfrequenz von 110 MHz aus. VTIM2CT w
rde diesen mit 55 MHz messen, und dem Monitor w
rde es so erscheinen, als ob das Signal mit 27,5 MHz angliefert w
rde. Letzterer Wert w
brigens auch der, von dem das Ablenktiming f
r Bild- und Zeilenfrequenz abgeleitet wird und erkl
rt, warum einige True-Colour-Karten so unergonomische Daten in diesen Modi liefern.
Das reale Timing h
ngt also zum einen davon ab, ob der Chipsatz seine Daten 8-, 16- oder 32bittig pro Taktzyklus zum DAC (Digital Analog Converter) liefern kann, aber ebenso auch davon, in welcher Busbreite der verwendete DAC die Daten entgegennehmen kann.
Faustregel: Wenn das Produkt aus Zeilenfrequenz und Anzahl der Pixel (die Sie ja von der gew
hlten Aufl
sung wissen) nebst einem Korrekturfaktor von etwa 1.1 nicht in die Gr
enordnung des angezeigten Pixeltaktes kommt, dann ist dem letzteren nicht zu trauen. Meistens werden sich Unterschiede um Faktor zwei oder vier ergeben. Die f
r den jeweiligen Modus benutzte Synthesizer-/Quarz-Frequenz kann man aber ohne weitere technische Daten leider nur mutma
en (oder mu
sie mit einem Frequenz-Messer hardwarem
ig ermitteln). 1
Ferner ist das Programm absolut untauglich, will man unter Windows (auch NT) oder OS/2 in der DOS-Box messen. Das Me
verfahren basiert nun mal darauf, da
das Programm ungehindert und kontinuierlich Zugang zu Hardware-Registern der VGA-Karte hat, was bei diesen Betriebssystemen nicht gew
hrleistet ist.
r Windows kann man sich aber behelfen: In der Regel ergeben sich f
r verschiedene Aufl
sungen (und vor allem f
r erh
hte Bildwiederholraten) auf dem Monitor Lageabweichungen des Bildes. (Wer einen Monitor mit individuell speicherbarer Bildgeomtrie f
r jede Aufl
sung hat, sollte hier w
hrend der Messungen besser keine Korrekturen vornehmen, damit die Unterschiede erhalten bleiben.) Wenn Sie also unter DOS in einem speziellen Modus messen und sicher sein wollen, da
der Windows-Treiber auch dieselbe hohe Bildwiederholfrequenz benutzt, so achten Sie einfach darauf, da
sich das Bild in exakt derselben Weise wie unter DOS verlagert (beziehungsweise manchmal auch verkleinert).
BIOS-Info
Wertet die Konfigurationsdaten aus: ;
INT 15h Fnk. C0
INT 15h Fnk. C2
INT 33h Fnk 20 (Maus)
bei AMI-Hiflex-BIOS zus
tzlich die Konfigurations-Strings.
Chips
tze auslesen und konfigurieren
Chipset gibt Ihnen die interne Konfiguration der am meisten verbreiteten Chips
tze aus. Dazu ben
tigt es f
r jeden Chipsatz eine Konfigurationsdatei (.CFG), die Sie bei Programmstart angeben m
ssen. Konfigurationsdateien f
r etliche Chips
tze sind bereits in diversen c't-Karteien (c't 3, 4, 6, 7, 8/93) ver
ffentlicht worden. Hinzugekommen sind hier noch folgende Chipsatz-Dateien: 8
Shasta von Headland
Opti-Pentium
IBM-Blue-Lightning
Das Programm ist gegen
ber der Ver
ffentlichung in c't 3/93 um zwei Punkte erweitert worden: F
- die Ports k
nnen 16 oder 32-bittig sein (n
tig etwa f
r SiS-EISA)
- Man kann nun auch Chips
tze beschreiben (Eingabe: H + Wert in
hex).
!!! Achtung, Warnung !!! 5
Diverse
nderung sind gar nicht (etwa DRAM-Konstellation) oder nicht im Normalbetrieb (etwa
nderungen an der Cachestrategie) erlaubt, sonst ABSTURZ. Andere (wie DRAM-Timing, Waits etc.) h
ngen davon ab, ob das Board mit den neuen Werten noch mitspielt, sonst auch hier: ABSTURZ oder SPEICHERPARIT
Modi : Real / Virtuell unter Windows, nicht aber OS/2 oder NT
Parameter: CHIPZ [Konfig] [/index [wert]]
Konfig: Name der Konfigurationsdatei mit Extension .CFG
(Alternativ kann man auch mit Set Chipset=Konfig den
Namen vorgeben)
/index: CHIPZ zeigt nur das Register mit dem Index an,
bei 16 oder 32bittigen Indizes mu
man das entsprechende
Byte zus
tzlich angeben:
index:0 (default) Bit 0..7
index:1 Bit 8..15
index:2 Bit 16..23
index:3 Bit 24..31
wert: schreibt den Wert ins indizierte Register.
PCI-Info
!!! Achtung, Warnung !!!
CTPCI l
uft nur auf PCI-Rechnern. Auf ISA-, EISA-, MCA- oder VL-Boards k
nnen unvorhergesehene Dinge passieren. Wenn Ihnen Ihr Rechner lieb ist, starten Sie CTPCI besser nicht auf Rechnern mit anderen Bussystemen.
Das Programm CTPCI stellt fest, welche PCI-Devices in einem Rechner enthalten sind und gibt deren Bezeichnung und Revisionsstand aus. Bei unbekannten Devices liefert CTPCI die Vendor- und Device-ID nebst Revisionsnummer. Wer einen PCI-Rechner mit Intels Saturn- oder Mercury-Chipsatz besitzt, kann mit CTPCI die Einstellung des Chipsatzes
berpr
fen. Derzeit erkennt das Programm, ob und welche Posting-Modi aktiviert sind und ob das Board Burstmode unterst
tzt.
Mit Hilfe von Kommandozeilenparametern lassen sich explizit Posting und Burst aktivieren. Die Einstellungen werden nicht im CMOS-ROM gespeichert, so da
sie nach jedem Booten neu gesetzt werden m
ssen.
Name : ctPCI.EXE
DOS : ab 3.3
Proz : ab 386SX (aber mit PCI??)
Modus : Real, virtuell aber nicht unter NT, OS/2
Die Parameter sind:
+B aktiviert CPU to PCI Bursting
-B schaltet CPU to PCI Bursting ab
+P aktiviert alle Posting-Modi
-P schaltet alle Posting-Modi ab
+HMP aktiviert Host to Memory Posting
-HMP schaltet Host to Memory Posting ab
+HPP aktiviert Host to PCI Posting
-HPP schaltet Host to PCI Posting ab
+PMP aktiviert PCI to Memory Posting
-PMP schaltet PCI to Memory Posting ab
IO8=0..8 setzt IO-Recovery-Time f
r 8-Bit-IO-Befehle
auf 0..8 Bus-Clock
IO16=0..4 setzt IO-Recovery-Time f
r 16-Bit-IO-Befehle
auf 0..4 Bus-Clock. Wichtig f
r IDE-Festplatten.
Bustakt und DMA-Speed
!!! Achtung, nicht f
r PS/2 !!!
Das Programm basiert auf der DMA-Unit aus der c't-Bausteine-Serie c't 9/88, S. 186. Es mi
t die DMA-Tranferrate auf Kanal 0, ausgel
st durch den sogenannten Software-Request (siehe dort). Meist arbeitet der DMA-Controller genau mit dem halben Bustakt. Falls der DMA-Controller ungest
rt durch Waits arbeiten kann, kann man so auf den Bustakt schlie
en. Ansonsten gibt es einen Mindestwert an und errechnet daraus den Bustakt bei 1 oder 2 DMA-Waits. m
Name : ctbustkt.exe
DOS : ab DOS 3.3
Proz : ab 8088
Modus : Real
Parameter : keine
Segment & DMA-Overflow Test
(nach einem Programm aus der Bausteine-Serie in c't 9/88, S.180) c
Testet das Verhalten von DOS und BIOS in Overflow-Situationen bei Disk- und Harddisk-Operationen.
Aufruf check13 [disk]
mit disk = 0,1,2(=>80h) ,3(=81h) bzw A:(=0), B:(=1), C:(=81h)
Erfordert Diskette im jeweiligen Laufwerk zum Lesen.
Kaum zu glauben, da gibt es das DOS als Disk-Operating-System schon
ber 10 Jahre, mittlerweile als Version 6.2, und immer noch sind Fehler in seinem ureigensten Dienst zu finden, n
mlich dem Transfer zur Disk. Bereits in c't 9/88 hat c't auf b
se Ungereimtheiten hingewiesen, wenn zwei Overflows gleichzeitig auftreten, n
mlich Segment-Overflow (logische 64KB-Grenze) und DMA-Overflow (physikalische KB-Grenze). ]
DOS ab Version 3.3 f
ngt den Disk-Interrupt ab und versucht, aufgetretene Overflows bei ungl
cklichen Adre
lagen durch Umadressierung zu umgehen. Dummerweise f
hrt der Versuch bei gleichzeitigen Seg- und DMA-Overflow zu einem Chaos: Beginnt der Zielbereich etwa bei 2000:FF00, schreibt DOS dann zun
chst nach 2000:FFFF und dann ... nach 2000:0000!
Das Check13-Programm schaut sich genau an, was DOS (via INT13) und das BIOS (via INT 40 bzw. 7Fh) dabei f
r ein Unwesen treiben.
Festplatten arbeiten im Regel ohne DMA, so da
Doppel
ufe meist nicht vorkommen. Daf
r macht sich ein anderer
berlauf hier mit
hnlich schlechten Manieren zu schaffen: Segment-
berlauf bei Multisektor-Read. Etwa, wenn man 128-Sektoren im St
ck ab Adresse 2000:208 einliest. Windows 32-Bit-Festplattentreiber (V3.1) ist immerhin so freundlich, diesen Faux Pas zu vermeiden, und rechnet alle Adressen richig um .. vert
ddelt sich aber daf
r mit dem Carry-Flag bei Disketten-Operationen: er gibt Fehler 4 ohne Carry zur
Wer Adaptec f
hrt, ist fein raus: dessen BIOS/Treiber hat keine Probleme mit obigen
CTMON ist ein Programm zur Erzeugung von diversen (grafischen) Testbildern, die bei Monitortests auf dem c't-Pr
fstand Verwendung finden. e
Name :ctmon.exe
DOS :ab 3.3
Proz :ab 8088
Mode :Real, virtuell
Parameter werden abgefragt
Genaueres siehe Details
Testbild Details
Nachdem der Benutzer die Anzahl der darstellbaren Farben gew
hlt hat, versucht das Programm, einen (S)VGA-Grafikmodus mit 640 x 480 Pixeln Aufl
sung zu initialisieren.
Die aktuelle Aufl
sung kann
ber Dr
cken der Taste 'n' ver
ndert werden; umgeschaltet wird zwischen 640 x 480, 800 x 600 und 1024 x 768 Pixeln Aufl
sung.
blich, kommt man mit der 'Esc'-Taste aus den einzelnen Bildern zur
ck zum Hauptmen
, das Programm selbst beendet ein Druck der 'x'-Taste. t
Ein Druck auf 't' schaltet das Haupt-Testbild ein. Zur Interpretation der Ergebnisse siehe auch c't 10/93, S. 134.
Mit 'm' werden zwei moir
llige Muster auf dem Schirm dar- gestellt, einmal 'Schachbrett' mit der Feldgr
e 1 Pixel, daneben 'Fischgr
t' (Feldgr
e 2x1 Pixel).
'p' ruft den Pumptest auf; bei vern
nftiger Stabilisierung der Hoch- spannung sollten sich die Ecken beim Bildumschalten maximal im Bereich von 1,5 mm bewegen.
Der 'g'-Men
punkt bringt ein Gitter und Kreise auf den Schirm. Mit diesem Bild k
nnen besonders gut Konvergenzfehler und Abweichungen bei der Bildschirmgeometrie
berpr
ft werden.
Das Programm l
uft mit praktisch allen auf dem ET-4000-Chip basierenden SVGA-Grafikkarten, ebenso mit fast allen Trident-Karten. Auch mit der Diamond Speedstar 24x ( WD 9031c-Chip) gibt es keine Probleme.
r andere Karten ist VESA-Betrieb m
glich, vorausgesetzt, die Karten verf
ber ein VESA-Bios oder VESA-Treiber-TSR's, welche die angegebenen Grafikmodi unterst
tzen. (Z. B. l
uft CTMON korrekt auf den ATI-Mach-Karten, sofern man den ATI-VESA-Treiber VVESA.COM geladen und nicht vergessen hat, der Karte per Setup f
r DOS 1 MByte Video-RAM zu spendieren, voreingestellt sind n
mlich nur 512 KByte).
Generell ist 1 MByte Video-RAM Voraussetzung f
r den 256-Farben-Modus des Programms. Nur in diesem Modus werden die Regenbogenverl
ufe angezeigt.
BESCHR
NKUNGEN UND FEHLER: p
CTMON l
uft NICHT mit Karten, die den S3-928-Chip verwenden, z. B. Miro, Sigma Legend, neuere Paradise-Karten. .
Obwohl das Programm bei diesen S3-Chips den Grafikmodus initialisieren kann, bleibt der Bildschirm entweder schwarz oder es tauchen Artefakte im Bild auf. Diese
ern sich als scheinbar massive Konvergenzfehler und sind in der Bildmitte am 'Fadenkreuz' sowie bei den kleinen c't-Logos zu beobachten.
Speichermonitor
(unver
ffentlicht) @
Der Speichermonitor erm
glicht einen Blick in den Bereich jenseits der 1-MByte-Schranke. Bei 286ern und 386ern im virtuellen
Modus kann man bis 16Mbyte "peeken" und "poken", bei 386ern im Real Modus dar
ber hinaus bis 4 GByte. Die jeweilige Zugriffsart (int15 bis 16 MB oder univers bis 4 GB) wird im Prompt angezeigt.
Die Monitor-Befehle (Syntax durch '?' abfragen)
hneln denen von DEBUG. Adressen lassen sich als Segment:Offset eingeben, wobei Segment allerdings 32bittig sein darf. Alternativ kann man direkt die physikalische Adresse 32bittig eingeben. $
Der Monitor enth
lt auch einen Disassembler (kennt auch Pentium-Code), der allerdings noch Beta-m
ig ist. Bei Adressen oberhalb von 1 MByte ist seine Aussagekraft wegen des dort vorherrschenden Protected Mode naturgem
recht eingeschr
nkt. Hierf
r ben
tigt man leistungsf
higere Debugger.
Name :ctVdeb.exe
DOS :ab 3.x
Proz :ab 286 (via Int 15)
:IBM 486SLC/DLC nur via Int 15 !!
Mode :286 und 386-Virtuell (bis 16 MByte via Int 15),
386 Real (bis 4 GB via Univers}
Apfelm
nnchen
Das Apfelm
nnchen aus c't 3/89 dient als Benchmark f
r den Coprozessor. Es l
uft zun
chst mit Grafikausgabe, dann ohne. Aus der Differenz kann man auch auf die Geschwindigkeit der Grafikkarte (Funktion Setpixel) schlie
Auf der Kommando-Ebene kann man auch APFELCT mit der Option 'E' aufrufen, um das Apfelm
nnchen an einer gew
nschten Stelle mit w
hlbare Vergr
erung und Suchtiefe darzustellen. Q
Name :Apfelct.exe
DOS :ab DOS 2.11
Proz :ab PC
Modus :Real Mode
HLPAS
Das Benchmark-Programm HLPAS enstammt in seiner Urform einem Vorschlag der Zeitschrift PCW (ver
ffentlicht in "Auf die Pl
tze...", Manfred Bertuch, c't 10/87, S.104). Die hiesige Version ist pr
zisiert, erweitert f
r IEEE-Formate (Single, Double, Extendend, Comp) und Longint-Messung, und sie arbeitet nun nicht mit einem konstanten Wert bei dem Trigonometrie/Logarithmus-Bench, sondern mit Zufallswerten im Bereich [0.1..10]. L
Name :ctHLPAS
DOS :ab DOS 3.x
Proz :ab PC
Modus :Real Mode
Orgelspiel
... mal was zur Entspannung.
Das Programm beruht auf einem Beispiel zur Tastatur und Timer-Programmierung aus der c't-Bausteine-Serie in c't 7/88 S. 171. In der Windows-Box sollte man es nur einstimmig verwenden (klingt sonst etwas greulich ...) N
Name :ctOrgel.exe
DOS :ab 3.x
Proz :ab PC
Modus :m
glichst Real Mode
Disks
Festplatten und Floppy, AT-BUS (IDE), SCSI
Chipsatz
Auslesen, konfigurieren und optimieren von Chips
tzen
Video
VGA-Messungen und Testbilder
Ergebnis
Die Ergebnisse der einzelnen Messungen werden in einer Datei abgespeichert, die bei jedem Me
vorgang
berschrieben wird. In diesem Men
nnen Sie Pfad und Dateinamen der Ergebnisdatei eingeben. Alternativ l
t sich im Environment mit
SET RESULT=name
ein Dateiname festlegen.
Editor
Im Editor l
t sich der Inhalt einer Textdatei anzeigen und bearbeiten. Fast alle Testprogramme geben ihre Ergebnisse in Textdateien mit dem Namen "RESULT.TXT" aus. Speichern Sie Ergebnisse unter einem Namen Ihrer Wahl mit dem Men
befehl Datei
Speichern
unter.
ffnen Sie eine Datei mit dem Men
befehl Datei
ffnen. i
Das Editorfenster kann mit Hilfe des Men
s Window oder mit der Maus vergr
ert oder verkleinert werden.
Datei (Alt-D)
Das Datei-Men
bietet Befehle zum
ffnen und Speichern von Dateien, Wechsel des Verzeichnisses, Aufrufen der DOS-Kommandooberfl
che und Beenden des Programms.
Datei
ffnen (F3)
Wenn Sie "Datei
ffnen" w
hlen, erscheint die Dialogbox "Datei
ffnen". W
hlen Sie hier die Textdatei, die Sie im Editor bearbeiten m
chten.
Datei
Der Befehl "Neu"
ffnet ein neues, leeres Editorfenster mit dem Namen "Untitled".
Datei
Speichern
Mit dem Men
befehl "Speichern" wird der Inhalt des aktiven Editorfensters unter seinem Namen gespeichert. Wenn Sie einen anderen Namen w
hlen wollen, benutzen Sie statt dessen den Befehl Datei|Speichern
unter. Wenn Sie noch keinen Namen gew
hlt haben (das Fenster hei
t noch "Untitled"), wird ebenfalls der Befehl "Speichern unter" ausgef
hrt.
Datei
Speichern unter
Der Men
befehl "Speichern unter" erlaubt es, den Inhalt des aktiven Editorfenster unter einem neuen Dateinamen zu speichern.
Datei
Alle speichern
Mit dem Befehl "Alles speichern" werden alle Editorfenster gespeichert.
Datei
Verzeichnis wechseln...
Mit "Verzeichnis wechseln..." rufen Sie eine Dialogbox auf, in der Sie das aktuelle Verzeichnis w
hlen k
nnen.
Datei
DOS aufrufen
Mit dem Befehl "DOS aufrufen" k
nnen Sie das Programm vor
bergehend verlassen, um ein DOS-Kommando oder ein anderes Programm aufzurufen. T
Um in dieses Programm zur
ckzukehren, geben Sie unter DOS das Kommando "exit" ein.
Datei
Beenden (Alt-X)
Mit diesem Befehl beenden Sie das Programm.
Edit (Alt-E)
Das "Edit"-Men
bietet Befehle zum R
ngigmachen einer Aktion und zur Verwaltung des Clipboard.
Edit
ngig
Mit dem Befehl "R
ngig" k
nnen Sie die letzte Aktion, die Sie im Editor vorgenommen haben, zur
cknehmen. Diese M
glichkeit besteht nur bei einfachen Aktionen wie Eingeben oder L
schen von Zeichen.
Edit
Ausschneiden
Mit dem Befehl "Ausschneiden" entfernen Sie den selektierten Text und
bertragen ihn in das Clipboard. Was sich vorher im Clipboard befand, wird dabei gel
scht. Der ausgeschnittene Text kann wiederhergestellt werden, wenn Sie den Befehl "R
ngig" benutzen, ohne vorher den Cursor zu bewegen.
Edit
Kopieren
Mit "Kopieren"
bertragen Sie eine Kopie des selektierten Textes in das Clipboard. Die selektierte Information bleibt unver
ndert, aber der bisherige Inhalt des Clipboard geht verloren.
Edit
Mit "Einf
gen" setzen Sie den Inhalt des Clipboard an der aktuellen Cursorposition in das Editorfenster ein. Der Inhalt des Clipboard bleibt dabei erhalten. Im Editorfenster markierter Text wird beim Einf
berschrieben. Die Aktion kann r
ngig gemacht werden, wenn Sie den Befehl "R
ngig" benutzen, ohne zuvor den Cursor zu bewegen.
Edit
Clipboard zeigen
### (Bitte entsprechend umbenennen!)
Mit dem Befehl "Clipboard zeigen" bringen Sie den Inhalt des Clipboard zur Anzeige. Ausschneiden und Einf
gen ist hier nicht m
glich.
Edit
schen
Mit diesem Befehl l
schen Sie den selektierten Text aus dem Fenster. Die Aktion kann r
ngig gemacht werden, wenn Sie den Befehl "R
ngig" benutzen, ohne zuvor den Cursor zu bewegen.
Window (Alt-W)
Das Window-Men
bietet Befehle zur Verwaltung der Editorfenster. c
Die meisten der Fenster haben die
blichen Bedienelemente zum Scrollen, Schlie
en und Vergr
ern.
Optionen (Alt-O)
Das Optionen-Men
bietet Befehle zum Voreinstellen des Bildschirmmodus, der Farben Colors und der Maus Maus.
Optionen
Maus...
Der Befehl "Maus"
ffnet die Dialogbox Mouse
Options, in der Sie die Funktionsweise der Maus voreinstellen k
nnen: \
wie schnell ein Doppelklick sein mu
welcher Mausknopf (rechts oder links) aktiv ist
Optionen
Colors...
Der Befehl "Colors"
ffnet die Dialogbox Colors
dialog, in der Sie die Bildschirm-Farben nach Ihren W
nschen w
hlen k
nnen.
Optionen
Speichern Desktop
Speichert den Status aller ge
ffneten Fenster in eine Datei mit dem Namen TVDEMO.DSK. Diese Datei kann mit Hilfe des Befehls Optionen
Laden
Desktop wieder geladen werden.
Optionen
Laden Desktop
dt den zuvor gespeicherten Status aller ge
ffneten Fenster aus der Datei mit dem Namen TVDEMO.DSK. Diese Datei wird mit Hilfe des Befehls Optionen
Speichern
Desktop angelegt.
Window
Nebeneinander
Rufen Sie diesen Befehl auf, um die Fenster neben- bzw. untereinander anzuordnen (siehe Skizze). 1
Window
berlappend
Benutzen Sie diesen Befehl, um die Fenster
berlappend anzuordnen (siehe Skizze). A
Window
Alle schlie
Schlie
t alle aktiven Fenster.
Window
e/Position
(Ctrl-F5)
Verwenden Sie diesen Befehl, um die Gr
e oder Position des aktiven Fensters zu ver
ndern.
Verwenden Sie die Pfeiltasten, indem Sie gleichzeitig die Shift-Taste gedr
ckt halten. Dr
cken Sie abschlie
end die Eingabetaste (Enter).
Sie k
nnen die Gr
e auch mit Hilfe der Maus ver
ndern, wenn das Fenster in der rechten unteren Ecke ein entsprechendes Symbol aufweist. $
Position
Verwenden Sie die Pfeiltasten, um das aktive Fenster zu bewegen. Dr
cken Sie abschlie
end die Eingabetaste (Enter). a
Sie k
nnen die Position auch mit Hilfe der Maus ver
ndern, indem Sie den Titelbalken anklicken.
Window
Vergr
(F5)
Benutzen Sie den Befehl "Vergr
ern", um das Fenster auf maximale Gr
e zu bringen. Wenn das Fenster bereits vergr
ert ist, k
nnen Sie mit diesem Befehl die vorherige Gr
e wieder einstellen. H
Dieselbe Wirkung hat ein Doppelklick mit der Maus auf den Titelbalken.
Window
chstes
Mit diesem Befehl aktivieren Sie das n
chste Fenster.
Window
Vorheriges
Mit diesem Befehl aktivieren Sie das vorherige Fenster.
Window
Schlie
(Alt-F3)
Mit diesem Befehl schlie
en Sie das aktiveFenster. e
Sie k
nnen ebenso die Schlie
box in der oberen rechten Ecke anklicken, um das Fenster zu schlie