H2bench -- by Harald Bgeholz / c't Magazin fr Computertechnik
Copyright (C) 2000 Verlag Heinz Heise GmbH
===============================================================


H2bench luft unter DOS und greift direkt ber das BIOS auf die
Festplatte zu. Um unsere Messungen nachvollziehen zu knnen, mssen
Sie DOS ohne irgendwelche Cacheprogramme und nur mit den unbedingt
notwendigen Treibern booten. Wenn Sie einen SCSI-Adapter von NCR oder
Symbios Logic einsetzen und das SDMS-BIOS Version 3 haben, brauchen
Sie den Doscam-Treiber, ohne den die Platten nur im langsameren
Asynchronmodus des SCSI-Busses betrieben wrden. 

Bei EIDE-Platten hngt es vom BIOS des EIDE-Adapters ab, ob ein
Treiber erforderlich ist. Das BIOS unseres mittlerweile etwas betagten
Testsystems (Asus P/I-P55TP4XE) erreicht auch ohne Treiberhilfe die
volle Performance. Bei den meisten Pentium-Pro- und
Pentium-II-Systemen ist das jedoch anders, da das weit verbreitete
Award-BIOS die EIDE-Schnittstelle nicht mit voller Geschwindigkeit
ansprechen an (siehe auch unten im FAQ-Abschnitt). Wenn der Hersteller
eines solchen Boards einen busmasterfhigen DOS-Treiber fr die
EIDE-Schnittstelle mitliefert, sollten Sie diesen installieren.

In den DOS-Boxen von Windows, Windows 95/98/NT oder OS/2 liefert
H2bench keine zuverlssigen Ergebnisse. Ebenso wrden Treiber wie
Emm386, die den Prozessor im virtuellen 8086-Modus betreiben, die
Messungen verflschen und sollten daher weggelassen werden.

H2bench erwartet auf der Kommandozeile die Nummer der zu testenden
Festplatte sowie Optionen, die die durchzufhrenden Tests festlegen.
Ein Aufruf ohne Parameter liefert einen kurzen Hilfstext. Alle
Optionen mssen als Kleinbuchstaben angegeben werden; die Reihenfolge
ist beliebig. Der wichtigste Parameter ist die Nummer der zu testenden
Festplatte. Die erste physikalische Platte hat die Nummer 0, die
nchste die Nummer 1 und so weiter. Gibt man auf der Kommandozeile nur
die Plattennummer ohne Optionen an, so zeigt H2bench die Geometrie
(Zylinder, Kpfe, Sektoren) und die Kapazitt der Platte an. Wenn
mehrere Platten im Rechner sind, empfiehlt es sich, H2bench zunchst
einmal nur so aufzurufen, um sicherzustellen, da man die richtige
Platte trifft.

Da H2bench unter Umgehung der Partitionierung direkt auf die Platte
zugreift, wrden beim Beschreiben der Platte alle Daten verlorengehen.
Daher fhrt er alle Benchmarks normalerweise nur lesenderweise durch.
Erst die Option "-!" aktiviert auch die Schreibmessungen. Diese
wiederum funktionieren aus Sicherheitsgrnden nur, wenn keine
Partitionen auf der Platte sind.

H2bench hat vier Komponenten: Die Messung der Interface-Transferrate,
die Zonenmessung, die Hdbench-Messung und die Messung der mittleren
Zugriffszeit (Seek). Die Option "-c <n>" (-c steht aus historischen
Grnden fr "Coretest") veranlat die Messung der
Interface-Transferrate bei <n> % der Kapazitt der Platte.
blicherweise gibt man hier 0 an, da die meisten Festplatten dort am
schnellsten sind.

Die Option "-z" aktiviert die Zonenmessung, "-s" die Seek-Messung. Die
Hdbench-Messung kombiniert Lese- und Schreibzugriffe mit verschiedenen
Blockgren in einem 6 MByte groen Bereich der Platte. Die Option "-h
<n>" veranlat diese Messung bei <n> % der Kapazitt der Platte (die
Leerstelle zwischen -h und <n> ist wichtig). Wir fhren die
Hdbench-Messung grundstzlich in der schnellsten Medienzone durch, die
bei den allermeisten Festplatten ganz auen, also bei 0 % der
Kapazitt liegt.

Mit der Option "-ha" sucht sich H2bench die schnellste Medienzone
selbst. Dazu fhrt das Programm zunchst die Zonenmessung durch und
legt dann die Hdbench-Zone an Hand der ermittelten Leseraten fest. Da
es die Schreibrate fr die Wahl der schnellsten Zone nicht
bercksichtigt, kann es in seltenen Fllen passieren, da es die
"falsche" Zone whlt, so zum Beispiel bei bestimmten EIDE-Platten von
Western Digital. Bei der AC21600 bricht die Schreibrate im
Auenbereich stark ein, der gewichtete Mittelwert betrgt nur 2,95
MByte/s. Mit man dagegen bei 20 % der Kapazitt, wo die Schreibrate
in Ordnung ist, so schafft sie respektable 3,39 MByte/s. Die Option
"-a" schlielich fhrt alle vier Teilmessungen durch; sie entspricht
der Kombination von "-c", "-z", "-ha" und "-s".

Die Option "-w <Dateiname>" legt einen <Dateinamen> fr das
Abspeichern der Ergebnisse fest. Der angegebene Name darf keine
Extension enthalten, da das Programm diese selbst anhngt. H2bench
erzeugt zwei Ergebnisdateien mit den Extensions ".txt" und ".ps". Die
Die .txt-Datei ist eine ASCII-Datei, die im vorderen Teil die
Ergebnisse im Klartext zusammenfat. Der hintere Teil enthlt die
Detailergebnisse der Hdbench-Messung und der Zonenmessung. Vorsicht:
Die Zonenmessung hat fr Lesen und Schreiben jeweils bis zu 1000
Mepunkte. Die Ergebnisse stehen jeweils in einer eigenen Zeile, um
die Auswertung mit anderen Programmen zu ermglichen. Bevor Sie auf
die Idee kommen, die .txt-Datei auszudrucken, sollten Sie mit einem
Texteditor den hinteren Teil der Datei abschneiden, da Sie sonst ber
30 Seiten "Zahlenmll" zu Papier bringen.

Fr den Ausdruck ist die .ps-Datei gedacht. Sie enthlt alle
Meergebnisse auf einer DIN-A4-Seite zusammengefat im
PostScript-Format. Besitzer eines PostScript-Druckers knnen die Datei
einfach so zum Drucker schicken, beispielsweise mit dem DOS-Befehl

copy /b Dateiname.ps prn

Wer ber einen weniger edlen Drucker verfgt oder die Ergebnisse am
Bildschirm betrachten mchte, kann den Freeware-Interpreter
GhostScript beziehungsweise das Programm GhostView zur Anzeige
benutzen. Die Programme sind fr praktisch alle Betriebssysteme
verfgbar.

Zu Dokumentationszwecken dienen die folgenden Optionen: "-tt", gefolgt
von der Bezeichnung der Festplatte (in Anfhrungszeichen), legt den
"Titel" des Tests fest. Entsprechend gibt es "-tb" fr das BIOS, "-tc"
fr die CPU, "-tm" fr das Motherboard und "-ta" fr den verwendeten
(SCSI- oder EIDE-) Adapter. Da letztere Komponenten hufig
gleichbleiben, kann man die Angaben auch in Environment-Variablen
unterbringen, zum Beispiel per SET-Befehl in der Autoexec.bat. Die
entsprechenden Variablen heien H2btitle, H2bbios, H2bcpu, H2bboard
und H2badapter und kommen dann zum Zuge, wenn auf der Kommandozeile
keine antsprechenden Angaben vorliegen.

Meist braucht man beim Test dann nur noch den Namen der Festplatte
anzugeben. Ein typischer Aufruf lautet beispielsweise

h2bench 0 -a -! -tt "Festplatte 42" -w 42

Dies fhrt mit der ersten am Rechner angeschlossenen Festplatte alle
Messungen durch und speichert die Ergebnisse in den beiden Dateien
"42.txt" und "42.ps".


Platten ber 8 GByte
====================

Ab Version 2.3 kann H2bench neuere BIOS-Funktionen (INT 13h,
Funktionen AH=41h bis 49h) benutzen, um Platten mit mehr als 8 GByte
anzusprechen. Bei Angabe der Option -e nutzt H2bench diese
BIOS-Erweiterungen, falls vorhanden. Wenn sie nicht vorhanden sind
oder nicht richtig funktionieren, erhalten Sie eine Fehlermeldung. 


Platten ber 32 GByte
=====================

H2bench-Versionen vor 2.26 hatten einen Fehler, der bei Platten ber
32 GByte zu Abstrzen oder fehlerhaften Meergebnissen bei der
Dauertransferrate Schreiben fhren konnte. Bitte verwenden Sie die
alten Versionen nicht mehr und lschen Sie sie. Wenn Sie irgendwo eine
veraltete H2bench-Version entdecken, informieren Sie bitte den
Besitzer oder Anbieter ber diesen Fehler.


Sprachoptionen
==============

H2bench "spricht" derzeit drei Sprachen: Deutsch, Englisch und
Hollndisch. Die Kommandozeilenoption "-deutsch" whlt deutsche Texte,
die Option "-english" englische und die option "-nederlands"
hollndische.

ber die Environment-Variable H2BLANGUAGE lt sich die Sprache
voreinstellen, um sich die Angabe der entsprechenden
Kommandozeilenoption zu ersparen. Zweckmigerweise setzt man sie ber
eine SET-Anweisung in der Datei Autoexec.bat. Beispiele:

SET H2BLANGUAGE=deutsch     fr Deutsch

SET H2BLANGUAGE=english     fr Englisch

SET H2BLANGUAGE=nederlands  fr Hollndisch


Fragen
======

Fragen zu H2bench richten Sie bitte per EMail (in deutscher oder
englischer Sprache) an bo@ct.heise.de. Ich werde mir erlauben, Fragen,
die in den untenstehenden FAQ beantwortet sind, zu ignorieren.


FAQ:
====

?  Der Benchmark H2bench bricht immer mit einem Lesefehler ab.

:  Wenn physikalische Defekte vorliegen, kann die aktuelle Version von
   H2bench die Dauertransferraten nicht messen. Mit der Option "-h x"
   knnen Sie aber immerhin noch die Hdbench-Messung in einem intakten
   Bereich der Platte durchfhren.


?  Beim Aufruf des Festplatten-Benchmarks H2bench erhalte ich immer
   die Fehlermeldung, da der Timer nicht monoton laufe, und das
   Programm bricht ab.

:  H2bench liest den Timer direkt aus, um mikrosekundengenaue
   Zeitmessungen durchfhren zu knnen. Bei manchen Chipstzen ist
   der Systemtimer fehlerhaft: die hinteren Bits "hoppeln" und laufen
   nicht immer monoton. Betroffen ist zum Beispiel der I/O-Baustein
   82378IB des Mercury/Neptun-Chipsatzes. Siehe dazu auch c't 10/95,
   S. 334.

   Das verflscht natrlich die Zeitmessungen, weswegen H2bench
   zunchst den Timer berprft. Mit der Option "-Tnocheck" knnen Sie
   die berprfung des Timers unterdrcken, nicht aber den Bug.
   H2bench mte dann zwar im groen und ganzen auch richtige Werte
   liefern, aber verlassen kann man sich darauf nicht. Wunden Sie sich
   daher nicht, wenn Sie ab und zu mal einen negativen Wert in der
   Hdbench-Messung erhalten.


?  Ich kann Ihre Messungen nicht nachvollziehen: Mit meiner
   SCSI-Platte erhalte ich wesentlich niedrigere
   Datenbertragungsraten beim Schreiben als Sie.

:  Wir schalten bei SCSI-Platten fr unsere Messungen grundstzlich
   den Schreibcache ein. Ohne diesen erzielen die Platten beim
   Schreiben nur die halbe bertragungsrate wie beim Lesen. Von
   Seagate gibt es dazu ein kleines Programm, das auch mit Festplatten
   anderer Hersteller funktioniert, vorausgesetzt, Sie benutzen einen
   ASPI-Treiber. Sie finden es auf
   http://www.heise.de/ct/ftp/spezial.shtml oder in der c't-Mailbox
   unter dem Namen Aspiid15.zip. SCSI-Platten merken sich die
   Einstellung fr den Schreibcache dauerhaft -- es gengt also, ihn
   einmal mit diesem Programm einzuschalten.


?  Ich habe Version 2.15 und Version 2.3 von H2bench. Welche ist
   neuer?

:  Die Nummer nach dem Punkt ist nicht als Dezimalbruch sondern als
   fortlaufende Nummer zu verstehen. Nach 2.9 kam also 2.10 (zwei
   punkt zehn), danach 2.11 und so weiter. Die am 20. April 2000
   aktuelle Version hat die Nummer 2.32.


?  Meine Festplatte erzielt an der Onboard-EIDE-Schnittstelle meines
   Pentium-II-Boards eine maximale bertragungsrate von etwa 7
   MByte/s, obwohl sie laut c't-Testbericht wesentlich schneller sein
   sollte. An einem lteren Pentium-System bringt sie dagegen die
   volle Leistung.

:  Der Bremsklotz ist die IDE-Schnittstelle Ihres Boards, genauer
   gesagt das BIOS. Neben dem klassischen PIO-Mode (Programmed I/O,
   die CPU holt jedes Datenwort einzeln von der Schnittstelle ab und
   schreibt es in den Speicher) knnen die Onboard-IDE-Schnittstellen
   gngiger Boards auch als PCI-Busmaster arbeiten und direkt auf den
   Hauptspeicher zugreifen. Diese Betriebsart ist vor allem fr
   multitaskingfhige Betriebssysteme sinnvoll, da sie die CPU
   entlastet: Whrend die IDE-Schnittstelle Daten bertrgt, kann sich
   der Prozessor mit anderen Dingen beschftigen.

   Bei allen bisher verfgbaren Pentium-Pro- und Pentium-II-Chipstzen
   ist die IDE-Schnittstelle im PIO-Betrieb deutlich langsamer als mit
   Busmastering. Dummerweise haben sich die Programmierer des weit
   verbreiteten Award-BIOS jedoch nicht die Mhe gemacht, Busmastering
   zu implementieren. Selbst Ultra-DMA-fhige IDE-Platten betreibt das
   Award-BIOS im PIO-Mode, obwohl es beim Booten "UDMA" meldet. Nur
   bei einigen wenigen Boards, deren BIOS von einem anderen Hersteller
   stammt, erreicht die IDE-Schnittstelle ohne Treiber die volle
   Leistung.

   Dieser Mangel des Award-BIOS wirkt sich nur auf DOS beziehungsweise
   DOS-basierte Benchmarks wie H2bench aus. Andere Betriebssysteme
   umgehen das BIOS und greifen ber eigene Treiber auf die Festplatte
   zu. Wenn diese Treiber Busmastering nutzen, sind keine
   Geschwindigkeitseinbuen zu befrchten. Informationen rund um
   Busmastering sowie Treiber finden Sie auf http://www.bmdrivers.com.

   Die Firma Triones vertreibt einen busmasterfhigen DOS-Treiber fr
   den LX- oder BX-Chipsatz. Manche Boardhersteller (z.B. Gigabyte)
   legen diesen Treiber ihren Boards bei. Mit ihm erzielt H2bench die
   volle Performance. Ohne einen solchen Treiber eignen sich LX- oder
   BX-Boards mit Award-BIOS bis auf weiteres nicht fr
   Performancemessungen mit H2bench.


?  Meine Festplatte erzielt am Asus P/I-P55TP4XE nur eine
   Dauertransferrate von ca. 6,3 MByte/s, obwohl sie laut
   c't-Testbericht wesentlich schneller sein sollte. Inzwischen habe
   ich die Platte ein paar Tage benutzt und die Messung wiederholt,
   und siehe da: jetzt erreicht sie pltzlich die volle Leistung. Wie
   kann das sein?

:  Das kann am BIOS liegen. Manche BIOS-Versionen, wie zum Beispiel
   die Version 0203 fr das Asus P/I-P55TP4XE, verhalten sich mit
   jungfrulichen beziehungsweise durch H2bench gelschten Festplatten
   anders als mit solchen, die schon einmal partitioniert waren. Die
   Ursache liegt in einem Algorithmus, den die BIOS-Entwickler fr den
   Fall erfunden haben, da der Anwender die Onboard-IDE-Schnittstelle
   abschaltet und einen anderen IDE-Adapter verwendet.

   Das BIOS versucht zunchst herauszufinden, ob der IDE-Adapter mit
   32-Bit-Zugriffen zurechtkommt. Dazu liest es den ersten Sektor der
   Festplatte, den Master Boot Record, zunchst mit 16-Bit-Zugriffen
   ein. Wenn dieser eine gltige Partitionstabelle enthlt (zu
   erkennen an der Signatur 0aa55h in den letzen beiden Bytes), liest
   es anschlieend denselben Sektor mit 32-Bit-Zugriffen ein und
   berprft, ob der Inhalt identisch ist. Nur wenn das der Fall ist,
   arbeitet es fortan mit 32-Bit-Zugriffen. Enthlt die
   Partitionstabelle dagegen von vornherein ungltige Daten, so bleibt
   das BIOS vorsichtshalber bei den mit jedem IDE-Adapter kompatiblen
   16-Bit-Zugriffen, was die bertragungsrate auf 6 bis 7 MByte/s
   begrenzt.

   Fhren Sie daher sicherheitshalber vor der Messung mit H2bench den
   Befehl 'Fdisk /mbr' aus, um die fr das BIOS erforderliche Signatur
   in den Master Boot Record schreiben. Nach einem Neustart luft die
   IDE-Schnittstelle dann garantiert in der schnelleren
   32-Bit-Betriebsart.
