基于rdma架构设计的pq检验模块及检验方法

文档序号:6384559阅读:371来源:国知局
专利名称:基于rdma架构设计的pq检验模块及检验方法
技术领域
本发明具体地,涉及一种在数据传输中,基于RDMA架构设计的PQ检验模块及检验方法。
背景技术
目前,RDMA技术全称远程直接数据存取技术,就是为了解决网络传输中服务器端数据处理的延迟而产生的。RDMA通过网络把资料直接传入计算机的存储区,将数据从一个系统快速移动到远程系统存储器中,而不对操作系统造成任何影响,这样就不需要用到多少计算机的处理功能。它消除了外部存储器复制和文本交换操作,因而能解放内存带宽和CPU周期用于改进应用系统性能。奇偶校验是一种校验代码传输正确性的方法。根据被传输的一组二进制代码的数位中的“I”的个数是奇数或偶数来进行校验。采用奇数的称为奇校验,反之,称为偶校验。采用何种校验是事先规定好的。通常专门设置一个奇偶校验位,用它使这种代码中的“I”的个数为奇数或偶数。若用奇校验,则当接收端收到这组代码时,校验“I”的个数是否为奇数,从而确定传输代码的正确性。RAID (redundant array of independent disks 的简称,独立磁盘冗余整列)。独立磁盘冗余阵列是把相同的数据存储在多个硬盘的不同的地方的方法。通过把数据放在多个硬盘上,输入输出操作能以平衡的方式交叠,改良性能。原理是利用数组方式来作磁盘组,配合数据分散排列的设计,提升数据的安全性。磁盘阵列是由很多价格较便宜的磁盘,组合成一个容量巨大的磁盘组,利用个别磁盘提供数据所产生加成效果提升整个磁盘系统效能。利用这项技术,将数据切割成许多区段,分别存放在各个硬盘上。磁盘阵列还能利用同位检查(Parity Check)的观念,在数组中任一颗硬盘故障时,仍可读出数据,在数据重构时,将数据经计算后重新置入新硬盘中。RAID通过在多个磁盘上同时存储和读取数据来大幅提高存储系统的数据吞吐量(Throughput)。在RAID中,可以让很多磁盘驱动器同时传输数据,而这些磁盘驱动器在逻辑上又是一个磁盘驱动器,所以使用RAID可以达到单个磁盘驱动器几倍、几十倍甚至上百倍的速率。RAID通过数据校验提供容错功能。普通磁盘驱动器无法提供容错功能,如果不包括写在磁盘上的CRC (循环冗余校验)码的话。RAID容错是建立在每个磁盘驱动器的硬件容错功能之上的,所以它提供更高的安全性。在很多RAID模式中都有较为完备的相互校验/恢复的措施,甚至是直接相互的镜像备份,从而大大提闻了 RAID系统的容错度,提闻了系统的稳定冗余性。随着信息资源的快速增长,数据的安全性,可靠传输性要求越来越高,对存储系统,在存储容量、存储安全性、存储速度和存储数据的可恢复性要求也越来越高。如果用户的存储系统崩溃导致重要数据丢失,那么将会给用户带来灾难性的后果,所以在存储系统对于其数据的可恢复性及数据的稳定性可靠性和安全性要求很高,现有的存储系统数据恢复算法通过应用层软件去作PQ检验的算法,这个过程占用系统CPU的资源,且CPU处理算法时间较长,从而导致数据恢复时间过长。

发明内容
本发明的目的在于,针对上述问题,提出一种基于RDMA架构设计的PQ检验模块及检验方法,以实现在数据存储出错时,对数据进行准确恢复的优点。为实现上述目的,本发明采用的技术方案是
一种基于RDMA架构设计的PQ检验模块,所述PQ硬件校验模块是作数据P检验和Q检验的数据恢复模块,PQ硬件校验模块通过FPGA硬件逻辑实现了 P检验硬件算法和Q检验硬件算法,通过对RDMA系统架构的RDMA状态机缓存数据和状态控制信息硬件接口进行硬件逻辑的PQ检验硬件算法实现,同时将PQ检验的值与数据并发到系统内存,并存入到系统相应存储介质中去,包括有P校验模块和Q校验模块。根据本发明的优选实施例,所述P校验模块包括有X0R_FSM模块和X0R_BUF模块; 所述X0R_FSM模块负责将每次突发长度的异或数据通过NPI接口传到系统内存,X0R_
FSM模块通过硬件状态机的模式来处理异或数据,根据P校验请求开始从X0R_BUF模块中读取数据写到系统内存中;
所述X0R_BUF模块对流控数据作异或计算,并将计算出来的异或数据传给X0R_FSM模块;X0R_BUF模块定义了一个双口的同步RAM来做流控数据的缓存和异或计算;
所述Q校验模块包括有信号控制模块,信号分析模块、乘法计算模块和P校验模块;所述信号控制模块对并发输入Q校验模块的输入接口信号作3个时钟的延时再输出,延迟3个时钟是为了乘法计算模块能够有足够的时间等待接收和计算数据,保证乘法计算模块的输入数据信号的稳定可靠;
所述信号分析模块处理数据数据的盘符标志信息,对盘符信息作伽罗瓦域计算再输出。所述乘法计算模块作盘符信息伽罗瓦域计算在输出值和数据的乘法运算;
所述P校验模块,供Q校验模块调用作异或运算,最后输出P校验值到NPI内存接口和总线。同时本发明的技术方案还公开了一种基于RDMA架构设计的PQ检验模块的PQ检验方法,
所述PQ校验模块中进行P校验和Q校验的算法数据在做异或计算,在P校验模块中通过X0R_FSM模块实现异或校验状态机的功能控制,在Q校验模块中的异或校验是调用了 P校验功能模块实现Q计算的异或功能;X0R_FSM模块实现的异或校验状态机的功能首先状态机处于空闲状态,在空闲状态检测P检验请求状态信号P_req的状态,如果请求有效则会按照突发字节的长度去依次读出双口同步RAM中的数据到数据总线上,直到读出数据的最后一个字节长度时,跳转到下一个请求NPI接口请求状态等待内存地址响应,如果收到内存地址响应信号则认为是此次突发数据完成,则状态机跳转到下一个状态,在下一个状态会有一个时钟的延时来保证数据完整性和信号稳定,如果写内存数据完成则跳到数据完成状态否则跳转到数据等待状态,继续等待接收数据写入到内存;在数据完成状态一个时钟的延时完成后直接跳转到状态机空闲状态,同时响应P校验完成相应标志信号;其异或状态机的各个状态跳转具体如下S.1DLE状态状态机处于空闲状态,在这个状态会检测p_req信号是否开始进行异或校验并将异或校验的值存入内存;如果状态机检测到P_req信号状态为1,则状态跳转到S_WAIT状态,否者处于检测状态;
S_WAIT状态状态机等待状态,在此状态状态机将突突发字节的长度数值赋值给状态机内部读数据长度寄存器wr_len的值,以便状态机判断读一次突发数据的完成标志位,状态机在S_WAIT状态直接跳转到S_DATA状态;
S_DATA状态状态机数据传送状态,在此状态状态机执行读双口同步RAM的值即写双口同步RAM的值到内存,状态机检测突发数据长度的标志位,如果状态机突发长度完成,状态机跳转到S_REQ状态;
S_REQ状态状态机写内存请求状态,在此状态状态机会检测内存地址响应信号PIM_AddrAck的值,如果接收到内存地址响应信号,状态机则认为是此次突发数据完成,状态机状态跳转到S_NEXT状态;
S_NEXT状态状态机一个时钟的延时状态,在此状态,状态机接收到内存地址响应信号后有一个时钟的延时,保证数据的稳定和完整,检测到数据完成则跳转到S_DONE状态,否则跳转到状态机等待S_WAIT状态继续等待写内存数据;
S.DONE状态写内存数据完成状态,在此状态一个时钟后直接跳转到状态机空闲状态,同时响应P校验完成标志信号给XOR_BUF模块。本发明的技术方案,提供一种基于RDMA架构设计的PQ校验硬件架构,实现用户丢失单盘或双盘数据情况下,通过PQ校验(同位奇偶检验检查)计算使得丢失数据得以恢复,且基于RDMA架构设计保证数据可靠稳定有效的传输,硬件PQ检验实现硬件加速算法和逻辑保证了数据传输的速度和存储系统的整体性能。达到了在数据存储出错时,对数据进行准确恢复的目的。下面通过附图和 实施例,对本发明的技术方案做进一步的详细描述。


图1为本发明实施例所述的RDMA架构的结构示意图2为本发明实施例所述的基于RDMA架构设计的PQ检验模块的结构示意图3为P校验模块中X0R_FSM模块工作流程图。
具体实施例方式以下结合附图对本发明的优选实施例进行说明,应当理解,此处所描述的优选实施例仅用于说明和解释本发明,并不用于限定本发明。如图2所示,一种基于RDMA架构设计的PQ检验模块,PQ硬件校验模块是作数据P检验和Q检验的数据恢复模块,PQ硬件校验模块通过FPGA硬件逻辑实现了 P检验硬件算法和Q检验硬件算法,通过对RDMA系统架构的RDMA状态机缓存数据和状态控制信息硬件接口进行硬件逻辑的PQ检验硬件算法实现,同时将PQ检验的值与数据并发到系统内存,并存入到系统相应存储介质中去,包括有P校验模块和Q校验模块。其中,P校验模块包括有X0R_FSM模块和X0R_BUF模块;
X0R_FSM模块负责将每次突发长度的异或数据通过NPI接口传到系统内存,X0R_FSM模块通过硬件状态机的模式来处理异或数据,根据P校验请求开始从XOR_BUF模块中读取数据写到系统内存中;
XOR_BUF模块对流控数据作异或计算,并将计算出来的异或数据传给XOR_FSM模块;XOR_BUF模块定义了一个双口的同步RAM来做流控数据的缓存和异或计算;
Q校验模块包括有信号控制模块,信号分析模块、乘法计算模块和P校验模块;
信号控制模块对并发输入Q校验模块的输入接口信号作3个时钟的延时再输出,延迟3个时钟是为了乘法计算模块能够有足够的时间等待接收和计算数据,保证乘法计算模块的输入数据信号的稳定可靠;
信号分析模块处理数据数据的盘符标志信息,对盘符信息作伽罗瓦域计算再输出。乘法计算模块作盘符信息伽罗瓦域计算在输出值和数据的乘法运算;
Q校验模块调用P校验模块作异或运算,最后输出P校验值到NPI内存接口和总线。PQ校验模块有P值校验模块和Q值校验模块,通过FPGA实现的硬件逻辑算法计算得出的P校验的值和Q校验的值经过NPI接口数据总线发往内存,以便于在数据丢失时,系统恢复数据时用到P和Q的值来重新恢复数据。P值校验模块接收P校验模块硬件校验计算的P值数据,并将其数据发到数据总线和通过NPI接口写到系统内存。 Q值校验模块接收Q校验模块硬件校验计算的Q值数据,并将其数据发到数据总线和通过NPI接口写到系统内存。 如图3所示,一种基于RDMA架构设计的PQ检验模块的PQ检验方法,
PQ校验模块中进行P校验和Q校验的算法数据在做异或计算,在P校验模块中通过X0R_FSM模块实现异或校验状态机的功能控制,在Q校验模块中的异或校验是调用了 P校验功能模块实现Q计算的异或功能;X0R_FSM模块实现的异或校验状态机的功能首先状态机处于空闲状态,在空闲状态检测P检验请求状态信号P_req的状态,如果请求有效则会按照突发字节的长度去依次读出双口同步RAM中的数据到数据总线上,直到读出数据的最后一个字节长度时,跳转到下一个请求NPI接口请求状态等待内存地址响应,如果收到内存地址响应信号则认为是此次突发数据完成,则状态机跳转到下一个状态,在下一个状态会有一个时钟的延时来保证数据完整性和信号稳定,如果写内存数据完成则跳到数据完成状态否则跳转到数据等待状态,继续等待接收数据写入到内存;在数据完成状态一个时钟的延时完成后直接跳转到状态机空闲状态,同时响应P校验完成相应标志信号;其异或状态机的各个状态跳转具体如下
S.1DLE状态状态机处于空闲状态,在这个状态会检测p_req信号是否开始进行异或校验并将异或校验的值存入内存;如果状态机检测到P_req信号状态为1,则状态跳转到S_WAIT状态,否者处于检测状态;
S.WAIT状态状态机等待状态,在此状态状态机将突突发字节的长度数值赋值给状态机内部读数据长度寄存器wr_len的值,以便状态机判断读一次突发数据的完成标志位,状态机在S_WAIT状态直接跳转到S_DATA状态;
S_DATA状态状态机数据传送状态,在此状态状态机执行读双口同步RAM的值即写双口同步RAM的值到内存,状态机检测突发数据长度的标志位,如果状态机突发长度完成,状态机跳转到S_REQ状态;
S_REQ状态状态机写内存请求状态,在此状态状态机会检测内存地址响应信号PIM_AddrAck的值,如果接收到内存地址响应信号,状态机则认为是此次突发数据完成,状态机状态跳转到S_NEXT状态;
S_NEXT状态状态机一个时钟的延时状态,在此状态,状态机接收到内存地址响应信号后有一个时钟的延时,保证数据的稳定和完整,检测到数据完成则跳转到S_DONE状态,否则跳转到状态机等待S_WAIT状态继续等待写内存数据;
S.DONE状态写内存数据完成状态,在此状态一个时钟后直接跳转到状态机空闲状态,同时响应P校验完成标志信号给XOR_BUF模块。RDMA系统架构设计,由RDMA状态机模块,A_DMA模块,B_DMA模块,描述符读写寄存器模块,PQ硬件校验模块和NPI接口模块组成,
RDMA状态机模块是整个RDMA架构设计的主状态机,是各个信号的主控制模块,负责解析描述符读写寄存器接口的数据,并填写状态机中定义的描述符寄存器的初值,初始化状态机控制字符寄存器的值,初始化DMA读写内存的数据起始地址,DMA描述符地址及数据长度和PQ校验的起始地址。通过控制字符寄存器的值来访问RDMA系统架构两端的DMA(A_DMA和B_DMA),并通知两端的DMA来执行DMA数据搬移动作。访问RDMA系统架构两端的DMA进行数据搬移动作是双向的,通过初始化状态机控制字符的控制命令确定数据搬移的方向。RDMA状态机模块实现了两端系统间的数据拷贝的主题架构功能,具体的数据拷贝搬移动作由其它几个模块来执行。A_DMA模块是整个RDMA架构设计的数据拷贝执行者。A_DMA模块首先会去读去RDMA架构的A_DMA模块端描述符寄存器的值,并从描述符地址对应的内存去读取数据发送和接收的状态控制寄存器的值,根据这些状态寄存器的值去执行要发送还是接收数据。A_DMA的前端是系统(操作系统的内存),后端是B_DMA模块,数据拷贝在前端系统内存和后端B_DMA模块间进行,数据拷贝的方向是双向的,数据可以是从前端系统内存通过数据总线到B_DMA模块,也可以是从后端B_DMA模块到系统前端内存。在发送状态时,A_DMA模块读前端系统内存信息到B_DMA模块;在接收状态时,A_DMA模块写后端B_DMA模块数据到前端系统内存。同时A_DMA模块缓存数据发送和接收的控制状态信息和数据,将这些数据和状态控制信息输出到硬件接口,以备数据做PQ校验。B_DMA模块是整个RDMA架构设计的数据拷贝执行者。B_DMA模块首先会去读RDMA架构的B_DMA模块端描述符寄存器的值,并从描述符地址对应的内存去读取数据发送和接收的状态控制寄存器的值,根据这些状态寄存器的值去执行要发送还是接收数据。B_DMA的前端是系统(操作系统的内存),后端是A_DMA模块,数据拷贝在前端系统内存和后端A_DMA模块间进行,数据拷贝的方向是双向的,数据可以是从前端系统内存通过数据总线到A_DMA模块,也可以是从后端A_DMA模块到系统前端内存。在发送状态时,B_DMA模块读前端系统内存信息到A_DMA模块;在接收状态时,B_DMA模块写后端A_DMA模块数据到前端系统内存。同时B_DMA模块缓存数据发送和接收的控制状态信息和数据,将这些数据和状态控制信息输出到硬件接口,以备数据做PQ硬件校验逻辑。描述符读写寄存器模块描述符读写寄存器模块是上位机软件访问硬件的寄存器接口模块,上位机应用层软件通过DCR总线访问描述符读写寄存器模块来初始化硬件描述符寄存器的值,RDMA状态机通过描述符寄存器的值来执行DMA操作。RDMA架构设计的所有数据拷贝DMA操作读写都是通过描述符状态控制信息下发过来的。
PQ硬件校验模块PQ硬件校验模块是作数据P检验和Q检验的数据恢复模块,PQ硬件校验模块通郭FPGA硬件逻辑实现了 P检验硬件算法和Q检验硬件算法,通过对RDMA系统架构的RDMA状态机缓存数据和状态控制信息硬件接口进行硬件逻辑的PQ检验硬件算法实现,同时将PQ检验的值与数据并发到系统内存,并存入到系统相应存储介质中去。如果发生系统丢盘(即数据丢失),则可以通过PQ检验的硬件算法来恢复丢盘的数据到一个新的存储介质中。NPI接口模块硬件访问系统内存的接口,提供一个访问系统内存的标准接口。RDMA架构设计保证了多系统间数据拷贝的数据可靠稳定有效的传输,减少了 CPU的参与,降低了 CPU负担,提高了 CPU的工作效率以及存储系统的整体性能。同时RDMA架构设计预留了 PQ硬件检验的数据和控制状态信息接口,为作数据恢复的PQ检验FPGA硬件逻辑实现提高提供了数据可靠稳定传输保障和方便。RDMA描述符数据结构如下表所示
表一 RDMA描述符数据结构说明
权利要求
1.一种基于RDMA架构设计的PQ检验模块,其特征在于,所述PQ硬件校验模块是作数据P检验和Q检验的数据恢复模块,PQ硬件校验模块通过FPGA硬件逻辑实现了 P检验硬件算法和Q检验硬件算法,通过对RDMA系统架构的RDMA状态机缓存数据和状态控制信息硬件接口进行硬件逻辑的PQ检验硬件算法实现,同时将PQ检验的值与数据并发到系统内存,并存入到系统相应存储介质中去,包括P校验模块和Q校验模块。
2.根据权利要求1所述的基于RDMA架构设计的PQ检验模块,其特征在于,所述P校验模块包括XOR_FSM模块和XOR_BUF模块; 所述XOR_FSM模块负责将每次突发长度的异或数据通过NPI接口传到系统内存,XOR_FSM模块通过硬件状态机的模式来处理异或数据,根据P校验请求开始从XOR_BUF模块中读取数据写到系统内存中; 所述XOR_BUF模块对流控数据作异或计算,并将计算出来的异或数据传给XOR_FSM模块;XOR_BUF模块定义了一个双口的同步RAM来做流控数据的缓存和异或计算。
3.根据权利要求1所述的基于RDMA架构设计的PQ检验模块,其特征在于,所述Q校验模块包括信号控制模块,信号分析模块、乘法计算模块和上述P校验模块; 所述信号控制模块对并发输入Q校验模块的输入接口信号作3个时钟的延时再输出,延迟3个时钟是为了乘法计算模块能够有足够的时间等待接收和计算数据,保证乘法计算模块的输入数据信号的稳定可靠; 所述信号分析模块处理数据的盘符标志信息,对盘符信息作伽罗瓦域计算再输出; 所述乘法计算模块作盘符信息伽罗瓦域计算在输出值和数据的乘法运算; 所述P校验模块,供Q校验模块调用作异或运算,最后输出P校验值到NPI内存接口和总线。
4.根据权利要求1至3所述的基于RDMA架构设计的PQ检验模块的PQ检验方法,其特征在于, 所述PQ校验模块中进行P校验和Q校验的算法数据在做异或计算,在P校验模块中通过XOR_FSM模块实现异或校验状态机的功能控制,在Q校验模块中的异或校验是调用了 P校验功能模块实现Q计算的异或功能;XOR_FSM模块实现的异或校验状态机功能,其具体描述如下文 首先状态机处于空闲状态,在空闲状态检测P检验请求状态信号P_req的状态,如果请求有效则会按照突发字节的长度去依次读出双口同步RAM中的数据到数据总线上,直到读出数据的最后一个字节长度时,跳转到下一个请求NPI接口请求状态等待内存地址响应,如果收到内存地址响应信号则认为是此次突发数据完成,则状态机跳转到下一个状态,在下一个状态会有一个时钟的延时来保证数据完整性和信号稳定,如果写内存数据完成则跳到数据完成状态否则跳转到数据等待状态,继续等待接收数据写入到内存;在数据完成状态一个时钟的延时完成后直接跳转到状态机空闲状态,同时响应P校验完成相应标志信号。
5.根据权利要求4所述的的基于RDMA架构设计的PQ检验模块的PQ检验方法,其特征在于,所述XOR_FSM模块即异或检验状态机模块,其状态机的状态转换如下 S.1DLE状态状态机处于空闲状态,在这个状态会检测p_req信号是否开始进行异或校验并将异或校验的值存入内存;如果状态机检测到P_req信号状态为1,则状态跳转到S_WAIT状态,否者处于检测状态; S.WAIT状态状态机等待状态,在此状态状态机将突发字节的长度数值赋值给状态机内部读数据长度寄存器wr_len的值,以便状态机判断读一次突发数据的完成标志位,状态机在S_WAIT状态直接跳转到S_DATA状态; S_DATA状态状态机数据传送状态,在此状态状态机执行读双口同步RAM的值即写双口同步RAM的值到内存,状态机检测突发数据长度的标志位,如果状态机突发长度完成,状态机跳转到S_REQ状态; S_REQ状态状态机写内存请求状态,在此状态状态机会检测内存地址响应信号PIM_AddrAck的值,如果接收到内存地址响应信号,状态机则认为是此次突发数据完成,状态机状态跳转到S_NEXT状态;· S_NEXT状态状态机一个时钟的延时状态,在此状态,状态机接收到内存地址响应信号后有一个时钟的延时,保证数据的稳定和完整,检测到数据完成则跳转到S_DONE状态,否则跳转到状态机等待S_WAIT状态继续等待写内存数据; S.DONE状态写内存数据完成状态,在此状态一个时钟后直接跳转到状态机空闲状态,同时响应P校验完成标志信号给XOR_BUF模块。
全文摘要
本发明公开了一种基于RDMA架构设计的PQ检验模块及检验方法,通过硬件逻辑实现PQ算法,实现用户丢失单盘或双盘数据情况下,通过PQ校验(同位奇偶检验检查)计算使得丢失数据得以恢复,且基于RDMA架构设计保证数据可靠稳定有效的传输,硬件PQ检验实现硬件加速算法和逻辑保证了数据传输的速度和存储系统的整体性能。达到了在数据存储出错时,对数据进行准确恢复的目的。
文档编号G06F11/10GK103034559SQ20121055077
公开日2013年4月10日 申请日期2012年12月18日 优先权日2012年12月18日
发明者张庆敏, 张衡, 胡刚 申请人:无锡众志和达存储技术股份有限公司
网友询问留言 已有0条留言
  • 还没有人留言评论。精彩留言会获得点赞!
1