Storage
Contents
What controller will you use?
ISA IDE
- 16bit ISA controllers, common before 1995, that essentially connected IDE storage directly to the ISA bus
- Interface is slow enough that all storage built since 1995 connected to it will have similar performance
- Modern storage is very compatible with these adapters
- 528MB limit - BIOS before July 1994 rarely support drives over 528MB (IDE Heads <= 16, BIOS Sectors <= 63, BIOS Cylinders <= 1024 )
Early EIDE
- Common between 1993-1996
- Mid to Late 486
- VLB without BIOS support
- 528MB limit - BIOS before July 1994 rarely support drives over 528MB (IDE Heads <= 16, BIOS Sectors <= 63, BIOS Cylinders <= 1024 )
- 2GB limit - BIOS before May 1996 rarely support drives larger than 2015 MB ( BIOS cylinder values <= 4095 )
- Phoenix BIOS 4.03 and 4.04 lock when a drive is configured with a capacity over 3277 MB.
Changing ATA (ATA-33 & ATA-66)
- Common between 1995-1998
- Late 486 and Pentium Socket 7 systems
- 2GB limit - BIOS before May 1996 rarely support drives larger than 2015 MB ( BIOS cylinder values <= 4095 )
- 8GB limit - DOS and Windows 95/98 are limited to 255 Heads.
Mature ATA (ATA-100 & ATA-133)
- Common between 1999-2010
- Little performance difference between the two protocols
- Require connection to the CPU faster PCI to reach full potential
- BIOS before 2002 rarely supports 128GB drives
Sata IDE
IDE and BIOS Limits
- 528 MB limit - BIOS before July 1994 rarely support drives over 528MB (ATA0 Heads <= 16, BIOS Sectors <= 63, BIOS Cylinders <= 1024 )
- 2015 MB limit - BIOS before May 1996 rarely support drives larger than 2015 MB ( BIOS cylinder values <= 4095 )
- 3277 MB limit - Phoenix BIOS 4.03 and 4.04 lock when a drive is configured with a capacity over 3277 MB.
- 4.2 GB limit - BIOS before Feb 1997 have the ECHS (Extended CHS) limit. DOS and Windows 95/98 cannot handle 256 heads. 'Large' mode in the BIOS produces an alternate geometry by doubling the number of heads and halving the number of cylinders shown to DOS to keep the cylinders below 1024. This method stops working at 4032 MB (1024 cylinders, 128 heads, 63 sectors) if the drive reports 16 heads.
- 7.9 GB limit - Revised ECHS limit. 'Large' mode in the BIOS by presenting an alternate geometry using multiples of 15 heads so that 240 heads can be presented as the max alternate geometry. This method stops working at 7560 MB (1024 cylinders, 240 heads, 63 sectors)
8.4 GB limit - w4 GB limit Finally, if the BIOS does all it can to make this translation a success, and uses 255 heads and 63 sectors/track (`assisted LBA' or just `LBA') it may reach 1024*255*63*512=8422686720 bytes, slightly less than the earlier 8.5 GB limit because the geometries with 256 heads must be avoided. (This translation will use for the number of heads the first value H in the sequence 16, 32, 64, 128, 255 for which the total disk capacity fits in 1024*H*63*512, and then computes the number of cylinders C as total capacity divided by (H*63*512).)
The 33.8 GB limit (August 1999) The next hurdle comes with a size over 33.8 GB. The problem is that with the default 16 heads and 63 sectors/track this corresponds to a number of cylinders of more than 65535, which does not fit into a short. Many BIOSes couldn't handle such disks. (See, e.g., Asus upgrades for new flash images that work.) Linux kernels older than 2.2.14 / 2.3.21 need a patch. See IDE problems with 34+ GB disks below.
The 137 GB limit (Sept 2001) As mentioned above, the old ATA protocol uses 16+4+8 = 28 bits to specify the sector number, and hence cannot address more than 2^28 sectors. ATA-6 describes an extension that allows the addressing of 2^48 sectors, a million times as much. There is support in very recent kernels.
The 2 TiB limit With 32-bit sector numbers, one can address 2 TiB. A lot of software will have to be rewritten once disks get larger.
Hard drives over 8.4 GB are supposed to report their geometry as 16383/16/63. This in effect means that the `geometry' is obsolete, and the total disk size can no longer be computed from the geometry, but is found in the LBA capacity field returned by the IDENTIFY command. Hard drives over 137.4 GB are supposed to report an LBA capacity of 0xfffffff = 268435455 sectors (137438952960 bytes). Now the actual disk size is found in the new 48-capacity field.
Modern Storage for Retro Computers
SD to IDE Pros
- SD Cards are cheap
- Quick response on small reads and writes
CF (Compact Flash) Pata DOM (Disk on Module) Sata Drive mSata M2 Sata USB to IDE Sata SSD Sata DOM
Common Legacy Storage
Sata DOM