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

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

Info

Publication number
CN103034559A
CN103034559A CN2012105507761A CN201210550776A CN103034559A CN 103034559 A CN103034559 A CN 103034559A CN 2012105507761 A CN2012105507761 A CN 2012105507761A CN 201210550776 A CN201210550776 A CN 201210550776A CN 103034559 A CN103034559 A CN 103034559A
Authority
CN
China
Prior art keywords
data
module
state
state machine
xor
Prior art date
Legal status (The legal status is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the status listed.)
Granted
Application number
CN2012105507761A
Other languages
English (en)
Other versions
CN103034559B (zh
Inventor
张庆敏
张衡
胡刚
Current Assignee (The listed assignees may be inaccurate. Google has not performed a legal analysis and makes no representation or warranty as to the accuracy of the list.)
Wuxi North Data Computing Co ltd
Original Assignee
SOUL STORAGE TECHNOLOGY (WUXI) Co Ltd
Priority date (The priority date is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the date listed.)
Filing date
Publication date
Application filed by SOUL STORAGE TECHNOLOGY (WUXI) Co Ltd filed Critical SOUL STORAGE TECHNOLOGY (WUXI) Co Ltd
Priority to CN201210550776.1A priority Critical patent/CN103034559B/zh
Publication of CN103034559A publication Critical patent/CN103034559A/zh
Application granted granted Critical
Publication of CN103034559B publication Critical patent/CN103034559B/zh
Expired - Fee Related legal-status Critical Current
Anticipated expiration legal-status Critical

Links

Images

Abstract

本发明公开了一种基于RDMA架构设计的PQ检验模块及检验方法,通过硬件逻辑实现PQ算法,实现用户丢失单盘或双盘数据情况下,通过PQ校验(同位奇偶检验检查)计算使得丢失数据得以恢复,且基于RDMA架构设计保证数据可靠稳定有效的传输,硬件PQ检验实现硬件加速算法和逻辑保证了数据传输的速度和存储系统的整体性能。达到了在数据存储出错时,对数据进行准确恢复的目的。

Description

基于RDMA架构设计的PQ检验模块及检验方法
技术领域
本发明具体地,涉及一种在数据传输中,基于RDMA架构设计的PQ检验模块及检验方法。
背景技术
目前,RDMA技术全称远程直接数据存取技术,就是为了解决网络传输中服务器端数据处理的延迟而产生的。RDMA通过网络把资料直接传入计算机的存储区,将数据从一个系统快速移动到远程系统存储器中,而不对操作系统造成任何影响,这样就不需要用到多少计算机的处理功能。它消除了外部存储器复制和文本交换操作,因而能解放内存带宽和CPU周期用于改进应用系统性能。
奇偶校验是一种校验代码传输正确性的方法。根据被传输的一组二进制代码的数位中的“1”的个数是奇数或偶数来进行校验。采用奇数的称为奇校验,反之,称为偶校验。采用何种校验是事先规定好的。通常专门设置一个奇偶校验位,用它使这种代码中的“1”的个数为奇数或偶数。若用奇校验,则当接收端收到这组代码时,校验“1”的个数是否为奇数,从而确定传输代码的正确性。
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校验模块包括有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检验实现硬件加速算法和逻辑保证了数据传输的速度和存储系统的整体性能。达到了在数据存储出错时,对数据进行准确恢复的目的。
 下面通过附图和实施例,对本发明的技术方案做进一步的详细描述。
附图说明
图1为本发明实施例所述的RDMA架构的结构示意图;
图2为本发明实施例所述的基于RDMA架构设计的PQ检验模块的结构示意图;
图3为P校验模块中XOR_FSM模块工作流程图。
具体实施方式
以下结合附图对本发明的优选实施例进行说明,应当理解,此处所描述的优选实施例仅用于说明和解释本发明,并不用于限定本发明。
如图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描述符数据结构说明:
Figure 2012105507761100002DEST_PATH_IMAGE001
其中:scnt:表示有多少个扇区,为描述符控制状态信息;
  bcnt:表示有多少个硬盘,为描述符控制状态信息;
  dma_op:dma操作选项,有P,Q,C三个操作;
  tag:预留标记状态。
RDMA描述符主要控制状态信息接口信号如表二所示:
表二:RDMA描述符主要控制状态信息接口信号说明:
Figure 2012105507761100002DEST_PATH_IMAGE002
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为磁盘信息的伽罗瓦域(Galois Field)计算。
  Dn为盘符数据;
PQ硬件校验数据恢复接口如表三所示:
表三:PQ硬件校验数据恢复接口说明:
Figure 2012105507761100002DEST_PATH_IMAGE004
如图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逻辑实现。达到了提高存储系统数据传输速度和存储系统整体性能的目的。
最后应说明的是:以上所述仅为本发明的优选实施例而已,并不用于限制本发明,尽管参照前述实施例对本发明进行了详细的说明,对于本领域的技术人员来说,其依然可以对前述各实施例所记载的技术方案进行修改,或者对其中部分技术特征进行等同替换。凡在本发明的精神和原则之内,所作的任何修改、等同替换、改进等,均应包含在本发明的保护范围之内。

Claims (5)

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_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模块。
CN201210550776.1A 2012-12-18 2012-12-18 基于rdma架构设计的pq检验模块及检验方法 Expired - Fee Related CN103034559B (zh)

Priority Applications (1)

Application Number Priority Date Filing Date Title
CN201210550776.1A CN103034559B (zh) 2012-12-18 2012-12-18 基于rdma架构设计的pq检验模块及检验方法

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
CN201210550776.1A CN103034559B (zh) 2012-12-18 2012-12-18 基于rdma架构设计的pq检验模块及检验方法

Publications (2)

Publication Number Publication Date
CN103034559A true CN103034559A (zh) 2013-04-10
CN103034559B CN103034559B (zh) 2016-06-08

Family

ID=48021479

Family Applications (1)

Application Number Title Priority Date Filing Date
CN201210550776.1A Expired - Fee Related CN103034559B (zh) 2012-12-18 2012-12-18 基于rdma架构设计的pq检验模块及检验方法

Country Status (1)

Country Link
CN (1) CN103034559B (zh)

Cited By (5)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN105579971A (zh) * 2013-09-26 2016-05-11 国际商业机器公司 快速通道用户空间rdma资源错误检测
CN107544863A (zh) * 2017-06-26 2018-01-05 新华三技术有限公司 一种数据存储方法及装置
CN109933303A (zh) * 2019-02-28 2019-06-25 中国人民解放军陆军工程大学 一种多用户高速伪随机序列发生器电路及其工作方法
WO2021089036A1 (zh) * 2019-11-07 2021-05-14 华为技术有限公司 一种数据传输方法、网络设备、网络系统及芯片
US20230385227A1 (en) * 2022-05-27 2023-11-30 Nvidia Corporation Remote descriptor to enable remote direct memory access (rdma) transport of a serialized object

Citations (6)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN101084486A (zh) * 2004-12-23 2007-12-05 英特尔公司 用于校验子生成以及数据恢复的方法和系统
US20080148025A1 (en) * 2006-12-19 2008-06-19 Vinodh Gopal High performance raid-6 system architecture with pattern matching
CN101657802A (zh) * 2006-12-06 2010-02-24 弗森多系统公司(dba弗森-艾奥) 用于远程直接存储器存取固态存储设备的装置、系统及方法
CN102023820A (zh) * 2010-12-01 2011-04-20 北京同有飞骥科技股份有限公司 一种双磁盘容错垂直型分组并行访问磁盘阵列的构建方法
CN102043685A (zh) * 2010-12-31 2011-05-04 成都市华为赛门铁克科技有限公司 独立磁盘冗余阵列系统及其数据恢复方法
US20120079346A1 (en) * 2010-09-27 2012-03-29 Fujitsu Limited Simulated error causing apparatus

Patent Citations (6)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN101084486A (zh) * 2004-12-23 2007-12-05 英特尔公司 用于校验子生成以及数据恢复的方法和系统
CN101657802A (zh) * 2006-12-06 2010-02-24 弗森多系统公司(dba弗森-艾奥) 用于远程直接存储器存取固态存储设备的装置、系统及方法
US20080148025A1 (en) * 2006-12-19 2008-06-19 Vinodh Gopal High performance raid-6 system architecture with pattern matching
US20120079346A1 (en) * 2010-09-27 2012-03-29 Fujitsu Limited Simulated error causing apparatus
CN102023820A (zh) * 2010-12-01 2011-04-20 北京同有飞骥科技股份有限公司 一种双磁盘容错垂直型分组并行访问磁盘阵列的构建方法
CN102043685A (zh) * 2010-12-31 2011-05-04 成都市华为赛门铁克科技有限公司 独立磁盘冗余阵列系统及其数据恢复方法

Cited By (8)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN105579971A (zh) * 2013-09-26 2016-05-11 国际商业机器公司 快速通道用户空间rdma资源错误检测
CN105579971B (zh) * 2013-09-26 2019-03-15 国际商业机器公司 快速通道用户空间rdma资源错误检测
CN107544863A (zh) * 2017-06-26 2018-01-05 新华三技术有限公司 一种数据存储方法及装置
CN107544863B (zh) * 2017-06-26 2021-07-20 新华三技术有限公司 一种数据存储方法及装置
CN109933303A (zh) * 2019-02-28 2019-06-25 中国人民解放军陆军工程大学 一种多用户高速伪随机序列发生器电路及其工作方法
CN109933303B (zh) * 2019-02-28 2020-09-18 中国人民解放军陆军工程大学 一种多用户高速伪随机序列发生器电路及其工作方法
WO2021089036A1 (zh) * 2019-11-07 2021-05-14 华为技术有限公司 一种数据传输方法、网络设备、网络系统及芯片
US20230385227A1 (en) * 2022-05-27 2023-11-30 Nvidia Corporation Remote descriptor to enable remote direct memory access (rdma) transport of a serialized object

Also Published As

Publication number Publication date
CN103034559B (zh) 2016-06-08

Similar Documents

Publication Publication Date Title
TWI514139B (zh) 實體頁、邏輯頁及碼字對應
CN103455283B (zh) 一种混合存储系统
US8020074B2 (en) Method for auto-correction of errors in a RAID memory system
CN104246707B (zh) 存储系统和存储装置
CN102609221B (zh) 一种硬件raid5/6存储系统及数据处理方法
CN103034559B (zh) 基于rdma架构设计的pq检验模块及检验方法
US6948031B2 (en) Methods and apparatus for transferring a data element within a data storage system
US9015557B2 (en) Simultaneous data transfer and error control to reduce latency and improve throughput to a host
US8880980B1 (en) System and method for expeditious transfer of data from source to destination in error corrected manner
US20030159081A1 (en) Data transmission across asynchronous clock domains
CN101876963A (zh) PCI.Express通信系统及其通信方法
CN105357147A (zh) 一种高速高可靠的片上网络适配单元
CN103002046A (zh) 多系统数据拷贝的rdma架构
CN103699337A (zh) 一种基于独立磁盘冗余阵列raid的写控制方法及系统
CN103019893A (zh) 一种多盘容错的二维混合盘raid4系统架构及其读写方法
CN101710270A (zh) 一种基于闪存的高速大容量存储器及芯片数据管理方法
CN102868604A (zh) 一种应用于片上网络的二维Mesh双缓冲容错路由单元
CN112513804A (zh) 一种数据处理方法及装置
CN110609659A (zh) 用于执行读取命令的NVMeoF RAID实现方法
US7653831B2 (en) Storage system and data guarantee method
CN102693096B (zh) 基于位的串行传输云存储方法及装置
KR102133316B1 (ko) 메모리 시스템 관리
CN101771554A (zh) 一种余度管理电路及其管理方法
CN105511982A (zh) 一种容忍dram颗粒失效的内存存取方法
CN104298572A (zh) 一种纠错方法、装置和系统

Legal Events

Date Code Title Description
C06 Publication
PB01 Publication
C10 Entry into substantive examination
SE01 Entry into force of request for substantive examination
C53 Correction of patent of invention or patent application
CB02 Change of applicant information

Address after: 214122 Jiangsu Province, Wuxi City District Zhenze Road No. 18 Wuxi Software Park Building 6 layer A Taurus

Applicant after: WUXI SOUL DATA COMPUTING Co.,Ltd.

Address before: 214028 Jiangsu Province, Wuxi City District Road No. 18 Wuxi Zhenze National Software Park Building 6 layer A Taurus

Applicant before: SOUL STORAGE TECHNOLOGY WUXI Co.,Ltd.

COR Change of bibliographic data

Free format text: CORRECT: APPLICANT; FROM: SOUL STORAGE TECHNOLOGY UXI O., LTD. TO: SOUL DATA COMPUTING (WUXI) CO., LTD.

C14 Grant of patent or utility model
GR01 Patent grant
C56 Change in the name or address of the patentee
CP01 Change in the name or title of a patent holder

Address after: 214122 Jiangsu Province, Wuxi City District Zhenze Road No. 18 Wuxi Software Park Building 6 layer A Taurus

Patentee after: WUXI NORTH DATA COMPUTING CO.,LTD.

Address before: 214122 Jiangsu Province, Wuxi City District Zhenze Road No. 18 Wuxi Software Park Building 6 layer A Taurus

Patentee before: WUXI SOUL DATA COMPUTING Co.,Ltd.

CF01 Termination of patent right due to non-payment of annual fee
CF01 Termination of patent right due to non-payment of annual fee

Granted publication date: 20160608

Termination date: 20211218