Academic Integrity: tutoring, explanations, and feedback — we don’t complete graded work or submit on a student’s behalf.

Please help with the question below, thanks! Most of the mid-range commercial co

ID: 3664906 • Letter: P

Question

Please help with the question below, thanks!

Most of the mid-range commercial computers in use today use some form of the PCI bus to connect to peripherals such as network controllers and disk controllers. The first two generations of PCI were built on a parallel bus implementation, with the ability of doing half duplex (one direction) 64 bit transfers at speeds up to 133 MHz. These parallel bus implementations have now been replaced by PCI Express (PCIe), a serial bus implementation which uses a full duplex point-to-point data rate of 2.5 Gbit per link, in both directions with its initial deployment. PCIe devices can be connected across multiple links if they require large bandwidth (e.g. graphics controllers often use 16x PCIe connections). What is the maximum bandwidth (Bytes/Second) of the 64 bit, 133 MHz PCI parallel bus implementation? What is the maximum bandwidth of a 4x PCIe serial bus implementation?

Explanation / Answer

New kinds of expansion slots are released whenever available slot types are proved to be too slow for certain applications. For example, the original ISA slot available on the original IBM PC and on the IBM PC XT and their clones, had a maximum theoretical transfer rate (i.e., bandwidth) of only 4.77 MB/s (4.77 MHz transferring eight bits per clock cycle). The 16-bit version of the ISA, launched with the IBM PC AT in 1984, almost doubled the available bandwidth to 8 MB/s (8 MHz transferring 16 bits each two clock cycles; each access cycle on the ISA bus takes two clock pulses to be completed), but this number was extremely low even at the time for high-bandwidth applications such as video.

Then IBM released the MCA slot for its PS/2 computer line, and because it was copyrighted, other manufacturers could only use it if they entered a licensing scheme with IBM, and only five companies have done so (Apricot, Dell, Tandy, Research Machines, and Olivetti). So, the MCA slots were confined to a few PC models from these brands. Nine PC manufacturers joined to create the EISA slot, but it wasn’t successful for two reasons. First, it maintained compatibility with the original ISA slot, so its clock rate was the same as the 16-bit ISA slot. Second, the alliance didn’t include motherboard manufacturers, so do-it-yourself users and other manufacturers didn’t have access to this slot, the same way it had happened with the MCA slot.

The first real high-speed slot to be released was the VLB. The higher speed was achieved by tying the slot to the CPU local bus, i.e., the CPU external bus. This way, the slot worked at the same speed as the CPU external bus, which is the fastest bus available on the PC. In the table below, we are listing this slot as using a 33 MHz clock rate, but the actual clock rate will depend on the CPU used. (Most CPUs at the time used a 33 MHz external clock rate, but CPUs with 25 MHz and 40 MHz external clock rates were also available.) The problem with this bus was that it was designed specifically for the local bus of 486-class processors. When the Pentium processor was released, it was incompatible with it, as it used a local bus with different specifications (66 MHz external clock rate instead of 33 MHz and 64-bit data transfers instead of 32-bit).

The first industry-wide solution appeared in 1992, when Intel lead the industry to create “the definitive” expansion slot, the PCI. Later, other companies joined the alliance, which is known today as PCI-SIG (PCI Special Interest Group). The PCI-SIG is responsible for standardizing the PCI, PCI-X and PCI Express slots. By the way, some laypeople have difficulty making a distinction between PCI, PCI-X, and PCI Express (“PCIe”). Even though these names are similar, they refer to completely different technologies.

The PCI is a platform-independent bus that is connected to the system using a bridge chip (which is part of the motherboard chipset). Whenever a new CPU is released, you can still use the same PCI bus by redesigning the bridge chip instead of redesigning the bus, which was the norm before the PCI bus was created.

A bus is a data path where you can attach several devices at the same time, sharing this data path. The most obvious devices attached to the PCI bus were expansion slots, but integrated components available on the motherboard such as an on-board network chip could be connected to the PCI bus.

Even though other configurations were theoretically possible, the most common implementation of the PCI bus was with a clock with 33 MHz with a 32-bit data path, enabling a bandwidth of 133 MB/s.

The PCI-X bus is a version of the PCI bus working at higher clock rates and with wider data paths for server motherboards, achieving higher bandwidth for devices that demanded more speed, such as high-end network cards and RAID controllers.

When the PCI bus proved to be too slow for high-end video cards, the AGP slot was developed. This slot was used exclusively for video cards.

Then, finally, the PCI-SIG developed a connection called PCI Express (formerly known as “3GIO” and officially abbreviated as “PCIe,” although most people abbreviate it, incorrectly, as “PCI-E”). Despite its name, PCI Express works radically different from the PCI bus.

The PCI Express connection is the subject of this tutorial. We will go into more detail about how it works in the following pages.

Below is a table comparing the main specifications for the expansion slots that ever existed for the PC.

Slot Clock Number of Bits Data per Clock Cycle Bandwidth ISA 4.77 MHz 8 1 4.77 MB/s ISA 8 MHz 16 0.5 8 MB/s MCA 5 MHz 16 1 10 MB/s MCA 5 MHz 32 1 20 MB/s EISA 8.33 MHz 32 1 33.3 MB/s (16.7 MB/s typically) VLB 33 MHz 32 1 133 MB/s PCI 33 MHz 32 1 133 MB/s PCI-X 66 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 PCIe 1.0 x1 2.5 GHz 1 1 250 MB/s PCIe 1.0 x4 2.5 GHz 4 1 1,000 MB/s PCIe 1.0 x8 2.5 GHz 8 1 2,000 MB/s PCIe 1.0 x16 2.5 GHz 16 1 4,000 MB/s PCIe 2.0 x1 5 GHz 1 1 500 MB/s PCIe 2.0 x4 5 GHz 4 1 2,000 MB/s PCIe 2.0 x8 5 GHz 8 1 4,000 MB/s PCIe 2.0 x16 5 GHz 16 1 8,000 MB/s PCIe 3.0 x1 8 GHz 1 1 1,000 MB/s PCIe 3.0 x4 8 GHz 4 1 4,000 MB/s PCIe 3.0 x8 8 GHz 8 1 8,000 MB/s PCIe 3.0 x16 8 GHz 16 1 16,000 MB/s