回答

收藏

PCI总线

#开发软件 #开发软件 3546 人阅读 | 0 人回复 | 2009-01-14

PCI Local Bus?(usually shortened to?PCI), or?Conventional PCI, specifies a?computer bus?for attaching?peripheral?devices to a?computer?motherboard. These devices can take either the form of an?integrated circuit?fitted onto the motherboard itself, called a?planar device?in the PCI specification or an?expansion card?that fits into a socket. The name?PCI?is an?initialism?formed from?Peripheral Component Interconnect. The PCI bus is common in modern?PCs, where it has displaced?ISA?and?VESA Local Bus?as the standard expansion bus, and it also appears in many other computer types. Despite the availability of faster interfaces such as?PCI-X?and?PCI Express, conventional PCI remains a very common interface.
The PCI specification covers the physical size of the bus (including wire spacing), electrical characteristics, bus timing, and protocols. The specification can be purchased from the?PCI Special Interest Group?(PCI-SIG).
Typical PCI cards used in PCs include:?network cards,?sound cards,?modems, extra ports such as?USB?or?serial,?TV tuner cards?and?disk controllers. Historically?video cards?were typically PCI devices, but growing bandwidth requirements soon outgrew the capabilities of PCI. PCI video cards remain available for supporting extra monitors and upgrading PCs that do not have any AGP or PCI express slots.
Many devices traditionally provided on expansion cards are now commonly integrated onto the motherboard itself, meaning that modern PCs often have no cards fitted. However, PCI is still used for certain specialized cards, although many tasks traditionally performed by expansion cards may now be performed equally well by USB devices.
?
History

Work on PCI began at?Intel's?Architecture Lab?circa 1990. PCI 1.0, which was merely a component-level specification, was released on?June 22,?1992. PCI 2.0, which was the first to establish standards for the connector and motherboard slot, was released on?April 30,?1993. PCI 2.1 was released on?June 1,?1995.
PCI was immediately put to use in servers, replacing?MCA?and?EISA?as the server expansion bus of choice. In mainstream PCs, PCI was slower to replace?VESA Local Bus?(VLB), and did not gain significant market penetration until late 1994 in second-generation Pentium PCs. By 1996 VLB was all but extinct, and manufacturers had adopted PCI even for?486?computers.[1]?EISA continued to be used alongside PCI through 2000.?Apple Computer?adopted PCI for professional?Power Macintoshcomputers (replacing?NuBus) in mid-1995, and the consumer?Performa?product line (replacing LC?PDS) in mid-1996.
Later revisions of PCI added new features and performance improvements, including a 66?MHz?3.3?V?standard and 133?MHz?PCI-X, and the adaptation of PCI signaling to other form factors. Both PCI-X?1.0b and PCI-X?2.0 are backward compatible with some PCI standards. With the introduction of the serial?PCI Express?standard in 2004, motherboard manufacturers have included progressively fewer PCI expansion slots in favor of the new standard. Although it is still common to see both interfaces implemented side-by-side, traditional PCI is likely to slowly die out in coming years.

[size=67%][edit]Auto Configuration


PCI provides two separate?32-bit?or?64-bit?address spaces?corresponding to the memory and I/O port address spaces of the?x86?processor family. Addresses in these address spaces are assigned by software. A third address space, called the?PCI Configuration Space, which uses a fixed addressing scheme, allows software to determine the amount of memory and I/O address space needed by each device. Each device can request up to six areas of memory space or?I/O?port space via its configuration space registers.
In a typical system, the?firmware?(or?operating system) queries all PCI buses at startup time (via?PCI Configuration Space) to find out what devices are present and what system resources (memory space, I/O space, interrupt lines, etc.) each needs. It then allocates the resources and tells each device what its allocation is.
The PCI configuration space also contains a small amount of device type information, which helps an operating system choose device drivers for it, or at least to have a dialogue with a user about the system configuration.
Devices may have an on-board?ROM?containing executable code for?x86?or?PA-RISC?processors, an?Open Firmware?driver, or an?EFI?driver. These are typically necessary for devices used during system startup, before device drivers are loaded by the operating system.
In addition there are?PCI Latency Timers?that are a mechanism for?PCI Bus-Mastering?devices to share the PCI bus fairly. "Fair" in this case means that devices won't use such a large portion of the available PCI bus bandwidth that other devices aren't able to get needed work done. Note, this does not apply to PCI Express.
"How this works is that each PCI device that can operate in bus-master mode is required to implement a timer, called the Latency Timer, that limits the time that device can hold the PCI bus. The timer starts when the device gains bus ownership, and counts down at the rate of the PCI clock. When the counter reaches zero, the device is required to release the bus. If no other devices are waiting for bus ownership, it may simply grab the bus again and transfer more data."[2]

[size=67%][edit]Interrupts


Devices are required to follow a protocol so that the?interrupt?lines can be shared. The PCI bus includes four interrupt lines, all of which are available to each device. However, they are not wired in parallel as are the other traces. The positions of the interrupt lines rotate between slots, so what appears to one device as the INTA# line is INTB# to the next and INTC# to the next. Single-function devices use their INTA# for interrupt signaling, so the device load is spread fairly evenly across the four available interrupt lines. This alleviates a common problem with sharing interrupts.
PCI bridges (between two PCI buses) map the four interrupt traces on each of their sides in varying ways. Some bridges use a fixed mapping, and in others it is configurable. In the general case, software cannot determine which interrupt line a device's INTA# pin is connected to across a bridge. The mapping of PCI interrupt lines onto system interrupt lines, through the PCI host bridge, is similarly implementation-dependent. The result is that it can be impossible to determine how a PCI device's interrupts will appear to software. Platform-specific BIOS code is meant to know this, and set a field in each device's configuration space indicating which IRQ it is connected to, but this process is not reliable.
PCI interrupt lines are?level-triggered. This was chosen over?edge-triggering?in order to gain an advantage when servicing a shared interrupt line, and for robustness: edge triggered interrupts are easy to miss.
Later revisions of the PCI specification add support for?message-signalled?interrupts. In this system a device signals its need for service by performing a memory write, rather than by asserting a dedicated line. This alleviates the problem of scarcity of interrupt lines. Even if interrupt vectors are still shared, it does not suffer the sharing problems of level-triggered interrupts. It also resolves the routing problem, because the memory write is not unpredictably modified between device and host. Finally, because the message signaling is?in-band, it resolves some synchronization problems that can occur with posted writes and?out-of-band?interrupt lines.
PCI Express?does not have physical interrupt lines at all. It uses message-signalled interrupts exclusively.

[size=67%][edit]Conventional hardware specifications

[size=94%]
[size=94%]
A typical 32-bit PCI card, in this case a?SCSI?adapter from?Adaptec



[size=94%]
[size=94%]
A PCI-X?Gigabit Ethernet?expansion card



These specifications represent the most common version of PCI used in normal PCs.
           
  • 33.33?MHz?clock?with?synchronous?transfers       
  • peak transfer rate of 133?MB/s (133 million?bytes?per second) for 32-bit bus width (33.33?MHz × 32?bits ÷ 8?bits/byte = 133?MB/s)       
  • peak transfer rate of 266?MB/s for 64-bit bus width       
  • 32-bit?or?64-bit?bus width       
  • 32-bit address space (4?gigabytes)       
  • 32-bit I/O port space       
  • 256-byte?configuration space       
  • 5-volt signaling       
  • reflected-wave switching
The PCI bus arbiter performs bus arbitration among multiple masters on the PCI bus. Any number of bus masters can reside on the PCI bus, as well as requests for the bus. One pair of request and grant signals is dedicated to each bus master.

[size=67%][edit]Variants


[size=76%][edit]Conventional

           
  • PCI 2.2 allows for 66 MHz signalling at 3.3?volt signal voltage (peak transfer rate of 533MB/s), but at 33?MHz both 5?volt and 3.3?volt signal voltages are still allowed. Power rails to provide 3.3?volt?supply?voltage are now mandatory.[3]       
  • PCI 2.3 permits use of 3.3?volt and universal keying, but does not allow 5?volt keyed add in cards.       
  • PCI 3.0 is the final official standard of the bus, completely removing 5-volt capability.       
  • Mini PCI?is a form factor of PCI 2.2 for use mainly inside laptops       
  • CardBus?is a?PC card?form factor for 32-bit, 33?MHz PCI       
  • CompactPCI?uses?Eurocard-sized modules plugged into a PCI?backplane.       
  • PC/104-Plus?is an industrial bus that uses the PCI signal lines with different connectors.

[size=76%][edit]PCI-X

PCI-X?is a 64-bit variant of PCI designed for?servers.
           
  • PCI-X 1.0 increased the maximum signaling frequency to 133?MHz (peak transfer rate of 1066?MB/s) and revises the protocol.       
  • PCI-X 2.0 permits a 266?MHz rate (peak transfer rate of 2133?MB/s) and also 533?MHz rate (4266?MB/s - 32x the original PCI bus), expands the configuration space to 4096 bytes, adds a 16-bit bus variant (allowing smaller slots where space is tight) and allows for 1.5?volt signaling

[size=67%][edit]Physical card dimensions


[size=76%][edit]Full-size card

The original "full-size" PCI card is specified as a height of 107?mm (4.2?inches) and a depth of 312?mm (12.283 inches). The height includes the edge card connector. However, most modern PCI cards are half-length or smaller (see below) and many PCs cannot fit a full size card.

[size=76%][edit]Card backplate

In addition to these dimensions the physical size and location of a card's backplate are also standardized. The backplate is the part that fastens to the card cage to stabilize the card and also contains external connectors, so it usually attaches in a window so it is accessible from outside the computer case.
The card itself can be a smaller size, but the backplate must still be full-size and properly located so that the card fits in any standard PCI slot.

[size=76%][edit]Half-length extension card (de-facto?standard)

This is in fact the practical standard now - the majority of modern PCI cards fit inside this length.
           
  • Width: 0.6?inches (15.24?mm)       
  • Depth: 6.9?inches (175.26?mm)       
  • Height: 4.2?inches (106.68?mm)

[size=76%][edit]Low-profile (half-height) card

The PCI organization has defined a standard for "low-profile" cards, which basically fit in the following ranges:
           
  • Height: 1.42?inches (36.07?mm) to 2.536?inches (64.41?mm)       
  • Depth: 4.721?inches (119.91?mm) to 6.6?inches (167.64?mm)
The bracket is also reduced in height, to a standard 3.118?inches (79.2?mm). The smaller bracket will not fit a standard PC case. Many manufacturers supply both types of bracket (brackets are typically screwed to the card so changing them is not difficult).
These cards may be known by other names such as "slim".

[size=76%][edit]Mini PCI

[size=94%]
[size=94%]
Mini PCI?Wi-Fi?card Type IIIB



Mini PCI?was added to PCI version 2.2 for use in?laptops, it uses a 32-bit, 33-MHz bus with powered connections (3.3?V only) and support for?bus mastering?and?DMA. The standard size for Mini PCI cards is approximately 1/4 of their full-sized counterparts. As there is no external access to the card in the same manner that there is for desktop PCI cards, Mini PCI cards are generally limited in the functions they may perform.
[size=94%]
[size=94%]
MiniPCI-to-PCI converter Type III



Many Mini PCI devices were developed such as?Wi-Fi,?Fast Ethernet,?Bluetooth,?modems?(often?Winmodems),?sound cards,?cryptographic accelerators,?SCSI,?IDE/ATA,?SATAcontrollers and combination cards. Regular PCI cards can be used with Mini PCI-equipped hardware and vice-versa, using Mini PCI-to-PCI and PCI-to-Mini PCI?converters. Mini PCI has been superseded by?PCI Express Mini Card.
[size=86%][edit]Technical details of Mini PCI

Mini PCI cards have a 2?W maximum power consumption, which also limits the functionality that can be implemented in this form factor. They also are required to support the CLKRUN# PCI signal used to start and stop the PCI clock for power management purposes.
There are three card?form factors: Type I, Type II, and Type III cards. The card connector used for each type include: Type I and II use a 100-pin stacking connector, while Type III uses a 124-pin edge connector, i.e. the connector for Types I and II differs from that for Type III, where the connector is on the edge of a card, like with a?SO-DIMM. The additional 24 pins provide the extra signals required to route?I/O?back through the system connector (audio,?AC-Link,?LAN, phone-line interface). Type II cards have RJ11 and RJ45 mounted connectors. These cards must be located at the edge of the computer or docking station so that the RJ11 and RJ45 ports can be mounted for external access.
                        TypeConnectorSize                                                        IA                        100-Pin Stacking                        7.5 × 70 × 45 mm                                                        IB                        100-Pin Stacking                        5.5 × 70 × 45 mm                                                        IIA                        100-Pin Stacking                        7.5 × 70 × 45 mm                                                        IIB                        100-Pin Stacking                        17.44 × 78 × 45 mm                                                        IIIA                        124-Pin Card Edge                        2.4 × 59.6 × 50.95 mm                                                        IIIB                        124-Pin Card Edge                        2.4 × 59.6 × 44.6 mm               
[size=76%][edit]Other physical variations

Typically consumers systems specify "N x PCI slots" without specifying actual dimensions of the space available. In some small form-factor systems, this may not be sufficient to allow even "half-length" PCI cards to fit. Despite this limitation, these systems are still useful because many modern PCI cards are considerably smaller than half-length.

[size=76%][edit]Card keying

[size=94%][url=http://en.wikipedia.org/wiki/FileCI_Keying.png][/url]
[size=94%][url=http://en.wikipedia.org/wiki/FileCI_Keying.png][/url]
Diagram showing the different key positions for 32-bit and 64-bit PCI cards



Typical PCI cards present either one or two key notches, depending on their signaling voltage. Cards requiring 3.3?volts have a notch 56.21mm from the front of the card (where the external connectors are) while those requiring 5?volts have a notch 104.47mm from the front of the card. So called "Universal cards" have both key notches and can accept both types of signal.

[size=67%][edit]See also


[size=67%][edit]References

[size=90%]

[size=67%][edit]External links

?
分享到:
回复

使用道具 举报

您需要登录后才可以回帖 注册/登录

本版积分规则

关闭

站长推荐上一条 /3 下一条