Zum Hauptinhalt springen
tsecurity.de LIVE
Echtzeit-Radar & Feeds
Alle RSS Feeds
👥 Community & Social
Sichere ProgrammierungKI half beim Finden: iOS 27 schließt mehr als 100 Sicherheitslücken(21.09.2026 um 06:00 Uhr)
Sichere ProgrammierungWhat Is Rowhammer? How Can Repeated Memory Access Flip Bits in RAM?(21.09.2026 um 07:12 Uhr)
Sichere Programmierungnpm publish Ignores .gitignore: The .npmignore Override Rule(21.09.2026 um 07:15 Uhr)
Sichere ProgrammierungAphelion Editor - A free node-based video / VFX editor(21.09.2026 um 07:21 Uhr)
Sichere ProgrammierungGovernance Attack Surface Review: OKX(21.09.2026 um 07:31 Uhr)
Sichere ProgrammierungJSM Portal Request Create Property Panel Submit(21.09.2026 um 07:34 Uhr)
Reverse Engineeringsearch instructions assembly easy (X86,RISCV,AARCH64,etc)(20.09.2026 um 15:44 Uhr)
Sichere ProgrammierungKI half beim Finden: iOS 27 schließt mehr als 100 Sicherheitslücken(21.09.2026 um 06:00 Uhr)
Sichere ProgrammierungWhat Is Rowhammer? How Can Repeated Memory Access Flip Bits in RAM?(21.09.2026 um 07:12 Uhr)
Sichere Programmierungnpm publish Ignores .gitignore: The .npmignore Override Rule(21.09.2026 um 07:15 Uhr)
Sichere ProgrammierungAphelion Editor - A free node-based video / VFX editor(21.09.2026 um 07:21 Uhr)
Sichere ProgrammierungGovernance Attack Surface Review: OKX(21.09.2026 um 07:31 Uhr)
Sichere ProgrammierungJSM Portal Request Create Property Panel Submit(21.09.2026 um 07:34 Uhr)
Reverse Engineeringsearch instructions assembly easy (X86,RISCV,AARCH64,etc)(20.09.2026 um 15:44 Uhr)
Intelligence View
⚡ tsecurity.de Intelligence

Understanding PCIe Transaction Layer

Reagiere als Erste:r — dein Feedback zählt!

1. Introduction

PCI Express (PCIe) is designed as a layered architecture to separate concerns such as packet generation, reliability, and physical transmission. Among these layers, the Transaction Layer plays a central role by translating software-level operations into structured packets that traverse the PCIe fabric.

This article presents a structured explanation of the Transaction Layer, focusing on its responsibilities, transaction types, and the detailed structure of Transaction Layer Packets (TLPs).

2. PCIe Layers

  • Transaction Layer (TL): Generates Transaction Layer Packets (TLPs)
  • Data Link Layer (DLL): Ensures reliable delivery of TLPs across a link
  • Physical Layer (PHY): Handles electrical signaling and bit-level transmission

3. Role of Transaction Layer

The responsibilities listed below correspond to the Transaction Layer:

  • Determines the destination using memory address or ID-based routing
  • Converts read/write/configuration requests into Transaction Layer Packets (TLPs)

4. Types of PCIe Transactions

PCIe defines multiple transaction types:

Memory Transactions

  • Memory Read
  • Memory Write

Configuration Transactions

  • Used during device enumeration
  • Access configuration space

Message Transactions

  • Interrupts (MSI/MSI-X)
  • Power management
  • Error signaling

Completion Transactions

  • Responses to requests (e.g., returning data for a read request)

5. Transaction Layer Packet (TLP) Structure

A TLP is the fundamental unit of communication in PCIe.

+---------------------------------+
| TLP Header (3DW / 4DW)          |
+---------------------------------+
| Data Payload (optional)         |
+---------------------------------+
| Digest (optional)               |
+---------------------------------+

5.1 TLP Header

The TLP header defines the type, intent, and routing information of the packet.

DW0 — Format and Control:

31           24 23     20 19     16 15                0
+--------------+---------+---------+------------------+
| Fmt + Type   |  TC     | Attr    | Length           |
+--------------+---------+---------+------------------+

Key DW0 fields:

  • Fmt (Format): 3 bits. Indicates header size (3DW or 4DW) and whether a data payload is present.

    • 000 = 3-DW header, no data (e.g., 32-bit Memory Read)
    • 001 = 4-DW header, no data (e.g., 64-bit Memory Read)
    • 010 = 3-DW header, with data (e.g., 32-bit Memory Write)
    • 011 = 4-DW header, with data (e.g., 64-bit Memory Write)
  • Type: 5 bits. Combined with Fmt, defines the TLP type:

    • 00000 = Memory Read Request (MRd)
    • 00001 = Memory Read Request Locked (MRdLk)
    • 00000 with Fmt 010 = Memory Write (MWr)
    • 00100 = Configuration Read Type 0 (CfgRd0)
    • 00101 = Configuration Write Type 0 (CfgWr0)
    • 01010 = Completion (Cpl)
    • 01010 with Fmt 010 = Completion with Data (CplD)
    • 10000 = Message Request (Msg)
  • TC (Traffic Class): 3 bits. Indicates priority (0–7). Most traffic uses TC0.

  • Length: 10 bits. Specifies the number of DWORDs in the data payload (1–1024). A value of 0 represents 1024 DWORDs.

DW1 — Request Identification:

31              16 15        8 7         4 3         0
+------------------+----------+-----------+-----------+
| Requester ID     | Tag      | Last BE   | First BE  |
+------------------+----------+-----------+-----------+

Key DW1 fields:

  • Requester ID: 16 bits. Identifies the source device using Bus/Device/Function (BDF).
Bus Number (8 bits) | Device Number (5 bits) | Function Number (3 bits)
  • Tag: 8 bits. A unique identifier assigned by the requester.
    Used to match Completion TLPs with their corresponding requests.

  • Last Byte Enable (Last BE): 4 bits. Indicates valid bytes in the last DWORD of the payload.
    Relevant for unaligned or partial transfers.

  • First Byte Enable (First BE): 4 bits. Indicates valid bytes in the first DWORD of the payload.

Example (partial write):

Write 6 bytes starting at an offset within a DWORD:

DWORD N:
+----+----+----+----+
| B3 | B2 | B1 | B0 |
+----+----+----+----+
  ✔    ✔    ✔    ✘     → First BE = 1110

DWORD N+1:
+----+----+----+----+
| B3 | B2 | B1 | B0 |
+----+----+----+----+
  ✘    ✔    ✔    ✔     → Last BE = 0111

DW2/DW3 — Address:

  • Contains the target address for Memory transactions
  • DW2: Lower 32 bits of address
  • DW3: Upper 32 bits (used only for 64-bit addressing)
Ähnliche Beiträge
🔍 Verwandte News

Auch interessante Nachrichten Understanding PCIe Transaction Layer

Thematisch verwandte Begriffe: Understanding, PCIe, Transaction, Layer · 6 Treffer

Laden...

Videos werden geladen ...

Laden...

Beiträge werden geladen ...

Laden...

Videos werden geladen ...

Laden...

Beiträge werden geladen ...

Laden...

Videos werden geladen ...

Laden...

Beiträge werden geladen ...

Laden...

Videos werden geladen ...

Laden...

Beiträge werden geladen ...

Laden...

Videos werden geladen ...

Zum Aktualisieren ziehen
ZERO-DAY CVE-2026-94030 | A security vulnerability has been detected in SerenityOS up to 3d83e4509…
Advisory →
TTS Reader • tsecurity.de Voice
tsecurity.de Icon
tsecurity.de App
Offline-Lesen, Eilmeldungen & 0ms Ladezeit

Installiere tsecurity.de direkt auf deinen Home-Bildschirm für das ultimative Vollbild-Magazinerlebnis ohne Browser-Leisten.

Nächster Beitrag
Themen-Radar & Intelligence Matrix
Echtzeit-Taxonomie nach Angriffsvektoren & Plattformen

tsecurity.de Live Threat Radar

🔴 LIVE RADAR
MONITORING
AKTIV
CVE-DATENBANK
LIVE
🔍
Community Radar & Live Chat
Sentinel Bot online • Live-Stream
Dein Cluster: Security Explorer
Match:
lädt…
Verbindung zum Community-Stream wird aufgebaut...
Bearbeitungsmodus — Senden überschreibt deine Nachricht
Community-Puls — was gerade passiert
lädt…
Aktivitäten deiner Analysten
lädt…
Neues Thema oder Eilmeldung einreichen

Reiche interessante Links, Zero-Days oder Debatten ein. Die Community entscheidet per Upvote über die Veröffentlichung.

Heiß diskutierte Einreichungen
🔖 Gespeicherte Artikel
📂 Keine gespeicherten Artikel vorhanden.
Zurück Ziehen Vor
Links: vorheriger Artikel Rechts: nächster Artikel unten: schließen
News NIS-2 Frühwarnung Tier-1 Intel ⏱️ 3 Min vor 10 Min
Artikeldaten werden geladen...

Zurück: vorheriger Vor: nächster
↗ Original-Quelle
Social Reaktionen Deine Reaktion zählt
Einstufung & Relevanz-Poll 0 Stimmen
In sozialen Netzwerken teilen 1-Klick