PCIe

From HPCWIKI
Revision as of 16:57, 2 April 2023 by Admin (talk | contribs)
Jump to navigation Jump to search

섬네일|PCIe layerUnlike the true buses of previous PCI versions, PCI-X included, PCIe is a kind of packet network faking the traditional PCI bus just like a network, with each card connected to a network switch through a dedicated set of wires. Exactly like a local Ethernet network, each card has its own physical connection to the switch fabric. The communication takes the form of packets transmitted over these dedicated lines, with flow control, error detection and retransmissions. There are no MAC addresses, but PCIe have the card’s physical geographic position addressing instead to define MAC. Even though it’s a packet-based network, it’s all about addresses, reads, writes an interrupt.


A minimal (1x) PCIe connection merely consists of four wires

  • two differential pairs in each direction for data transmission
  • another pair of wires to supply the card with a reference clock

A simple bus transaction

섬네일|PCIe transaction Simple PCIe write communication from chipset/host

  1. PCIe chipset (which, in PCIe terms functions as a Root Complex, can be within CPU or PCIe switch or independant) generates a Memory Write packet for transmission over the bus. This packet consists of a header, which is either 3 or 4 32-bit words long (depending on if 32 or 64 bit addressing is used) and one 32-bit word containing the word to be written. This packet simply says “write this data to this address”.
  2. This packet is then transmitted on the chipset’s PCIe port (or one of them, if there are several). The target peripheral may be connected directly to the chipset, or there may be a switch network between them. This way or another, the packet is routed to the peripheral, decoded, and executed by performing the desired write operation.

Reference

http://xillybus.com/tutorials/pci-express-tlp-pcie-primer-tutorial-guide-1