Boston Linux & Unix (BLU) Home | Calendar | Mail Lists | List Archives | Desktop SIG | Hardware Hacking SIG
Wiki | Flickr | PicasaWeb | Video | Maps & Directions | Installfests | Keysignings
Linux Cafe | Meeting Notes | Blog | Linux Links | Bling | About BLU

BLU Discuss list archive


[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]

Parallel vs Serial speed



Robert L Krawitz wrote:
> Matthew Gillen wrote:
>> I'm sure you're correct about all the voltage analysis, except that
>> "harder" from the above must not equate to "cheaper", since you
>> don't see any computers with Universal Parallel Bus ports...
> 
> The hard part about traditional bit-parallel interfaces is that each
> bit has to be kept in sync -- if you have a 32-bit wide interface,
> that means that 32 bits have to be kept in sync at high clock
> frequencies so that the data gets reassembled correctly at the other
> end.
> 
> A serial interface, on the other hand, merely has to preserve the
> ordering between the bits...a much simpler task.

While this is true, I think it is a secondary factor. The above can be 
solved by throwing more silicon at the problem, but that's something 
you'd have to do anyway to accomplish a high speed interface (see 
below). Making it parallel just multiplies the complexity by the number 
of bits, and keeping them in sync just worsens the problem.


I agree with most of what Mark has said in this thread, but I'll add a 
bit of clarification.

I believe the reason why we have seen the "backwards" transition from 
parallel interfaces to serial is simply the dropping cost of our ability 
to create more complex circuits in silicon, and the increasing switching 
speed of transistors.

Parallel was a natural starting point, as it basically took simple 
interfaces that already existed on the chips on the motherboard and just 
added some simple buffering.

As Mark pointed out:

> The reason why they are slow is that the current needed to drive a
> fast ~4 volt swing is high based on the inductance of any real length
> of cable.

...as you scale up the speed in any interface, you encounter problems 
with the electrical characteristics of the cabling (he meant impedance, 
rather than inductance).

Using differential signaling[1] (each signal is sent over two wires, one 
carrying the original, and the other carrying an inverted version) 
addresses the problem of noise and interference; short, specially 
designed cables (as well as reduced voltage, as Mark points out) 
addresses the impedance issue; but the big item is data encoding. Doing 
a little research prompted by this question shows that SATA uses 8B/10B 
encoding[2], a scheme that provides some noise benefits as well as 
embedding the data clock in the encoded data, rather than requiring a 
separate dedicated clock signal, which minimizes synchronization issues.

(All of this is address in some detail in "Serial ATA: A Comparison with 
Ultra ATA Technology"[3]. It provides a better explanation for the 
benefits of SATA's electrical design and signaling than the Wikipedia 
articles.)

To pull off this encoding requires added complexity in the hardware - 
primarily the silicon. It also depends on transistors capable of 
operating fast enough that you can replace 8, 16, or 32 signal paths 
operating in parallel with a single signal path that operates even faster.

So while these same principles can be applied to multiple data paths, 
it's probably cheaper to scale up the speed and complexity of a single 
encoded signal, taking advantage of the impact of Moore's Law[4] on 
silicon, than to use a simpler signaling scheme, but run more expensive 
cables (coax, fiber, etc.) in parallel. And yeah, keeping parallel bits 
in sync is probably a factor in why we don't see "parallel USB" or 
"parallel SATA" (applying high-speed serial techniques to a parallel 
data path), the expense of bigger cables, connectors, and cross talk are 
probably just as dominant.

Speaking of fiber...lots of progress is being made in the area of cheap 
optical interfaces, so it probably won't be long before we switch to 
using fiber for interconnects. A serial signaling system is of course a 
natural fit for fiber.

  -Tom

1. http://en.wikipedia.org/wiki/Differential_signalling
2. http://en.wikipedia.org/wiki/8B/10B_encoding
3. 
http://www.sata-io.org/docs/serialata%20-%20a%20comparison%20with%20ultra%20ata%20technology.pdf
4. http://en.wikipedia.org/wiki/Moore%27s_Law

-- 
Tom Metro
Venture Logic, Newton, MA, USA
"Enterprise solutions through open source."
Professional Profile: http://tmetro.venturelogic.com/

-- 
This message has been scanned for viruses and
dangerous content by MailScanner, and is
believed to be clean.





BLU is a member of BostonUserGroups
BLU is a member of BostonUserGroups
We also thank MIT for the use of their facilities.

Valid HTML 4.01! Valid CSS!



Boston Linux & Unix / webmaster@blu.org