PCIe es un protocolo de red entre varias entidades que se envían entre sí para leer y escribir solicitudes en sus respectivos espacios de direcciones. Cuando se generan solicitudes, se definen por los dispositivos en el bus. El intercambio de TLP es totalmente simétrico, por lo que el formato es el mismo ya sea que la CPU escriba en una tarjeta de expansión, una tarjeta de expansión inicie una transferencia DMA o dos tarjetas de expansión se comuniquen entre sí.
La CPU y la memoria están conectadas al root complex , que es básicamente un nodo PCIe normal que presenta la memoria del sistema como el espacio de direcciones direccionables (en implementaciones modernas, con una capa de protección / traducción similar a la MMU), así como algunas direcciones especiales que causan que las interrupciones se envíen a la CPU cuando se escriben; también hay paquetes TLP especiales que corresponden a las interrupciones PCI tradicionales ("heredadas").
El mismo mecanismo también funciona para la GPU, excepto que la GPU no entenderá las interrupciones heredadas. Simplemente puede acceder a la memoria de video en paralelo a la GPU, pero escribir en un registro de comando generará una interrupción dentro de la GPU, que redirige el flujo de instrucciones.
El dispositivo PCIe y la GPU se suelen integrar en un solo chip para optimizar los accesos a la RAM de gráficos, pero lógicamente estas son unidades funcionales diferentes.
El control de flujo se implementa utilizando credits , en la capa de enlace (a continuación, debajo de los TLP). En un enlace directo, cada lado anuncia la cantidad de espacio de búfer que queda para los paquetes de un determinado tipo, y se puede enviar el siguiente paquete si hay suficiente espacio disponible (por lo que los paquetes nunca se dividen).