home *** CD-ROM | disk | FTP | other *** search
- H2bench -- by Harald Bögeholz / c't Magazin für Computertechnik
- Copyright (C) 1999 Verlag Heinz Heise GmbH
- ===============================================================
-
-
- H2bench runs under DOS and directly accesses the hard disk via BIOS.
- In order to achieve correct results, i.e for comparison with ours, you
- have to boot DOS without any cache programs, using only those drivers
- which are absolutely necessary. If you are using a SCSI adapter from
- NCR or Symbios Logic and an SDMS BIOS version 3, you need the driver
- Doscam.sys -- otherwise the disks can only be operated in the slower
- asynchronous mode of the SCSI bus.
-
- For EIDE disks, whether or not a driver is needed depends on the BIOS
- of the EIDE host adapter. Our test system's BIOS (Asus P/I-P55TP4XE)
- achieves full performance without the support of a driver. However the
- situation is different for most Pentium Pro and Pentium II systems.
- The widely used Award BIOS is not able to drive the EIDE interface at
- full speed (see also the FAQ section below). If the board manufacturer
- supplies a busmastering IDE driver for DOS you should install this
- driver to improve performance.
-
- H2bench does not produce reliable results when running in a DOS box
- under Windows, Windows 95/98/NT or OS/2. Drivers such as Emm386 which
- run the processor in virtual 8086 mode also impair the measurements
- and should not be used for this reason.
-
- On the command line, the number of the hard disk you want to test and
- any options for the test procedure must be given. When calling the
- program without parameters, a short help text is displayed. All
- options must be entered in lower case letters. The number of the hard
- disk you want to test is the most important option. The first physical
- disk is number 0, the next one is number 1, and so on. When you enter
- the disk number without any options, H2bench displays geometry
- (cylinders, heads, sectors) and capacity of the disk. If there are
- several disks in the computer, it is recommended to run H2bench in
- this way first, to make sure that you select the correct disk later.
-
- H2bench ignores partitioning and accesses the disk directly, so that
- all data will be lost when writing on the disk. For this reason,
- H2bench normally operates in read-only mode. The option "-!" activates
- write measurements. For safety reasons this will not work if there are
- any partitions on the disk.
-
- H2bench measurement consists of four components: interface transfer
- rate, zone measurement, the Hdbench measurement and the measurement of
- access times.
-
- The option "-c <n>" (-c stands for "core test" for historical reasons)
- activates the interface transfer rate measurement at <n> percent of
- the total capacity. This measurement is usually done at 0 percent
- since that is the fastest zone for most hard drives.
-
- The option "-z" carries out the zone measurement, option "-s"
- activates the seek measurement. The Hdbench measurement combines read
- and write accesses using different block sizes in a disk area of
- approx. 6 MByte. This measurement is activated with the option "-h
- <n>", where <n> specifies the location of the measurement in percent
- of the total disk capacity (the space between -h and <n> is
- important). We normally perform the Hdbench measurement in the fastest
- media zone. For most hard disks this is the outer area, i.e. at 0% of
- the capacity.
-
- When you enter the option "-ha", H2bench automatically selects the
- fastest media zone. In order to do so, the program carries out zone
- measuring first and then defines the H2bench zone by evaluating the
- measured read rates. When selecting the fastest zone the write rates
- are not taken into consideration.
-
- Therefore it could happen that in some cases the "wrong" zone is
- selected, for example some Western Digital EIDE drives like the
- AC21600 where the write rate in the outer area of the drive is weak,
- results in an average value of 2.95 MByte/s, but when measuring at 20
- % of the capacity (with an adequate write rate) a value of 3.39 MB/s
- is measured. When you enter the option "-a", all four measurements are
- carried out; this option combines "-c", "-z", "-ha" and "-s". Use the
- option "-w <filename>" to enter a <filename> for storing the results.
- Please note that the name must not contain an extension because the
- program automatically adds extensions. H2bench generates two result
- files with the extensions ".txt" and ".ps".
-
- The file with the extension ".txt" is an ASCII file, the first part of
- which is a summary of the results. The second part contains detailed
- results of the Hdbench and zone measurements. Please note that the
- zone measurement has up to 1000 measuring points for both reading and
- writing tests. Each result is given on a separate line, so that the
- results can be evaluated with other programs. Before printing out the
- .txt file, use a text editor to cut off the second part of the file --
- otherwise you print out more than 30 pages of "garbage".
-
- The file with the extension ".ps" is in PostScript format and
- summarizes all results on a single page (DIN A4). Those equipped with
- a postscript printer can simply send the file to the printer, for
- example with the DOS command
-
- copy /b filename.ps prn
-
- If you do not own a postscript printer or if you want to display the
- results on the screen, you can use the freeware interpreter
- GhostScript or GhostView. These programs are freely available on the
- internet for practically all operating systems.
-
- The following options can be used for documentation purposes: "-tt"
- followed by the name of the hard disk (in quotation marks), assigns
- the "title" of the test. In the same way, "-tb" is used for the BIOS,
- "-tc" for the CPU, "-tm" for the motherboard, and "-ta" for the
- adapter (SCSI or EIDE). Since these last components are rarely
- changed, you can also put them in environment variables (i.e. put them
- into the Autoexec.bat via the SET command). The relevant variables are
- named H2btitle, H2bbios, H2bcpu, H2bboard, and H2badapter. They will
- be referred to when the command line does not contain any relevant
- data.
-
- In most cases, you only have to enter the name of the hard disk for
- the test. Here is a typical command:
-
- h2bench 0 -a -! -tt "harddisk 42" -w 42
-
- This tests the first hard disk connected to the computer and stores
- the results in the files "42.txt" and "42.ps".
-
- Drives with more than 8 GByte capacity
- ======================================
-
- From version 2.3, H2bench can use new BIOS functions (INT 13h,
- functions AH=41h to 49h) in order to access disks with more than 8
- GByte capacity. Enter the option "-e" to use these BIOS extensions if
- available. If they are not available or if they don't work correctly,
- an error message will be displayed. The warning message "!!! warning:
- block size conflicts with Phoenix EDD spec 1.1" can safely be ignored
- if there aren't any other errors (see the FAQ section below).
-
-
- Drives with more than 32 GByte capacity
- =======================================
-
- H2bench versions below 2.26 had a bug that caused H2bench to crash or
- give wrong results for the sustained write rates if the capacity of
- the drive was above 32 GByte. Please don't use the old versions any
- more and delete them. If you see an old H2bench version anywhere,
- please inform the supplier of that version about this bug and the
- availability of a new version.
-
-
- Language options
- ================
-
- H2bench currently "speaks" three languages: German, English and Dutch.
- The command line option "-deutsch" selects German, "-english" selects
- English and "-nederlands" selects Dutch.
-
- The language can also be pre-selected using the environment variable
- H2BLANGUAGE. This avoids specifying the command line option each time.
- You should usually set H2BLANGUAGE in your Autoexec.bat, for example:
-
- SET H2BLANGUAGE=deutsch for German
-
- SET H2BLANGUAGE=english for English
-
- SET H2BLANGUAGE=nederlands for Dutch
-
-
- Questions
- =========
-
- Please send any questions about H2bench to bo@ct.heise.de (in German
- or English). I will take the liberty not to respond to questions
- already answered in the FAQ below.
-
-
- FAQ
- ===
-
- ? H2bench always aborts with a read error.
-
- : In cases of physical defects, the current version of H2bench cannot
- measure the continuous transfer rate (zone measurement). You can
- use the option "-h x" in order to carry out the Hdbench measurement
- in a non-defective area of the disk.
-
- ? When calling up the hard disk benchmark H2bench, I always get an
- error message stating that the timer does not run monotonically,
- and the program is aborted.
-
- : H2bench accesses the system timer directly in order to get exact
- measurements (to the microsecond). In some chip sets, the system
- timer is defective, so that the end bits do not run monotonically.
- One example of this is the I/O chip 82378IB in the Mercury/Neptune
- chip set. For more information see c't 10/95, p. 334.
-
- This symptom impairs the time measurements, which is why H2bench
- first checks the timer for correct operation. You can use the
- option "-Tnocheck" to suppress the timer check -- but not the bug!
- When using this option, H2bench produces more or less correct
- results, but the results are not reliable. Also you may encounter a
- negative value in the Hdbench measurement from time to time.
-
-
- ? When using the option "-e" I get the message "!!! warning: block
- size conflicts with Phoenix EDD spec 1.1".
-
- : The BIOS extensions H2bench uses have been specified by Phoenix.
- According to the spec, each call can transfer at most 127 sectors
- at a time. H2bench, however, uses a block size of 128 sectors. This
- has worked fine with the SCSI adapters from Symbios Logic and
- Adaptec we used so far as well as with the Promise Ultra33. It is,
- however, against the spec, and therefore H2bench outputs this
- warning. The BIOS of some Adapters (for instance the Promise
- FastTrack) follows the spec to the letter and rejects calls with
- 128 sectors. On such adapters, the zone measurement and the
- measurement of the interface transfer rate can not be performed if
- the "-e" option is used.
-
-
- ? I can't reproduce your results: For my SCSI drive I get much lower
- write rates than you do.
-
- : On SCSI drives we always enable the write cache for benchmarking.
- Without write cache SCSI drives write only about half as fast as
- they read. There is a small program from Seagate which you can use
- to enable write caching. It also works with drives from other
- manufacturers and requires an ASPI driver. You can download the
- archive Aspiid15.zip from http://www.heise.de/ct/ftp/spezial.shtml.
- SCSI drives can remember the write cache setting permanently so
- that it suffices to turn it on once.
-
-
- ? I have H2bench versions 2.15 and 2.3. Which one is the latest
- version?
-
- : The number after the dot is not meant as a decimal fraction but as
- a minor version number. After 2.9 (two-nine) came 2.10 (two-ten),
- then 2.11 (two-eleven) and so on. On January 20, 1999, the current
- version was 2.26.
-
-
- ? My hard drive achieves a maximum transfer rate of about 7 MByte/s
- when attached to the onboard EIDE channel of my Pentium II board
- although the test results published in c't magazine are much
- better. When I connect the drive to an older Pentium based system
- the performance is better.
-
- : This is the fault of the onboard IDE interface on your board, or to
- be more precise, the BIOS. In addition to the conventional PIO mode
- (Programmed I/O, the CPU is responsible for fetching the data from
- the interface and writing it to main memory) the onboard IDE host
- adapter of current boards can also be operated as a PCI busmaster.
- In this mode the host adapter transfers data directly to and from
- main memory without using the CPU. This is primarily useful for
- multitasking operating systems since it frees the CPU for other
- tasks while data is being transferred over the IDE interface.
-
- On all currently available Pentium Pro and Pentium II chip sets the
- IDE interface is much slower in PIO mode than it is in busmastering
- mode. Unfortunately the programmers of the widely used Award BIOS
- haven't bothered to implement busmastering yet. Current versions of
- the Award BIOS operate even Ultra DMA capable hard drives in the
- slower PIO mode, even if they report them as "UDMA". Only with a
- few boards which use a BIOS from other manufacturers have we seen
- the full performance of the IDE interface without using a driver.
-
- This shortcoming in the Award BIOS only affects DOS or DOS based
- benchmarks like H2bench. Other operating systems don't use the BIOS
- and directly access the hard disk with their own drivers. If these
- drivers use busmastering you can expect full performance. Some
- information about busmastering and drivers is available from
- http://www.bmdrivers.com.
-
- Triones supplies a busmastering DOS driver for the LX and BX chip
- sets. Some board manufacturers (e.g., Gigabyte) bundle this driver
- with their boards. Using this driver H2bench reaches the full
- performance. Without it such boards (if they use an Award BIOS) are
- not suitable for hard drive performance measurements with H2bench
- for the time being.
-
-
- ? My hard drive achieves a maximum transfer rate of about 6.3 MByte/s
- when attached to an Asus P/I-P55TP4XE board although the test
- results published in c't magazine are much better. In the meantime
- I have used the drive for several days and repeated the test.
- Surprisingly, it now shows the expected performance. How is that
- possible?
-
- : This may be caused by the BIOS. Some BIOS versions, for instance
- version 0203 for the Asus P/I-P55TP4XE, make a difference between
- new hard drives (or drives erased by h2bench) and drives that have
- already been partitioned. This is caused by an algorithm the BIOS
- developers have implemented to support external IDE adapters.
-
- During initialization the BIOS tries to find out if the IDE adapter
- can be accessed with 32-bit instructions. For that purpose it first
- reads the first sector of the drive, the master boot record (MBR),
- using 16-bit instructions. If that sector contains a valid
- partition table (marked with the signature 0aa55h in the last two
- bytes) it reads the same sector again, this time using 32-bit
- instructions. If the data from the two reads matches it uses 32-bit
- instructions thereafter. If the partition table contains invalid
- data the BIOS uses only 16-bit instructions to be on the safe side.
- This is compatible with all IDE adapters but limits the transfer
- rate to between 6 and 7 MByte/s.
-
- As a precaution you should issue the command "Fdisk /mbr" and
- reboot before running H2bench. This writes the correct signature to
- the master boot record so that the BIOS uses fast 32-bit
- instructions to access the IDE interface.
-