5
\$\begingroup\$

enter image description here

Figure shows basic architecture of PCIe. From what I understood, Root complex block will convert data into PCIe format. That means PCIe endpoint to endpoint communication will happens through Root complex block.

Am I right ? If yes what is the purpose of Switch?

\$\endgroup\$
9
\$\begingroup\$

PCIe is a packet switched network. The root complex provides access to system memory from the bus to facilitate DMA operations as well as providing a method for the CPU to initiate bus transactions. However, any device on a PCIe bus can initiate a transaction to any other device - the root complex does not have to be involved, except for setting up the address space on startup. The root complex generally contains a switch as well so that it can route PCIe traffic between its ports. Traffic between endpoints does not have to pass through the root complex if there is a shorter route through the switches. Extra switches can be added to provide more PCIe ports as the root complex can be a bit limited in terms of the number of ports it supports, and the root complex ports should be reserved for the highest bandwidth devices.

\$\endgroup\$
2
  • \$\begingroup\$ Suppose i have a SSD connected to a pcie slot. Memory devices use nvme. Will Pcie be responsible for converting messages from host message format to nvme message format and sending? Or will the memory device receive the pcie format message and reinterpret it as a nvme message further? \$\endgroup\$ – AlphaGoku Nov 11 '19 at 9:50
  • \$\begingroup\$ NVMe is PCIe. No translation of any kind takes place, aside from maybe address translation in virtualized environments. NVMe just defines the register space and what not so you can use a generic NVMe driver for all NVMe devices, similar to how all SATA devices have the same interface to the SATA controller. \$\endgroup\$ – alex.forencich Nov 12 '19 at 20:58

Your Answer

By clicking “Post Your Answer”, you agree to our terms of service, privacy policy and cookie policy

Not the answer you're looking for? Browse other questions tagged or ask your own question.