home *** CD-ROM | disk | FTP | other *** search
- 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 ..).
-
- 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).
-
- Fü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
-
- Defaultmäßig stoppt CMESS den Transfer-Befehl REP MOVSB aus, der
- derzeit immer noch mit am häufigsten gebraucht wird.
- Version 1.0 veröffentlicht in c't 1/93
- Version 1.1 Fassung auf der Heft-Sammeldisk/Mailbox ct0193.zip
- (Korrekturen dazu sieh c't 4/93 S.12)
- Version 1.3 Fassung auf der ctsi-Info-Disk V1.0
- Version 1.3a Weniger Trashing zwischen Meßcode und Daten
- leicht geänderte Cache-Routine
- 1.3c Letzte Änderung war "Verschlimmbesserung", führte dazu, daß
- in schnellen Systemen der L2-Cache auf die doppelte Größe
- bestimmt wurde. Eine neue Änderung führt zu einer kürzeren
- Meßschleife, so daß Timing-Unterschiede prozentual größer
- und daher besser erkannt werden.
- Gleichzeitig wurde für >486-Systeme die Diskriminate für
- Write-Back-Erkennung von 1.1 auf 1.04 und für L2-Erkennung
- von 1.2 auf 1.1 reduziert.
-
- Einbindung von iDX4. Dieser wurde von < V1.3c wg. der
- 16 KByte Cache als IBM486SCL/DLC erkannt.
-
- (veröffentlicht in Version 1.0 in c't 1/93)
-
- Name : ctCM.exe
- DOS : ab DOS 3.x
- Proz : ab 386SX
- Parameter: [Transfertyp][Timer][Cachegröße]
-
- 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ühren
- !!! nicht für PS/2 !!!
- T2 Timer 2
-
- Cachegröße:
- L1=xxx in KB, übersteuert die ermittelte L1-Cachegröße
- L2=xxx in KB, übersteuert die ermittelte L2-Cachegröße
-
- VideoTransfer:
- Vid Mißt Transfers von und zum Videospeicher
- (Default Videomodus = $13);
- Vid=xxx Mißt im Videomodus xxx (dezimal) oder $XXX
- (hexadezimal)