[PCIE5.0] 2.1 Transaction Layer Overview

203 阅读4分钟

本章详细介绍了**PCI Express事务层(Transaction Layer)**的工作原理、事务类型、数据包格式等内容。 在这里插入图片描述

1. 事务层概述

事务层是PCI Express架构中负责处理信息传输的部分。它的工作内容包括:

• 分裂事务(Split-Transaction)协议:这是一种“流水线”式的协议,使得一个请求可以分成多个阶段来处理。这样可以避免处理延迟,提高效率。
• 流控制:事务层使用“信用”机制(credit-based flow control)来管理数据包的发送频率,避免接收端的数据处理能力超负荷。
• 数据完整性和数据中毒支持:事务层可以检测数据传输中的错误(如数据中毒),确保数据的完整性。
• 事务排序和处理:事务层还会处理数据包的顺序,确保它们按照正确的顺序进行处理。

2. 地址空间和事务类型

PCI Express定义了四种不同的地址空间,每个地址空间有不同类型的事务。每个事务类型用于不同的目的:

• 内存地址空间(Memory):用于数据的读取和写入,操作内存位置。
	○ 读请求、写请求、**原子操作请求(AtomicOp)**等。
	○ 内存事务格式可以是32位地址(短地址格式)或者64位地址(长地址格式)。
• I/O 地址空间(I/O):用于与一些传统I/O设备的兼容性。
	○ 读请求、写请求等。
	○ I/O事务格式只有32位地址。
• 配置地址空间(Configuration):用于访问设备的配置寄存器,设置设备功能。
	○ 读请求、写请求等。
• 消息地址空间(Message):用于设备间的事件信号传输和其他通用消息。
	○ 消息类型包括基本消息和供应商定义消息,后者可以由供应商定制

3. 数据包格式概述

数据在事务层中通过**事务层包(TLPs)**进行传输。每个TLP由以下部分组成: 在这里插入图片描述

• TLP前缀(TLP Prefix):这是一个可选部分,包含一些附加信息,通常用于标识事务的额外属性。
• TLP头(TLP Header):是TLP的核心部分,包含了关于事务的基本信息,如事务ID、地址信息、数据长度等。
• 数据负载(Data Payload):这是实际的传输数据部分,某些事务类型会包含这部分数据。
• TLP摘要(TLP Digest):这是一个可选的部分,用于数据完整性检查(如CRC校验)。

在PCI Express中,数据包通过“字节流”(byte stream)的方式进行传输。数据以字节的形式从发送端流向接收端,每个字节都带有地址和标识符,确保数据可以正确地被解析。

4. TLP的结构和字段

TLP的结构会根据数据包的类型有所不同,但通常会包括以下字段: 在这里插入图片描述

• 包格式(Packet Format):指示包的类型(请求、完成等)。
• 事务描述符(Transaction Descriptor):包括事务ID、属性、流量类别等,帮助事务层识别和管理每个事务。
• 地址和路由信息(Address/Routing Information):指示数据包传输的目标地址。
• 字节使能(Byte Enables):这部分用于标识数据负载中哪些字节是有效的。
• 消息编码(Message Encoding):指示数据包是否包含消息类型的编码。
• 完成状态(Completion Status):当请求被处理完毕时,返回的状态信息。

5. 数据包传输过程

TLP数据包以字节流的形式传输,在物理链路上按字节顺序传输。 在传输过程中,最关键的信息(如地址和类型)首先被传送,以便接收端能够快速解码和处理数据。

6. 总结

这段文字的重点是事务层的工作机制,其中涉及到:

• 四种地址空间和事务类型:包括内存、I/O、配置和消息,分别用于不同类型的数据传输。
• 数据包结构:通过TLP格式进行数据传输,包括头部、负载、可选的摘要等。
• 流控制和排序:事务层使用信用机制管理流量,并根据需求对事务进行排序。
• 数据完整性:支持数据中毒和完整性检测,确保数据传输无误。

总的来说,事务层是PCI Express的核心部分,负责高层的数据传输控制、事务排序、地址管理以及流量调度等工作。通过这些机制,PCI Express能够高效地管理设备间的通信,保证数据的可靠性和完整性。