From Parallel to Serial
The PCI Express connection represents an extraordinary advance in the way peripheral devices communicate with the computer. It differs from the PCI bus in many aspects, but the most important one is the way data is transferred. The PCI Express connection is another example of the trend of migrating data transfer from parallel communication to serial communication. Other common interfaces that use the serial communication include the USB, the Ethernet (networking), and the SATA and SAS (storage).
Before the PCI Express, all PC buses and expansion slots used parallel communication. In parallel communication several bits are transferred on the data path at the same time, in parallel. In serial communication, only one bit is transferred on the data path per clock cycle. At first, this makes parallel communication faster than serial communication, since the higher the number of bits transmitted at a time, the faster the communication will be.
Parallel communication, though, suffers from some issues that prevent transmissions from reaching higher clock rates. The higher the clock, the greater will be the problems with electromagnetic interference (EMI) and propagation delay.
When electric current flows through a wire, an electromagnetic field is created around it. This field may induce electrical current on the adjacent wire, corrupting the information being transmitted on it. As in parallel transmission, several bits are transmitted at a time, each bit involved in the transmission using one wire. For example, in a 32-bit communication (such as the standard PCI slot) it is necessary to have 32 wires just to transmit data, not counting additional control signals that are also necessary. The higher the clock, the greater the electromagnetic interference problem.
As we have commented before, each bit in parallel communication is transmitted on a separate wire, but it is almost impossible to make those 32 wires have exactly the same length on a motherboard. At higher clock rates, data transmitted through shorter wires arrive before the data that are transmitted through longer wires. That is, the bits in parallel communication may arrive delayed. As a consequence, the receiving device must wait for all the bits to arrive in order to process the complete data, which represents a significant loss in performance. This problem is known as propagation delay and becomes worse with the increase in the clock rates.
The project of a communications bus using serial communication is simpler to implement than one using parallel communication since fewer wires are necessary to transmit data. On a typical serial communication, four wires are necessary – two for transmitting data and two for receiving, usually with a technique against electromagnetic interference called cancellation or differential transmission. With the cancellation, the same signal is transmitted on two wires, with the second wire transmitting the signal “mirrored” (inverted polarity) compared to the original signal, as you can see in Figure 3. When the receiver gets the signal, it can compare the two signals, which must be equal but “mirrored.” The difference between the two signals is noise, making it very simple for the receiver to know what noise is and to discard it.
Besides providing higher immunity to electromagnetic interference, serial communications don’t suffer from propagation delays. This way, they can achieve higher clock rates more easily than parallel communications.
Another very important difference between parallel communication and serial communication is that parallel communication is usually half-duplex (the same wires are used to transmit and to receive data) due to the high number of wires that are necessary for its implementation. Serial communication is full-duplex (there is a separate set of wires to transmit data and another set of wires to receive data) because it needs just two wires each way. With a half-duplex communication, two devices can’t talk to each other at the same time; either one or the other is transmitting data. With full-duplex communication, both devices can be transmitting data at the same time.
These are the main reasons why engineers adopted serial communication instead of parallel communication with the PCI Express.
Now you might be asking yourself, “Isn’t serial communication slower?” It depends on what you are comparing. If you compare a parallel communication of 33 MHz transmitting 32 bits per clock cycle, it will be 32 times faster than a serial communication of 33 MHz transmitting only one bit at a time. However, if you compare the same parallel communication to a serial communication working at a much higher clock rate, the serial communication may be, in fact, much faster. Just compare the bandwidth of the original PCI bus, which is 133 MB/s (33 MHz x 32 bits), with the lowest bandwidth you can achieve with a PCI Express connection (250 MB/s, 2.5 GHz x 1 bit).
The notion that serial is “always” slower than parallel communication comes from old computers that had ports called “serial port” and “parallel port.” At that time, the parallel port was much faster than the serial port. That was because of the way these ports were implemented. This doesn’t mean that serial communications are always slower than parallel communications.
Let’s now talk about how the PCI Express communication works.