CN103002046B - 多系统数据拷贝的rdma装置 - Google Patents

多系统数据拷贝的rdma装置 Download PDF

Info

Publication number
CN103002046B
CN103002046B CN201210550950.2A CN201210550950A CN103002046B CN 103002046 B CN103002046 B CN 103002046B CN 201210550950 A CN201210550950 A CN 201210550950A CN 103002046 B CN103002046 B CN 103002046B
Authority
CN
China
Prior art keywords
data
module
dma
rdma
state
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.)
Expired - Fee Related
Application number
CN201210550950.2A
Other languages
English (en)
Other versions
CN103002046A (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
WUXI SOUL DATA COMPUTING 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 WUXI SOUL DATA COMPUTING Co Ltd filed Critical WUXI SOUL DATA COMPUTING Co Ltd
Priority to CN201210550950.2A priority Critical patent/CN103002046B/zh
Publication of CN103002046A publication Critical patent/CN103002046A/zh
Application granted granted Critical
Publication of CN103002046B publication Critical patent/CN103002046B/zh
Expired - Fee Related legal-status Critical Current
Anticipated expiration legal-status Critical

Links

Landscapes

  • Bus Control (AREA)
  • Information Retrieval, Db Structures And Fs Structures Therefor (AREA)

Abstract

本发明公开了一种多系统数据拷贝的RDMA装置,包括RDMA状态机模块、A端DMA状态机模块、A端地址状态机模块、B端DMA状态机模块、B端地址状态机模块、数据CRC校验模块、数据做异或校验模块、数据做PQ计算模块和多端口接口(MUIF)模块。通过设置RDMA架构,在RDMA架构中采用DMA控制数据的传输,从而解放了CPU,而采用DMA专门负责数据的传输,保证了多系统间大数据量传输时数据传输的稳定性和可靠性,同时减少了CPU的负担,提高了CPU的性能和效率。实现了快速、稳定的传输数据的优点。

Description

多系统数据拷贝的RDMA装置
技术领域
本发明涉及数据传输领域,具体地,涉及一种多系统数据拷贝的RDMA装置。
背景技术
目前,DMA(Direct Memory Access)直接内存访问是指一种不经过CPU和操作系统,而直接从内存存取数据的数据访问方式。在这种方式中,CPU只须向DMA控制器下达指令,让DMA控制器来处理数据的传送,数据传送完毕再把信息反馈给CPU,这样就很大程度上减轻了CPU资源占有率,可以大大节省系统资源。DMA控制器从CPU完全接管对总线的控制,因此数据的存取过程不经过CPU,而直接在内存和I/O设备之间进行,由DMA控制器直接向内存发出地址和控制信号,进行地址修改,并且以中断方式向CPU报告传送操作的结束。
DMA一般用于高速传送成组的数据或快速设备和主存储器成批交换数据。DMA的优点是:减少大批量数据传输时CPU的开销;采用专用DMA控制器生成访问内存地址并控制访问内存过程;操作均由硬件电路实现,传输速度快;CPU基本不干预,仅在初始化和结束时参与,CPU与外设并行工作,效率高。
RDMA(Remote Direct Memory Access)远程直接内存访问是指通过网络连接的两台机器间通过DMA的方式,一台机器(服务器或者PC系统)可以不经过CPU和操作系统,直接从另一台机器的内存中进行数据访问。这样就可以把数据从一个系统快速移动到远程系统存储器中,而不对操作系统造成任何影响,也不需要用到多少计算机的处理功能。它消除了外部存储器复制和文本交换操作,因而能腾出CPU周期和总线空间用于改进应用系统性能。
RDMA技术全称远程直接数据存取技术,就是为了解决网络传输中服务器端数据处理的延迟而产生的。RDMA通过网络把资料直接传入计算机的存储区,将数据从一个系统快速移动到远程系统存储器中,而不对操作系统造成任何影响,这样就不需要用到多少计算机的处理功能。它消除了外部存储器复制和文本交换操作,因而能解放内存带宽和CPU周期用于改进应用系统性能。
随着信息资源的快速增长,数据的安全性,可靠传输性要求越来越高,对存储系统在存储容量、数据可靠性以及I/O性能等方面提出了越来越高的要求。尽管CPU处理速度也在提高,但是在多系统间大数据量的传输和拷贝过程对于传统的硬件和软件架构给服务器的 CPU和内存带来了很大的负担,因为数据必须在内核和应用程序之间进行拷贝,当连接速度超过服务器的处理能力和内存带宽时,内存瓶颈问题变得更为严重。
发明内容
本发明的目的在于,针对上述问题,提出一种多系统数据拷贝的RDMA装置,以实现快速、稳定的传输数据的优点。
为实现上述目的,本发明采用的技术方案是:
一种多系统数据拷贝的RDMA装置,包括RDMA状态机模块、A端DMA状态机模块、A端地址状态机模块、B端DMA状态机模块、B端地址状态机模块、数据CRC校验模块、数据做异或校验模块、数据做PQ计算模块和多端口接口(MUIF)模块;
所述RDMA状态机(RDMA_FSM)模块:是RDMA架构的主状态机,是RDMA架构的主控制模块,访问RDMA架构硬件的寄存器接口通过RDMA_FSM模块,并执行相关命令来进行管道两端内存的访问,从而实现两端系统的数据拷贝;
所述A端DMA状态机(A_DMA_FSM)模块:是数据拷贝的执行者,分为读内存和写内存两个方向:在读内存时,它接收上述RDMA_FSM模块的控制命令,并从A_Addr_FSm模块获得数据的映射的内存地址,直接把内存数据搬移到B_DMA_FSM模块的输入接口;在写内存时,它接收到上述RDMA_FSM的控制命令,并从A_Addr_FSM模块获得数据的映射的内存地址,把从B_DMA_FSM模块读取过来的数据写到内存位置;
所述A端地址状态机(A_Addr_FSM)模块:定义了一个FPGA内部的RAM来缓存RDMA架构数据拷贝时发送和接收的数据和和地址信息,定义了内存的扇区作内存拷贝的储存空间;
所述B端DMA状态机(B_DMA_FSM)模块:是数据拷贝的执行者,分为读内存和写内存两个方向:在读内存时,它接收到上述RDMA_FSM模块的控制命令,并从B_Addr_FSm模块获得数据的映射的内存地址,直接把内存数据搬移到A_DMA_FSM模块的输入接口;在写内存时,它接收到RDMA_FSM的控制命令,并从上述B_Addr_FSM模块获得数据的映射的内存地址,把从A_DMA_FSM模块读取过来的数据写到内存位置;
所述B端地址状态机(B_Addr_FSM)模块:定义了一个FPGA内部的RAM来缓存RDMA数据拷贝时发送和接收的数据和和地址信息,定义了内存的扇区作内存拷贝的储存空间;
多端口接口(MUIF)模块:是硬件寄存器访问的接口以及数据传输的接口;
所述数据校验CRC模块:预留的数据做CRC校验接口,当对传输数据作CRC检验时,可以直接通过该CRC模块的接口进行添加硬件逻辑来实现CRC校验功能;
所述数据做异或校验(XOR)模块:预留的数据做异或检验接口,当对传输数据做异或检验时,可以直接通过该XOR模块的接口进行添加硬件逻辑来实现异或校验功能;
所述数据做PQ计算(PQ)模块:预留的数据做P检验和Q检验接口,当对传输数据做P检验或者Q检验时,可以直接通过该PQ模块的接口进行添加硬件逻辑来实现异或校验功能。
本发明的技术方案,通过设置RDMA架构,在RDMA架构中采用DMA控制数据的传输,从而解放了CPU,而采用DMA专门负责数据的传输,保证了多系统间大数据量传输时数据传输的稳定性和可靠性,同时减少了CPU的负担,提高了CPU的性能和效率。实现了快速、稳定的传输数据的优点。
下面通过附图和实施例,对本发明的技术方案做进一步的详细描述。
附图说明
图1为本发明实施例所述的多系统数据拷贝的RDMA装置实现数据传输的结构框图;
图2为本发明实施例所述的多系统数据拷贝的RDMA装置的结构框图;
图3为本发明实施例所述的多系统数据拷贝的RDMA装置读取硬盘数据的结构框图;
图4为本发明实施例所述的多系统数据拷贝的RDMA装置工作流程图。
具体实施方式
以下结合附图对本发明的优选实施例进行说明,应当理解,此处所描述的优选实施例仅用于说明和解释本发明,并不用于限定本发明。
如图2所示,一种多系统数据拷贝的RDMA装置,包括RDMA状态机模块、A端DMA状态机模块、A端地址状态机模块、B端DMA状态机模块、B端地址状态机模块、数据CRC校验模块、数据做异或校验模块、数据做PQ计算模块和多端口接口(MUIF)模块;
RDMA状态机(RDMA_FSM)模块:是RDMA架构的主状态机,是RDMA架构的主控制模块,访问RDMA架构硬件的寄存器接口通过RDMA_FSM模块,并执行相关命令来进行管道两端内存的访问,从而实现两端系统的数据拷贝;
A端DMA状态机(A_DMA_FSM)模块:是数据拷贝的执行者,分为读内存和写内存两个方向:在读内存时,它接收上述RDMA_FSM模块的控制命令,并从A_Addr_FSM模块获得数据的映射的内存地址,直接把内存数据搬移到B_DMA_FSM模块的输入接口;在写内存时,它接收到上述RDMA_FSM的控制命令,并从A_Addr_FSM模块获得数据的映射的 内存地址,把从B_DMA_FSM模块读取过来的数据写到内存位置;
A端地址状态机(A_Addr_FSM)模块:定义了一个FPGA内部的RAM来缓存RDMA架构数据拷贝时发送和接收的数据和和地址信息,定义了内存的扇区作内存拷贝的储存空间;
B端DMA状态机(B_DMA_FSM)模块:是数据拷贝的执行者,分为读内存和写内存两个方向:在读内存时,它接收到上述RDMA_FSM模块的控制命令,并从B_Addr_FSM模块获得数据的映射的内存地址,直接把内存数据搬移到A_DMA_FSM模块的输入接口;在写内存时,它接收到RDMA_FSM的控制命令,并从上述B_Addr_FSM模块获得数据的映射的内存地址,把从A_DMA_FSM模块读取过来的数据写到内存位置;
B端地址状态机(B_Addr_FSM)模块:定义了一个FPGA内部的RAM来缓存RDMA数据拷贝时发送和接收的数据和和地址信息,定义了内存的扇区作内存拷贝的储存空间;
多端口接口(MUIF)模块:是硬件寄存器访问的接口以及数据传输的接口;
数据校验CRC模块:预留的数据做CRC校验接口,当对传输数据作CRC检验时,可以直接通过该CRC模块的接口进行添加硬件逻辑来实现CRC校验功能;
数据做异或校验(XOR)模块:预留的数据做异或检验接口,当对传输数据做异或检验时,可以直接通过该XOR模块的接口进行添加硬件逻辑来实现异或校验功能;
数据做PQ计算(PQ)模块:预留的数据做P检验和Q检验接口,当对传输数据做P检验或者Q检验时,可以直接通过该PQ模块的接口进行添加硬件逻辑来实现异或校验功能。
在数据传输中所述RDMA状态机模块状态跳转如下:
S_IDLE状态:开始状态机是空闲状态,等待填写描述符数据结构控制符开始,初始化硬件寄存器,然后判断ctrl_valid和ctrl_sof信号状态,当ctrl_valid和ctrl_sof同时有效时状态跳转到S_CTRL状态;
S_CTRL状态:填写描述符控制符状态,等待填充描述符数据结构完成;判断ctrl_valid和ctrl_eof信号状态,当ctrl_valid和ctrl_eof同时有效时,状态跳转到S_DESC状态;
S_DESC状态:描述符数据请求状态,请求A端DMA状态机和B端DMA状态机去读两端内存的描述符信息,desc_done(读描述符操作完成)有效时,状态跳转到S_DMA状态;
S_DMA状态:DMA操作请求状态,请求A端DMA状态机和B端DMA状态机准备做数据拷贝工作,当两端DMA响应工作完成后,判断dma_done有效时(两端DMA响应工作完成),状态跳转到S_EDMA状态;
S_EDMA状态:DMA数据拷贝状态,直接跳转到S_WAIT状态;
S_WAIT状态:DMA数据拷贝等待状态,等待数据拷贝完成,判断dma_done有效时,跳转到S_DONE状态;
S_DONE状态:DMA数据拷贝完成状态,判断数据拷贝完成则跳转到S_MSG状态;
S_MSG状态:描述符状态信息输出状态,输出描述符状态信息,跳转到S_IDLE状态。
如图1所示,数据在主机端服务器模块和子服务器模块间传输,包括主机端服务器(A)模块,DMA_A模块,数据管道,DMA_B模块,子系统(B)模块以及RDMA模块。
主机端服务器(A)模块:多系统数据拷贝的RDMA装置的远端系统(主机端服务器),RDMA架构可以访问远端系统的内存,而不需要有CPU的参与,可以直接拷贝服务器数据到子系统(B)模块。主机端服务器可以通过光纤或者网络连接到RDMA架构的DMA_A模块。
DMA_A模块:是执行主机端服务器数据搬运的执行者,前端是主机端服务器,后端是DMA_B模块。数据拷贝在前端和后端进行,数据拷贝方向是双向的,数据可以是从前端到后端,也可以是从后端到前端。
数据管道:实现的DMA拷贝数据的数据通路。数据管道的两侧分别是主机端和子系统端的DMA模块,两个DMA模块DMA_A和DMA_B分别作为对方DMA的后端来实现接收和发送数据的交互。DMA_A模块后端的发送数据信息接到DMA_B模块的接收端;DMA_B模块后端的发送数据信息接到DMA_A模块的接收端。数据管道还提供数据传输的硬件计算和数据恢复的校验接口。
DMA_B模块:是执行子系统数据搬运的执行者,前端是子系统,后端是DMA_A模块。数据拷贝在前端和后端进行,数据拷贝方向是双向的,数据可以是从前端到后端,也可以是从后端到前端。
子系统(B)模块:多系统数据拷贝的RDMA装置的远端系统(主机端服务器),RDMA架构可以直接访问远端系统的内存,而不需要有CPU的参与,可以直接拷贝服务器数据到子系统。主机端服务器可以通过光纤或者网络连接到RDMA架构的DMA_A模块。
RDMA模块:RDMA模块是整个RDMA架构的核心模块,实现主要的RDMA硬件逻辑功能,两端内存访问接口和调试信息接口输出。RDMA模块定义了RDMA描述符的数据结构,以及访问主机系统内存和从机子系统内存的NPI(Native Port Interface)接口和调试信息接口。RDMA模块分析RDMA描述符数据结构,请求管道两端的DMA_A模块和DMA_B模块开始作DMA操作,并控制数据流向,输出描述符数据结构信息到调试信息接口上。
图2所示,多系统数据拷贝的RDMA装置实现即其设计方法,架构的设计方法实际就是通过各个模块实现与不同系统间建立内存访问机制,同时通过整体的RDMA模块来实现各个访问机制的数据在不同系统间能很好的访问和进行数据拷贝工作。RDMA架构实现设计分为RDMA状态机模块,A端的DMA状态机模块,A端地址状态机模块,B端DMA状态机模块,B端地址状态机模块,多端口接口模块,数据的CRC校验模块,数据做异或校验模块,数据做PQ计算模块。
RDMA状态机模块:是整个RDMA设计的主状态机,是各个信号的主控制模块,负责解析硬件与应用软件访问的寄存器模块接口实现,访问RDMA硬件的寄存器接口通过RDMA_FSM模块并执行相关命令来进行管道两端内存的访问,从而实现两端系统的数据拷贝。
A端的DMA状态机模块:是数据拷贝的执行者,分为读内存和写内存两个方向。在读内存时,它接收到RDMA_FSM的控制命令,并从A_Addr_FSM模块获得数据的映射的内存地址,直接把内存数据搬移到B_DMA_FSM模块的输入接口;在写内存时,它接收到RDMA_FSM的控制命令,并从A_Addr_FSM模块获得数据的映射的内存地址,把从B_DMA_FSM模块过来的数据写到内存位置。
A端地址状态机模块:定义了一个FPGA内部的RAM来缓存RDMA数据拷贝时发送和接收的数据和和地址信息,定义了内存的扇区作内存拷贝。
B端DMA状态机模块:跟A_DMA_FSM作用相同,都是数据拷贝的执行者,分为读内存和写内存两个方向。在读内存时,它接收到RDMA_FSM的控制命令,并从B_Addr_FSm模块获得数据的映射的内存地址,直接把内存数据搬移到A_DMA_FSM模块的输入接口;在写内存是,它接收到RDMA_FSM的控制命令,并从B_Addr_FSM模块获得数据的映射的内存地址,把从A_DMA_FSM模块过来的数据写到内存位置。
B端地址状态机模块:定义了一个FPGA内部的RAM来缓存RDMA数据拷贝时发送和接收的数据和和地址信息,定义了内存的扇区作内存拷贝。
多端口接口(MUIF)模块:是硬件寄存器访问接口和数据管道两端的数据传输接口。
数据的CRC校验模块:预留的数据做CRC校验接口,当我们需要对传输数据作CRC检验时,我们可以直接通过这个模块的接口进行添加硬件逻辑来实现CRC校验功能。
数据做异或校验模块:预留的数据做异或检验接口,当我们需要对传输数据做异或检验时, 我们可以直接通过这个模块的接口进行添加硬件逻辑来实现异或校验功能。
数据做PQ计算模块:预留的数据做P检验和Q检验接口,当我们需要对传输数据做P检验或者Q检验时,我们可以直接通过这个模块的接口进行添加硬件逻辑来实现异或校验功能。PQ检验是在存储系统中做数据RAID(磁盘阵列)存储时用到的一种同位检查(Parity Check)或者奇偶校验的观念,在数组中任一颗硬盘发生故障时,仍可通过同位校验位(即称为PQ校验位)读出数据,在数据重构时,将数据经计算后重新置入新硬盘中。
NPI:本地端口接口用来访问系统内存。
在RDMA整体架构设计的实现方法中,RDMA模块中调用了两个DMA顶层模块分别是A_TOP和B_TOP模块。这两个模块的主要功能是实现了数据管道中数据的流向控制和访问两端系统内存的接口,对发送和接收数据的内存地址进行映射和缓存,通过A_Addr_FSM和B_Addr_FSM硬件逻辑来实现,这两个模块还是数据搬移的执行者,通过A_DMA_FSM和B_DMA_FSM这两个模块的硬件逻辑来实现。RDMA_FSM模块实现了软件访问描述符数据结构的硬件寄存器接口控制和数据的传输控制,控制整个DMA操作的读写数据的方向,对多系统间数据拷贝过程进行监控,输出状态调试信息;定义了数据拷贝过程中的RDMA工作状态。多系统数据拷贝的设计实现就是通过硬件完成对RDMA的各个状态的控制和处理读写数据过程,整个过程实现通过RDMA状态机来完成。
如图3所示,多系统数据拷贝的RDMA装置实现系统结构图是一个简单的基于RDMA架构设计的多系统间进行直接数据拷贝的系统。RDMA架构分成上端访问系统内存接口和下端访问系统内存接口两部分,通过RDMA架构设计可以在上端和下端的两个系统间进行数据拷贝,而很少需要CPU的干预,可以实现大数据量数据的快速拷贝,增加系统性能和数据传输的稳定性和效率。主机远端服务器,RDMA上端,RDMA下端和RAID控制器,DISK磁盘。
RDMA上端系统:包括RDMA上端模块和主机远端服务器,RDMA上端模块通过NPI接口访问主机远端服务器的内存,RDMA上端和主机远端服务器物理介质可以通过光纤或网线链接。主机远端服务器包含有数据应用程序对RDMA访问机制提供中断处理或者响应。RDMA上端通过NPI接口直接访问主机远端服务器内存,对内存进行读写操作而不需要主机端服务器的CPU干预,从而实施对主机远端服务器的数据拷贝。
RDMA下端系统:包括RDMA下端模块,RAID控制器和DISK磁盘,RDMA下端模块通过NPI接口访问下端系统的内存,下端系统能够通过RAID控制器并发操作DISK磁盘来完成读写磁盘数据。RAID控制器是独立磁盘冗余阵列(Redundant Array of Independent  Disk)控制器,它是在物理和逻辑阵列中管理数据存取的装置,通过RAID控制器能够并发的读写多个磁盘,从而实现对RDMA下端系统磁盘的数据拷贝。
RDMA上端和下端模块构成的RDMA架构设计模块内部通过硬件逻辑实现上端系统和下端系统数据的拷贝,实现了数据拷贝的稳定传输,提高了系统的性能。
图4所示,RDMA状态机描述了在多系统间进行数据拷贝的流程和实现步骤,通过硬件逻辑实现各个状态的判断和跳转。首先等待填写描述符数据结构控制符开始信号ctrl_valid和ctrl_sof,如果这两个信号有效则会初始化硬件寄存器并填写描述符控制符状态的值;当检测到ctrl_valid和ctrl_eof信号同时有效时,说明填写描述符控制符寄存器已近完成。
初始化描述符控制符硬件寄存器的之后RDMA状态机会通过RDMA管道两端的DMA模块请求读系统的内存描述符,如果读描述符请求得到响应则开始请求DMA做数据拷贝动作,如果DMA请求也得到响应则会一直等待数据拷贝完成,数据拷贝完成后会把数据描述符状态信息输出到RDMA模块的调试信息接口,进入到初始状态等待下一次数据拷贝动作。
多系统数据拷贝的RDMA装置设计实现的RDMA状态机结构框图如图4所示,RDMA状态机描述了整个数据搬移即在多系统间进行数据拷贝的流程和实现步骤。RDMA状态机各个状态模块如下:
S_IDLE状态:开始状态机是空闲状态,等待填写描述符数据结构控制符开始,初始化硬件寄存器。然后判断ctrl_valid和ctrl_sof信号状态,当ctrl_valid和ctrl_sof同时有效时状态跳转到S_CTRL状态。
S_CTRL状态:填写描述符控制符状态,等待填充描述符数据结构完成。判断ctrl_valid和ctrl_eof信号状态,当ctrl_valid和ctrl_eof同时有效时,状态跳转到S_DESC状态。
S_DESC状态:描述符数据请求状态,请求管道两端的DMA去读两端系统内存的描述符信息,读描述符操作完成也就是desc_done有效时,状态跳转到S_DMA状态。
S_DMA状态:DMA操作请求状态,请求管道两端的DMA准备做数据拷贝工作,当两端DMA响应工作完成后,也就是判断dma_done有效时,状态跳转到S_EDMA状态。
S_EDMA状态:DMA数据拷贝状态,直接跳转到S_WAIT状态。
S_WAIT状态:DMA数据拷贝等待状态,等待数据拷贝完成,判断dma_done有效时,跳转到S_DONE状态。
S_DONE状态:DMA数据拷贝完成状态,判断数据拷贝完成则跳转到S_MSG状态。
S_MSG状态:描述符状态信息输出状态,输出描述符状态信息,跳转到S_IDLE状态。
表一:RDMA架构中的描述符数据结构:
其中:scnt:表示有多少个扇区
bcnt:表示有多少个硬盘
dma_op:dma操作选项,有P,Q,C三个操作
tag:预留标记状态信息
表二:RDMA架构中描述符主要控制状态接口信号:
表三:RDMA访问系统内存的NPI接口信息:
最后应说明的是:以上所述仅为本发明的优选实施例而已,并不用于限制本发明,尽管参照前述实施例对本发明进行了详细的说明,对于本领域的技术人员来说,其依然可以对前述各实施例所记载的技术方案进行修改,或者对其中部分技术特征进行等同替换。凡在本发明的精神和原则之内,所作的任何修改、等同替换、改进等,均应包含在本发明的保护范围之内。

Claims (2)

1.一种多系统数据拷贝的RDMA装置,其特征在于,包括RDMA状态机模块、A端DMA状态机模块、A端地址状态机模块、B端DMA状态机模块、B端地址状态机模块、数据CRC校验模块、数据做异或校验模块、数据做PQ计算模块和多端口接口MUIF模块;
     所述RDMA状态机RDMA_FSM模块:是RDMA架构的主状态机,是RDMA架构的主控制模块,访问RDMA架构硬件的寄存器接口通过RDMA_FSM模块,并执行相关命令来进行管道两端内存的访问,从而实现两端系统的数据拷贝;
    所述A端DMA状态机A_DMA_FSM模块:是数据拷贝的执行者,分为读内存和写内存两个方向:在读内存时,它接收上述RDMA_FSM模块的控制命令,并从A_Addr_FSM模块获得数据的映射的内存地址,直接把内存数据搬移到B_DMA_FSM模块的输入接口;在写内存时,它接收到上述RDMA_FSM的控制命令,并从A_Addr_FSM模块获得数据的映射的内存地址,把从B_DMA_FSM模块读取过来的数据写到内存位置;
    所述A端地址状态机A_Addr_FSM模块:定义了一个FPGA内部的RAM来缓存RDMA架构数据拷贝时发送和接收的数据和和地址信息,定义了内存的扇区作内存拷贝的储存空间;
    所述B端DMA状态机B_DMA_FSM模块:是数据拷贝的执行者,分为读内存和写内存两个方向:在读内存时,它接收到上述RDMA_FSM模块的控制命令,并从B_Addr_FSM模块获得数据的映射的内存地址,直接把内存数据搬移到A_DMA_FSM模块的输入接口;在写内存时,它接收到RDMA_FSM的控制命令,并从上述B_Addr_FSM模块获得数据的映射的内存地址,把从A_DMA_FSM模块读取过来的数据写到内存位置;
    所述B端地址状态机B_Addr_FSM模块:定义了一个FPGA内部的RAM来缓存RDMA数据拷贝时发送和接收的数据和和地址信息,定义了内存的扇区作内存拷贝的储存空间;
    所述多端口接口MUIF模块:是硬件寄存器访问的接口以及数据传输的接口;
    所述数据的CRC校验CRC模块:预留的数据做CRC校验接口,当对传输数据作CRC检验时,可以直接通过该CRC模块的接口进行添加硬件逻辑来实现CRC校验功能;
所述数据做异或校验XOR模块:预留的数据做异或检验接口,当对传输数据做异或检验时,可以直接通过该XOR模块的接口进行添加硬件逻辑来实现异或校验功能;
所述数据做PQ计算PQ模块:预留的数据做P检验和Q检验接口,当对传输数据做P检验或者Q检验时,可以直接通过该PQ模块的接口进行添加硬件逻辑来实现异或校验功能。
2.根据权利要求1所述的多系统数据拷贝的RDMA装置,其特征在于,在数据传输中所述RDMA状态机模块状态跳转如下:
S_IDLE状态:开始状态机是空闲状态,等待填写描述符数据结构控制符开始,初始化硬件寄存器,然后判断ctrl_valid 和ctrl_sof 信号状态,当ctrl_valid 和ctrl_sof 信号同时有效时状态跳转到 S_CTRL状态;
S_CTRL 状态:填写描述符控制符状态,等待填充描述符数据结构完成;判断ctrl_valid 和 ctrl_eof信号状态,当ctrl_valid 和 ctrl_eof信号同时有效时,状态跳转到S_DESC状态;
S_DESC 状态:描述符数据请求状态,请求A端DMA状态机和B端DMA状态机去读两端内存的描述符信息, 当desc_done读描述符操作完成有效时,状态跳转到S_DMA状态;
S_DMA 状态:DMA操作请求状态,请求A端DMA状态机和B端DMA状态机准备做数据拷贝工作,当两端DMA响应工作完成后,判断dma_done有效时即两端DMA响应工作完成时,状态跳转到S_EDMA状态;
S_EDMA状态:DMA数据拷贝状态,直接跳转到S_WAIT状态;
S_WAIT状态:DMA数据拷贝等待状态,等待数据拷贝完成,判断dma_done有效时,跳转到S_DONE状态;
S_DONE状态:DMA数据拷贝完成状态,判断数据拷贝完成则跳转到S_MSG状态;
S_MSG状态:描述符状态信息输出状态,输出描述符状态信息,跳转到S_IDLE状态。
CN201210550950.2A 2012-12-18 2012-12-18 多系统数据拷贝的rdma装置 Expired - Fee Related CN103002046B (zh)

Priority Applications (1)

Application Number Priority Date Filing Date Title
CN201210550950.2A CN103002046B (zh) 2012-12-18 2012-12-18 多系统数据拷贝的rdma装置

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
CN201210550950.2A CN103002046B (zh) 2012-12-18 2012-12-18 多系统数据拷贝的rdma装置

Publications (2)

Publication Number Publication Date
CN103002046A CN103002046A (zh) 2013-03-27
CN103002046B true CN103002046B (zh) 2015-07-08

Family

ID=47930179

Family Applications (1)

Application Number Title Priority Date Filing Date
CN201210550950.2A Expired - Fee Related CN103002046B (zh) 2012-12-18 2012-12-18 多系统数据拷贝的rdma装置

Country Status (1)

Country Link
CN (1) CN103002046B (zh)

Families Citing this family (8)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN103248467B (zh) * 2013-05-14 2015-10-28 中国人民解放军国防科学技术大学 基于片内连接管理的rdma通信方法
CN103440202B (zh) * 2013-08-07 2016-12-28 华为技术有限公司 一种基于rdma的通信方法、系统及通信设备
CN105933325B (zh) * 2016-06-07 2019-04-12 华中科技大学 一种基于NFSoRDMA的内核态RPC通信加速方法
CN107196857B (zh) * 2017-05-24 2020-06-23 北京东土军悦科技有限公司 一种搬移方法和网络设备
CN108804028A (zh) * 2018-04-20 2018-11-13 江苏华存电子科技有限公司 一种存储装置中数据保护方法
CN111262917A (zh) 2020-01-13 2020-06-09 苏州浪潮智能科技有限公司 一种基于fpga云平台的远端数据搬移装置和方法
CN112486410B (zh) * 2020-11-23 2024-03-26 华南师范大学 一种持久性内存文件读写方法、系统、装置及存储介质
CN114268654A (zh) * 2021-11-26 2022-04-01 上海浦东发展银行股份有限公司 网络通信方法、装置、设备、存储介质和程序产品

Citations (2)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN102404212A (zh) * 2011-11-17 2012-04-04 曙光信息产业(北京)有限公司 一种基于InfiniBand网络的跨平台RDMA通信方法
CN102571925A (zh) * 2011-12-19 2012-07-11 华中科技大学 一种在光纤通道环境中利用rdma存取数据的方法

Family Cites Families (2)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US7543037B2 (en) * 2003-12-02 2009-06-02 International Business Machines Corporation RDMA completion and retransmit system and method
US8161126B2 (en) * 2003-12-19 2012-04-17 Broadcom Corporation System and method for RDMA QP state split between RNIC and host software

Patent Citations (2)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN102404212A (zh) * 2011-11-17 2012-04-04 曙光信息产业(北京)有限公司 一种基于InfiniBand网络的跨平台RDMA通信方法
CN102571925A (zh) * 2011-12-19 2012-07-11 华中科技大学 一种在光纤通道环境中利用rdma存取数据的方法

Also Published As

Publication number Publication date
CN103002046A (zh) 2013-03-27

Similar Documents

Publication Publication Date Title
CN103002046B (zh) 多系统数据拷贝的rdma装置
CN108363670B (zh) 一种数据传输的方法、装置、设备和系统
US10410693B2 (en) Multiprocessor system with independent direct access to bulk solid state memory resources
CN101833424B (zh) 基于fpga的高速存储与传输装置
US8589723B2 (en) Method and apparatus to provide a high availability solid state drive
CN102081561B (zh) 在存储系统的冗余存储控制器之间镜像数据
KR101744465B1 (ko) 데이터를 저장하기 위한 방법 및 장치
CN106462510B (zh) 具有独立直接接入大量固态存储资源的多处理器系统
CN102687121B (zh) 堆叠式存储器中的错误校正
CN101452373B (zh) 输入输出处理器
CN103403667A (zh) 数据处理方法和设备
CN103336745A (zh) 一种基于ssd缓存的fc hba及其设计方法
CN103455283A (zh) 一种混合存储系统
CN106066890B (zh) 一种分布式高性能数据库一体机系统
US8949509B2 (en) Mass storage systems and methods using solid-state storage media and ancillary interfaces for direct communication between memory cards
CN103049220A (zh) 存储控制方法、存储控制装置和固态存储系统
CN101436171A (zh) 模块化通信控制系统
CN114296638B (zh) 存算一体化固态硬盘控制器及相关装置、方法
CN103034559B (zh) 基于rdma架构设计的pq检验模块及检验方法
US9372796B2 (en) Optimum cache access scheme for multi endpoint atomic access in a multicore system
CN207008602U (zh) 一种基于NandFlash存储器多通道的存储阵列控制装置
CN104598409A (zh) 一种处理输入输出请求的方法及设备
CN111475459A (zh) 一种9u vpx数据存储服务器及数据处理方法
CN114286989B (zh) 一种固态硬盘混合读写的实现方法以及装置
JP4526509B2 (ja) ディスクアレイ制御装置

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: 20150708

Termination date: 20211218