Serial & Parallel Interfaces

Discussion in 'Current Events' started by guzhogi, Apr 8, 2009.

  1. guzhogi macrumors 68020

    guzhogi

    Joined:
    Aug 31, 2003
    Location:
    Wherever my feet take me…
    #1
    I'm seeing quite a few technologies going from a parallel interface to a serial one. Examples: PATA -> SATA, regular SCSI -> SAS, etc. My question is, how can serial be faster? That, for me, goes against logic. I would think parallel would be faster. Kinda like saying trying to increase the number of cars per minute on a road by going from 8 lanes to 1. I've noticed people who read & post to these forums are fairly knowledgeable so can someone explain this to me?
     
  2. sycho macrumors 6502a

    sycho

    Joined:
    Oct 7, 2006
    #2
    Since all information is naturally serial, or sequential, parallel interfaces have to wait until their buffer is filled, and then send the information.

    Example:

    Would it be quicker to count from 0 through 9 and see the results instantly, or would it be quicker to count from 0 through 9 and wait for you to finish and then send everything as a whole?
     
  3. guzhogi thread starter macrumors 68020

    guzhogi

    Joined:
    Aug 31, 2003
    Location:
    Wherever my feet take me…
    #3
    Okay, cool. I know the basics of like SATA, PATA, etc. (what they look like, how to attach them, etc.), I have no clue how they actually work & transfer data. I didn't know that parallel interfaces buffered the data first. I thought that since procs today are 32 or 64-bit today, getting 1 bit at a time (serial) would be slower than getting multiple bits at the same time. As I said, I don't know the really low level stuff about how it all works so sorry if it's a stupid question.
     
  4. sycho macrumors 6502a

    sycho

    Joined:
    Oct 7, 2006
    #4
    Well that was just the basics, there are many more things that come into play then that.
     
  5. robbieduncan Moderator emeritus

    robbieduncan

    Joined:
    Jul 24, 2002
    Location:
    London
    #5
    Basically the answer is data skew.

    If you want to have sensible cable lengths allowed you need to either have amazingly expensive cables or relatively long data bursts (per signal) to ensure that all the wires show the same at the receive end at the time of reception. This places a limit on the maximum speed. So although you can transmit, say, 8 or 16 bits at once a serial transmission bus that does not have to worry about skew can be running 100s of times faster taking away the advantage and more...
     
  6. ChrisA macrumors G4

    Joined:
    Jan 5, 2006
    Location:
    Redondo Beach, California
    #6
    In simple terms, if you use 8 wires to send a byte you are using 8 different wires. The data that goes down each wire might take more or less time than the data in other wires. So at the receiving end you have to wait until the slowest wire delivers its data. Of course the receiver does not know which is the slow wire so it always has to wait a "worse case" length of time between bytes. This limits the rate bytes can be sent.

    With a serial line you can mix the clock with the data so the receiver can stay in sync without a worse case wait between bits.

    There is an even faster way to send data. Multi-channel serial. Basically you gang together 2, 4 or 8 serial lines. There are many variations on this, the 'lines" can be physical wires or in the case of digital cable TV different RF carrier frequencies.
     
  7. guzhogi thread starter macrumors 68020

    guzhogi

    Joined:
    Aug 31, 2003
    Location:
    Wherever my feet take me…
    #7
    Yes, but then wouldn't get a parallel connection again?
     
  8. notjustjay macrumors 603

    notjustjay

    Joined:
    Sep 19, 2003
    Location:
    Canada, eh?
    #8
    Not really. Each serial line would have its own clock and synchronization so if it was "off" compared to the other lines, it wouldn't matter.
     
  9. Flynnstone macrumors 65816

    Flynnstone

    Joined:
    Feb 25, 2003
    Location:
    Cold beer land
    #9
    Yes & no. Are you getting tired of hearing that yet :D

    If the data is mutually exclusive, then not really parallel.
    If the data is grouped in a blob. The data belongs together, then it is parallel, but on a packet level. Not on a byte, word level.

    SATA is serial.
    PCIe, PCI express is serial, but it can have "lanes" to increase throughput. So the lanes kind of make it parallel, sort of.

    All these high speed serial interfaces are differential, or 2 wires per serial channel. Differential is fast and lower noise & lower susceptibility to external noise.

    I think the simple answer is that it is cheaper to go faster with serial.
     
  10. notjustjay macrumors 603

    notjustjay

    Joined:
    Sep 19, 2003
    Location:
    Canada, eh?
    #10
    It's not simply that it's faster, it is cheaper. You've got far fewer data pins, which means fewer wires in the cable. That also means less interference, which means more robustness.

    The system is simpler, too. You don't need to buffer the bits into bytes. You are also not limited by word length. The parallel port has enough pins for 8 bits of data at a time, which was perfectly fine when PCs and printers were simple and only needed to output one byte at a time. If you were trying to transfer a 16-bit word, you'd have to line up the first set of 8 bits, save that, then line up the second set of bits, then put it all together to form your 16 bit word. If you have a 32-bit word, you have even more work to do.

    With a serial line, you can just keep pulsing bits through for as long as you need.
     
  11. maccompaq macrumors 65816

    maccompaq

    Joined:
    Mar 6, 2007
    #11
    Very good explanation. I had always wondered about that.
     

Share This Page