沈阳外贸网站建设,php网站开发示例,内蒙古最新消息今天,wordpress前端地址一、协议层
PCIe架构分为三层#xff1a;事务层(transcation layer),数据链路层(data link layer)和物理层(physical layer)。每一层又分为两部分#xff0c;outbound和inbound#xff0c;分别处理向外传输信息和接受信息。 在发射端#xff0c;device core产生的数据包从…一、协议层
PCIe架构分为三层事务层(transcation layer),数据链路层(data link layer)和物理层(physical layer)。每一层又分为两部分outbound和inbound分别处理向外传输信息和接受信息。 在发射端device core产生的数据包从事务层到数据链路最终到物理层在每一层都会加上额外的tag而在接收端该过程则相反。每个Endpoint和switch的每个port都需要实现这三层。
所以一个数据会经历下面打包过程 上游给到一笔数据先是事务层给他加上header和ECRC校验信息构成TLP给到数据链路层后又加一个包序列号和校验然后传到物理层加上start和end最后把这些数据给到各个lane上加扰码最终通过总线传输出去。事务层就好像是填写寄件单会写明收件人地址和寄件内容数据链路层就是为包裹加编号物理层就相当于实际运输包裹。 1.1 事务层
主要参与TLP的编码和解码每个TLP都有一个唯一的标识符支持四种基本的事务类型内存读写的memory输入输出操作I/O配置空间访问configuration消息事务message同时也对应这四种地址空间。作用相当于操作系统里的文件读写请求 → 它把这些请求“打包”成标准格式的事务包。
分为两类non-posted是需要completion返回响应posted是不需要completion返回响应。 1.2 数据链路层
主要是为了确保TLP可靠传输会添加序列号和校验信息确保数据包按序无误传输。检测到错误后会通过链路重传机制(ACK/NAK协议)实现错误恢复。
注意DLLP并不是对TLP的封装或者附加两者是独立的。DLLP是在发送设备和接受设备的数据链接层之间传输不会跨switch或bridge。每个“点对点物理链路”都维护一套独立的 DLLP 机制。比如当发送方发送一个 TLP 后接收方的数据链路层会用DLLP进行回复如果是ACK DLLP就表示接收成功如果是 NAK DLLP表示接收失败需要重传。
1.3 物理层
主要是进行串并转换电气信号的处理等等。分为逻辑子层和电气子层逻辑子层进行数据包的串/并转换加扰/解扰编码/解码电气子层包含差分驱动器和接收器用于管理模拟信号特性如阻抗匹配、时钟恢复。 1.4 Quality of Service(QoS)
用于在复杂系统中利用 PCIe的Traffic Class 和 Virtual Channel 实现不同类型流量如等时流 Isochronous Traffic 与 普通流量 Ordinary Traffic的区分与调度确保关键任务如实时音视频流获得低延迟和稳定的带宽。
在复杂系统中利用 PCIe 的 Traffic Class 和 Virtual Channel 实现不同类型流量如等时流 Isochronous Traffic 与普通流量 Ordinary Traffic的区分与调度。每个TC映射到一个独立的VCVirtual Channel硬件缓冲区避免低优先级流量阻塞高优先级流量。交换机通过端口仲裁Port Arbitration和VC仲裁VC Arbitration策略管理不同VC的优先级。
Switch端口仲裁用于多个设备/端口间的调度 控制访问 Crossbar 的先后顺序目的是为了解决当多个端口或多个上游/下游设备要同时传输数据时如何协调访问 Switch 的内部交叉通道。
二、Flow Control机制
PCIe的flow control是在数据链路层实现的专门服务于TLP用于防止receiver的数据溢出丢失。
在初始化阶段设备通过Flow Control初始化DLLPsFC_INIT1和FC_INIT2交换缓冲区大小信息在运行期间接收端通过Flow Control Update DLLPs定期更新credit信息。