PCIE---TLP报文格式及字段处理

上传人:风*** 文档编号:59441052 上传时间:2022-03-03 格式:DOCX 页数:6 大小:87.64KB
返回 下载 相关 举报
PCIE---TLP报文格式及字段处理_第1页
第1页 / 共6页
PCIE---TLP报文格式及字段处理_第2页
第2页 / 共6页
PCIE---TLP报文格式及字段处理_第3页
第3页 / 共6页
点击查看更多>>
资源描述
精选优质文档-倾情为你奉上TLP报文格式类型及字段处理以下均基于PCI Express2.0 Base Specification-Revision 0.9本文例子均以PCIe RootPort通过PCIe EndPoint访问其挂载的Memory为例,如PCIe EP的RX方向为接收RP端对Memory的读写请求,TX方向为返回完成报文。1. TLP报文格式通用的TLP报文格式如下图所示:其中Header部分是必须的,Data部分不是必须的,其长度最大可以为1024DW,最小为0,即不带数据的TLP报文,TLP Digest也不是必须的,至于Data和TLP Digest是否需要由Header部分决定。2. Generic TLP HeaderTLP报文的Header部分Byte03是通用的,其他字节可能与TLP报文的类型相关。通用TLP Header部分字段定义如下:下面详细介绍功能及字段处理。2.1 FmtFmt1:0Corresponding TLP Format00b3DW header,no data01b4DW header,no data10b3DW header,with data11b4DW header,with data此字段确定:l Header的大小是3 DW还是4 DW,如果为4 DW,则请求地址则为64 bit,否则为32 bit;l TLP报文是否包含数据;具体见上表。字段处理,Fmt和Type字段联合进行处理确定当前TLP的总线事务,具体见Type字段。2.2 Type这里只介绍几种常用的Memory读写请求的TLP报文类型,其他可参考PCIE标准。TLP TypeFmt1:0Type4:0DescriptionMRd000 0000存储器读请求;TLP Header为3DW或4DW,不带数据01MWr100 0000存储器写请求;TLP Header为3DW或4DW,带数据11Cpl000 1010完成报文;TLP Header为3DW,不带数据;包括存储器,配置和IO写完成CplD100 1010完成报文;TLP Header为3DW,带数据;包括存储器,配置和IO读完成字段处理:Rx方向:解析报文时,首先解析Fmt1和Type4:0,如果Type4:0=5h0,再根据Fmt1来获取读写请求,0代表读请求,1代表写请求。assign rx_rdreq_n = (Fmt_Type6=1b0) & (Fmt_Type4:0 = 5b00000) ? 1b1 : 1b0;assign rx_wrreq_n = (Fmt_Type6=1b1) & (Fmt_Type4:0 = 5b00000) ? 1b1 : 1b0;Tx方向:为返回完成报文;assign Fmt_Type = 8h4a ;2.3 TCTC字段表示当前TLP的传送类型,PCIe总线共规定8种传输类型TC0TC7,一般仅仅使用默认值TC0,这里不过多介绍TC相关内容。字段处理:Rx方向:不需要解析此字段;TX方向:assign TC = 3h0;2.4 TD、EP、ATTD位表示TLP中的TLP Digest是否有效,1为有效,0为无效。EP位表示当前TLP中的数据是否有效,1表示无效,0表示有效。AT字段与PCIe总线的地址转换相关,只有在支持IOMMU技术的处理器系统中,才使用这个字段,因此此位保留。字段处理:Rx方向:EP、TD、AT均不需要解析此字段;TX方向:assign TD = 1b0 ;assign EP = 1b0 ;AT字段保留;2.5 AttrbitTypeDescriptionOrdering TypeOrdering Model1Ordering Attributes0Default OrderingPCI 强序模型1Relaxed OrderingPCI-X Relaxed Ordering 模型0No Snoop AttributesCache Coherency Management TypeCoherency Model0Default硬件强制执行cache 共享一致性处理1No Snoop硬件不强制执行cache 共享一致性处理字段处理:1. Rx方向:Attr不需要解析此字段;2. TX方向:assign Attr = 2h0 ;2.6 Length对于RP的读请求,无Data Payload,Length字段表示需要从目标设备EP的数据区读取的数据长度;对于写请求,则表示当前报文Data Payload长度。Length9:0TLP Data Payload Size00 0000 0001b1 DW00 0000 0002b2 DW11 1111 1111b1023 DW00 0000 0000b1024 DW字段处理:1. Rx方向:读请求: 需要将Length保存下来,然后送给TX方向返回完成报文的使用;assign rx_hold_length = length;写请求: 设置一计数器,每个时钟周期都去进行一次写操作,每当写一次,计数器减1,读地址加1,直到计数器为0,写使能变为0。2. TX方向:返回读请求的完成报文: 将之前读请求TLP报文中的length赋值到完成报文中的length字段;assign tx _length = rx_hold_length; 并设置一计数器,每个时钟周期都去进行一次读操作,每当读一次,计数器减1,读地址加8,直到计数器为0,读使能变为0。3. MRd/MWr Header下面为Memory 读写请求TLP报文的格式,请求地址为64 bit和 32 bit。3.1 Requester ID、TAGRequester ID字段包含生成这个TLP报文的PCIe设备的Bus Number、Device Number、Function Number。字段处理:对于Memory读请求TLP,需要将此字段保存,以供返回完成报文使用;assign rx_hold_reqid = rx_reqid;assign rx_hold_tag = rx_tag;对于Memory写请求TLP,不需要完成报文作为应答,因此,此字段可以不用解析;3.2 Last DW BE、First DW BE3.3 Address31:2字段处理:1. Rx方向:2. TX方向:4. CPL/CPLD Header4.1 Requester ID、TAG当PCIe设备收到存储器读TLP时,首先保存这些报文的Requester ID、TAG,之后当该身背准备好完成报文后,将完成报文的Requester ID、TAG字段赋值为之前保存的Requester ID、TAG。字段处理:赋值为之前保存的RX方向的Requester ID、TAG;assign tx_ reqid = rx_hold_reqid;assign tx_tag = rx_hold_tag;4.2 Completer ID与Requester ID字段类似,该字段存放发送完成报文的PCIe设备的ID号,即为EP的设备ID。4.3 Status、BCMStatus字段保存当前完成报文的完成状态。Status2:0Description0b000SC,正常结束0b001UR,不支持的数据请求0b010CRS,要求数据请求方进行重试0b100CA,数据夭折其他保留字段处理:此字段赋值为3d0,正常结束。BCM字段由PCI-X设备设置。字段处理:保留,设为0;4.4 Byte count若只有一个读完成包被返回,则本字段是该包数据返回读数据的总字节数;若由多个完成包组成的完成序列被返回,则各完成包中本字段表示要读的剩余字节数,包括当前完成包中数据字节加上后续所有完成包中的数据字节。字段处理:我们只使用一个完成包返回完成报文,因此,此字段即为length大小。assign bytecnt = tx_length , 2h0 ;注:length单位为DW,而bytecnt单位为Byte,因此,1DW = 4 Byte,则需要tx_length左移两位。4.5 Lower Address完成包读数据中第一个被使能字节所对应的地址的低7位。专心-专注-专业
展开阅读全文
相关资源
正为您匹配相似的精品文档
相关搜索

最新文档


当前位置:首页 > 办公文档 > 教学培训


copyright@ 2023-2025  zhuangpeitu.com 装配图网版权所有   联系电话:18123376007

备案号:ICP2024067431-1 川公网安备51140202000466号


本站为文档C2C交易模式,即用户上传的文档直接被用户下载,本站只是中间服务平台,本站所有文档下载所得的收益归上传人(含作者)所有。装配图网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对上载内容本身不做任何修改或编辑。若文档所含内容侵犯了您的版权或隐私,请立即通知装配图网,我们立即给予删除!