System.ArgumentOutOfRangeException: 索引和长度必须引用该字符串内的位置。 参数名: length 在 System.String.Substring(Int32 startIndex, Int32 length) 在 zhuanliShow.Bind() 一种基于RAID0硬盘组的IO写入方法及模型技术_技高网

一种基于RAID0硬盘组的IO写入方法及模型技术

技术编号:40275480 阅读:11 留言:0更新日期:2024-02-02 23:02
本发明专利技术公开了一种基于RAID0硬盘组的IO写入方法及模型,创建与RAID0硬盘组的硬盘数相等个数的地址FIFO;更新进入DDR缓存中的数据增量,并同步给嵌入式CPU;接收嵌入式CPU根据数据增量查找到的SATA地址,在每个地址FIFO中按照相同顺序分别写入SATA地址;按照每个硬盘对应的地址FIFO,分别封装每个硬盘对应的IO写入指令,每个硬盘分别接收自己对应的IO写入指令,各自进行IO写入。通过为每个硬盘设置对应的地址FIFO,每个硬盘可以按照对应的地址FIFO写入数据,同一个IO不必等待其他硬盘完成写入,可以立即写入下一个数据块,且数据在硬盘中的分布依然满足RAID0硬盘组的特性。

【技术实现步骤摘要】

本专利技术涉及计算机的数据写入,具体涉及一种基于raid0硬盘组的io写入方法及模型。


技术介绍

1、多块硬盘组raid0硬盘组阵列可以用于在需要快速传输大量数据的场景下,例如野外通信兵在对野外设备进行数据采集时,需要快速完整的将数据采集完。现有的采用多块硬盘组raid0硬盘组进行存储的设备中,使得io写入的整体性能跟预期偏差甚远,比单盘测试理论计算值差了将近一半,如采用16个单盘测试性能为400mb/s性能的硬盘组raid0硬盘组,理论上性能应该为16*400 = 6400mb/s 附近,但实测后平均(1秒尺度)大约为3000mb/s。

2、这是由于当将一个数据分段存入硬盘组时,由于每个硬盘的状态和性能波动以及瞬时速率不一致,必然会导致每段数据写入硬盘的速度不同,有的硬盘先完成io写入,有的硬盘后完成io写入。而在将数据进行io写入时,硬盘组共用一个地址fifo,为了保证数据的完整性,在一个数据分段写入硬盘组时,即使最先完成写入的硬盘需要等待该数据的其他段数据全部写入硬盘后才能进行下一个数据的写入,这样硬盘组完整写入一个数据的时间就是最慢的那个硬盘写入完成的时间。因此,需要提出一种能够加快数据写入的方法,以满足快速写入数据的场景需求。


技术实现思路

1、本专利技术的目的在于提供一种基于raid0硬盘组的io写入方法及模型,通过设置与硬盘组硬件数量对应数量的地址fifo,每个硬盘可以按照自己对应的fifo写入数据,同一个io不必等待其他硬盘完成写入,可以立即写入下一个数据块,且数据在硬盘中的分布依然满足raid0硬盘组的特性。

2、一方面,本申请提供一种基于raid0硬盘组的io写入方法,包括以下步骤:

3、s1、创建与raid0硬盘组的硬盘数量对应个数的若干个地址fifo;

4、s2、更新进入各数据通道的ddr缓存中的数据量,得到数据增量,并将数据增量同步给嵌入式cpu;

5、s3、接收嵌入式cpu根据数据增量查找到的sata地址,在每个地址fifo中按照相同顺序分别写入sata地址;

6、s4、按照每个硬盘对应的地址fifo,分别封装每个硬盘对应的io写入指令,每个硬盘分别接收自己对应的io写入指令,各自进行io写入。

7、本申请的专利技术构思为:

8、现有技术中,fpga在创建地址fifo时,地址fifo的个数与数据传输的数据通道数量一致,一个通道中raid0硬盘组中所有硬盘对应的是一个地址fifo,这样,在硬盘组并行写入一个数据块时,需要等待每个硬盘完成该数据块对应的数据量的写入,若存在有些硬盘写入速度较慢的,则下一数据块时需等待,并且,地址fifo中的地址一开始由嵌入式cpu查询后创建的是一个较长的地址fifo,数据在写入时会查询地址fifo是否为空且fifo中剩余地址的个数是否低于某个设定门限,若低于门限值则cpu再次查询后再给fifo补充地址。

9、针对此,本申请中通过设置与硬盘数量相同的地址fifo,为每个硬盘配了一个地址fifo,每个硬盘按照自己的地址fifo写入每个硬盘需要写入的一个数据块对应的数据,完成该硬盘自身对应的一次io写入(一次io写入完成为硬盘组中所有硬盘完成对一个数据块的写入),不必等待其他未完成的硬盘, 可以立即写入下一个数据块的对应数据,每个硬盘分别写入时,相同数据块在硬盘中的写入地址是相同的,因此,数据在硬盘中的分布依然满足raid0硬盘组的特性。通过这种方式,每个硬盘的数据写入无需互相等待,对于数据量较大且连续需要快速采集的场景,例如野外设备的数据采集来说,可以提高数据采集存储的速度,减少等待时间。另外,本申请中各地址fifo中的地址是动态更新的,定时更新进入ddr缓存中的数据量,根据数据增量,动态地为地址fifo写入sata地址,从而实现整个数据采集过程的不断连续。

10、在一种可选地实施方式中,步骤s4中,对每个硬盘,封装io写入指令的方法为:

11、查询该硬盘对应的地址fifo的状态,若地址fifo为非空时,则从地址fifo中读取一个sata地址,并将该硬盘对应取数的ddr地址和该读取的sata地址封装到io写入指令中,不断循环上述步骤。

12、在一种可选地实施方式中,硬盘对应取数的ddr地址的计算方法为:

13、ddr_addr = ch_ddr_base + cnt * raidsize + idx * raidsize/diskcnt;

14、其中,ddr_addr表示取数的ddr地址,ch_ddr_base表示数据通道的ddr缓存基地址, cnt表示每个硬盘自己完成blocksize的次数,raidsize表示raid0硬盘组组阵后一个数据块大小,idx表示对应的硬盘编号,diskcnt表示raid0硬盘组的硬盘数量。

15、在一种可选地实施方式中,还包括步骤s5:重复步骤 s2-s4,给每个硬盘对应的地址fifo中不断补充新的地址。

16、在一种可选地实施方式中,步骤s2中得到数据增量的具体过程为:

17、s21、接收数据,将数据划分为固定大小的数据块,依次存储到ddr缓存中;

18、s22、查询进入ddr缓存的数据量大小,若ddr缓存中接收到了一个数据块大小的数据量,则作为一个数据增量;

19、s23、统计数据进入ddr缓存中数据块的数量,将该数据块的数量作为数据增量。

20、在一种可选地实施方式中,固定大小的数据块为raid0硬盘组组阵后一次io写入的数据量大小。

21、第二方面,本申请提供一种基于raid0硬盘组的io写入模型,包括fpga装置、嵌入式cpu装置和raid0硬盘组硬盘阵列,fpga装置通过pcie总线与嵌入式cpu装置通信连接,fpga通过sata接口向raid0硬盘组硬盘阵列写入数据;

22、嵌入式cpu装置,用于根据fpga同步的数据增量查找sata地址,数据增量由fpga装置对进入ddr缓存的数据量进行统计后得到的;

23、fpga装置,用于创建与raid0硬盘组的硬盘数量对应个数的若干个地址fifo;在每个地址fifo中按照相同顺序分别写入所述sata地址; 还用于按照每个硬盘对应的地址fifo,分别封装每个硬盘对应的io写入指令;

24、raid0硬盘组硬盘阵列,每个硬盘分别接收自己对应的io写入指令,各自进行io写入。

25、在一种可选地实施方式中,io写入指令包括硬盘对应取数的ddr地址和从对应的地址fifo中读取的sata地址。

26、在一种可选地实施方式中,硬盘对应取数的ddr地址的计算方法为:

27、ddr_addr = ch_ddr_base + cnt * raidsize + idx * raidsize/diskcnt;

28、其中,ddr_addr表示取数的ddr地址,ch_ddr_本文档来自技高网...

【技术保护点】

1.一种基于RAID0硬盘组的IO写入方法,其特征在于,包括以下步骤:

2.根据权利要求1所述的一种基于RAID0硬盘组的IO写入方法,其特征在于,步骤S4中,对每个硬盘,封装IO写入指令的方法为:

3.根据权利要求2所述的一种基于RAID0硬盘组的IO写入方法,其特征在于,硬盘对应取数的DDR地址的计算方法为:

4.根据权利要求1所述的一种基于RAID0硬盘组的IO写入方法,其特征在于,还包括步骤S5:重复步骤 S2-S4,给每个硬盘对应的地址FIFO中不断补充新的地址。

5.根据权利要求1所述的一种基于RAID0硬盘组的IO写入方法,其特征在于,步骤S2中得到数据增量的具体过程为:

6.根据权利要求5所述的一种基于RAID0硬盘组的IO写入方法,其特征在于,固定大小的数据块为RAID0硬盘组组阵后一次IO写入的数据量大小。

7.一种基于RAID0硬盘组的IO写入模型,其特征在于,包括FPGA装置、嵌入式CPU装置和RAID0硬盘组硬盘阵列,FPGA装置通过PCIe总线与嵌入式CPU装置通信连接,FPGA通过SATA接口向RAID0硬盘组硬盘阵列写入数据;

8.根据权利要求7所述的一种基于RAID0硬盘组的IO写入模型,其特征在于,IO写入指令包括硬盘对应取数的DDR地址和从对应的地址FIFO中读取的SATA地址。

9.根据权利要求8所述的一种基于RAID0硬盘组的IO写入模型,其特征在于,硬盘对应取数的DDR地址的计算方法为:

10.根据权利要求8所述的一种基于RAID0硬盘组的IO写入模型,其特征在于, 一个数据增量对应一个数据块,一个数据块的数据量为RAID0硬盘组组阵后一次IO写入的数据量大小。

...

【技术特征摘要】

1.一种基于raid0硬盘组的io写入方法,其特征在于,包括以下步骤:

2.根据权利要求1所述的一种基于raid0硬盘组的io写入方法,其特征在于,步骤s4中,对每个硬盘,封装io写入指令的方法为:

3.根据权利要求2所述的一种基于raid0硬盘组的io写入方法,其特征在于,硬盘对应取数的ddr地址的计算方法为:

4.根据权利要求1所述的一种基于raid0硬盘组的io写入方法,其特征在于,还包括步骤s5:重复步骤 s2-s4,给每个硬盘对应的地址fifo中不断补充新的地址。

5.根据权利要求1所述的一种基于raid0硬盘组的io写入方法,其特征在于,步骤s2中得到数据增量的具体过程为:

6.根据权利要求5所述的一种基于raid0硬盘组的io写入方法,其特征在于,固定大小的数据块为raid0硬盘组组阵...

【专利技术属性】
技术研发人员:舒凯羊雪芳张益铭
申请(专利权)人:成都领目科技有限公司
类型:发明
国别省市:

网友询问留言 已有0条评论
  • 还没有人留言评论。发表了对其他浏览者有用的留言会获得科技券。

1