CN101515841B - 一种基于RapidIO协议的数据包传输的方法、设备和系统 - Google Patents
一种基于RapidIO协议的数据包传输的方法、设备和系统 Download PDFInfo
- Publication number
- CN101515841B CN101515841B CN2009100811509A CN200910081150A CN101515841B CN 101515841 B CN101515841 B CN 101515841B CN 2009100811509 A CN2009100811509 A CN 2009100811509A CN 200910081150 A CN200910081150 A CN 200910081150A CN 101515841 B CN101515841 B CN 101515841B
- Authority
- CN
- China
- Prior art keywords
- rapidio
- bag
- short
- data
- group
- 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
Images
Landscapes
- Data Exchanges In Wide-Area Networks (AREA)
Abstract
本发明公开了一种基于RapidIO协议的数据包传输的方法、设备和系统,属于通信技术领域,所述方法包括:接收发送设备发送的RapidIO组包,所述RapidIO组包的有效数据由无缝隙地存放的至少两个RapidIO短包的数据信息组成;获取所述RapidIO组包中的所述RapidIO短包的数据信息;根据所述RapidIO短包的数据信息将所述RapidIO短包存储在端点存储器。所述接收设备包括:接收模块、获取模块和存储模块;所述发送设备包括:获取模块、组合模块和发送模块。所述系统包括:发送设备和接收设备。本发明实施例通过将多个RapidIO短包组成RapidIO组包进行传输,可以有效的缩短大部分RapidIO短包的传输时延,同时提高系统的带宽利用率,进而提高了系统的性能。
Description
技术领域
本发明涉及通信技术领域,特别涉及一种基于RapidIO协议的数据包传输的方法、设备和系统。
背景技术
RapidIO协议是一个数据传输效率高、实时性好,具有较小的软件耦合性,高速接口的协议。RapidIO协议主要包括3层:物理层、传输层和逻辑层,在利用RapidIO协议传输数据时,用户数据从逻辑层接口传递进来,再经过传输层和物理层,经过每个层时,都要经过数据的封装、打包,最终从物理层接口传送出去。
RapidIO协议规定数据包中有效数据的长度不大于256个字节,最多增加20个字节的附加信息,经过封装后,数据包中包括有效数据和数据封装打包时增加的附加信息,数据包总长最大为276个字节。由于每个数据包中都包括有效数据和附加信息,因此数据包的长度不同,传输效率也不同。如下表所示为不同包长度时RapidIO协议的带宽利用率。
数据长度(字节) | 包长度(字节) | 带宽利用率 | 带宽利用率 |
4 | 24 | 16% | 13% |
32 | 52 | 61% | 49% |
256 | 276 | 92% | 74% |
从上表可以看出,在利用RapidIO协议传输数据时,用户数据包的长度越短,带宽利用率越低;因此,单位时间内传输的短数据包的数量越大,有效带宽的损失也越大。
RapidIO在逻辑层封装数据包时,插入数据包的地址信息和长度信息。当对端的RapidIO接口收到数据包后,会解析出这两个信息,并根据这两个信息将数据包写入端口存储器中。
在现有技术中,在进行逻辑层封装时,RapidIO分别对各个数据进行打包并传输,数据包到达接收设备后,RapidIO模块将附加信息去除,将有效数据依次写入端点存储器中。
在对现有技术进行研究后,发明人发现:
在现有技术中,数据包中的有效数据越少,同时系统传输的这种短的数据包越多,则系统带宽的浪费也越多。按照RapidIO协议的标准应用,此时的RapidIO的带宽会受到很大的影响,造成系统性能的下降。
发明内容
为了在RapidIO系统中缩短短数据包的传输时延并提高带宽利用率,本发明实施例提供了一种基于RapidIO协议的数据包传输的方法、设备和系统,所述技术方案如下:
一种基于RapidIO协议的数据包传输的方法,所述方法包括:
接收发送设备发送的预设长度的RapidIO组包,所述RapidIO组包的有效数据由无缝隙地存放的至少两个RapidIO短包的数据信息组成;
获取所述RapidIO组包中的所述RapidIO短包的数据信息;
根据所述RapidIO短包的数据信息将所述RapidIO短包存储在端点存储器中。
一种基于RapidIO协议的数据包传输的方法,所述方法包括:
获取RapidIO短包的数据信息;
依次将所述RapidIO短包的数据信息无缝隙的存放在预设长度的RapidIO组包中,所述RapidIO组包的有效数据由无缝隙地存放的至少两个RapidIO短包的数据信息组成;
向接收设备发送所述RapidIO组包。
一种接收设备,所述接收设备包括:
接收模块,用于接收发送设备发送的预设长度的RapidIO组包,所述RapidIO组包的有效数据由无缝隙地存放的至少两个RapidIO短包的数据信息组成;
获取模块,用于获取所述RapidIO组包中的所述RapidIO短包的数据信息;
存储模块,用于根据所述RapidIO短包的数据信息将所述RapidIO短包存储在端点存储器中。
一种发送设备,所述发送设备包括:
获取模块,用于获取RapidIO短包的数据信息;
组合模块,用于依次将所述RapidIO短包的数据信息无缝隙的存放在预设长度的RapidIO组包中,所述RapidIO组包的有效数据由无缝隙地存放的至少两个RapidIO短包的数据信息组成;
发送模块,用于向接收设备发送所述RapidIO组包。
一种RapidIO系统,所述系统包括:
发送设备,用于获取RapidIO短包的数据信息,依次将所述RapidIO短包的数据信息无缝隙的存放在预设长度的RapidIO组包中,并向接收设备发送所述RapidIO组包,所述RapidIO组包的有效数据由无缝隙地存放的至少两个RapidIO短包的数据信息组成;
接收设备,用于接收发送设备发送的预设长度的RapidIO组包,获取所述RapidIO组包中的所述RapidIO短包的数据信息,并根据所述RapidIO短包的数据信息将所述RapidIO短包存储在端点存储器中。
本发明实施例通过将多个RapidIO短包组成RapidIO组包进行传输,可以有效的缩短大部分RapidIO短包的传输时延,同时提高系统的带宽利用率,进而提高了系统的性能。
附图说明
为了更清楚地说明本发明实施例或现有技术中的技术方案,下面将对实施例描述中所需要使用的附图作简单地介绍,显而易见地,下面描述中的附图仅仅是本发明的一些实施例,对于本领域普通技术人员来讲,在不付出创造性劳动性的前提下,还可以根据这些附图获得其他的附图。
图1是本发明实施例1提供的RapidIO短包组合成RapidIO组包的示意图;
图2是本发明实施例1提供的基于RapidIO协议的数据包传输的方法流程图;
图3是本发明实施例1提供的逻辑处理单元的结构图;
图4是本发明实施例2提供的RapidIO短包组合成RapidIO组包的示意图;
图5是本发明实施例2提供的基于RapidIO协议的数据包传输的方法流程图;
图6是本发明实施例3提供的基于RapidIO协议的数据包传输的方法流程图;
图7是本发明实施例4提供的接收设备的结构示意图;
图8是本发明实施例4提供的发送设备的结构示意图;
图9是本发明实施例4提供的RapidIO系统的结构示意图。
具体实施方式
下面将结合本发明实施例中的附图,对本发明实施例中的技术方案进行清楚、完整地描述,显然,所描述的实施例仅仅是本发明一部分实施例,而不是全部的实施例。基于本发明中的实施例,本领域普通技术人员在没有作出创造性劳动前提下所获得的所有其他实施例,都属于本发明保护的范围。
实施例1
本发明实施例提供了一种基于RapidIO协议的数据包传输的方法,在本发明实施例的应用场景中,所有RapidIO短包的有效数据长度都是固定值,如4字节,在该应用场景中,将多个数据包组成长包进行传输,以提高带宽利用率。
完整的RapidIO数据包包含数据封装时增加的负载信息、数据包的有效数据、以及数据包的地址信息和长度信息等信息。可以理解,负载信息是数据封装打包时增加的多余负载,可以认为是无效数据。在本发明实施例中,在将多个RapidIO短包组成长包的过程中,仅将RapidIO短包的数据信息无缝隙的存放在组成的长包中,其中,RapidIO短包的数据信息由该RapidIO短包的地址信息和有效数据组成,不包括负载信息。参见图1为RapidIO短包组成长包的示意图,在该图中,Data1、Data2和Data3等表示的是RapidIO短包的有效数据,A1、A2和A3等表示的是RapidIO短包的地址信息。
在本发明实施例中,在组成长包时,将多个RapidIO短包的数据信息无缝隙的存储在长包中,即仅将RapidIO短包的地址信息和有效数据依次存放在组成的长包中,一个RapidIO短包的有效数据的前面存放相应的地址信息,并且相邻的RapidIO短包的数据信息是无缝隙存储的,即相邻的RapidIO短包的数据信息之间没有空闲数据。每个RapidIO短包的数据信息都是组成的长包的有效数据的一部分。
在本实施例中,将需要组合的短数据包称为RapidIO短包,将RapidIO短包组合成的长包称为RapidIO组包,RapidIO短包和RapidIO组包都可以视为一种 RapidIO数据包,可见RapidIO组包的有效数据是由至少两个RapidIO短包的数据信息组成。
参见图2,本发明实施例提供的方法具体步骤如下:
201:发送设备在发送数据包时,获取所有需要发送的RapidIO短包的有效数据和地址信息。
202:发送设备在预设长度的RapidIO组包中,依次将RapidIO短包的有效数据和地址信息无缝隙的存放在RapidIO组包中,直至该RapidIO组包中不能存放一个RapidIO短包的地址信息和有效数据为止。按照相同的方法将所有需要组合的RapidIO短包进行RapidIO组包处理。
根据协议的要求,RapidIO数据包的有效数据的长度不超过256字节,即64个word。优选的,本发明实施例可以选择有效数据长度为256个字节的RapidIO组包,将多个RapidIO短包拼接成有效数据长度为256字节的RapidIO组包后再进行传输。以4字节的RapidIO短包组成有效数据长度为256字节的RapidIO组包为例进行说明,该RapidIO组包的格式如表1所示:
地址 | 数据 |
0 | 第1个包的实际地址 |
1 | 第1个包的实际数据 |
2 | 第2个包的实际地址 |
3 | 第2个包的实际数据 |
。。。 | |
62 | 第32个包的实际地址 |
63 | 第32个包的实际数据 |
表1
在该有效数据长度为256字节的RapidIO组包中,偶地址中存放的是RapidIO短包的地址信息,该偶地址的下一个奇地址中存放的是该RapidIO短包的有效数据。在上述有效数据长度为256字节的RapidIO组包格式中,RapidIO短包的地址信息占用1word的空间,RapidIO短包的有效数据也占用1word空间。因此最多可以将32个4字节的RapidIO短包组成一个有效数据长度为256字节的RapidIO组包。
203:由发送设备将上述组合成的RapidIO组包发送到数据包的接收设备。
204:接收设备接收由RapidIO短包拼接成的RapidIO组包,可以理解这里,是由RapidIO短包的有效数据和地址信息拼接成RapidIO短包数据信息,RapidIO组包的有效数据就是由RapidIO短包数据信息组成。
205:接收设备先对该RapidIO组包进行解包处理,即获取RapidIO短包的地址信息和有效数据,
具体的,仍以4字节的RapidIO短包组成有效数据长度为256字节的RapidIO组包为例进行说明,接收设备在接收到有效数据长度为256字节的RapidIO组包后,先进行解包处理:在RapidIO组包的有效数据中,依次获取RapidIO组包中奇地址数据和偶地址数据,将偶地址数据识别为RapidIO短包的地址信息,将该偶地址下一个奇地址中的数据识别为该RapidIO短包的有效数据,
206:接收设备根据每个RapidIO短包的地址信息将每个RapidIO短包的有效数据写入端点存储器中。
此外,本发明实施例在上述数据包传输的基础上,还可以进一步的扩展,使得系统可以对RapidIO短包进行RapidIO组包处理并传送,同时也可以按照正常的方法处理未经RapidIO组包处理的数据包。
该扩展方法为:在数据包的发送设备和接收设备进行约定,将端点存储器中某一固定地址空间作为读写RapidIO组包数据的专用空间,比如,将端点存储器地址空间中的Addr0-Addr31作为读写RapidIO组包数据的专用地址空间。发送设备在发送RapidIO组包时,访问的地址空间是端点存储器的Addr0-Addr31地址;接收设备在接收数据包时,也通过端点存储器的Addr0-Addr31地址接收RapidIO组包,即接收数据包时,如果访问的是端点存储器的Addr0-Addr31以外的地址空间时,则判定接收到的数据包不是RapidIO组包,按照正常接收数据包的方法处理接收到的数据包;如果访问的是端点存储器的Addr0-Addr31的地址空间时,则认为接收到数据包为RapidIO组包,按照RapidIO组包的处理方法进行相应处理。
优选的,本发明实施例在处理4字节RapidIO短包的数据信息(即有效数据和地址信息)组成的RapidIO组包时,在数据包到达端点存储器之前添加一个逻辑处理单元对RapidIO组包进行处理,该逻辑处理单元的结构图如图3所示。根据该逻辑处理单元的逻辑图,可以获知该逻辑处理单元的功能为:当端点存储器被访问Addr0-Addr32的地址空间,每当地址为偶地址,且写使能有效 时,则将当前的数据锁存到寄存器Addr_reg中,作为地址保留。当地址为奇地址,且写使能有效时,将当前的数据作为有效数据输出,同时将前一个时钟周期保存的Addr_reg作为地址信息输出。由于外部都是将数据连续地,从低到高地写入的,因此,前一个偶地址的数据为地址信息,后一个奇地址的数据为有效数据,相当于2个节拍写一个RapidIO短包的有效数据到端点存储器中。当端点存储器被访问Addr0~Addr31以外的数据空间时,则该模块会直接将数据包进行透传处理,即不对数据包做任何处理,直接写入到端点存储器中。
本发明实施例通过将多个RapidIO短包组成长包进行传输,可以有效的缩短大部分RapidIO短包的传输时延,并提高系统的带宽利用率,进而提高了系统的性能。同时可以对数据包的传输方式进行灵活扩展,在数据包RapidIO短包较多时,对较多的RapidIO短包进行RapidIO组包处理,在RapidIO短包较少时按照正常方式处理,在提高了系统带宽利用率的同时,也不会影响正常数据包的传输。
实施例2
本发明实施例提供了一种基于RapidIO协议的数据包传输的方法,与实施例1类似,在传送多个固定长度的RapidIO短包时,仍然采用将多个短数据包组成长的RapidIO组包再进行发送的方法。
实施例1针对所有RapidIO短包的长度都是固定值的场景,不能支持RapidIO短包长度不固定的应用场景。在本发明实施例中,各个RapidIO短包的长度可以各不相同,在将多个RapidIO短包组成长的RapidIO组包的过程中,除了将RapidIO短包的有效数据和地址信息存放在组成的长包中,还将该RapidIO短包的长度值也存放在RapidIO组包中。
在本发明实施例中,在将多个RapidIO短包组成长包的过程中,仅将RapidIO短包的数据信息无缝隙的存放在组成的长包中,其中,RapidIO短包的数据信息由该RapidIO短包的地址信息、长度信息和有效数据组成,不包括负载信息。这里相对于实施例1,本实施例中的数据信息同样不包括RapidIO短包的负载信息,但多了RapidIO短包的长度信息,参见图4为RapidIO短包组成长包的示意图,在该图中,Data1、Data2和Data3等表示的是RapidIO短包的有效数据,L1、L2和L3等表示的是RapidIO短包的长度信息,A1、A2和A3等表示的是 RapidIO短包的地址信息。
在本发明实施例中,在组成RapidIO组包时,将多个RapidIO短包的数据信息无缝隙的存储在RapidIO组包中,即仅将RapidIO短包的地址信息、长度信息和有效数据依次存放在RapidIO组包中,一个RapidIO短包的地址信息后存放该RapidIO短包的长度信息和有效数据,并且相邻的RapidIO短包的数据信息是无缝隙存储的,即相邻的RapidIO短包的数据信息之间没有空闲数据。每个RapidIO短包的数据信息都是RapidIO组包的有效数据的一部分。
参见图5,本发明实施例提供的方法具体步骤如下:
501:发送设备在发送数据包时,获取所有需要发送的RapidIO短包的地址信息、长度信息和有效数据;
502:发送设备在预设长度的RapidIO组包中,依次将该RapidIO短包的地址信息、长度信息和有效数据无缝隙的存放在RapidIO组包中,直至该RapidIO组包中不能存放一个RapidIO短包的地址信息、长度信息和有效数据为止。按照相同的方法将所有需要组合的RapidIO短包进行RapidIO组包处理。
根据协议的要求,RapidIO数据包的有效数据长度不超过256字节,因此可以将多个RapidIO短包拼接成有效数据长度为256字节以内的RapidIO组包后再进行传输。在该RapidIO组包中,依次存放的RapidIO短包的地址信息、长度信息和有效数据,其中,RapidIO短包的地址信息和长度信息占用1word的空间,而不同RapidIO短包的有效数据占用的空间各不相同。因此每个RapidIO组包所存放的RapidIO短包也是不确定的。
503:由发送设备将上述组合成的RapidIO组包发送到数据包的接收设备。
504:接收设备接收RapidIO短包拼接成的RapidIO组包。
505:接收设备对该RapidIO组包进行解包处理,即获取RapidIO短包的地址信息、长度信息,并进一步的获取该RapidIO短包的有效数据,
具体的,在获取了RapidIO组包中的RapidIO短包的长度信息后,首先根据该长度信息获取该RapidIO短包的长度,然后在RapidIO组包中存放长度信息后面的数据空间中,提取出与该RapidIO短包长度相同的数据,则提取出的该数据即该RapidIO短包的有效数据。
506:接收设备根据每个RapidIO短包的地址信息将每个RapidIO短包的有效数据写入自身的存储器中。
本发明实施例也可以进行扩展,使得系统可以同时进行RapidIO组包和正常包的处理,与实施例1的扩展方法相同,在本发明实施例中,也在端点存储器中,设置传送RapidIO组包数据的专用地址空间,在对当前数据包进行处理时,如果访问的是端点存储器的专用地址空间,则按照上述处理RapidIO组包的方法对当前数据包进行处理;如果访问的是端点存储器的专用地址空间以外的地址空间,则按照处理正常数据包的方法对当前数据包进行处理。
本发明实施例通过将多个RapidIO短包组成长包进行传输,可以有效的缩短大部分RapidIO短包的传输时延,并提高系统的带宽利用率,进而提高了系统的性能。并且解决方案可以灵活的进行扩展,在数据包RapidIO短包较多时进行RapidIO组包处理,在RapidIO短包较少时按照正常方式处理,在提高系统带宽利用率的同时,也不会影响正常的使用。
实施例3
本发明实施例提供了一种基于RapidIO协议的数据包传输的方法,应用于RapidIO短包的长度比较固定的应用场景,比如系统中只包含三种长度的RapidIO短包。在本发明实施例中,仍然采用将多个短数据包组成长的RapidIO组包再进行发送的方法,但本发明实施例采用了如下的方法以使得RapidIO组包中不用携带RapidIO短包的地址信息和长度信息。
在发送设备和接收设备处约定,固定每个RapidIO短包在RapidIO组包中的存储位置。比如系统中只包含三种长度的RapidIO短包,分别为6字节、12字节和24字节。则预先约定,在进行RapidIO组包时,从RapidIO组包的起始地址开始,依次无缝隙的存放各种RapidIO短包的有效数据,如存放的第一个RapidIO短包的有效数据为6字节的RapidIO短包,起始地址为RapidIO组包的起始地址;存放的第二个RapidIO短包的有效数据为12字节的RapidIO短包,起始地址为“RapidIO组包的起始地址+6字节”;存放的第三个RapidIO短包的有效数据为24字节的RapidIO短包,起始地址为“RapidIO组包的起始地址+18字节”;存放的第四个RapidIO短包的有效数据为6字节的RapidIO短包,起始地址为“RapidIO组包的起始地址+48字节”;按照此种方法,将多个RapidIO短包的有效数据依次无缝隙的存放在RapidIO组包中。
可见本实施例3中RapidIO短包的数据信息可以只理解为RapidIO短包的有 效数据,当然其不包括RapidIO短包的负载信息。
本发明实施例3通过将多个RapidIO短包的数据信息组成长包的有效数据进行传输,也可以有效的缩短大部分RapidIO短包的传输时延,并提高系统的带宽利用率,进而提高了系统的性能。并且解决方案可以灵活的进行扩展,在数据包RapidIO短包较多时进行RapidIO组包处理,在RapidIO短包较少时按照正常方式处理,在提高系统带宽利用率的同时,也不会影响正常的使用
参见图6,本发明实施例提供的方法具体步骤如下:
601:发送设备在发送数据包时,获取所有需要发送的RapidIO短包的有效数据。
602:发送设备在预设长度的RapidIO组包中,依次将该RapidIO短包的有效数据无缝隙的存放在RapidIO组包中,直至该RapidIO组包中不能存放一个RapidIO短包的有效数据为止。按照相同的方法将所有需要组合的RapidIO短包的有效数据进行RapidIO组包处理。
603:由发送设备将上述组合成的RapidIO组包发送到数据包的接收设备。
604:接收设备接收RapidIO短包拼接成的RapidIO组包。
605:接收设备对该RapidIO组包进行解包处理,即按照预设的RapidIO短包数据存储位置从该RapidIO组包中获取RapidIO短包的有效数据;
具体的,以系统传输6字节、12字节和24字节的RapidIO短包为例进行说明,接收设备在接收到RapidIO组包后,就可以直接从RapidIO组包的起始地址处获取第一个RapidIO短包的有效数据,从“RapidIO组包的起始地址+6字节”的地址处获取第二个12字节RapidIO短包的有效数据,从“RapidIO组包的起始地址+18字节”的地址处获取第三个24字节RapidIO短包的有效数据;从“RapidIO组包的起始地址+48字节”的地址处获取第四个6字节RapidIO短包的有效数据;以此方法获取RapidIO组包中的所有RapidIO短包的数据。然后,接收端按照预设的策略,将第一个RapidIO短包发送到端点存储器的地址A中进行存储;将第二个RapidIO短包发送到地址B中进行存储;将第三个RapidIO短包发送到地址C中进行存储,其中,存储RapidIO短包的地址A、地址B和地址C是预先约定的,可以是端点存储器中的任意地址。接收端按照上述的方法将所有RapidIO短包都存储到端点存储器中。
606:接收设备根据RapidIO组包的地址信息和RapidIO短包在RapidIO组 包中的存储位置,依次将每个RapidIO短包的有效数据写入自身的存储器中。
具体的,在将RapidIO短包数据写入存储器时,首先根据RapidIO组包的地址信息将RapidIO组包中的第一个RapidIO短包的有效数据写入自身的存储器中;然后,将RapidIO组包的地址信息加上第一个RapidIO短包的长度作为第二个RapidIO短包的存放地址,并按照该存放地址将第二个RapidIO短包的有效数据写入自身的存储器中;将RapidIO组包的地址信息加上第一个RapidIO短包和第二个RapidIO短包的长度作为第三个RapidIO短包的存放地址,并按照该存放地址将第三个RapidIO组包写入自身的存储器中,以此方法直至将RapidIO组包中所有RapidIO短包的有效数据都写入自身的存储器。
本发明实施例也可以进行扩展,使得系统可以同时进行RapidIO组包和正常包的处理,与实施例2的扩展方法相同,在本发明实施例中,也在端点存储器中,设置传送RapidIO组包数据的专用地址空间,在对当前数据包进行处理时,如果访问的是端点存储器的专用地址空间,则按照上述处理RapidIO组包的方法对当前数据包进行处理;如果访问的是端点存储器的专用地址空间以外的地址空间,则按照处理正常数据包的方法对当前数据包进行处理。
本发明实施例通过将多个RapidIO短包组成长包进行传输,可以有效的缩短大部分RapidIO短包的传输时延,并提高系统的带宽利用率,进而提高了系统的性能。并且解决方案可以灵活的进行扩展,在数据包RapidIO短包较多时进行RapidIO组包处理,在RapidIO短包较少时按照正常方式处理,在提高系统带宽利用率的同时,也不会影响正常的使用。
实施例4
本发明实施例提供了一种接收设备,发送设备和RapidIO系统。参见图7,该接收设备包括:
接收模块701,用于接收发送设备发送的RapidIO组包,该RapidIO组包的有效数据由无缝隙地存放的至少两个RapidIO短包的数据信息组成;
获取模块702,用于获取该RapidIO组包中的该RapidIO短包的数据信息;
存储模块703,用于根据该RapidIO组包的数据信息将该RapidIO短包存储在端点存储器中。
在本发明实施例中,当所有RapidIO数据包的包长都是固定值,此时:
该获取模块702,具体用于获取该RapidIO短包的地址信息,并根据该RapidIO短包的数据长度的固定值获取该RapidIO短包的有效数据;
相应的,该存储模块703,具体用于根据该RapidIO短包的地址信息将该RapidIO短包的有效数据存储在端点存储器中。
此外,本发明实施例也可以应用于RapidIO短包的长度不是固定值的场景,在RapidIO短包组合数据包时,需要在RapidIO组包中添加RapidIO短包的长度信息,此时:
该获取模块702,具体用于获取该RapidIO短包的地址信息和长度信息;并根据该RapidIO短包的长度信息从该RapidIO组包中获取该RapidIO短包的有效数据;
相应的,该存储模块703,具体用于根据该RapidIO短包的地址信息将该RapidIO短包的有效数据存储在端点存储器中。
此外,在传送多种固定长度的RapidIO短包时,可以在发送设备和接收设备处约定,固定每个RapidIO短包在RapidIO组包中的存储位置,在进行RapidIO组包时,从RapidIO组包的起始地址开始,将多个RapidIO短包的有效数据依次存放在RapidIO组包中。比如系统中只包含三种长度的RapidIO短包,分别为6字节、12字节和24字节。则预先约定,在进行RapidIO组包时,从RapidIO组包的起始地址开始,依次存放各种RapidIO短包的有效数据,如存放的第一个RapidIO短包为6字节的RapidIO短包,起始地址为RapidIO组包的起始地址;存放的第二个RapidIO短包为12字节的RapidIO短包,起始地址为“RapidIO组包的起始地址+6字节”;存放的第三个RapidIO短包为24字节的RapidIO短包,起始地址为“RapidIO组包的起始地址+18字节”;存放的第四个RapidIO短包为6字节的RapidIO短包,起始地址为“RapidIO组包的起始地址+48字节”。
此时,该获取模块702,具体用于按照预设的RapidIO短包数据存储位置从该RapidIO组包中获取该RapidIO短包的有效数据;
相应的,该存储模块703,具体用于获取该RapidIO组包的地址信息,并根据该RapidIO组包的地址信息和该预设的RapidIO短包数据存储位置,将该RapidIO短包的有效数据存储在端点存储器中。
本发明实施例也可以进行扩展,在端点存储器中,设置传送RapidIO组包数据的专用地址空间,在对当前数据包进行处理时,如果访问的是端点存储器 的专用地址空间,则按照上述处理RapidIO组包的方法对当前数据包进行处理;如果访问的是端点存储器的专用地址空间以外的地址空间,则按照处理正常数据包的方法对当前数据包进行处理。
该接收设备还包括:
判断模块704,用于判断接收模块接收到的数据包所访问的地址空间是否是端点存储器的预设地址空间,如果是,则判定该接收模块接收到的该数据包为RapidIO组包。
参见图8,本发明实施例还提供了一种发送设备,包括:
获取模块801,用于获取RapidIO短包的数据信息;
组合模块802,用于依次将该RapidIO短包的数据信息无缝隙的存放在预设长度的RapidIO组包中,该RapidIO组包的有效数据由无缝隙地存放的至少两个RapidIO短包的数据信息组成;
发送模块803,用于向接收设备发送该RapidIO组包。
进一步的,该组合模块802,具体用于依次将该RapidIO短包的地址信息和有效数据无缝隙的存放在预设长度的RapidIO组包中,该RapidIO短包的数据长度为固定值;或,具体用于依次将该RapidIO短包的地址信息、长度信息和有效数据无缝隙的存放在预设长度的RapidIO组包中;或,具体用于按照预设的RapidIO短包数据的存储位置依次将该RapidIO短包的有效数据无缝隙的存放在预设长度的RapidIO组包中。
本发明实施例还提供了一种RapidIO系统,参见图9,该系统包括:
发送设备901,用于获取RapidIO短包的数据信息,依次将该RapidIO短包的数据信息无缝隙的存放在预设长度的RapidIO组包中,并向接收设备发送该RapidIO组包,该RapidIO组包的有效数据由无缝隙地存放的至少两个RapidIO短包的数据信息组成;
接收设备902,用于接收发送设备发送的RapidIO组包,获取该RapidIO组包中的该RapidIO短包的数据信息,并根据该RapidIO短包的数据信息将该RapidIO短包存储在端点存储器中。
本发明实施例通过将多个RapidIO短包组成长包进行传输,可以有效的缩短大部分RapidIO短包的传输时延,并提高系统的带宽利用率,进而提高了系统的性能。并且解决方案可以灵活的进行扩展,在提高系统带宽利用率的同时, 也不会影响正常的使用。
本发明实施例可以利用软件实现,相应的软件程序可以存储在可读取的存储介质中,例如,路由器的硬盘、缓存或光盘中。
以上所述仅为本发明的较佳实施例,并不用以限制本发明,凡在本发明的精神和原则之内,所作的任何修改、等同替换、改进等,均应包含在本发明的保护范围之内。
Claims (15)
1.一种基于RapidIO协议的数据包传输的方法,其特征在于,所述方法包括:
接收发送设备发送的预设长度的RapidIO组包,所述RapidIO组包的有效数据由无缝隙地存放的至少两个RapidIO短包的数据信息组成;
获取所述RapidIO组包中的所述RapidIO短包的数据信息;
根据所述RapidIO短包的数据信息将所述RapidIO短包存储在端点存储器中。
2.根据权利要求1所述的基于RapidIO协议的数据包传输的方法,其特征在于,所述RapidIO短包的数据长度为固定值,以及,所述获取所述RapidIO组包中的所述RapidIO短包的数据信息,包括:
获取所述RapidIO短包的地址信息;
根据所述RapidIO短包的数据长度的固定值获取所述RapidIO短包的有效数据;
相应的,所述根据所述RapidIO短包的数据信息将所述RapidIO短包存储在端点存储器中,包括:
根据所述RapidIO短包的地址信息将所述RapidIO短包的有效数据存储在端点存储器中。
3.根据权利要求1所述的基于RapidIO协议的数据包传输的方法,其特征在于,所述获取所述RapidIO组包中的所述RapidIO短包的数据信息,包括:
获取所述RapidIO短包的地址信息和长度信息;
根据所述RapidIO短包的长度信息从所述RapidIO组包中获取所述RapidIO短包的有效数据;
相应的,所述根据所述RapidIO短包的数据信息将所述RapidIO短包存储在端点存储器中,包括:
根据所述RapidIO短包的地址信息将所述RapidIO短包的有效数据存储在端点存储器中。
4.根据权利要求1所述的基于RapidIO协议的数据包传输的方法,其特征在于,所述获取所述RapidIO组包中的所述RapidIO短包的数据信息,包括:
按照预设的RapidIO短包数据的存储位置从所述RapidIO组包中获取所述RapidIO短包的有效数据;
相应的,所述根据所述RapidIO短包的数据信息将所述RapidIO短包存储在端点存储器中,包括:
获取所述RapidIO组包的地址信息;
根据所述RapidIO组包的地址信息和所述预设的RapidIO短包数据存储位置,将所述RapidIO短包的有效数据存储在端点存储器中。
5.根据权利要求1所述的基于RapidIO协议的数据包传输的方法,其特征在于,所述接收发送设备发送的预设长度的RapidIO组包,包括:
当接收到的数据包所访问的是端点存储器的预设地址空间时,则判定所述数据包为RapidIO组包,并接收所述数据包。
6.一种基于RapidIO协议的数据包传输的方法,其特征在于,所述方法包括:
获取RapidIO短包的数据信息;
依次将所述RapidIO短包的数据信息无缝隙的存放在预设长度的RapidIO组包中,所述RapidIO组包的有效数据由无缝隙地存放的至少两个RapidIO短包的数据信息组成;
向接收设备发送所述RapidIO组包。
7.根据权利要求6所述的基于RapidIO协议的数据包传输的方法,其特征在于,所述依次将所述RapidIO短包的数据信息无缝隙的存储在预设长度的RapidIO组包中,包括:
依次将所述RapidIO短包的地址信息和有效数据无缝隙的存放在预设长度的RapidIO组包中,所述RapidIO短包的数据长度为固定值;
或,依次将所述RapidIO短包的地址信息、长度信息和有效数据无缝隙的 存放在预设长度的RapidIO组包中;
或,按照预设的RapidIO短包数据的存储位置依次将所述RapidIO短包的有效数据无缝隙的存放在预设长度的RapidIO组包中。
8.一种接收设备,其特征在于,所述接收设备包括:
接收模块,用于接收发送设备发送的预设长度的RapidIO组包,所述RapidIO组包的有效数据由无缝隙地存放的至少两个RapidIO短包的数据信息组成;
获取模块,用于获取所述RapidIO组包中的所述RapidIO短包的数据信息;
存储模块,用于根据所述RapidIO短包的数据信息将所述RapidIO短包存储在端点存储器中。
9.根据权利要求8所述的接收设备,其特征在于,所述RapidIO短包的数据长度为固定值,以及,
所述获取模块,还用于获取所述RapidIO短包的地址信息,并根据所述RapidIO短包的数据长度的固定值获取所述RapidIO短包的有效数据;
相应的,所述存储模块,还用于根据所述RapidIO短包的地址信息将所述RapidIO短包的有效数据存储在端点存储器中。
10.根据权利要求8所述的接收设备,其特征在于,
所述获取模块,还用于获取所述RapidIO短包的地址信息和长度信息;并根据所述RapidIO短包的长度信息从所述RapidIO组包中获取所述RapidIO短包的有效数据;
相应的,所述存储模块,还用于根据所述RapidIO短包的地址信息将所述RapidIO短包的有效数据存储在端点存储器中。
11.根据权利要求8所述的接收设备,其特征在于,
所述获取模块,还用于按照预设的RapidIO短包数据存储位置从所述RapidIO组包中获取所述RapidIO短包的有效数据;
相应的,所述存储模块,还用于获取所述RapidIO组包的地址信息,并根据所述RapidIO组包的地址信息和所述预设的RapidIO短包数据存储位置,将所述RapidIO短包的有效数据存储在端点存储器中。
12.根据权利要求8所述的接收设备,其特征在于,所述接收设备还包括:
判断模块,用于判断接收模块接收到的数据包所访问的地址空间是否是端点存储器的预设地址空间,如果是,则判定所述接收模块接收到的所述数据包为RapidIO组包。
13.一种发送设备,其特征在于,所述发送设备包括:
获取模块,用于获取RapidIO短包的数据信息;
组合模块,用于依次将所述RapidIO短包的数据信息无缝隙的存放在预设长度的RapidIO组包中,所述RapidIO组包的有效数据由无缝隙地存放的至少两个RapidIO短包的数据信息组成;
发送模块,用于向接收设备发送所述RapidIO组包。
14.根据权利要求13所述的发送设备,其特征在于,
所述组合模块,还用于依次将所述RapidIO短包的地址信息和有效数据无缝隙的存放在预设长度的RapidIO组包中,所述RapidIO短包的数据长度为固定值;或,用于依次将所述RapidIO短包的地址信息、长度信息和有效数据无缝隙的存放在预设长度的RapidIO组包中;或用于按照预设的RapidIO短包数据的存储位置依次将所述RapidIO短包的有效数据无缝隙的存放在预设长度的RapidIO组包中。
15.一种RapidIO系统,其特征在于,所述系统包括:
发送设备,用于获取RapidIO短包的数据信息,依次将所述RapidIO短包的数据信息无缝隙的存放在预设长度的RapidIO组包中,并向接收设备发送所述RapidIO组包,所述RapidIO组包的有效数据由无缝隙地存放的至少两个RapidIO短包的数据信息组成;
接收设备,用于接收发送设备发送的RapidIO组包,获取所述RapidIO组包中的所述RapidIO短包的数据信息,并根据所述RapidIO短包的数据信息将所述RapidIO短包存储在端点存储器中。
Priority Applications (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN2009100811509A CN101515841B (zh) | 2009-04-03 | 2009-04-03 | 一种基于RapidIO协议的数据包传输的方法、设备和系统 |
Applications Claiming Priority (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN2009100811509A CN101515841B (zh) | 2009-04-03 | 2009-04-03 | 一种基于RapidIO协议的数据包传输的方法、设备和系统 |
Publications (2)
Publication Number | Publication Date |
---|---|
CN101515841A CN101515841A (zh) | 2009-08-26 |
CN101515841B true CN101515841B (zh) | 2011-10-05 |
Family
ID=41040152
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
CN2009100811509A Active CN101515841B (zh) | 2009-04-03 | 2009-04-03 | 一种基于RapidIO协议的数据包传输的方法、设备和系统 |
Country Status (1)
Country | Link |
---|---|
CN (1) | CN101515841B (zh) |
Families Citing this family (11)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN103685060B (zh) * | 2012-09-12 | 2016-12-28 | 中兴通讯股份有限公司 | 数据包发送方法及装置 |
CN103970692B (zh) * | 2013-01-25 | 2017-08-25 | 北京旋极信息技术股份有限公司 | RapidIO串行数据处理方法 |
WO2015168946A1 (zh) * | 2014-05-09 | 2015-11-12 | 华为技术有限公司 | 快速输入输出报文处理方法、装置及系统 |
CN105591975A (zh) * | 2014-10-24 | 2016-05-18 | 中兴通讯股份有限公司 | 报文处理方法及装置 |
CN105530256B (zh) * | 2015-12-18 | 2019-10-25 | 航天恒星科技有限公司 | 一种卫星通信协议数据的处理装置和系统 |
CN108733598B (zh) * | 2018-05-07 | 2021-05-18 | 浪潮集团有限公司 | 一种数据传输方法和数据传输装置 |
CN110611888A (zh) * | 2018-06-15 | 2019-12-24 | 索尼公司 | 用于无线通信系统的电子设备、方法和存储介质 |
CN110677178B (zh) * | 2019-08-28 | 2021-06-01 | 华北电力大学(保定) | 大规模mimo-noma系统中短包传输时延分析方法 |
CN112084120B (zh) * | 2020-07-30 | 2024-08-02 | 山东浪潮科学研究院有限公司 | 一种RapidIO数据传输处理方法及装置 |
CN114095580A (zh) * | 2021-11-16 | 2022-02-25 | 天津市滨海新区信息技术创新中心 | 一种RapidIO低延时、高传输效率架构实现方法及电子设备 |
CN115134426A (zh) * | 2022-05-18 | 2022-09-30 | 中国船舶集团有限公司第七二三研究所 | 一种SRIO协议到aurora协议的数据转换方法 |
Citations (3)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN101159727A (zh) * | 2007-11-15 | 2008-04-09 | 中兴通讯股份有限公司 | 一种iq数据传输装置和方法 |
CN101282477A (zh) * | 2008-05-06 | 2008-10-08 | 艾诺通信系统(苏州)有限责任公司 | 基于RapidIO互联的多核DSP阵列媒体处理系统及其方法 |
CN101335667A (zh) * | 2007-06-26 | 2008-12-31 | 中兴通讯股份有限公司 | 数据传输方法 |
-
2009
- 2009-04-03 CN CN2009100811509A patent/CN101515841B/zh active Active
Patent Citations (3)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN101335667A (zh) * | 2007-06-26 | 2008-12-31 | 中兴通讯股份有限公司 | 数据传输方法 |
CN101159727A (zh) * | 2007-11-15 | 2008-04-09 | 中兴通讯股份有限公司 | 一种iq数据传输装置和方法 |
CN101282477A (zh) * | 2008-05-06 | 2008-10-08 | 艾诺通信系统(苏州)有限责任公司 | 基于RapidIO互联的多核DSP阵列媒体处理系统及其方法 |
Also Published As
Publication number | Publication date |
---|---|
CN101515841A (zh) | 2009-08-26 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
CN101515841B (zh) | 一种基于RapidIO协议的数据包传输的方法、设备和系统 | |
EP1687997B1 (en) | A method and apparatus to provide data streaming over a network connection in a wireless mac processor | |
CN103077148B (zh) | 一种基于pcie的主机通讯方法和主机 | |
CN102326363B (zh) | 具有使用缓冲器描述表的控制器区域网络模块的微控制器 | |
CN102195874A (zh) | 数据分组的预提取 | |
CN103546394B (zh) | 一种通信装置 | |
US20190349296A1 (en) | Data transmission method, apparatus, transmitting end, receiving end and system | |
CN102916902B (zh) | 数据存储方法及装置 | |
CN101478462B (zh) | 存储数据读取和写入的装置和方法及固态硬盘 | |
CN103516627B (zh) | 多芯片通信中数据包发送、接收的方法和装置 | |
CN103501353B (zh) | 一种数据中继传输方法、装置及系统 | |
CN102299861B (zh) | 一种报文流量控制方法 | |
US7065628B2 (en) | Increasing memory access efficiency for packet applications | |
CN101026551A (zh) | 一种通信传输中的文件打包解包方法 | |
CN104714832A (zh) | 一种用于机载数据网络异步数据交互区的缓冲管理方法 | |
CN104580009B (zh) | 芯片转发数据的方法及装置 | |
CN102510351A (zh) | 一种数据通信总线的收发数据方法 | |
CN101192911B (zh) | 一种时分复用模式下传输数据的方法和系统 | |
CN106330413B (zh) | 控制2.4g无线音频传输丢包的方法及系统 | |
CN109802900B (zh) | 报文缓存、读取方法、装置及计算机可读存储介质 | |
US7624157B2 (en) | Ethernet controller with excess on-board flash for microcontroller interface | |
KR100776945B1 (ko) | 직렬 데이터 전송 구현을 위한 메모리 유닛 | |
CN204810282U (zh) | 控制2.4g无线音频传输丢包的系统 | |
CN107302532A (zh) | Raw图像数据传输系统 | |
US20060004926A1 (en) | Smart buffer caching using look aside buffer for ethernet |
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 |