CN103532875B - 一种用于pcie应用层接口的重排序方法 - Google Patents
一种用于pcie应用层接口的重排序方法 Download PDFInfo
- Publication number
- CN103532875B CN103532875B CN201310473342.0A CN201310473342A CN103532875B CN 103532875 B CN103532875 B CN 103532875B CN 201310473342 A CN201310473342 A CN 201310473342A CN 103532875 B CN103532875 B CN 103532875B
- Authority
- CN
- China
- Prior art keywords
- pcie
- bag
- tag
- request
- look
- Prior art date
- Legal status (The legal status is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the status listed.)
- Active
Links
Landscapes
- Bus Control (AREA)
Abstract
本发明涉及一种用于PCIE应用层接口的重排序技术,使用外部存储器来存储接收的数据以及需要存储的信息,使用查找表(lut)记录分割前后包的标志位(TAG号),加入内部TAG号来使得将接收的所有的请求包标志号(ID号)都先转换成不同的内部标志号(Internal TAG),这样就完全解决现有方案中阻塞所导致的问题,提高了工作速率,并且能够解决包的乱序问题。
Description
技术领域
本发明涉及一种用于PCIE应用层接口的重排序方法。
背景技术
随着计算机运行速度越来越高,提出了第三代计算机I/O技术,即PCIE总线技术。相比较于传统的PCI总线技术,PCIE在带宽,时延,速率等方面都有不同程度的性能提升。
PCIE的硬核中包括PCIE物理层,PCIE数据链路层和PCIE事务层。PCIE事务层负责对包进行发送和接收,并进行相应的错误检测。PCIE事务层属于硬核的最高层,与应用层通过总线相连接而实现通信。
相对于高级高性能总线(AHB)总线,ARM公司新提出的高级可扩展接口(AXI)总线协议有更好的性能,AXI总线拥有单通道体系结构,简化时钟域之间的桥接,减少延时;支持多项数据交换,通过执行猝发操作,极大地提高了数据吞吐能力;拥有独立的地址和数据通道,可根据需要控制时序通道,将时钟频率提高至最高。可见AXI是一种面向高性能,高带宽,低延时的片内总线,能够满足PCIE的高速率,高带宽和低延时的高性能要求。
基于PCIE硬核要连接至AXI总线继而与应用层通信,因此在PCIE硬核与AXI总线之间需要一个桥接器来实现两者的协议转换。AXI总线支持乱序传输,所以在桥接器内部需要将乱序接收的包进行重排序。
图1是一个完整的AXI PCIE桥的总线结构,它包括两个部分AXI4到AXI4-stream的桥以及从AXI4-stream接口到PCI Express的转换。AXI4到AXI4-stream桥包含一个寄存器模块和主桥模块和从桥模块。AXI桥内的寄存器模块输了进行数据的存储之外还用于动态将AXI4总线地址映射到PCI Express的地址范围内。从桥模块作为一个AXI 从设备连接到AXI4 总线上,而主桥模块作为一个AXI主设备连接到AXI4 总线上。
当一个远端的AXI 主设备发起一个到从桥模块的写传输时,从桥模块将接收到写地址和写传输的其它控制信息,而写数据将先存储在queue中,采用先进先出的读取方式。根据我们配置的Max Payload Size 的值,这些写数据将被转换成一个或多个存储器写传输包(MemWr TLPs), 然后传输到PCI Express模块。后续的写请求到来时,写地址和控制信息被捕获接受,但是它的相应写数据要被阻塞直到先前的写传输包(TLP)传输到PCIExpress模块之后再进入队列中。这样虽然能够完全保证不发生发送包的乱序,但是在一段工作时间内只能处理一个请求,限制了效率的提高。
当一个远端的AXI 主设备发起一个到从桥模块的读传输时,由于读传输不携带数据,因此只接收到读地址和其它的读控制信息,然后发出一个到PCI Express模块的存储器读传输包(MemRd TLP)请求,并且同时启动完成超时功能块。从PCI Express模块接受的完成包与当前阻塞等待处理的读请求和返回的读数据有关,这是因为如果接收的完成包超出完成超时功能块设定的时间,就说明接收的完成包超时,则它所携带的信息就是无效的,需要向PCI Express模块重发MemRd TLP请求,然后重新进行读操作,直到返回正确的完成包。在当前读请求的完成包正确接收之前,阻塞后续的读请求。同样导致模块运行速率的提高。
AXI4-Stream Enhanced PCI Express模块包含请求接口,完成接口,寄存器模块,Stream组合与分割,PCI Express硬核模块。
由现有技术的方案描述中可见当前的PCIE接口模块中主要采用阻塞后续读请求的方式,直到当前请求包的完成包被正确接收之后才解除阻塞来解决包的乱序问题。这一理论类似于握手协议。但产生的主要问题是工作效率不高,基于提高工作效率并且解决包的乱序问题,我们提出专利的方案。
并且上述方案中需要将数据存放在存储器模块中,存储器是一个面积较大,读取速度比较缓慢的模块,因此在很大程度上影响了模块的面积以及工作速度。
发明内容
本发明的目的在于克服上述不足,提供一种用于PCIE应用层接口的重排序技术,解决现有方案中阻塞所导致的问题,提高了工作速率,并且能够解决包的乱序问题。
本发明的目的是这样实现的:一种用于PCIE应用层接口的重排序方法,中间标识位(Internal TAG)将请求包的ID号都转换成不同的Int TAG号请求包,解决现有技术将后续请求包均阻塞而导致低效的问题;ID号查找表(ID-Int lut)和PCIE查找表(Int-PCIE)lut将ID号到Int TAG的关系与Int TAG到PCIE TAG的关系存储起来,便于接收到完成包时进行相应的反变换,以保证按序接收。
其进一步的技术方案为:
1)将接受的请求包的ID号按照接收的先后顺序依次转换成相应的中间标识位(Int TAG),并将其与ID号的转换关系存储在ID号查找表(ID-Int lut)中;
2)当接收到相同的ID号请求包时,经过上述转换之后成为中间标识位不同的请求包,并且按照中间标识位的顺序发送;
3)根据配置的根据配置的最大负载大小(Max Payload Size)的值,将请求包分割成多个PCIE请求包,据PCIE的协议要求不同的请求包的TAG号必须不同,将分割的多个PCIE请求包的标识位依次转换成相应的PCIE标识位,并将其与中间标识位的转换关系存储在PCIE查找表(Int-PCIE lut)中;
4)接收到的完成包根据PCIE查找表将相同的中间标识位的完成包存储在相应的队列中,然后依次读取出相应的数据组成一个完成包,再经过ID号查找表的查找,将中间标识位转换成相应的ID号之后返回给应用层,按照请求包的发送顺序返回其响应的完成包,确保顺序完成。
与现有技术相比,本实用新型的有益效果是:
本发明相对于现有技术的使用内部存储器存储数据占用较大的面积,本方案采用外部存储器较小面积,但相应的可能在一定程度上影响了读取速度,降低了工作效率。
附图说明
图1是现有AXI PCIE桥的总线结构。
图2是实现本发明的结构示意图。
图3是TAG 号的响应位置上存储对应的Int号。
具体实施方式
如图2所示,本发明涉及一种用于PCIE应用层接口的重排序方法,将接受的请求包的ID号按照接收的先后顺序依次转换成从TAG0开始的Int TAG,并将其转换关系存储在查找表ID-Int lut中,因此当接收到相同的ID号请求包时,经过TAG转换之后成为Int TAG不同的请求包,并且按照TAG号的顺序发送。根据配置的Max Payload Size 的值,将请求包分割成多个PCIE请求包,据PCIE的协议要求不同的请求包的TAG号必须不同,因此将分割的多个PCIE请求包的TAG号依次转换成从0开始的PCIE TAG,并将转换关系存储在查找表Int-PCIE lut中。接收到的完成包根据Int-PCIE lut将相同的Int TAG号的完成包存储在相应的queue中,然后依次读取出相应的数据组成一个完成包,再经过ID-Int lut的查找,将Int TAG转换成相应的ID号之后返回给应用层,这样就按照请求包的发送顺序返回其响应的完成包,确保顺序完成。
若接受到AXI请求包的ID号依次为ID 0,ID 0,ID 1。它们分别代表三个不同的AXI请求包,由于有两个相同的ID号的请求包存在,在返回完成包时有可能发生混乱,造成接受错误。所以加入Internal TAG号来解决相同AXI ID号带来的混乱接收问题。在图示2中可见,经过ID-Int TAG 转换模块,将ID 0,ID 0,ID 1的请求包转换成Int TAG 为Int 0 ,Int1,Int 2的请求包,并把响应的转换关系存储在查找表ID-Int lut中,由图示可知在Int的相应位置内存储转换前的ID 号。
经过上述转转之后,由配置Max Payload Size 的值的限制,需将包长超过该配置值的请求包分割成多个请求包,又因为PCIE的协议要求每一个PCIE请求包的TAG号必须唯一,因此分割模块中必须随着包的分割,为每一个分割包产生不同的PCIE TAG号。如图2 中Int 0 的请求包分割成了两个PCIE包,即TAG 0, TAG 1的包。Int 1的请求包分割成TAG 2,TAG 3 的两个PCIE 请求包,Int 2 的请求包包长不需要分割,将其转换成TAG 4 的PCIE请求包。
如图3所示,将上述分割前后请求包的Int-TAG 转换关系存储在查找表Int-PCIETAG lut中。对于一个PCIE请求包,由于数据量的关系,可能有多个完成包来返回数据,但多个完成包的TAG号与相应的PCIE请求包的TAG号要保持一致,并且在PCIE硬核部分能保证这多个完成包按序返回。
由于对PCIE硬核对请求包处理所用时间的不同,导致多个请求包的响应完成包会发生乱序。如图示3中有完成包(cpl)依次为cpl 0, cpl 3, cpl 1, cpl 2, cpl 0, cpl1。 表明TAG 0的请求包有两个完成包,TAG 1 的请求包也有两个完成包,而TAG 2, TAG 3的请求包只有一个完成包。
在合成模块中,cpl tag暂存接收到的完成保TAG号,且根据查找表Int-PCIE TAGlut中存储的Int-TAG号的关系,将相应的完成包的TAG号转换成Int 号。并将Int号相同的完成包的数据存储在外部的数据队列(data queue)中,由读写控制模块控制data queue中数据的读出,最终形成合成之后的完成包cpl int 0, cpl int 1两个完成包。再经过查找表ID-Int lut 记录的转换关系,将Int 号转换成相应的ID 号,这样就按序得到AXI ID 0,AXI 0两个相同ID 号请求包的完成包。
以上所述的仅是本发明的优选实施方式,本发明不限于以上实施例。可以理解,本领域技术人员在不脱离本发明的精神和构思的前提下直接导出或联想到的其他改进和变化,均应认为包含在本发明的保护范围之内。
Claims (1)
1.一种用于PCIE应用层接口的重排序方法,其特征在于它包括以下步骤:
1)将接受的PCIE请求包的ID号按照接收的先后顺序依次转换成中间标识位,并将其与ID号的转换关系存储在相应的ID号查找表中;
2)当接收到相同的ID号PCIE请求包时,经过上述转换之后成为中间标识位不同的PCIE请求包,并且按照中间标识位的顺序发送;
3)将分割的多个分割包生成相应的PCIE 标识位,并将PCIE 标识位与中间标识位的转换关系存储在PCIE查找表中,所述分割包是由中间标识位不同的PCIE请求包分割而成;
4)响应完成包是根据PCIE查找表将相同的ID号的完成包存储在相应的队列中,然后依次读取出相应的数据组成一个完成包,再经过ID号查找表的查找,将中间标识位转换成相应的ID号之后返回给应用层,按照PCIE请求包的发送顺序返回其响应的完成包,确保顺序完成。
Priority Applications (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN201310473342.0A CN103532875B (zh) | 2013-10-12 | 2013-10-12 | 一种用于pcie应用层接口的重排序方法 |
Applications Claiming Priority (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN201310473342.0A CN103532875B (zh) | 2013-10-12 | 2013-10-12 | 一种用于pcie应用层接口的重排序方法 |
Publications (2)
Publication Number | Publication Date |
---|---|
CN103532875A CN103532875A (zh) | 2014-01-22 |
CN103532875B true CN103532875B (zh) | 2017-11-03 |
Family
ID=49934561
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
CN201310473342.0A Active CN103532875B (zh) | 2013-10-12 | 2013-10-12 | 一种用于pcie应用层接口的重排序方法 |
Country Status (1)
Country | Link |
---|---|
CN (1) | CN103532875B (zh) |
Families Citing this family (8)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN105227451B (zh) * | 2014-06-25 | 2019-06-21 | 华为技术有限公司 | 一种报文处理方法及装置 |
GB2528061B (en) * | 2014-07-08 | 2021-04-21 | Advanced Risc Mach Ltd | Translating between memory transactions of first type and memory transactions of a second type |
CN104536928A (zh) * | 2014-12-23 | 2015-04-22 | 上海昭赫信息技术有限公司 | 通过多核pcie加速子卡后的数据排序方法 |
CN108337286A (zh) * | 2017-01-20 | 2018-07-27 | 深圳市中兴微电子技术有限公司 | 一种切包方法及装置 |
CN111917656B (zh) * | 2017-07-27 | 2023-11-07 | 超聚变数字技术有限公司 | 传输数据的方法和设备 |
CN109165183A (zh) * | 2018-09-14 | 2019-01-08 | 贵州华芯通半导体技术有限公司 | 外围组件快速互联原子操作硬件实现方法、装置及系统 |
CN113157610B (zh) * | 2021-05-20 | 2023-03-14 | 浙江大华技术股份有限公司 | 数据保存方法及装置、存储介质、电子装置 |
CN114265872B (zh) * | 2022-02-24 | 2022-05-24 | 苏州浪潮智能科技有限公司 | 一种用于总线的互联装置 |
Citations (4)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN1568464A (zh) * | 2001-10-15 | 2005-01-19 | 先进微装置公司 | 计算机系统输入/输出节点的标识及仲裁机制 |
CN101861571A (zh) * | 2007-11-15 | 2010-10-13 | 美光科技公司 | 用于修改存储器存取次序的系统、设备及方法 |
CN102571609A (zh) * | 2012-03-01 | 2012-07-11 | 重庆中天重邮通信技术有限公司 | 快速串行接口pci-e协议数据完成包的重组排序方法 |
CN103049240A (zh) * | 2011-10-13 | 2013-04-17 | 北京同步科技有限公司 | Pci-e设备及其接收数据重排序方法 |
Family Cites Families (1)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US6801976B2 (en) * | 2001-08-27 | 2004-10-05 | Intel Corporation | Mechanism for preserving producer-consumer ordering across an unordered interface |
-
2013
- 2013-10-12 CN CN201310473342.0A patent/CN103532875B/zh active Active
Patent Citations (4)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN1568464A (zh) * | 2001-10-15 | 2005-01-19 | 先进微装置公司 | 计算机系统输入/输出节点的标识及仲裁机制 |
CN101861571A (zh) * | 2007-11-15 | 2010-10-13 | 美光科技公司 | 用于修改存储器存取次序的系统、设备及方法 |
CN103049240A (zh) * | 2011-10-13 | 2013-04-17 | 北京同步科技有限公司 | Pci-e设备及其接收数据重排序方法 |
CN102571609A (zh) * | 2012-03-01 | 2012-07-11 | 重庆中天重邮通信技术有限公司 | 快速串行接口pci-e协议数据完成包的重组排序方法 |
Also Published As
Publication number | Publication date |
---|---|
CN103532875A (zh) | 2014-01-22 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
CN103532875B (zh) | 一种用于pcie应用层接口的重排序方法 | |
EP1775896B1 (en) | Network on chip system employing an Advanced Extensible Interface (AXI) protocol | |
US9785598B2 (en) | USB hubs with galvanic isolation | |
CN101169771B (zh) | 一种axi内部总线的外部接口装置及其数据传输方法 | |
US7606933B2 (en) | Shared memory and high performance communication using interconnect tunneling | |
US20140040527A1 (en) | Optimized multi-root input output virtualization aware switch | |
JP2005228311A (ja) | 開放形コアプロトコルを基盤とするバスシステム | |
CN103077148B (zh) | 一种基于pcie的主机通讯方法和主机 | |
KR101559089B1 (ko) | 장치의 컴포넌트들 간에 메모리 자원들을 공유하기 위한 통신 프로토콜 | |
CN103914427B (zh) | 基于三根物理互连线的集成电路片上通讯方法及装置 | |
CN100479407C (zh) | 一种同步串行接口装置 | |
JP3780419B2 (ja) | データ転送制御装置及び電子機器 | |
CN101655825B (zh) | 一种使用fpga实现lpc-usb双向通信的装置及lpc-usb和usb-lpc数据转换方法 | |
JP6053692B2 (ja) | データ転送装置、データ転送方法およびチップ間通信システム | |
US11714779B2 (en) | NoC relaxed write order scheme | |
Shingare et al. | SPI implementation on FPGA | |
CN1744068B (zh) | 主设备和从设备联合同步的实现方法 | |
CN104750634A (zh) | 读取方法及系统,互联设备控制器 | |
CN104484302A (zh) | 基于usb接口的实现两台主机之间双向通信与控制的系统 | |
TW201214132A (en) | USB transaction translator and an isochronous-in transaction method | |
CN102625105A (zh) | 基于单芯片的多通道视频编解码数据传输方法及装置 | |
CN104518998B (zh) | 一种两个芯片之间进行数据交换的方法 | |
CN100507892C (zh) | 一种适应于串行外围设备接口总线通信方法 | |
CN116795763B (zh) | 基于axi协议的数据分组传输的方法、片上系统和芯片 | |
JP2006113798A (ja) | データ転送システム、受信バッファ装置、データ転送システムの仕様設定方法及び画像形成システム |
Legal Events
Date | Code | Title | Description |
---|---|---|---|
C06 | Publication | ||
PB01 | Publication | ||
C10 | Entry into substantive examination | ||
SE01 | Entry into force of request for substantive examination | ||
TA01 | Transfer of patent application right |
Effective date of registration: 20170905 Address after: 214400 Wuxi City, Jiangyin, Shoushan Road, No. 117 sunshine golden home, room 2, building 401, room Applicant after: Ding Xiangen Address before: 214433 Jiangyin, Wuxi, Chengjiang street, new road, No., No. 9 Applicant before: Jiangsu Huali Network Engineering Co., Ltd. |
|
TA01 | Transfer of patent application right | ||
GR01 | Patent grant | ||
GR01 | Patent grant |