CN113742282A - 一种基于fpga的sata ip核及数据存储方法 - Google Patents
一种基于fpga的sata ip核及数据存储方法 Download PDFInfo
- Publication number
- CN113742282A CN113742282A CN202111076029.4A CN202111076029A CN113742282A CN 113742282 A CN113742282 A CN 113742282A CN 202111076029 A CN202111076029 A CN 202111076029A CN 113742282 A CN113742282 A CN 113742282A
- Authority
- CN
- China
- Prior art keywords
- sata
- data
- interface
- module
- fpga
- 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.)
- Pending
Links
- 238000013500 data storage Methods 0.000 title claims abstract description 31
- 238000000034 method Methods 0.000 title claims abstract description 22
- 238000004891 communication Methods 0.000 claims abstract description 47
- 238000007726 management method Methods 0.000 claims description 41
- 230000005540 biological transmission Effects 0.000 claims description 35
- 238000012544 monitoring process Methods 0.000 claims description 6
- 230000003139 buffering effect Effects 0.000 claims description 3
- 238000005516 engineering process Methods 0.000 abstract description 5
- 238000003491 array Methods 0.000 abstract description 3
- 230000008569 process Effects 0.000 description 7
- 230000007246 mechanism Effects 0.000 description 6
- 238000004458 analytical method Methods 0.000 description 2
- 238000001514 detection method Methods 0.000 description 2
- 238000010586 diagram Methods 0.000 description 2
- 230000006870 function Effects 0.000 description 2
- 238000012423 maintenance Methods 0.000 description 2
- 230000004048 modification Effects 0.000 description 2
- 238000012986 modification Methods 0.000 description 2
- 238000011084 recovery Methods 0.000 description 2
- 230000001052 transient effect Effects 0.000 description 2
- 239000005441 aurora Substances 0.000 description 1
- 230000009286 beneficial effect Effects 0.000 description 1
- 125000004122 cyclic group Chemical group 0.000 description 1
- 239000000835 fiber Substances 0.000 description 1
- 230000006872 improvement Effects 0.000 description 1
- 230000008520 organization Effects 0.000 description 1
- 238000012545 processing Methods 0.000 description 1
- 230000000717 retained effect Effects 0.000 description 1
Images
Classifications
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F15/00—Digital computers in general; Data processing equipment in general
- G06F15/76—Architectures of general purpose stored program computers
- G06F15/78—Architectures of general purpose stored program computers comprising a single central processing unit
- G06F15/7867—Architectures of general purpose stored program computers comprising a single central processing unit with reconfigurable architecture
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F11/00—Error detection; Error correction; Monitoring
- G06F11/07—Responding to the occurrence of a fault, e.g. fault tolerance
- G06F11/08—Error detection or correction by redundancy in data representation, e.g. by using checking codes
- G06F11/10—Adding special bits or symbols to the coded information, e.g. parity check, casting out 9's or 11's
- G06F11/1004—Adding special bits or symbols to the coded information, e.g. parity check, casting out 9's or 11's to protect a block of data words, e.g. CRC or checksum
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F15/00—Digital computers in general; Data processing equipment in general
- G06F15/76—Architectures of general purpose stored program computers
- G06F15/78—Architectures of general purpose stored program computers comprising a single central processing unit
- G06F15/7807—System on chip, i.e. computer system on a single chip; System in package, i.e. computer system on one or more chips in a single package
- G06F15/781—On-chip cache; Off-chip memory
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F3/00—Input 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/06—Digital input from, or digital output to, record carriers, e.g. RAID, emulated record carriers or networked record carriers
- G06F3/0601—Interfaces specially adapted for storage systems
- G06F3/0602—Interfaces specially adapted for storage systems specifically adapted to achieve a particular effect
- G06F3/061—Improving I/O performance
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F3/00—Input 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/06—Digital input from, or digital output to, record carriers, e.g. RAID, emulated record carriers or networked record carriers
- G06F3/0601—Interfaces specially adapted for storage systems
- G06F3/0628—Interfaces specially adapted for storage systems making use of a particular technique
- G06F3/0655—Vertical data movement, i.e. input-output transfer; data movement between one or more hosts and one or more storage devices
- G06F3/0656—Data buffering arrangements
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F5/00—Methods or arrangements for data conversion without changing the order or content of the data handled
- G06F5/06—Methods or arrangements for data conversion without changing the order or content of the data handled for changing the speed of data flow, i.e. speed regularising or timing, e.g. delay lines, FIFO buffers; over- or underrun control therefor
- G06F5/065—Partitioned buffers, e.g. allowing multiple independent queues, bidirectional FIFO's
Landscapes
- Engineering & Computer Science (AREA)
- Theoretical Computer Science (AREA)
- General Engineering & Computer Science (AREA)
- Physics & Mathematics (AREA)
- General Physics & Mathematics (AREA)
- Computer Hardware Design (AREA)
- Human Computer Interaction (AREA)
- Computing Systems (AREA)
- Microelectronics & Electronic Packaging (AREA)
- Computer Security & Cryptography (AREA)
- Quality & Reliability (AREA)
- Debugging And Monitoring (AREA)
Abstract
本发明提出了一种基于FPGA的SATA IP核及数据存储方法,涉及数据存储技术领域。一种基于FPGA的SATA IP核,包括RAID阵列逻辑模块、多个SATA接口模块和多个通信接口模块;各个所述SATA接口模块和各个通信接口模块均与所述RAID阵列逻辑模块连接;各个所述SATA接口模块均连接有硬盘,其中,RAID阵列逻辑模块,用于通过所述通信接口模块获取外部输入数据并通过多个所述SATA接口模块将所述外部输入数据写入到对应的硬盘;还用于通过多个所述SATA接口模块从硬盘中读出数据,并通过所述通信接口模块将数据输出,RAID阵列逻辑模块将硬盘分为多组阵列形式,进而采用RAID阵列技术进行数据的储存,提高了数据存储的可靠性。
Description
技术领域
本发明涉及数据存储技术领域,具体而言,涉及一种基于FPGA的SATA IP核及数据存储方法。
背景技术
对于高速数字信号的实时存储,目前普遍采用FPGA直接写数据至Nandflash阵列里面的方案,其Flash的控制算法(FTL算法)均在FPGA里面实现,初期性能良好,使用一段时间以后,普遍性存在蓝屏,掉盘(存储设备在系统消失),客户数据经常性的无法恢复,系统无法使用等故障,而且故障现象一旦出现,很难使用技术手段维修维护,只能更换新卡,新卡经历一段时间之后,也会同样出问题。因此采用目前的存储方案可靠性不高。
发明内容
本发明的目的在于提供一种基于FPGA的SATA IP核及数据存储方法,用以改善现有技术中数据存储可靠性不高的问题。
第一方面,本申请实施例提供一种基于FPGA的SATA IP核,包括RAID阵列逻辑模块、多个SATA接口模块和多个通信接口模块;各个SATA接口模块和各个通信接口模块均与RAID阵列逻辑模块连接;各个SATA接口模块均连接有硬盘,其中,
RAID阵列逻辑模块,用于通过通信接口模块获取外部输入数据并通过多个SATA接口模块将外部输入数据写入到对应的硬盘;还用于通过多个SATA接口模块从硬盘中读出数据,并通过通信接口模块将数据输出。
上述实现过程中,RAID阵列逻辑模块通过通信接口模块获取外部输入数据并通过多个SATA接口模块将外部输入数据写入到对应的硬盘,从而达到数据存储的目的;RAID阵列逻辑模块通过多个SATA接口模块从硬盘中读出数据,并通过通信接口模块将数据输出,从而达到数据读出的目的。RAID阵列逻辑模块将硬盘分为多组阵列形式,进而采用RAID阵列技术进行数据的储存,上述SATA IP核独立占用一块FPGA芯片,通过加载本IP核,FPGA芯片即成为具备对多个SATA接口硬盘进行阵列控制的高性能存储控制器芯片,对外通信典型地采用RapidIO协议、以太网等协议,数据通信以帧为基本单位进行组织,每个数据帧都配有CRC校验字和帧序号,因此对于数据传输错误是完全可检测的。当出现数据通信错误时,通信逻辑将使用重新传输机制对数据重传,直至数据传输正确,从而确保数据写入和读出的可靠性。同时,基于SATA协议,FPGA与每一块硬盘之间的数据也是基于帧格式进行组织和传输的,每一帧数据同样也配有CRC校验字,因此FPGA与SATA之间的数据传输错误也是完全可检测的,同样地,对于偶发的数据传输错误,FPGA将重新发起读写操作,直至数据传输正确。从而提高速据写入和读出的可靠性。
基于第一方面,在本发明的一些实施例中,还包括缓冲管理模块,RAID阵列逻辑模块和外部存储芯片分别与缓冲管理模块连接;
缓冲管理模块,用于将数据缓冲到外部存储芯片中。
基于第一方面,在本发明的一些实施例中,还包括智能管理模块,智能管理模块与RAID阵列逻辑模块连接,用于对RAID阵列逻辑模块中的数据流进行监测,并根据监测结果进行调度。
基于第一方面,在本发明的一些实施例中,RAID阵列逻辑模块包括RAID逻辑单元、多个SATA控制逻辑单元和多个FIFO;多个SATA控制逻辑单元和多个FIFO均与RAID逻辑单元连接,多个FIFO与通信接口模块连接;各个SATA控制逻辑单元分别连接到各个SATA接口模块;其中,
RAID逻辑单元,用于通过多个FIFO获取外部输入数据并通过多个SATA控制逻辑单元控制对应的SATA接口模块进行存储;还用于通过多个SATA控制逻辑单元从SATA接口模块中读出数据。
基于第一方面,在本发明的一些实施例中,SATA控制逻辑单元包括控制接口和数据接口,
控制接口,用于与RAID逻辑单元发送和接收指令信息;
数据接口,用于传输数据信息。
基于第一方面,在本发明的一些实施例中,控制接口包括寄存器接口和指令FIFO接口,
寄存器接口,用于读取运行状态数据;
指令FIFO接口,用于写入指令信息。
基于第一方面,在本发明的一些实施例中,数据接口包括多个FIFO接口,FIFO接口用于写入数据或读出数据。
基于第一方面,在本发明的一些实施例中,通信接口模块包括接口管理单元和多个高速串口,接口管理单元分别与RAID阵列逻辑模块和多个高速串口连接;其中,
高速串口,用于数据传输;
接口管理单元,用于对多个高速串口进行管理。
基于第一方面,在本发明的一些实施例中,还包括LVDS总线接口,LVDS总线接口与接口管理单元连接。
第二方面,本申请实施例提供一种基于FPGA的SATA IP核的数据存储方法,包括以下步骤:
获取读写指令参数信息;
根据读写指令参数信息提取当前的存储信息并展示给用户;
获取用户输入的启动信号;
根据启动信号采用预置的基于FPGA的SATA IP核对数据进行读写操作。
上述实现过程中,通过获取读写指令参数信息;然后根据读写指令参数信息提取当前的存储信息并展示给用户;然后获取用户输入的启动信号;最后根据启动信号采用预置的基于FPGA的SATA IP核对数据进行读写操作,由于基于FPGA的SATA IP核进行数据存储具有很高的可靠性,因此采用该方法进行数据读写,可以提高速据读写的可靠性。
本发明实施例至少具有如下优点或有益效果:
本发明实施例提供一种基于FPGA的SATA IP核及数据存储方法,通过RAID阵列逻辑模块将硬盘分为多组阵列形式,进而采用RAID阵列技术进行数据的储存,上述SATA IP核独立占用一块FPGA芯片,通过加载本IP核,FPGA芯片即成为具备对多个SATA接口硬盘进行阵列控制的高性能存储控制器芯片,对外通信典型地采用RapidIO协议、以太网等协议,数据通信以帧为基本单位进行组织,每个数据帧都配有CRC校验字和帧序号,因此对于数据传输错误是完全可检测的。当出现数据通信错误时,通信逻辑将使用重新传输机制对数据重传,直至数据传输正确,从而确保数据写入和读出的可靠性。同时,基于SATA协议,FPGA与每一块硬盘之间的数据也是基于帧格式进行组织和传输的,每一帧数据同样也配有CRC校验字,因此FPGA与SATA之间的数据传输错误也是完全可检测的,同样地,对于偶发的数据传输错误,FPGA将重新发起读写操作,直至数据传输正确。从而提高速据写入和读出的可靠性。通过缓冲管理模块与在外部存储芯片连接形成缓冲池,一方面能够对外部输入的实时数据流进行缓冲,从而平滑硬盘阵列的短暂性带宽下滑;另一方面对数据进行纠错性缓存,在数据传输被确认正确之前,数据会被缓存在DDR3 SDRAM中,直至确认传输正确,数据才会被从DDR3中抹去。例如如果写入硬盘的数据块出现偶发错误,则调用缓冲池中的数据进行再次写入,直至数据写入正确,从而提高了数据存储的准确性。通过采用智能管理模块对全局逻辑的调度以及监测,使得该IP核能够正常运行,从而保证数据存储的稳定性。SATA控制逻辑单元为用户屏蔽复杂的SATA协议,使用户通过简便易用的逻辑接口即可实现对SATA接口硬盘的快速读写控制。通过获取读写指令参数信息;然后根据读写指令参数信息提取当前的存储信息并展示给用户;然后获取用户输入的启动信号;最后根据启动信号采用预置的基于FPGA的SATA IP核对数据进行读写操作,由于基于FPGA的SATA IP核进行数据存储具有很高的可靠性,因此采用该方法进行数据读写,可以提高速据读写的可靠性。
附图说明
为了更清楚地说明本发明实施例的技术方案,下面将对实施例中所需要使用的附图作简单地介绍,应当理解,以下附图仅示出了本发明的某些实施例,因此不应被看作是对范围的限定,对于本领域普通技术人员来讲,在不付出创造性劳动的前提下,还可以根据这些附图获得其他相关的附图。
图1为本发明实施例提供的一种基于FPGA的SATA IP核的示意图;
图2为本发明实施例提供的一种基于FPGA的SATA IP核的数据存储方法流程图。
图标:1-RAID阵列逻辑模块;2-智能管理模块;3-SATA接口模块;4-硬盘;5-缓冲管理模块;6-外部存储芯片;7-接口管理单元;8-高速串口;9-LVDS总线接口。
具体实施方式
为使本申请实施例的目的、技术方案和优点更加清楚,下面将结合本申请实施例中的附图,对本申请实施例中的技术方案进行清楚、完整地描述,显然,所描述的实施例是本申请一部分实施例,而不是全部的实施例。通常在此处附图中描述和示出的本申请实施例的组件可以以各种不同的配置来布置和设计。
因此,以下对在附图中提供的本申请的实施例的详细描述并非旨在限制要求保护的本申请的范围,而是仅仅表示本申请的选定实施例。基于本申请中的实施例,本领域普通技术人员在没有作出创造性劳动前提下所获得的所有其他实施例,都属于本申请保护的范围。
实施例
下面结合附图,对本申请的一些实施方式作详细说明。在不冲突的情况下,下述的各个实施例及实施例中的各个特征可以相互组合。
请参看图1,图1为本发明实施例提供的一种基于FPGA的SATA IP核的示意图。该基于FPGA的SATA IP核,包括RAID阵列逻辑模块1、多个SATA接口模块3和多个通信接口模块;各个SATA接口模块3和各个通信接口模块均与RAID阵列逻辑模块1连接;各个SATA接口模块3均连接有硬盘4,其中,RAID阵列逻辑模块1,用于通过通信接口模块获取外部输入数据并通过多个SATA接口模块3将外部输入数据写入到对应的硬盘4;还用于通过多个SATA接口模块3从硬盘4中读出数据,并通过通信接口模块将数据输出。
上述RAID阵列管理逻辑,用于将硬盘4分为多组阵列形式,上述阵列形式可以是RAID5、RAID1、RADI0、RAID10、RAID50、RAID51。例如将10块硬盘4分为A\B两组,每组5块硬盘4,每组硬盘4可组成RAID0,RAID5两种模式,两组硬盘4可组成RAID10,RAI50,RAID51等模式。
例如:采用的RAID5构架,RAID5构架在进行数据存储时,会产生冗余的校验数据,即使在某块硬盘4永久损毁或失效时,数据仍可以完整地保留在其余的硬盘4之中。当用户使用正常的硬盘4替换失效硬盘4时,新使用的硬盘4中应有的数据可以从其余硬盘4中恢复。10块硬盘4以RAID5模式并行工作,本系统以8KB为最小管理空间,每块硬盘4间歇性、条带化地存储冗余信息,任意一块硬盘4上的数据或冗余信息可以基于其余硬盘4中的数据计算出来,数据流进入阵列系统时,以8KB为最小单位进行组织,依据当前所使用的LBA扇区地址的不同,而决定原始数据以及由原始数据产生的冗余数据对应使用的硬盘4和硬盘4空间,从而确保数据存储的可靠性。
其中,RAID阵列逻辑模块1包括RAID逻辑单元、多个SATA控制逻辑单元和多个FIFO;多个SATA控制逻辑单元和多个FIFO均与RAID逻辑单元连接,多个FIFO与通信接口模块连接;各个SATA控制逻辑单元分别连接到各个SATA接口模块3;其中,RAID逻辑单元,用于通过多个FIFO获取外部输入数据并通过多个SATA控制逻辑单元控制对应的SATA接口模块3进行存储;还用于通过多个SATA控制逻辑单元从SATA接口模块3中读出数据。
上述多个FIFO可分别用于运行状态跟踪数据输出、接收应用指令和多种数据的输入输出。上述RAID逻辑单元可以将硬盘4配置为多种阵列形式,例如RAID0、RAID1、RADI0、RAID5等。上述SATA控制逻辑单元包括SATA传输层和SATA链路层。
上述SATA接口模块3可以是SATA3.0,进而硬盘4选择适配符合SATA3.0规范的各种硬盘4、固态盘。SATA接口模块3的数量可以是10个,对应可连接的硬盘4也是10个。
其中,通信接口模块包括接口管理单元7和多个高速串口8,接口管理单元7分别与RAID阵列逻辑模块1和多个高速串口连接;其中,
高速串口8,用于数据传输;包括支持4xRapidIO(5G)或Fibre Channel(8G)或4xXilinx Aurora或PCIE协议。上述高速串口8的数量可以根据具体FPGA型号而异,可配置多个数据通道。本IP核对外通信典型地采用RapidIO协议、以太网等协议,数据通信以帧为基本单位进行组织,每个数据帧都配有CRC校验字和帧序号,因此对于数据传输错误是完全可检测的。当出现数据通信错误时,通信逻辑将使用重新传输机制对数据重传,直至数据传输正确,从而确保数据写入和读出的可靠性。
接口管理单元7,用于对多个高速串口8进行管理。上述接口管理单元7与RAID阵列逻辑模块1连接,进而控制数据传输的通道。
上述实现过程中,RAID阵列逻辑模块1通过通信接口模块获取外部输入数据并通过多个SATA接口模块3将外部输入数据写入到对应的硬盘4,从而达到数据存储的目的;RAID阵列逻辑模块1通过多个SATA接口模块3从硬盘4中读出数据,并通过通信接口模块将数据输出,从而达到数据读出的目的。RAID阵列逻辑模块1将硬盘4分为多组阵列形式,进而采用RAID阵列技术进行数据的储存,上述SATA IP核独立占用一块FPGA芯片,通过加载本IP核,FPGA芯片即成为具备对多个SATA接口硬盘4进行阵列控制的高性能存储控制器芯片,对外通信典型地采用RapidIO协议、以太网等协议,数据通信以帧为基本单位进行组织,每个数据帧都配有CRC校验字和帧序号,因此对于数据传输错误是完全可检测的。当出现数据通信错误时,通信逻辑将使用重新传输机制对数据重传,直至数据传输正确,从而确保数据写入和读出的可靠性。同时,基于SATA协议,FPGA与每一块硬盘4之间的数据也是基于帧格式进行组织和传输的,每一帧数据同样也配有CRC校验字,因此FPGA与SATA之间的数据传输错误也是完全可检测的,同样地,对于偶发的数据传输错误,FPGA将重新发起读写操作,直至数据传输正确。从而提高速据写入和读出的可靠性。
其中,还包括缓冲管理模块5,RAID阵列逻辑模块1和外部存储芯片6分别与缓冲管理模块5连接;缓冲管理模块5,用于将数据缓冲到外部存储芯片6中。上述缓冲管理模块5可以是内部集成DDR3 SDRAM控制器,上外部存储芯片6可以是DDR3 SDRAM,通过缓冲管理模块5与DDR3 SDRAM连接形成了基于DDR3存储芯片实现2GB数据缓冲池。
上述实现过程中,通过缓冲管理模块5与在外部存储芯片6连接形成缓冲池,一方面能够对外部输入的实时数据流进行缓冲,从而平滑硬盘4阵列的短暂性带宽下滑;另一方面对数据进行纠错性缓存,在数据传输被确认正确之前,数据会被缓存在DDR3 SDRAM中,直至确认传输正确,数据才会被从DDR3中抹去。例如如果写入硬盘4的数据块出现偶发错误,则调用缓冲池中的数据进行再次写入,直至数据写入正确,从而提高了数据存储的准确性。
其中,还包括智能管理模块2,智能管理模块2与RAID阵列逻辑模块1连接,用于对RAID阵列逻辑模块1中的数据流进行监测,并根据监测结果进行调度。上述智能管理模块2可以使用Xilinx的Microblaze处理器实现,智能管理模块2用于对全局逻辑的调度以及监测、文件系统管理等功能。例如数据流调度、指令流处理、错误管理机制、内建文件系统、硬盘4检测、数据恢复、系统监测、工作日志等。
上述实现过程中,通过采用智能管理模块2对全局逻辑的调度以及监测,使得该IP核能够正常运行,从而保证数据存储的稳定性。
其中,SATA控制逻辑单元包括控制接口和数据接口,控制接口,用于与RAID逻辑单元发送和接收指令信息;数据接口,用于传输数据信息。
上述SATA控制逻辑单元可以是SATA控制器,SATA控制器可以采用现有SATA3.0主控制器数字逻辑IP核,该IP核应用于FPGA芯片中,使用FPGA内置的高速串行解串器(GTX或GTH)实现SATA协议物理层,使用FPGA内部通用逻辑资源实现SATA协议的链路层及传输层,每个控制器只需占用约5K个寄存器和50KB存储器资源。该SATA控制器完全遵循相关协议规范(Serial ATA Revision 3.0)设计,其中SATA协议的物理层使用FPGA内部集成的高速串行数据收发控制器实现,完成诸如时钟恢复、逗点检测、8B10B编解码等功能;控制器的链路层和传输层则完全通过FPGA内部的可编程逻辑模块实现,完成诸如数据CRC校验、扰码、协议原语生成与解析,帧组装和解析等功能。为封闭SATA协议的复杂细节、简化用户对IP核的使用,该控制器采用了极其简单的对外接口。外部逻辑只需对最常见的寄存器及FIFO模块进行接口驱动即可实现对硬盘4的读写控制。
其中,控制接口包括寄存器接口和指令FIFO接口,寄存器接口,用于读取运行状态数据;指令FIFO接口,用于写入指令信息。
其中,数据接口包括多个FIFO接口,FIFO接口用于写入数据或读出数据。
上述实现过程中,SATA控制逻辑单元为用户屏蔽复杂的SATA协议,使用户通过简便易用的逻辑接口即可实现对SATA接口硬盘4的快速读写控制。
其中,还包括LVDS总线接口9,LVDS总线接口9与接口管理单元7连接。LVDS总线接口9可扩展为千兆以太网接口,通过LVDS差分总线扩展配套芯片电路实现,从而扩大使用范围。
基于同样的发明构思,本发明还提出一种基于FPGA的SATA IP核的数据存储方法。请参看图2,图2为本发明实施例提供的一种基于FPGA的SATA IP核的数据存储方法流程图,该基于FPGA的SATA IP核的数据存储方法包括以下步骤:
步骤S110:获取读写指令参数信息;通过指令端口由用户发起指令写入。读写指令参数信息可以包括有a)指令类型,例如:绝对扇区控制写入ReqRAWWrite(0x000A2000);b)写入起始地址,例如为0x0100;c)写入容量,例如写入容量为128KB;d)状态反馈帧的写入地址,例如状态反馈帧的写入地址为0x1234-0000。
步骤S120:根据读写指令参数信息提取当前的存储信息并展示给用户;例如,提取当前工作状态、存储空间使用情况并展示给用户。
步骤S130:获取用户输入的启动信号;即数据的写入或是写出信号。
步骤S140:根据启动信号采用预置的基于FPGA的SATA IP核对数据进行读写操作。
上述实现过程中,通过获取读写指令参数信息;然后根据读写指令参数信息提取当前的存储信息并展示给用户;然后获取用户输入的启动信号;最后根据启动信号采用预置的基于FPGA的SATA IP核对数据进行读写操作,由于基于FPGA的SATA IP核进行数据存储具有很高的可靠性,因此采用该方法进行数据读写,可以提高速据读写的可靠性。
综上,本申请实施例提供的一种基于FPGA的SATA IP核及数据存储方法,该基于FPGA的SATA IP核的RAID阵列逻辑模块1通过通信接口模块获取外部输入数据并通过多个SATA接口模块3将外部输入数据写入到对应的硬盘4,从而达到数据存储的目的;RAID阵列逻辑模块1通过多个SATA接口模块3从硬盘4中读出数据,并通过通信接口模块将数据输出,从而达到数据读出的目的。RAID阵列逻辑模块1将硬盘4分为多组阵列形式,进而采用RAID阵列技术进行数据的储存,上述SATA IP核独立占用一块FPGA芯片,通过加载本IP核,FPGA芯片即成为具备对多个SATA接口硬盘4进行阵列控制的高性能存储控制器芯片,对外通信典型地采用RapidIO协议、以太网等协议,数据通信以帧为基本单位进行组织,每个数据帧都配有CRC校验字和帧序号,因此对于数据传输错误是完全可检测的。当出现数据通信错误时,通信逻辑将使用重新传输机制对数据重传,直至数据传输正确,从而确保数据写入和读出的可靠性。同时,基于SATA协议,FPGA与每一块硬盘4之间的数据也是基于帧格式进行组织和传输的,每一帧数据同样也配有CRC校验字,因此FPGA与SATA之间的数据传输错误也是完全可检测的,同样地,对于偶发的数据传输错误,FPGA将重新发起读写操作,直至数据传输正确。从而提高速据写入和读出的可靠性。
以上所述仅为本申请的优选实施例而已,并不用于限制本申请,对于本领域的技术人员来说,本申请可以有各种更改和变化。凡在本申请的精神和原则之内,所作的任何修改、等同替换、改进等,均应包含在本申请的保护范围之内。
对于本领域技术人员而言,显然本申请不限于上述示范性实施例的细节,而且在不背离本申请的精神或基本特征的情况下,能够以其它的具体形式实现本申请。因此,无论从哪一点来看,均应将实施例看作是示范性的,而且是非限制性的,本申请的范围由所附权利要求而不是上述说明限定,因此旨在将落在权利要求的等同要件的含义和范围内的所有变化囊括在本申请内。不应将权利要求中的任何附图标记视为限制所涉及的权利要求。
Claims (10)
1.一种基于FPGA的SATA IP核,其特征在于,包括RAID阵列逻辑模块、多个SATA接口模块和多个通信接口模块;各个所述SATA接口模块和各个通信接口模块均与所述RAID阵列逻辑模块连接;各个所述SATA接口模块均连接有硬盘,其中,
RAID阵列逻辑模块,用于通过所述通信接口模块获取外部输入数据并通过多个所述SATA接口模块将所述外部输入数据写入到对应的硬盘;还用于通过多个所述SATA接口模块从硬盘中读出数据,并通过所述通信接口模块将数据输出。
2.根据权利要求1所述的基于FPGA的SATA IP核,其特征在于,还包括缓冲管理模块,所述RAID阵列逻辑模块和外部存储芯片分别与所述缓冲管理模块连接;
所述缓冲管理模块,用于将数据缓冲到外部存储芯片中。
3.根据权利要求1所述的基于FPGA的SATA IP核,其特征在于,还包括智能管理模块,所述智能管理模块与所述RAID阵列逻辑模块连接,用于对所述RAID阵列逻辑模块中的数据流进行监测,并根据监测结果进行调度。
4.根据权利要求1所述的基于FPGA的SATA IP核,其特征在于,所述RAID阵列逻辑模块包括RAID逻辑单元、多个SATA控制逻辑单元和多个FIFO;多个所述SATA控制逻辑单元和多个所述FIFO均与所述RAID逻辑单元连接,多个所述FIFO与所述通信接口模块连接;各个所述SATA控制逻辑单元分别连接到各个所述SATA接口模块;其中,
RAID逻辑单元,用于通过多个所述FIFO获取外部输入数据并通过多个所述SATA控制逻辑单元控制对应的SATA接口模块进行存储;还用于通过多个SATA控制逻辑单元从所述SATA接口模块中读出数据。
5.根据权利要求4所述的基于FPGA的SATA IP核,其特征在于,所述SATA控制逻辑单元包括控制接口和数据接口,
所述控制接口,用于与RAID逻辑单元发送和接收指令信息;
所述数据接口,用于传输数据信息。
6.根据权利要求5所述的基于FPGA的SATA IP核,其特征在于,所述控制接口包括寄存器接口和指令FIFO接口,
所述寄存器接口,用于读取运行状态数据;
所述指令FIFO接口,用于写入指令信息。
7.根据权利要求5所述的基于FPGA的SATA IP核,其特征在于,所述数据接口包括多个FIFO接口,所述FIFO接口用于写入数据或读出数据。
8.根据权利要求1所述的基于FPGA的SATA IP核,其特征在于,所述通信接口模块包括接口管理单元和多个高速串口,所述接口管理单元分别与所述RAID阵列逻辑模块和多个所述高速串口连接;其中,
高速串口,用于数据传输;
接口管理单元,用于对多个所述高速串口进行管理。
9.根据权利要求8所述的基于FPGA的SATA IP核,其特征在于,还包括LVDS总线接口,所述LVDS总线接口与所述接口管理单元连接。
10.一种如权利要求1-9中任意一项所述的基于FPGA的SATA IP核的数据存储方法,其特征在于,包括以下步骤:
获取读写指令参数信息;
根据读写指令参数信息提取当前的存储信息并展示给用户;
获取用户输入的启动信号;
根据启动信号采用预置的基于FPGA的SATA IP核对数据进行读写操作。
Priority Applications (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN202111076029.4A CN113742282A (zh) | 2021-09-14 | 2021-09-14 | 一种基于fpga的sata ip核及数据存储方法 |
Applications Claiming Priority (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN202111076029.4A CN113742282A (zh) | 2021-09-14 | 2021-09-14 | 一种基于fpga的sata ip核及数据存储方法 |
Publications (1)
Publication Number | Publication Date |
---|---|
CN113742282A true CN113742282A (zh) | 2021-12-03 |
Family
ID=78738763
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
CN202111076029.4A Pending CN113742282A (zh) | 2021-09-14 | 2021-09-14 | 一种基于fpga的sata ip核及数据存储方法 |
Country Status (1)
Country | Link |
---|---|
CN (1) | CN113742282A (zh) |
Cited By (2)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN117472288A (zh) * | 2023-12-27 | 2024-01-30 | 成都领目科技有限公司 | 一种基于raid0硬盘组的io写入方法及模型 |
CN117687579A (zh) * | 2024-02-02 | 2024-03-12 | 成都电科星拓科技有限公司 | 桥接芯片 |
-
2021
- 2021-09-14 CN CN202111076029.4A patent/CN113742282A/zh active Pending
Cited By (4)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN117472288A (zh) * | 2023-12-27 | 2024-01-30 | 成都领目科技有限公司 | 一种基于raid0硬盘组的io写入方法及模型 |
CN117472288B (zh) * | 2023-12-27 | 2024-04-16 | 成都领目科技有限公司 | 一种基于raid0硬盘组的io写入方法及模型 |
CN117687579A (zh) * | 2024-02-02 | 2024-03-12 | 成都电科星拓科技有限公司 | 桥接芯片 |
CN117687579B (zh) * | 2024-02-02 | 2024-04-09 | 成都电科星拓科技有限公司 | 桥接芯片 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
JP3181398B2 (ja) | アレイ型記録装置 | |
CN101710270B (zh) | 一种基于闪存的高速大容量存储器及芯片数据管理方法 | |
US5968149A (en) | Tandem operation of input/output data compression modules | |
CN105335326A (zh) | 一种基于fpga的pcie转sata接口阵列的装置 | |
WO2017190578A1 (zh) | 硬盘数据擦除方法、服务器及系统 | |
US8473699B2 (en) | Facilitating data compression during replication using a compressible configuration bit | |
CN113742282A (zh) | 一种基于fpga的sata ip核及数据存储方法 | |
JP2004094948A (ja) | Sata貯蔵装置 | |
JP2007513435A (ja) | データ組織化を管理するための方法、システム、及びプログラム | |
CN1598755A (zh) | 磁盘驱动器组子系统及用于其中的外部模拟控制器 | |
CN105786749B (zh) | 一种基于nand flash接口的双通道ata协议桥接装置 | |
CN104407933A (zh) | 一种数据的备份方法及装置 | |
US20070186141A1 (en) | Method and information apparatus for improving data reliability | |
WO2021259351A1 (zh) | 一种复位系统、数据处理系统以及相关设备 | |
CN101477480A (zh) | 内存控制方法、装置及内存读写系统 | |
CN112181304B (zh) | 一种星载NAND Flash存储管理系统 | |
US20080222500A1 (en) | Data relay apparatus, data relay method and data relay integrated circuit | |
US5887199A (en) | Mass storage controller with universal track size adaptability | |
US20110004817A1 (en) | Crc management method performed in sata interface and data storage device using crc management method | |
US20080005384A1 (en) | Hard disk drive progressive channel interface | |
CN103929475A (zh) | 一种以太网架构的硬盘存储系统及硬盘数据操作方法 | |
JPH10301720A (ja) | ディスクアレイ装置 | |
CN110633225A (zh) | 实体存储对照表产生装置及方法 | |
CN112988449B (zh) | 写入页面群组的数据到闪存模块的装置及方法 | |
CN116340047A (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 |