Difference between revisions of "Storage"

From Vogons Wiki
Jump to: navigation, search
(IDE and BIOS Limits & Incompatibilities)
(IDE and BIOS Limits & Incompatibilities =)
Line 35: Line 35:
 
* Connects storage directly to PCI-E
 
* Connects storage directly to PCI-E
  
==IDE and BIOS Limits & Incompatibilities ===
+
== PC BIOS Storage Limits ==
 
* 528 MB limit - Original CHS limit - BIOS before '''July 1994''' rarely support drives over 528MB.  These systems are limitted to 1024 Cylinders, 16 Heads, 63 Sectors/Track.  Some BIOS allow larger geometies to be entered only to crash or fail to boot from the drive.   
 
* 528 MB limit - Original CHS limit - BIOS before '''July 1994''' rarely support drives over 528MB.  These systems are limitted to 1024 Cylinders, 16 Heads, 63 Sectors/Track.  Some BIOS allow larger geometies to be entered only to crash or fail to boot from the drive.   
 
* 2015 MB limit - Second CHS limit - Some BIOS before '''May 1996''' support drives up to 2015 MB.  These BIOS allowed geometries with up to 4095 Cylinders, 16 Heads, 63 Sectors/Track.
 
* 2015 MB limit - Second CHS limit - Some BIOS before '''May 1996''' support drives up to 2015 MB.  These BIOS allowed geometries with up to 4095 Cylinders, 16 Heads, 63 Sectors/Track.
Line 45: Line 45:
 
* 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 added an additional 48bit LBA sector field.  Hard drives over 137.4 GB should report an LBA capacity of 0xfffffff sectors and report the actual value in the 48-bit field.
 
* 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 added an additional 48bit LBA sector field.  Hard drives over 137.4 GB should report an LBA capacity of 0xfffffff sectors and report the actual value in the 48-bit field.
  
 
+
== Overcoming Incompatibilities ==
Notes:
+
* Systems with BIOS limitations can be confured to work with larger drives using one of these techniques:
* Systems with BIOS limits will usually work with larger drives by using one of these solutions:
+
** find a BIOS upgrade from the vendor or from a third party such as MR Bios
** find a BIOS upgrade from the vendor or from a thrid party such as MR Bios
+
** install an add-in card with an option ROM that replaces the BIOS routines before BOOT such as [https://www.xtideuniversalbios.org/ XTIDE UniversalBIOS]  
** install an add-in card that has an option ROM such as [https://www.xtideuniversalbios.org/ XTIDE UniversalBIOS] that replaces the BIOS routines during POST.
+
 
** 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  
 
** 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  
 
* Early LBA drives do not always work correctly with mature LBA controllers and may need to be manually configured to use 'CHS' or 'Normal' mode for correct operation.
 
* Early LBA drives do not always work correctly with mature LBA controllers and may need to be manually configured to use 'CHS' or 'Normal' mode for correct operation.
* Some ATA6 storage devices exhibit compatibility issues negotiating a compatible protocol with early ATA-3, ATA-4 controllers configured for speeds faster than ATA1.
+
* Mature ATA6 storage devices occasionally have trouble negotiating a compatible configuration a with early ATA-3, ATA-4 controllers.  Sometimes this can be resolved if ATA33 or UDMA is disabled.
  
 
==Modern Storage for Retro Computers==
 
==Modern Storage for Retro Computers==

Revision as of 02:04, 9 December 2021

Common IDE Categories

Early IDE (ATA-0 & ATA-1)

  • 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.
  • Processors <= 486 are often CPU limited in most applications before they reach theoretical ATA throughput limits
  • Most contemporary PATA storage devices are highly compatible with early IDE controllers

EIDE (ATA-3 & ATA-4, UDMA/33 )

  • Common between 1993-1998: VLB & PCI 486 boards, Socket 4,5 & 7 Pentiums, Pentium II.
  • 80 connector IDE cables recommended but not required for these devices
  • Most systems show a noticeable performance improvement when multiword IO and DMA modes are enabled
  • DOS requires a UDMA compatible BIOS or UDMA drivers in config.sys to take advantage of the advanced transfer modes.

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

  • Common between 1999-2010: 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
  • UDMA modes offer a significant increase in performance over PIO modes in most cases.
  • Storage devices show a small performance increase when using ATA-133 over ATA-66
  • Storage devices show a small performance increase when using IHA (Intel Hub Architecture) or Vlink attached controllers over a PCI attached controller
  • DOS requires a UDMA compatible BIOS or UDMA drivers in config.sys to take advantage of the advanced transfer modes.

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, no longer uses ATA protocols
  • Uses the same M2 connector as NGFF Sata, but with different notches
  • Connects storage directly to PCI-E

PC BIOS Storage Limits

  • 528 MB limit - Original CHS limit - BIOS before July 1994 rarely support drives over 528MB. These systems are limitted to 1024 Cylinders, 16 Heads, 63 Sectors/Track. Some BIOS allow larger geometies to be entered only to crash or fail to boot from the drive.
  • 2015 MB limit - Second CHS limit - Some BIOS before May 1996 support drives up to 2015 MB. These BIOS allowed geometries with up to 4095 Cylinders, 16 Heads, 63 Sectors/Track.
  • 3277 MB limit - Phoenix BIOS 4.03 and 4.04 crash if a drive is configured with a capacity over 3277 MB.
  • 4.2 GB limit - Some 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 until cylinders <= 1024. The limit for this method is 4032 MB (C=1024, H = 128, S = 63) for drives that report 16 heads.
  • 7.9 GB limit - Other BIOS from this period had a Revised ECHS limit. 'Large' mode in the BIOS 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 selects head 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). Hard drives larger than 8.4GB report a geometry of C=16383,H=16,S=63 to indicate that they are larger than can be described using ECHS geometry translation)
  • 33.8 GB limit - BIOS before August 1999 often stored the cylinders as a 16 bit value, so they could not process cylinders > 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 added an additional 48bit LBA sector field. Hard drives over 137.4 GB should report an LBA capacity of 0xfffffff sectors and report the actual value in the 48-bit field.

Overcoming Incompatibilities

  • Systems with BIOS limitations can be confured to work with larger drives using one of these techniques:
    • find a BIOS upgrade from the vendor or from a third party such as MR Bios
    • install an add-in card with an option ROM that replaces the BIOS routines before BOOT such as XTIDE UniversalBIOS
    • configure the drive with an acceptable geometry in the BIOS and install drive overlay software that replaces the BIOS routines when the boot sector is loaded
  • Early LBA drives do not always work correctly with mature LBA controllers and may need to be manually configured to use 'CHS' or 'Normal' mode for correct operation.
  • Mature ATA6 storage devices occasionally have trouble negotiating a compatible configuration a with early ATA-3, ATA-4 controllers. Sometimes this can be resolved if ATA33 or UDMA is disabled.

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 adpters 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 optimised 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.

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 application 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 to firmly connect to the controll IDE pin blocks. These latches can break brittle plastic on an old motherboard
  • Difficult to connect to a new PC without a Female-Female 40 pin 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:

Pros

  • Best performance, expecially 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 DOM, but not as easy as SD and CF

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 closly alligns 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