c't-System-Info r diesen Men punkt ist (noch) kein Hilfetext eingetragen Abgang mit ESC c't-System-Info 12/93 Herzlich willkommen zur c't-System-Info Dieses Software-Paket umfa t diverse Me - und Analyseprogramme der c't-Redaktion. Sie erm glichen unter anderem h - differenzierte Performance-Messungen - Analyse und Optimierung der Konfiguration - Fehlerdiagnose an PC/AT-kompatiblen Rechnern. Die Lauff higkeit der Programme ist teilweise hardwareabh ngig. Bitte beachten Sie daher unbedingt die Hinweise und Warnungen im jeweiligen Hilfetext (Aufruf mit Taste ) 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 ndet ist. Siehe auch Details Name : ctKURVE.exe DOS : ab 3.x Proz : ab 386SX Modus : nur 386 Real Mode Grafik : VGA 640:x480 Druckformat : PostScript Parameter : [a,m,n] dat1.cch dat2.cch dat3.cch ... a: ausgeben von dat1, dat2, dat3 ... m: messen + ausgeben von dat1 n: zeigt Datnamen in Kurve an Zugriffskurve Details 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 chste Aufl sung 640 x 480 Bildpunkte und deren h chste Farbtiefe (bei 320 x 200 Bildpunkten) 256 Farben (8Bit) betr gt. Probleme und m 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 TSFEHLER! B !!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!! " (Erweitere Fassung aus c't 3/93) Name : ctCHIPZ.EXE DOS : Ab DOS 3.3 Proz : Ab 8088 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 ufen, und von den Diskettenflags l t er die Finger (gemessen mit 1542C). Name : check13.exe DOS : Ab DOS 3.3 Proz : Ab 8088 Modi : Real / Virtuell Parameter: 0,1, $80, $81 : physik. Laufwerksnummer Testbild 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