CN101494636B - 一种基于快速io互连技术的数据排序方法及装置 - Google Patents
一种基于快速io互连技术的数据排序方法及装置 Download PDFInfo
- Publication number
- CN101494636B CN101494636B CN 200810000587 CN200810000587A CN101494636B CN 101494636 B CN101494636 B CN 101494636B CN 200810000587 CN200810000587 CN 200810000587 CN 200810000587 A CN200810000587 A CN 200810000587A CN 101494636 B CN101494636 B CN 101494636B
- Authority
- CN
- China
- Prior art keywords
- package
- respond packet
- request
- response
- groups
- 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.)
- Expired - Fee Related
Links
Images
Abstract
本发明公开了一种基于快速IO互连技术的数据排序方法,预先设定三组先入先出队列,用于存储不同优先级的响应包,所述方法包括:以请求包组为单位发送请求包;从目的端接收与所述请求包组对应的响应包组,并按照响应包的优先级和到达源端的先后顺序,依次将所述响应包组的响应包存入三组先入先出队列中;当接收完所述响应包组后,按照传输标识的顺序,依次从所述三组先入先出队列中读取并发送响应包。本发明在使用较少缓冲区资源及耗费较小时延的前提下,有效地校正Rapid IO接口的响应包传输顺序,解决了现有高速数据处理系统中响应包乱序的问题,提高了高速数据处理系统的性能。
Description
技术领域
本发明涉及嵌入式系统的互连技术,尤其涉及一种基于快速IO互连技术的数据排序方法及装置。
背景技术
Rapid IO(快速IO架构)是由Rapid IO Trade Association(Rapid IO行业协会)于2001年12月开发制定的一套应用于芯片级和板级互连的公开的高带宽全双工级联方案,其性能能够达到10Gb/s或者更高。它是低迟延、基于存储器地址的协议,可升级、可靠、支持多重处理并对应用软件透明。
Rapid IO协议的包类型可分为维护包读写、读请求、读响应、写操作等类型。Rapid IO读操作模式:源端发起请求,目的端响应,即读请求以包交换的方式先行由源端发至目的端,目的端将响应包送至源端,从而实现一次完整的操作。
在目前主流的带有Rapid IO接口的CPU中,在Rapid IO接口的发送端通常有4组Buffer(缓冲区),分别对应于发送4种优先级的数据包。Rapid IO协议死锁预防规则规定,“携带响应的包的优先级应至少比相应请求包的优先级高一级”,所以响应包的优先级只能有3种级别:1、2、3。
目的端CPU对于请求包的响应机制是:根据请求包请求的地址和数据长度,将相应数据进行打包生成相应的响应包。由于请求包的字节少,包传送速度高于相应响应包地发送速度,所以在响应包的打包过程中,若低优先级的Buffer填满后,新生成的响应包将存入较高优先级的Buffer中,这将导致顺序在后的响应包的优先级高于顺序在前的响应包。而Rapid IO协议中事务与包传送排序规则规定,"端点处理部件端口的物理层应该保证从处理部件的物理层收到的高优先级的请求事务在低优先级的请求事务之前转发,低优先级的包不能超过高优先级的包"。这样,在响应包传送过程中就会出现如下问题:CPU会先发送顺序在后但优先级高的数据包,再发送顺序在前但优先级低的数据包。
目前,解决这种问题的方法通常是由目的端CPU降低数据打包速度,减缓发送速率,但是在对数据顺序敏感的高速数据处理系统中,发送速率的降低将导致系统性能下降,而速率过快则会出现乱序现象,导致系统出错,从而严重影响Rapid IO接口在高速系统中的应用。
发明内容
鉴于上述的分析,本发明旨在提供一种基于快速IO互连技术的数据排序方法及装置,用以解决现有技术中存在的高速数据处理系统中响应包乱序的问题。
本发明的目的是通过以下技术方案实现的。
本发明提供了一种基于快速IO互连技术的数据排序方法,预先设定三组先入先出队列,用于存储不同优先级的响应包,所述方法包括:
步骤A:以请求包组为单位发送请求包;
步骤B:从目的端接收与所述请求包组对应的响应包组,并按照响应包的优先级和到达源端的先后顺序,依次将所述响应包组的响应包存入三组先入先出队列中;
步骤C:当接收完所述响应包组后,按照传输标识的顺序,依次从所述三组先入先出队列中读取并发送响应包。
进一步地,所述步骤A具体包括:
根据系统的需求,将请求包以组为单位进行划分;
先发送请求包组中的一部分请求包;
当接收到目的端反馈的首个响应包后,将剩余的请求包发送出去。
进一步地,当预设定两组缓冲区单元,每组缓冲区单元包括三组先入先出队列时,所述步骤B具体包括:
对从目的端接收到的与所述请求包组对应的响应包组进行奇偶计数,并采用乒乓操作的方式选择存储所述响应包组用的缓冲区单元;
按照响应包的优先级和到达源端的先后顺序,依次将所述响应包组的响应包存入三组先入先出队列中,同时清空另外一组缓冲区单元。
所述先入先出队列的长度等于请求包组的个数。
本发明还提供了一种基于快速IO互连技术的数据排序装置,包括:
发送模块,用于根据系统的需求,将请求包以组为单位进行划分,并以请求包组为单位发送请求包;
排序模块,用于接收与所述请求包组对应的响应包组,并按照响应包的优先级和到达源端的先后顺序,依次将所述响应包组的响应包存入三组先入先出队列中;
读取模块,用于按照传输标识的顺序,依次从所述三组先入先出队列中读取并发送响应包。
进一步地,所述排序模块具体包括:
奇偶计数器,用于对从目的端接收到的与所述请求包组对应的响应包组进行奇偶计数;
第一选择器,用于根据奇偶计数,选择第一缓冲区单元或第二缓冲区单元来存储所述响应包组;
第一缓冲区单元,用于根据第一选择器的选择结果,与第二缓冲区单元轮流缓存所述响应包组;
第二缓冲区单元,用于根据第一选择器的选择结果,与第一缓冲区单元轮流缓存所述响应包组;
第二选择器,用于将从第一缓冲区单元或第二缓冲区单元得到的响应包组发送给下级数据处理单元。
综上所述,本发明提供了一种基于快速IO互连技术的数据排序方法及装置,在使用较少缓冲区资源及耗费较小时延的前提下,有效地校正Rapid IO接口的响应包传输顺序,解决了现有高速数据处理系统中响应包乱序的问题,提高了高速数据处理系统的性能。
附图说明
图1为本发明实施例所述方法的流程示意图;
图2为本发明实施例中所述排序模块的结构示意图。
具体实施方式
下面结合附图来具体描述本发明的优先实施例,其中,附图构成本申请一部分,并与本发明的实施例一起用于阐释本发明的原理。
首先对结合附图2对本发明实施例所述方法进行详细阐述。
步骤100、预先在源端开辟三组FIFO(First Input First Output,先入先出队列)空间,用于存储三种不同优先级的响应包,每个FIFO的深度为M。
步骤101、源端以组为单位发送请求包;具体的说就是,源端根据系统的需求将请求包以组为单位划分成多个请求包组,每组包含M个请求包。在向目的端发送请求包时,每单位时间内发送一组请求包。发送的过程为:先发送M-N个包,当接收到该组首个响应包后,将剩余的N个请求包发送出去。
步骤102、目的端接收到请求包后,发送相应的响应包。
步骤103、当源端将接收到与其发送的请求包对应的响应包后,按照接收优先级的不同和到达的先后顺序,依次将所述响应包存入不同的FIFO空间中。
步骤104、在源端接收到该组的最后一个响应包时,以优先级为1的FIFO的第一个包的Transaction ID(传输标识)值为基准,按照Transaction ID的顺序,从3个FIFO中读取响应包,发送给下一级数据处理单元进行相应处理。
在上述处理过程中,为了提高效率,本发明实施例采取了乒乓操作的方式。具体的说就是,预先在源端开辟两组缓冲区单元,同时在每组缓冲区单元内开辟三组FIFO空间,用于存储不同的优先级的响应包,每个FIFO的深度为M。
在源端处,对接收到的响应包组进行奇偶计数,以确定乒乓操作时使用的缓冲区单元。比如,当接收到第一组响应包时,记为奇数,并将其存储在第一缓冲区单元;当接收到第二组响应包时,记为偶数,并将其存储在第二缓冲区单元;当接收到第三组响应包时,记为奇数,并将其存储在第一缓冲区单元;以此类推。然后按照响应包的优先级和到达源端的先后顺序,依次将所述响应包组的响应包存入三组先入先出队列中,同时清空另外一组缓冲区单元,并重复执行步骤103和104。本发明通过采用乒乓操作的方式实现了响应包的无缝缓冲和处理。
接下来,对本发明实施例所述装置进行详细阐述。
本发明实施例所述装置具体包括:
发送模块,根据系统的需求,将请求包以组为单位进行划分,并以请求包组为单位发送请求包给目的端;目的端根据接收到的请求包,进行打包生成相应的响应包,并依次将生成的响应包发送出去。
排序模块,接收与所述请求包对应的响应包,并按照响应包的优先级和到达源端的先后顺序,依次将所述响应包组的响应包存入三组先入先出队列中;
读取模块,当接收完一组响应包组后,所述读取模块按照响应包的传输标识的顺序,即依次从所述三组先入先出队列中读取并发送响应包。
这里,为了提高效率,本发明实施例采取了乒乓操作的方式。具体的说就是,预先在源端开辟两组缓冲区单元,同时在每组缓冲区单元内开辟三组FIFO空间,用于存储不同的优先级的响应包,每个FIFO的深度为M,则所述排序模块的结构如图2所示,具体可以包括:
奇偶计数器,用于对从目的端接收到的与所述请求包组对应的响应包组进行奇偶计数;每接收到一组响应包,奇偶计数器进行一次计数。比如,当接收到第一组响应包时,记为奇数,并将其存储在第一缓冲区单元;当接收到第二组响应包时,记为偶数,并将其存储在第二缓冲区单元;当接收到第三组响应包时,记为奇数,并将其存储在第一缓冲区单元;以此类推。
第一选择器,用于根据奇偶计数,选择第一缓冲区单元或第二缓冲区单元来存储所述响应包组;
第一缓冲区单元,用于根据第一选择器的选择结果,与第二缓冲区单元配合工作,轮流缓存所述响应包组;
第二缓冲区单元,用于根据第一选择器的选择结果,与第一缓冲区单元配合工作,轮流缓存所述响应包组;
第二选择器,用于将从第一缓冲区单元或第二缓冲区单元得到的响应包组发送给下级数据处理单元。
所述乒乓操作的具体过程可以为:通过第一选择器将响应包等时分配到两组缓冲区单元,当奇偶计数器为奇数时,将接收到的第一组响应包缓存到第一缓冲区单元;当奇偶计数器由奇数变为偶数时,通过第一选择器的切换,并将接收到的第二组响应包缓存到第二缓冲区单元,同时将第一缓冲区单元缓存的第一组响应包通过第二选择器的选择,送到下级数据处理单元进行相关处理;当奇偶计数器由偶数变为奇数时,通过第一选择器的再次切换,将接收到的第三组响应包缓存到第一缓冲区单元,同时将第二选择器缓存的第二组响应包通过第二选择器的切换,送到下级数据处理单元进行相关处理;以此类推。
当然,本发明并不限于一组或两组缓冲区单元,为了达到快速进行排序的目的,也可以多设置几组缓冲区单元,原理与乒乓操作类似,此处就不一一举例。
综上所述,本发明实施例提供了一种基于快速IO互连技术的数据排序方法及装置,根据Rapid IO规范中“具有相同源ID、相同目的ID、相同优先级且ftype!=8(ftype表示数据包的类型)的包在传递过程中顺序不变”的原则,将各个优先级的响应包分别排序,然后根据Transaction ID的顺序,向下级处理单元送出排序后的响应包。本发明实施例在处理过程中,为提高效率,采用乒乓操作的方式来完成数据的无缝缓冲与处理。
本发明实施例在使用较少缓冲区资源及耗费较小时延的前提下,有效地校正Rapid IO接口的响应包传输顺序,解决了现有高速数据处理系统中响应包乱序的问题,提高了高速数据处理系统的性能。
以上所述,仅为本发明较佳的具体实施方式,但本发明的保护范围并不局限于此,任何熟悉本技术领域的技术人员在本发明揭露的技术范围内,可轻易想到的变化或替换,都应涵盖在本发明的保护范围之内。因此,本发明的保护范围应该以权利要求书的保护范围为准。
Claims (6)
1.一种基于快速IO互连技术的数据排序方法,其特征在于,预先设定三组先入先出队列,用于存储不同优先级的响应包,所述方法包括:
步骤A:以请求包组为单位发送请求包;
步骤B:从目的端接收与所述请求包组对应的响应包组,并按照响应包的优先级和到达源端的先后顺序,依次将所述响应包组的响应包存入三组先入先出队列中;
步骤C:当接收完所述响应包组后,按照传输标识的顺序,依次从所述三组先入先出队列中读取并发送响应包。
2.根据权利要求1所述的方法,其特征在于,所述步骤A具体包括:
根据系统的需求,将请求包以组为单位进行划分;
先发送请求包组中的一部分请求包;
当接收到目的端反馈的首个响应包后,将剩余的请求包发送出去。
3.根据权利要求1所述的方法,其特征在于,当预设定两组缓冲区单元,每组缓冲区单元包括三组先入先出队列时,所述步骤B具体包括:
对从目的端接收到的与所述请求包组对应的响应包组进行奇偶计数,并采用乒乓操作的方式选择存储所述响应包组用的缓冲区单元;
按照响应包的优先级和到达源端的先后顺序,依次将所述响应包组的响应包存入三组先入先出队列中,同时清空另外一组缓冲区单元。
4.根据权利要求1到3中任意一项所述的方法,其特征在于,所述先入先出队列的长度等于请求包组的个数。
5.一种基于快速IO互连技术的数据排序装置,其特征在于,包括:
发送模块,用于根据系统的需求,将请求包以组为单位进行划分,并以请求包组为单位发送请求包;
排序模块,用于接收与所述请求包组对应的响应包组,并按照响应包的优先级和到达源端的先后顺序,依次将所述响应包组的响应包存入三组先入先出队列中;
读取模块,用于按照传输标识的顺序,依次从所述三组先入先出队列中读取并发送响应包。
6.根据权利要求5所述的装置,其特征在于,所述排序模块具体包括:
奇偶计数器,用于对从目的端接收到的与所述请求包组对应的响应包组进行奇偶计数;
第一选择器,用于根据奇偶计数,选择第一缓冲区单元或第二缓冲区单元来存储所述响应包组;
第一缓冲区单元,用于根据第一选择器的选择结果,与第二缓冲区单元轮流缓存所述响应包组;
第二缓冲区单元,用于根据第一选择器的选择结果,与第一缓冲区单元轮流缓存所述响应包组;
第二选择器,用于将从第一缓冲区单元或第二缓冲区单元得到的响应包组发送给下级数据处理单元。
Priority Applications (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN 200810000587 CN101494636B (zh) | 2008-01-23 | 2008-01-23 | 一种基于快速io互连技术的数据排序方法及装置 |
Applications Claiming Priority (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN 200810000587 CN101494636B (zh) | 2008-01-23 | 2008-01-23 | 一种基于快速io互连技术的数据排序方法及装置 |
Publications (2)
Publication Number | Publication Date |
---|---|
CN101494636A CN101494636A (zh) | 2009-07-29 |
CN101494636B true CN101494636B (zh) | 2013-01-16 |
Family
ID=40925043
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
CN 200810000587 Expired - Fee Related CN101494636B (zh) | 2008-01-23 | 2008-01-23 | 一种基于快速io互连技术的数据排序方法及装置 |
Country Status (1)
Country | Link |
---|---|
CN (1) | CN101494636B (zh) |
Families Citing this family (8)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN102929801B (zh) * | 2012-10-25 | 2016-06-22 | 华为技术有限公司 | 一种用于磁盘寻址的方法和装置 |
CN104734873B (zh) * | 2013-12-20 | 2018-04-13 | 深圳市国微电子有限公司 | 一种交换系统及其交换设备中缓冲器的管理方法、系统 |
CN104266657B (zh) * | 2014-09-12 | 2017-08-04 | 海华电子企业(中国)有限公司 | 基于cpu和mic协同计算的最短路径规划并行化方法 |
CN105867844B (zh) * | 2016-03-28 | 2019-01-25 | 北京联想核芯科技有限公司 | 一种命令控制方法及存储设备 |
CN106413000A (zh) * | 2016-09-23 | 2017-02-15 | 东南大学 | 一种基于任意截止时刻包序列的能效数据流传输方法 |
US11023275B2 (en) * | 2017-02-09 | 2021-06-01 | Intel Corporation | Technologies for queue management by a host fabric interface |
CN112328520B (zh) * | 2020-09-30 | 2022-02-11 | 郑州信大捷安信息技术股份有限公司 | 一种pcie设备、基于pcie设备的数据传输方法和系统 |
CN113259267B (zh) * | 2021-06-28 | 2021-11-12 | 江苏省质量和标准化研究院 | 一种社会信用代码的关联信息传送系统与方法 |
Citations (3)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN1585373A (zh) * | 2004-05-28 | 2005-02-23 | 中兴通讯股份有限公司 | 一种乒乓缓冲装置 |
EP1804159A1 (en) * | 2005-12-30 | 2007-07-04 | STMicroelectronics Belgium N.V. | Serial in random out memory |
CN101069161A (zh) * | 2004-12-01 | 2007-11-07 | 索尼计算机娱乐公司 | 调度方法、调度装置和多处理器系统 |
-
2008
- 2008-01-23 CN CN 200810000587 patent/CN101494636B/zh not_active Expired - Fee Related
Patent Citations (3)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN1585373A (zh) * | 2004-05-28 | 2005-02-23 | 中兴通讯股份有限公司 | 一种乒乓缓冲装置 |
CN101069161A (zh) * | 2004-12-01 | 2007-11-07 | 索尼计算机娱乐公司 | 调度方法、调度装置和多处理器系统 |
EP1804159A1 (en) * | 2005-12-30 | 2007-07-04 | STMicroelectronics Belgium N.V. | Serial in random out memory |
Non-Patent Citations (3)
Title |
---|
Interconnect Specification Part 4: Physical Layer 8/16 LP-LVDS Specification,Rev.1.3,06/2005.《RapidIO Interconnect Specification Part 4: Physical Layer 8/16 LP-LVDS Specification,Rev.1.3,06/2005》.2005,正文17-30页、图2-1至2-5. |
RapidIO Trade Association.RapidIO™ |
RapidIO Trade Association.RapidIO™Interconnect Specification Part 4: Physical Layer 8/16 LP-LVDS Specification,Rev.1.3,06/2005.《RapidIO Interconnect Specification Part 4: Physical Layer 8/16 LP-LVDS Specification,Rev.1.3,06/2005》.2005,正文17-30页、图2-1至2-5. * |
Also Published As
Publication number | Publication date |
---|---|
CN101494636A (zh) | 2009-07-29 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
CN101494636B (zh) | 一种基于快速io互连技术的数据排序方法及装置 | |
US11916781B2 (en) | System and method for facilitating efficient utilization of an output buffer in a network interface controller (NIC) | |
US7308526B2 (en) | Memory controller module having independent memory controllers for different memory types | |
USRE38821E1 (en) | Switching ethernet controller | |
US7555579B2 (en) | Implementing FIFOs in shared memory using linked lists and interleaved linked lists | |
US6473428B1 (en) | Multi-threaded, multi-cast switch | |
US9602436B2 (en) | Switching device | |
JP5148707B2 (ja) | 待ち行列形成方法 | |
US7439763B1 (en) | Scalable shared network memory switch for an FPGA | |
WO1997034394A1 (en) | Efficient output-request packet switch and method | |
CN101072176A (zh) | 一种报文处理的方法和系统 | |
CN1543149A (zh) | 网络环境中的流控制 | |
US9596193B2 (en) | Messaging with flexible transmit ordering | |
CN1643872A (zh) | 缓存流数据 | |
US20030174699A1 (en) | High-speed packet memory | |
US8223788B1 (en) | Method and system for queuing descriptors | |
WO2016019554A1 (zh) | 一种队列管理的方法和装置 | |
US20080031262A1 (en) | Load-balanced switch architecture for reducing cell delay time | |
US7568074B1 (en) | Time based data storage for shared network memory switch | |
US7822051B1 (en) | Method and system for transmitting packets | |
US7814182B2 (en) | Ethernet virtualization using automatic self-configuration of logic | |
US20090225665A1 (en) | Method, system, computer program product, and hardware product for ethernet virtualization using an elastic fifo memory to facilitate flow of unknown traffic to virtual hosts | |
US20080181247A1 (en) | Method and apparatus for processing queue in network system | |
CN1522011A (zh) | 动态缓存管理的atm交换装置及其交换方法 | |
CN1079854A (zh) | 无连接服务器 |
Legal Events
Date | Code | Title | Description |
---|---|---|---|
C06 | Publication | ||
PB01 | Publication | ||
C10 | Entry into substantive examination | ||
SE01 | Entry into force of request for substantive examination | ||
C14 | Grant of patent or utility model | ||
GR01 | Patent grant | ||
CF01 | Termination of patent right due to non-payment of annual fee |
Granted publication date: 20130116 Termination date: 20190123 |
|
CF01 | Termination of patent right due to non-payment of annual fee |