发明内容
本发明的目的在于,针对上述问题,提出一种基于RDMA架构设计的PQ检验模块及检验方法,以实现在数据存储出错时,对数据进行准确恢复的优点。
为实现上述目的,本发明采用的技术方案是:
一种基于RDMA架构设计的PQ检验模块,所述PQ硬件校验模块是作数据P检验和Q检验的数据恢复模块,PQ硬件校验模块通过FPGA硬件逻辑实现了P检验硬件算法和Q检验硬件算法,通过对RDMA系统架构的RDMA状态机缓存数据和状态控制信息硬件接口进行硬件逻辑的PQ检验硬件算法实现,同时将PQ检验的值与数据并发到系统内存,并存入到系统相应存储介质中去,包括有P校验模块和Q校验模块。
根据本发明的优选实施例,所述P校验模块包括有XOR_FSM模块和XOR_BUF模块;
所述XOR_FSM模块:负责将每次突发长度的异或数据通过NPI接口传到系统内存,XOR_FSM模块通过硬件状态机的模式来处理异或数据,根据P校验请求开始从XOR_BUF模块中读取数据写到系统内存中;
所述XOR_BUF模块:对流控数据作异或计算,并将计算出来的异或数据传给XOR_FSM模块;XOR_BUF模块定义了一个双口的同步RAM来做流控数据的缓存和异或计算;
所述Q校验模块包括有信号控制模块,信号分析模块、乘法计算模块和P校验模块;
所述信号控制模块:对并发输入Q校验模块的输入接口信号作3个时钟的延时再输出,延迟3个时钟是为了乘法计算模块能够有足够的时间等待接收和计算数据,保证乘法计算模块的输入数据信号的稳定可靠;
所述信号分析模块:处理数据数据的盘符标志信息,对盘符信息作伽罗瓦域计算再输出。
所述乘法计算模块:作盘符信息伽罗瓦域计算在输出值和数据的乘法运算;
所述P校验模块,供Q校验模块调用作异或运算,最后输出P校验值到NPI内存接口和总线。
同时本发明的技术方案还公开了一种基于RDMA架构设计的PQ检验模块的PQ检验方法,
所述PQ校验模块中进行P校验和Q校验的算法数据在做异或计算,在P校验模块中通过XOR_FSM模块实现异或校验状态机的功能控制,在Q校验模块中的异或校验是调用了P校验功能模块实现Q计算的异或功能;XOR_FSM模块实现的异或校验状态机的功能首先状态机处于空闲状态,在空闲状态检测P检验请求状态信号p_req的状态,如果请求有效则会按照突发字节的长度去依次读出双口同步RAM中的数据到数据总线上,直到读出数据的最后一个字节长度时,跳转到下一个请求NPI接口请求状态等待内存地址响应,如果收到内存地址响应信号则认为是此次突发数据完成,则状态机跳转到下一个状态,在下一个状态会有一个时钟的延时来保证数据完整性和信号稳定,如果写内存数据完成则跳到数据完成状态否则跳转到数据等待状态,继续等待接收数据写入到内存;在数据完成状态一个时钟的延时完成后直接跳转到状态机空闲状态,同时响应P校验完成相应标志信号;其异或状态机的各个状态跳转具体如下:
S_IDLE状态:状态机处于空闲状态,在这个状态会检测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检验实现硬件加速算法和逻辑保证了数据传输的速度和存储系统的整体性能。达到了在数据存储出错时,对数据进行准确恢复的目的。
下面通过附图和实施例,对本发明的技术方案做进一步的详细描述。
具体实施方式
以下结合附图对本发明的优选实施例进行说明,应当理解,此处所描述的优选实施例仅用于说明和解释本发明,并不用于限定本发明。
如图2所示,一种基于RDMA架构设计的PQ检验模块,PQ硬件校验模块是作数据P检验和Q检验的数据恢复模块,PQ硬件校验模块通过FPGA硬件逻辑实现了P检验硬件算法和Q检验硬件算法,通过对RDMA系统架构的RDMA状态机缓存数据和状态控制信息硬件接口进行硬件逻辑的PQ检验硬件算法实现,同时将PQ检验的值与数据并发到系统内存,并存入到系统相应存储介质中去,包括有P校验模块和Q校验模块。
其中,P校验模块包括有XOR_FSM模块和XOR_BUF模块;
XOR_FSM模块:负责将每次突发长度的异或数据通过NPI接口传到系统内存,XOR_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校验模块中通过XOR_FSM模块实现异或校验状态机的功能控制,在Q校验模块中的异或校验是调用了P校验功能模块实现Q计算的异或功能;XOR_FSM模块实现的异或校验状态机的功能首先状态机处于空闲状态,在空闲状态检测P检验请求状态信号p_req的状态,如果请求有效则会按照突发字节的长度去依次读出双口同步RAM中的数据到数据总线上,直到读出数据的最后一个字节长度时,跳转到下一个请求NPI接口请求状态等待内存地址响应,如果收到内存地址响应信号则认为是此次突发数据完成,则状态机跳转到下一个状态,在下一个状态会有一个时钟的延时来保证数据完整性和信号稳定,如果写内存数据完成则跳到数据完成状态否则跳转到数据等待状态,继续等待接收数据写入到内存;在数据完成状态一个时钟的延时完成后直接跳转到状态机空闲状态,同时响应P校验完成相应标志信号;其异或状态机的各个状态跳转具体如下:
S_IDLE状态:状态机处于空闲状态,在这个状态会检测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描述符数据结构说明:
其中:scnt:表示有多少个扇区,为描述符控制状态信息;
bcnt:表示有多少个硬盘,为描述符控制状态信息;
dma_op:dma操作选项,有P,Q,C三个操作;
tag:预留标记状态。
RDMA描述符主要控制状态信息接口信号如表二所示:
表二:RDMA描述符主要控制状态信息接口信号说明:
XOR_FSM模块:负责将每次突发长度的异或的数据通过NPI接口传到系统内存。XOR_FSM模块通过硬件状态机的模式来处理异或数据,根据P校验请求开始从XOR_BUF模块中读取数据写到系统内存中。如读取数据的长度是NPI接口定义的突发长度64字,总线位宽为64位,共有512个字节,XOR_FSM模块的状态机分为两次传输,每次传输128个字节,并控制数据流控信号,包括数据传输状态的起始(tx_sof)和结束(tx_eof)信号以及流控状态信号(tx_data_ready,tx_data_valid)来保证数据传输的稳定和可控。
XOR_BUF模块:对流控数据作异或计算,并计算出来的异或数据传给XOR_FSM模块。XOR_BUF模块定义了一个双口的同步RAM来做流控数据的缓存和异或计算。按照NPI接口每次数据传输突发长度为512个字节,通过硬件逻辑定义了一个64为宽度和64位深度的双口同步RAM(即大小为512字节),并且控制双口同步RAM处理的一个端口为只读,另一个端口为只写。XOR_BUF模块对数据的异或计算是发生在不同磁盘间的数据,对存入到双口同步RAM的第一个512字节数据是不做异或运算的,当下一个512字节的数据到来时,把当前数据与前一个存入到双口同步RAM的数据作异或运算,同时将异或运算的结果填入到当前双口同步RAM的位置。具体操作如下:在数据位有效(tx_data_ready和tx_data_valid都为高电平),把接收到的数据tx_data0(tx_data的数据位宽都为64位)存放到双口同步RAM的buf0的位置,等下一个时钟到来时把tx_data1的数据存放到双口同步RAM的buf1的位置,依次填写双口同步RAM,共有512字节的大小。当下一个512字节的数据为有效时,把接收到的下一个磁盘的数据tx_data0放到数据总线上,等待下一个时钟周期到来时,同时在这个时钟周期会使能双口RAM的写操作,写操作的数据即为下一个磁盘的数据tx_data0和前一个磁盘的tx_data0的异或的值填入到双口同步RAM的buf0位置,依次计算tx_data数据与前一个磁盘的tx_data的异或值填入到双口同步RAM的buf中。XOR_BUF模块的数据接口只有一个,就是经过双口同步RAM的读端口,它将经过异或计算的值输出到XOR_FSM模块。
其具体如下:如P校验算法实现与数据恢复:
P校验算法原理是异或算法(XOR算法),是RAID运算里最基础的概念,也是RAID5的容错原理。
P=D0⊕D1⊕D2⊕D3⊕......⊕Dn;
D0,D1,D2,D3......Dn为数据;
“⊕”代表数据为的异或计算;
P校验数据恢复:
如果P为数据块X,Y,Z计算的XOR值,即P=X⊕Y⊕Z时;当X数据块故障时或者丢失时,可以通过P,Y,Z来恢复出X数据块的值,恢复X块数据的计算方法为:X=P⊕Y⊕Z=(X⊕Y⊕Z)⊕Y⊕Z=X⊕(Y⊕Y)⊕(Z⊕Z)。
Q校验算法实现与数据恢复:
Q校验算法实现与数据恢复原理:
Q=(K0*D0)⊕(K1*D1)⊕(K2*D2)⊕(K3*D3)⊕…...⊕(Kn*Dn)
Kn为磁盘信息的伽罗瓦域(GaloisField)计算。
Dn为盘符数据;
PQ硬件校验数据恢复接口如表三所示:
表三:PQ硬件校验数据恢复接口说明:
如图1所示的是基于RDMA架构设计的模块结构图,包括如图1所示的是基于RDMA架构设计的模块结构图,包括描述符读写寄存器模块1,RDMA状态机模块2,B_DMA模块3,NPI接口模块4,PQ硬件校验模块5和A_DMA模块6。
描述符读写寄存器模块1:描述符读写寄存器模块是上位机软件访问硬件的寄存器接口模块,上位机应用层软件通过DCR总线访问描述符读写寄存器模块来初始化硬件描述符寄存器的值,RDMA状态机通过描述符寄存器的值来执行DMA操作。RDMA架构设计的所有数据拷贝DMA操作读写都是通过描述符状态控制信息下发过来的。
RDMA状态机模块2:是整个RDMA架构设计的主状态机,是各个信号的主控制模块,负责解析描述符读写寄存器接口的数据,并填写状态机中定义的描述符寄存器的初值,初始化状态机控制字符寄存器的值,初始化DMA读写内存的数据起始地址,DMA描述符地址及数据长度和PQ校验的起始地址。通过控制字符寄存器的值来访问RDMA系统架构两端的DMA(A_DMA和B_DMA),并通知两端的DMA来执行DMA数据搬移动作。访问RDMA系统架构两端的DMA进行数据搬移动作是双向的,通过初始化状态机控制字符的控制命令确定数据搬移的方向。RDMA状态机模块实现了两端系统间的数据拷贝的主题架构功能,具体的数据拷贝搬移动作由其它几个模块来执行。
B_DMA模块3:是整个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硬件校验逻辑。
NPI接口模块4:硬件访问系统内存的接口,提供一个访问系统内存的标准接口。
PQ硬件校验模块5:PQ硬件校验模块是作数据P检验和Q检验的数据恢复模块,PQ硬件校验模块通郭FPGA硬件逻辑实现了P检验硬件算法和Q检验硬件算法,通过对RDMA系统架构的RDMA状态机缓存数据和状态控制信息硬件接口进行硬件逻辑的PQ检验硬件算法实现,同时将PQ检验的值与数据并发到系统内存,并存入到系统相应存储介质中去。如果发生系统丢盘(即数据丢失),则可以通过PQ检验的硬件算法来恢复丢盘的数据到一个新的存储介质中。
A_DMA模块6:是整个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校验。
RDMA架构设计保证了多系统间数据拷贝的数据可靠稳定有效的传输,减少了CPU的参与,降低了CPU负担,提高了CPU的工作效率以及存储系统的整体性能。同时RDMA架构设计预留了PQ硬件检验的数据和控制状态信息接口,为作数据恢复的PQ检验FPGA硬件逻辑实现提高提供了数据可靠稳定传输保障和方便。
如图3所示的是异或状态机流程图PQ硬件检验异或状态机各个状态描述如下:
PQ硬件校验模块中进行P校验和Q校验的算法大部分数据都是在异或计算,在P校验模块中通过XOR_FSM模块实现异或校验状态机的功能控制,在Q校验模块中的异或校验是调用了P校验功能模块实现Q计算的异或功能。
PQ硬件检验异或状态机描述:首先状态机处于空闲状态,在空闲状态检测P检验请求状态信号p_req的状态,如果请求有效(电平高有效)则会按照突发字节(512字节)的长度去依次读出双口同步RAM中的数据到数据总线上,知道读出数据的最后一个字节长度时,跳转到下一个请求NPI接口请求状态等待内存地址响应,如果收到内存地址响应信号则认为是此次突发数据完成,则状态机跳转到下一个状态,在下一个状态会有一个时钟的延时来保证数据完整性和信号稳定,如果写内存数据完成则跳到数据完成状态否则跳转到数据等待状态,继续等待接收数据写入到内存。在数据完成状态一个时钟的延时完成后直接跳转到状态机空闲状态,同时响应P校验完成相应标志信号p_ack。
S_IDLE状态:状态机处于空闲状态,在这个状态会检测p_req状态是否开始进行异或校验并将异或校验的值存入内存。如果状态机检测到p_req状态为1,则状态跳转到S_WAIT状态,否者处于检测状态。
S_WAIT状态:状态机等待状态,在此状态状态机将突发长度(512字节)赋值给状态机内部读数据长度寄存器wr_len的值,以便状态机判断读一次突发数据的完成标志位(we_len=1)。状态机在S_WAIT状态直接跳转到S_DATA状态。
S_DATA状态:状态机数据传送状态,在此状态状态机执行读双口同步RAM的值(即写双口同步RAM的值到内存),状态机检测突发数据长度的标志位(wr_len=1),如果状态机突发长度完成,状态机跳转到S_REQ状态。
S_REQ状态:状态机写内存请求状态,在此状态状态机会检测内存地址响应信号PIM_AddrAck的值,如果接收到内存地址响应信号,状态机则认为是此次突发数据完成,状态机状态跳转到S_NEXT状态。
S_NEXT状态:状态机一个时钟的延时状态。在此状态,状态机接收到内存地址响应信号后有一个时钟的延时,保证数据的稳定和完整,检测到数据完成则跳转到S_DONE状态,否则跳转到状态机等待S_WAIT状态继续等待写内存数据。
S_DONE状态:写内存数据完成状态,在此状态一个时钟后直接跳转到状态机空闲状态,同时响应P校验完成标志信号p_ack给XOR_BUF模块。
本发明技术方案还具有以下优点:
通过硬件逻辑实现PQ算法,这样可以减少软件处理PQ算法恢复数据的时间;通过硬件加速PQ算法的实现提高了存储系统数据传输速度和存储系统整体性能。基于RDMA架构设计的PQ检验硬件实现,通过RDMA架构实现数据在多系统间进行数据拷贝,同时对在多系统间进行数据拷贝的数据进行缓存,并对数据进行PQ校验硬件算法FPGA逻辑实现。达到了提高存储系统数据传输速度和存储系统整体性能的目的。
最后应说明的是:以上所述仅为本发明的优选实施例而已,并不用于限制本发明,尽管参照前述实施例对本发明进行了详细的说明,对于本领域的技术人员来说,其依然可以对前述各实施例所记载的技术方案进行修改,或者对其中部分技术特征进行等同替换。凡在本发明的精神和原则之内,所作的任何修改、等同替换、改进等,均应包含在本发明的保护范围之内。