When you perform a drive parameter autodetection
in your system BIOS setup or look in your new IDE/ATA hard disk's setup manual to see
what the drive parameters are, you are seeing the logical geometry values that the
hard disk manufacturer has specified for the drive. Since newer drives use zoned bit recording and hence have ten or more values for
sectors per track depending on which region of the disk is being examined, it is not
possible to set up the disk in the BIOS using the physical geometry. Also, the BIOS has a
limit of 63 sectors per track, and all newer hard disks average more than 100
sectors per track, so even without zoned bit recording, there would be a problem.
Older hard disks that had simple structures and low capacity did not need special
logical geometry. Their physical and logical geometry was the same. Take for example the
Seagate ST-251, a 42.8 MB drive that was one of the most popular drives of its day. This
drive's "CHS" physical geometry numbers are 820 cylinders, 6 heads, and 17
sectors, and those numbers are what is used by a system that has this drive.
Newer drives cannot have their true geometries expressed using three simple numbers. To
get around this issue, for disks 8.4 GB or smaller, the BIOS is given bogus parameters
that give the approximate capacity of the disk, and the hard disk controller is given
intelligence so that it can do automatic translation between the logical and physical
geometry. The actual physical geometry is totally different, but the BIOS (and your
system) need know nothing about this. Here's an example showing the difference between the
physical and logical geometry for a sample drive, a 3.8 GB Quantum Fireball TM:
Specification |
Physical Geometry |
Logical Geometry |
Read/Write Heads |
6 |
16 |
Cylinders (Tracks
per Surface) |
6,810 |
7,480 |
Sectors Per Track |
122 to 232 |
63 |
Total Sectors |
7,539,840 |
7,539,840 |
If you install this drive, as far as the system is concerned, the disk has 16 heads and
63 sectors on every track, and the hard disk itself takes care of all the "dirty
work" of translating requests to their real internal locations. The physical geometry
is totally hidden from view. The fact that both geometries equate to the same number of
total sectors is not a coincidence. The purpose of the logical geometry is to
enable access to the entire disk using terms that the BIOS can handle. The logical
geometry could theoretically end up with a smaller number of sectors than the physical,
but this would mean wasted space on the disk. It can never specify more sectors
than physically exist, of course.
Another way to get around the problem of complex internal geometry is to change the way
the drive is addressed completely. Instead of using the logical geometry numbers directly,
most modern drives can be accessed using logical block addressing (LBA).
With this method a totally different form of logical "geometry" is used: the
sectors are just given a numerical sequence starting with 0. Again, the drive just
internally translates these sequential numbers into physical sector locations. So the
drive above would have sectors numbered from 0 to 7,539,839. This is just yet another way
of providing access to the same sectors. You can read more about LBA here.
Today's drives are over 8.4 GB in size and have therefore run into an important hard
disk capacity barrier: the 8.4 GB (7.8 GiB) capacity
barrier. The largest logical parameters that can be used for accessing a standard
IDE/ATA drive using normal Int 13h BIOS routines are
1,024 cylinders, 256 heads, and 63 sectors. Since the ATA standard only allows a maximum
of 16 for the number of heads, BIOS translation is used to reduce the number of heads and
increase the number of cylinders in the specification (see
here for details on this). The practical result of all of this, is that the largest
logical geometry numbers for IDE/ATA drives are 16,383 cylinders, 16 heads and 63 sectors.
This yields a maximum capacity of 8.4 GB.
Drives larger than 8.4 GB can no longer be accessed using regular BIOS routines, and
require extended Int 13h capabilities. There is
no way to even represent their full capacity using regular IDE/ATA geometry
numbers. Therefore, these drives just specify 16,383 cylinders, 16 heads and 63 sectors to
the BIOS for compatibility. Then, access to the drive is performed directly by the Int 13h
extension routines, and the logical parameters are completely ignored. Here's how a modern
drive, the 34.2 GB IBM Deskstar 34GXP (model DPTA-373420), looks:
Specification |
Physical Geometry |
Logical Geometry |
Read/Write Heads |
10 |
16 |
Cylinders (Tracks
per Surface) |
17,494 |
16,383 |
Sectors Per Track |
272 to 452 |
63 |
Total Sectors |
66,835,440 |
16,514,064 |
As you can see, the logical and physical geometries clearly have nothing to do with
each other on drives this large, and even the total number of sectors is wrong in the
logical geometry. The drive must be accessed directly by an operating system
supporting Int 13h BIOS extensions to see the whole drive, or drive overlay software used. If the drive is addressed
using conventional geometry parameters, it will be limited in capacity to only 8.4 GB,
which in the case of this drive would mean wasting over 75% of its capacity. Since they
cannot have their true capacity expressed in terms of even logical geometry, all
large modern drives are accessed using logical block
addressing.
The translation between logical and physical geometry is the lowest level of
translation that occurs when using a modern hard disk. It is different from BIOS
translation, which occurs at a higher level and is described in the next section.
Next: BIOS Geometry Translation