Difference between revisions of "Storage"

From Vogons Wiki
Jump to: navigation, search
(Common BIOS Storage Limitations)
(CF (Compact Flash))
 
(33 intermediate revisions by the same user not shown)
Line 3: Line 3:
 
'''Early IDE (ATA-0 & ATA-1) '''
 
'''Early IDE (ATA-0 & ATA-1) '''
 
* IDE for 16bit ISA controllers, connects IDE storage devices directly to the ISA/AT bus
 
* IDE for 16bit ISA controllers, connects IDE storage devices directly to the ISA/AT bus
* Few storage devices from this period supported the DMA modes.
+
* Storage transfer rates depend on the clock speed of the ISA bus
* Processors <= 486 are often CPU limited in most applications before they reach theoretical ATA throughput limits
+
* Most devices use PIO (Polled Input Output ) transfers that require the CPU to transfer each IO.
* Most contemporary PATA storage devices are highly compatible with early IDE controllers
+
* Limited Multiword and DMA support
 +
* ATA-1 is the base compatibility mode for ATA devices up to 128GB (LBA-28 addressing)
  
'''EIDE (ATA-3 & ATA-4, UDMA/33 )'''
+
'''EIDE, Fast ATA (ATA-2 & ATA-3 )'''
* Common between 1993-1998: VLB & PCI 486 boards, Socket 4,5 & 7 Pentiums, Pentium II.
+
* Common between 1994-1997: Late Socket 3, Socket 4,5,6, early Socket 7
* 80 connector IDE cables recommended but not required for these devices
+
* PIO modes up to 16Mhz for moderately transfer rates in some cases with non-ISA controllers
* Most systems show a noticeable performance improvement when multiword IO and DMA modes are enabled
+
* Limited Multiword and DMA support
* DOS requires a UDMA compatible BIOS or UDMA drivers in config.sys to take advantage of the advanced transfer modes.
+
* Not uncommon for newer ATA devices to bypass ATA-2 and ATA-3 when negotiating ATA protocols
 +
* Controllers from this period were often desired for the BIOS support of storage >512MB rather than improved transfer rates
  
'''Mature PATA (ATA-6 and newer: Ultra ATA-66, ATA-100 & ATA-133)'''
+
'''ATA-4, UDMA/33, Ultra ATA/33'''
* Common between 1999-2010: Pentium 3 & Athlon through Core2
+
* Common between 1998-1999: Pentium II & III, Super Socket 7, Early Athlon
 +
* Operated at 33MHz for significant performance increases
 +
* 80 connector IDE cables recommended but not required
 +
* Offers UDMA bus master transfer modes modes offer superior performance with lower CPU overhead
 +
* DOS requires a UDMA compatible BIOS or drivers in config.sys to enable UDMA Bus mastering
 +
* Windows 98 requires manual intervention in Device manager to enable UDMA Bus mastering
 +
 
 +
'''Mature PATA (ATA-5, ATA-6: Ultra ATA-66, ATA-100 & ATA-133)'''
 +
* Common between 2000-2010: Later Pentium 3 & Athlon through Core2
 
* 80 connector IDE cables required to negotiate 66Mhz speeds or higher.  
 
* 80 connector IDE cables required to negotiate 66Mhz speeds or higher.  
 
* 80 connector IDE cables can be simulated by grounding Pin #34 for devices with a 40 pin female connector that do not use a cable
 
* 80 connector IDE cables can be simulated by grounding Pin #34 for devices with a 40 pin female connector that do not use a cable
* UDMA modes offer a significant increase in performance over PIO modes in most cases.
+
* Devices offer transfer rates higher than PCI bus speeds
* Storage devices show a small performance increase when using ATA-133 over ATA-66
+
* Controllers connected using IHA (Intel Hub Architecture) or Vlink rarely show significant real world performance over PCI attached controllers
* Storage devices show a small performance increase when using IHA (Intel Hub Architecture) or Vlink attached controllers over a PCI attached controller
+
* Storage Devices connected at ATA-100 or ATA-133 rarely show much of a performance increase over ATA-66
* DOS requires a UDMA compatible BIOS or UDMA drivers in config.sys to take advantage of the advanced transfer modes.
+
* ATA-6 Supports devices larger than 128GB, offering LBA-48 addressing
  
 
More information about PATA ATA is available here: https://en.wikipedia.org/wiki/Parallel_ATA
 
More information about PATA ATA is available here: https://en.wikipedia.org/wiki/Parallel_ATA
Line 31: Line 41:
  
 
'''NVMe'''
 
'''NVMe'''
* Common after 2018, no longer uses ATA protocols
+
* Common after 2018, not IDE, no longer uses ATA protocols
 
* Uses the same M2 connector as NGFF Sata, but with different notches
 
* Uses the same M2 connector as NGFF Sata, but with different notches
 
* Connects storage directly to PCI-E
 
* Connects storage directly to PCI-E
  
 
== Common BIOS Storage Limitations  ==
 
== Common BIOS Storage Limitations  ==
* '''July 1994''' - 528 MB limit - Original CHS limit - BIOS before this date rarely support drives over 528MB.  These systems are limitted to 1024 Cylinders, 16 Heads, 63 Sectors/Track.  These systems either don't allow or don't function  if larger values are configured.   
+
* '''July 1994''' - 504/528 MB limit - Original CHS ('''C'''ylinders/'''H'''eads/'''S'''ectors) limit - BIOS before this date rarely support drives over 528MB.  As released, these systems were limited to 1024 Cylinders, 16 Heads, 63 Sectors/Track.  These systems either don't allow larger values to be entered, or were not stable when larger values are configured.   
* '''May 1996''' - 2015 MB limit - INT 13h limit - Some BIOS before this date allow drives up to 2015 MB by updating INT 13h to allow cylinder up to 4095.  Head limit remained at 16, Sectors/Track at 63.  Not suppported by Microsoft Operating Systems before Win95 SR2.
+
* '''May 1996''' - 2015 MB limit - INT 13h limit - Some BIOS before this date allow drives up to 2015 MB by updating INT 13h to allow Cylinder values up to 4095.  Head limit remained at 16, Sectors/Track at 63.  Not supported by Microsoft Operating Systems before Win95 SR2.
 
* '''Phoenix BIOS 4.03 and 4.04''' - 3277 MB limit - The BIOS config screen locks if a drive is configured with a capacity over 3277 MB.  
 
* '''Phoenix BIOS 4.03 and 4.04''' - 3277 MB limit - The BIOS config screen locks if a drive is configured with a capacity over 3277 MB.  
 
* '''February 1997'''  
 
* '''February 1997'''  
Line 45: Line 55:
 
* '''August 1999''' - 33.8 GB limit - BIOS before this date often stored the cylinders as a 16 bit value, so they may have issues when a drive reports cylinders > 65535.  Drives from this era often had a jumper to limit cylinders = 65535.
 
* '''August 1999''' - 33.8 GB limit - BIOS before this date often stored the cylinders as a 16 bit value, so they may have issues when a drive reports cylinders > 65535.  Drives from this era often had a jumper to limit cylinders = 65535.
 
* '''September 2001''' - 137.4 GB limit - BIOS before this date only used ATA-5, which used 28 bits to identify each LBA sector, limiting drive capacity to 137GB.  ATA-6 added an additional 48bit LBA sector field.
 
* '''September 2001''' - 137.4 GB limit - BIOS before this date only used ATA-5, which used 28 bits to identify each LBA sector, limiting drive capacity to 137GB.  ATA-6 added an additional 48bit LBA sector field.
 
== Common OS Storage Limitations  ==
 
* Most versions of DOS (including Windows 95/98) require volumes to have heads <= 255, Sectors <= 63.  These operating systems fail if the BIOS is configured with [http://web.allensmith.net/Storage/firmware/over4gb.htm Heads >= 256].
 
* DOS with FAT12 allowed for 32MB partitions using the largest cluster size
 
* DOS with FAT16B allowed for 2GB partitions with the default cluster size
 
* DOS/Win with FAT32 allowed for 2TB partitions with the default cluster size
 
* Windows 98/Me require a patch for LBA48 support and are limitted to 137.4GB LBA drives.
 
* Linux kernels older than 2.0.39 / 2.2.14 / 2.3.21 [https://tldp.org/HOWTO/Large-Disk-HOWTO-12.html require a patch to work with cylinders > 65535].
 
* Microsoft Operating Systems up through Windows 7 & Server 2008r2 still use CHS addressing when booting from a master boot record
 
 
* Hard drives that report a CHS geometry of 16383 Cylinders, 16 Heads and 63 Sectors/Track are indicating that they are larger than ECHS geometry translation allows and that LBA or LBA48 should be used  
 
* Hard drives that report a CHS geometry of 16383 Cylinders, 16 Heads and 63 Sectors/Track are indicating that they are larger than ECHS geometry translation allows and that LBA or LBA48 should be used  
 
* Hard drives that report an LBA capacity of 0xfffffff are indicating that they are larger than LBA allows and that LBA48 should be used
 
* Hard drives that report an LBA capacity of 0xfffffff are indicating that they are larger than LBA allows and that LBA48 should be used
 +
* Number of Heads had a limit of 255 in MS-DOS so no BIOS was ever enhanced to allow more than 255 Heads.
 +
* Sectors/Track was limited to 63 in early BIOS and was never addressed because increasing the number of allowable Cylinders & switching to LBA fixed most storage issues.
  
 
== Overcoming Limitations and Incompatibilities ==
 
== Overcoming Limitations and Incompatibilities ==
 
* Systems with BIOS limitations can be configured to work with larger drives using one of these three techniques:
 
* Systems with BIOS limitations can be configured to work with larger drives using one of these three techniques:
 +
** Configure the drive with geometry with Cylinders < 1024, Heads <= 16, and Sectors <= 63 in the BIOS and install [http://vogonsdrivers.com/index.php?catid=19 drive overlay software] that replaces the BIOS routines when the boot sector is loaded
 
** Upgrade your BIOS using a new BIOS from the motherboard manufacturer or from a third party such as [https://www.vogons.org/viewtopic.php?f=46&t=59146 MR BIOS] that works with your motherboard
 
** Upgrade your BIOS using a new BIOS from the motherboard manufacturer or from a third party such as [https://www.vogons.org/viewtopic.php?f=46&t=59146 MR BIOS] that works with your motherboard
 
** Install an add-in card with an option ROM extension that replaces the BIOS disk routines before BOOT such as [https://www.xtideuniversalbios.org/ XTIDE UniversalBIOS] or [http://vogonsdrivers.com/getfile.php?fileid=1816 SIIG Enhanced BIOS]
 
** Install an add-in card with an option ROM extension that replaces the BIOS disk routines before BOOT such as [https://www.xtideuniversalbios.org/ XTIDE UniversalBIOS] or [http://vogonsdrivers.com/getfile.php?fileid=1816 SIIG Enhanced BIOS]
** Configure the drive with an acceptable geometry in the BIOS and install [http://vogonsdrivers.com/index.php?catid=19 drive overlay software] that replaces the BIOS routines when the boot sector is loaded
+
* Drive overlay software is usually the easiest option
 +
* "EZ Drive" overlay software usually works with partition types and drive geometries that are compatible with modern operating systems. This can be helpful if you plan to move storage devices between computers.
 
* Early LBA drives do not always work correctly with mature LBA controllers.  This can be resolved by configuring the drive mode as 'CHS' or 'Normal' in the BIOS.
 
* Early LBA drives do not always work correctly with mature LBA controllers.  This can be resolved by configuring the drive mode as 'CHS' or 'Normal' in the BIOS.
 
* Mature ATA6 storage devices may have trouble negotiating a compatible configuration with some early ATA-3 & ATA-4 controllers.  This can be resolved by disabling ATA33 or UDMA modes in the BIOS.
 
* Mature ATA6 storage devices may have trouble negotiating a compatible configuration with some early ATA-3 & ATA-4 controllers.  This can be resolved by disabling ATA33 or UDMA modes in the BIOS.
* PATA speeds faster than UDMA2 (such as ATA-5, Ultra ATA/66, UDMA3, UDMA/66) require a ground or open circuit on IDE pin #34. Usually this can be done with an 80 wire IDE cable.
+
* PATA speeds faster than UDMA2 (such as ATA-5, Ultra ATA/66, UDMA3, UDMA/66) require a ground or open circuit on IDE pin #34. Usually this can be done with an 80 wire IDE cable, but can also be accomplished by grounding or removing pin #34.
 +
 
 +
== Common OS Storage Limitations  ==
 +
* Microsoft DOS (including Windows 95/98) require heads <= 255
 +
* Full support for enhanced INT 13h (Cylinders >= 1024 / disks larger than 8.4GB) arrived with these releases:
 +
** Windows 95 OEM Service Release 2
 +
** Windows 2000
 +
** IBM OS/2 Warp Client version 4.0.14.
 +
** LILO version 21.4
 +
* Windows 98 require a patch for LBA48 support and is limited to 137.4GB LBA drives without it.
 +
* Linux kernels older than 2.0.39 / 2.2.14 / 2.3.21 [https://tldp.org/HOWTO/Large-Disk-HOWTO-12.html require a patch to work with cylinders > 65535].
 +
* Microsoft Operating Systems up through Windows 7 & Server 2008r2 use CHS addressing when booting from a master boot record
 +
 
 +
== Common File System / Partitioning Limitations  ==
 +
* DOS with FAT12 allowed for 32MB partitions using the largest cluster size
 +
* DOS with FAT16B allowed for 2GB partitions with the default cluster size
 +
* DOS/Win with FAT32 allowed for 2TB partitions with the default cluster size
  
 
==Modern Storage for Retro Computers==
 
==Modern Storage for Retro Computers==
Line 73: Line 94:
 
'''Pros'''
 
'''Pros'''
 
* Still very common
 
* Still very common
* Contains a PATA controller, so most adpters are inexpensive pass though adapters
+
* Contains a PATA controller, so most adapters are inexpensive pass though adapters
 
* Very easy to transport between old and new systems
 
* Very easy to transport between old and new systems
 
* Rugged form factor that is difficult to damage
 
* Rugged form factor that is difficult to damage
 
'''Cons'''
 
'''Cons'''
 
* Devices have been made for a long by many different companies so there is a wide spectrum of performance between the best and worst devices
 
* Devices have been made for a long by many different companies so there is a wide spectrum of performance between the best and worst devices
* Some CF devices are optimised for storing a few large files and perform slower than expected on rapid small file access
+
* Some CF devices are optimized for storing a few large files and perform slower than expected on rapid small file access
 
* Rare CF devices have issues negotiating ATA protocols with early ATA-2 and ATA-3 controllers
 
* Rare CF devices have issues negotiating ATA protocols with early ATA-2 and ATA-3 controllers
 
* Rare CF devices require 3.3v power, which requires an adapter with a voltage regulator
 
* Rare CF devices require 3.3v power, which requires an adapter with a voltage regulator
 
* CF is slowly becoming obsolete.
 
* CF is slowly becoming obsolete.
 +
* Pin28 issues on old boards.  Some pre 1991 systems experience video corruption with CF's https://www.vogons.org/viewtopic.php?p=1142705
  
 
=== SD to IDE Adapters: ===
 
=== SD to IDE Adapters: ===
Line 98: Line 120:
 
'''Pros'''
 
'''Pros'''
 
* Does not require an adapter or cable, sits right on the IDE block for a less cluttered case
 
* Does not require an adapter or cable, sits right on the IDE block for a less cluttered case
* Most DOM devices offer application performance on par with the best SD and CF devices
+
* Most DOM devices offer performance on par with the best SD and CF devices
 
'''Cons'''
 
'''Cons'''
 
* Hardware mod (short pin 34) or Female-Female 40 pin cable necessary to negotiate speeds faster that ATA-4 / UDMA2
 
* Hardware mod (short pin 34) or Female-Female 40 pin cable necessary to negotiate speeds faster that ATA-4 / UDMA2
 
* Some DOM devices have issues negotiating ATA protocols with early ATA-2 and ATA-3 controllers
 
* Some DOM devices have issues negotiating ATA protocols with early ATA-2 and ATA-3 controllers
* DOM devices usually have ide latches to firmly connect to the controll IDE pin blocks. These latches can break brittle plastic on an old motherboard
+
* DOM devices usually have ide latches that firmly connect to the IDE pin-blocks. These latches can stress brittle plastic on old motherboards
* Difficult to connect to a new PC without a Female-Female 40 pin cable
+
* Difficult to connect to a new PC without a Female-Female 40 pin cross over cable
 
+
=== Write Amplification and wear leveling: ===
+
* It isn't clear how well CF, SD, and DOM devices handle wear leveling without doing a lot of research on your specific device
+
* Very few, if any of these devices support trim commands, but since operating systems before < Windows 7 don't support it either, it usually doesn't matter
+
* Purchasing a device that is 100% larger than your storage requirement is often an effective way of preventing write amplication related performance issues
+
* For Win98, consider adding "ConservativeSwapfileUsage=1" to your system.ini to reduce unnecessary swap file usage if you have > 16MB ram
+
* For WinXP, consider adding extra ram to reduce swap file usage
+
* It isn't clear how any of these devices will respond to an ATA Secure erase command to reset the device's wear leveling
+
  
 
=== Sata SSD: ===
 
=== Sata SSD: ===
 
'''Pros'''
 
'''Pros'''
* Best performance, expecially when the device has a write buffer
+
* Best performance, especially when the device has a write buffer
 
* Usually supports TRIM and wear leveling
 
* Usually supports TRIM and wear leveling
 
* In 2021, NGFF and M2 devices have affordable pricing for builds between 16GB and 64GB
 
* In 2021, NGFF and M2 devices have affordable pricing for builds between 16GB and 64GB
Line 121: Line 135:
 
'''Cons'''
 
'''Cons'''
 
* You may need one or more adapters if you want to connect your device to a 40 pin IDE controller
 
* You may need one or more adapters if you want to connect your device to a 40 pin IDE controller
* More convenient to move between systems than DOM, but not as easy as SD and CF
+
* More convenient to move between systems than a DOM, but not as easy as SD and CF
 +
* Sata --> Pata converters usually require Sata 1 protocols and some recent Sata devices lack full Sata 1 support.  (e.g. PNY)
 +
 
 +
== Write Amplification and wear leveling: ==
 +
* It isn't clear how any single CF, SD, and DOM devices handles wear leveling without doing a lot of research on that specific device.
 +
* Unclear if any SD devices support trim commands in a way that is usable through an SD-->PATA adapter.
 +
* Few operating systems before 2009 (Windows 7) support TRIM commands, so even if the storage device supports TRIM, it might not be accessible.
 +
* Some retro enthusiasts avoid filling solid state storage devices over 50% as a way reduce the likelihood of write amplification reducing performance.
 +
* For Win98, consider adding "ConservativeSwapfileUsage=1" to your system.ini to reduce unnecessary swap file usage.
 +
* For WinXP, consider adding extra ram to reduce swap file usage.
 +
* It isn't clear how any of these devices will respond to an ATA Secure erase command to reset the device's wear leveling.
 +
 
 +
==Removable Storage Speed Ratings ==
  
 
=== CF Revisions ===
 
=== CF Revisions ===
Line 193: Line 219:
 
|}
 
|}
  
Application Performance Class is defined in SD Specification 5.1 and 6.0 which mandates a minimum IOPS for reading and writing, which more closly alligns with computing work loads.
+
Application Performance Class is defined in SD Specification 5.1 and 6.0 which mandates a minimum IOPS for reading and writing, which more closely aligns with computing work loads.
  
 
{| class="wikitable"  
 
{| class="wikitable"  

Latest revision as of 04:42, 2 March 2023

Common IDE Categories

Early IDE (ATA-0 & ATA-1)

  • IDE for 16bit ISA controllers, connects IDE storage devices directly to the ISA/AT bus
  • Storage transfer rates depend on the clock speed of the ISA bus
  • Most devices use PIO (Polled Input Output ) transfers that require the CPU to transfer each IO.
  • Limited Multiword and DMA support
  • ATA-1 is the base compatibility mode for ATA devices up to 128GB (LBA-28 addressing)

EIDE, Fast ATA (ATA-2 & ATA-3 )

  • Common between 1994-1997: Late Socket 3, Socket 4,5,6, early Socket 7
  • PIO modes up to 16Mhz for moderately transfer rates in some cases with non-ISA controllers
  • Limited Multiword and DMA support
  • Not uncommon for newer ATA devices to bypass ATA-2 and ATA-3 when negotiating ATA protocols
  • Controllers from this period were often desired for the BIOS support of storage >512MB rather than improved transfer rates

ATA-4, UDMA/33, Ultra ATA/33

  • Common between 1998-1999: Pentium II & III, Super Socket 7, Early Athlon
  • Operated at 33MHz for significant performance increases
  • 80 connector IDE cables recommended but not required
  • Offers UDMA bus master transfer modes modes offer superior performance with lower CPU overhead
  • DOS requires a UDMA compatible BIOS or drivers in config.sys to enable UDMA Bus mastering
  • Windows 98 requires manual intervention in Device manager to enable UDMA Bus mastering

Mature PATA (ATA-5, ATA-6: Ultra ATA-66, ATA-100 & ATA-133)

  • Common between 2000-2010: Later Pentium 3 & Athlon through Core2
  • 80 connector IDE cables required to negotiate 66Mhz speeds or higher.
  • 80 connector IDE cables can be simulated by grounding Pin #34 for devices with a 40 pin female connector that do not use a cable
  • Devices offer transfer rates higher than PCI bus speeds
  • Controllers connected using IHA (Intel Hub Architecture) or Vlink rarely show significant real world performance over PCI attached controllers
  • Storage Devices connected at ATA-100 or ATA-133 rarely show much of a performance increase over ATA-66
  • ATA-6 Supports devices larger than 128GB, offering LBA-48 addressing

More information about PATA ATA is available here: https://en.wikipedia.org/wiki/Parallel_ATA

SATA

  • Common after 2004
  • Early SATA devices were often PATA devices with a SATA bridge
  • Bridges are commonly available today to connect PATA devices to SATA controllers & vice versa.
  • Sata Connector / mSata Connector / M2 Sata connector (NGFF)

NVMe

  • Common after 2018, not IDE, no longer uses ATA protocols
  • Uses the same M2 connector as NGFF Sata, but with different notches
  • Connects storage directly to PCI-E

Common BIOS Storage Limitations

  • July 1994 - 504/528 MB limit - Original CHS (Cylinders/Heads/Sectors) limit - BIOS before this date rarely support drives over 528MB. As released, these systems were limited to 1024 Cylinders, 16 Heads, 63 Sectors/Track. These systems either don't allow larger values to be entered, or were not stable when larger values are configured.
  • May 1996 - 2015 MB limit - INT 13h limit - Some BIOS before this date allow drives up to 2015 MB by updating INT 13h to allow Cylinder values up to 4095. Head limit remained at 16, Sectors/Track at 63. Not supported by Microsoft Operating Systems before Win95 SR2.
  • Phoenix BIOS 4.03 and 4.04 - 3277 MB limit - The BIOS config screen locks if a drive is configured with a capacity over 3277 MB.
  • February 1997
    • 4.2 GB limit - ECHS limit (Extended CHS) - Some BIOS before this date allow a 'Large' mode in the BIOS that produces an alternate geometry by doubling the number of heads and halving the number of cylinders shown to DOS until cylinders <= 1024. The limit for this method for drives that report 16 heads is 4032 MB (C=1024, H = 128, S = 63).
    • 7.9 GB limit - Revised ECHS limit. Other BIOS from this period have a 'Large' mode in the BIOS that presents an alternate geometry using multiples of 15 heads, up to 240 heads. This method stops working at 7560 MB (C=1024, H=240, S=63)
    • 8.4 GB limit - Final ECHS limit - BIOS geometry uses head value from the sequence 16, 32, 64, 128, 255 to present an alternate geometry up to 8.4 GB (C=1024, H=255, S=63).
  • August 1999 - 33.8 GB limit - BIOS before this date often stored the cylinders as a 16 bit value, so they may have issues when a drive reports cylinders > 65535. Drives from this era often had a jumper to limit cylinders = 65535.
  • September 2001 - 137.4 GB limit - BIOS before this date only used ATA-5, which used 28 bits to identify each LBA sector, limiting drive capacity to 137GB. ATA-6 added an additional 48bit LBA sector field.
  • Hard drives that report a CHS geometry of 16383 Cylinders, 16 Heads and 63 Sectors/Track are indicating that they are larger than ECHS geometry translation allows and that LBA or LBA48 should be used
  • Hard drives that report an LBA capacity of 0xfffffff are indicating that they are larger than LBA allows and that LBA48 should be used
  • Number of Heads had a limit of 255 in MS-DOS so no BIOS was ever enhanced to allow more than 255 Heads.
  • Sectors/Track was limited to 63 in early BIOS and was never addressed because increasing the number of allowable Cylinders & switching to LBA fixed most storage issues.

Overcoming Limitations and Incompatibilities

  • Systems with BIOS limitations can be configured to work with larger drives using one of these three techniques:
    • Configure the drive with geometry with Cylinders < 1024, Heads <= 16, and Sectors <= 63 in the BIOS and install drive overlay software that replaces the BIOS routines when the boot sector is loaded
    • Upgrade your BIOS using a new BIOS from the motherboard manufacturer or from a third party such as MR BIOS that works with your motherboard
    • Install an add-in card with an option ROM extension that replaces the BIOS disk routines before BOOT such as XTIDE UniversalBIOS or SIIG Enhanced BIOS
  • Drive overlay software is usually the easiest option
  • "EZ Drive" overlay software usually works with partition types and drive geometries that are compatible with modern operating systems. This can be helpful if you plan to move storage devices between computers.
  • Early LBA drives do not always work correctly with mature LBA controllers. This can be resolved by configuring the drive mode as 'CHS' or 'Normal' in the BIOS.
  • Mature ATA6 storage devices may have trouble negotiating a compatible configuration with some early ATA-3 & ATA-4 controllers. This can be resolved by disabling ATA33 or UDMA modes in the BIOS.
  • PATA speeds faster than UDMA2 (such as ATA-5, Ultra ATA/66, UDMA3, UDMA/66) require a ground or open circuit on IDE pin #34. Usually this can be done with an 80 wire IDE cable, but can also be accomplished by grounding or removing pin #34.

Common OS Storage Limitations

  • Microsoft DOS (including Windows 95/98) require heads <= 255
  • Full support for enhanced INT 13h (Cylinders >= 1024 / disks larger than 8.4GB) arrived with these releases:
    • Windows 95 OEM Service Release 2
    • Windows 2000
    • IBM OS/2 Warp Client version 4.0.14.
    • LILO version 21.4
  • Windows 98 require a patch for LBA48 support and is limited to 137.4GB LBA drives without it.
  • Linux kernels older than 2.0.39 / 2.2.14 / 2.3.21 require a patch to work with cylinders > 65535.
  • Microsoft Operating Systems up through Windows 7 & Server 2008r2 use CHS addressing when booting from a master boot record

Common File System / Partitioning Limitations

  • DOS with FAT12 allowed for 32MB partitions using the largest cluster size
  • DOS with FAT16B allowed for 2GB partitions with the default cluster size
  • DOS/Win with FAT32 allowed for 2TB partitions with the default cluster size

Modern Storage for Retro Computers

CF (Compact Flash)

A popular portable storage format developed in 1994 that is compatible with IDE signaling and ATA protocols. Standard has not significantly changed since PATA matured.

Pros

  • Still very common
  • Contains a PATA controller, so most adapters are inexpensive pass though adapters
  • Very easy to transport between old and new systems
  • Rugged form factor that is difficult to damage

Cons

  • Devices have been made for a long by many different companies so there is a wide spectrum of performance between the best and worst devices
  • Some CF devices are optimized for storing a few large files and perform slower than expected on rapid small file access
  • Rare CF devices have issues negotiating ATA protocols with early ATA-2 and ATA-3 controllers
  • Rare CF devices require 3.3v power, which requires an adapter with a voltage regulator
  • CF is slowly becoming obsolete.
  • Pin28 issues on old boards. Some pre 1991 systems experience video corruption with CF's https://www.vogons.org/viewtopic.php?p=1142705

SD to IDE Adapters:

Pros

  • SD devices are a very common and affordable storage media
  • Usually provides good response on application style work loads (small reads and writes)
  • Easy to transport between old and new systems

Cons

  • The most popular adapter (Sintechi) is limitted to High Speed SD (25MB/s) regardless of your SD device's capabilities, which can be limitting on computers using ATA-4 and faster IDE controllers.
  • The most popular adapter (Sintechi) has issues negotiating ATA protocols with some early ATA-2 and ATA-3 controllers
  • Old & low quality SD devices can limit performance
  • Micro SD cards can be easy to lose or damage

Disk on Module (Dom):

Pros

  • Does not require an adapter or cable, sits right on the IDE block for a less cluttered case
  • Most DOM devices offer performance on par with the best SD and CF devices

Cons

  • Hardware mod (short pin 34) or Female-Female 40 pin cable necessary to negotiate speeds faster that ATA-4 / UDMA2
  • Some DOM devices have issues negotiating ATA protocols with early ATA-2 and ATA-3 controllers
  • DOM devices usually have ide latches that firmly connect to the IDE pin-blocks. These latches can stress brittle plastic on old motherboards
  • Difficult to connect to a new PC without a Female-Female 40 pin cross over cable

Sata SSD:

Pros

  • Best performance, especially when the device has a write buffer
  • Usually supports TRIM and wear leveling
  • In 2021, NGFF and M2 devices have affordable pricing for builds between 16GB and 64GB
  • Usually responds well to an ATA Secure erase command to reset wear leveling

Cons

  • You may need one or more adapters if you want to connect your device to a 40 pin IDE controller
  • More convenient to move between systems than a DOM, but not as easy as SD and CF
  • Sata --> Pata converters usually require Sata 1 protocols and some recent Sata devices lack full Sata 1 support. (e.g. PNY)

Write Amplification and wear leveling:

  • It isn't clear how any single CF, SD, and DOM devices handles wear leveling without doing a lot of research on that specific device.
  • Unclear if any SD devices support trim commands in a way that is usable through an SD-->PATA adapter.
  • Few operating systems before 2009 (Windows 7) support TRIM commands, so even if the storage device supports TRIM, it might not be accessible.
  • Some retro enthusiasts avoid filling solid state storage devices over 50% as a way reduce the likelihood of write amplification reducing performance.
  • For Win98, consider adding "ConservativeSwapfileUsage=1" to your system.ini to reduce unnecessary swap file usage.
  • For WinXP, consider adding extra ram to reduce swap file usage.
  • It isn't clear how any of these devices will respond to an ATA Secure erase command to reset the device's wear leveling.

Removable Storage Speed Ratings

CF Revisions

  • CompactFlash 1.0 (1995) supported PIO2 with capacity up to 137 GB.
  • CompactFlash 2.0 (2003) added PIO4 followed by DMA 33 in mid-2004.
  • CompactFlash 3.0 (2004) added UDMA 66 (UDMA3)
  • CompactFlash 4.0 (2006) added IDE Ultra DMA Mode 6 and UDMA 133
  • CompactFlash 5.0 (2010) added LBA 48 for drives larger than 137 GB
  • CompactFlash 6.0 (November 2010) added UltraDMA Mode 7 (167 MByte/s), ATA-8/ACS-2 sanitize command, and TRIM support
  • CFast (2008) Also called CompactFast, is a SATA based standard with a similar form factor that is not interchangeable with PATA CF devices
  • XQD card (2011) Is a PCI-E based standard with a similar form factor than is not compatible with either PATA CF or SATA CFast

SD Speed Ratings

Early SD speed classes only measured minimum write throughput, which does not align with usual computing work loads.

Comparison of SD card Speed Class ratings
Minimum sequential

writing speed

Speed Class
Suggested max. bitrate Speed Class UHS Speed Class Video Speed Class
2 MB/s 15 Mbit/s Class 2 (C2) N/A N/A
4 MB/s 30 Mbit/s Class 4 (C4) N/A N/A
6 MB/s 45 Mbit/s Class 6 (C6) N/A Class 6 (V6)
10 MB/s 75 Mbit/s Class 10 (C10) Class 1 (U1) Class 10 (V10)
30 MB/s 220 Mbit/s Class 3 (U3) Class 30 (V30)
60 MB/s 460 Mbit/s Class 60 (V60)
90 MB/s 700 Mbit/s Class 90 (V90)

Application Performance Class is defined in SD Specification 5.1 and 6.0 which mandates a minimum IOPS for reading and writing, which more closely aligns with computing work loads.

Comparison of SD card Application Performance Class ratings
Name Minimum random IOPS Minimum sustained sequential writing
Read Write
Application Performance Class 1 (A1) 1500 IOPS 500 IOPS 10 MB/s
Application Performance Class 2 (A2) 4000 IOPS 2000 IOPS