




下载本文档
版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领
文档简介
精选优质文档-----倾情为你奉上精选优质文档-----倾情为你奉上专心---专注---专业专心---专注---专业精选优质文档-----倾情为你奉上专心---专注---专业在PCIE总线中信息是以封包的形式传输的,下面为大家介绍一下数据在PCIE设备中是如何封包以及怎样传输的,这里我们将省去路由寻址、流量控制等一些细节,只介绍数据在设备中的传输过程。PCIE总线采用了串行连接方式,并使用数据包(Packet)进行数据传输,采用这种结构有效去除了在PCI总线中存在的一些边带信号,如INTx和PME#等信号。在PCIE总线中,数据报文在接收和发送过程中,需要通过多个层次,包括事务层、数据链路层和物理层,才能完成数据的传输。PCIE总线的层次结构如图1所示。图1PCIE总线的层次结构在PCIE体系结构中,数据报文首先在设备的核心层(DeviceCore)中产生,然后再经过该设备的事务层(TransactionLayer)、数据链路层(DataLinkLayer)和物理层(PhysicalLayer),最终发送出去。而接收端的数据也需要通过物理层、数据链路和事务层,并最终到达DeviceCore。下面将介绍各个层次的功能以及该层数据的封包形态,每个层次从发送端和接收端两个方面来讲:1、事务层(TransactionLayer)事务层是三层协议结构的最高层,数据在这一层组成最基本的数据包,即事务层数据包(TransactionLayerPacket,TLP)。在发送端,当处理器或者其他PCIE设备访问PCIE设备时,事务层接收来自PCIE设备核心层的数据,并将其封装为TLP后,发向数据链路层。在接收端,事务层可以从数据链路层中接收数据报文,然后转发至PCIE设备的核心层。接收部分将入站的TLP保存在虚拟通道缓冲区中,根据TLP中的ECRC字段检查CRC错误。若无误,则删去ECRC字段,将在TLPHeader中得到的信息及数据有效载荷(DataPayload)发送给用户接口。事务层数据包(TLP)主要由一个或多个可选的TLPPrefixes、一个TLPHeader、一个DataPayload和一个可选的TLPDigest组成。TLP的组成如图2所示,每一部分的功能会在下面做简单介绍。图2TLP的组成TLPPrefix由PCIEV2.1总线规范引入,分为LocalTLPPrefix和EP-EPTLPPrefix两类。其中LocalTLPPrefix的主要作用是在PCIE链路的两端传递消息,而EP-EPTLPPrefix的主要作用是在发送设备和接收设备之间传递消息。设置TLPPrefix的主要目的是为了扩展TLP头,并以此支持PCIEV2.1规范的一些新的功能。由于TLPPrefix是可选的,如果我们用不到,TLP中可以省去该字段。TLPHeader是TLP中最重要的标志,不同的TLP其头的定义并不相同。TLP头的大小为3个或4个DW(双字),其中的信息包含了地址、TLP类型、传送数据的长度、请求者/应答者ID、标记、流量类别、字节允许、完成代码和属性等字段。TLPHeader的通用格式(以4DW长度为例)如下图所示。图3TLPHeader通用格式其中第一个DW(Byte0~Byte3)中的各个字段在所有的TLPHeader中定义是一样的,而后面的2-3个DW则因TLP的类型不同而有所差异。至于TLPHeader中每个字段代表的具体意义,以及不同事务类型的TLP中Header的具体形式,大家有兴趣的话可以参考附件文件,里面有详细的介绍。DataPayload,即我们要传输的数据。在一个TLP中,DataPayload的长度视数据长度而定,最小为0,最大为1024DW。DataPayload也可以看做一个可选项,有些TLP并不需要DataPayload,如存储器读请求、配置和I/O写完成TLP并不需要DataPayload;而在存储器写请求、I/O写请求、配置写请求和消息请求的TLP中是带数据的,DataPayload字段要有。TLPDigest是一个可选项,
长度为1DW。一个TLP是否需要TLPDigest由TLPHeader中TD字段决定。如果接收设备支持ECRC校验的功能的话,则TLPDigest字段用来放置TLP中的数据校验码ECRC。2、数据链路层(DataLinkLayer)数据链路层(DataLinkLayer)连接事务层和物理层,其主要功能是保证在各链路上发送和接受数据包时的数据完整性。数据链路层使用ACK/NAK协议保证报文的可靠传递(ACK/NAK协议:ACK(Acknowledgement)为确认应答字符,在数据通信中,当接收站确认接收的数据无误后,会发给发送站该类字符;NAK(NegativeAcknowledge)为否定应答字符,当接收站确认数据收到,但是有错误的信息,便会发送该字符,接收站收到NAK字符后,便会重发数据,直到接收站返回ACK字符,即数据传输无误)。在发送设备中,数据链路层从事务层接收TLP,接收时必须遵循流量控制机制。数据链路层接收到TLP后,生成链路CRC(LCRC)和一个SequenceNumber(序列ID)并附加到TLP上。之后在该层中的重放缓冲区中保留该TLP的一个副本并将TLP发往接收设备。接收设备的数据链路层对收到的TLP进行CRC校验;如果校验无误,则向发送设备返回一个带有序列ID的ACKDLLP,发送设备在接收到ACK后,确认该TLP已成功到达接收设备,同时清空重放缓冲区中与该序列ID有关的TLP;如果校验有误,接收设备会返回一个带序列ID的NAKDLLP,发送设备将重发缓冲区中与此ID相关的TLP。数据链路层在TLP上添加的序列ID和LCRC的字段长度分别为12bit和32bit。序列ID用于将重放缓冲区中保存的出站TLP副本与入站ACK/NAKDLLP联系起来,LCRC则是根据TLP的所有字节和序列ID计算的,用于检测数据包的传输是否正确。在数据链路层中的数据封包如下所示。序列IDTLPPrefixesTLPHeaderDatapayloadECRCLCRC2Byte(11:0bit有效)nDW(n为0,1……)3或4DW0----1024DW1DW1DW图4数据链路层中的数据封包格式这里简单介绍一下ACK/NAKDLLP,DLLP(DataLinkLayerPacket)产生于数据链路层,终止于数据链路层,并不会传递到事务层。DLLP总长度为6Byte,其类型主要由第一个字节DLLPType字段决定,最后两个字节为CRC校验码。DLLP的各种类型在PCIE3.0规范中DataLinkLayerSpecification章节中也有详细的介绍,这里只介绍一下ACK/NAKDLLP的格式,如下所示:DLLPTypeReservedAckNak_Seq_NumCRC00000000-Ack00010000-Nak12bit12bit(同TLP序列ID)16bit图5ACK/NAKDLLP3、物理层(PhysicalLayer)物理层作为PCIE总线的最底层,负责直接连接PCIE设备,它为设备的数据通信提供传送介质。物理层又可分为两部分:逻辑物理层和电气物理层。逻辑物理层包括对数据包(从数据链路层接收的TLP、DLLP以及从链路上接收的物理层数据包)进行相关的数字逻辑,电气物理层是连接物理层和链路的模拟接口,由各通道的差分驱动器和差分接收器组成。在发送设备中,来自数据链路层的TLP和DLLP被定时输入到逻辑物理层的发送缓冲区中,物理层在TLP和DLLP的前后分别添加一个帧开始和帧结尾字符。接收设备利用这两个字符检测数据包的开始和结束。此时,在物理层中TLP的数据封包格式如下。STP序列IDTLPPrefixesTLPHeaderDatapayloadECRCLCRCEND帧开始1Byte2Byte(11:0bit有效)nDW(n为0,1……)3或4DW0----1024DW1DW1DW帧结尾1Byte图6物理层中的TLP封包格式在发送端,待数据包处理完成后,物理层通过串/并转换器将数据转换成串行比特流,通过差分驱动器发送出去;在接收端,物理层通过并/串转换器将串行数据转换成字节。在这里我们需要知道的是在每个Byte的传输是以低位(LSB)开始,高位(MSB)结束的。下面介绍一下PCIE总线中的数据编码方式:在PCIE总线V1.x和V2.0规范中物理层中使用8/10b编码,即在PCIE链路上的10bit中含有8bit的有效数据。在8/10bit编码中,将每个Byte看成由3bits(高3位,如下图中的HGF)和5bits(低5位,如图中的EDCBA)两部分组成,编码后这个Byte数据则变成jhgfiedcba(需要注意的是,这里的hgfedcba已经和原字节中的HGFEDCBA不一样了,在附件PCIExpressBaser3.0的附录B(SymbolEncoding)中枚举了一个字节的所有值,及其对应的10bit编码),j和i则是给每部分添加的起始位,其随Byte的值而有所不同。图78/10b编码方式而在PCIEV3.0规范中使用128/130b编码方式,即在PCIE链路上的130bit中含有128bit的有效数据。在128/130b编码方式中,在128bit的开头添加了H0、H1两个同步起始头,H0H1有两种有效的编码:10和01,其定义了传输的数据负载的类型。下图是128bit数据从发送端到接收
温馨提示
- 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
- 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
- 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
- 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
- 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
- 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
- 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。
最新文档
- 《我要做好孩子》测试题附答案
- 2024-2025学年新教材高中生物课时分层作业12基因表达与性状的关系新人教版必修第二册
- 第一单元初识Photoshop第2课二、《制作一个公告牌》教学设计 2023-2024学年人教版初中信息技术七年级下册
- 第二章 神经调节生物学科单元教学设计-2024-2025学年高二上学期生物人教版选择性必修一
- 6《让我们的学校更美好》(教学设计)2023-2024学年统编版道德与法治三年级上册
- 第10课 蒙古族的兴起与元朝的建立(教学设计)-2023-2024学年七年级历史下册新课标同步教学教学设计与教学设计(人教部编版)
- 10 自然物与人造物 教学设计 -2024-2025学年科学一年级上册苏教版
- 17 古诗三首 教学设计-2024-2025学年统编版语文三年级上册
- Unit7 Section A 3a - 3c 英文版教学设计 2024-2025学年人教版八年级英语下册
- 第八单元 近代经济、社会生活与教育文化事业的发展 第26课 教育文化事业的发展-(教学设计)2023-2024学年八年级上册历史人教版(安徽)
- 《书籍装帧设计》 课件 项目1 走进书籍装帧设计
- (正式版)SHT 3115-2024 石油化工管式炉轻质浇注料衬里工程技术规范
- (正式版)JBT 9630.1-2024 汽轮机铸钢件无损检测 第1部分:磁粉检测
- ASTM标准全部目录(中文版)
- 地震应急救援培训课件
- 《汽车电气设备构造与维修》 第4版 课件 第3、4章 电源系统、发动机电器
- 辽海版小学美术六年级下册全册教案
- 《南京瞻园赏析》课件2
- 2023年南京市鼓楼区建宁路街道安监办招聘专职安全员考试真题及答案
- 《有责任有担当青春才会闪光》教学课件-2023-2024学年高一下学期爱国主义教育主题班会
- 幼儿中班故事《猪太太生宝宝》课件
评论
0/150
提交评论