一种PCIe链路乱序响应包的处理电路的制作方法

文档序号:10351938阅读:1090来源:国知局
一种PCIe链路乱序响应包的处理电路的制作方法
【技术领域】
[0001 ]本实用新型属于集成电路设计技术,涉及一种PCIe链路乱序响应包的处理电路。
【背景技术】
[0002]在PCIe链路的数据传输中,由于主机(尤其是PowerPC系列主机)内部设计优化,经常会出现回复的响应包乱序的现象。
[0003]传统的做法是将主机回复的数据包全部直接进行乱序接收,再在本地设备内部根据数据特性进行重组,造成本地设备内部设计复杂。
【实用新型内容】
[0004]为了解决上述背景中提及的问题,本实用新型提供一种PCIe链路乱序响应包的处理电路,在来自处理器的响应包进入本地设备之前通过该电路将其按照顺序进行组织,大大减少了本地设备内部的设计复杂度。
[0005]本实用新型的技术解决方案是:本实用新型为一种PCIe链路乱序响应包的处理电路,其特殊之处在于:该电路包含TAG添加模块、FIFO组模块、TAG判断及FIFO写入控制模块和FIFO读出控制模块;TAG添加模块与本地设备及处理器相连,所述FIFO组模块分别与TAG判断及FIFO写入控制模块和FIFO读出控制模块相连,TAG判断及FIFO写入控制模块与处理器及FIFO组模块相连,FIFO读出控制模块与本地设备相连。
[0006]上述TAG添加模块为本地设备的请求包中的TAG字段添加正确的TAG,第一个请求包的TAG字段为I,后续的请求包的TAG字段依次加I,该TAG的取值范围为I?N,N为本地设备对应的信用值。
[0007]上述FIFO组模块包含N个FIF0,N为本地设备的信用值N,每个FIFO的容量恰好能存储一个来自主机的响应包。
[0008]上述TAG判断及FIFO写入控制模块用于控制来自主机的响应包接收,由于主机返回的数据包中的TAG字段与本地设备发送的请求包中的TAG字段一致,因此TAG判断及FIFO写入控制模块按照响应包中TAG字段将其写入对应的FIFO中,S卩TAG字段为O的响应包写入FIFO 0,TAG字段为I的响应包写入FIFO 1,……,TAG字段为N的响应包写入FIFO N。
[0009]上述FIFO读出控制模块用于控制按照FIFO的序号顺序读出,当读取顺序到了某个FIF0,而此FIFO中暂时无数据,则强制等待,直至其有数并已读取,转而读取下一 FIFO。
[0010]本实用新型提供的PCIe链路乱序响应包的处理电路通过在本地设备外增加处理电路的方式,通过对本地设备请求包中增加TAG字段,TAG字段从I开始递增,直到达到本地设备的信用值。同时在处理电路中设置于本地设备的信用值N相匹配的N个FIFO用于顺序存储来自处理器的响应包,再通过TAG读出控制模块进行组包,保证PCIe数据包在进入本地设备之前的数据和顺序均正确,避免了 PCIe链路乱序响应包的问题,并且彻底解决了在本地设备中组包造成的资源负担,对其他链路乱序包的设计具有极大的借鉴意义。
【附图说明】
[0011]图1是本实用新型的架构示意图。
【具体实施方式】
[0012]下面结合附图和实施例对本实用新型做进一步描述:
[0013]参见图1,本实用新型包含TAG添加模块1、FIF0组模块2、TAG判断及FIFO写入控制模块3和FIFO读出控制模块4。
[0014]TAG添加模块I与本地设备及处理器相连,TAG添加模块I为本地设备的请求包中的TAG字段添加正确的TAG,第一个请求包的TAG字段为I,后续的请求包的TAG字段依次加I,该TAG的取值范围为I?N,N为本地设备对应的信用值。
[0015]FIFO组模块2与TAG判断及FIFO写入控制模块3及FIFO读出控制模块4相连,FIFO组模块2包含N个FIF0,N为本地设备的信用值N,每个FIFO的容量恰好能存储一个来自主机的响应包。
[0016]TAG判断及FIFO写入控制模块3与处理器及FIFO组模块2相连,TAG判断及FIFO写入控制模块3用于控制来自主机的响应包接收,由于主机返回的数据包中的TAG字段与本地设备发送的请求包中的TAG字段一致,因此TAG判断及FIFO写入控制模块3按照响应包中TAG字段将其写入对应的FIFO中,S卩TAG字段为O的响应包写入FIFO 0,TAG字段为I的响应包写入FIFO 1,……,TAG字段为N的响应包写入FIFO N。
[0017]FIFO读出控制模块4与FIFO组模块2及本地设备相连,FIFO读出控制模块4用于控制按照FIFO的序号顺序读出,当读取顺序到了某个FIF0,而此FIFO中暂时无数据,则强制等待,直至其有数并已读取,转而读取下一 FIFO。
[0018]最后应说明的是:以上实施例仅用以说明本实用新型的技术方案,而非对其限制;尽管参照前述实施例对本实用新型进行了详细地说明,本领域的普通技术人员应当理解:其依然可以对前述各实施例所记载的技术方案进行修改,或者对其中部分技术特征进行等同替换;而这些修改或者替换,并不使相应技术方案的本质脱离本实用新型各实施例技术方案的精神和范围。
【主权项】
1.一种PCIe链路乱序响应包的处理电路,其特征在于:该电路包含TAG添加模块、FIFO组模块、TAG判断及FIFO写入控制模块和FIFO读出控制模块;TAG添加模块与本地设备及处理器相连,所述FIFO组模块分别与TAG判断及FIFO写入控制模块和FIFO读出控制模块相连,TAG判断及FIFO写入控制模块与处理器及FIFO组模块相连,FIFO读出控制模块与本地设备相连。2.根据权利要求1所述的PCIe链路乱序响应包的处理电路,其特征在于:所述TAG添加模块为本地设备的请求包中的TAG字段添加正确的TAG,第一个请求包的TAG字段为I,后续的请求包的TAG字段依次加I,该TAG的取值范围为I?N,N为本地设备对应的信用值。3.根据权利要求2所述的PCIe链路乱序响应包的处理电路,其特征在于:所述FIFO组模块包含N个FIF0,N为本地设备的信用值N,每个FIFO的容量恰好能存储一个来自主机的响应包。4.根据权利要求3所述的PCIe链路乱序响应包的处理电路,其特征在于:所述TAG判断及FIFO写入控制模块用于控制来自主机的响应包接收,由于主机返回的数据包中的TAG字段与本地设备发送的请求包中的TAG字段一致,因此TAG判断及FIFO写入控制模块按照响应包中TAG字段将其写入对应的FIFO中,S卩TAG字段为O的响应包写入FIFO 0,TAG字段为I的响应包写入FIFOl,……,TAG字段为N的响应包写入FIFO N。5.根据权利要求4所述的PCIe链路乱序响应包的处理电路,其特征在于:所述FIFO读出控制模块用于控制按照FIFO的序号顺序读出,当读取顺序到了某个FIFO,而此FIFO中暂时无数据,则强制等待,直至其有数并已读取,转而读取下一 FIFO。
【专利摘要】本实用新型涉及一种PCIe链路乱序响应包的处理电路,该电路包含TAG添加模块、FIFO组模块、TAG判断及FIFO写入控制模块和FIFO读出控制模块;TAG添加模块与本地设备及处理器相连,所述FIFO组模块分别与TAG判断及FIFO写入控制模块和FIFO读出控制模块相连,TAG判断及FIFO写入控制模块与处理器及FIFO组模块相连,FIFO读出控制模块与本地设备相连。本实用新型有效地避免了PCIe通信过程中,主机回复的响应包乱序问题。
【IPC分类】G06F13/20
【公开号】CN205263799
【申请号】CN201521037193
【发明人】杨海波, 袁晓军, 王玉欢, 李攀, 霍卫涛
【申请人】中国航空工业集团公司西安航空计算技术研究所
【公开日】2016年5月25日
【申请日】2015年12月11日
网友询问留言 已有0条留言
  • 还没有人留言评论。精彩留言会获得点赞!
1