PCI Express FAQ for Graphics
Updated: June 30, 2004
This paper provides information about PCI Express Graphics for the Microsoft Windows family of operating systems. It answers some frequently asked questions from independent hardware vendors.
This information applies for the following operating systems:
On This Page
PCI Express (PCIe) is a new I/O bus technology that, over time, will replace Peripheral Component Interconnect (PCI), PCI-X, and Accelerated Graphics Port (AGP). By providing advanced features and increased bandwidth, PCIe addresses many of the shortcomings of PCI, PCI-X, and AGP. PCIe retains full software compatibility with PCI Local Bus Specification 2.3, and it replaces the parallel multidrop bus architecture of PCI and PCI-X with a serial, point-to-point connection bus architecture.
Two PCIe devices are connected by a link, and each link is made up of one or more lanes. Each lane consists of two low-voltage, differential signal pairs carrying 2.5 Gbps of traffic in opposite directions. One pair is used for transmitting, and the other pair is used for receiving. To further increase the bandwidth of a link, multiple lanes can be placed in parallel (x1, x2, x4, x8, x12, x16, or x32 lanes) between two PCIe devices to aggregate the bandwidth of each individual lane. In the future, the signaling rate of the link can be increased to provide even more bandwidth.
PCIe hardware is backwards compatible with PCI software on the Microsoft Windows 2000 and Microsoft Windows XP operating systems. The PCI features supported by current Windows operating systems will continue to work with PCIe without any need for modifications in the applications, drivers, or operating system; however, the advanced PCIe features will be natively supported only in Windows Vista and later versions of Windows.
PCI Express Graphics
It is well known that graphics can always use more bandwidth than what is available. Graphics data transfers cause maximum traffic on the PCI bus. The continual increase in graphics demand and complexity eventually made the PCI bus insufficient, which led to the invention of AGP. Now we are pushing the limits of what AGP can deliver, and we need a better solution. PCIe surpasses AGP in bandwidth availability, with more room for expansion in the near future. By increasing the number of lanes in a link, graphics adapters can take advantage of increased bandwidth and faster data transfer. Graphics adapters will be using the X16 link, which will provide a bandwidth of 4 Gbps in each direction.
Given the higher bandwidth offered by PCIe, systems are already moving away from AGP to PCIe. There will not be many systems that provide both AGP and PCIe connectors. The first X16 graphics adapters and PCIe systems should be available in summer 2004.
PCI Express Graphics in Vista
The Windows Vista Display Driver Model (WDDM) will have specific requirements for PCIe graphics adapters. It will require that the 64-bit addressing mode be supported by the GPU. However, a minimum of 40 bits of physical address bits must be implemented. The unimplemented bits should be forced to zero. These requirements are not applicable to the Windows XP display driver model.
PCIe Graphics & AGP
In addition to the bandwidth considerations mentioned above, there are several other differences between AGP and PCIe.
By definition, AGP requires a chipset with a graphics address relocation table (GART), which provides a linear view of nonlinear system memory to the graphics device. PCIe, however, requires that the memory linearization hardware exist on the graphics device itself instead of on the chipset. Consequently, driver support for memory linearization in PCIe must exist in the video driver, instead of as an AGP-style separate GART miniport driver. Graphics hardware vendors who want to use nonlocal video memory in their Windows XP driver model (XPDM) drivers must implement both memory linearization hardware and the corresponding software. All PCIe graphics adapters that are compatible with the WDDM must support memory linearization in hardware and software.
AGP was dedicated to graphics adapters, and no other device class used it. PCIe is intended to be used by all device classes that previously used PCI. With AGP, a number of video drivers were directly programming the chipset, which gave rise to severe ill effects such as crashing and memory corruption in the graphics stack. Because PCIe will be used for all devices in the system, it is even more important that video drivers not program the chipset directly.
Frequently Asked Questions
Will a PCIe video card work on Windows XP?
Yes. A PCIe video card will work on current operating systems, because PCIe is software compatible with PCI. PCIe hardware will work on operating systems that support PCI. For example, on current versions of Windows an x16 video card will be able to transfer data at the higher x16 rate of 4 Gbps.
Will the Windows Server 2003 DDK and the Windows Driver Kit (WDK) have any information and a PCIe graphics sample?
We do not plan to produce a sample that demonstrates the use of nonlocal video memory in a Windows XP video driver. There are no plans to have a video driver sample that demonstrates this functionality in the WDK, either. However, we encourage IHVs to work with us if they want to incorporate this functionality in their drivers.
Will PCIe graphics coexist with AGP?
There will be chipsets that support both AGP and X16 PCIe. Some motherboards will have both AGP and X16 PCIe slots using such a chipset.
Will multimonitor configurations work on PCIe graphics?
Multimonitor configurations of PCIe are expected to work just like PCI. Whether they do will depend on the motherboard manufacturers. For example, x16, x8, and x8 triple monitor configuration will necessitate the existence of one x16 and two x8 slots on the motherboard.
Does Microsoft have any plans for a PCIe graphics plugfest?
We do not have any dates yet. We will plan this depending on the feedback from the IHVs and original equipment manufacturers. Meanwhile, IHVs should attend the workshops and labs that are sponsored by the PCI-SIG.
Does Microsoft have the WHQL requirements for PCIe graphics?
WHQL does not yet have specific PCIe requirements from the display compatibility test (DCT) program yet. For issues regarding the DCT DX9 kit, please send e-mail to firstname.lastname@example.org.
What are the performance implications of using PCIe Graphics?
High-speed PCIe graphics will have better performance than AGP will. The PCIe graphics cards will use the x16 PCIe slot. This translates into a bandwidth of 4 Gbps. This is already a twofold increase over AGP 8X. In this case, "x1" means that the slot has one PCIe lane, which will give it a bandwidth of 264 Mbps. This is equal to the bandwidth provided by AGP 1X and twice that of PCI (132 Mbps).
Additionally, the AGP specification does not support "snooping." It implies that memory used by devices needs to be mapped uncached or write combined by the processor in order to prevent the processor from caching that memory, or else an expensive cache flush needs to be done between handoff of a surface between CPU and GPU. Thus, processor read access to that memory will be very slow.
PCIe will support snooping. It will now be possible to map such shared memory as cacheable and still be able to maintain coherency between the CPU and the GPU. Snooped transactions are slower than nonsnooped transactions, but since the CPU can read the shared memory at full speed and we do not need to flush any caches, the tradeoff might mean better performance in some scenarios.
AGP stability problems have resulted in instability in the graphics stack. How does Microsoft plan to address this problem in PCIe graphics?
We can address this problem only if we get full cooperation from the OEMs and IHVs. We ask you to send us your prototype hardware for testing. Misprogramming of the AGP registers by the video drivers has caused significant instability in the past. We would like to know about software shortcomings you come across, and we want to work closely with you to solve these problems without hacks in either your driver or in the Windows kernel infrastructure. The sooner we find out about these problems, the better. PCIe Plugfest is an excellent way to meet Windows PCIe developers and inform us about the problems and the progress you are making.
Is an n-lane PCIe slot compatible with a p-lane PCIe graphics card, where p > n? Where n > p?
You cannot plug an x16 graphics card into an x8 slot. You can however, if you wish, plug an x8 card PCIe card into an x16 slot. A p-lane PCIe card will work at some speed in an n-lane PCIe slot, where n > p. This is not true if n < p.
When will PCIe systems be available on the different processors?
We anticipate that retail PCIe systems will be available by end of summer 2004. Motherboard manufacturers should be able to shed more light.
When will the graphics cards mentioned above be available?
Depending on the availability of motherboards, the retail market might have graphics cards from the major vendors by summer.