专栏名称: EETOP
EETOP电子网(中国电子顶级开发网)是国内最顶级的电子行业工程师社区,涉及:嵌入式、智能硬件、半导体集成电路设计及制造等。 为您分享论坛精华内容、行业最新资讯、产品及技术 。 网址:www.eetop.cn bbs.eetop.cn
目录
相关文章推荐
EETOP  ·  如何优化 SoC 设计?(资料下载) ·  昨天  
电脑吧评测室  ·  【八佰元企业级固态】响应速度超棒的PM173 ... ·  2 天前  
电脑吧评测室  ·  【八佰元企业级固态】响应速度超棒的PM173 ... ·  2 天前  
ZOL中关村在线  ·  全新升级的单反级人像手机:荣耀300 ... ·  3 天前  
51好读  ›  专栏  ›  EETOP

PCIe 知识点:TLP Byte Enables rules

EETOP  · 公众号  · 硬件  · 2024-12-17 09:00

正文

1.什么是byte enable

PCIe协议规定TLP中的data payload是1DW(特殊情况此处不介绍)对齐的,因此在使用addr的TLP中省略了addr[1:0],为了指示DW中的有效字节,PCIe TLP header使用First/Last DW Byte Enables表示data payload的首个/最后一个DW中的哪些byte是有效的。对应字节的byte enable为1则表示字节有效。
Memory, I/O, and Configuration Requests的TLP header需要用到Byte Enable.如图2-32所示,First/Last DW Byte Enables位于TLP header的byte 7。如表2-10所示,First DW BE[0]位于TLP byte7的bit 0,表示data payload的byte 0。First DW BE[1]位于TLP byte7的bit 1,表示data payload的byte 1。Last DW BE[3]位于TLP byte7的bit 7,表示data payload的最后一个byte。

2.Byte Enables rules

l如果request的length表示data长度大于1DW,则当前TLP header中的First DW BE[3:0] f字段不能等于0000b
l如果request的length表示data长度等于1DW,则当前TLP header中的last DW BE[3:0] f字段必须等于0000b
l如果request的length表示data长度大于1DW,则当前TLP header中的last DW BE[3:0] f字段不能等于0000b
llength为1DW的请求中,允许出现非连续的First DW BE,例如1DW的请求中First DW BE[3:0]为1010b, 0101b, 1001b, 1011b, 1101b都是允许的。
l在2DW对齐的memory请求中,如果请求的length为2DW,则last DW BE[3:0] 和First DW BE[3:0]均允许出现非连续。
l 长度为2DW的非2DW对齐的memory Requests 和 长度大等于3DW的memory Requests ,其First DW BE[3:0] 和First DW BE[3:0] 设置必须要保证有效字节连续,例如
First DW BE: 1100b, Last DW BE: 0011b
First DW BE: 1000b, Last DW BE: 0111b
lzero-length Write:是length为1DW且所有字节都是无效的(即First DW BE[3:0] 和last DW BE[3:0] 均为的0000b)Write Request,除非特殊说明,否则此请求不应该对Completer造成任何影响(即不会在Completer产生写操作)。
lzero-length Write常常用作flush请求。例如,为了确认之前发起的Post write已被目标设备完成,发送一个zero-length read且读地址和Post write的写地址保持一致,当收到zero-length read的completion时就能确保Post write已被目标设备完成。
lzero-length Read:长度为1DW且所有字节都是无效的(即First DW BE[3:0] 和last DW BE[3:0] 均为的0000b)read Request,其对应的Completion必须指明长度为1DW,且包含长度为1DW的data payload
l如果接收到的TLP header中的First DW BE[3:0]和last DW BE[3:0]违背了本章节的规定,协议并没有规定Receiver/Completer的行为
lReceiver可以选择检查Byte Enables rules,一旦进行检查且分析TLP违背了Byte Enables rules,则把TLP当做畸形TLP处理

3.参考文档

PCI Express Base Specification Revision 6.2, section 2.2.5, p. 182. 

 文章来源于IC小鸽,作者IC小鸽

================================

创芯大讲堂 芯片精品课程推荐