前往小程序,Get更优阅读体验!
立即前往
首页
学习
活动
专区
工具
TVP
发布
社区首页 >专栏 >PCIe系列第二讲、PCIe的OSI模型与事务层分析(上)

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

作者头像
根究FPGA
发布2020-06-30 11:57:02
2.2K0
发布2020-06-30 11:57:02
举报
文章被收录于专栏:根究FPGA根究FPGA

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中的头标和数据段。

本文参与 腾讯云自媒体分享计划,分享自微信公众号。
原始发表:2020-06-26,如有侵权请联系 cloudcommunity@tencent.com 删除

本文分享自 根究FPGA 微信公众号,前往查看

如有侵权,请联系 cloudcommunity@tencent.com 删除。

本文参与 腾讯云自媒体分享计划  ,欢迎热爱写作的你一起参与!

评论
登录后参与评论
0 条评论
热度
最新
推荐阅读
目录
  • PCIe事务层格式
领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档