# Hdd 101



## Praetor

*HDD 101*

 Contents
Section 1 -- Definitions
Section 2 -- Specification summary
Section 3 -- What makes a good hard drive?
Section 4 -- Problems
Section 5 -- Official crap
Section 6 -- Addendum
if you want to learn about RAID, visit this thread


----------



## Praetor

*Definitions Part 01*

 Section 1 -- Definitions
*IDE* -- This is simply an abbreviation for _integrated-drive-electronics_ which is a *physical attachment interface* and is affiliated with the term ATA. It is often incorrectly used to describe a specific type of IDE/ATA interface known as Parallal-ATA (see PATA). See ATA. 

*EIDE* -- An extension of IDE, EIDE, or enhanced-IDE added to IDE support for larger drives (EIDE imposed a limit of 8.4GB, a vast improvement over the 528MB limit imposed by the original IDE design) as well as supporting faster throughput protocols. All modern hard drives whether labeled IDE or EIDE are in fact, EIDE devices. 

*ATA* -- An abbreviation for _at attachment_, (which fully expanded is advanced technology attachment). The ATA standard encompasses all aspects of interfacing with said devices: it defines physical, electrical, transport and command protocols for compliant devices. The ATA specification, introduced by the small form factor committee (SFF) is a 16bit interface which draws it's roots from the ISA architecture. 

*Important:* For the remainder of this guide, the term IDE will be used to define/describe the _physical connections_ while the term ATA will be reserved for discussions revolving the _electrical, transport and command_ protocols. Furthermore, EIDE and IDE drives will be grouped together under IDE and distinctions will be explicitly noted where required. 

*PATA* -- Parallel ATA, this refers to drives qualifying under the ATA specification (commonly this refers to non-SCSI drives) and make use of a 40-pin or 80-pin IDE connection. Also commonly (albeit vaguely/incorrectly referred to as "IDE"). 

*SATA* -- Serial ATA, this refers to drives qualifying under the ATA specification (again, essentially non-SCSI drives) and make use of a seven-pin (three ground, four signal) IDE connection. Native support for boot-time support of SATA drives is dependent on the chipset: if no support is available, boot-time drivers are required. SATA2 (aka SATA-II) is an extension of the serial ATA specification and allows for twice the throughput, connectors remain the same. 

*Important:* For the remainder of this guide, the above terms/definitions PATA and SATA will be adhered to avoid ambiguity with the term "IDE"

*PIO* -- Programmable I/O (input/output), this is a transfer/transport specification which falls under the larger definition of ATA. There are five different versions of PIO, Mode 0 though Mode 4 respectively. Original IDE (non-EIDE drives that is) only supported the first three modes of transfer (3.3MB/s, 5.2MB/s and 8.3MB/s respectively). The reason for this (the limited support) is because the interface was based on the ISA bus which had a limit of 8.3MB/s. Later EIDE drives added support for two more modes of transfer (11.1MB/s and 16.6MB/s respectively). Searching through Google you can find mention here and there of a last transfer specification, PIO Mode 5 which was supposed to support 22.2MB/s however it was not implemented due to the success of the DMA transfer specification. PIO is only supported on modern hardware as a fail-safe and/or troubleshooting transfer specification and should not be used in an active environment. 

*DMA* -- An acronym for _direct memory access_, this is often incorrectly taken to be synonymous with ATA when it is in fact a sub-component of the ATA specification (so it's not too big a deal). There are six DMA transfer protocols: the first three are "Single-Word" and the latter are "Multi-Word" with the difference being the latter offering improved performance due to _burst_ing operations. Single-Word modes 0-2 support transfer rates of 2.1MB/s, 4.2MB/s and 8.3MB/s respectively. Multi-Word Modes 0-2 support transfer rates of 4.2MB/s, 13.3MB/s and 16.7MB/s. On modern systems, Multi-Word Mode 2 is commonly used as the transfer specification for optical drives. 

*UDMA* -- An extension of DMA, ultra-DMA operates on the PCI bus (which, for consumer systems, provides 133MB/s of available bandwidth); one of the fundamental changes between UDMA and DMA is that, with UDMA, the device attempting to access memory negotiates with the memory-controller directly rather than via another controller card. The second fundamental change was that CRC was introduced to improve reliability. Strictly with respect to transfers, one can consider UDMA to be the "DDR-ed" version of DMA as commands were processed on both edges of the clock. UDMA supports seven (possibly eight) transfer modes. Mode 0 (16.7MB/s), Mode 1 (25.0MB/s), Mode 2 (33.3MB/s), Mode 3 (44.4MB/s), Mode 4 (66.7MB/s), Mode 5 (100.0MB/s), Mode 6 (133.0MB/s) and Mode 7 (150.0MB/s). Since I don't have a SATA-II setup I can't verify if SATA-II operates in Mode 8 (300.0MB/s) or not. Like DMA, UDMA is often incorrectly labeled as being synonymous with ATA however again, this is an insignificant error). All these advantages of UDMA require too much signal clarity to be supported by "DMA cables" (correctly called 40-pin IDE cables) and as such a grounding wire was added for each signal wire to improve signal quality (hence we have 80-pin IDE cables). A bit of searching suggests SATA-II will be encompassed under the ATA Mode 7 protocol.

*Important:* For the remainder of this guide, since DMA won't be found on modern hard drives, any reference to "DMA" will actually be referring to UDMA. 

*SCSI* -- Small Computer System Interface, SCSI is a high performance specification which lost out (in the consumer market) to the ATA family of specifications due cost-effectiveness (or lack thereof). SCSI provides a host of advantages and features ranging from hot-swapping to native-command queuing as well as the advantage of "not having your entire computer freeze for a moment when one inserts an optical disc into the optical-drive". SCSI is an extensively parallel interface (hence operations affecting optical drives do not interfere with those affecting hard drives and vice versa). SCSI devices (whether they be hard drives, optical drives, scanners etc) require _termination_ (to maintain signal quality); furthermore there are many "icky" or painfully-annoying configuration operations required to prepare a SCSI system which is another reason it is not common in the consumer market. The SCSI aggregate transfer rates are:

 SCSI-1 (aka regular SCSI) -- 8bit "Narrow" interface providing 5MB/s
 fast SCSI -- 10MB/s on "Narrow", 20MB/s on "Wide" or 16bit interface
 fast 20 SCSI (aka ultra SCSI) -- 20MB/s on "Narrow", 40MB/s on "Wide"
 fast 40 SCSI (aka ultra2 SCSI) -- 40MB/s on "Narrow", 80MB/s on "Wide"
 fast 80 SCSI (aka ultra160 SCSI) -- 160MB/s on "Wide" interface
 fast 160 SCSI (aka ultra320 SCSI) -- 320MB/s on "Wide" interface
SCSI connectors come in 50, 68 and 80 pin configurations; adaptors are available on the market for interfacing between these connectors. It is Important to note that looking at SCSI from the physical-layer, connections need to be done in "straight line". What this means is that many SCSI cards come with thre connectors (two internal, one external) -- you cannot use all three connectors simultaneously (if you did, the physical-layer would look like a "t" and thus parallelism would be seriously messed up). For advanced RAID configurations, SCSI is the only supported interface

*Word* -- A term for two-bytes or 16-bits. In the context of Multi-Word DMA, this refers to the [burst] transfer of multiple words to/from the drive controller without the explicit command for those additional words being sent

*Burst* -- An operation/transaction is said to be "bursted" or "in burst Mode" when the device being read provides more [sequential] data without explicitly being asked to do so. This is based on the principle that "if the controller wants data from location x, it's highly likely that data from x+1, x+2, x+3 etc will also be desired"

*Controller* -- Generically this refers to some form of chip-logic which allows a computer to interact with a given device. Controllers can be found built-into a motherboard (i.e., IDE/ATA controllers) or via add-in cards (i.e., SCSI controller). Some controllers provide additional features such as RAID.

Continue to Part 02...


----------



## Praetor

*Definitions Part 02*

*CRC* -- _Cyclic Redundancy Checking_, this is a basic error checking routine whereby a mathematical calculation (binary polynomial division and remainder is used as the verification unit) to determine if data was corrupted during transmission. 

*Native Command Queuing (NCQ)* -- Configurations (both drives and controllers require support) supporting NCQ attempts to queue together a series of instructions and execute them in the most efficient manner possible (efficiency is with respect to the physical layer). As a quick example, suppose data is required from "location" 1000, 55000 and 1005; a non-NCQ drive processes requests literally, 1000->55000->1005 but a NCQ configuration will process it as 1000->1005->55000. The difference is that the time it takes for read-write heads to move from location 1000 to 1005 is miniscule however the transition to/from 5500 is significant. A single queue of operations may not yield impressive performance gains however hard drives are required to execute millions of such transactions and those gains are cumulative

*Partitioning and Formatting* -- Straight out of the box, a hard drive's file system is "raw" which is unusable. In order to bring the drive to a useable state, it must first be _partitioned _and then those partitions need to be _formatted_. Partitioning refers to the process of subdividing the available space on a HDD into logical units (thus making c, d, e etc "drives"). Formatting refers to converting the file system from "raw" to format recognized by the operating system such as FAT, NTFS or EXT2

*Cache* -- Hard drives are mechanical devices: no matter how much you improve the dynamics or increase the spindle speed, a mechanical transfer will always lose out (in terms of performance) to an electrical system. To alleviate/hide the slow nature of hard drives, they [the drives] are often equipped with a small amount of high-speed memory. When a request is received, the drive checks for a match in the cache before "manually" locating the data on the various platters: if there is a cache-hit (i.e., the data required is there) then the data can be immediately transferred thus eliminating seek times. Increasing the amount of cache available on the drive noticeably improves. Hard drives usually come with 2MB, 8MB or 16MB of cache. For some fancy RAID controllers, there is also cache memory present on the controller. 

*Spindle Speed aka Rotation Speed* -- Measured in revolutions-per-minute this is literally the mechanical rotation speed of the disk platters. The faster the rotation, the sooner the drive heads can be positions underneath the desired location. Modern drives feature anywhere from 3600rpm to 15,000rpm. 

*[Average] Access Time * -- A composite measure of the seek-time and rotational-latency, access time (measured in ms) is the sum total of the time it takes to move the disk head to the appropriate track on the platter (seek time) and the time it takes to move the appropriate sector (of the platter) underneath the drive head (rotational latency). Rotational latency can be reduced by increasing the spindle speed.


----------



## Praetor

Section 2 -- Specification Summary
PIO Mode 0 -- 3.3MB/s
PIO Mode 1 -- 5.2MB/s
PIO Mode 2 -- 8.3MB/s
PIO Mode 3 -- 11.2MB/s
PIO Mode 4 -- 16.6MB/s
PIO Mode 5 -- 22.4MB/s (not used)

Single-Word DMA Mode 0 -- 2.1MB/s
Single-Word DMA Mode 1 -- 4.2MB/s
Single-Word DMA Mode 2 -- 8.3MB/s
Multi-Word DMA Mode 0 -- 4.2MB/s
Multi-Word DMA Mode 1 -- 13.3MB/s
Multi-Word DMA Mode 2 -- 16.7MB/s

UDMA Mode 0 -- 16.7MB/s
UDMA Mode 1 -- 25.0MB/s
UDMA Mode 2 -- 33.3MB/s
UDMA Mode 3 -- 44.4MB/s
UDMA Mode 4 -- 66.7MB/s
UDMA Mode 5 -- 100.0MB/s
UDMA Mode 6 -- 133.3MB/s
UDMA Mode 7 -- 150.0MB/s
UDMA Mode 8 -- 300.0MB/s (unconfirmed, may be aggregated with Mode 7)

[Narrow] SCSI1 -- 5MB/s
[Narrow] Fast SCSI -- 10MB/s
[Narrow] Ultra SCSI -- 20MB/s
[Narrow] Ultra2 SCSI -- 40MB/s
[Wide] Fast SCSI -- 20MB/s
[Wide] Ultra SCSI -- 40MB/s
[Wide] Ultra2 SCSI -- 80MB/s
[Wide] Ultra160 SCSI -- 160MB/s
[Wide] Ultra320 SCSI -- 320MB/s


----------



## Praetor

Section 3 -- What Makes a Good Hard Drive? 
When looking to buy a hard drive there is a quick checklist of things to look for:

 Interface (PATA, SATA, SCSI or other more exotic setups)
 Capacity (how much space do you need/want)
 Spindle speed (i.e., 5400rpm, 10,000rpm, 15,000rpm etc)
 Cache (2MB, 8MB, 16MB)
 Brand (Western Digital, Seagate, Maxtor etc)

 _Interface_

 PATA drives are arguably the most universally compatible, are the cheapest and offer a respectable degree of performance however there is a potential inconvenience of having to set/adjust jumpers on the drive. 
 SATA (and SATA-II) drives are the next-generation drives and outperform similarly priced PATA drives (the price delta is usually no more than $10). Since there is only one drive per cable, no jumpers need to be set however the potential downside is that the destination motherboard/controller may not offer native boot-time support of the SATA drive (thus requiring a floppy/CD with the drivers in order to install an OS). Another consideration is if the drive only accepts SATA-power connectors than either the PSU needs these special connectors in order to power the drive (or adaptors must be purchased)
 SCSI drives have the inconvenience of lack-of-boot-time support as well as the potential hassle of assigning SCSI id's and performing termination. The upside is that many RAID options are available (much more so than with IDE drives) as well as significantly improved performance. Of the three common interfaces, SCSI is the most expensive. 

 _Capacity_
The old rule for determining how much drive space is requires is to "estimate how much you think you will need, double it and round-up to the nearest drive size". With dropping drive prices as well as decreasing price deltas (i.e., going from a 120GB to 160GB drive is usually $10 -- why? Because a 120GB drive is just a 160GB drive with a half-a-platter disabled). 

 _Spindle Speed & Cache_
Naturally, the faster the platters spin the better the overall performance however it is not always as simple as that. With SCSI drives, it's fairly clean-cut as they tend to fall into distinct categories (10k and 15k rpm drives) with very distinct performance and price brackets. For IDE drives the three most common speeds are 5400, 7200 and 10000 rpm however the element of cache makes things interesting. 

The argument for 5400rpm drives used to be "get a massive 5400rpm drive for archive -- you're not gonna be accessing it all the time so access-time performance isn't critical" however with the advent of affordable (and massive) 7200rpm drives there isn't much of a case for 5400rpm drives from a performance/functionality perspective (i.e., you won't be able to get a 500GB DeskStar drive in a 5400rpm flavour). The only case really for 5400rpm (or slower) drives is for people looking to build uber-quiet systems. All 5400rpm IDE drives come with 2MB of cache. 

Mainstream 7200rpm drives come in several flavours, 2MB, 8MB and 16MB of cache and with the wide variety of capacities. Buying a 2MB cache drive isn't really a smart move anymore as the price delta to go from a 2MB to 8MB cached drive is usually ~$10. In the case of 16MB drives (currently only the Maxtor DiamondMax 10) which also offer NCQ support as well as being one of the few native SATA drives (Seagate's barracuda 7200. 7 is another), it is obvious that the 16MB cache allow the DiamondMax10 to be the best performer for a 7200rpm drive and the NCQ and drive capacity allows for the drive to be immediately implemented in a server environment. Realistically the only competition in terms of performance for these drives are the 10k rpm drives. 

Currently, two IDE drives support 10k rpm spindle speed (with 8MB of cache) and the advantages are obvious: significantly reduced access times. The downside is that (a) the drives are exceptionally expensive, (b) the highly competitive Maxtor 16MB cache drives represent a significantly improved value hands-down. 

*So will it be [email protected] ot [email protected]? *
Ok let's have a look at some numbers,

*AVG Transfer rate*
Maxtor DiamondMax 10 (NCQ on) -- 54.5MB/s
Maxtor DiamondMax 10 (NCQ off) -- 54.6MB/s
WD Raptor II -- 64.9MB/s
with HDTach  3.0, it's fairly evident that the Raptor is superior by a significant margin. 

*Burst Transfer*
Maxtor DiamondMax 10 (NCQ on) -- 131.7MB/s
Maxtor DiamondMax 10 (NCQ off) -- 136.3MB/s
WD Raptor II -- 118.7MB/s
here the tables are reversed however burst transfers are not as significant as average throughput. 

*Random Access Time*
Maxtor DiamondMax 10 (NCQ on) -- 13.9ms
Maxtor DiamondMax 10 (NCQ off) -- 13.8ms
WD Raptor II -- 7.9ms
The Raptor has a significantly reduced access time (42% advantage) however we don't see anywhere near a 42% advantage in terms of benchmarked throughput performance ... This is due to the larger cache count on the DiamondMax10: with the larger cache, the performance of the drive depends less and less on the mechanics of the drive (i.e., it reduces the effect of the rpm advantage the Raptors have)

*Diskbench 2.3 - 250mb file*
Maxtor DiamondMax 10 (NCQ on) -- 16.2MB/s (30.7sec)
Maxtor DiamondMax 10 (NCQ off) -- 15.3MB/s (33.6sec)
WD Raptor II -- 13. 0MB/s (38. 2sec)
Here we can see the cache-advantage flex it's muscles: a 17%-25% advantage in real-world performance (impressive if we consider the access-time disadvantage the Maxtors are operating with). 

anandtech offers similar results with the Maxtor and wd trading spots back and forth with the 16MB Maxtor generally keeping up with or beating the 8MB Raptors (albeit by non-massive margins). Here is the 8MB Raptor pulling ahead by a non-insignificant margin



Summarizing the SYSmark scores, the Raptor comes out on top but with a very small lead


the Raptor pulls ahead with a small lead in UT2004 load times,


however the Raptor comes in last when multitasked heavy-disk access is thrown at it:



From a value perspective, there is almost no reason to recommend the WD 10k drives: one can get a 300GB Maxtor 16MB cache drive for the same price as a 74gb Raptor II. Now if the Raptor swept the floor it would probably be justifiable to purchase it however that was not the case. Perhaps if/when a 10k 16MB cache drive is released, the high-end drive market can be a bit more clear-cut.  

 _Brand_
Brand doesn't matter all that much: people can tell you nightmare stores about Company X and recommend Company Y, however it's probably equally possible to find nightmare stories about Company Y. While there may be bad *drives* (for instance the IBM/Hitatchi GXP75), it doesn't mean that the entire product line will be bad.


----------



## Praetor

Section 4 -- Problems
*I bought a #GB but when I look at it I don't have that much space!!! *

 You may be encountering a 127/137GB partition limit (see next question), or if you have a really old setup, smaller limitations.
 If you are comparing the detected drive space to the number written on the box of the HDD realize that the definition of "gigabyte" on the box and reality differ. The box's definition will be 1E9 bytes while reality's definition is 2^30 (1073741824 bytes). This introduces a scaling factor of 1953125:2097152 or roughly 0.93; this means that the actual space is 93% of the advertised price
 Older OSes cannot cope with drives bigger than 137GB. Also, older bioses (i.e., older computers) cannot handle large drive sizes without some form of trickery or BIOS updates.
 For Windows XP, have a visit here
 For Windows2000, have a visit here
One more quick guide on fixing your drive capacity

*I'm using WindowsXP and I have a drive >137GB and the total size is read properly, but why cant I have a partition >137GB?*
You'll need to upgrade to Service Pack 2.

*I bought a second PATA Drive, installed it ... my one of my original drives is missing!*
This is a class symptom of a master-slave conflict, ensure that your jumpers are in the following configuration (this picture is only a guide, see your actual documentation to see what jumper configuration you need)



*(Copying Data Off My Optical Drive is so Slow!)(Watching DVDs Stutter)(Im getting buffer underrun errors even when I burn slow!)*
Sounds like you the optical drive in question is set to operate in PIO mode. To correct this, goto Device Manager (_Start --> Run --> Type *devmgmt.msc* --> Goto IDE ATA/ATAPI Controllers --> Goto the Properties for the Primary/Secondary Channel --> Advanced Settings --> Make sure both boxes say "DMA if Available"_)

*I installed my drive, partitioned it but I cant use the partitions!*
You'll have to format the partition before you can use it. Goto My Computer, right click on the desired drive and select Format

*Ive installed my drive, BIOS recognizes it but I cant see it in Windows!*
You'll have to partition the drive first. Windows2000 and later come with a easy to use interface for this (older OSes use fdisk or similar):
1. Control Panel
2. Administrative Tools
3. Computer Management
4. Disk Management
5. Select Desired Drive and create a partition. Dont forget to format the partition afterwards


----------



## Praetor

Section 5 -- Official Crap
*SATA*
SerialATA.Org
Extensions to SerialATA 1.0a Specifications
SerialATA 1.0a Specification
SerialATA-II Whitepaper
SATA Advanced Host Controller Interface Specifications
SATA-II does *NOT* mean 3Gb/s

*ATA/IDE*
ATA T13 Committee
PCI IDE Controller Specification 1.0
ATA-1 Specification
ATA-2 Specification
ATA-3 Specification
ATA/ATAPI-4 Specification
ATA/ATAPI-5 Specification
ATA/ATAPI-6 Specification
ATA/ATAPI-7 Specification A
ATA/ATAPI-7 Specification B
ATA/ATAPI-7 Specification C
ATA-8 Parallel Transport
ATA-8 Serial Transport

*SCSI*
SCSI T10 Committee
Ultra320 SCSI Whitepaper
HP Ultra320 SCSI Whitepaper
SCSI Trade Association Ultra2 SCSI Whitepaper
Linfinity Ultra2 SCSI Whitepaper
NASPA SCSI Article


----------



## Praetor

Section 6 -- Addendum
*Temperature*
For those concerned with the performance/reliability of their drives the general guideline that "colder is better" applies however any performance/stability delta will be almost negligible (i.e. you might be able to get an extra 500K/s of harddrive throughput with a 20ºC drop ... i.e., it's not noticeable). 

Of course it doesnt take much too cool a drive: a simple 80mm fan can keep a drive at 30ºC-35ºC almost indefinitely (whereas without, temperatures in excess of 50ºC-60ºC are common). While you may not notice any real-world change by lowering the temperature, it certainly can bring a bit of peace-of-mind

*Dealing With Partitions*
Before you can use the space on your harddrive you must provide it with a filesystem (the "blank" type is RAW which isnt useable). There are several ways of manipulating partitions

 Utilities like FDISK can perform basic partitioning tasks (create/destroy) although they cant handle the larger modern drives nor can they make use of filesystems other than FAT/FAT32 (this route is _destructive_)
 During the installation of the operating system (other than like W9x/WME or something) and option is available to make and delete partitions. This is a _destructive_ technique meaning data will be lost
 After installing Windows you can 
 Control Panel
 Administrative Tools
 Computer Management
 Select *Disk Management*
 Select a drive and proceed to make/delete a partition (this is also a _destructive_ process

 Using a third party program like Partition Magic can allow you to make your partitions _without_ losing data. Third party programs like this also provide the ability to merge, resize and otherwise alter the partition (all non-destructive)
 Do note that when you create a new partition, to be able to actually use it (since it's still in RAW format) you have to format the said partition. Formatting can be done (formatting is a destructive process)
 From DOS via the Format command
 From windows by going to My Computer, selecting the drive to format, right-clicking on it and selecting format (or just selecting the drive)
 Using a third party program like Partition Magic


*Why Can't I see My SATA Drive During Installation?*
The be able to see a SATA drive during the installation of windows or something requires either native chipset support (generally, anything with a ICH5 or NForce3 or newer). If you dont have such a setup or it's "not working", you will need to have the SATA drivers available in order to install to the drive.

Look on your motherboard CD/website and download the SATA drivers to a floppy disc and when you fire up the Windows installation, press F6 when prompted to (at the bottom of the screen). Then point the installer to the drivers. The installation will then be able to make use of the drive 

*How do I format a Drive?*

 By using Format via DOS
 Installing Windows2000 (or newer) from boottime allows the option to format the installation partition
 Right-click on the desired partition and select Format
 Going to the Computer Management (see above), select the desired partition and format
 Third party tools like Partition Magic allow for formatting of partitions

*I Look at C: ... but where are all the folders?*
Windows by default hides a lot of stuff from you.... to have it show up

 Control Panel
 Folders
 View Tab
 Select "Show Hidden Files and Folders"
 Unselect "Hude protected operating system files(reccomended)"
 Click ok

*I'm slow, what's the difference between all these drive types?*
*"IDE" Cable*
*SATA Cable*
*SCSI Cables*

*NTFS? FAT32?*

FAT32
NTFS
How to decide on a filesystem
Converting FAT32 to NTFS


----------

