A PCI Express root complex connects a host's CPU and memory system to a PCI Express hierarchy. A PCI Express root port originates a downstream link from that complex; one root complex can expose several such ports. Endpoints may attach directly or through switches.[ref]
For example, an operating system discovers a device through the hierarchy and configures resources through which the host and device communicate. Device-initiated memory transfers also depend on the platform's address mappings and protection mechanisms. The root complex is the host-facing architectural component, while a switch distributes links within the hierarchy and a PCI Express lane is one unit of a link's physical signaling. Keeping those levels separate prevents confusing a port count with a CPU count or a guaranteed bandwidth.
A PCI Express root port is a port in a root complex that starts a PCI Express link leading toward downstream devices or a switch. The PCI Express root port is represented as a logical bridge in the hierarchy. It is distinct from the PCI Express endpoint that provides a device function.[ref]
The PCI Express Port Bus Driver Guide HOWTO. §2.2, root ports, switch ports and logical bridge structure
For example, a storage PCI Express endpoint can attach directly to one PCI Express root port, while another root port connects to a switch serving several devices. Port services such as error reporting, hot plugging or power management concern that hierarchy and its links. Requiring a root-port service driver is therefore a different task from writing the device driver for the storage endpoint.
Articles by others on the same topic
There are currently no matching articles.