In This Article
What is Hard Disk Controller (HDC)?
Hard Disk Controller or HDC refers to the circuit in a computer system that helps it to access a hard drive and read and write information, and delete or modify data from and to it.
Also known as an adapter of a hard disk drive it performs as a bus that connects the drive with the rest of the components of the computer.
It is built within the hard drive today and looks like a circuit board that covers the back or bottom portion of the drive.
- In simple terms, HDC is an electronic component or a physical controller that allows the processor and the computer to control the hard disk.
- The Hard Disk Controller has its own processor to calculate the operations as well as organize and manage the memory space.
- This controller relieves the CPU from the burden of calculating since it functions independently without needing the operating system which is usually controlled by the Command Line Interface or CLI programs.
- The early hard disk controllers came as separate expansion cards to which the hard drive was connected to control it while communicating with the computer.
- There are different types of hard disk controllers used in a computer that performs different functions depending on the type of interface that is used in the system to access the hard disk.
Understanding Hard Disk Controller (HDC)
The Hard Disk Controller is the electronic circuit in a hard drive that helps in the communication process of the Central Processing Unit of the computer with the hard disk as well as a floppy disk or other types of disk drives.
It is also the interface of the bus and the disk drive which connects it to the other components of the computer system.
The disk controllers in the early days were separate and were just like expansion cards and could be identified easily by their data encoding process and storage methods.
One of the most common types of such controllers is the Modified Frequency Modulation or MFM controller that was typically used in the small computers for controlling both hard disk drives and floppy disk drives.
There were also other types of controllers such as that of the Run Length Limited that used data compression methods to increase the storage space by approximately 50%.
Few others used different methods for increasing the disk storage such as a specific storage algorithm.
The disk controllers today are however more like a peripheral controller and are integrated into the disk drive and the bus itself.
These controllers are identified by distinctive names depending on the drive such as:
- The SCSI or Small Computer System Interface disks come with built-in SCSI controllers
- The IDE interface based hard disks come with IDE or Integrated Drive Electronics controllers and more.
These integrated controllers interact with the host adapter of the host system via a regular and high level storage bus interface.
The bus interfaces used specifically for home use can be of different types such as:
- Parallel Advanced Technology Attachment or PATA or IDE and
- Serial ATA.
And, as for the high-end disk drives the bus interface used are:
- Parallel SCSI
- Fiber Channel and
- Serial Attached SCSI.
Apart from helping in communicating with the different components, these disk controllers also help in controlling the access timing to the flash memory which is typically not mechanical by nature or does not have a physical disk in it.
The disk controllers rely on the host adapter or Host Bus Adapter or HBA to perform such as the Advanced Host Controller Interface or AHDC.
The disk controller converts the signals read by the read/write head and transmits them through the peripheral bus.
This is then converted into a suitable format by the host adapter for the bus of the motherboard to understand and then the CPU reads it into the Random Access Memory or RAM.
Hard Disk Controller Examples
Depending on the type of the hard disk, there can be a variety of controllers that may be located in different places and in different components.
Some of the most common examples are IDE, SCSI, SAS, and Disk Array controllers, each having different features.
Out of these the most common Hard Disk Controller is the IDE controller which is typically produced on the main board and has the ability to support up to four hard disks.
Depending on their types, the speed of these controllers can range anywhere between 33 Megabytes per second to 66 Megabytes per second.
These controllers also come in different variants but the most common ones are Advanced Technology Attachment, ATA 3 and ATA 4.
Another common HDC is the SCSI controller which is very advanced but is quite costly, which is the main reason for its low popularity.
These devices can support multiple hard disks, scanners and CD-ROMs and can connect up to 30 devices and peripherals using a daisy chain.
Faster in operation than an IDE, these controllers are best to use for studio and can reach a speed of up to 320 MB/s and also come in different versions.
Controllers using SAS or Serial Attached SCSI technology are also quite common which combines Parallel SCSI technology with it.
Acting as multi-level storage devices, these controllers allow serial communication adopting the SCSI 3 extended instruction set.
These are compatible with several SATA devices.
And finally, sometimes, for a smoother physical integration with the HBA there may be another controller present between the disk controller and the host adapter.
This is called the disk array controller and helps in hardware RAID creation.
There are more than a few different types of Hard Disk Controllers available and these are categorized according to the electronic method used by them for encoding the data stored on the hard disk.
Usually, the most common types of disk controllers, apart from those mentioned above are:
- Floppy disk controllers
- SATA controllers
- MFM controller
- RLL controller
- SATA RAID controllers and
- eSATA controllers.
The type of controller to use must match the type of hard disk that is in your computer system for proper functioning.
For example, an RRL drive should have an RLL controller, an MFM drive must have an MFM controller, a SCSI drive will work only with a SCSI controller and so on.
This means that when you add a new disk drive to your system for additional storage, you should make sure that the controller and the disk drive are both compatible with each other.
This is important because the features such as data reliability and integrity, access speed, and others of one type of hard disk may not match with the other.
However, it is not a major problem with the modern hard disks since they come with an appropriate type of controller already integrated into them.
Hard Disk Controller Functions
The main function of the Hard Disk Controller includes enabling the CPU to access a hard disk and read, write, modify or delete data. It basically helps the processor and the computer system on the whole to control the hard disk.
Apart from helping in accessing the disks, the HDC also communicates with one or more of such drives for initiating or ending a connection to the clients.
Therefore it can be said that this particular System on Chip or SOC controls the overall functions of the disk drives and follows a few specific steps for that such as:
- First it receives the computer order and interprets it
- It then sends different control signals to controller to spin the disk and move the magnetic head to the right location on the disk
- Then it detects the status of the hard disk controller
- Data is then read from or written on the disk by the controller depending on the format of the data of the disk.
Ideally, the HDC translates the instructions of the computer to a format that can be understood by the hard disk and vice versa.
Parts of a Hard Disk Controller
The key components of a Hard Disk Controller include an arm that holds the read/write head actuator, the read/write head, a spindle, and a platter.
Apart from that, there is a circuit board at the back of the hard drive which is also known as the interface board which communicates with the computer.
Irrespective of the type of the Hard Disk Controller, the basic components of all are practically the same just as the working principle of each is.
The most vital component of all however is the control logic circuit that is connected to the bus of the computer system, or in fact the microprocessor.
This is because this circuit also works as the encoding or decoding circuit which in turn helps in accomplishing the separation and compensation of the read-in and write-in data respectively.
In addition to that, it also functions as the circuit that helps in data error detection and correction and also used for controlling the data transmission activities along with serial and parallel conversion as well as formatting them based on the orders of the computer.
Is SATA a Hard Disk Controller?
Yes, it can be said in a way because this specific type of controller determines the way in which the hard drive should communicate with the computer, which is ideally the main function of a Hard Disk Controller.
A SATA or a Serial ATA controller is actually a hardware interface. This helps in connecting the hard drive to the motherboard of the computer system and at the same time directs and manages the flow of data.
It can be set to function in any one of the following three modes as a controller such as:
- AHCI or
This means that it will enable AHCI features and RAID mode.
Out of all these the simplest mode is IDE mode in which the hard drive is set to function as a Parallel ATA or IDE hard drive.
The Advanced Host Controller Interface mode however allows using the advanced features of the SATA drives such as Native Command Queuing or NCQ and hot swapping.
And, the RAID mode helps various hard disk drives to function as a single storage as an array.
It provides data redundancy or backup security as well as much faster performance which means striped reading from or writing to the disk drives.
How to Test Hard Drive Controllers?
The basic way to test the Hard Drive Controller is to monitor the hardware on a regular basis. An easy way to test your hard drive is to use a third party command line program that uses SMART or Self Monitoring Analysis and Reporting Technology to diagnose whether or not a hard drive is defective.
The steps to follow are relatively simple which involves:
- Installing and running the program
- Opening the Control Panel
- Clicking on Hardware
- Selecting Devices and Printers
- Clicking on Device Manager
- Going to the Memory Controller section and
- Looking for the controller installed.
You will need to now give a command to check the information of the hard drive.
However, when you use such programs it is always necessary to use the right command and also make sure that you have chosen the right option and the target device.
This target device will however depend on the manufacturer of the hard disk controller.
Assuming that you have given the right command to access the information of the hard drive, it is now time to interpret the data.
There are four specific sections here to look for. Each of these sections will provide different types of information about the hard disk as follows:
- The first section of the information will list the characteristics or features of the hard drive including the model of the device and the size and serial number of the hard drive tested.
- In the second section you will find the current state of the hard disk drive as evaluated by the program. You will find either Passed or Failed/Unknown displayed here. If Failed or Unknown is displayed, the hard drive should be replaced as soon as possible.
- In the third section you will find all values that are determined listed in detail. If it is the current percentage value it is displayed as Value, if it is the worst value measured ever it is displayed as Worst and Thresh if it is the respective limit value. If the Value or Worst exceeds Thresh, you will receive a warning such as Failing Now in the When Failed column.
- The final section details the log of the internal hard drive with records of all the errors indicating the work orders that were not correctly processed from the hard drive. If the number of such errors mentioned in this section is in two digits, it is time for a hard drive replacement.
In order to view and understand the log files you should preferably refer to the documents of the respective manufacturer for the necessary information related to it.
Sometimes, no warnings may be displayed after the test is completed. In such situations, you should consider different parameters that will point out a hard drive failure in the offing.
Depending on the type of program you are using, some of the significant parameters that you should look for are:
Reallocated Sector: This signifies the number of sectors that are reallocated due to errors in reading.
If a sector cannot be read, written, or checked correctly any more, a replacement sector is allocated to it automatically and the faulty sector is marked as unreadable, permanently.
This is a clear warning sign for budding hard drive issues and the most important indicator of a hardware replacement.
If the value is not equal to zero, a hard drive failure is about to happen time and again.
Current Pending Sector: This signifies unstable sectors that need to be remapped and it is not reassigned directly in such cases.
This is because the data here is unknown till then. Several read and write attempts are to be made before it can be allocated or marked as unreadable permanently.
This value is also a strong signal for a hard drive replacement especially if the value is not equal to zero indicating a hard drive failure will happen often.
Offline Uncorrectable: This signifies the number of uncorrectable errors in the read and write sector.
After the test if the hardware is found to be defective or if you receive any notification mail about it, do not make any delays in making arrangements for its replacement.
A Hard Disk Controller is an important component of the computer system that helps the hard drives to communicate in the right way through the appropriate communication bus with the motherboard and to convert the signals into a format that can be easily understood by the Central Processing Unit.