Jamie Balfour

Welcome to my personal website.

Find out more about me, my personal projects, reviews, courses and much more here.

Moving from parallel to serial

Moving from parallel to serial

This is an old post I wrote for a blog in 2008 and found in 2019 brought forward onto my own blog.

One of the most prominent changes over the last few years is the move from parallel communications to serial communications, but did you know that although parallel ports were once faster than serial because of the multiple lanes that were used to send data, that serial is now a faster option?

[P]ATA is slowly being replaced by SATA and parallel printer ports (LPT ports) have almost disappeared from even these desktop computers we have at school these days which seem to be the only place you'll see them.

RS232 is still commonplace on business laptops however, and so it should be. Whilst it's an old and pretty slow connection, did you know it's also incredibly easy to use and to program because of it's almost entirely binary/hexadecimal communication?

New data connections will continue the trend that USB 2.0 has made, and USB 3.0 is already in the works, expecting speeds of up to 2Gbps - 5Gbps! FireWire is also a serial connection that offers up to 3.2Gbps currently - making it the fastest connector out there (although Intel LightPeak might overtake it since it's using optical connections).

But why is serial with one single lane faster than multiple? Here's why:

With parallel everything is sent in chunks. E.g. 10 binary numbers were sent across a parallel 25-pin DB-25 connector in one go whereas a serial 9-pin DE-9 sent just 1 binary number in one go. But here's the issue. Parallel means that the data might get there in different times. For the computer to be able to reassemble it, it has to wait for the slowest bit, so even if 9 of the binary numbers arrive, the last one might take a few nanoseconds longer - thus to be able to rebuild it the computer needs to wait. Next, the issue of order. Parallel data might come in to the computer in the wrong order and needs to be repackaged in the correct order. To do this the data comes with a checksum number that the computer can verify the data against to make sure it is in the correct order. If the order is wrong it means that the computer has more work to do.

Serial data has no checksums, no worries of order being wrong since it is a queue of data with one coming after the other. There's no waiting for the bits to arrive, they arrive when they arrive.

PCI-E uses multiple lanes, so it must be a parallel connection. Wrong. PCI-E uses several serial lanes subsequently to send data but they do not work on the same data. The controller on each end breaks the data down into chunks the same way as parallel ports did, but those chunks themselves are combined later.

And that's why serial ports are on the rise. It's a sad thing for me to see the old LPT parallel port disappear, and it's sad to see it's no longer on any custom motherboards that are designed for top end (though headers are available on most of these) but it's the right way to be going.

Posted by jamiebalfour04 in Tech talk
Powered by DASH 2.0