Difference between revisions of "Storage"

From Vogons Wiki
Jump to: navigation, search
(Know your target)
(IDE and BIOS Limits)
Line 26: Line 26:
  
  
===IDE and BIOS Limits===
+
===IDE and BIOS Limits & Incompatibilities ===
* 528 MB limit - BIOS before July 1994 rarely support drives over 528MB (ATA0 Heads <= 16, BIOS Sectors <= 63, BIOS Cylinders <= 1024 )
+
* 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 )
+
* 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.  
 
* 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.
+
* 4.2 GB limit - BIOS before '''February 1997''' have the first 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)
+
* 7.9 GB limit - Other BIOS from this period had a 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 - Final CHS limit - Bios geometry translation uses heads as the lowest value in the sequence 16, 32, 64, 128, 255 to present an alternate geometry up to (1024 cylinders, 255 heads, 63 sectors). Hard drives oarger than 8.4GB report a geometry of 16383,16,63 to indicate  that they are larger than CHS
8.4 GB limit
+
* 33.8 GB limit - BIOS before August 1999 often stored the cylinders as a 16 bit value, so the max cylinders was 65535
-  
+
* 137.4 GB limit - BIOS before September 2001 only used ATA-5, which used 28 bits to identify each LBA sector, limiting drive capacity to 137GB. ATA-6 extended this to 48 bits. Hard drives over 137.4 GB should report an LBA capacity of 0xfffffff sectors and report the actual value in the 48-bit field.
w4 GB limit
+
* Early IDE drives do not always work correctly with mature LBA controllers and must be manually set to 'CHS' mode in order to operate correctly.
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===
 
===Modern Storage for Retro Computers===

Revision as of 23:09, 21 March 2021

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 & Incompatibilities

  • 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 February 1997 have the first 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 - Other BIOS from this period had a 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 - Final CHS limit - Bios geometry translation uses heads as the lowest value in the sequence 16, 32, 64, 128, 255 to present an alternate geometry up to (1024 cylinders, 255 heads, 63 sectors). Hard drives oarger than 8.4GB report a geometry of 16383,16,63 to indicate that they are larger than CHS
  • 33.8 GB limit - BIOS before August 1999 often stored the cylinders as a 16 bit value, so the max cylinders was 65535
  • 137.4 GB limit - BIOS before September 2001 only used ATA-5, which used 28 bits to identify each LBA sector, limiting drive capacity to 137GB. ATA-6 extended this to 48 bits. Hard drives over 137.4 GB should report an LBA capacity of 0xfffffff sectors and report the actual value in the 48-bit field.
  • Early IDE drives do not always work correctly with mature LBA controllers and must be manually set to 'CHS' mode in order to operate correctly.

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

Rare Legacy Storage