What is the role of the HDD Controller IC ?

Status
Not open for further replies.

victor6799

Junior Member level 2
Joined
Dec 6, 2016
Messages
20
Helped
0
Reputation
0
Reaction score
0
Trophy points
1
Activity points
108
Hello. I have an old Seagate SATA 320GB HDD. The model number is ST3320620AS product number 9BJ14G-300. I've attached a photo of the drive's PCB which shows two main chips. Can anyone help me identify what these chips are and what are their role ? Would one of them be called a HDD Controller ? If yes then what is this role for this IC ?

Thanks

Victor
 

Attachments

  • 2022_07_15_21_09_IMG_0987.JPG
    1.1 MB · Views: 340

Solution
Usually the memory is too big to fit on the same die as the MCU so it is a different IC but technically there is no reason why they can't be combined if the silicon footprint could be made small enough.

The memory is used as 'buffer', a way of speeding up the data access that is almost invisible from outside the drive. It is also known as 'cacheing'. The way it works is:

When writing to the drive, the data is first stored in the memory, this is very fast. Then the MCU writes it to the physical media (the platter) as rotational speed permits.

When reading, the data is retrieved from the platter and stored in the memory before being released to the motherboard. On most drives there is also a 'read ahead' facility where the next few...
They are both specific to the drive, not generic parts so their exact contents is only known to the manufacturer but my best guess is the smaller IC is the motor controller, it would generate the phase signals for the spindle motor and probably the voice coil drive signal too, in other words the mechanical parts of the drive.

The bigger IC will be the data processor, analyzing the data to be written and calculating the bit patterns to be send to the heads, including CRC and early/late compensation. For reading it would check the sector headers so the head position could be confirmed, check the sector CRCs and frame the data from the heads into a parallel format for the PATA bus interface.

Generally, drives do not understand things like directories/folders and files, that would be done by software or another device on a motherboard, that is what is usually referred to as the HDD controller. Drives are just a storage device, they have no notion of what is actually being stored and where.

Brian.
 

    victor6799

    Points: 2
    Helpful Answer Positive Rating
Thanks for the response. Can you tell me what would be considered to be "another device on a motherboard" ? Would a IO Controller integrated onto a modern CPU be considered to be such a device ? I would like to understand which part of a computer handles the reading and writing of files and directories found on a hard drive ? Would it be the OS itself that take care of this responsibilities ?
 

Suggest to read the interface specifications (e.g. IDE or SATA) to see how the drive is accessed. Drive data is addressed by locical sector number in most transactions. Translation to file structures occurs in BIOS and operation system software.
 

Hi,

The HDD usually does not know about the file system, how and where the files are written, whether they are split....
It's all under control of the OS .. but for sure the information is saved on the HDD.

So in most cases the HDD controller is rather "dumb" and just writes/reads data (bytes) to/from address (sectors...) without knowing about the meaning of the data.

(There may be more intelligent controllers ... maybe for for wear leveling or redundent file storage)

Klaus
 

Thanks Brian. Sorry for the late reply but where on a PCB belonging to a hard drive would a HDD controller be found?
 

In order to buffer data it requires memory so the controller will be some kind of microcontroller core with several IO ports and a memory interface, that means it will have lots of pins (or pads!). Usually it will be the IC with most pins. The memory will be nearby and if a generic part will often have a recognizable part code or a number on it which is a power of two such as 128, 256, 512, 1024 or 2048 indicating how many kilobits of storage it holds.

The motor controller will usually be smaller and because of the extra current it carries to operate the motors, it will have some kind of heat sinking, often thicker pins or several pins physically linked together to aid heat dispersion.

Brian.
 

Many thanks Brian. I do have a couple of last questions to ask. Do all signals pass through this memory interface you've mentioned above ? So if the main CPU receives an input signal from an IO device will it always pass through this memory interface IC ? Also is this memory interface IC located on the same die as the MCU or will it be located on the same die as the DRAM ?
 
Last edited:

Usually the memory is too big to fit on the same die as the MCU so it is a different IC but technically there is no reason why they can't be combined if the silicon footprint could be made small enough.

The memory is used as 'buffer', a way of speeding up the data access that is almost invisible from outside the drive. It is also known as 'cacheing'. The way it works is:

When writing to the drive, the data is first stored in the memory, this is very fast. Then the MCU writes it to the physical media (the platter) as rotational speed permits.

When reading, the data is retrieved from the platter and stored in the memory before being released to the motherboard. On most drives there is also a 'read ahead' facility where the next few sectors of the media are also read into memory. The thinking behind this is that in many cases data will span more than one sector and there is a high probability the next data that will be needed will be in the next sector. If it is already in memory it can be read at high speed instead of repeating the access procedure again.

Depending on the drive, the reading and writing and the storage and retrieval of memory data may overlap, in other words it might be reading ahead from the platter while already sending data it has already read to the bus.

You might notice when speed tests are carried out on hard disks that performance is usually measured in small block transfers and also in large ones. Because the small ones will only be reading the memory they appear very fast but blocks bigger than the cache size will be much slower because the whole read/cache/send process has to be repeated several times. You will also see references to seek times, this is how long it takes to move the heads to a different sector on the platter. For short track seeks, the whole of several tracks could be in the cache so there would be no physical movement and it would seem very fast, for long track seeks the cache becomes useless because it has to be refilled again from a new location so the speed appears much slower.

Brian.
 
Solution
Status
Not open for further replies.
Cookies are required to use this site. You must accept them to continue using the site. Learn more…