一种用于PCIE应用层接口的重排序方法技术

技术编号:9599344 阅读:119 留言:0更新日期:2014-01-23 04:07
本发明专利技术涉及一种用于PCIE应用层接口的重排序技术,使用外部存储器来存储接收的数据以及需要存储的信息,使用查找表(lut)记录分割前后包的标志位(TAG号),加入内部TAG号来使得将接收的所有的请求包标志号(ID号)都先转换成不同的内部标志号(Internal TAG),这样就完全解决现有方案中阻塞所导致的问题,提高了工作速率,并且能够解决包的乱序问题。

【技术实现步骤摘要】
一种用于PCIE应用层接口的重排序方法
本专利技术涉及一种用于PCIE应用层接口的重排序方法。
技术介绍
随着计算机运行速度越来越高,提出了第三代计算机I/O技术,即PCIE总线技术。相比较于传统的PCI总线技术,PCIE在带宽,时延,速率等方面都有不同程度的性能提升。PCIE的硬核中包括PCIE物理层,PCIE数据链路层和PCIE事务层。PCIE事务层负责对包进行发送和接收,并进行相应的错误检测。PCIE事务层属于硬核的最高层,与应用层通过总线相连接而实现通信。相对于高级高性能总线(AHB)总线,ARM公司新提出的高级可扩展接口(AXI)总线协议有更好的性能,AXI总线拥有单通道体系结构,简化时钟域之间的桥接,减少延时;支持多项数据交换,通过执行猝发操作,极大地提高了数据吞吐能力;拥有独立的地址和数据通道,可根据需要控制时序通道,将时钟频率提高至最高。可见AXI是一种面向高性能,高带宽,低延时的片内总线,能够满足PCIE的高速率,高带宽和低延时的高性能要求。基于PCIE硬核要连接至AXI总线继而与应用层通信,因此在PCIE硬核与AXI总线之间需要一个桥接器来实现两者的协议转换。AXI总线支持乱序传输,所以在桥接器内部需要将乱序接收的包进行重排序。图1是一个完整的AXIPCIE桥的总线结构,它包括两个部分AXI4到AXI4-stream的桥以及从AXI4-stream接口到PCIExpress的转换。AXI4到AXI4-stream桥包含一个寄存器模块和主桥模块和从桥模块。AXI桥内的寄存器模块输了进行数据的存储之外还用于动态将AXI4总线地址映射到PCIExpress的地址范围内。从桥模块作为一个AXI从设备连接到AXI4总线上,而主桥模块作为一个AXI主设备连接到AXI4总线上。当一个远端的AXI主设备发起一个到从桥模块的写传输时,从桥模块将接收到写地址和写传输的其它控制信息,而写数据将先存储在queue中,采用先进先出的读取方式。根据我们配置的MaxPayloadSize的值,这些写数据将被转换成一个或多个存储器写传输包(MemWrTLPs),然后传输到PCIExpress模块。后续的写请求到来时,写地址和控制信息被捕获接受,但是它的相应写数据要被阻塞直到先前的写传输包(TLP)传输到PCIExpress模块之后再进入队列中。这样虽然能够完全保证不发生发送包的乱序,但是在一段工作时间内只能处理一个请求,限制了效率的提高。当一个远端的AXI主设备发起一个到从桥模块的读传输时,由于读传输不携带数据,因此只接收到读地址和其它的读控制信息,然后发出一个到PCIExpress模块的存储器读传输包(MemRdTLP)请求,并且同时启动完成超时功能块。从PCIExpress模块接受的完成包与当前阻塞等待处理的读请求和返回的读数据有关,这是因为如果接收的完成包超出完成超时功能块设定的时间,就说明接收的完成包超时,则它所携带的信息就是无效的,需要向PCIExpress模块重发MemRdTLP请求,然后重新进行读操作,直到返回正确的完成包。在当前读请求的完成包正确接收之前,阻塞后续的读请求。同样导致模块运行速率的提高。AXI4-StreamEnhancedPCIExpress模块包含请求接口,完成接口,寄存器模块,Stream组合与分割,PCIExpress硬核模块。由现有技术的方案描述中可见当前的PCIE接口模块中主要采用阻塞后续读请求的方式,直到当前请求包的完成包被正确接收之后才解除阻塞来解决包的乱序问题。这一理论类似于握手协议。但产生的主要问题是工作效率不高,基于提高工作效率并且解决包的乱序问题,我们提出专利的方案。并且上述方案中需要将数据存放在存储器模块中,存储器是一个面积较大,读取速度比较缓慢的模块,因此在很大程度上影响了模块的面积以及工作速度。
技术实现思路
本专利技术的目的在于克服上述不足,提供一种用于PCIE应用层接口的重排序技术,解决现有方案中阻塞所导致的问题,提高了工作速率,并且能够解决包的乱序问题。本专利技术的目的是这样实现的:一种用于PCIE应用层接口的重排序方法,中间标识位(InternalTAG)将请求包的ID号都转换成不同的IntTAG号请求包,解决现有技术将后续请求包均阻塞而导致低效的问题;ID号查找表(ID-Intlut)和PCIE查找表(Int-PCIE)lut将ID号到IntTAG的关系与IntTAG到PCIETAG的关系存储起来,便于接收到完成包时进行相应的反变换,以保证按序接收。其进一步的技术方案为:1)将接受的请求包的ID号按照接收的先后顺序依次转换成相应的中间标识位(IntTAG),并将其与ID号的转换关系存储在ID号查找表(ID-Intlut)中;2)当接收到相同的ID号请求包时,经过上述转换之后成为中间标识位不同的请求包,并且按照中间标识位的顺序发送;3)根据配置的根据配置的最大负载大小(MaxPayloadSize)的值,将请求包分割成多个PCIE请求包,据PCIE的协议要求不同的请求包的TAG号必须不同,将分割的多个PCIE请求包的标识位依次转换成相应的PCIE标识位,并将其与中间标识位的转换关系存储在PCIE查找表(Int-PCIElut)中;4)接收到的完成包根据PCIE查找表将相同的中间标识位的完成包存储在相应的队列中,然后依次读取出相应的数据组成一个完成包,再经过ID号查找表的查找,将中间标识位转换成相应的ID号之后返回给应用层,按照请求包的发送顺序返回其响应的完成包,确保顺序完成。与现有技术相比,本技术的有益效果是:本专利技术相对于现有技术的使用内部存储器存储数据占用较大的面积,本方案采用外部存储器较小面积,但相应的可能在一定程度上影响了读取速度,降低了工作效率。附图说明图1是现有AXIPCIE桥的总线结构。图2是实现本专利技术的结构示意图。图3是TAG号的响应位置上存储对应的Int号。具体实施方式如图2所示,本专利技术涉及一种用于PCIE应用层接口的重排序方法,将接受的请求包的ID号按照接收的先后顺序依次转换成从TAG0开始的IntTAG,并将其转换关系存储在查找表ID-Intlut中,因此当接收到相同的ID号请求包时,经过TAG转换之后成为IntTAG不同的请求包,并且按照TAG号的顺序发送。根据配置的MaxPayloadSize的值,将请求包分割成多个PCIE请求包,据PCIE的协议要求不同的请求包的TAG号必须不同,因此将分割的多个PCIE请求包的TAG号依次转换成从0开始的PCIETAG,并将转换关系存储在查找表Int-PCIElut中。接收到的完成包根据Int-PCIElut将相同的IntTAG号的完成包存储在相应的queue中,然后依次读取出相应的数据组成一个完成包,再经过ID-Intlut的查找,将IntTAG转换成相应的ID号之后返回给应用层,这样就按照请求包的发送顺序返回其响应的完成包,确保顺序完成。若接受到AXI请求包的ID号依次为ID0,ID0,ID1。它们分别代表三个不同的AXI请求包,由于有两个相同的ID号的请求包存在,在返回完成包时有可能发生混乱,造成接受错误。所以加入InternalTAG号来解决相同AXIID号带来的混乱接收问题本文档来自技高网
...
一种用于PCIE应用层接口的重排序方法

【技术保护点】
一种用于PCIE应用层接口的重排序技术,其特征在于它包括以下步骤:?1)将接受的请求包的ID号按照接收的先后顺序依次转换成中间标识位,并将其与ID号的转换关系存储在相应的ID号查找表中;2)当接收到相同的ID号请求包时,经过上述转换之后成为中间标识位不同的请求包,并且按照中间标识位的顺序发送;3)将分割的多个PCIE请求包的标识位依次转换成相应的PCIE?标识位,并将其与中间标识位的转换关系存储在PCIE查找表中;4)响应完成包根据PCIE查找表将相同的标识位的完成包存储在相应的队列中,然后依次读取出相应的数据组成一个完成包,再经过ID号查找表的查找,将中间标识位转换成相应的ID号之后返回给应用层,按照请求包的发送顺序返回其响应的完成包,确保顺序完成。

【技术特征摘要】
1.一种用于PCIE应用层接口的重排序方法,其特征在于它包括以下步骤:1)将接受的PCIE请求包的ID号按照接收的先后顺序依次转换成中间标识位,并将其与ID号的转换关系存储在相应的ID号查找表中;2)当接收到相同的ID号PCIE请求包时,经过上述转换之后成为中间标识位不同的PCIE请求包,并且按照中间标识位的顺序发送;3)将分割的多个分割包生成相应的PCIE标识位,...

【专利技术属性】
技术研发人员:林谷雒莎李冰丁贤根
申请(专利权)人:江苏华丽网络工程有限公司
类型:发明
国别省市:

网友询问留言 已有0条评论
  • 还没有人留言评论。发表了对其他浏览者有用的留言会获得科技券。

1