Pci-Express (Peripheral Component Interconnect) : Root Complex
Pci-Express (Peripheral Component Interconnect) : Root Complex
Pci-Express (Peripheral Component Interconnect) : Root Complex
Root Complex:
The Root Complex denotes the device that connects the CPU and memory subsystem to
the PCI Express fabric. It may support one or more PCI Express ports. The root complex
generates transaction requests on the behalf of the CPU. It is capable of initiating configuration
transaction. . Root complex transmits packets out of its ports and receives packets on its ports
which it forwards to memory. A multi-port root complex may also route packets from one port to
another port but is NOT required by the specification to do so.
Endpoints :
Endpoints are devices other than root complex and switches that are requesters or completers of
PCI Express transactions.
They are peripheral devices such as Ethernet, USB or graphics devices. Endpoints initiate
transactions as a requester or respond to transactions as a completer.
Requester
A Requester is a device that originates a transaction in the PCI Express fabric. Root complex and
endpoints are requester type devices.
Completer
Port
A Port is the interface between a PCI Express component and the Link. It consists of differential
transmitters and receivers.
Transaction layer
The transaction layer receives read and write requests from the software layer and creates request
packets for transmission to the link layer.
All requests are implemented as split transactions and some of the request packets will need a
response packet. The transaction layer also receives response packets from the link layer and
matches these with the original software requests.
Each packet has a unique identifier that enables response packets to be directed to the correct
originator. The packet format supports 32bit memory addressing and extended 64bit memory
addressing.
The primary responsibility of Transaction Layer is the assembly and disassembly of Transaction
Layer Packets. These Transaction Layer Packets (TLPs) are forwarded from one link to another
as necessary, subject to the routing mechanisms and rules.
Transaction Types
The various transaction types supported by the PCI Express compatible devices are:
Read
Write
Base Line (For messages)
Vendor Specific
Addressing Formats
As transactions are carried out between PCI Express requesters and completers,
four separate address spaces are used: Memory, IO, Configuration, and Message. The basic
use of each address space is described
Write
IO Read, Transfer data to or from a location in the system IO map
Write
Configuration Read, Transfer data to or from a location in the configuration space of a
PCI-compatible device.
Write
Message Baseline, General in-band messaging and event reporting (without
consuming memory or IO address resources)
Vendor-
specific
The header contains 3 or 4 DWs but the most important fields are part of the first DW.
The "Fmt" field tells how long is the header, and if a data payload is present.