一种基于快速io互连技术的数据排序方法及装置的制作方法

文档序号:7682135阅读:225来源:国知局
专利名称:一种基于快速io互连技术的数据排序方法及装置的制作方法
技术领域
本发明涉及嵌入式系统的互连技术,尤其涉及一种基于快速IO互连技术的
数据排序方法及装置。
背景技术
会)于2001年12月开发制定的一套应用于芯片级和板级互连的公开的高带宽 全双工级联方案,其性能能够达到10Gb/s或者更高。它是低迟延、基于存储器 地址的协议,可升级、可靠、支持多重处理并对应用软件透明。
Rapid 10协-汉的包类型可分为维护包读写、读请求、读响应、写#:作等类型。 Rapid IO读操作模式源端发起请求,目的端响应,即读请求以包交换的方式先 行由源端发至目的端,目的端将响应包送至源端,从而实现一次完整的操作。
在目前主流的带有Rapid IO接口的CPU中,在Rapid IO接口的发送端通常有4 组Buffer(緩冲区),分别对应于发送4种优先级的数据包。Rapid IO协议死锁预 防规则^L定,"携带响应的包的优先级应至少比相应请求包的优先级高一级", 所以响应包的优先级只能有3种级别1、 2、 3。
目的端CPU对于请求包的响应机制是根据请求包请求的地址和数据长度, 将相应数据进行打包生成相应的响应包。由于请求包的字节少,包传送速度高 于相应响应包地发送速度,所以在响应包的打包过程中,若低优先级的Buffer 填满后,新生成的响应包将存入较高优先级的Buffer中,这将导致顺序在后的响应包的优先级高于顺序在前的响应包。而Rapid IO协议中事务与包传送排序规则 规定,"端点处理部件端口的物理层应该保证从处理部件的物理层收到的高优先 级的请求事务在低优先级的请求事务之前转发,低优先级的包不能超过高优先 级的包"。这样,在响应包传送过程中就会出现如下问题CPU会先发送顺序在 后但优先级高的数据包,再发送顺序在前但优先级低的数据包。
目前,解决这种问题的方法通常是由目的端CPU降低数据打包速度,减緩 发送速率,但是在对数据顺序敏感的高速数据处理系统中,发送速率的降低将 导致系统性能下降,而速率过快则会出现乱序现象,导致系统出错,从而严重 影响Rapid IO接口在高速系统中的应用。

发明内容
鉴于上述的分析,本发明旨在提供一种基于快速IO互连技术的数据排序方 法及装置,用以解决现有技术中存在的高速数据处理系统中响应包乱序的问题。 本发明的目的是通过以下技术方案实现的。
本发明提供了 一种基于快速10互连技术的数据排序方法,预先设定三组先 入先出队列,用于存储不同优先级的响应包,所述方法包括 步骤A:以请求包组为单位发送请求包;
步骤B:从目的端接收与所述请求包组对应的响应包组,并按照响应包的优 先级和到达源端的先后顺序,依次将所述响应包组的响应包存入三组先入先出 队列中;
步骤C:当接收完所述响应包组后,按照传输标识的顺序,依次从所述三组
先入先出队列中读取并发送响应包。 进一步地,所述步骤A具体包括
根据系统的需求,将请求包以组为单位进行划分;
5先发送请求包组中的 一部分请求包;
当接收到目的端反馈的首个响应包后,将剩余的请求包发送出去。
进一步地,当预设定两组緩冲区单元,每组緩沖区单元包括三组先入先出
队列时,所述步骤B具体包括
对从目的端接收到的与所述请求包对应的响应包组进行奇偶计数,并采用
兵乓操作的方式选4奪存储所述响应包组用的緩冲区单元;
按照响应包的优先级和到达源端的先后顺序,依次将所述响应包组的响应
包存入三组先入先出队列中,同时清空另外一组緩冲区单元。
所述先入先出队列的长度等于请求包组的个数。
本发明还提供了 一种基于快速10互连技术的数据排序装置,包括
发送模块,用于根据系统的需求,将请求包以组为单位进行划分,并以请 求包组为单位发送请求包;
排序模块,用于接收与所述请求包组对应的响应包组,并按照响应包的优 先级和到达源端的先后顺序,依次将所述响应包组的响应包存入三组先入先出 队列中;
读取模块,用于按照传输标识的顺序,依次从所述三组先入先出队列中读 取并发送响应包。
进一步地,所述排序模块具体包括
奇偶计数器,用于对从目的端接收到的与所述请求包对应的响应包组进行 奇偶计数;
第一选择器,用于根据奇偶计数,选择第一緩冲区单元或第二緩冲区单元 来存储所述响应包组;
第一緩沖区单元,用于根据第一选择器的选择结果,与第二緩沖区单元轮
6流緩存所述响应包组;
第二緩冲区单元,用于根据第一选择器的选择结果,与第一緩沖区单元轮
流緩存所述响应包组;
第二选择器,用于将从第一緩冲区单元或第二緩冲区单元得到的响应包组 发送给下级数据处理单元。
综上所述,本发明提供了一种基于快速IO互连技术的数据排序方法及装 置,在使用较少緩冲区资源及耗费较小时延的前提下,有效地校正Rapid IO接 口的响应包传输顺序,解决了现有高速数据处理系统中响应包乱序的问题,提 高了高速数据处理系统的性能。


图1为本发明实施例所述方法的流程示意图2为本发明实施例中所述排序模块的结构示意图。
具体实施例方式
下面结合附图来具体描述本发明的优先实施例,其中,附图构成本申请一 部分,并与本发明的实施例一起用于阐释本发明的原理。
首先对结合附图2对本发明实施例所述方法进行详细阐述。
步骤100、预先在源端开辟三组FIFO (First Input First Output ,先入先出 队列)空间,用于存储三种不同优先级的响应包,每个FIFO的深度为M。
步骤IOI、源端以組为单位发送请求包;具体的说就是,源端根据系统的需 求将请求包以组为单位划分成多个请求包组,每组包含M个请求包。在向目的 端发送请求包时,每单位时间内发送一组请求包。发送的过程为先发送M-N 个包,当接收到该组首个响应包后,将剩余的N个请求包发送出去。步骤102、目的端接收到请求包后,发送相应的响应包。
步骤103、当源端将接收到与其发送的请求包对应的响应包后,按照接收优 先级的不同和到达的先后顺序,依次将所述响应包存入不同的FIFO空间中。
步骤104、在源端4^收到该组的最后一个响应包时,以优先级为1的FIFO 的第 一个包的Transaction ID (传输标识)值为基准,按照Transaction ID的顺序, 从3个FIFO中读取响应包,发送给下一级数据处理单元进行相应处理。
在上述处理过程中,为了提高效率,本发明实施例采取了兵乓操作的方式。 具体的说就是,预先在源端开辟两组緩冲区单元,同时在每组緩沖区单元内开 辟三组FIFO空间,用于存^f诸不同的优先级的响应包,每个FIFO的深度为M。
在源端处,对接收到的响应包组进行奇偶计数,以确定乒乓操作时使用的 緩冲区单元。比如,当接收到第一组响应包时,记为奇数,并将其存储在第一 緩冲区单元;当接收到第二组响应包时,记为偶数,并将其存储在第二緩冲区 单元;当接收到第三组响应包时,记为奇数,并将其存储在第一緩冲区单元; 以此类推。然后按照响应包的优先级和到达源端的先后顺序,依次将所述响应 包组的响应包存入三组先入先出队列中,同时清空另外一组緩冲区单元,并重 复执行步骤103和104。本发明通过采用乒乓才喿作的方式实现了响应包的无缝緩 沖和处理。
接下来,对本发明实施例所述装置进行详细阐述。 本发明实施例所述装置具体包括
发送模块,根据系统的需求,将请求包以组为单位进行划分,并以请求包 组为单位发送请求包给目的端;目的端根据接收到的请求包,进行打包生成相 应的响应包,并依次将生成的响应包发送出去。
排序模块,接收与所述请求包对应的响应包,并按照响应包的优先级和到达源端的先后顺序,依次将所述响应包组的响应包存入三组先入先出队列中;
读取模块,当接收完一组响应包组后,所述读取模块按照响应包的传输标 识的顺序,即依次/人所述三组先入先出队列中读取并发送响应包。
这里,为了提高效率,本发明实施例釆取了乒乓操作的方式。具体的说就 是,预先在源端开辟两组缓冲区单元,同时在每组緩沖区单元内开辟三组FIFO 空间,用于存储不同的优先级的响应包,每个FIFO的深度为M,则所述排序模 块的结构如图2所示,具体可以包括
奇偶计数器,用于对从目的端接收到的与所述请求包对应的响应包组进行 奇偶计数;每接收到一组响应包,奇偶计数器进行一次计数。比如,当接收到 第一组响应包时,记为奇数,并将其存储在第一緩冲区单元;当接收到第二组 响应包时,记为偶数,并将其存储在第二緩沖区单元;当接收到第三组响应包 时,记为奇数,并将其存储在第一緩冲区单元;以此类推。
第一选择器,用于根据奇偶计数,选择第一緩沖区单元或第二緩冲区单元 来存储所述响应包组;
第一緩沖区单元,用于根据第一选择器的选择结果,与第二緩冲区单元配 合工作,轮流緩存所述响应包组;
第二緩冲区单元,用于根据第一选择器的选择结果,与第一緩沖区单元配 合工作,轮流緩存所述响应包组;
第二选择器,用于将从第 一緩冲区单元或第二緩沖区单元得到的响应包组 发送给下级数据处理单元。
所述兵乓操作的具体过程可以为通过第一选择器将响应包等时分配到两 组緩沖区单元,当奇偶计数器为奇数时,将接收到的第一组响应包緩存到第一緩冲区单元;当奇偶计数器由奇数变为偶数时,通过第一选择器的切换,并将 接收到的第二组响应包緩存到第二緩冲区单元,同时将第 一緩冲区单元緩存的 第一组响应包通过第二选择器的选择,送到下级数据处理单元进行相关处理; 当奇偶计数器由偶数变为奇数时,通过第一选择器的再次切换,将接收到的第 三组响应包緩存到第一緩沖区单元,同时将第二选择器緩存的第二组响应包通 过第二选择器的切换,送到下级数据处理单元进行相关处理;以此类推。
当然,本发明并不限于一组或两组緩沖区单元,为了达到快速进行排序的 目的,也可以多设置几组緩冲区单元,原理与乒乓操作类似,此处就不——举 例。
综上所述,本发明实施例提供了 一种基于快速IO互连技术的数据排序方法 及装置,根据Rapid 10规范中"具有相同源ID、相同目的ID、相同优先级且 ftypeN8 (ftype表示数据包的类型)的包在传递过程中顺序不变"的原则,将各 个优先级的响应包分别排序,然后根据Transaction ID的顺序,向下级处理单元 送出排序后的响应包。本发明实施例在处理过程中,为提高效率,采用乒乓操 作的方式来完成lt据的无缝緩冲与处理。
本发明实施例在使用较少緩冲区资源及耗费较小时延的前提下,有效地校 正Rapid IO接口的响应包传输顺序,解决了现有高速数据处理系统中响应包乱 序的问题,提高了高速数据处理系统的性能。
以上所述,仅为本发明较佳的具体实施方式
,但本发明的保护范围并不局 限于此,任何熟悉本技术领域的技术人员在本发明揭露的技术范围内,可轻易 想到的变化或替换,都应涵盖在本发明的保护范围之内。因此,本发明的保护 范围应该以权利要求书的保护范围为准。
权利要求
1、一种基于快速IO互连技术的数据排序方法,其特征在于,预先设定三组先入先出队列,用于存储不同优先级的响应包,所述方法包括步骤A以请求包组为单位发送请求包;步骤B从目的端接收与所述请求包组对应的响应包组,并按照响应包的优先级和到达源端的先后顺序,依次将所述响应包组的响应包存入三组先入先出队列中;步骤C当接收完所述响应包组后,按照传输标识的顺序,依次从所述三组先入先出队列中读取并发送响应包。
2、 根据权利要求1所述的方法,其特征在于,所述步骤A具体包括根据系统的需求,将请求包以组为单位进行划分; 先发送请求包组中的 一部分请求包;当接收到目的端反馈的首个响应包后,将剩余的请求包发送出去。
3、 根据权利要求1所述的方法,其特征在于,当预设定两组緩冲区单元, 每组緩沖区单元包括三组先入先出队列时,所述步骤B具体包括对从目的端接收到的与所述请求包对应的响应包组进行奇偶计数,并采用兵乓操作的方式选择存储所述响应包组用的緩冲区单元;按照响应包的优先级和到达源端的先后顺序,依次将所述响应包组的响应包存入三组先入先出队列中,同时清空另外一组緩冲区单元。
4、 根据权利要求1到3中任意一项所述的方法,其特征在于,所述先入先 出队列的长度等于请求包组的个数。
5、 一种基于快速IO互连技术的数据排序装置,其特征在于,包括 发送模块,用于根据系统的需求,将请求包以组为单位进行划分,并以请求包组为单位发送请求包;排序模块,用于接收与所述请求包组对应的响应包组,并按照响应包的优 先级和到达源端的先后顺序,依次将所述响应包组的响应包存入三组先入先出 队列中;读取模块,用于按照传输标识的顺序,依次从所述三组先入先出队列中读 取并发送响应包。
6、根据权利要求5所述的装置,其特征在于,所述排序模块具体包括 奇偶计数器,用于对从目的端接收到的与所述请求包对应的响应包组进行 奇偶计数;第一选择器,用于根据奇偶计数,选择第一緩冲区单元或第二緩冲区单元 来存储所述响应包组;第一緩沖区单元,用于根据第一选择器的选择结果,与第二緩冲区单元轮 流緩存所述响应包组;第二緩沖区单元,用于根据第一选择器的选择结果,与第一緩冲区单元轮 流緩存所述响应包组;第二选择器,用于将从第一緩冲区单元或第二緩冲区单元得到的响应包组 发送给下级数据处理单元。
全文摘要
本发明公开了一种基于快速IO互连技术的数据排序方法,预先设定三组先入先出队列,用于存储不同优先级的响应包,所述方法包括以请求包组为单位发送请求包;从目的端接收与所述请求包组对应的响应包组,并按照响应包的优先级和到达源端的先后顺序,依次将所述响应包组的响应包存入三组先入先出队列中;当接收完所述响应包组后,按照传输标识的顺序,依次从所述三组先入先出队列中读取并发送响应包。本发明在使用较少缓冲区资源及耗费较小时延的前提下,有效地校正Rapid IO接口的响应包传输顺序,解决了现有高速数据处理系统中响应包乱序的问题,提高了高速数据处理系统的性能。
文档编号H04L29/06GK101494636SQ20081000058
公开日2009年7月29日 申请日期2008年1月23日 优先权日2008年1月23日
发明者刚 刘, 慧 马 申请人:中兴通讯股份有限公司
网友询问留言 已有0条留言
  • 还没有人留言评论。精彩留言会获得点赞!
1