In part one we took a brief look at the large, expensive disk drives of the past and saw how all of today’s disk drives can be considered descendants of the first 5 1/4″ HDD Seagate’s ST-506. While the ST-506 itself was obsolete by the time the IBM PC hit the street the ST-506 interface dominated the first few years of the PC era.
An ST-506 Disk Drive and PC controller Circa 1984
The ST-506 interface was an extension of the then standard floppy disk interface, Al Shugart having fathered both. Each drive was directly connected to the controller with a 20-pin data cable while a 34-pin command cable daisy chained over up to 4.
Those ST-506 drives were almost unimaginably stupid when viewed in the context of the ATA and SCSI drives that replaced them. Not only did the controller, and the host, have to know the drive’s geometry (number of heads, Number of tracks, Number of sectors per track) on the original ST-506 the controller would have to issue a <StepIn> command and wait for the acknowledgment before sending the next <StepIn>. Later drives added support for buffered seeks, but that’s still pretty stupid compared to today’s logical block addressing.
The drive would perform the analog to digital conversion, but all the work of interpreting the bit stream into sectors was the responsibility of the controller. This included the intermixing of clock bits with the data. The transition from MFM (Modified Frequency Modulation) to RLL (Run Length Limited coding) increased drive capacity by 50%.
Those controllers weren’t the Einsteins of the age either, where today’s disk drives read the entire track into their RAM cache on every read, the controllers of the mid-80s weren’t even fast/smart enough to read consecutive sectors. We formatted disk drives with an interleave so if the controller was done processing the 1st sector as the 5th sector rotated under the disk we would format the disk so the logical sector numbers incremented every 5 physical sector would be rotating under the heads as the controller was ready to read it. If I remember the original AT controller needed an offset of 7 so reading a whole track would take seven rotations.
It’s no wonder that bitwise RAID techniques like RAID2 and RAID3 looked like a good idea at the time.
Controllers Merge Into Drives
The next big change was the integration of what we had previously considered disk controller functionality into the disk drive itself. Even the early SASI (Shugart Associates Standard Interface the predecessor to SCSI) systems we built used a ST-506 to SASI controllers to connect the drives to the SASI bus.
A Xebec SASI to ST-506 Controller
By the time 300MB disk drives shrunk from the Maytag sized SMD drives to 5 ¼” size ANSI had renamed SASI to SCSI, because company names weren’t allowed in the names of standards, and high-performance disk drives had the SCSI controller built in.
A few years later (1987) Western Digital, then making the transition from making disk controller chips to disk drives, did the same thing for lower cost drives integrating the PC/AT disk controller they had made for years into 3 ½” disk drives they branded as integrated drive electronics (IDE) later renamed AT Attachment or ATA and finally PATA when the serial version SATA was introduced.
Since the functions we used to associate with a disk controller are now integrated into every drive the card that connects SATA or SAS drives to the PCIe bus of a server isn’t strictly speaking a disk controller but a host bus adapter connecting the server the SCSI bus.
There was a good 10 year period there where IT departments had strict SCSI only policies for their servers. I remember several clients buying SNAP NAS boxes as secondary storage because the rules wouldn’t allow them to use ATA drives in a Windows Server. A little NAS did basically the same thing as a Windows file server but since it wasn’t officially a server ATA drives were allowed.
Logical Block Addressing
While the SCSI command set is much richer than ATAPI both introduce the crucial abstraction of logical block addressing. With earlier drive interfaces each file system would have to know the drive’s geometry so it could request data by HTS (Head, Track, Sector) or CHS (Cylinder, Head, Sector) address.
The HTS addressing method started breaking down when the number of sectors per track grew past the 63 sectors that could be addressed in the five bit sector field of an ST-506 command.
Instead of forcing the host computer to know the drive’s geometry, SCSI and ATA drives number their sectors, which we now call blocks, sequentially from zero to whatever number of 512 byte blocks would fill the device.
In addition to freeing storage systems from the shackles of addressing disk drives by their physical geometry LBA also enabled drives to automatically re-map sectors that don’t store data properly to new locations on the disk.
Zoned Bit Recording
Logical block addressing also made it a lot easier for disk vendors to take advantage of the basic geometrical fact that the outer tracks of a disk drive are longer than the inner tracks by packing more sectors into those outer tracks. Modern hard drives have multiple zones with each zone of multiple tracks holding fewer sectors as approaching the center of the disk as shown in the figure below:
A drive formatted with Zoned Bit Recording
In our next, installment we’ll look at voice coils, closed loop servo, and how drives had to get smaller to get faster. Part four, which shoud end this little tangent, will look at Shingled Magnetic Recording (SMR) and the proper care and feeding of SMR drives.