System.ArgumentOutOfRangeException: 索引和长度必须引用该字符串内的位置。 参数名: length 在 System.String.Substring(Int32 startIndex, Int32 length) 在 zhuanliShow.Bind()
【技术实现步骤摘要】
本申请涉及数据存储以及计算机应用,特别的涉及一种基于现场可编程门阵列的高速存储方法及装置。
技术介绍
1、目前市场上支持非易失性存储器表达(non-volatile memory express,即nvme)协议的国产电子盘厂家有许多,使用的硬盘的主控制器类型也多种多样。一些盘主控厂家为了充分发挥电子盘的读写性能,在往电子盘里写数据时采用多核多控制器并行下发数据请求指令的方式,这就导致用户端接收到的数据请求指令出现乱序的情况。需要说明的是,这里的数据请求乱序是在数据写入存储器时发生的,与通常的存储器读操作时由于non-posted request报文乱序导致的数据乱序不同。
2、针对写数据请求包乱序的情况,现有的解决方案可分为以下两种:
3、其一为:中央处理器(cpu)作为用户数据的接收端与nvme控制器共同完成写盘操作。其中,cpu负责处理与电子盘之间的命令交互(如数据命令的解析等)以及用户数据的排序响应。
4、其二为:现场可编程门阵列(fpga)作为用户数据的接收端将数据写入cpu的内存,再由cpu将写入内存中的数据写入电子盘。其中,cpu负责与电子盘之间的命令交互以及用户数据的排序响应。
5、然而,上述两种方案实际上均由cpu来完成数据请求的排序响应,使得cpu资源被占用过多,系统性能下降,系统对请求的响应时间延迟,从而导致在高速存储时无法发挥电子盘的最大性能,进而无法实现低延时、高带宽的数据存储。
技术实现思路
1、为解决上述
2、第一方面,本申请实施例提供了一种基于现场可编程门阵列的高速存储方法,该方法应用于数据采集架构,该数据采集架构包括现场可编程门阵列、中央处理器以及后端存储体阵列,该方法包括:
3、由中央处理器发起数据写入请求,并由中央处理器以及后端存储体阵列对数据写入请求进行拆分处理,得到至少两个目标请求;其中,每个目标请求的数据量相同;
4、由后端存储体阵列将每个目标请求发送给现场可编程门阵列,并由现场可编程门阵列对每个目标请求进行解析处理,确定出与每个目标请求对应的目标地址范围;
5、由现场可编程门阵列基于每个目标地址范围获取相应的目标数据,并确定出与每个目标数据对应的逻辑标识;
6、由现场可编程门阵列基于每个逻辑标识,将每个目标数据发送给后端存储体阵列。
7、在第一方面的一种可选方案中,数据采集架构还包括缓存单元;
8、在由中央处理器发起数据写入请求之前,包括:
9、由现场可编程门阵列接收用户数据,并将用户数据发送至缓存单元;其中,用户数据为与数据写入请求相对应的数据;
10、由现场可编程门阵列实时计算缓存单元的数据量,并判断数据量是否达到预设的阈值;
11、当识别出数据量达到预设的阈值时,由现场可编程门阵列根据预设的写入方式对缓存单元中的用户数据进行写入操作,并产生中断信号。
12、由中央处理器发起数据写入请求,包括:
13、由现场可编程门阵列发送中断信号给中央处理器;
14、由中央处理器根据中断信号,发起与中断信号对应的数据写入请求。
15、在第一方面的又一种可选方案中,后端存储体阵列包括第一拆分单元以及第二拆分单元;
16、由中央处理器以及后端存储体阵列对数据写入请求进行拆分处理,得到至少两个目标请求,包括:
17、由中央处理器对数据写入请求进行拆分处理,得到至少两个第一请求,并将每个第一请求发送至第一拆分单元;其中,每个第一请求的数据量相同,第一请求的数据量小于数据写入请求的数据量;
18、由第一拆分单元对每个第一请求进行拆分处理,得到至少两个第二请求,并将每个第二请求发送至第二拆分单元;其中,每个第二请求的数据量相同,第二请求的数据量小于第一请求的数据量;
19、由第二拆分单元对每个第二请求进行拆分处理,得到至少两个目标请求;其中,目标请求的数据量小于第二请求的数据量。
20、在第一方面的又一种可选方案中,由现场可编程门阵列对每个目标请求进行解析处理,确定出与每个目标请求对应的目标地址范围,包括:
21、由现场可编程门阵列对每个目标请求进行解析处理,得到与每个目标请求对应的目标首地址以及数据有效长度;
22、根据每个目标首地址以及数据有效长度,计算出与每个目标请求对应的目标地址范围。
23、在第一方面的又一种可选方案中,由现场可编程门阵列基于每个目标地址范围,获取相应的目标数据,并确定出与每个目标数据对应的逻辑标识,包括:
24、由现场可编程门阵列根据预设的移位信息以及每个目标地址范围,对每个目标地址范围进行移位处理,得到与每个目标地址范围对应的存储地址范围;其中,存储地址范围包括存储首地址以及存储末地址;
25、根据每个存储首地址以及相应的存储末地址,获取与每个存储地址范围对应的目标数据;
26、根据每个存储首地址,确定出与每个目标数据对应的逻辑标识。
27、在第一方面的又一种可选方案中,数据采集架构还包括数据交换单元;
28、由现场可编程门阵列基于每个逻辑标识,将每个目标数据发送给后端存储体阵列,包括:
29、由现场可编程门阵列根据每个逻辑标识以及预设的映射关系,确定出每个目标数据的交换地址;
30、由现场可编程门阵列基于交换地址将每个目标数据发送至数据交换单元;
31、由数据交换单元将所有目标数据发送给后端存储体阵列。
32、在第一方面的又一种可选方案中,由数据交换单元将所有目标数据发送给后端存储体阵列,包括:
33、当数据交换单元接收到所有目标数据时,对所有目标数据进行整合处理,得到请求数据;
34、由数据交换单元将请求数据发送给后端存储体阵列。
35、第二方面,本申请实施例提供了一种基于现场可编程门阵列的高速存储装置,该装置应用于数据采集架构,该数据采集架构包括现场可编程门阵列、中央处理器以及后端存储体阵列,该装置包括:
36、第一处理模块,用于由中央处理器发起数据写入请求,并由中央处理器以及后端存储体阵列对数据写入请求进行拆分处理,得到至少两个目标请求;其中,每个目标请求的数据量相同;
37、第二处理模块,用于由后端存储体阵列将每个目标请求发送给现场可编程门阵列,并由现场可编程门阵列对每个目标请求进行解析处理,确定出与每个目标请求对应的目标地址范围;
38、第三处理模块,用于由现场可编程门阵列基于每个目标地址范围获取相应的目标数据,并确定出与每个目标数据对应的逻辑标识;
39、第四处理模块,用于由现场可编程门阵列基于每个逻辑标识,将每个目标数据发送给后端存储体阵列本文档来自技高网...
【技术保护点】
1.一种基于现场可编程门阵列的高速存储方法,其特征在于,所述方法应用于数据采集架构,所述数据采集架构包括现场可编程门阵列、中央处理器以及后端存储体阵列,所述方法包括:
2.根据权利要求1所述的方法,其特征在于,所述数据采集架构还包括缓存单元;
3.根据权利要求1所述的方法,其特征在于,所述后端存储体阵列包括第一拆分单元以及第二拆分单元;
4.根据权利要求1所述的方法,其特征在于,所述由所述现场可编程门阵列对每个所述目标请求进行解析处理,确定出与每个所述目标请求对应的目标地址范围,包括:
5.根据权利要求1所述的方法,其特征在于,所述由所述现场可编程门阵列基于每个所述目标地址范围获取相应的目标数据,并确定出与每个所述目标数据对应的逻辑标识,包括:
6.根据权利要求1所述的方法,其特征在于,所述数据采集架构还包括数据交换单元;
7.根据权利要求6所述的方法,其特征在于,所述由所述数据交换单元将所有所述目标数据发送给所述后端存储体阵列,包括:
8.一种基于现场可编程门阵列的高速存储装置,其特征在于,所述
9.一种基于现场可编程门阵列的高速存储装置,其特征在于,包括处理器以及存储器;
10.一种计算机可读存储介质,其上存储有计算机程序,其特征在于,所述计算机可读存储介质中存储有指令,当所述指令在计算机或处理器上运行时,使得所述计算机或处理器执行如权利要求1-7任一项所述方法的步骤。
...【技术特征摘要】
1.一种基于现场可编程门阵列的高速存储方法,其特征在于,所述方法应用于数据采集架构,所述数据采集架构包括现场可编程门阵列、中央处理器以及后端存储体阵列,所述方法包括:
2.根据权利要求1所述的方法,其特征在于,所述数据采集架构还包括缓存单元;
3.根据权利要求1所述的方法,其特征在于,所述后端存储体阵列包括第一拆分单元以及第二拆分单元;
4.根据权利要求1所述的方法,其特征在于,所述由所述现场可编程门阵列对每个所述目标请求进行解析处理,确定出与每个所述目标请求对应的目标地址范围,包括:
5.根据权利要求1所述的方法,其特征在于,所述由所述现场可编程门阵列基于每个所述目标地址范围获取相应的目标数据,并确定出与每个所述目标数据对应的逻辑标识,包括:
【专利技术属性】
技术研发人员:郑杰,刘春,黄雅峥,王伟伟,郑芳只,
申请(专利权)人:中国电子科技集团公司第五十二研究所,
类型:发明
国别省市:
还没有人留言评论。发表了对其他浏览者有用的留言会获得科技券。