19

SATA HDDs and SSDs use ATA as software protocol for data transmission (on the SATA cable). SATA CD/DVD/Blu-Ray drives use SCSI. Please note that AHCI is the protocol used between the SATA controller and the CPU. Neither SATA HDDs nor CD drives talk any AHCI. You can read all about it here.

Now someone might think ATA is more suitable for HDDs while SCSI is better for CD drives. But I have a new external Western Digital USB HDD here and I saw in Wireshark that it uses SCSI. Also the recent Linux kernel translates all ATA commands to SCSI (that is since /dev/hda has been renamed to /dev/sda). As you can see SCSI is perfectly suitable for HDDs.

Imagine you are compressing files. You normally use .zip but sometimes you use .rar (for no reason). It does not make sense and it's basically the same.

I am sure there is a historical reason why SATA HDDs and SSDs use ATA and not SCSI.

Can someone explain how that came and why HDDs and SSDs never switched to SCSI?

13
  • 5
    If a hard didn't use ATA, then wouldn't it not be SATA? Jan 31 at 4:38
  • 4
    @Acccumulation CD drives don't use ATA and they're SATA too.
    – zomega
    Jan 31 at 7:45
  • Unix-machines back in the 90'es had SCSI harddrives. Jan 31 at 7:54
  • 2
    @zomega: As far as I know, IDE/SATA CD drives still use ATA at least partially partially – even if it's only to identify the device and to tunnel SCSI commands inside ATA payload, but the SATA cable is still carrying SCSI-in-ATA and not just "raw" SCSI. (That's why "ATAPI" as a concept even exists, because if the CD drives were just purely SCSI, they wouldn't be called ATAPI devices... they would just be called SCSI devices.)
    – grawity
    Jan 31 at 10:26
  • 2
    A disk using SCSI command language but the SATA connector and interface, that is known as SAS. Feb 2 at 0:40

5 Answers 5

41

Let’s start by addressing a few misconceptions.

I have a new external Western Digital USB HDD here and I saw in Wireshark that it uses SCSI.

That’s because storage over USB uses SCSI-style protocols. This doesn’t imply anything about the drive’s native protocol; you computer is communicating with a storage controller over USB, not with the drive itself.

Also the recent Linux kernel translates all ATA commands to SCSI (that is since /dev/hda has been renamed to /dev/sda).

It’s the other way round: it translates SCSI commands to ATA.

Can someone explain how that came and why HDDs and SSDs never switched to SCSI?

Hard drives and SSDs did use SCSI (and SAS, SCSI’s serial descendant).

To address your main question, it’s all about history.

The first PC hard drives used a bespoke interface, which ended up named after one of them: ST-506. SCSI was developed simultaneously, and was made public after the ST-506 became available, so it’s understandable that Seagate didn’t use SCSI.

When IDE was developed, software compatibility with the existing ST-506 interface was a more important consideration than compatibility with the emerging SCSI standard. SCSI was also more complex and expensive to implement, which left room for IDE. Thus we ended up with IDE hard drives (in most PCs) and SCSI hard drives (in Macs, and PCs where higher performance or support for larger numbers of drives was needed, and workstations etc.).

PATA was good enough for most uses, so it survived in the mainstream, and SCSI survived in the enterprise; similar considerations apply to SATA and SAS later on.

CD-ROM drives were introduced in a messier fashion, with multiple competing proprietary interfaces; initially, Philips / LMSI and Hitachi interfaces, both in 1985. SCSI CD-ROMs came later, in 1987, and relied at first on cards providing translation from SCSI to the drives’ native protocols. In the mid-nineties, when the ATAPI Council started working on allowing CD-ROM drives (and tape drives etc.) to be attached using a PATA-style interface (and the same physical connector), they presumably thought that the SCSI command set made sense and that it would be easier to re-use that than come up with yet another new standard.

18
  • I want to say something about the USB Western Digital HDD. It's not a USB case + 2,5" SATA HDD. Instead it's closed (one piece). I have read on the internet that when you open such HDDs you will not find a common 2,5" SATA HDD (at least sometimes). That is why I assume SCSI is the native protocol. Why should it translate the SCSI to ATA? It's not necessary and would mean more effort and cost.
    – zomega
    Jan 30 at 18:30
  • 5
    @zomega where did I say that SCSI isn’t your drive’s native protocol? I only said that you couldn’t draw conclusions based only on what you see in Wireshark. Jan 30 at 19:13
  • 7
    Nice answer, right on the spot. For the last paragraph it may be worth to add that the messy ways only came up with cheap drives for the PC. CD drives before that were all SCSI only drives. Right from the very first data drives by Philips.
    – Raffzahn
    Jan 30 at 22:57
  • 3
    @another-dave did you give kids nickels and tell them to buy better computers?
    – RonJohn
    Jan 31 at 8:47
  • 1
    @ThorbjørnRavnAndersen It all depends on what to achieve. Basic SCSI can be handled by any 8 bit CPU, as in asynchronous mode each bye is hand-shaked. Of course this will not bring maximum performance. Same way as PIO mode on IDE. In fact, maximum transfer speed for SCSI-1 in asynchronous mode is about the same as PIO Mode 0 :) Regarding Apple, you may look close. Apple was extreme good in building cheap computers - they were just not selling hem cheap. After all, their stick was to generate more profit from less units than on the PC market.
    – Raffzahn
    Jan 31 at 10:50
11

But I have a new external Western Digital USB HDD here and I saw in Wireshark that it uses SCSI.

Yes, because (most) USB storage devices are using SCSI commands over top of USB. This is done either via direct tunneling using UASP or USB MSC subclass 6, or on rare occasion in a more complicated manner using USB MSC subclass 1 or 2 (though anything but subclass 6 is not well supported on most systems). The actual storage device may not be speaking SCSI natively though (in fact, the physical media is almost certainly not unless it’s a pen-drive). Most USB SSDs do these days, but for traditional hard drives SCSI ATA Translation (SAT) adapters were the norm, and I have seen more exotic devices that do strange things like translating from NVMe to UASP or encapsulating an eUFS or eMMC chip as the actual storage.

As you can see SCSI is perfectly suitable for HDDs.

Yes, because SCSI evolved out of a block storage protocol (SASI), though it had quite a lot of other things bolted on as well (early SCSI essentially tried to compete with IEEE 488, IEEE 1284 (and it’s predecessors), and later on IEEE 1394 and USB as a general peripheral interconnect).

I am sure there is a historical reason why SATA HDDs and SSDs use ATA and not SCSI.

Because SATA is a physical layer for ATA, not for SCSI. This is a bit like asking why Bluetooth devices don’t use Ethernet.

Can someone explain how that came and why HDDs and SSDs never switched to SCSI?

SCSI block storage devices absolutely exist. They were widely used on just about everything but IBM systems, and even today Serial Attached SCSI is the de-facto standard storage interconnect on all but the most spartan entry-level servers, and iSCSI (and to a lesser extent Fibre Channel and SRP) is the de-facto standard for SAN systems. However, SCSI usage on consumer systems for block storage largely died off throughout the late 90's, partly because of the rise of the PC as the de-facto standard system for consumers, and partly because ATA had a better price-performance ratio (and worked well enough for home users).

5
  • 1
    They were widely used on just about everything but IBM systems, Wrong. I had an array of IBM 400 MB disks that were used in AS/400 systems that were SCSI that I had connected to my Atari TT. Jan 31 at 14:22
  • @PatrickSchlüter There were indeed IBM systems that used SCSI, but unlike most of the other big name companies making small and midrange systems around that time they really did not go all in on SCSI, and it was not a certainty it would be available on any arbitrary IBM system from that time. Jan 31 at 17:04
  • By “IBM systems”, do you mean PCs? Feb 1 at 12:20
  • 1
    @StephenKitt both PCs and IBM mainframes from that time period (and I am specifically talking about that period of the late 80's and early 90's, IBM did definitively pick up SCSI with gusto later on). I will admit some ignorance when it comes to IBM’s midrange hardware from the time though. Feb 1 at 12:46
  • IBM midrange was ESDI in the mid-80s and SCSI in the 90's. Their weirdness is that they use 520 and later 522 bytes per sector for end-to-end ECC, so the drives are semi-custom. RS/6000 also started out ESDI but quickly went SCSI. The mainframes are the exception.
    – user71659
    Feb 1 at 19:08
10

I am sure there is a historical reason why SATA HDDs and SSDs use ATA and not SCSI.

One interesting aspect about early ATA is that it is almost directly compatible with ISA bus. For the slow speed PIO mode transfers, no special hardware is needed, just a few logic chips for address decoding.

This made early ATA add-on cards much cheaper than SCSI controllers. See this for example on how simple it can be. Later PC motherboards included IDE/ATA connectors as a default feature, while SCSI was rarely included on low-cost motherboards.

Can someone explain how that came and why HDDs and SSDs never switched to SCSI?

That's a good question - the answer is probably that there is no clear benefit in doing such a switch.

Backwards compatibility also matters, meaning ability to run old software on new hardware. Most chipsets provide IDE/PATA compatibility for the SATA interface, which is probably easier to provide when the basic command set is identical - though certainly it would be possible to translate ATA-to-SCSI in hardware also.

2
  • 4
    This was the original point of ATA/IDE: (IBM PC/)'AT attachment' and 'Integrated Drive Electronics'. The (WD1003) controller chips that were previously on an ISA add-in card were moved to being mounted on the drive, with the result the ISA IDE interface was essentially nothing. On non-PCs you didn't have ISA and needed a controller either way and that was one reason for SCSI being more popular, since it was more flexible. Feb 1 at 15:10
  • 2
    In addition to backwards compatibility, I wonder if "product positioning" was also an issue. I.E. manufacturers wanting to maintain a distinction between their "consumer" (ATA/SATA) and premium (SCSI/SAS) product lines. Feb 1 at 17:52
4

I recommend reading this answer by Warren Young over on the Unix SE site. The question is different than yours, but the first part of his post answers your question as well.

The short version is that ATA and SCSI are two very different things. ATA was designed for hard drives. SCSI was designed for a wide variety of things, including hard drives. That extra flexibility and power made SCSI more expensive to implement, so consumer devices gravitated towards ATA because the hardware was cheaper. In applications where the extra capabilities of SCSI are useful (improved reliability, larger number of drives, etc), SCSI hard drives were common. I remember several models of Apple computer that had a SCSI controller for connecting to a scanner or a high-density floppy drive. Since it already had the SCSI hardware, it used it for the hard drive as well.

CD drives - plus tape drives and a handful of other things - used SCSI because SCSI already contained a set of commands designed for those devices (eject, check if media present, etc) and ATA did not. These devices eventually became commonplace enough that people wanted to use them on their consumer-grade PC at home, and they didn't like having to buy and wrestle with an expensive SCSI controller to do it. As a workaround, the ATA standard introduced ATAPI, which is a way of bundling up certain SCSI commands and delivering them over a physical ATA interface. Manufacturers could take a SCSI CD-ROM drive, add a SCSI-to-ATAPI protocol converter to it, and sell it for use in a system that only had an ATA controller.

1
  • ATA was designed to be the interface bus on the Intel 8086 processor. It was adapted to be the PC bus, XT bus, AT bus. ATA hard drives were designed to be connected to the IBM AT bus using an AT Adapter.
    – david
    Feb 2 at 22:05
0

As an amateur historian of computing, perhaps the word missed in this thread was "serial" ATA. The cheap and slower cousin of SCSI, but faster than the old IDE and ATA. CD or DVD equipment may use some SCSI code, which I believe was proprietary, but in essence it is based on SATA and I doubt that CD & DVD technology will be developed any further, to be of interest for the general market. Also one should not discount the influence of marketing departments.

AFAIK, SCSI requires a dedicated controller, and CD drives still use a SATA connector. In any case, NVMe SSD units supersede SATA and SCSI in speed, but for the time being they're more expensive.

You must log in to answer this question.

Not the answer you're looking for? Browse other questions tagged .