CN113176850B - 基于srio接口的共享存储盘及其存取方法 - Google Patents

基于srio接口的共享存储盘及其存取方法 Download PDF

Info

Publication number
CN113176850B
CN113176850B CN202110270970.3A CN202110270970A CN113176850B CN 113176850 B CN113176850 B CN 113176850B CN 202110270970 A CN202110270970 A CN 202110270970A CN 113176850 B CN113176850 B CN 113176850B
Authority
CN
China
Prior art keywords
data
module
frame
raid
shared storage
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.)
Active
Application number
CN202110270970.3A
Other languages
English (en)
Other versions
CN113176850A (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.)
Hunan Econavi Technology Co Ltd
Original Assignee
Hunan Econavi Technology 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 Hunan Econavi Technology Co Ltd filed Critical Hunan Econavi Technology Co Ltd
Priority to CN202110270970.3A priority Critical patent/CN113176850B/zh
Publication of CN113176850A publication Critical patent/CN113176850A/zh
Application granted granted Critical
Publication of CN113176850B publication Critical patent/CN113176850B/zh
Active legal-status Critical Current
Anticipated expiration legal-status Critical

Links

Images

Classifications

    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F3/00Input arrangements for transferring data to be processed into a form capable of being handled by the computer; Output arrangements for transferring data from processing unit to output unit, e.g. interface arrangements
    • G06F3/06Digital input from, or digital output to, record carriers, e.g. RAID, emulated record carriers or networked record carriers
    • G06F3/0601Interfaces specially adapted for storage systems
    • G06F3/0602Interfaces specially adapted for storage systems specifically adapted to achieve a particular effect
    • G06F3/061Improving I/O performance
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F3/00Input arrangements for transferring data to be processed into a form capable of being handled by the computer; Output arrangements for transferring data from processing unit to output unit, e.g. interface arrangements
    • G06F3/06Digital input from, or digital output to, record carriers, e.g. RAID, emulated record carriers or networked record carriers
    • G06F3/0601Interfaces specially adapted for storage systems
    • G06F3/0628Interfaces specially adapted for storage systems making use of a particular technique
    • G06F3/0655Vertical data movement, i.e. input-output transfer; data movement between one or more hosts and one or more storage devices
    • G06F3/0656Data buffering arrangements
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F3/00Input arrangements for transferring data to be processed into a form capable of being handled by the computer; Output arrangements for transferring data from processing unit to output unit, e.g. interface arrangements
    • G06F3/06Digital input from, or digital output to, record carriers, e.g. RAID, emulated record carriers or networked record carriers
    • G06F3/0601Interfaces specially adapted for storage systems
    • G06F3/0628Interfaces specially adapted for storage systems making use of a particular technique
    • G06F3/0655Vertical data movement, i.e. input-output transfer; data movement between one or more hosts and one or more storage devices
    • G06F3/0658Controller construction arrangements
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F3/00Input arrangements for transferring data to be processed into a form capable of being handled by the computer; Output arrangements for transferring data from processing unit to output unit, e.g. interface arrangements
    • G06F3/06Digital input from, or digital output to, record carriers, e.g. RAID, emulated record carriers or networked record carriers
    • G06F3/0601Interfaces specially adapted for storage systems
    • G06F3/0668Interfaces specially adapted for storage systems adopting a particular infrastructure
    • G06F3/0671In-line storage system
    • G06F3/0683Plurality of storage devices
    • G06F3/0689Disk arrays, e.g. RAID, JBOD
    • YGENERAL TAGGING OF NEW TECHNOLOGICAL DEVELOPMENTS; GENERAL TAGGING OF CROSS-SECTIONAL TECHNOLOGIES SPANNING OVER SEVERAL SECTIONS OF THE IPC; TECHNICAL SUBJECTS COVERED BY FORMER USPC CROSS-REFERENCE ART COLLECTIONS [XRACs] AND DIGESTS
    • Y02TECHNOLOGIES OR APPLICATIONS FOR MITIGATION OR ADAPTATION AGAINST CLIMATE CHANGE
    • Y02DCLIMATE CHANGE MITIGATION TECHNOLOGIES IN INFORMATION AND COMMUNICATION TECHNOLOGIES [ICT], I.E. INFORMATION AND COMMUNICATION TECHNOLOGIES AIMING AT THE REDUCTION OF THEIR OWN ENERGY USE
    • Y02D10/00Energy efficient computing, e.g. low power processors, power management or thermal management

Landscapes

  • Engineering & Computer Science (AREA)
  • Theoretical Computer Science (AREA)
  • Human Computer Interaction (AREA)
  • Physics & Mathematics (AREA)
  • General Engineering & Computer Science (AREA)
  • General Physics & Mathematics (AREA)
  • Information Retrieval, Db Structures And Fs Structures Therefor (AREA)

Abstract

本发明公开了一种基于SRIO接口的共享存储盘及其存取方法,共享存储盘包括FPGA模块、电源管理电路、硬盘阵列、缓存模块和状态自检电路,所述硬盘阵列包括至少4块硬盘,所述电源管理电路和状态自检电路连接,所述FPGA模块通过SRIO接口和被安装的多计算节点嵌入式系统中的节点计算机连接,所述FPGA模块通过SATA接口和硬盘阵列连接,所述FPGA模块通过缓存接口和缓存模块连接,所述FPGA模块包括PL端和PS端,所述PL端和PS端通过AXI总线互相连接。本发明的共享存储盘通过SRIO传输协议与节点计算机进行数据交互,可适用于高可靠性、高传输带宽、实时响应、多主机访问要求的嵌入式系统。

Description

基于SRIO接口的共享存储盘及其存取方法
技术领域
本发明涉及共享存储领域,尤其涉及一种基于SRIO接口的共享存储盘及其存取方法。
背景技术
随着车载、船载等移动平台对数据采集、数据存储、计算处理等的要求越来越高,在移动平台组成的多主机系统中对于数据资源的共享需求越来越多。移动平台的数据共享不可能按照常规数据中心模式建设。数据共享设备需具备较高的环境适应性、较高的集成度、较高的访问带宽以及实时响应速率。
目前,常用的共享存储盘方案为:在多节点计算机系统中以千兆网络交换机为中心,计算机与共享存储盘通过千兆网络交换机实现数据共享。共享存储盘以千兆网作为共享接口,以NAS协议或iSCSI协议为系统中的节点计算机提供文件共享服务。该方案的优势是协议简单、便于实现和维护。但缺点同样明显,该方案存储访问带宽低、实时响应性能差。尤其是在目前雷达、视频等数据传输速率朝着GB/s的带宽迈进的情况下,基于千兆网接口的共享存储越来越不能满足此类一体化处理平台对共享存储的需求。
SRIO传输协议采用网络化的设备拓扑架构,且具有传输带宽大、响应速率快的特点,如何将现有的共享存储盘与SRIO传输协议进行结合是当前迫切需要解决的技术问题。
发明内容
本发明要解决的技术问题就在于:针对现有的技术问题,本发明提供一种基于SRIO接口的共享存储盘及其存取方法,共享存储盘被映射为节点计算机的存储外设,通过SRIO传输协议与节点计算机进行数据交互,可适用于高可靠性、高传输带宽、实时响应快、多主机访问要求的嵌入式系统。
为解决上述技术问题,本发明提出的技术方案为:
一种基于SRIO接口的共享存储盘,包括FPGA模块、电源管理电路、硬盘阵列、缓存模块和状态自检电路,所述硬盘阵列包括至少4块硬盘,所述电源管理电路和状态自检电路连接,所述FPGA模块通过SRIO接口和被安装的多计算节点嵌入式系统中的节点计算机连接,所述FPGA模块通过SATA接口和硬盘阵列连接,所述FPGA模块通过缓存接口和缓存模块连接,所述FPGA模块包括PL端和PS端,所述PS端和PL端通过AXI总线互相连接,其中:
所述PL端用于实现FPGA模块的SRIO接口、RAID控制器、以及SATA HOST控制器,还用于通过AXI总线与PS端进行交互;
所述PS端用于运行文件管理系统、文件访问传输协议解析程序、文件系统访问接口控制程序、共享存储控制管理程序等,实现共享存储盘的逻辑功能,还用于通过AXI总线与PL端实现指令、状态以及配置交互;
所述电源管理电路用于将12V电源转换为共享存储盘各模块的供电电平;
所述状态自检电路用于监测共享存储盘的工作状态。
进一步的,所述PS端包括:
共享存储控制管理模块,用于调度文件访问传输协议解析模块、文件系统访问接口控制模块、共享存储文件管理系统和存储硬件驱动程序的运行;
文件访问传输协议解析模块,用于通过AXI总线从PL端获取节点计算机发送的指令帧、信息帧,并将指令帧、信息帧解析成相应的节点计算机系统端的文件操作指令,还用于从共享存储文件管理系统获取文件访问结果或状态信息,将文件访问结果或状态信息封装成相应的数据帧并通过AXI总线由PL端经FPGA模块的SRIO接口反馈到节点计算机;
文件系统访问接口控制模块,用于将节点计算机系统端的文件操作指令转换为共享存储文件管理系统的本地文件系统操作指令;
共享存储文件管理系统,用于通过AXI总线从PL端获取硬盘阵列中硬盘的基本状态信息以及RAID状态信息,通过AXI总线将RAID配置信息发送给PL端;还用于通过文件系统访问接口控制模块接收文件系统操作指令,通过共享存储控制管理模块的调度启动存储硬件驱动程序并执行对应的文件操作;
存储硬件驱动程序,用于根据共享存储文件管理系统所接收的文件系统操作指令生成相应的SATA命令并通过AXI总线发送给PL端。
进一步的,所述PL端包括:
SRIO模块,用于收取来自节点计算机的数据,还用于将共享存储盘的数据转发给节点计算机;
SRIO协议接口模块,用于对SRIO模块收到的数据解帧,将解帧之后的指令帧和信息帧通过AXI总线上传到PS端的文件访问传输协议解析模块,将解帧之后的数据帧发送给缓存模块,还用于收取来自硬盘阵列的数据帧和来自于PS端的指令帧、信息帧并封装成SRIO帧格式数据后由SRIO模块发送到节点计算机;
DMA模块,用于把SRIO协议接口模块与缓存模块之间以及缓存模块与硬盘阵列之间的数据以数据块方式传输;
MIG控制器,用于控制缓存模块进行数据读写;
RAID控制器,用于通过AXI总线获取共享存储文件管理系统的RAID配置信息,并根据RAID配置信息将硬盘阵列中的硬盘构成冗余存储阵列;
SATA HOST控制器,用于通过AXI总线获取SATA命令,并根据SATA命令与硬盘阵列中对应的硬盘进行数据读写操作。
进一步的,所述RAID控制器包括:
数据接收接口,用于接收来自缓存模块的待写入数据;
数据发送接口,用于将来自RAID数据转换控制模块的数据发送给缓存模块;
RAID配置模块,用于通过AXI总线获取并解析共享存储文件管理系统的RAID配置信息;
RAID数据转换控制模块,用于根据RAID配置模块的解析结果配置硬盘阵列的RAID模式为RAID 0模式或RAID 1模式;
RAID 0读写控制模块,用于控制所有SATA HOST控制器对硬盘阵列以RAID 0方式进行数据读写;
RAID 1读写控制模块,用于控制所有SATA HOST控制器对硬盘阵列以RAID 1方式进行数据读写。
进一步的,所述SATA HOST控制器包括:
应用层,用于解析存储硬件驱动程序中的SATA命令得到操作命令并执行,操作命令为写操作时将操作指令和RAID控制器的待写入数据转发给传输层,操作命令为读操作时接收并缓存传输层发送的数据以及状态信息;
传输层,用于执行写操作时从应用层获取待写入数据和操作命令,对待写入数据与操作命令分别组帧后将数据帧和指令帧发送给链路层,将组帧操作的状态信息返回应用层;还用于执行读操作时接收链路层反馈的信息帧和数据帧并分别上传到应用层;
链路层,用于执行写操作时收取传输层发送的数据帧、指令帧,对其进行CRC校验后添加帧头、帧尾信息,进行加扰处理后发送到物理层并进行流量控制;还用于执行读操作时接收物理层返回的原始数据帧和状态帧,并对其进行解扰操作和CRC校验,然后对校验正常的数据帧进行解帧操作,对解帧之后的数据进行分类后上传到传输层;
物理层,用于执行写操作时接收链路层发送的伪随机码流,对其进行并串转换且插入时钟信息后发送给硬盘阵列中对应的硬盘;还用于执行读操作时接收硬盘阵列的伪随机码流,对其进行串行数据并行化,并提取运行时钟信息,将处理后的伪随机码流发送给链路层。
本发明还提出一种共享存储盘的数据存取方法,包括以下步骤:
S1)每个节点计算机分别向共享存储盘发送握手指令建立与共享存储盘的连接;
S2)每个节点计算机分别初始化共享存储盘信息并生成与共享存储盘对应的虚拟磁盘,将共享存储盘中的数据映射在虚拟磁盘中,根据用户对虚拟磁盘的操作向共享存储盘发送或读取对应的数据;
S3)共享存储盘的FPGA模块中,PL端的SRIO模块收取每个节点计算机发送的数据,再由PL端的SRIO 协议接口模块对所述数据中的数据帧、指令帧、信息帧进行解帧,并把解帧后的指令帧和信息帧通过AXI总线上报到PS端的文件访问传输协议解析模块,将解帧后的数据帧发送到缓存模块;
文件访问传输协议解析模块解帧后得到节点计算机系统端的文件操作指令,文件操作指令经由PS端的文件系统访问接口控制模块转成本地文件系统操作指令,PS端的共享存储文件管理系统接收本地文件系统操作指令,在共享存储控制管理模块的调度下启动存储硬件驱动程序,开始执行对应的文件操作缓存模块在接收到数据帧后先缓存在DDR缓存中,再在PS端的共享存储文件管理系统的调度下通过直接存储器访问的方式把数据帧通过RAID控制器模块和SATA HOST控制器模块写入到硬盘阵列中。
操作完成后文件访问传输协议解析模块获取共享存储文件管理系统中的文件访问结果或状态信息,并封装成相应的数据帧后由PL端经FPGA模块的SRIO接口发送到对应的节点计算机。
进一步的,步骤S3)中包括写操作的步骤,具体包括:
节点计算机发送写操作指令到共享存储盘,FPGA模块的SRIO模块收取写操作指令再解帧后通过AXI总线上传给文件访问传输协议解析模块,文件访问传输协议解析模块将指令帧解析为写操作的文件操作指令并通过文件系统访问接口控制模块转换为对应的本地文件系统操作指令后发送给共享存储文件管理系统,共享存储文件管理系统根据本地文件系统操作指令启动存储硬件驱动程序,存储硬件驱动程序调用相应的操作函数获取硬盘阵列的硬盘状态,然后将写入允许状态发送给文件访问传输协议解析模块,文件访问传输协议解析模块将写入允许状态封装成相应的数据帧并通过AXI总线下发到SRIO协议接口模块,SRIO协议接口模块封装成SRIO帧格式数据之后通过SRIO模块发送到节点计算机;
节点计算机收到写允许状态之后向FPGA模块的SRIO接口发送数据帧,SRIO模块收取待写入的数据,PL端的DMA模块获取待写入的数据并通过MIG控制器缓存在共享存储盘的缓存模块中,然后从缓存模块发送给PL端的RAID控制器模块,RAID控制器模块通过数据接收接口接收来自缓存模块的数据,RAID控制器模块的RAID模式由RAID数据转换控制模块根据RAID配置模块从AXI总线获取的RAID配置信息解析得到,若配置RAID 0模式,RAID 0读写控制模块从数据接收接口获取待写入的数据转发给PL端的所有SATA HOST控制器,在RAID0模式下控制所有SATA HOST控制器对硬盘阵列进行数据写入,若配置为RAID 1模式,RAID1读写控制模块从数据接收接口获取待写入的数据转发给PL端的所有SATA HOST控制器,在RAID 1模式下控制所有SATA HOST控制器对硬盘阵列进行数据写入。
进一步的,控制所有SATA HOST控制器对硬盘阵列进行数据写入具体包括:
共享存储盘的FPGA模块中,共享存储文件管理系统根据所接收的文件系统操作指令调用存储硬件驱动程序中对应的操作函数生成相应的SATA命令并通过AXI总线发送给PL端的SATA HOST控制器,每个SATA HOST控制器中,应用层解析SATA命令得到操作指令并执行,将操作指令和待写入数据转发给传输层;传输层接收应用层发送的操作指令和待写入数据,对待写入数据与操作指令分别组帧后将数据帧和指令帧发送给链路层,将组帧操作的状态信息返回应用层;链路层收取数据帧和指令帧,并进行CRC校验、添加帧头帧尾、扰码编码等操作,然后向物理层发送并进行流量控制;物理层接收到链路层数据后,对其进行并串转换并插入时钟信号后发送到硬盘阵列中对应的硬盘。
进一步的,步骤S3)中包括读操作的步骤,具体包括:
节点计算机发送读操作指令到共享存储盘,由FPGA模块中SRIO 模块收取读操作指令解帧后通过AXI总线上传给文件访问传输协议解析模块,文件访问传输协议解析模块将指令帧解析为读操作的文件操作指令并通过文件系统访问接口控制模块转换为对应的本地文件系统操作指令后发送给共享存储文件管理系统,共享存储文件管理系统根据本地文件系统操作指令启动存储硬件驱动程序;
RAID控制器模块中,若硬盘阵列的RAID模式为RAID 0模式,RAID 0读写控制模块控制PL端的所有SATA HOST控制器对硬盘阵列进行数据读取,并将读取的数据通过RAID 0读写控制模块发送给RAID数据转换控制模块,若硬盘阵列的RAID模式为RAID 1模式,RAID1读写控制模块控制PL端的所有SATA HOST控制器对硬盘阵列进行数据读取,并将读取的数据通过RAID 1读写控制模块发送给RAID数据转换控制模块;RAID数据转换控制模块收到RAID 0读写控制模块或RAID 1读写控制模块发送的数据,根据RAID配置模块的解析结果进行数据格式的转换,完成格式转换后的文件数据先缓存在缓存模块中,在PS端文件管理系统的调度下发送到SRIO协议接口模块,同时状态信息通过AXI总线反馈给共享存储文件管理系统;
共享存储文件管理系统更新文件读取的状态信息,将文件读取的状态信息发送给文件访问传输协议解析模块,文件访问传输协议解析模块将文件读取的状态信息封装成相应的数据帧并通过AXI总线下发到SRIO协议接口模块,SRIO协议接口模块将所收到的数据封装成SRIO帧格式数据之后通过SRIO模块发送到节点计算机。
进一步的,控制PL端的所有SATA HOST控制器对硬盘阵列进行数据读取并发送给RAID数据转换控制模块具体包括:
共享存储盘的FPGA模块中,根据共享存储文件管理系统所接收的文件系统操作指令,存储硬件驱动程序中对应的操作函数生成相应的SATA命令并通过AXI总线发送给PL端的SATA HOST控制器,每个SATA HOST控制器中,物理层将来自硬盘阵列中对应的硬盘的串行数据并行化并提取运行时钟信息,将伪随机码流上传到链路层,链路层接收到物理层上传的数据帧后先解扰处理,再通过CRC校验判断数据帧接收是否正常,对于接收正常的数据帧对其解帧后上传到传输层;传输层接收到链路层上传的数据后对其进行解帧后区分数据帧、指令帧、信息帧并分别上传到应用层,应用层将数据帧发送到对应的RAID 0读写控制模块或RAID 1读写控制模块,将指令帧和信息帧通过AXI总线上传到PS端的存储硬件驱动程序。
与现有技术相比,本发明的优点在于:
本发明的共享存储盘通过SRIO接口连接节点计算机,可以通过SRIO传输协议与节点计算机进行数据交互,利用了SRIO传输协议的传输带宽大、响应速率快的特点,同时共享存储盘中FPGA模块包括多种功能单元,使得共享存储盘本身具备文件管理功能。本发明的方法中,共享存储盘中的数据映射在节点计算机的虚拟磁盘中,通过操作虚拟磁盘对共享存储盘进行读写操作,共享存储盘通过SRIO接口与节点计算机进行数据交互,可以根据节点计算机的不同请求通过FPGA模块内的共享存储文件管理系统执行对应操作,对于节点计算机用户而言操作体验与普通外设存储设备相同,上述特征使得本发明的共享存储盘既具有千兆网接口共享存储盘使用简单的特点,又兼具传输带宽高、响应速率快的特点,能够很好的满足集采集、存储、计算、处理于一体的多计算节点的平台的需求。
附图说明
图1为本发明实施例的结构框图。
图2为本发明实施例的FPGA模块的架构示意图。
图3为本发明实施例的RAID控制器的结构框图。
图4为本发明实施例的SATA HOST控制器的结构框图。
图5为本发明实施例的方法中每个节点计算机连接共享存储盘进行数据读写的流程图。
具体实施方式
以下结合说明书附图和具体优选的实施例对本发明作进一步描述,但并不因此而限制本发明的保护范围。如图1所示,本发明提出一种基于SRIO接口的共享存储盘,包括FPGA模块、电源管理电路、硬盘阵列、缓存模块和状态自检电路,所述硬盘阵列包括至少4块SATA 3.0接口固态硬盘,所述电源管理电路和状态自检电路连接,所述FPGA模块通过SRIO接口和被安装的多计算节点嵌入式系统中的节点计算机连接,所述FPGA模块通过SATA接口和硬盘阵列连接,所述FPGA模块通过缓存接口和缓存模块连接,所述FPGA模块包括PL端和PS端,所述PS端和PL端通过AXI总线互相连接,其中:
所述PL端用于实现FPGA模块的SRIO接口、缓存接口、RAID控制器、SATA HOST控制器,还用于通过AXI总线与PS端进行交互;
所述PS端用于运行文件管理系统、文件访问传输协议解析程序、文件系统访问接口控制程序、共享存储控制管理程序等,实现共享存储盘的逻辑功能,还用于通过AXI总线与PL端实现指令、状态以及配置交互;
共享存储盘在上电启动后先由FPGA模块的PS端通过AXI总线获取FPGA模块控制的外围器件的工作状态,再通过AXI总线向PL端配置参数、下发操作指令并完成整个共享存储盘的初始化。在节点计算机对共享存储盘进行文件访问时,先由节点计算机通过SRIO接口发送文件访问指令,FPGA的PL端由SRIO接口模块完成数据接收,并通过AXI总线把文件访问指令上传到PS端,在PS端完成指令解析、运行操作之后把文件访问结果通过SRIO接口反馈到节点计算机;
所述电源管理电路用于将12V电源转换为共享存储盘各模块的供电电平,进行供电管理以及过压过流保护;
所述状态自检电路由3.3V电源供电,用于监测共享存储盘的工作状态并上报设备健康状态。
通过上述结构,本实施例中共享存储盘通过SRIO接口连接节点计算机,可以通过SRIO传输协议与节点计算机进行数据交互,利用了SRIO传输协议传输带宽大、响应速率快的特点,可在高可靠性、高带宽、实时响应要求的系统中实现多计算节点对存储资源共享。
本实施例中通过FPGA模块实现共享存储盘与节点计算机之间的SRIO传输协议、建立在SRIO传输协议上的文件访问协议、共享存储本地文件管理系统、多种RAID方式控制SATA 3.0固态硬盘,具体的:
如图2所示,本实施例的PS端包括:
共享存储控制管理模块,用于调度文件访问传输协议解析模块、文件系统访问接口控制模块、共享存储文件管理系统和存储硬件驱动程序的运行,在多主机访问共享存储盘时以循环链表的方式实现时间片在不同访问主机间流转,从而快速响应多主机文件访问操作;
文件访问传输协议解析模块,用于通过AXI总线从PL端获取节点计算机发送的文件访问指令的指令帧、信息帧,并将指令帧、信息帧解析成相应的节点计算机系统端的文件操作指令以实现后续的文件系统访问,还用于从共享存储文件管理系统获取访问的结果或状态,将访问的结果或状态封装成相应的数据帧并通过AXI总线由PL端经FPGA模块的SRIO接口反馈到节点计算机,主要工作包括指令接收、指令解析和状态反馈;
文件系统访问接口控制模块,用于将节点计算机系统端的文件操作指令转换为共享存储文件管理系统的本地文件系统操作指令;
共享存储文件管理系统,用于实现文件创建、文件修改、文件删除、文件读取、文件查询、存储空间管理等操作,共享存储文件管理系统是基于FPGA 软核裸机开发的文件管理系统,该文件管理系统通过AXI总线从PL端获取硬盘阵列中固态硬盘的基本状态信息以及RAID状态信息,或者通过AXI总线将RAID配置信息发送给PL端、获取或初始化共享存储盘的存储介质状态;该文件管理系统还根据文件系统操作指令选择存储硬件驱动程序封装的操作函数来实现文件数据、文件信息在硬盘阵列中固态硬盘上的存或取。该文件管理系统通过文件系统访问接口控制模块获取文件系统操作指令,通过共享存储控制管理模块的调度启动存储硬件驱动程序并执行对应的文件操作,避免多主机访问时造成的单个主机访问响应不及时的问题;
存储硬件驱动程序,用于实现共享存储文件管理系统对不同配置下的硬盘阵列的访问,存储硬件驱动程序为根据硬盘阵列中存在多个存储盘、多种RAID方式的工作情况设计的阵列读写函数、状态查询函数、参数配置函数等操作函数。根据共享存储文件管理系统的文件操作指令,调用存储硬件驱动程序中对应的操作函数并生成相应的SATA命令并通过AXI总线发送给PL端。
如图2所示,本实施例的PL端包括:
SRIO 模块,用于收取来自节点计算机的数据,还用于将共享存储盘的数据转发给节点计算机;
SRIO协议接口模块,用于对SRIO模块收到的数据解帧,将解帧之后的指令帧和信息帧通过AXI总线上传到PS端的文件访问传输协议解析模块,将解帧之后的数据帧发送给缓存模块,还用于收取来自硬盘阵列的数据帧和来自PS端的指令帧、信息帧并封装成SRIO帧格式数据后由SRIO模块发送到节点计算机;
DMA模块,用于把SRIO协议接口模块与缓存模块之间以及缓存模块与硬盘阵列之间的数据以数据块方式传输;
MIG控制器,用于控制缓存模块进行数据读写;
RAID控制器,用于实现数据在硬盘阵列中的冗余存储,RAID模式由PS端的共享存储文件管理系统通过AXI总线配置,RAID控制器通过AXI总线获取共享存储文件管理系统的RAID配置信息,并根据RAID配置信息将硬盘阵列中的硬盘构成冗余存储阵列;
SATA HOST控制器,SATA HOST控制器是基于SATA 3.0协议开发的SATA主端控制器,向下兼容SATA 2.0、SATA 1.0协议,用于实现对硬盘阵列中的硬盘的读写操作,通过AXI总线获取存储硬件驱动程序下发的SATA命令,并根据SATA命令对硬盘阵列中对应的硬盘进行数据读写操作。
通过上述结构,本实施例中共享存储盘通过FPGA模块的PL端和PS端共同处理共享存储盘操作,PS端主要用于对文件协议解析、操作管理、状态管理、文件数据管理等,PL端主要用SRIO接口数据传输功能、缓存功能、RAID功能、SATA主控制器等功能的实现。
如图3所示,本实施例中,RAID控制器包括:
数据接收接口,用于接收来自缓存模块的数据;
数据发送接口,用于将来自RAID数据转换控制模块的数据发送给缓存模块;
RAID配置模块,用于通过AXI总线获取并解析共享存储文件管理系统的RAID配置信息;
RAID数据转换控制模块,用于根据RAID配置模块的解析结果配置硬盘阵列的RAID模式RAID 0模式或RAID 1模式;
RAID 0读写控制模块,用于控制所有SATA HOST控制器以RAID 0模式对硬盘阵列进行数据读写;
RAID 1读写控制模块,用于控制所有SATA HOST控制器以RAID 1模式对硬盘阵列进行数据读写。
如图4所示,本实施例中的SATA HOST控制器采用分层设计,包括:
应用层,包括接口寄存器、指令缓存和数据缓存接口,接口寄存器是用于传递SATA协议命令和SATA协议状态信息的接口,共享存储文件管理系统通过存储硬件驱动程序的相应操作函数将访问硬盘的SATA命令写入到接口寄存器中,或读取固态硬盘反馈到接口寄存器中的状态信息;指令缓存用于对SATA命令译码得到相应的操作命令并执行操作命令,还向传输层提供寄存器访问逻辑,数据缓存接口用于缓存读写过程中的文件数据;
本实施例中,应用层解析存储硬件驱动程序中的SATA命令得到操作命令并执行,操作命令为写操作时将操作指令和RAID控制器的数据接收接口缓存的待写入数据转发给传输层,操作命令为读操作时接收并缓存传输层发送的数据以及状态信息;
传输层,包括寄存器组、指令缓存、协议帧缓存、数据收发缓存以及传输层状态机,用于接收应用层下发的操作命令以及接收链路层反馈的硬盘状态信息;指令缓存根据寄存器组接收到的操作命令,完成传输层帧操作以及返回完成或错误的状态信息,数据收发缓存包括写数据缓冲区和读数据缓冲区,协议帧缓存和写数据缓冲区用于操作命令和待写入数据的组帧操作,协议帧缓存和读数据缓冲区用于状态信息和文件数据的解帧操作。传输层状态机用于控制寄存器组、指令缓存、协议帧缓存、数据收发缓存工作;
本实施例中,执行写操作时,传输层从应用层获取待写入数据和操作命令,对待写入数据与操作命令分别组帧后将数据帧和指令帧发送给链路层,将组帧操作的状态信息返回应用层。执行读操作时,传输层接收链路层反馈的信息帧和数据帧并分别上传到应用层;
链路层,包括寄存器组、帧收发模块、CRC校验对比模块、加扰解扰模块、链路层状态机,用于接收传输层的指令帧和数据帧、接收物理层传递的状态信息和文件数据,作为上下层传递信息的接口;帧收发模块包括帧发送器模块和帧接收模块,帧发送器模块用于接收写入数据添加帧头帧尾并通过CRC插值模块完成数据校验计算后进行组帧,帧接收模块用于接收的物理层数据完成CRC校验之后进行删除帧头、帧尾等解帧操作;CRC校验对比模块包括CRC插值模块和CRC判决模块,其中CRC插值模块对传输层下发的帧数据进行CRC计算,CRC判决模块用于检测链路层收到的信息与发出的信息是否一致,以降低传输过程中产生误码;加扰解扰模块包括加扰模块和解扰模块,加扰模块用于将待发送的数据转换成伪随机码流,使信号频谱扩散且保持相对稳定,解扰模块用于将收到的数据提取时钟信息并解扰后生成原始数据;链路层状态机用于控制寄存器组、帧收发模块、CRC校验对比模块、加扰解扰模块工作;
本实施例中,执行写操作时,链路层收取传输层发送的指令帧和数据帧,对其进行CRC校验计算后添加帧头、帧尾信息,进行加扰处理后发送给物理层并进行流量控制,执行读操作时,链路层接收物理层返回的原始数据帧和状态帧,对其进行解扰操作后再进行CRC校验,对CRC校验正确的帧进行删除帧头、帧尾等解帧操作,对解帧之后的数据进行分类后上传到传输层;
物理层,包括GTX模块和时钟管理模块,GTX模块用于对待写入伪随机码流进行并行数据串行化后发送给硬盘阵列中对应的硬盘,或接收对应硬盘返回的伪随机码流进行串行数据并行化后发送给链路层,还用于进行码元检测、提供OOB信号、上电复位以及速率匹配,时钟管理模块用于产生物理层各个模块需要的时钟信号;
本实施例中,执行写操作时,物理层接收链路层发送的伪随机码流,对伪随机码流执行并行数据串行化且插入时钟信息,然后发送给硬盘阵列中对应的硬盘,执行读操作时,物理层将硬盘阵列中对应的硬盘的串行数据并行化,并提取运行时钟信息,将处理后的伪随机码流发送给链路层。
如图5所示,本发明还提出一种共享存储盘的数据存取方法,包括以下步骤:
S1)每个节点计算机分别向共享存储盘发送握手指令建立与共享存储盘的连接,本实施例中,针对每个节点计算机,节点计算机系统启动过程中扫描共享存储盘并发送握手指令,若扫描失败,则重复上述过程,重复次数达到阈值后,如连续3次扫描失败,说明多计算节点嵌入式系统中可能未安装共享存储盘,结束并退出;
进行后续步骤之前,本实施例中,共享存储盘的状态自检电路上报健康状态,若健康状态正常,共享存储盘将硬盘阵列所保存的文件目录发送给所连接的节点计算机,若健康状态异常,则重复上述过程,重复次数达到阈值后,如连续3次上报的健康状态均异常,说明共享存储盘可能存在问题,不能进行读写操作,结束并退出;
S2)每个节点计算机分别根据文件目录初始化共享存储盘信息并生成与共享存储盘对应的虚拟磁盘,将共享存储盘中的数据映射在虚拟磁盘中,根据用户对虚拟磁盘的操作向共享存储盘发送或读取对应的数据,操作若为写操作,节点计算机获取待写入的数据并发送给共享存储盘,本实施例中,共享存储盘信息包括共享存储盘盘符、容量和文件信息;
S3)共享存储盘的FPGA模块中,PL端的SRIO模块收取每个节点计算机发送的数据,再由PL端的SRIO 协议接口模块对所述数据中的数据帧、指令帧、信息帧进行解帧,并把解帧后的指令帧和信息帧通过AXI总线上报到PS端的文件访问传输协议解析模块,将解帧后的数据帧发送到缓存模块;
文件访问传输协议解析模块解帧后得到节点计算机系统端的文件操作指令,文件操作指令经由PS端的文件系统访问接口控制模块转成本地文件系统操作指令,PS端的共享存储文件管理系统接收本地文件系统操作指令,通过共享存储控制管理模块的调度,启动存储硬件驱动程序执行对应的文件操作,缓存模块在接收到数据帧后先缓存在DDR缓存中,再在PS端的共享存储文件管理系统的调度下通过DMA(Direct Memory Access,直接存储器访问)的方式把数据帧通过RAID控制器模块和SATA HOST控制器模块写入到硬盘阵列中。
操作完成后,文件访问传输协议解析模块获取共享存储文件管理系统中的文件访问结果或状态信息,并封装成相应的数据帧后由PL端经FPGA模块的SRIO接口发送到对应的节点计算机。
本实施例的步骤S3)中包括写操作的步骤,具体包括:
节点计算机发送写操作指令到共享存储盘,FPGA模块的SRIO模块收取写操作指令再解帧后通过AXI总线上传给文件访问传输协议解析模块,文件访问传输协议解析模块将指令帧解析为写操作的文件操作指令并通过文件系统访问接口控制模块转换为对应的本地文件系统操作指令后发送给共享存储文件管理系统,共享存储文件管理系统根据本地文件系统操作指令启动存储硬件驱动程序并,存储硬件驱动程序调用相应的操作函数获取硬盘阵列的固态存储盘状态,然后将写入允许状态发送给文件访问传输协议解析模块,文件访问传输协议解析模块将写入允许状态封装成相应的状态帧并通过AXI总线下发到SRIO协议接口模块,SRIO协议接口模块封装成SRIO帧格式数据之后通过SRIO模块发送到节点计算机;
节点计算机收到写允许状态之后向FPGA模块的SRIO接口发送数据帧,SRIO模块收取待写入的数据,PL端的DMA模块获取待写入的数据并通过MIG控制器缓存在共享存储盘的缓存模块中,然后从缓存模块发送给PL端的RAID控制器模块,RAID控制器模块中通过数据接收接口接收来自缓存模块的数据,RAID控制器模块的RAID模式由RAID数据转换控制模块根据RAID配置模块通过AXI总线获取的RAID配置信息解析得到,若配置RAID 0模式,RAID 0读写控制模块从数据接收接口获取待写入的数据转发给PL端的所有SATA HOST控制器,在RAID 0模式下控制所有SATA HOST控制器对硬盘阵列进行数据写入,若配置为RAID 1模式,RAID 1读写控制模块从数据接收接口获取待写入的数据转发给PL端的所有SATA HOST控制器,在RAID 1模式下控制所有SATA HOST控制器对硬盘阵列进行数据写入。
本实施例中,控制所有SATA HOST控制器对硬盘阵列进行数据写入具体包括:
共享存储盘的FPGA模块中,共享存储文件管理系统根据所接收的文件系统操作指令调用存储硬件驱动程序中对应的操作函数生成相应的SATA命令并通过AXI总线发送给PL端的SATA HOST控制器,每个SATA HOST控制器中,应用层解析SATA命令得到操作指令并执行,将操作指令发送给传输层,将待写入数据转发给传输层;传输层接收应用层发送的操作指令,根据操作指令从应用层获取待写入数据,对待写入数据与操作指令分别组帧后将数据帧和指令帧发送给链路层,将组帧操作的状态信息返回应用层;链路层收取数据帧和指令帧,并进行CRC校验、添加帧头帧尾、扰码编码等操作,然后向物理层发送并进行流量控制;物理层接收到链路层数据后对其进行并串转换并插入时钟信号后发送到硬盘阵列中对应的硬盘。
本实施例的步骤S3)中包括读操作的步骤,具体包括:
节点计算机发送读操作指令到共享存储盘,FPGA模块中SRIO模块收取读操作指令再解帧后通过AXI总线上传给文件访问传输协议解析模块,文件访问传输协议解析模块将指令帧解析为读操作的文件操作指令并通过文件系统访问接口控制模块转换为对应的本地文件系统操作指令后发送给共享存储文件管理系统,共享存储文件管理系统根据本地文件系统操作指令启动存储硬件驱动程序。
RAID控制器模块中,若硬盘阵列的RAID模式为RAID 0模式,RAID 0读写控制模块控制PL端的所有SATA HOST控制器对硬盘阵列进行数据读取,并将读取的数据通过RAID 0读写控制模块发送给RAID数据转换控制模块,若硬盘阵列的RAID模式为RAID 1模式,RAID1读写控制模块控制PL端的所有SATA HOST控制器对硬盘阵列进行数据读取,并将读取的数据通过RAID 1读写控制模块发送给RAID数据转换控制模块;RAID数据转换控制模块收到RAID 0读写控制模块或RAID 1读写控制模块发送的数据,根据RAID配置模块的解析结果进行数据格式的转换,完成格式转换后的文件数据通过MIG控制器先缓存在缓存模块中,然后在PS端的共享存储文件管理系统的调度下发送到SRIO协议接口模块,同时将状态信息通过AXI总线反馈给共享存储文件管理系统;
共享存储文件管理系统更新文件读取的状态信息,将文件读取的状态信息发送给文件访问传输协议解析模块,文件访问传输协议解析模块将文件读取的状态信息封装成相应的数据帧并通过AXI总线下发到SRIO协议接口模块,SRIO协议接口模块将所收到的数据封装成SRIO帧格式数据之后通过SRIO模块发送到节点计算机。
本实施例中,控制PL端的所有SATA HOST控制器对硬盘阵列进行数据读取具体包括:
共享存储盘的FPGA模块中,根据共享存储文件管理系统所接收的文件系统操作指令,存储硬件驱动程序中对应的操作函数生成相应的SATA命令并通过AXI总线发送给PL端的SATA HOST控制器,每个SATA HOST控制器中,物理层将来自硬盘阵列中对应的硬盘的串行数据并行化并提取运行时钟信息,将伪随机码流上传到链路层,链路层接收到物理层上传的数据帧后先解扰处理再通过CRC校验判断数据帧接收是否正常,对于接收正常的数据帧对其解帧后上传到传输层,具体包括:链路层对原始数据帧解扰,然后删除帧头、帧尾、校验信息,验证数据帧和原始数据帧中信息是否一致,若一致将数据帧解帧后发送给传输层;传输接收到链路层上传的数据后对其进行解帧后区分数据帧、指令帧、信息帧并分别上传到应用层,应用层将数据帧发送到对应的RAID 0读写控制模块或RAID 1读写控制模块,将指令帧和信息帧通过AXI总线上传到PS端的存储硬件驱动程序。
上述只是本发明的较佳实施例,并非对本发明作任何形式上的限制。虽然本发明已以较佳实施例揭露如上,然而并非用以限定本发明。因此,凡是未脱离本发明技术方案的内容,依据本发明技术实质对以上实施例所做的任何简单修改、等同变化及修饰,均应落在本发明技术方案保护的范围内。

Claims (6)

1.一种基于SRIO接口的共享存储盘,其特征在于,包括FPGA模块、电源管理电路、硬盘阵列、缓存模块和状态自检电路,所述硬盘阵列包括至少4块硬盘,所述电源管理电路和状态自检电路连接,所述FPGA模块通过SRIO接口和被安装的多计算节点嵌入式系统中的节点计算机连接,所述FPGA模块通过SATA接口和硬盘阵列连接,所述FPGA模块通过缓存接口和缓存模块连接,所述FPGA模块包括PL端和PS端,所述PS端和PL端通过AXI总线互相连接,其中:
所述PL端用于实现FPGA模块的SRIO接口、缓存接口、RAID控制器、SATA HOST控制器,还用于通过AXI总线与PS端进行交互;
所述PS端用于运行文件管理系统、文件访问传输协议解析程序、文件系统访问接口控制程序、共享存储控制管理程序,实现共享存储盘的逻辑功能,还用于通过AXI总线与PL端实现指令、状态以及配置交互;
所述电源管理电路用于将12V电源转换为共享存储盘各模块的供电电平;
所述状态自检电路用于监测共享存储盘的工作状态;
所述PS端包括:
共享存储控制管理模块,用于调度文件访问传输协议解析模块、文件系统访问接口控制模块、共享存储文件管理系统和存储硬件驱动程序的运行;
文件访问传输协议解析模块,用于通过AXI总线从PL端获取节点计算机发送的指令帧、信息帧,并将指令帧、信息帧解析成相应的节点计算机系统端的文件操作指令,还用于从共享存储文件管理系统获取文件访问结果或状态信息,将文件访问结果或状态信息封装成相应的数据帧并通过AXI总线由PL端经FPGA模块的SRIO接口反馈到节点计算机;
文件系统访问接口控制模块,用于将节点计算机系统端的文件操作指令转换为共享存储文件管理系统的本地文件系统操作指令;
共享存储文件管理系统,用于通过AXI总线从PL端获取硬盘阵列中硬盘的基本状态信息以及RAID状态信息,通过AXI总线将RAID配置信息发送给PL端;还用于通过文件系统访问接口控制模块接收文件系统操作指令,通过共享存储控制管理模块的调度启动存储硬件驱动程序并执行对应的文件操作;
存储硬件驱动程序,用于根据共享存储文件管理系统所接收的文件系统操作指令生成相应的SATA命令并通过AXI总线发送给PL端;
所述PL端包括:
SRIO模块,用于收取来自节点计算机的数据,还用于将共享存储盘的数据转发给节点计算机;
SRIO协议接口模块,用于对SRIO模块收到的数据解帧,将解帧之后的指令帧和信息帧通过AXI总线上传到PS端的文件访问传输协议解析模块,将解帧之后的数据帧发送给缓存模块,还用于收取来自硬盘阵列的数据帧和来自PS端的指令帧、信息帧并封装成SRIO帧格式数据后由SRIO模块发送到节点计算机;
DMA模块,用于把SRIO协议接口模块与缓存模块之间以及缓存模块与硬盘阵列之间的数据以数据块方式传输;
MIG控制器,用于控制缓存模块进行数据读写;
RAID控制器,用于通过AXI总线获取共享存储文件管理系统的RAID配置信息,并根据RAID配置信息将硬盘阵列中的硬盘构成冗余存储阵列;
SATA HOST控制器,用于通过AXI总线获取SATA命令,并根据SATA命令与硬盘阵列中对应的硬盘进行数据读写操作;
所述RAID控制器包括:
数据接收接口,用于接收来自缓存模块的待写入数据;
数据发送接口,用于将来自RAID数据转换控制模块的数据发送给缓存模块;
RAID配置模块,用于通过AXI总线获取并解析共享存储文件管理系统的RAID配置信息;
RAID数据转换控制模块,用于根据RAID配置模块的解析结果配置硬盘阵列的RAID模式为RAID 0模式或RAID 1模式;
RAID 0读写控制模块,用于控制所有SATA HOST控制器对硬盘阵列以RAID 0方式进行数据读写;
RAID 1读写控制模块,用于控制所有SATA HOST控制器对硬盘阵列以RAID 1方式进行数据读写;
所述SATA HOST控制器包括:
应用层,用于解析存储硬件驱动程序中的SATA命令得到操作命令并执行,操作命令为写操作时将操作指令和RAID控制器的待写入数据转发给传输层,操作命令为读操作时接收并缓存传输层发送的数据以及状态信息;
传输层,用于执行写操作时从应用层获取待写入数据和操作命令,对待写入数据与操作命令分别组帧后将数据帧和指令帧发送给链路层,将组帧操作的状态信息返回应用层;还用于执行读操作时接收链路层反馈的信息帧和数据帧并分别上传到应用层;
链路层,用于执行写操作时收取传输层发送的数据帧、指令帧,对其进行CRC校验后添加帧头和帧尾,再进行加扰处理后发送到物理层并进行流量控制;还用于执行读操作时接收物理层返回的原始数据帧和状态帧,并对其进行解扰操作和CRC校验,然后对校验正常的帧进行解帧操作,对解帧之后的数据分类后上传到传输层;
物理层,用于执行写操作时接收链路层发送的伪随机码流,对其进行并串转换且插入时钟信息后发送到硬盘阵列中对应的硬盘;还用于执行读操作时接收硬盘阵列的伪随机码流,对其进行串行数据并行化,并提取运行时钟信息,将处理后的伪随机码流发送给链路层。
2.一种共享存储盘的数据存取方法,其特征在于,包括以下步骤:
S1)每个节点计算机分别向共享存储盘发送握手指令建立与共享存储盘的连接,所述共享存储盘为权利要求1所述的基于SRIO接口的共享存储盘;
S2)每个节点计算机分别初始化所述共享存储盘信息并生成与共享存储盘对应的虚拟磁盘,将所述共享存储盘中的数据映射在虚拟磁盘中,根据用户对虚拟磁盘的操作向所述共享存储盘发送或读取对应的数据;
S3)所述共享存储盘的FPGA模块中,PL端的SRIO模块收取每个节点计算机发送的数据,再由PL端的SRIO 协议接口模块对所述数据中的数据帧、指令帧、信息帧进行解帧,并把解帧后的指令帧和信息帧通过AXI总线上报到PS端的文件访问传输协议解析模块,将解帧后的数据帧发送到缓存模块;
文件访问传输协议解析模块解帧后得到节点计算机系统端的文件操作指令,文件操作指令经由PS端的文件系统访问接口控制模块转成本地文件系统操作指令,PS端的共享存储文件管理系统接收本地文件系统操作指令,通过共享存储控制管理模块的调度启动存储硬件驱动程序开始执行对应的文件操作,缓存模块在接收到数据帧后先缓存在DDR缓存中,再在PS端的共享存储文件管理系统的调度下通过直接存储器访问的方式把数据帧通过RAID控制器模块和SATA HOST控制器模块写入到硬盘阵列中;
操作完成后文件访问传输协议解析模块获取共享存储文件管理系统中的文件访问结果或状态信息,并封装成相应的数据帧后由PL端经FPGA模块的SRIO接口发送到对应的节点计算机。
3.根据权利要求2所述的共享存储盘的数据存取方法,其特征在于,步骤S3)中包括写操作的步骤,具体包括:
节点计算机发送写操作指令到共享存储盘,FPGA模块的SRIO模块收取写操作指令再解帧后通过AXI总线上传给文件访问传输协议解析模块,文件访问传输协议解析模块将指令帧解析为写操作的文件操作指令并通过文件系统访问接口控制模块转换为对应的本地文件系统操作指令后发送给共享存储文件管理系统,共享存储文件管理系统根据本地文件系统操作指令启动存储硬件驱动程序,存储硬件驱动程序调用相应的操作函数获取硬盘阵列的硬盘状态,然后将写入允许状态发送给文件访问传输协议解析模块,文件访问传输协议解析模块将写入允许状态封装成相应的状态帧并通过AXI总线下发到SRIO协议接口模块,SRIO协议接口模块封装成SRIO帧格式数据之后通过SRIO模块发送到节点计算机;
节点计算机收到写允许状态之后向FPGA模块的SRIO接口发送数据帧,SRIO模块收取待写入的数据,PL端的DMA模块获取待写入的数据并通过MIG控制器缓存在共享存储盘的缓存模块中,然后从缓存模块发送给PL端的RAID控制器模块,RAID控制器模块通过数据接收接口接收来自缓存模块的数据,RAID控制器模块的RAID模式由RAID数据转换控制模块根据RAID配置模块从AXI总线获取的RAID配置信息解析得到,若配置RAID 0模式,RAID 0读写控制模块从数据接收接口获取待写入的数据转发给PL端的所有SATA HOST控制器,在RAID 0模式下控制所有SATA HOST控制器对硬盘阵列进行数据写入,若配置为RAID 1模式,RAID 1读写控制模块从数据接收接口获取待写入的数据转发给PL端的所有SATA HOST控制器,在RAID 1模式下控制所有SATA HOST控制器对硬盘阵列进行数据写入。
4.根据权利要求3所述的共享存储盘的数据存取方法,其特征在于,控制所有SATAHOST控制器对硬盘阵列进行数据写入具体包括:
共享存储盘的FPGA模块中,共享存储文件管理系统根据所接收的文件系统操作指令调用存储硬件驱动程序中对应的操作函数生成相应的SATA命令并通过AXI总线发送给PL端的SATA HOST控制器,每个SATA HOST控制器中,应用层解析SATA命令得到操作指令并执行,将操作指令和待写入数据转发给传输层;传输层接收应用层发送的操作指令和待写入数据,对待写入数据与操作指令分别组帧后将数据帧和指令帧发送给链路层,将组帧操作的状态信息返回应用层;链路层收取数据帧和指令帧,并进行CRC校验、添加帧头帧尾、扰码编码操作,然后向物理层发送并进行流量控制,物理层接收到链路层数据后,对其进行并串转换并插入时钟信号后发送到硬盘阵列中对应的硬盘。
5.根据权利要求3所述的共享存储盘的数据存取方法,其特征在于,步骤S3)中包括读操作的步骤,具体包括:
节点计算机发送读操作指令到共享存储盘,FPGA模块的SRIO 模块收取读操作指令解帧后通过AXI总线上传给文件访问传输协议解析模块,文件访问传输协议解析模块将指令帧解析为读操作的文件操作指令并通过文件系统访问接口控制模块转换为对应的本地文件系统操作指令后发送给共享存储文件管理系统,共享存储文件管理系统根据本地文件系统操作指令启动存储硬件驱动程序;
RAID控制器模块中,若硬盘阵列的RAID模式为RAID 0模式,RAID 0读写控制模块控制PL端的所有SATA HOST控制器对硬盘阵列进行数据读取,并将读取的数据通过RAID 0读写控制模块发送给RAID数据转换控制模块,若硬盘阵列的RAID模式为RAID 1模式,RAID 1读写控制模块控制PL端的所有SATA HOST控制器对硬盘阵列进行数据读取,并将读取的数据通过RAID 1读写控制模块发送给RAID数据转换控制模块;RAID数据转换控制模块收到RAID0读写控制模块或RAID 1读写控制模块发送的数据,根据RAID配置模块的解析结果进行数据格式的转换,完成格式转换后的文件数据先缓存在缓存模块中,在PS端的共享存储文件管理系统的调度下发送到SRIO协议接口模块,同时状态信息通过AXI总线反馈给共享存储文件管理系统;
共享存储文件管理系统更新文件读取的状态信息,将文件读取的状态信息发送给文件访问传输协议解析模块,文件访问传输协议解析模块将文件读取的状态信息封装成相应的数据帧并通过AXI总线下发到SRIO协议接口模块,SRIO协议接口模块将所收到的数据封装成SRIO帧格式数据之后通过SRIO 模块发送到节点计算机。
6.根据权利要求5所述的共享存储盘的数据存取方法,其特征在于,控制PL端的所有SATA HOST控制器对硬盘阵列进行数据读取具体包括:
共享存储盘的FPGA模块中,根据共享存储文件管理系统所接收的文件系统操作指令,存储硬件驱动程序中对应的操作函数生成相应的SATA命令并通过AXI总线发送给PL端的SATA HOST控制器,每个SATA HOST控制器中,物理层将来自硬盘阵列中对应的硬盘的串行数据并行化并提取运行时钟信息,将伪随机码流上传到链路层,链路层接收到物理层上传的数据帧后先解扰处理,再通过CRC校验判断数据帧接收是否正常,对于接收正常的数据帧对其解帧后上传到传输层;传输层接收到链路层上传的数据,对其进行解帧后区分数据帧、指令帧、信息帧并分别上传到应用层,应用层将数据帧发送到对应的RAID 0读写控制模块或RAID 1读写控制模块,将指令帧和信息帧通过AXI总线上传到PS端的存储硬件驱动程序。
CN202110270970.3A 2021-03-12 2021-03-12 基于srio接口的共享存储盘及其存取方法 Active CN113176850B (zh)

Priority Applications (1)

Application Number Priority Date Filing Date Title
CN202110270970.3A CN113176850B (zh) 2021-03-12 2021-03-12 基于srio接口的共享存储盘及其存取方法

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
CN202110270970.3A CN113176850B (zh) 2021-03-12 2021-03-12 基于srio接口的共享存储盘及其存取方法

Publications (2)

Publication Number Publication Date
CN113176850A CN113176850A (zh) 2021-07-27
CN113176850B true CN113176850B (zh) 2022-07-12

Family

ID=76921954

Family Applications (1)

Application Number Title Priority Date Filing Date
CN202110270970.3A Active CN113176850B (zh) 2021-03-12 2021-03-12 基于srio接口的共享存储盘及其存取方法

Country Status (1)

Country Link
CN (1) CN113176850B (zh)

Families Citing this family (5)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN113704171B (zh) * 2021-08-20 2023-05-16 北京计算机技术及应用研究所 一种软件定义的数据存储系统
CN114036096B (zh) * 2021-11-04 2024-05-03 珠海一微半导体股份有限公司 一种基于总线接口的读控制器
CN114553369B (zh) * 2022-01-10 2023-11-03 合肥埃科光电科技股份有限公司 一种基于fpga的检测数字信号线缆性能的系统及方法
CN114691586B (zh) * 2022-05-26 2022-10-04 阿里巴巴(中国)有限公司 服务器、传输数据的方法以及带外管理芯片
CN115857805B (zh) * 2022-11-30 2023-06-27 合肥腾芯微电子有限公司 人工智能可计算存储系统

Family Cites Families (17)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US20130318276A1 (en) * 2012-05-22 2013-11-28 Xockets IP, LLC Offloading of computation for rack level servers and corresponding methods and systems
US20130346657A1 (en) * 2012-06-21 2013-12-26 Vigneshwara Bhatta File system on i/o daughter card
CN102880427A (zh) * 2012-08-20 2013-01-16 北京奇作电子有限公司 一种基于fpga的sata主控制器
CN103927276B (zh) * 2014-03-14 2017-03-22 山东大学 基于Zynq‑7000的PCM FMC扩展板及其工作方法
CN103870429B (zh) * 2014-04-03 2015-10-28 清华大学 基于嵌入式gpu的高速信号处理板
CN106598889A (zh) * 2016-08-18 2017-04-26 湖南省瞬渺通信技术有限公司 一种基于fpga夹层板的sata主控器
CN106776403A (zh) * 2016-11-11 2017-05-31 济南浪潮高新科技投资发展有限公司 一种基于fpga的高速大容量存储系统及其实现方法
CN106598499A (zh) * 2016-12-14 2017-04-26 深圳市中博睿存科技有限公司 一种基于fpga的分布式文件系统架构
CN107479831A (zh) * 2017-08-11 2017-12-15 浙江工业大学 一种基于Zynq平台的OCT体数据搬运方法
CN109189716A (zh) * 2018-08-08 2019-01-11 西安思丹德信息技术有限公司 一种基于fpga的数据传输系统及传输方法
CN109634532B (zh) * 2018-12-19 2022-06-14 湖南源科创新科技有限公司 多VxWorks主机共享访问存储介质的方法
CN109992543A (zh) * 2019-04-02 2019-07-09 山东超越数控电子股份有限公司 一种基于zyzq-7000的pci-e数据高效传输方法
CN111212141A (zh) * 2020-01-02 2020-05-29 中国科学院计算技术研究所 一种共享存储系统
CN111475113A (zh) * 2020-04-03 2020-07-31 上海领存信息技术有限公司 基于fpga和raid技术的大容量存储刀片及存取方法
CN111475459A (zh) * 2020-04-03 2020-07-31 上海领存信息技术有限公司 一种9u vpx数据存储服务器及数据处理方法
CN111475436A (zh) * 2020-04-07 2020-07-31 成都智明达电子股份有限公司 一种基于pcie交换网络的嵌入式高速sata存储阵列系统
CN111708493A (zh) * 2020-06-11 2020-09-25 山东云海国创云计算装备产业创新中心有限公司 一种磁盘阵列raid配置系统、方法及存储介质

Also Published As

Publication number Publication date
CN113176850A (zh) 2021-07-27

Similar Documents

Publication Publication Date Title
CN113176850B (zh) 基于srio接口的共享存储盘及其存取方法
CN108062285B (zh) 一种访问NVMe存储设备的方法和NVMe存储设备
US20110320706A1 (en) Storage apparatus and method for controlling the same
EP3660686B1 (en) Method and device for transmitting data processing request
KR20120087980A (ko) 다중 인터페이스 솔리드 스테이트 디스크, 및 다중 인터페이스 솔리드 스테이트 디스크의 처리 방법 및 시스템
CN110908600B (zh) 数据访问方法、装置和第一计算设备
CN106411872B (zh) 一种基于数据报文分类的报文压缩的方法和装置
US20220342567A1 (en) Data Storage Method, Data Reading Method, Data Storage Apparatus, Data Reading Apparatus, Storage Device in Storage System, and System
US10891081B1 (en) Systems and methods for asynchronous writing of synchronous write requests based on a dynamic write threshold
US10069604B2 (en) Data transmission method and apparatus
CN115269455B (zh) 基于fpga的磁盘数据读写控制方法、装置和存储终端
CN105897623B (zh) 一种数据的传输方法和装置
CN104702386A (zh) 基于全网络化的集中控制系统及方法
KR20180073229A (ko) Harq 처리를 수행하는 모뎀 칩, 이를 포함하는 어플리케이션 프로세서 및 모뎀 칩의 동작방법
CN115277348A (zh) 一种服务器管理方法、服务器及服务器管理系统
JP2003316521A (ja) 記憶制御装置
WO2015055008A1 (zh) 一种存储控制芯片及磁盘报文传输方法
US11954505B2 (en) Distributed data storage system with dormant hardware activation
US20050169170A1 (en) Space-efficient storage command and data routing system and method
US20060015774A1 (en) System and method for transmitting data in storage controllers
WO2006019853A2 (en) System and method for transferring data using storage controllers
US10408684B2 (en) Integrated thermal management of storage drives
CN106371966B (zh) 收集与数据处理系统的操作相关的监视数据
CN117493248B (zh) Usb数据传输方法、装置、系统、电子设备及存储介质
CN110017737B (zh) 基于飞行器的配电方法及装置

Legal Events

Date Code Title Description
PB01 Publication
PB01 Publication
SE01 Entry into force of request for substantive examination
SE01 Entry into force of request for substantive examination
GR01 Patent grant
GR01 Patent grant