Key Concept: Non-Posted Write


Why IO & Config Writes Are Non-Posted


Transaction Flow (Step-by-Step)

  1. CPU (Root Port) Sends IO/Config Write Request

    • Targets a specific IO space or configuration space address.
    • Routed through switches based on IO address.
  2. Target Endpoint Receives the Request

    • Accepts the data and updates its IO/config register.
  3. Target Sends Completion TLP

    • No data payload (just a status).
    • Confirms success or reports an error in the status field.
  4. Requester (CPU) Waits

    • Only after receiving a successful completion does software proceed to the next step.

PCIe Non‐Posted Write Transaction.png

Key Difference vs. Memory Writes

Feature Memory Write (Posted) IO/Config Write (Non-Posted)
Waits for Completion? ❌ No ✅ Yes
Performance ✅ Faster (no waiting) ⏳ Slower (must wait for reply)
Error Reporting ❌ No feedback unless later error handling kicks in ✅ Immediate (via completion status)
Use Case Bulk data transfer to memory Device control, register programming, critical sequences

Why It Can Only Target Legacy Endpoints


Key Takeaway