How did serial take over from parallel?
If you are old enough to remember the days of serial vs parallel, you'd remember the good old 'parallel port', probably in its DB25 form. One of the laptops I use occasionally still has a DB25 LPT connector that I use for taking data from the older drives that we have within the house and putting on to a more modern drive.
Speaking of parallel, I'm actually using my old Evo N1020v and the good old parallel port to transfer data from my old SYQUEST drive to my newer computers. Boy were these disks good in the day, 1GB of removable storage back in 1998 compared with 1.44MB of a floppy disk!
Hardware has always been my pet love in computer science, even more so than programming. I spent a lot of my childhood interested in computer hardware and eventually started to understand when I was about 14 how computers actually work (it also made me look at them in a different light, seeing how basic they actually are).
The RS232 connector
The RS232 connector (pictured), a serial connector, often known as the serial port, had a transmission of 1 bit per clock, whereas the parallel port could transfer 7-8 bits per clock.
How could this mean that the serial connector was the future and how did this overtake the parallel connector? This was a question that can be answered with a detailed answer.
Computers are electronic machines
Unlike human beings, computers are machines that use electricity to send voltages that mean something to them. For example, a transistor is turned from the ON state to the OFF state by removing the voltage altogether and vice versa.
But voltages going across are, to some degree, uncontrollable, and we cannot be assured that the voltage will be received at the exact time we want it to.
Parallel connectors received 25 data bits in one clock, but what if 6 of those bits took 1/2ns to transmit whereas one of those bits took 9ns to transmit? Can you see an issue?
For the data being sent across the parallel port to make any sense to the computer, the computer needs to reorder the data in an efficient and thorough, safe manner. So the first 6 bits may have arrived quickly, but the last bit meant that before the parallel interface could process the data it needed that other data to arrive. It then performs a parity check - a check that ensures that the data is valid. If it is not, it requests the data again and the whole process is carried out again. The parity check also requires a few more ns of time to complete the check (albeit a very short amount of time compared with the sending and receiving process).
Now compare that to serial communication where everything is sent in order. There is no need for a parity check with serial data the way there is for a parallel connection. Why? Because each bit is either a 1 or 0, not a specific combination that needs to be checked. As a result of this lack of sanitisation of data, we can assume that the top speed of a serial connection is faster per bit.
Another major benefit of serial is how simple it is to build, and therefore cheaper - there is no need for parity checking on every batch of bits like in a parallel connector and it's as simple as connecting two wires together.
But okay, what if every bit in a parallel connection is sent and received at the same time. Well here's the thing, computer buses are parallel buses made of serial links. This means that the data transmitted by the connector must be collated and sent in serial across one of the many parallel channels of the bus. Conversion of a parallel signal to a serial signal will slow the process further.
You may also read that parallel ports were unidirectional and could not transmit either way and whilst this was the case with the original LPT parallel port, it's not always the case since parallel ports can actually transmit data just as serial links did. The original parallel port designed for printers did not support bidirectional communication and only sent an instruction across one of the pins of the connector to inform that it had received or printed the document properly.
A nice way to remember this is that parallel connections are themselves often made up of smaller serial connections set up in a parallel way.
So there you have it, serial is the winner. Despite when I was younger favouring the parallel port to the serial port because I saw the raw performance was around 20Mbps (2.5MBps) and immediately assumed it was faster. (I was about 10 years old when this was my view).