home
***
CD-ROM
|
disk
|
FTP
|
other
***
search
/
PC World 1999 June
/
PCWorld_1999-06_cd.bin
/
Hardware
/
Drivers
/
h2bench
/
README.TXT
< prev
Wrap
Text File
|
1999-01-20
|
15KB
|
306 lines
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.