PCIe系列第二讲、PCIe的OSI模型与事务层分析(上)

本打算分析一下PCI与PCIe的结构体系,但是这样切入正题太慢了,我的打算是介绍完PCIe的OSI模型后,对各个层进行分析,然后直接分析应用实例,工作量有些大,有些地方十分担心总结的不好,再次请诸位大哥体谅!

PCIe的OSI模型与事务层概述

PCIe协议定义了三层结构,分别是:物理层、数据链路层、事务层,每个层次按照协议中规定的内容,完成相应的数据处理功能,各层都分为发送和接收两功能块。

图片

在Xilinx芯片内部集成有PCIe硬核端点模块,能够自动完成数据链路层和物理层的数据处理,采用该方法时,用户只需要设计事务层的逻辑电路,完成事务层包(TLP)的处理即可。

事务层:产生TLP包(Transaction Layer Packet)

数据链路层:产生DLLP包(DataLink Layer Packet)。

物理层:产生PLP包(Physical Layer Packet)

接下来对事物层进行分析,从作用、格式、post与posted事务类型、路由方式,所涉及的知识点较多,暂定为分上中下三次完成,接下来的数据链路层和物理层相对来说较为简单。

因为事务层在FPGA应用中是需要用户设计参与的,所以掌握事务层的相关知识非常重要,请保持一点耐心,本系列的最后会分析几个PCIe工程应用。

PCIe事务层作用

事务层的作用是产生TLP包,接收PCIe设备核心层的数据请求,并将其转换为PCIe总线事务,PCIe总线使用的这些总线事务在TLP头中被定义,如存储器读写IO读写配置读写总线事务,并增加了Message总线事务(应用于中断模块)原子操作等总线事务。

除此之外,事务层还支持流量控制、虚通路管理(VC映射,后面的传输优先级部分会将)等一些列特性,而PCI总线并不支持这些特性。

PCIe总线使用的数据报文首先在TL(事务层)中产生,这个数据报文也被称为事务层数据报文,即TLP。TLP经过数据链路层时被加上sequence number和CRC后缀,然后发向物理层。

需要特别注意的是!数据链路层还可以产生DLLP(Data Link LayerPacket),DLLP和TLP并没有直接关系。DLLP是产生于数据链路层,终止于数据链路层,并不会传递到事务层。DLLP不是TLP加上前缀和后缀形成的。

数据链路层的报文DLLP经过物理层时,需要经过8b/10b编码(参考之前推送),然后再进行发送,数据的接收过程是发送过程的逆过程,但是在具体实现上接收过程与发送过程并不是完全相同。

PCIe事务层格式

当处理器或其他的PCIe设备访问PCIe设备时,所传送的数据报文首先通过事务层被封装为一个或者多个TLP,之后才能通过PCIe总线的各个层次发送出去。

图片

一个完整的TLP由1个或多个TLP Prefix、TLP头、Data Payload和TLP Digest构成。其中TLP头是TLP最重要的标志,不同类型的TLP头的定义并不相同,TLP头包含了当前TLP的总线事务类型、路由信息等一系列信息,在一个TLP中,Data Payload的长度可变,最小为0,最大为1024(DW)。

TLP = 帧前缀 + 帧头 + 数据 + 摘要

帧前缀:TLP Prefix由PCIe V2.1 Spec总线规范引入,分为Local TLP Prefix和EP-EP TLP Prefix,主要目的是扩展TLP头,并以此支持PCIe V2.1规范的一些新功能。。

  • Loacl TLP Prefix:在PCIe链路的两侧传递信息

  • EP-EP TLP Prefix:在发送设备和接收设备之间传递信息。

帧头:为3DW或4DW,格式和内容随事务类型变化。

数据:TLP Digest Datapayload也是一个可选项,有些TLP并不需要Data Payload,如存储器读操作、配置和IO写完成操作并不需要Data Payload。

摘要Digest:是基于帧头、数据段计算出来的CRC(事务层和数据链路层使用的CRC校验公式还不一样,这点在介绍物理层时介绍),称为ECRC(Endpoint to endpoint CRC,端到端CRC)。是一个可选项,一个TLP是否需要TLP Digest由TLP头决定。一般Digest段由IP核填充,所以PCIe的处理在用户层表现为处理层TLP中的头标和数据段。

有些晚了,明天继续更!bye~

https://mp.weixin.qq.com/s?__biz=MzA5NjI1NDk0NQ==&mid=2247484424&idx=1&sn=113691db469166a087cd1d90e5a2f553&chksm=90b3aa86a7c42390bc6b0fecc65d705f1cf33db43f5bcb59a310b1c3dd4d8f32db729b2819de&scene=178&cur_album_id=1462562427954216964#rd

  • 2
    点赞
  • 6
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值