一种残膜回收机防缠绕挑膜装置的制 一种秧草收获机用电力驱动行走机构

大包数据的乱序重组及精准重传请求方法、系统及终端

2022-07-30 20:39:47 来源:中国专利 TAG:


1.本发明属于硬件可靠传输技术领域,尤其涉及一种大包数据的乱序重组及精准重传请求方法、系统及终端。


背景技术:

2.目前,对于通过硬件来保证数据的可靠传输,需要消耗较多的片内存储器资源去保存数据的传输状态,因此现有硬件实现技术通常采用go-bank-n的重传机制,即在检测到丢帧后,将丢帧的的数据包后所有的数据进行重传输,这将会在丢帧时引起严重的性能下降,在1%丢包率时会导致吞吐量接近于0。
3.现有的硬件支持可靠传输机制不支持网络数据包的乱序重组。由于网络中数据包经过的路径和节点以及转发单元的影响,网络中的数据到达时很有可能出现乱序,现有的一些技术是对乱序的数据包进行重传,这将会进一步导致性能和延时的恶化。由于受限于硬件资源,仅支持一千多个左右的连接。
4.同时,现有的硬件保障可靠传输机制仅通过定时器和确认应答机制的配合来检测数据包丢失,在网络中不够灵活,并且由于定时器存在的时延,在丢包时会进一步增大网络的时延,而基于硬件的可靠传输一般面向时间敏感网络。
5.另外,现有的硬件保障可靠传输机制受片内存储器资源限制,在检测到丢帧时采用go-bank-n的重传机制,这在丢帧时会引起严重的性能下降。硬件保障可靠传输机制不支持网络数据包的乱序重组。收到网络路径和网络节点转发单元的影响,网络数据有可能乱序到达,但是应用是循序使用数据的,因此必须在硬件上进行乱序包重组。现有的一些机制是对乱序的数据包进行重传输,这会导致性能和延迟的恶化。现有的硬件保障可靠传输机制受限制与硬件资源,仅能支持一千个左右的连接。因此,亟需设计一种新的乱序重组及精准重传请求方法、系统,以弥补现有技术的缺陷。
6.通过上述分析,现有技术存在的问题及缺陷为:
7.(1)现有的硬件支持可靠传输机制不支持网络数据包的乱序重组,仅通过定时器和确认应答机制的配合来检测数据包丢失,在网络中不够灵活。
8.(2)由于定时器存在的时延,现有硬件保障可靠传输机制在丢包时会进一步增大网络的时延,而基于硬件的可靠传输一般面向时间敏感网络。
9.(3)现有的硬件保障可靠传输机制受片内存储器资源限制,在检测到丢帧时采用go-bank-n的重传机制,这在丢帧时会引起严重的性能下降。
10.(4)现有的机制是对乱序的数据包进行重传输,会导致性能和延迟的恶化;现有硬件保障可靠传输机制受限制与硬件资源,仅能支持一千个左右的连接。


技术实现要素:

11.针对现有技术存在的问题,本发明提供了一种大包数据的乱序重组及精准重传请求方法、系统及终端,尤其涉及一种基于硬件保障的大包数据的乱序重组及精准重传请求
方法、系统、设备及终端。
12.本发明是这样实现的,一种大包数据的乱序重组及精准重传请求方法,所述大包数据的乱序重组及精准重传请求方法包括:利用存储数据帧的片内缓存、存储数据存储地址以及信息的索引信息表,在片内存储满时,将数据帧存储到片外缓存;利用片内外缓存与索引信息表的配合实现丢帧检测以及数据帧的精准重传请求,支持对网络中任意两台建立连接的数据进行可靠传输,支持数据包的丢帧检测以及向对端发送重传请求。
13.进一步,所述大包数据的乱序重组及精准重传请求方法包括以下步骤:
14.步骤一,通过qp和首sn号申请索引信息表地址,记录传输数据包的qp以及首sn和尾sn号,并记录当前qp下的sn码表对应的存储bit位有效;用于确定当前帧所存储的位置,并更新索引信息表的信息,以便此帧的后续sn号根据首sn和尾sn范围进行精确存储数据。
15.步骤二,通过qp和非首sn进行索引信息表的查询,将帧存储在映射出的存储地址,同时记录当前qp下的sn码表对应的存储bit位有效;用于根据索引信息表对应的基地址加上首sn和当前sn的差值得到的偏移地址进行帧的正确存储,并更新存储指示表,以便丢帧检查以及精准重传请求的控制。
16.步骤三,通过qp和sn号没有查询到索引信息表,表明帧存储在片缓存中,用qp和sn号映射出片外缓存的地址后进行存储,同时记录当前qp下的sn码表对应的存储bit位有效;用于联合片外缓存确保数据帧不会丢失,在片内空间满时,只好降低性能保障将其存储在片外
17.进一步,对于大包的接收持有可配置的支持乱序重组数据包数量的片内缓存以及通过qp和sn唯一映射的片外缓存,所述片内缓存的区间划分根据当前硬件的存储资源动态配置和调整;在接收到新数据帧时,根据接收到的qp和当前帧是否为首sn决定分配新的索引信息表还是查询已经存在的索引表信息;所述索引信息表的地址为申请到的行号,所述行号是片内存储区间的划分标号,信息为当前申请帧的qp和首sn和尾sn。
18.若当前帧没有查询到索引信息表且不是首sn帧,则直接存储到片外,上层应用搬移数据帧时根据qp和首sn去查询索引表信息,若没有查到则标识数据帧存储到片外。
19.若当前帧是首sn帧,则将当前帧的qp以及首sn和根据此数据包大小计算得到的尾sn进行写入申请到的索引信息表地址处,并将所述索引信息表置为有效,同时将标识当前sn的帧已经接收的bit位置为有效;每个qp管理的sn码表的地址为当前存储帧的qp,表项中每1bit对应一个sn,bit位置为有效时表明有数据帧写入缓存;当数据递交到上层时将清空搬移数据帧对应的bit位。
20.若当前帧不是首sn帧且根据qp和sn查询到有效的索引信息表,帧将存储在此索引信息表映射的基地址加上sn与索引信息表记录的首sn计算得到的偏移地址进行精准存储,同时记录当前qp下的sn码表对应的存储bit位有效;根据索引信息表和当前sn与首sn确定的偏移地址唯一确定片内存储地址。
21.进一步,所述大包数据的乱序重组及精准重传请求方法还包括:
22.每接收一个数据帧,扫描当前接收帧对应的首sn和尾sn对应的存储位置;
23.在接收计算器没有超时前,当前帧的首sn和尾sn的存储bit位全部有效,则向上层应用发起一次时间写事件,将收齐的数据传递到上层;
24.在接收计数器超时后,当前帧的首sn和尾sn的存储bit依然没有全部收齐,则将
bit位置无效的sn号进行重传请求。
25.进一步,对于精准的重传请求的实现机理在于每存储一个数据帧更新一个存储指示表和索引信息表。存储指示表的地址为qp,每一个队列维护一个sn号的bit码表,当前qp对应的sn号存入时置为有效,表明数据已经写入到缓存;当数据包被收齐传递到上层时置为无效,表明数据已经读取;索引信息表的地址为当前帧申请的空闲存储空间的标识号,每一个标识号对应于固定的存储空间范围,索引信息表的内容为当前申请的标识号对应的基地址,以及当前帧对应的首sn和尾sn号。每接收一个新的数据帧时,根据索引信息表存储的首sn和尾sn进行扫描对应qp地址下的sn码表的存储bit位,若首尾sn范围内的bit位均有效,则清空超时计数器,否则在接收计数器超时后,根据索引信息表存储的首sn和尾sn进行扫描对应qp地址下的sn码表的存储bit位,对存储bit位标识无效的sn号进行精准的重传请求。
26.进一步,所述大包数据的乱序重组及精准重传请求方法还包括:
27.每次接收到新数据帧时,扫描存储单元空闲指示的bit向量是否全部有效,若发现有bit位对应的存储空间无效,则将所述bit位对应的行号和/或基地址返回,作为当前帧的存储基地址;
28.若扫描后发现当前存储空间映射的指示bit位全部有效,表明当前的存储空间已经被全部占用,则将当前帧存储到片外;
29.若当前帧在接收后,扫描帧的首sn和尾sn的存储bit位均有效,则向上层发处写事件,将收齐的数据搬移到上层,并在搬移结束后将按照当前帧的qp和首sn映射出的索引表信息以及存储指示表信息清空;同时将存储单元空闲指示bit向量对应bit位置为无效,表明当前存储空间已经释放。
30.进一步,对于片内存储空间的更新与释放是基于片内缓存按照事先配置的网络中的pmtu以及一次数据请求包消耗的最大sn号进行地址区间的划分;每一个划分的存储区间对应一个存储bit位,用于标识当前存储空间是否已经占用;在新数据帧存入时更新区间存储bit位有效,表明此区间已经被占用,并在搬移结束后将按照当前帧的qp和首sn映射出的索引表信息以及存储指示表信息清空;同时将存储单元空闲指示bit向量对应bit位置为无效,表明当前存储空间已经释放。
31.本发明的另一目的在于提供一种应用所述的大包数据的乱序重组及精准重传请求方法的大包数据的乱序重组及精准重传请求系统,所述大包数据的乱序重组及精准重传请求系统包括片内片外的联合存储结构以及存储指示表和索引信息表,还包括:
32.索引信息表地址申请模块,用于通过qp和首sn号申请索引信息表地址,记录传输数据包的qp以及首sn和尾sn号,并记录当前qp下的sn码表对应的存储bit位有效;
33.索引信息表查询模块,用于通过qp和非首sn进行索引信息表的查询,将帧存储在映射出的存储地址,记录当前qp下的sn码表对应的存储bit位有效;
34.数据帧存储模块,用于通过qp和sn号没有查询到索引信息表,表明帧存储在片缓存中,用qp和sn号映射出片外缓存的地址后进行存储,同时记录当前qp下的sn码表对应的存储bit位有效。
35.本发明的另一目的在于提供一种计算机设备,所述计算机设备包括存储器和处理器,所述存储器存储有计算机程序,所述计算机程序被所述处理器执行时,使得所述处理器
执行如下步骤:
36.利用存储数据帧的片内缓存、存储数据存储地址以及信息的索引信息表,在片内存储满时,将数据帧存储到片外缓存;利用片内外缓存与索引信息表的配合实现丢帧检测以及数据帧的精准重传请求,支持对网络中任意两台建立连接的数据进行可靠传输,支持数据包的丢帧检测以及向对端发送重传请求。
37.本发明的另一目的在于提供一种信息数据处理终端,所述信息数据处理终端用于实现所述的大包数据的乱序重组及精准重传请求系统。
38.结合上述的技术方案和解决的技术问题,请从以下几方面分析本发明所要保护的技术方案所具备的优点及积极效果为:
39.第一、针对上述现有技术存在的技术问题以及解决该问题的难度,紧密结合本发明的所要保护的技术方案以及研发过程中结果和数据等,详细、深刻地分析本发明技术方案如何解决的技术问题,解决问题之后带来的一些具备创造性的技术效果。具体描述如下:
40.在网络中,经常需要传输大量的数据包,由于数据包在经过网络中不同的路径,节点以及不同的转发单元引入的时延,导致数据包的乱序到达,此时就需要进行乱序重组以及在检测到丢帧后,控制重传请求。
41.本发明通过片内片外的联合调度,可以支持数千个连接的大包的乱序重组,在大数据的处理上进行性能加速,降低网络处理时延。每一个连接都有唯一的队列标识qp,而每一个队列都维护着自己的序列号sn,可以在数据到达时,首先检测当前的片内存储模块是否还有剩余空间,若有,可以根据qp与sn将数据进行精准索引到存储地址,并更新存储标识。在更新索引信息表时,会根据当前传输数据的大小以及首sn,从而确定本次传输数据的sn范围,接收到新的数据帧时先判断是否属于此范围,若属于此范围则将数据精准存储到索引地址处,否则开辟一个新的索引地址进行存储,由此对于同一个数据包可以支持乱序到达,不同的数据包可以支持outstanding。若片内没有空间,则进行片外的存储,片外的存储是根据qp和sn唯一映射的存储地址,同样做到精准存储,但是由于片外的存储和读取需要更多的时钟周期,时延性能将会下降。
42.本发明提出了一种新的丢帧检测和重传请求机制,丢帧时,做到精准重传请求,从而不会引起严重的性能下降。丢帧检测的实现机理在于每存储一个数据帧将会更新一个存储指示表和索引信息表,存储指示表的地址为qp,每一个队列维护一个sn号的bit码表,当前qp对应的sn号存入时置为有效,表明数据已经写入到缓存,当数据包被收齐传递到上层时置为无效,表明数据已经读取。索引信息表的地址为当前帧申请的空闲存储空间的标识号,每一个标识号对应于固定的存储空间范围,索引信息表的内容为当前申请的标识号对应的基地址,以及当前帧对应的首sn和尾sn号。每接收一个新的数据帧时,根据索引信息表存储的首sn和尾sn进行扫描对应qp地址下的sn码表的存储bit位,若首尾sn范围内的bit位均有效,则清空超时计数器,否则在接收计数器超时后,根据索引信息表存储的首sn和尾sn进行扫描对应qp地址下的sn码表的存储bit位,对存储bit位标识无效的sn号进行精准的重传请求,以避免重传请求整个数据包造成性能的下降。
43.第二,把技术方案看做一个整体或者从产品的角度,本发明所要保护的技术方案具备的技术效果和优点,具体描述如下:
44.本发明通过片内片外的联合调度,在大数据的处理上进行性能加速,降低网络处
理时延。本发明提出了一种新的丢帧检测和重传机制,在丢帧时,做到精准重传,不会引起严重的性能下降。本发明对于大包数据的乱序重组以及丢帧后的精准重传请求,并联合片内片外缓存进行大包数据的性能提升,可以很好的解决延时以及其他重传机制带来的性能恶化。
45.本发明主要解决了现有的硬件保障可靠传输中的大包乱序重组以及精准的重传请求。该优化方式的架构包括:存储数据帧的片内缓存,存储数据存储地址以及信息的索引信息表,以及在片内存储满时,将其存储到的片外缓存。其中,片内外缓存与索引信息表配合实现了丢帧检测以及数据帧的精准重传请求,无需将丢失的整个数据帧进行重传,提高了重传下的网络性能。
46.相比于现有技术,本发明的优点进一步包括:
47.(1)支持大包的乱序重组,并对不同的qp进行outstanding处理,无需等待当前qp完全接收后才可以处理下一个qp。
48.(2)上层应用可以根据片内资源大小以及开启的qp进行动态的存储区间划分和地址映射。
49.(3)能够通过索引信息表精准的发送重传请求,可以提升网络性能。
50.第三,作为本发明的权利要求的创造性辅助证据,还体现在以下几个重要方面:
51.本发明的技术方案转化后的预期收益和商业价值为:本发明属于在大包数据乱序重传以及可靠连接上的精准重传请求领域的一个关键专利。网络中由于数据经过的路径以及节点不同,通常需要硬件来提供乱序重组,传统的硬件很难支持大包数据的乱序重组或者需要重发整个数据来确保数据的可靠。本发明通过片内片外的联合存储,将缓存单元按照当前网络中的pmtu进行可配置的划分,以及通过索引信息表的存储信息进行大包的乱序重组以及精准重传请求。
附图说明
52.为了更清楚地说明本发明实施例的技术方案,下面将对本发明实施例中所需要使用的附图做简单的介绍,显而易见地,下面所描述的附图仅仅是本发明的一些实施例,对于本领域普通技术人员来讲,在不付出创造性劳动的前提下还可以根据这些附图获得其他的附图。
53.图1是本发明实施例提供的大包数据乱序重组及精准重传请求方法流程图;
54.图2是本发明实施例提供的大包数据乱序重组及精准重传请求方法原理图;
55.图3是本发明实施例提供的大包数据的乱序重组及精准重传请求系统结构框图;
56.图4是本发明实施例提供的片内存储区间的划分示意图;
57.图5是本发明实施例提供的rdma的索引信息申请图;
58.图6是本发明实施例提供的rdma的索引信息查找图;
59.图7是本发明实施例提供的rdma的数据搬移与信息清空图;
60.图8是本发明实施例提供的多个数据流的整体仿真图。
61.图中:1、索引信息表地址申请模块;2、索引信息表查询模块;3、数据帧存储模块。
具体实施方式
62.为了使本发明的目的、技术方案及优点更加清楚明白,以下结合实施例,对本发明进行进一步详细说明。应当理解,此处所描述的具体实施例仅仅用以解释本发明,并不用于限定本发明。
63.针对现有技术存在的问题,本发明提供了一种大包数据的乱序重组及精准重传请求方法、系统及终端,下面结合附图对本发明作详细的描述。
64.一、解释说明实施例。为了使本领域技术人员充分了解本发明如何具体实现,该部分是对权利要求技术方案进行展开说明的解释说明实施例。
65.术语解释:pmtu:链路最大传输单元;qp:发送端与接收端的连接对;sn:每一个队列对应的序列号。
66.如图1所示,本发明实施例提供的大包数据乱序重组及精准重传请求方法包括以下步骤:
67.s101,通过qp和首sn号申请索引信息表地址,记录传输数据包的qp以及首sn和尾sn号,并记录当前qp下的sn码表对应的存储bit位有效;
68.s102,通过qp和非首sn进行索引信息表的查询,将帧存储在映射出的存储地址,同时记录当前qp下的sn码表对应的存储bit位有效;
69.s103,通过qp和sn号没有查询到索引信息表,表明帧存储在片缓存中,用qp和sn号映射出片外缓存的地址后进行存储,同时记录当前qp下的sn码表对应的存储bit位有效。
70.本发明实施例提供的大包数据乱序重组及精准重传请求方法原理图见图2。
71.如图3所示,本发明实施例提供的大包数据的乱序重组及精准重传请求系统包括片内片外的联合存储结构以及存储指示表和索引信息表,还包括:
72.索引信息表地址申请模块1,用于通过qp和首sn号申请索引信息表地址,记录传输数据包的qp以及首sn和尾sn号,并记录当前qp下的sn码表对应的存储bit位有效;
73.索引信息表查询模块2,用于通过qp和非首sn进行索引信息表查询,将帧存储在映射出的存储地址,记录当前qp下的sn码表对应的存储bit位有效;
74.数据帧存储模块3,用于通过qp和sn号没有查询到索引信息表,表明帧存储在片缓存中,用qp和sn号映射出片外缓存的地址后进行存储,同时记录当前qp下的sn码表对应的存储bit位有效。
75.实施例1
76.本发明实施例提供的硬件保障的大包数据的乱序重组以及重传请求的实现方法,是一种基于fpga或者专用于定制芯片开发的数据在网络中的大包乱序重组以及精准重传请求,支持对网络中任意两台建立连接的数据进行可靠传输,支持数据包的丢帧检测以及向对端发送重传请求。
77.本发明实施例提供的硬件保障的大包数据的乱序重组以及精准重传请求的传输系统,其包括片内片外的联合存储结构以及存储指示表和索引信息表。
78.本发明实施例提供的硬件保障的的大包数据的乱序重组以及重传请求的实现方法包括以下步骤:
79.通过qp和首sn号申请索引信息表地址,并记录这一次传输数据包的qp以及首sn和尾sn号,同时记录当前qp下的sn码表对应的存储bit位有效;
80.通过qp和非首sn进行索引信息表的查询,将帧存储在映射出的存储地址,同时记录当前qp下的sn码表对应的存储bit位有效;
81.通过qp和sn号没有查询到索引信息表,此时表明帧存储在片缓存中,需要用qp和sn号映射出片外缓存的地址后进行存储,同时记录当前qp下的sn码表对应的存储bit位有效。
82.对于大包的接收持有一个可配置的支持乱序重组数据包数量的片内缓存以及通过qp和sn唯一映射的片外缓存。如图4所示,其片内缓存的区间划分是根据当前硬件的存储资源可以动态配置和调整的。在接收到新数据帧时,会根据接收到的qp和当前帧是否为首sn来决定分配新的索引信息表还是查询已经存在的索引表信息。如表1所示,索引信息表的地址为申请到的行号,也就是片内存储区间的划分标号,其信息为当前申请帧的qp和首sn和尾sn。
83.表1索引信息表的格式
[0084][0085]
若当前帧没有查询到索引信息表且不是首sn帧,则会直接存储到片外,上层应用搬移此数据帧时将会根据qp和首sn去查询索引表信息,若没有查到则会标识此数据帧存储到了片外,通过这种方式保证数据不会丢失以及片内片外的联合调度。
[0086]
若当前帧是首sn帧,则会将当前帧的qp以及首sn和根据此数据包大小计算得到的尾sn进行写入申请到的索引信息表地址处,并将此索引信息表置为有效,同时将标识当前sn的帧已经接收的bit位置为有效。如表2所示,每个qp管理的sn码表的地址为当前存储帧的qp,表项中每1bit对应一个sn,其bit位置为有效时表明有数据帧写入缓存,当数据递交到上层时,将会清空搬移数据帧对应的bit位。
[0087]
表2存储指示表的格式
[0088][0089]
若当前帧不是首sn帧,且根据qp和sn查询到了有效的索引信息表,此帧将会存储在此索引信息表映射的基地址加上此sn与索引信息表记录的首sn计算得到的偏移地址进行精准存储,同时记录当前qp下的sn码表对应的存储bit位有效。如表3所示,其根据索引信息表和当前sn与首sn确定的偏移地址,可以唯一的确定片内存储地址。
[0090]
表3存储地址映射关系
[0091][0092]
实施例2
[0093]
本发明实施例提供的硬件保障的大包数据的乱序重组以及重传请求的实现方法,是一种基于fpga或者专用于定制芯片开发的数据在网络中的大包乱序重组以及精准重传请求,支持对网络中任意两台建立连接的数据进行可靠传输,支持数据包的丢帧检测以及向对端发送重传请求。
[0094]
本发明实施例提供的硬件保障的的大包数据的乱序重组以及重传请求的实现方法包括以下步骤:
[0095]
每接收一个数据帧,扫描当前接收帧对应的首sn和尾sn对应的存储位置;
[0096]
在接收计算器没有超时前,当前帧的首sn和尾sn的存储bit位全部有效,则向上层应用发起一次时间写事件,将收齐的数据传递到上层;
[0097]
在接收计数器超时后,当前帧的首sn和尾sn的存储bit依然没有全部收齐,则将bit位置无效的sn号进行重传请求。
[0098]
对于精准的重传请求的实现机理在于每存储一个数据帧将会更新一个存储指示表和索引信息表,其表格式如表1和表2所示。存储指示表的地址为qp,每一个队列维护一个sn号的bit码表,当前qp对应的sn号存入时置为有效,表明数据已经写入到缓存,当数据包被收齐传递到上层时置为无效,表明数据已经读取。索引信息表的地址为当前帧申请的空闲存储空间的标识号,每一个标识号对应于固定的存储空间范围,索引信息表的内容为当前申请的标识号对应的基地址,以及当前帧对应的首sn和尾sn号。每接收一个新的数据帧时,根据索引信息表存储的首sn和尾sn进行扫描对应qp地址下的sn码表的存储bit位,若首尾sn范围内的bit位均有效,则清空超时计数器,否则在接收计数器超时后,根据索引信息表存储的首sn和尾sn进行扫描对应qp地址下的sn码表的存储bit位,对存储bit位标识无效的sn号进行精准的重传请求,以避免重传请求整个数据包造成性能的下降。
[0099]
实施例3
[0100]
本发明实施例提供的硬件保障的大包数据的乱序重组以及重传请求的实现方法,是一种基于fpga或者专用于定制芯片开发的数据在网络中的大包乱序重组以及精准重传请求,支持对网络中任意两台建立连接的数据进行可靠传输,支持数据包的丢帧检测以及向对端发送重传请求。
[0101]
本发明实施例提供的硬件保障的的大包数据的乱序重组以及重传请求的实现的对片内存储空间的空满指示包括以下步骤:
[0102]
每次接收到新数据帧时,会扫描存储单元空闲指示的bit向量是否全部有效,若发现有bit位对应的存储空间无效,则将此bit位对应的行号(基地址)返回,作为当前帧的存储基地址;
[0103]
若扫描后发现当前存储空间映射的指示bit位全部有效,表明当前的存储空间已经被全部占用,需要将当前帧存储到片外;
[0104]
若当前帧在接收后,扫描帧的首sn和尾sn的存储bit位均有效,则向上层发处写事件,将收齐的数据搬移到上层,同时在搬移结束后将按照当前帧的qp和首sn映射出的索引表信息以及存储指示表信息清空,同时将存储单元空闲指示bit向量对应bit位置为无效,表明当前存储空间已经释放。
[0105]
对于片内存储空间的更新与释放是基于片内缓存按照事先配置的网络中的pmtu以及一次数据请求包消耗的最大sn号进行地址区间的划分,如表4所示,每一个划分得存储区间对应一个存储bit位,用以标识当前存储空间是否已经占用,在新数据帧存入时更新区间存储bit位有效,表明此区间已经被占用,同时在搬移结束后将按照当前帧的qp和首sn映射出的索引表信息以及存储指示表信息清空,同时将存储单元空闲指示bit向量对应bit位置为无效,表明当前存储空间已经释放。
[0106]
表4存储单元空闲指示向量
[0107][0108]
二、应用实施例。为了证明本发明的技术方案的创造性和技术价值,该部分是对权利要求技术方案进行具体产品上或相关技术上的应用实施例。
[0109]
本发明的一个具体应用实例为:应用在高性能的rdma网卡中。rdma网卡在建立连接时,通过私有协议交换内存窗口以及本地主机与远程主机的绑定qp,并给每一个绑定分配各自独立的sn号,在大包传输时,可以规定每次最大请求8个sn号,每个sn号,也就是pmtu为8kb,这样一个大包最大可支持为64kb。当接受端接收到大包数据时就可以根据qp与sn号进行存储,并根据维护的信息表进行精准的重传请求。同时,由片内片外的联合存储,可以在片内有存储空间时进行性能加速,在没有空间时,确保不会丢帧。
[0110]
应当注意,本发明的实施方式可以通过硬件、软件或者软件和硬件的结合来实现。硬件部分可以利用专用逻辑来实现;软件部分可以存储在存储器中,由适当的指令执行系统,例如微处理器或者专用设计硬件来执行。本领域的普通技术人员可以理解上述的设备和方法可以使用计算机可执行指令和/或包含在处理器控制代码中来实现,例如在诸如磁盘、cd或dvd-rom的载体介质、诸如只读存储器(固件)的可编程的存储器或者诸如光学或电子信号载体的数据载体上提供了这样的代码。本发明的设备及其模块可以由诸如超大规模集成电路或门阵列、诸如逻辑芯片、晶体管等的半导体、或者诸如现场可编程门阵列、可编程逻辑设备等的可编程硬件设备的硬件电路实现,也可以用由各种类型的处理器执行的软件实现,也可以由上述硬件电路和软件的结合例如固件来实现。
[0111]
三、实施例相关效果的证据。本发明实施例在研发或者使用过程中取得了一些积极效果,和现有技术相比的确具备很大的优势,下面内容结合试验过程的数据、图表等进行描述。
[0112]
本发明通过片内片外的联合仿真,可以在片内有存储空间时进行乱序重组以及减少片外存储与读取所消耗的额外时延,并通过维护索引信息表和存储指示表进行数据的精准重传请求。以下是基于rdma的片内乱序重组单元的仿真结果,如图5所示,当通过rdma的包类型指示码opcode标识为首sn时,将提取出数据帧头携带的帧长(在此项目中,帧长为0代表64kb),并通过帧长与首sn(此时首sn为0,且每一个sn最大为8kb),可以计算出尾sn为7。同时,指示片内存储空满的buf_select拉高,表明片内还有剩余空间,于是在申请到的行号(在此仿真中在第0bit位,表明行号为0)后更新索引信息表,并返回一个ack信号,表明此sn已被正确接收。
[0113]
如图6所示,当通过rdma的包类型指示码opcode标识为非首sn时,将会根据qp与sn查询出ram_row_adder基地址(也就是首sn,申请的行号),并通过首sn与当前sn计算出ram_row_offset偏移地址为1,并返回一个ack信号,表明此sn已被正确接收。
[0114]
如图7所示,当数据全部收齐后,上层通过verify信号查询帧存储位置,并返回查询结果,当上层应用将数据搬移完毕后,通过clr信号清空帧存储信息,以释放当前的片内缓存。
[0115]
如图8所示,rdma数据的整体流程为先通过首sn申请索引信息表,再通过非sn查找索引信息表进行数据的存储,最后在检测到收齐后通知上层进行读取并在读取结束后清空
相应的信息。
[0116]
以上所述,仅为本发明的具体实施方式,但本发明的保护范围并不局限于此,任何熟悉本技术领域的技术人员在本发明揭露的技术范围内,凡在本发明的精神和原则之内所作的任何修改、等同替换和改进等,都应涵盖在本发明的保护范围之内。
再多了解一些

本文用于企业家、创业者技术爱好者查询,结果仅供参考。

发表评论 共有条评论
用户名: 密码:
验证码: 匿名发表

相关文献