Search This Blog

Sunday, August 22, 2010

A Computer BUS (PCI-Express Compared)



   The processor communicates with other peripherals in the PC through a path of data called bus. Since the release of the first PC, in 1981, up to the present day, several types of bus have been developed in order to allow the communication between the processor and input and output peripherals. We can name the following buses already launched:
  • ISA
  • EISA
  • MCA
  • VLB
  • PCI
  • AGP
  • PCI Express
 
    The main difference among the several types of bus is in the number of bits that can be transmitted at a time, and in the operating frequency used. Nowadays the two fastest types of PC expansion bus are the PCI and the AGP. We listed the transfer rate of those buses in the chart below. The PCI-X bus is an extension of the PCI bus designed to the market of network servers
Bus
Clock
Number of bits
Data per Clock Cycle
Maximum Transfer Rate
PCI
33 MHz
32
1
133 MB/s
PCI
66 MHz
32
1
266 MB/s
PCI
33 MHz
64
1
266 MB/s
PCI
66 MHz
64
1
533 MB/s
PCI-X 64
66 MHz
64
1
533 MB/s
PCI-X 133
133 MHz
64
1
1,066 MB/s
PCI-X 266
133 MHz
64
2
2,132 MB/s
PCI-X 533
133 MHz
64
4
4,266 MB/s
AGP x1
66 MHz
32
1
266 MB/s
AGP x2
66 MHz
32
2
533 MB/s
AGP x4
66 MHz
32
4
1,066 MB/s
AGP x8
66 MHz
32
8
2,133 MB/s

   The PCI bus was released by Intel in June, 1992. Since then, almost all PC expansion peripherals, such as hard disks, sound cards, LAN cards, and video cards have been using the PCI bus. The thing is, the PCI bus maximum transfer rate - 133 MB/s – proved to be insufficient for modern 3D applications and it represented a limitation to the development of more sophisticated video cards. In order to solve that issue, Intel created a new bus, called AGP, to increase the transfer rate of video cards – now they wouldn’t have to be installed in the PCI bus anymore, but in the AGP bus, which is faster. Then the PCI was not so “busy” anymore, since video cards were the great responsible for the intense traffic in the PCI bus.
For more information on AGP bus, read our AGP Bus Tutorial.
With the coming of faster graphics chips and new network technologies, such as Gigabit Ethernet and RAID technology, once more the maximum transfer rate of the PCI bus proved to be insufficient to handle those new applications. Something needed to be done and the answer came with the launching of the PCI Express bus.
In the tutorial we will explain in details how the PCI Express bus works and how it differs from the PCI bus.

Obs: Technically speaking, PCI Express is not a bus. A bus is a data path where you can attach several devices at the same time, sharing this data path. PCI Express is a point-to-point connection, i.e., it connects only two devices and no other device can share this connection. Just to clarify, on a motherboard using standard PCI slots, all PCI slots are connected to the PCI bus and share the same data path. On a motherboard with PCI Express slots, each PCI Express slot is connected to the motherboard chipset using a dedicated lane, not sharing this lane (data path) with other PCI Express slots. In name of simplification, we are calling PCI Express as a "bus", since for laymen “bus” is easily recognized as “data path between devices”.


From Parallel to Serial
 
   The PCI Express bus (formerly known as 3GIO) 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 bus is an example of how PC data transfer is migrating from parallel communication to serial communication. Read our article Why Serial? to understand the differences between serial and parallel communications.

   Almost all PC buses (ISA, EISA, MCA, VLB, PCI and AGP) use parallel communication. Parallel communication differs from the serial one because it transmits several bits at a time, while in serial communication only one bit is transmitted at a time. This makes, at first, parallel communication faster than the serial one, since the higher the number of bits transmitted at a time, the faster the communication will be.

   But parallel communication suffers from some problems that prevent transmissions from reaching higher clocks. The higher the clock, the greater will be the problems with magnetic interference and propagation delay.

   When the electric current passes flows through a wire, an electromagnetic field is created around it. If the electromagnetic field created by the wire happens to be very strong, noise will be produced in the near wire, corrupting the information being transmitted. As in parallel transmission several bits are transmitted at a time, each bit involved in the transmission uses one wire. For example, in a 32-bit communication (such as the PCI slot) it’s 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.

 
Operation Modes
 
   The PCI Express bus has been developed to substitute PCI and AGP buses. It’s compatible in terms of software to the PCI bus, which means old drivers and operating systems don’t need to go through changes in order to support the PCI Express bus.

   The PCI Express bus is a serial bus that works in full-duplex mode. Data is transmitted in this bus through two pairs of wires called lane, by using the codification system 8b/10b, the same system used in Fast Ethernet (100BaseT, 100 Mbps) networks. Each lane allows a maximum transfer rate of 250 MB/s in each direction, almost twice the rate of the PCI bus. The PCI Express bus can be built by combining several lanes in order to achieve higher performance. We can find PCI Express systems with 1, 2, 4, 8, 16 and 32 lanes. For example, the transfer rate of a PCI Express system with 8 lanes (x8) is 2 GB/s (250 * 8).

   On the chart below are the transfer rates of the PCI, AGP and PCI Express busses.
Bus
Maximum Transfer Rate
PCI
133 MB/s
AGP 2x
533 MB/s
AGP 4x
1,066 MB/s
AGP 8x
2,133 MB/s
PCI Express x1
250 MB/s
PCI Express x2
500 MB/s
PCI Express x4
1,000 MB/s
PCI Express x16
4,000 MB/s
PCI Express x32
8,000 MB/s
 
   The PCI Express bus is hot plug, i.e., it’s possible to install and remove PCI Express boards even when the PC is on.


 

No comments:

Post a Comment

Popular Posts