ATA Drive Capacity Limitations


ATA interface versions up through ATA-5 suffered from a drive capacity limitation of about 137GB (billion bytes). Depending on the BIOS used, this limitation could be further reduced to 8.4GB, or even as low as 528MB. This is due to limitations in both the BIOS and the ATA interface, which, when combined, create even further limitations. To understand these limits, you have to look at the BIOS (software) and ATA (hardware) interfaces together.

Note

In addition to the BIOS/ATA limitations discussed in this section, various operating system limitations also exist, as described later in this chapter.


When dealing with ATA drives, you face limitations of the ATA interface itself as well as limitations of the BIOS interface used to talk to the drive. A summary of these limitations is shown in Table 6.12.

Table 6.12. ATA/IDE Capacity Limitations for Various Sector Addressing Methods[1]

Sector Addressing Method

Total Sectors Calculation

Maximum Total Sectors

Maximum Capacity (Bytes)

Capacity (Decimal)

Capacity (Binary)

CHS: BIOS w/o TL

1024x16x63

1,032,192

528,482,304

528.48MB

504.00MiB

CHS: BIOS w/bit-shift TL

1024x240x63

15,482,880

7,927,234,560

7.93GB

7.38GiB

CHS: BIOS w/LBA-assist TL

1024x255x63

16,450,560

8,422,686,720

8.42GB

7.84GiB

CHS: BIOS INT13h

1024x256x63

16,515,072

8,455,716,864

8.46GB

7.88GiB

CHS: ATA-1/ATA-5

65536x16x255

267,386,880

136,902,082,560

136.90GB

127.50GiB

LBA: ATA-1/ATA-5

228

268,435,456

137,438,953,472

137.44GB

128.00GiB

LBA: ATA-6+

248

281,474,976,710,656

144,115,188,075,855,872

144.12PB

128.00PiB

LBA: EDD BIOS

264

18,446,744,073,709,551,616

9,444,732,965,739,290,427,392

9.44ZB

8.00ZiB


[1] Key: BIOS = basic input/output system; CHS = cylinder head sector; LBA = logical block (sector) address; w/ = with; w/o = without; TL = translation; INT13h = interrupt 13 hex; EDD = Enhanced Disk Drive specification (Phoenix/ATA); MB = megabytes; MiB = mebibytes; GB = gigabytes; GiB = gibibytes; PB = petabyte; PiB = pebibytes; ZB = zettabytes; and ZiB = zebibytes.

The following sections detail the differences between the various sector addressing methods and the limitations related to using them.

Prefixes for Decimal and Binary Multiples

You may be unfamiliar with the MiB (mebibyte), GiB (gibibyte), and so on designations used in this section and throughout the rest of the book. They are part of a standard designed to eliminate confusion between decimal- and binary-based multiples, especially in computer systems. Standard SI (system international, or metric system) units are based on multiples of 10. This worked well for most things, but not for computers, which operate in a binary world, where most numbers are based on powers of 2. This has resulted in different meanings being assigned to the same prefix; for example 1KB (kilobyte) could mean either 1,000 (103) bytes or 1,024 (210) bytes. To eliminate confusion, in December 1998 the International Electrotechnical Commission (IEC) approved as an international standard the prefix names and symbols for binary multiples used in data processing and transmission. Some of these prefixes are shown in Table 6.13.

Table 6.13. Standard Prefix Names and Symbols for Binary Multiples

Decimal Prefixes

Binary Prefixes

Factor

Symbol

Name

Value

Factor

Symbol

Name

Derivation

Value

103

K

Kilo

1,000

210

Ki

Kibi

Kilobinary

1,024

106

M

Mega

1,000,000

220

Mi

Mebi

Megabinary

1,048,576

109

G

Giga

1,000,000,000

230

Gi

Gibi

Gigabinary

1,073,741,824

1012

T

Tera

1,000,000,000,000

240

Ti

Tebi

Terabinary

1,099,511,627,776

1015

P

Peta

1,000,000,000,000,000

250

Pi

Pebi

Petabinary

1,125,899,906,842,624

1018

E

Exa

1,000,000,000,000,000,000

260

Ei

Exbi

Exabinary

1,152,921,504,606,846,976

1021

Z

Zetta

1,000,000,000,000,000,000,000

270

Zi

Zebi

Zettabinary

1,180,591,620,717,411,303,424


Under the IEC standard terminology, 1MB (megabyte) would be 1,000,000 bytes, whereas 1MiB (mebibyte) would be 1,048,576 bytes.

Note

For more information on these industry-standard decimal and binary prefixes, check out the National Institute of Standards and Technology (NIST) website, at http://physics.nist.gov/cuu/Units/prefixes.html.


BIOS Limitations

Motherboard ROM BIOS has been updated throughout the years to support larger and larger drives. Table 6.14 shows the most important relative dates when drive capacity limits were changed.

Table 6.14. Dates of Changes to Drive Capacity Limitations in the ROM BIOS

BIOS Date

Capacity Limit

August 1994

528MB

January 1998

8.4GB

September 2002

137GB


BIOSes dated September 2002 or newer should support drives larger than 137GB. Table 6.14 gives only general guidelines; to accurately determine the capacity limit for a specific system, you should check with your motherboard manufacturer. You can also use the BIOS Wizard utility at www.unicore.com/bioswiz/index2.html, which can tell you the BIOS date from your system and specifically whether your system supports the Enhanced Disk Drive (EDD) specification (which means drives over 8.4GB).

Generally, any server currently in use should support at least the EDD (8.4GB137GB) standard. You should upgrade the motherboard BIOS on a server that cannot support a hard disk greater than 8.4GB. Although other fixes such as using a BIOS upgrade card with onboard ATA/IDE ports or a software fix have been used on desktop systems, they are not suitable for servers.

Increasing ATA Drive Size: CHS and LBA Modes

There are two primary methods to address (or number) sectors on an ATA drive. The first method is called CHS (cylinder head sector), after the three respective coordinate numbers used to address each sector of the drive. The second method is called LBA (logical block address), and it uses a single number to address each sector on a drive. CHS was derived from the way drives were physically constructed (and is how they work internally), whereas LBA evolved as a simpler and more logical way to number the sectors, regardless of the internal physical construction.

CHS access limits the size of a hard disk to 528MB (decimal) or 504MiB. To overcome this limitation, the EDD specification was released by BIOS maker Phoenix Technologies in 1994. It specifies three ways to overcome the 528MB CHS barrier:

  • Use BIOS INT13h extensions supporting 64-bit LBA

  • Bit-shift geometric CHS translation

  • LBA-assist geometric CHS translation

The method for dealing with the CHS problem was called translation because it enabled additional subroutines in the BIOS to translate CHS parameters from ATA maximums to BIOS maximums (and vice versa). In an effort to make its methods standard among the entire PC industry, Phoenix released the EDD document publicly and allowed the technology to be used free of charge, even among its competitors, such as American Megatrends (AMI) and Award. The T13 committee in charge of ATA subsequently adopted the EDD standard and incorporated it into official ATA documents.

Although a few vendors standardized on the bit-shift method of translation (also known as Large, or Extended, CHS in BIOS Setup), LBA-assist (better known as LBA mode) became the de facto standard for translating drives greater than 528MB. Note that a BIOS configured in LBA mode cannot properly read a drive prepared using Large mode because the methods of capacity translation are different.

Problems with the implementation of Extended CHS translation caused several additional drive capacity barriers, including the 2.1GB barrier and the 4.2GB barrier. LBA mode avoids these problems.

For drives over 8.4GB, CHS geometry is no longer translated into LBA geometry, but the drive is accessed in a purely LBA mode. This feature was introduced in 1998 as part of the EDD standard.

The 8.4GB Barrier

Although CHS translation breaks the 528MB barrier, it runs into another barrier at 8.4GB. Supporting drives larger than 8.4GB requires leaving CHS behind and changing to LBA addressing at the BIOS level. Although, the ATA interface had always supported LBA addressing, even in the original ATA-1 specification, it had been optional, but the main problem was that there was no LBA support at the BIOS interface level. You could set LBA-assist translation in the BIOS Setup, but all that did was convert the drive LBA numbers to CHS numbers at the BIOS interface level.

Phoenix Technologies recognized that the BIOS interface needed to move from CHS to LBA early on and, beginning in 1994, it published the BIOS Enhanced Disk Drive Specification (EDD) specification, which addressed this problem with new extended INT13h BIOS services that worked with LBA rather than with CHS addresses.

To ensure industrywide support and compatibility for these new BIOS functions, in 1996, Phoenix turned this document over to the InterNational Committee on Information Technology Standards (INCITS) T13 technical committee for further enhancement and certification as the EDD standard. Starting in 1998, most of the other BIOS manufacturers began installing EDD support in their BIOSs, enabling BIOS-level LBA mode support for ATA drives larger than 8.4GB. This support arrived just in time because ATA drives of that size and larger became available the same year.

The EDD specification describes new extended INT13h BIOS commands that allow LBA addressing up to 264 sectors, which results in a theoretical maximum capacity of more than 9.44ZB (zettabytes, or quadrillion bytes). That is the same as saying 9.44 trillion GB: 9.441021 bytes, or, to be more precise, 9,444,732,965,739,290,427,392 bytes! This is theoretical capacity because even though by 1998 the BIOS could handle up to 264 sectors, ATA drives were still using only 28-bit addressing (228 sectors) at the ATA interface level. This limited an ATA drive to 268,435,456 sectors, which was a capacity of 137,438,953,472 bytes, or 137.44GB. Thus, the 8.4GB barrier had been broken, but another barrier remained at 137GB because of the 28-bit LBA addressing used in the ATA interface.

By using the new extended INT13h 64-bit LBA mode commands at the BIOS level as well as the existing 28-bit LBA mode commands at the ATA level, no translation would be required, and the LBA numbers would be passed unchanged. The combination of LBA at the BIOS and ATA interface levels meant that the clumsy CHS addressing could finally be laid to rest. This also means that when you install an ATA drive larger than 8.4GB in a PC that has an EDD-capable BIOS (1998 or newer), both the BIOS and the drive are automatically set to use LBA mode.

An interesting quirk is that to allow backward compatibility when you boot an older operating system that doesn't support LBA mode addressing (DOS or the original release of Windows 95, for example), most drives larger than 8.4GB report 16,383 cylinders, 16 heads, and 63 sectors per track, which is 8.4GB. For example, this enables a 120GB drive to be seen as an 8.4GB drive by older BIOSes or operating systems. It sounds strange, but having a 120GB drive being recognized as an 8.4GB drive is better than not having it work at all. (If you want to install a drive larger than 8.4GB into a system dated before 1998, the recommended solution is a motherboard BIOS upgrade.)

The 137GB Barrier and Beyond

By 2001, the 137GB barrier had become a problem because 3.5-inch hard drives were poised to breach that capacity level. The solution came in the form of ATA-6, which was being developed during that year. To enable the addressing of drives of greater capacity, ATA-6 upgraded the LBA functions from using 28-bit numbers to using larger 48-bit numbers.

The ATA-6 specification extends the LBA interface such that it can use 48-bit sector addressing. This means that the maximum capacity is increased to 248 (281,474,976,710,656) total sectors. Each sector stores 512 bytes, so this results in a maximum drive capacity of just over 144PB (petabytes, or quadrillion bytes)which should be sufficient for years to come.

Because, according to Moore's Law, hard disk drives have been doubling in capacity every 1.52 years, and considering that 200GB+ ATA drives were available in late 2003, it will probably take us until between the years 2031 and 2041 to reach the 144PB barrier (assuming that hard disk technology hasn't been completely replaced by then).

The 137GB barrier has proven a bit more complicated than previous barriers because, in addition to considering BIOS issues, we must also consider operating system issues. Internal ATA drives larger than 137GB require 48-bit LBA (logical block address) support. This support absolutely needs to be provided in the OS, but it can also be provided in the BIOS. It is best if both the OS and BIOS support it, but it can be made to work if only the OS does.

Windows versions that are suitable for server use and include 48-bit LBA support include the following:

  • Windows 2000 Server with Service Pack 3 (SP3) or later; SP4 or later is recommended for best performance

  • Windows XP with SP1 or later

  • Windows Server 2003

To have 48-bit LBA support in the BIOS requires either of the following:

  • A motherboard BIOS with 48-bit LBA support (most of those dated September 2002 or later)

  • An ATA host adapter card with onboard BIOS that includes 48-bit LBA support

If your motherboard BIOS does not have LBA support and an update is not available from your motherboard manufacturer, you can use a card to provide 48-bit LBA support. Vendors that offer 48-bit LBA support plus additional ATA, SATA, or ATA/SATA RAID host adapters include SIIG (www.siig.com) and Promise Technology (www.promisetech.com). These cards provide 48-bit LBA support for connected hard disk drives.

Note that if you have both BIOS and OS support, you can simply install and use the drive as you would any other. If you have no BIOS support but you do have OS support, portions of the drive past 137GB are not recognized or accessible until the OS is loaded. If you are installing the OS to a blank hard drive and booting from an original Windows XP (pre-SP1) CD-ROM or earlier, you need to partition and install up to the first 137GB of the drive at installation time. After installing the OS and then the SP1 update, you can either partition the remainder of the drive, using standard partitioning software, or use a third-party partitioning program such as PartitionMagic or Partition Commander to resize the first partition to use the full drive. If you are booting from a Windows XP SP1 or later CD-ROM, you can recognize and access the entire drive during the OS installation and partition the entire drive as a single partition greater than 137GB, if you want.

Finally, you should keep in mind that the versions of Windows 2000 and Windows XP prior to those listed earlier in this section do not provide native support for ATA (PATA and SATA) hard drives that are larger than 137GB. However, Windows Server 2003 has native support for 48-bit LBA.

Operating System and Other Software Limitations

If you use older software, including utilities, applications, or even operating systems that rely exclusively on CHS parameters, they will see all drives over 8.4GB as 8.4GB only. In this case, you need not only a newer BIOS but also newer software designed to handle the direct LBA addressing to work with drives over 8.4GB.

Table 6.15 lists server operating system limitations with respect to drives over 8.4GB.

Table 6.15. Server Operating System Limitations

Operating System

Limits for Hard Drive Size

Windows NT

Windows NT 3.5x does not support drives greater than 8.4GB. Windows NT 4.0 does support drivers greater than 8.4GB; however, when a drive larger than 8.4GB is being used as the primary bootable device, Windows NT does not recognize more than 8.4GB. Microsoft has released SP4 to correct this problem.

Windows 2000/XP

Windows 2000/XP supports drives greater than 8.4GB.

Windows Server 2003

Windows Server 2003 includes 48-bit LBA mode, so it can support drives over 137GB (as well as smaller drives).

OS/2 Warp

Some versions of OS/2 are limited to a boot partition size of 3.1GB or 4.3GB. IBM has a Device Driver Pack upgrade that enables the boot partition to be as large as 8.4GB. The HPFS file system in OS/2 supports drives up to 64GB.

Novell

NetWare 5.0 or later supports drives greater than 8.4GB.

Linux

The Ext2 file system (the default file system in all recent and current Linux distributions) supports partitions up to 4TB, with a maximum file size of 2GB.


In the case of operating systems that support drives over 8.4GB, the maximum drive size limitations are dependent on the BIOS and hard drive interface standard, not on the OS. In those cases, other limitations come into play for the volumes (partitions) and files that can be created and managed by the various operating systems. These limitations are dependent on not only the operating system involved but also the file system used for the volume. Table 6.16 shows the minimum and maximum volume (partition) size and file size limitations of the various Windows server operating systems. As noted in the previous section, the original version of Windows XP, as well as Windows 2000/NT or Windows 95, 98, or Me, does not currently provide native support for ATA hard drives that are larger than 137GB. You need to use Windows XP and ensure that you have SP1 or later installed to use an ATA drive over 137GB. This does not affect drives using USB, FireWire, SCSI, or other interfaces.

Table 6.16. Operating System Volume/File Size Limitations, by File System[1]

Limitation (File System)

FAT16

FAT32

NTFS

Min. Volume Size (NT/2000/XP)

2.092MB

33.554MB

1.000MB

Max. Volume Size (NT/2000/XP)

4.294GB

8.796GB

281.475TB

Max. File Size (all)

4.294GB

4.294GB

16.384TB


[1] Key: MB = megabytes; GB = gigabytes; and TB = terabytes.




Upgrading and Repairing Servers
Upgrading and Repairing Servers
ISBN: 078972815X
EAN: 2147483647
Year: 2006
Pages: 240

flylib.com © 2008-2017.
If you may any questions please contact us: flylib@qtcs.net