Jump to content

User:Erwinbeck/sandbox/PCI Express Chipset

From Wikipedia, the free encyclopedia

New article name goes here new article content ... User:Erwinbeck/sandbox/PCI Express Chipset

Introduction

[edit]

The PCI Express interface, abbreviated PCIe, is a serial computer expansion "bus" for desktop and laptop motherboards, with features borrowed from packet switching digital networks (described later). Designed to replace the parallel conventional PCI bus.

The first wikilink above covers desktop motherboards, equipped with "expansion slots", receptacles for PCIe host adapters[1].

The bottom edge with a PCIe connector, and the left edge with a "mounting bracket" to fit into the desktop rear panel. Providing access to external storage, such as Hard disk drives (HDD), Solid-state drives (SSD), and Secure Digital memory cards.

In 1999 Intel introduced the I/O Controller Hub (ICH) chipset. The next generation ICH2 introduced the concept of internal PCI Bus 0, with two logical "Devices" attached, Devices 30 and 31[2] .

In 2004 Intel introduced the PCIe chipset ICH6[3] , incorporating the centerpiece of PCIe, the Root Complex[4] .

Despite ICH6 being a PCIe chipset, its Root Complex kept the proven PCI Bus 0[5] concept from its former non-PCIe versions, with several Devices attached[6] , in particular four Root Ports[7] on Device 28, configurable as a single (x4) lane, or as four (x1) lanes[8] .

A lane is composed of two differential signalig pairs, one pair for receiving data, and the other for transmitting. Therefore each lane is composed of four signal traces. PCIe "links" may contain single lanes for low-speed devices, or four lanes for high-speed devices. Lane counts are written with an "x" prefix, for instance (x4) representing an four-lane link.

The similarity between PCIe "bus" and packet switching digital networks becomes apparent on examination of the PCIe protocol, which encapsulates data traffic over lanes into packets[9] .

The ICH6 was offered in two versions, (ICH6) "Base" and (ICH6M) "Base Mobile". The ICH6 "Base" version destined for desktop motherboards equipped with expansion slots, receptacles for PCIe expansion cards. Root Ports (PCIe startpoints) exchanging packets with host adapters (PCIe endpoints).


Laptop Slots and Ports

[edit]

The laptop represents a major overhaul of the desktop configuration. Gone are expansion slots and host adapters and mounting brackets, replaced by PCIe silicon in the form of host controllers. The ICH6M version destined for laptop motherboards, Root Ports (PCIe startpoints) this time exchanging packets with host controllers (PCIe endpoints).

On a Windows computer, the location of a host controller on the PCIe fabric is found through Device Manager[10] , detecting installed host controllers and listing them under Device Manager categories. Device Manager also examines Bus 0 on the ICH chipset, detecting the Root Ports and listing them under the System devices category.


The Secure Digital (SD) card slot is wired to a SD host controller[11] mounted directly on the laptop motherboard. Device Manager lists under the Storage controllers category.


The PCIe interface (described later) of the ExpressCard slot is directly wired to a Root Port on the ICH chipset, passing packets back and forth.

It is equipped with a 26 pin receptacle[12] providing two interfaces, one for PCIe over a single (x1) lane, and one for USB. Usually one interface is used, allowing insertion of a PCIe ExpressCard or an USB ExpressCard.

From the Root Complex all the way across the motherboard to the ExpressCard slot, the PCIe lane is without intervention of a host controller, therefore Device Manager finds nothing to list on that lane. Only after insertion of a PCIe ExpressCard is a host controller listed, precisely the host controller installed inside the ExpressCard.

For instance, after insertion of a FireWire ExpressCard[13] with an internal FireWire host controller[14] installed, Device Manager lists it under the IEEE 1394 Bus host controllers category.

Although the FireWire host controller follows the ExpressCard slot, the statement still holds that the Root Port (PCIe startpoint) exchanges packets with the host controller (PCIe endpoint).

The purpose of the FireWire host controller is the translation of PCIe packets into FireWire packets[15] , and vice versa. These FireWire packets are available on the FireWire port of the ExpressCard, into which an external FireWire cable may be inserted to establish connection to a FireWire drive.

The SATA port is directly wired to the SATA host controller (described later) on the ICH chipset, passing packets back and forth.

Similarly to the move from PCI bus (32 signal traces) to the PCIe interface (two differential signaling pairs), the move from Parallel ATA bus (40 pin ribbon cable) to the Serial ATA (SATA) interface (two differential signaling pairs) also took place.


With the result that the SATA drive became the standard disk drive. And with the result that a SATA drive was embedded in a "FireWire enclosure", which has the purpose of translating FireWire packets into SATA packets[16] , in SATA terminology called "Frame Information Structures" or FIS[17] .

This double translation, first from PCIe packets to FireWire packets, and then to SATA packets, led to the creation of the SATA host controller, capable of understanding SATA protocol and SATA packets. By keeping the overall design of the Root Port, and modifying the parts related to PCIe protocol and PCIe packets.

This is precisely what the designers of the ICH6 did on Bus 0[18] : besides adding the Root Ports on Device 28 as described above, they also added the SATA host

controller[19] on Device 31. Assigned to a similar mission as its four siblings, sending and receiving FISes, Device Manager listing it under the Storage controllers category. The ICH6 brought the concept of packet-based transactions to the motherboard.

It brought SATA internal storage access to desktops and laptops, to be followed two versions later by the ICH8[20] bringing eSATA[21] external storage access to the desktop.

Finally the ICH9[22] brought eSATA external storage access to the laptop.

SATA port on the laptop

by way of the new SATA port which did nothing more than simply passing SATA frames back and forth. With the help of a SATA cable the SATA port was able to talk to an external SATA HDD or SSD.

The SATA port is directly wired to the passing SATA frames back and forth, into which an external SATA cable may be inserted to establish a connection to a SATA drive.



In summary:

the SD host controller is mounted directly on the laptop motherboard

the FireWire host controller is internal to the FireWire ExpressCard

the SATA host controller is integrated into the ICH chipset


References

[edit]
  1. ^ FireWire Reference Tutorial, p.49 [1]
  2. ^ I/O Controller Hub 2 (ICH2), p.1-3 "Table 1-2. PCI Devices and Functions" [2]
  3. ^ I/O Controller Hub 6 (ICH6) Family, p.40 "ICH6 Family Features" [3]
  4. ^ PCI_Express, Architecture Section [4]
  5. ^ PCI Express System Architecture, p.169 "Figure 21-1" [5] MindShare, PC System Architecture Series
  6. ^ I/O Controller Hub 6 (ICH6) Family, p.47 "Table 1-2. PCI Devices and Functions" [6]
  7. ^ I/O Controller Hub 6 (ICH6) Family, p.101 "PCI Express Root Ports [7]
  8. ^ PCI_Express, Lane Section [8]
  9. ^ PCI Express System Architecture, chapter 4, "Packet-Based Transactions" [9] MindShare, PC System Architecture Series, a preview version of the book in print of the same title, Addison-Wesley (September 14, 2003) ISBN 978-0321156303
  10. ^ How to Identify Installed PCI Cards [10]
  11. ^ Host Controllers [11]
  12. ^ ExpressCard PinOut Section[12] definition of pins for single (x1) PCIe lane
  13. ^ FireWire ExpressCard [13] click on "Technical Specifications" to identify the internal host controller as an LSI-FW643
  14. ^ FW643 FireWire host controller [14]
  15. ^ FireWire System Architecture, chapter 8 "Asynchronous Packets"[15]
  16. ^ SATA Storage Technology, chapter 3 "SATA Overview" p.34 [16]
  17. ^ SATA Storage Technology, chapter 4 "Introduction to FIS Transfers" [17]
  18. ^ I/O Controller Hub 6 (ICH6) Family, p.47 "Table 1-2. PCI Devices and Functions"[18]
  19. ^ I/O Controller Hub 6 (ICH6) Family, p.48 "Serial ATA (SATA) Controller"[19]
  20. ^ I/O Controller Hub 8 (ICH8) Family, p.41 "ICH8 Features" [20]
  21. ^ Serial ATA, eSATA Section [21]
  22. ^ I/O Controller Hub 9 (ICH9) Family, p.40 "ICH9 Features" [22]
[edit]