Why does SATA superseeds PATA

Discussions on more advanced topics such as monolithic vs micro-kernels, transactional memory models, and paging vs segmentation should go here. Use this forum to expand and improve the wiki!
Post Reply
lopidas
Member
Member
Posts: 65
Joined: Sun May 26, 2013 10:12 am

Why does SATA superseeds PATA

Post by lopidas »

If I understand it right, parallel ports should be faster, because they can run in parallel.

So why is the SATA better?
User avatar
Love4Boobies
Member
Member
Posts: 2111
Joined: Fri Mar 07, 2008 5:36 pm
Location: Bucharest, Romania

Re: Why does SATA superseeds PATA

Post by Love4Boobies »

Because serial communications are more cost-effective so it makes more economical sense to invest in them.
"Computers in the future may weigh no more than 1.5 tons.", Popular Mechanics (1949)
[ Project UDI ]
User avatar
Owen
Member
Member
Posts: 1700
Joined: Fri Jun 13, 2008 3:21 pm
Location: Cambridge, United Kingdom
Contact:

Re: Why does SATA superseeds PATA

Post by Owen »

For a given clock rate, parallel transfer carries more data. This should be obvious: data rate = pins * clock speed.

However, the higher the clock speed, the smaller the wavelength of the signal, the smaller the tolerances on the interconnect become. In order to transfer the data intact, its' required that the difference in length between the cables is sufficiently small, and requirements with regards to shielding and noise immunity increase. As you increase the clock speed, these things become more and more expensive.

The parallel ATA connector is not one suited for high speeds. Getting the "UltraDMA" speeds out of it required retrofitting the ribbon cable with 40 extra pins. The connectors have low noise and crosstalk immunity, and they're large and rather expensive. It reached the point whereby the cost of making Parallel ATA faster was more expensive than the cost of transitioning to a new connector system... so the decision was made to move. A new standard was drawn up; while they were at it, they shrunk the pin count considerably; a SATA data cable now contains two twisted pairs (operated as a balanced signal - which vastly improves noise immunity via common mode rejection) inside a shield. This reduced costs significantly.

When Parallel ATA was introduced, there was no custom circuity required; it was really just the ISA bus ran out onto a ribbon cable. These days, both hard drives and motherboards have chips which invest circuitry into making the hard drive interface go fast. The first version of Serial ATA both required less circuitry (the serialization/encoding/decoding/deserialization logic + high speed LVDS 4 pin drivers is smaller than ~20 high speed TTL pin drivers) and was faster than parallel ATA; newer versions have succeeded at speeding it up with ease.

Note that you'll have difficulty finding many high speed parallel busses inside your machine; in fact, mine only has one*: RAM. RAM is the one area where the circuitry required to make a serial bus go fast is prohibitive (RAM chips are made in a special process unsuited to fast logic). PCI-Express, for example, is serial; a PCI-Express 1x slot contains a balanced pair per direction on which signals are encoded using similar LVDS technology to SATA. Wider slots just work by taking that same logic and spreading transactions between the lanes (i.e. if you send 4 writes to your GPU in quick succession, the PCI-Express hub will send the first down link 0, the next down link 1, etc, etc).

If you have a quick look at the motherboard around the RAM slots, you'll notice a lot of traces running in "serpentine" fashions. These are intentional deskewing; the engineer who laid out the motherboard inserted them to keep all the RAM traces in sync.

Serial I/O is a lot cheaper, and very easy to make go fast when you have the circuitry and techniques we have today.

(* Well, two, but thats because my GPU, like most, has its' own bank of RAM)
Post Reply