Aro Patnaik
Aro Patnaik

Reputation: 41

What is root complex vs System agent in a x86 architecture?

In the x86 architecture, what is term root complex and system agent?

I guess, System agent is basic barebone base foundation of SOC, on top of this many other buildinf blocks like Memory controller, cache controller, prepheral IO controller resides. Root complex dont know?

Upvotes: 3

Views: 1937

Answers (2)

Andrey Makarov
Andrey Makarov

Reputation: 124

Both terms are just secondary collective terms.

  • Root Complex (PCIe term) means a hardware device containing a few Root Ports and also optionally other auxiliary sub-devices.
    • Each Root Port originates a Hierarchy Domain (PCIe term) — which is a group of devices that can communicate between each other. Devices behind different Root Ports (in different Hierarchy Domains) can not communicate to each other (there is no routing), at least PCIe spec defines such an ability as optional.

So basically only Root Port matters; and Root Complex exists only to unite Root Ports with some auxiliary devices, e.g. a 1 error handler device — so that all the Root Ports of the Root Complex can share 1 error handler device for all of them instead of having 1 per each.

Agent is a term for SOC/chip. It's a node in internal chip interconnect network. Typically there is 1 (or more) of separate devices dedicated for I/O, which can be called something like an I/O agent. And so Root Complex is a main part of 1 I/O agent.

Note that:

  • In small "client" computers there is always only one I/O agent and hence one Root Complex in it
  • in large "server" computers there can be many I/O agents and hence many Root Complexes even per chip (not even speaking about multiple sockets).

A system agent exists only in some of chip architectures, like Intel's Sandy Bridge. (I guess this term is actually Intel-specific.) See this image for example. It's just a device that besides a PCIe Root Complex includes also a Memory Controller and probably some other devices. It's a non-essential internal term — just about how grouping of a few devices on one particular chip architecture was made.

Upvotes: 4

prl
prl

Reputation: 12435

The Root Complex is defined by the PCIe specification. It comprises the root ports, root complex event collectors, and root complex integrated endpoints (for example, USB and SATA controllers).

The System Agent is the name for the Intel implementation of the PCIe Root Complex and the connections between it and the rest of the system. It also contains other components such as IOMMUs and power control unit.

Upvotes: 2

Related Questions