CN101833424A - 基于fpga的高速存储与传输装置 - Google Patents
基于fpga的高速存储与传输装置 Download PDFInfo
- Publication number
- CN101833424A CN101833424A CN201010134925A CN201010134925A CN101833424A CN 101833424 A CN101833424 A CN 101833424A CN 201010134925 A CN201010134925 A CN 201010134925A CN 201010134925 A CN201010134925 A CN 201010134925A CN 101833424 A CN101833424 A CN 101833424A
- Authority
- CN
- China
- Prior art keywords
- data
- interface
- module
- controller
- sata
- 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
Links
Images
Landscapes
- Information Retrieval, Db Structures And Fs Structures Therefor (AREA)
Abstract
本发明提供一种基于FPGA的高速存储或读取数据的方法及装置,所述方法及装置属于计算机领域和存储领域,该装置包括:RAID控制器(1),SATA控制器组(2),多端口存储器控制器组(3),输入输出模块(4),RocketIO(5),嵌入式处理器(6),存储器控制器模块(7),存储单元_1(8),存储单元_2(9),磁盘阵列(10),FPGA加载、配置模块(11)。其中模块1-7是在FPGA中实现的,模块1-4通过PLB总线与嵌入式处理器相连。嵌入式处理器作为核心处理单元,协调控制整个系统工作。该装置可以同时控制多个硬盘,通过软件配置可以实现RAID0和RAID1。该装置具有camlink接口,PCIE接口和光纤接口。该装置减少了外围ASIC芯片和PCB面积,具有小型化,低功耗,应用广的优点。
Description
技术领域
本发明涉及一种基于FPGA的高速存储或读取数据的方法及装置,采用大规模现场可编程门阵列FPGA(Field programmable gate array)作为实现平台,实现数据的存储与传输。在FPGA中实现RAID控制器和SATA控制器并组成存储阵列,并且可以通过camlink接口,光纤接口或者PCIE接口与外界交换数据。本发明涉及计算机领域,存储领域和嵌入式系统,该装置可以广泛应用于图像记录和高速数据采集系统,以及系统仿真。
背景技术
存储技术在计算机发展中始终是一个关键技术。其技术特性决定了计算机的数据存储性能,进而决定了计算机的整体性能以及应用环境。近年来随着数字图像和数字采集技术的发展,高速存储技术扮演着越来越重要的角色。
现有的存储技术存在以下问题:
1、基于专用集成电路(ASIC)的RAID控制器和SATA控制,灵活性低,升级困难,PCB(Printed Circuit Board)面积大,很难实现设备小型化;
2、RAID控制器和SATA控制是基于总线的,命令、状态信息和数据都通过总线传输,数据传输的有效带宽低;
3、输入输出接口单一,无法满足不同场合的应用需求;
4、同一个内存既用来存放运行时的软件代码又用来作为高速数据缓存,没有将两者从物理上分开,导致高速缓存单元成为高速数据存储的又一个瓶颈。
发明内容
本发明提供一种基于FPGA的高速存储或读取数据的方法及装置,所述方法和装置优化了系统架构,提高了高速数据缓存的带宽和性能,从而提高了高速存储的带宽。
本发明提供一种基于FPGA的高速存储或读取数据的方法,所述方法包括:
通过PLB总线向输入输出模块(4)发送接口选择命令和配置信息,所述输入输出模块(4)选择对应的接口形式,然后将接口配置好,配置结束后将输入输出模块(4)中的配置结束标志位置1。所述向输入输出模块(4)发送的命令和配置信息具体包括:接口选择命令,输入/输出接口的通道个数,工作模式,数据位宽,接口缓冲区大小。
本发明实施方式提供一种基于FPGA的高速存储或读取数据的方法,所述方法还包括:
通过PLB总线向RAID控制器(1)发送RAID级别选择命令和配置信息,所述RAID控制器(1)选择对应的RAID级别,然后配置好SATA控制器组(2)中的各个SATA控制器,配置结束后将RAID控制器(1)中的配置结束标志位置1。所述向RAID控制器(1)发送的命令和配置信息具体包括:RAID级别,条带化参数(条带化参数指的是将数据分割成相同大小的数据块分别写入磁盘阵列中不同硬盘时确定该数据块大小的值),磁盘管理参数,控制器个数,硬盘个数。
本发明实施方式提供一种基于FPGA的高速存储或读取数据的方法,所述的RAID控制器(1)存储数据的具体步骤包括:
A、命令解析模块2(103)解析从PLB总线接收的命令和配置信息;
B、从输入输出模块(4)接收数据并写入第i个缓冲区(105)缓冲区_i,同时数据计数模块(107)对写入缓冲区_i的数据量进行计数;
C、由第i个NPI接口控制器接口控制_i(108)将第i个缓冲区(105)缓冲区_i中的数据通过NPI接口传给多端口存储器控制器组(3)中的第i个多端口存储器控制器MPMC_i,同时协调模块(106)内部的计数器对传给多端口存储器控制器组(3)的数据量进行计数;
D、MPMC_i负责将数据写入存储单元_2(9)中;
E、当协调模块(106)内部的计数器的计数值达到L时,协调模块(106)产生脉冲信号通知SATA控制器组(2)的第j个SATA控制器SATA_ctrl_j将刚刚写入存储单元_2(9)中缓存的L个字节的数据写入磁盘阵列(10)中,随即将协调模块(106)内部计数器的计数值清零,改变j的值,重复上面E步骤,直到所有数据都存储结束;
F、当数据计数模块(107)计数值达到K时,数据分配与组合模块(104)将输入输出模块(4)接收的数据写入第i+1个缓冲区(105)(缓冲区_i+1),随即将数据计数模块(107)计数值清零;
G、重复上面B到F步骤,直到所有数据都存储结束。所述L和K都是参数,是软件可读可写的。
本发明实施方式提供一种基于FPGA的高速存储或读取数据的方法,所述的RAID控制器(1)读取数据时的具体步骤包括:
A、命令解析模块2(103)解析从PLB总线接收的命令和配置信息;
B、数据分配与组合模块(104)根据存储时的分配策略控制协调模块(106)依次产生信号通知SATA控制器组(2)的N/M个SATA控制器将磁盘阵列(10)中某个逻辑地址处的K个数据读出;
C、读出的数据会分别通过N/M个SATA控制器的NPI接口传送到多端口存储器控制器组(3)中的第i个多端口存储器控制器MPMC_i;
D、由第i个多端口存储器控制器MPMC_i将K个数据写入存储单元_2(9)中缓存;
E、数据分配与组合模块(104)依次通过第i个NPI接口控制器接口控制_i将存储单元_2(9)中缓存的K个数据读出并且写入第i个缓冲区(105)缓冲区_i缓存,随即将这些数据发送给输入输出模块(4),由输入输出模块(4)将数据传输给其它板卡/装置等;
F、改变i的值,重复上面B到E步骤,直到所有数据都读取完并传输结束;所述L和K都是参数,是软件可读可写的。
本发明实施方式提供一种基于FPGA的高速存储或读取数据的装置,该装置包括:
输入输出模块(4):该模块具有三种输入输出接口形式:camlink接口,PCIE接口,光纤接口。可以通过这三种接口形式以及它们任意的组合形式来传入传出数据;
RAID控制器(1):当存储数据时,根据接收到的命令和配置信息将来自输入输出模块(4)的数据按照某种分配策略分配给多端口存储器控制器组(3),由多端口存储器控制器组(3)负责将数据写入存储单元_2(9)缓存,然后控制SATA控制器组(2)将存储单元_2(9)中缓存的数据写入磁盘阵列(10);当读取数据时,根据存储时的分配策略采用对应的数据组合策略,首先控制SATA控制器组(2)将磁盘阵列(10)中的数据写入存储单元_2(9)中缓存,然后RAID控制器(1)控制多端口存储器控制器组(3)将存储单元_2(9)中缓存的数据依次顺序读出,并将数据传递给输入输出模块(4),由输入输出模块(4)将数据传输给其它板卡/装置等;
多端口存储器控制器组(3):由M(M取值为1,2,3或者4)个多端口存储器控制器(MPMC)组成,每个MPMC的端口数目是可以配置的(端口数为1到8个),每个端口可以配置成INACTIVE/XCL/PLB/SDMA/NPI/PPC440MC/VFBC接口形式。MPMC可以同时仲裁全部八个端口,从而有效利用存储器。MPMC可以控制8/16/32/64位的SDRAM/DDR/DDR2存储器,多端口存储器控制器(MPMC)可以是xilinx公司提供的MPMC存储器控制器,也可以是自己开发的与其功能类似的存储器控制器;
存储单元_2(9):由多个存储器芯片按某种扩展方式组合而成的,存储芯片可以是SDRAM/DDR/DDR2类型的存储器,随扩展方式的不同,其位宽可以是8/16/32/64位,其接口形式可以是DIMM或者SODIMM插槽,也可以是存储芯片直接焊接在FPGA周围;
SATA控制器组(2):由N(N取值为1到24)个SATA控制器组成,即是SATA_ctrl_1到SATA_ctrl_N,每个SATA控制器都通过PLB总线与嵌入式处理器(6)连接,通过NPI接口与多端口存储器控制器组(3)连接。PLB总线实现SATA控制器组(2)与嵌入式处理器(6)之间控制信息和状态信息的交换,NPI接口实现SATA控制器(2)与存储单元_2(9)之间数据的交换。存储数据时,根据接收到的命令和配置信息从存储单元_2(9)中指定的起始地址处读取指定数量的数据,然后写入磁盘阵列(10)中指定的逻辑地址处,读取数据时,按照软件的设置从磁盘阵列(10)中指定的逻辑地址处读取指定数量的数据,然后写入存储单元_2(9)中指定的起始地址处;
RocketIO(5):是集成在FPGA内的硬核,该模块又称为千兆位级收发器,串行传输的速度在150Mbps~11.18Gbps,支持PCIE,SATA,FC,SRIO,infiniband等多种高速串行协议,主要功能包括8B/10B编码/解码,串并/并串转换,逗点检测,时钟修正,预侧重和线性均衡等;
嵌入式处理器(6):该模块可以是FPGA内嵌的硬核PPC405或者是PPC440,也可以是软核microblaze;
存储器控制器模块(7):该模块既可以是xilinx公司提供的存储器控制器xps_mch_emc或MPMC或ppc440mc_ddr2,也可以是自己开发的与它们功能类似的存储器控制器,只要该存储器控制器能够控制存储器进行数据读取/存储即可。Xps_mch_emc可以控制SRAM和Flash存储器,其位宽可以是16/32/64位。Xps_mch_emc的端口数目是可以配置的(端口数为0到4个),接口形式可以是PLB或MCH或PLB和MCH的组合。MPMC同多端口存储器控制器组(3)中的MPMC一样。Ppc440mc_ddr2,支持16/32/64位数据宽度和拥有ECC功能的72位数据宽度的DDR2SDRAM存储器,该模块通过Memory Controller Interface(MCI)与嵌入式处理器PPC440的PPC440MC接口连接;
存储单元_1(8):由多个存储器芯片按某种扩展方式组合而成的,存储芯片可以是DDR2/SRAM/FLASH类型的存储器,随扩展方式的不同,其位宽可以是16/32/64位,其接口形式可以是DIMM或者SODIMM插槽,也可以是存储芯片直接焊接在FPGA周围;
磁盘阵列(10):可以是具有SATA接口的HDD硬盘(又称机械硬盘)或者是SSD硬盘(又称固态硬盘),还可以是具有SATA接口的存储板卡或者存储装置;
FPGA加载、配置模块(11):完成FPGA比特流的存储和加载。
本发明实施方式提供一种基于FPGA的高速存储或读取数据的装置,该装置的输入输出模块(4)还包括:
camlink接口模块(401):实现camlink接口的数据输入或者输出。该模块由IPIF0(4011)和USR_LOGIC0(4012)组成,USR_LOGIC0(4012)又由命令解析模块0(4013),camlink接口控制器0(4014),缓冲区0(4015),读写控制模块(4016)组成。IPIF0(4011)实现PLB接口协议,命令解析模块0(4013)用来解析嵌入式处理器通过PLB接口传递的命令和控制信息,并将执行结果状态信息等通过PLB总线传递给嵌入式处理器。camlink接口控制器0(4014)用来实现camlink协议。缓冲区0(4015)用来缓存输入或者输出的数据。读写控制模块(4016)实现缓冲区的读写控制,通过本地总线实现与RAID控制器(1)的数据交换。当存储数据时,相机/采集卡/采集装置等输出的数据从camlink接口输入该装置,当读取数据时,该装置可以通过camlink接口将接收的、存储的或按照某种算法产生的数据发送给其它板卡/装置等。camlink接口由三个camlink插头组成,这三个插头可以配置成:①一个full模式接口加上一个base模式接口或②一个midlle模式接口加上一个base模式接口或③两个base模式接口;
光纤接口模块(402):实现光纤接口的数据输入或者输出。该模块由IPIF1(4021)和USR_LOGIC1(4022)组成,USR_LOGIC1(4022)又由命令解析模块1(4023),光纤接口控制器1(4024),缓冲区1(4025),读写控制模块(4016)组成。IPIF1(4021)实现PLB接口协议,命令解析模块1(4023)用来解析嵌入式处理器通过PLB接口传递的命令和控制信息,并将执行结果状态信息等通过PLB总线传递给嵌入式处理器。光纤接口控制器1(4024)用来实现光纤协议。缓冲区1(4025)用来缓存输入或者输出的数据。当存储数据时,采集卡/采集装置等输出的数据从光纤接口输入该装置,当读取数据时,该装置可以通过光纤接口将接收的、存储的或按照某种算法产生的数据发送给其它板卡/装置等。光纤接口共有四个通道,这四个通道可以配置成4个单通道模式,2个双通道(将2个单通道捆绑成1个双通道)模式,1个四通道(将4个单通道捆绑成1个四通道)模式;
PCIE接口模块(403):PCIE接口的数据输入或者输出。该模块由PLBV46 Endpointbridge(4031)和PCIE core(4032)组成。当存储数据时,采集卡/采集装置等输出的数据从PCIE接口输入该装置,当读取数据时,该装置可以通过PCIE接口将接收的、存储的或按照某种算法产生的数据发送给其它板卡/装置等。PCIE接口共有四个通道,这四个通道可以配置成X1,X2,X4模式。
本发明实施方式提供一种基于FPGA的高速存储或读取数据的装置,该装置的RAID_ctrl(1)还包括:
IPIF2(101):用于实现PLB总线协议,该模块包括独立的主设备/从设备附属逻辑,既能够作为主设备又可以作为从设备;
命令解析模块2(103):用于解析从PLB总线接收的命令和配置信息;
数据分配与组合模块(104):用于管理和控制数据的分配和组合;
缓冲区_i(105)(i的取值为1到M的自然数):用来缓存数据,缓冲区_1(105)到缓冲区_M(105)与接口控制_1(108)到接口控制_M(108)一一对应,同时还与多端口存储器控制器组(3)中的MPMC_1(3)到MPMC_M(3)一一对应;
协调模块(106):用于通知SATA控制器组(2)中各个SATA控制器(SATA控制器组(2)中共有N个SATA控制器)何时可以去存储单元_2(9)取数据或向其写入数据,该模块也可以得到各个SATA控制器的执行状态信息(例如,向硬盘写数据中,从硬盘读数据中,空闲中);
数据计数模块(107):用于对接收的或发送的数据进行计数,32位计数器,其计数值是接收的或发送的数据量,以字节为单位;
接口控制_i(i的取值为1到M的自然数):是NPI接口控制器,实现NPI接口协议,数据宽度为64位,一次burst读或写最多可以传输256个字节数据,每次burst之后硬件会自动更新地址,得到下一个burst的起始地址。
由上述本发明提供的技术方案可以看出,本发明利用高速串行技术扩展了接口传输形式,提高了数据输入输出的带宽,通过优化系统架构,提高了高速数据缓存的带宽和性能,从而提高了高速存储的带宽。同时,本发明提供的技术方案充分利用了FPGA的可编程逻辑资源,减少了外围ASIC芯片和PCB面积,具有小型化,低功耗,应用广的特点。
附图说明
图1是系统框图;
图2是输入输出模块子模块图;
图3是RAID控制器子模块图;
图4是SATA控制器组子模块图;
图5是多端口存储器控制器组子模块图;
图6是实例图;
附图标记说明如下:
0-FPGA,
1-RAID控制器,
2-SATA控制器组,
3-多端口存储器控制器组,
4-输入输出模块,
5-RocketIO,
6-嵌入式处理器,
7-存储器控制器模块,
8-存储单元_1,
9-存储单元_2,
10-磁盘阵列,
11-FPGA加载、配置模块,
101-IPIF2,
102-USR_LOGIC2,
103-命令解析模块2,
104-数据分配与组合模块,
105-缓冲区_1、缓冲区_2、缓冲区_3…缓冲区_M,
106-协调模块,
107-数据计数模块,
108-接口控制_1、接口控制_2、接口控制_3…接口控制_M,
401-camlink接口模块,
4011-IPIF0,
4012-USR_LOGIC0,
4013-命令解析模块0,
4014-camlink接口控制器0,
4015-缓冲区0,
4016-读写控制模块,
402-光纤接口模块,
4021-IPIF1,
4022-USR_LOGIC1,
4023-命令解析模块1,
4024-光纤接口控制器1,
4025-缓冲区1,
403-PCIE接口模块
4031-PLBV46Endpoint bridge,
4032-PCIE core,
Sl_0-plb_v46,
Sl_1-NPI接口,
Sl_2-SATA控制器SATA_ctrl,
Sl_3-多端口存储器控制器MPMC,
Sl_4-DDR2内存条,
Sl_5-PPC440_0,
Sl_6-clock_generator,
Sl_7-proc_sys_reset,
Sl_8-jtagppc_ctrl,
Sl_9-xps_uart16550,
Sl_10-ppc440mc_ddr2,
Sl_11-xps_intc,
Sl_12-PLB总线,
Sl_13-xps_systemace芯片,
Sl_14-CF卡,
Sl_15-xps_sysace,
Sl_16-xps_l1_TEMAC,
Sl_17-xps_11_FIFO,
说明:SATA_ctrl_1到SATA_ctrl_N都是同样的模块,SATA控制器组(2)就是由这N个SATA-ctrl组成的。MPMC_1到MPMC_M都是同样的模块,多端口存储器控制器组(3)就是由这M个MPMC组成的。
具体实施方式
本发明实施方式提供一种基于FPGA的高速存储或读取数据的方法及装置,存储数据时,该装置将从camlink接口或PCIE接口或光纤接口输入的数据通过MPMC的NPI接口直接写入高速缓存单元缓存,然后由多个SATA控制器以RAID0或者RAID1的方式将缓存的数据写入磁盘阵列,读取数据时,该装置控制多个SATA控制器将磁盘阵列中的数据通过NPI接口直接写入高速缓存单元缓存,然后将高速缓存单元中缓存的数据按照存储数据时的顺序依次读出,并通过camlink接口或PCIE接口或光纤接口输出。
为了更好的描述本发明实施方式所述的方法和步骤,现结合附图6对本发明的具体实施方式进行说明:
实施例1:本实施例以存储数据为例,本发明的具体实施方式提供一种基于FPGA的高速存储或读取数据的方法及装置,本实施例的技术场景为,图像数据从camlink接口进入装置,以RAID0方式存储到磁盘阵列。
本实施例中的一种基于FPGA的高速存储或读取数据的装置包括:FPGA,FPGA加载、配置模块,高速数据缓存单元,磁盘阵列,camlink接口,PCIE接口和光纤接口。为了叙述方便,本实施例中FPGA(0)选用XILINX公司的XC5VFX130T-2FF1738,XC5VFX130T-2FF1738的结构和特性可以参见XILINX公司提供的技术手册,当然在实际情况中也可以选择其它型号的FPGA。嵌入式处理器(6)选用XC5VFX130T-2FF1738中内嵌的硬IP核PPC440,存储器控制器模块(7)选用的是软IP核ppc440mc_ddr2,多端口存储器控制器组(3)是由2个软IP核MPMC组成的,分别是MPMC_1和MPMC_2,SATA控制器组(2)是由12个SATA控制器组成的,分别是SATA_ctrl1,SATA_ctrl2,SATA_ctrl3...SATA_ctrl12,DDR2内存条1,DDR2内存条2和DDR2内存条3都是容量为512M字节、64位的DDR2内存条。磁盘阵列(10)是由12块SEAGATES公司的硬盘组成(硬盘型号为ST3320418AS)。
本实施例中的一种基于FPGA的高速存储数据的方法,包括以下步骤:
1,xps_sysace和xps_systemace将存于CF里的FPGA配置文件读出,将FPGA配置好,并将PPC440执行的软件代码存入DDR2内存条3中;
2,PPC440执行软件代码,检测各个硬件模块,初始化各个硬件模块,并设置各个模块的参数、工作模式,建立中断机制等;
3,图像数据由camlink接口进入装置,经过camlink接口模块(401)中的camlink接口控制器0(4014)解析后写入缓冲区0(4015)缓存,随即通过读写控制模块(4016)将其传送给RAID控制器(1);
4,RAID控制器(1)中的数据分配与组合模块(104)将camlink接口模块(4)传过来的图像数据按照这样的方式进行分配:第1个512M(该值是个参数,是软件可读可写的)字节写入缓冲区_1,第2个512M字节写入缓冲区_2,第3个512M字节写入缓冲区_1和第4个512M字节写入缓冲区_2…如此交替直到所有图像数据都存储结束。图像数据的分配是这样实现的:数据计数模块(107)对camlink接口模块(4)传过来的图像数据进行计数,当数据计数模块的值第1次大于0而小于512M时,数据分配与组合模块(104)将数据写入缓冲区_1,当数据计数模块的值等于512M时,数据计数模块输出满标志脉冲信号,随即将数据计数模块的计数值清零,当数据计数模块的值第2次大于0而小于512M时,数据分配与组合模块(104)将数据写入缓冲区_2,当数据计数模块的值等于512M时,数据计数模块输出满标志脉冲信号,随即将数据计数模块的计数值清零…如此循环,DDR2内存条1与DDR2内存条2以乒乓切换的方式使用,直到所有图像数据都存储结束;
5,在接口控制_1(108)的控制下缓冲区_1中的数据通过NPI接口传输到MPMC_1(Sl_3)中,随即MPMC_1(Sl_3)将数据写入DDR2内存条1(Sl_4)中缓存,同样如此,在接口控制_2(108)的控制下缓冲区_2中的数据通过NPI接口传输到MPMC_2(Sl_3)中,随即MPMC_2(Sl_3)将数据写入DDR2内存条2(Sl_4)中缓存;
6,接口控制_1(108)在向MPMC_1(Sl_3)传输数据的同时协调模块(106)内部计数器对写入MPMC_1(Sl_3)的数据进行计数,当计数器第1次等于16M(该值是个参数,是软件可读可写的)字节时,协调模块(106)通知SATA_ctrl1去DDR2内存条1取数据,随即将计数器清零,当计数器第2次等于16M字节时,协调模块(106)通知SATA_ctrl2去DDR2内存条1取数据,随即将计数器清零…当计数器第6次等于16M字节时,协调模块(106)通知SATA_ctrl6去DDR2内存条1取数据,随即将计数器清零,当计数器第7次等于16M字节时,协调模块(106)又通知SATA_ctrl1去DDR2内存条1取数据,随即将计数器清零…如此循环,直到所有数据都存储结束,同样如此,接口控制_2(108)在向MPMC_2(Sl_3)传输数据的同时协调模块(106)内部计数器对写入MPMC_2(Sl_3)的数据进行计数,当计数器第1次等于16M字节时,协调模块(106)通知SATA_ctrl7去DDR2内存条2取数据,随即将计数器清零,当计数器第2次等于16M字节时,协调模块(106)通知SATA_ctrl8去DDR2内存条2取数据,随即将计数器清零…当计数器第6次等于16M字节时,协调模块(106)通知SATA_ctrl12去DDR2内存条2取数据,随即将计数器清零,当计数器第7次等于16M字节时,协调模块(106)又通知SATA_ctrl7去DDR2内存条2取数据,随即将计数器清零…如此循环,直到所有数据都存储结束;
7,SATA_ctrl_1到SATA_ctrl_6收到协调模块(106)的通知信号后就去内存条1中各自对应的起始地址处取16M字节的数据,然后将它们写入各自控制的硬盘中,同样如此,SATA_ctrl_7到SATA_ctrl_12收到协调模块(106)的通知信号后就去内存条2中各自对应的起始地址处取16M字节的数据,然后将它们写入各自控制的硬盘中。
8,重复上面步骤3-7,直到所有数据都存储结束。
本发明实施例1详细叙述了图像数据从camlink接口进入装置,然后以RAID0方式存储到12个硬盘组成的磁盘阵列的全过程。高性能的系统架构设计使得MPMC_1,MPMC_2和12个SATA控制器都并行的工作,从而大大的提高了存储带宽。
实施例2:本实施例以存储数据为例,本发明的具体实施方式提供一种基于FPGA的高速存储或读取数据的方法及装置,本实施例的技术场景为,图像数据从camlink接口进入装置,以RAID1方式存储到磁盘阵列。
本实施例中的一种基于FPGA的高速存储或读取数据的装置与实施例1相同。
本实施例中的一种基于FPGA的高速存储数据的方法,包括以下步骤:
步骤1,2,3与实施例1相同;
4,RAID控制器(1)中的数据分配与组合模块(104)将camlink接口模块(4)传过来的图像数据同时写入缓冲区_1和缓冲区_2;
5,在RAID控制器(1)中接口控制_1(108)的控制下缓冲区_1中的数据通过NPI接口传输到MPMC_1中,随即MPMC_1(Sl_3)将数据写入DDR2内存条1(Sl_4)中缓存,与此同时,在接口控制2(108)的控制下缓冲区_2中的数据通过NPI接口传输到MPMC_2(Sl_3)中,随即MPMC_2(Sl_3)将数据写入DDR2内存条2(Sl_4)中缓存;
6,接口控制_1(108)在向MPMC_1(Sl_3)传输数据的同时协调模块(106)内部计数器对写入MPMC_1(Sl_3)的数据进行计数,当计数器第1次等于16M字节时(该值是个参数,是软件可读可写的),协调模块(106)通知SATA_ctrl1去DDR2内存条1取数据,协调模块(106)通知SATA_ctrl7去DDR2内存条2取数据,随即将计数器清零,当计数器第2次等于16M字节时,协调模块(106)通知SATA_ctrl2去DDR2内存条1取数据,协调模块(106)通知SATA_ctrl8去DDR2内存条2取数据,随即将计数器清零…当计数器第6次等于16M字节时,协调模块(106)通知SATA_ctrl6去DDR2内存条1取数据,协调模块(106)通知SATA_ctrl12去DDR2内存条2取数据,随即将计数器清零,当计数器第7次等于16M字节时,协调模块(106)又通知SATA_ctrl1去DDR2内存条1取数据,协调模块(106)又通知SATA_ctrl7去DDR2内存条2取数据,随即将计数器清零…如此循环,直到所有数据都存储结束;
7,SATA_ctrl_1到SATA_ctrl_6收到协调模块(106)的通知信号后就去内存条1中各自对应的起始地址处取16MB字节的数据,然后将它们写入各自控制的硬盘中,SATA_ctrl_7到SATA_ctrl_12收到协调模块(106)的通知信号后就去内存条2中各自对应的起始地址处取16MB字节的数据,然后将它们写入各自控制的硬盘中;
8,重复上面步骤3-7,直到所有数据都存储结束。
本发明实施例2详细叙述了图像数据从camlink接口进入装置,然后以RAID1方式存储到12个硬盘组成的磁盘阵列的全过程。高性能的系统架构设计使得MPMC_1,MPMC_2和12个SATA_控制器都并行的工作,从而大大的提高了存储带宽。
实施例3:本实施例以读取数据为例,本发明的具体实施方式提供一种基于FPGA的高速存储或读取数据的方法及装置,本实施例的技术场景为,将磁盘阵列中以RAID0方式存储的图像数据读出,并通过光纤接口传输给其它板卡/装置等。
本实施例中的一种基于FPGA的高速读取数据的装置与实施例1相同。
本实施例中的一种基于FPGA的高速读取数据的方法,包括以下步骤:
步骤1,2与实施例1相同。
3,数据分配与组合模块(104)控制协调模块(106)依次产生信号通知SATA控制器组(2)中的SATA_ctrl1到SATA_ctrl6这6个SATA控制器将磁盘阵列(10)中某个逻辑地址L_ADD处的第一个512M个数据读出,同样如此,数据分配与组合模块(104)控制协调模块(106)依次产生信号通知SATA控制器组(2)中的SATA_ctrl7到SATA_ctrl12这6个SATA控制器将磁盘阵列(10)中逻辑地址(L_ADD+512M)处的第二个512M个数据读出;
4,由SATA_ctrl1到SATA_ctrl6读出的数据会通过这6个SATA控制器的NPI接口传送到多端口存储器控制器组(3)中的第1个多端口存储器控制器MPMC_1,由SATA_ctrl7到SATA_ctrl12读出的数据会通过这6个SATA控制器的NPI接口传送到多端口存储器控制器组(3)中的第2个多端口存储器控制器MPMC_2;
5,由第1个多端口存储器控制器MPMC_1将第一个512M个数据写入DDR2内存条1中缓存,由第2个多端口存储器控制器MPMC_2将第二个512M个数据写入DDR2内存条2中缓存;
6,数据分配与组合模块(104)通过第1个NPI接口控制器接口控制_1依次将DDR2内存条1中缓存的第一个512M个数据读出并且写入第1个缓冲区(105)缓冲区_1缓存,随即将这些数据发送给输入输出模块(4),数据分配与组合模块(104)通过第2个NPI接口控制器接口控制_2依次将DDR2内存条2中缓存的第二个512M个数据读出并且写入第2个缓冲区(105)缓冲区_2缓存,随即将这些数据发送给输入输出模块(4);
7,输入输出模块(4)中的光纤接口模块(402)先从第1个缓冲区(105)缓冲区_1中连续读取第一个512M字节数据,并且将这些数据通过光纤传输给其它板卡/装置等,然后再从第2个缓冲区(105)缓冲区_2中连续读取第二个512M字节数据,并且将这些数据通过光纤传输给其它板卡/装置等;
8,修改逻辑地址L_ADD,重复上面步骤3到7,直到所有数据都读取完并传输结束。
本发明实施例3详细叙述了将磁盘阵列中以RAID0方式存储的图像数据读出,并通过光纤传输给其它板卡/装置的全过程。高性能的系统架构设计使得MPMC_1,MPMC_2和12个SATA_控制器都并行的工作,多通道绑定的光纤接口增加了传输数据的带宽和距离,从而大大的提高了数据读取与传输的带宽。
本领域技术人员可以理解说明书附图6只是一个优选的示意图,附图中的模块并不一定是实施本发明所必须的。
上述本发明实施例序号仅仅是为了描述,不代表实施例的优劣。
权利要求的内容记载的方案也是本发明实施例的保护范围。
本领域普通技术人员可以理解上述实施例中提供的方法与装置的全部或者部分处理是可以通过程序或硬件完成,所述的程序可以存储与一种计算机可以读取存储的介质中。
综上所述,本发明具体实施方式提供的技术方案,利用高速串行技术扩展了接口传输形式,提高了数据输入输出的带宽,通过优化系统架构,提高了高速数据缓存的带宽和性能,从而提高了高速存储的带宽。同时减少了外围ASIC芯片和PCB面积,具有小型化,低功耗,应用广的特点。
以上所述,仅为本发明较佳的具体实施方式,但本发明的保护范围并不局限于此,任何熟悉本技术领域的技术人员在本发明实施例揭露的技术范围内,可轻易想到的变化或者替换,都应涵盖在本发明的保护范围之内,因此,本发明的保护范围应该以权利要求的保护范围为准。
Claims (9)
1.一种基于FPGA的高速存储或读取数据的方法,其特征在于,所述方法包括:
通过PLB总线向输入输出模块(4)发送接口选择命令和配置信息,所述输入输出模块(4)选择对应的接口形式,然后将接口配置好,配置结束后将输入输出模块(4)中的配置结束标志位置1。
2.根据权利要求1所述的方法,其特征在于,所述向输入输出模块(4)发送的命令和配置信息具体包括:接口选择命令,输入/输出接口的通道个数,工作模式,数据位宽,接口缓冲区大小。
3.一种基于FPGA的高速存储或读取数据的方法,其特征在于,所述方法包括:
通过PLB总线向RAID控制器(1)发送RAID级别选择命令和配置信息,所述RAID控制器(1)选择对应的RAID级别,并配置好SATA控制器组(2)中的各个SATA控制器,配置结束后将RAID控制器(1)中的配置结束标志位置1。
4.根据权利要求3所述的方法,其特征在于,所述向RAID控制器(1)发送的命令和配置信息具体包括:RAID级别,条带化参数,磁盘管理参数,控制器个数,硬盘个数。
5.根据权利要求3或4所述的方法,其特征在于,所述的RAID控制器(1)存储数据的具体步骤包括:
A、命令解析模块2(103)解析从PLB总线接收的命令和配置信息;
B、数据分配与组合模块(104)从输入输出模块(4)接收数据并写入第i个缓冲区(105)buffer_i,同时数据计数模块(107)对写入buffer_i的数据量进行计数;
C、由第i个NPI接口控制器NPI_ctrl_i(108)将第i个缓冲区(105)buffer_i中的数据通过NPI接口传给多端口存储器控制器组(3)中的第i个多端口存储器控制器MPMC_i,同时协调模块(106)内部的计数器对传给多端口存储器控制器组(3)的数据量进行计数;
D、,MPMC_i负责将数据写入存储单元_2(9)中;
E、当协调模块(106)内部的计数器的计数值达到L时,协调模块(106)产生脉冲信号通知SATA控制器组(2)的第j个SATA控制器SATA_ctrl_j将刚刚写入存储单元_2(9)中缓存的L个字节的数据写入磁盘阵列(10)中,随即将协调模块(106)内部计数器的计数值清零,改变j的值,重复上面E步骤,直到所有数据都存储结束;
F、当数据计数模块(107)计数值达到K时,数据分配与组合模块(104)将从输入输出模块(4)接收的数据写入第i+1个缓冲区(105)buffer_i+1,随即将数据计数模块(107)的计数值清零;
G、重复上面B到F步骤,直到所有数据都存储结束;所述L和K都是参数,是软件可读可写的。
6.根据权利要求3或4所述的方法,其特征在于,所述的RAID控制器(1)读取数据时的具体步骤包括:
A、命令解析模块2(103)解析从PLB总线接收的命令和配置信息;
B、数据分配与组合模块(104)根据存储时的分配策略控制协调模块(106)依次产生信号通知SATA控制器组(2)的N/M个SATA控制器将磁盘阵列(10)中某个逻辑地址处的K个数据读出;
C、读出的数据将分别通过N/M个SATA控制器的NPI接口传送到多端口存储器控制器组(3)中的第i个多端口存储器控制器MPMC_i;
D、由第i个多端口存储器控制器MPMC_i将K个数据写入存储单元_2(9)中缓存;
E、数据分配与组合模块(104)依次通过第i个NPI接口控制器NPI_ctrl_i将存储单元_2(9)中缓存的K个数据读出并且写入第i个缓冲区(105)buffer_i缓存,随即将这些数据发送给输入输出模块(4),由输入输出模块(4)将数据传输给其它板卡/装置;
F、改变i的值,重复上面B到E步骤,直到所有数据都读取完并传输结束;所述L和K都是参数,是软件可读可写的。
7.一种基于FPGA的高速存储或读取数据的装置,其特征在于,所述装置包括:
输入输出模块(4):该模块具有三种输入输出接口形式:camlink接口,PCIE接口,光纤接口;可以通过这三种接口形式以及它们任意的组合形式来传入传出数据;
RAID控制器(1):当存储数据时,根据接收到的命令和配置信息将来自输入输出模块(4)的数据按照某种分配策略分配给多端口存储器控制器组(3),由多端口存储器控制器组(3)负责将数据写入存储单元_2(9)缓存,然后控制SATA控制器组(2)将存储单元_2(9)中缓存的数据写入磁盘阵列(10),当读取数据时,根据存储时的分配策略采用对应的数据组合策略,首先控制SATA控制器组(2)将磁盘阵列(10)中的数据写入存储单元_2(9)中缓存,然后RAID控制器(1)控制多端口存储器控制器组(3)将存储单元_2(9)中缓存的数据顺序读出,并将数据传递给输入输出模块(4),由输入输出模块(4)将数据传输给其它板卡/装置;
多端口存储器控制器组(3):由M个多端口存储器控制器MPMC组成,每个MPMC的端口数目是可以配置的,每个端口配置成INACTIVE/XCL/PLB/SDMA/NPI/PPC440MC/VFBC接口形式;MPMC可以同时仲裁全部八个端口,从而有效利用存储器;MPMC可以控制8/16/32/64位的SDRAM/DDR/DDR2存储器,多端口存储器控制器MPMC是xilinx公司提供的MPMC存储器控制器,或是自己开发的与其功能类似的存储器控制器;所述M取值为1,2,3或者4;
存储单元_2(9):由多个存储器芯片按某种扩展方式组合而成的,存储芯片是SDRAM/DDR/DDR2类型的存储器,随扩展方式的不同,其位宽相应为8/16/32/64位,其接口形式是DIMM或者SODIMM插槽,或是存储芯片直接焊接在FPGA周围;
SATA控制器组(2):由N个SATA控制器组成,即是SATA_ctrl_1到SATA_ctrl_N,每个SATA控制器都通过PLB总线与嵌入式处理器(6)连接,通过NPI接口与多端口存储器控制器组(3)连接;PLB总线实现SATA控制器组(2)与嵌入式处理器(6)之间控制信息和状态信息的交换,NPI接口实现SATA控制器(2)与存储单元_2(9)之间数据的交换;存储数据时,根据接收到的命令和配置信息从存储单元_2(9)中指定的逻辑地址处读取指定数量的数据,然后写入磁盘阵列(10)中指定的逻辑地址处,读取数据时,按照软件的设置从磁盘阵列(10)中指定的逻辑地址处读取指定数量的数据,然后写入存储单元_2(9)中指定的起始地址处;所述N取值为1到24;
RocketIO(5):是集成在FPGA内的硬核,该模块又称为千兆位级收发器,串行传输的速度在150Mbps~11.18Gbps,支持PCIE,SATA,FC,SRIO,infiniband多种高速串行协议,主要功能包括8B/10B编码/解码,串并/并串转换,逗点检测,时钟修正,预侧重和线性均衡;
嵌入式处理器(6):该模块是FPGA内嵌的硬核PPC405或者PPC440,或是软核microblaze;
存储器控制器模块(7):该模块是xilinx公司提供的存储器控制器xps_mch_emc或MPMC或ppc440mc_ddr2,或是自己开发的与它们功能类似的存储器控制器;xps_mch_emc可以控制SRAM和Flash存储器,其位宽是16/32/64位;Xps_mch_emc的端口数目是可以配置的,接口形式为PLB或MCH或PLB和MCH的组合;MPMC是xilinx公司提供的MPMC存储器控制器,或是自己开发的与其功能类似的存储器控制器;Ppc440mc_ddr2支持16/32/64位数据宽度和拥有ECC功能的72位数据宽度的DDR2SDRAM存储器,该模块通过Memory ControllerInterface(MCI)与嵌入式处理器PPC440的PPC440MC接口连接;
存储单元_1(8):由多个存储器芯片按某种扩展方式组合而成的,存储芯片是DDR2/SRAM/FLASH类型的存储器,随扩展方式的不同,其位宽相应为16/32/64位,其接口形式是DIMM或者SODIMM插槽,或是存储芯片直接焊接在FPGA周围;
磁盘阵列(10):是具有SATA接口的HDD硬盘或者是SSD硬盘,或者是具有SATA接口的存储板卡或者存储装置;
FPGA加载、配置模块(11):完成FPGA比特流的存储和加载。
8.根据权利要求7所述的装置,其特征在于,所述输入输出模块(4)还包括:
camlink接口模块(401):实现camlink接口的数据输入或者输出;该模块由IPIF0(4011)和USR_LOGIC0(4012)组成,USR_LOGIC0(4012)又由命令解析模块0(4013),camlink接口控制器0(4014),缓冲区0(4015),读写控制模块(4016)组成;IPIF0(4011)实现PLB接口协议,命令解析模块0(4013)用来解析嵌入式处理器通过PLB接口传递的命令和控制信息,并将执行结果状态信息等通过PLB总线传递给嵌入式处理器;camlink接口控制器0(4014)用来实现camlink协议;缓冲区0(4015)用来缓存输入或者输出的数据;读写控制模块(4016)实现缓冲区的读写控制,并通过本地总线与RAID控制器(1)交换数据;当存储数据时,相机/采集卡/采集装置输出的数据从camlink接口输入该装置,当读取数据时,该装置可以通过camlink接口将接收的、存储的或按照某种算法产生的数据发送给其它板卡/装置;camlink接口由三个camlink插头组成,这三个插头可以配置成①一个full模式接口加上一个base模式接口或②一个midlle模式接口加上一个base模式接口或③两个base模式接口;
光纤接口模块(402):实现光纤接口的数据输入或者输出;该模块由IPIF1(4021)和USR_LOGIC1(4022)组成,USR_LOGIC1(4022)又由命令解析模块1(4023),光纤接口控制器1(4024),缓冲区1(4025),读写控制模块(4016)组成;IPIF1(4021)实现PLB接口协议,命令解析模块1(4023)用来解析嵌入式处理器通过PLB接口传递的命令和控制信息,并将执行结果状态信息通过PLB总线传递给嵌入式处理器;光纤接口控制器1(4024)用来实现光纤协议;缓冲区1(4025)用来缓存输入或者输出的数据;当存储数据时,采集卡/采集装置输出的数据从光纤接口输入该装置,当读取数据时,该装置可以通过光纤接口将接收的、存储的或按照某种算法产生的数据发送给其它板卡/装置;光纤接口共有四个通道,这四个通道可以配置成4个单通道模式,2个双通道模式,1个四通道模式;
PCIE接口模块(403):PCIE接口的数据输入或者输出;该模块由PLBV46 Endpointbridge(4031)和PCIE core(4032)组成;当存储数据时,采集卡/采集装置/PC等输出的数据从PCIE接口输入该装置,当读取数据时,该装置可以通过PCIE接口将接收的、存储的或按照某种算法产生的数据发送给其它板卡/装置/PC;PCIE接口共有四个通道,这四个通道可以配置成X1,X2,X4模式。
9.根据权利要求7所述的装置,其特征在于,所述RAID_ctrl(1)还包括:
IPIF2(101):用于实现PLB总线协议,该模块包括独立的主设备/从设备附属逻辑,既能够作为主设备又可以作为从设备;
命令解析模块2(103):用于解析从PLB总线接收的命令和配置信息;
数据分配与组合模块(104):用于管理和控制数据的分配和组合;
缓冲区_i(105):用来缓存数据,缓冲区_1(105)到缓冲区_M(105)与接口控制_1(108)到接口控制_M(108)一一对应,同时还与多端口存储器控制器组(3)中的MPMC_1(3)到MPMC_M(3)一一对应;i的取值为1到M的自然数;
协调模块(106):用于通知SATA控制器组(2)中各个SATA控制器何时可以去存储单元_2(9)取数据或向其写入数据,该模块也可以得到各个SATA控制器的执行状态信息;所述SATA控制器组(2)中共有N个SATA控制器;
数据计数模块(107):用于对接收/发送的数据进行计数,32位计数器,其计数值是接收/发送的数据量,以字节为单位;
接口控制_i:是NPI接口控制器,实现NPI接口协议,数据宽度为64位,一次burst读或写最多可以传输256个字节数据,每次burst之后硬件会自动更新地址,得到下一个burst的起始地址;i的取值为1到M的自然数。
Priority Applications (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN 201010134925 CN101833424B (zh) | 2010-03-26 | 2010-03-26 | 基于fpga的高速存储与传输装置 |
Applications Claiming Priority (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN 201010134925 CN101833424B (zh) | 2010-03-26 | 2010-03-26 | 基于fpga的高速存储与传输装置 |
Publications (2)
Publication Number | Publication Date |
---|---|
CN101833424A true CN101833424A (zh) | 2010-09-15 |
CN101833424B CN101833424B (zh) | 2013-07-10 |
Family
ID=42717507
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
CN 201010134925 Expired - Fee Related CN101833424B (zh) | 2010-03-26 | 2010-03-26 | 基于fpga的高速存储与传输装置 |
Country Status (1)
Country | Link |
---|---|
CN (1) | CN101833424B (zh) |
Cited By (47)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN102156588A (zh) * | 2011-03-16 | 2011-08-17 | 中国科学院上海技术物理研究所 | 一种嵌入式红外实时信号处理系统 |
CN102169419A (zh) * | 2011-04-02 | 2011-08-31 | 无锡众志和达存储技术有限公司 | 基于sata控制器的raid数据块拆分、组装方法 |
CN102360342A (zh) * | 2011-10-11 | 2012-02-22 | 中国人民解放军国防科学技术大学 | 海量影像数据快速存储显示固态硬盘 |
CN102520710A (zh) * | 2011-11-28 | 2012-06-27 | 曙光信息产业(北京)有限公司 | 一种fpga控制设备的检测装置和方法 |
CN102789190A (zh) * | 2011-05-20 | 2012-11-21 | 中国科学院微电子研究所 | 适用于不同类型fpga电路编程的列地址分配器电路 |
CN102833546A (zh) * | 2012-08-21 | 2012-12-19 | 中国科学院光电技术研究所 | 基于小波子带交织最优量化的高速图像压缩方法及装置 |
CN102902829A (zh) * | 2011-07-26 | 2013-01-30 | 中国人民解放军海军七○二厂 | 一种高速海量实时数据采集处理系统 |
CN103107923A (zh) * | 2013-02-27 | 2013-05-15 | 成都成电光信科技有限责任公司 | 一种基于soc技术的fc网络数据监控系统及方法 |
CN103150129A (zh) * | 2013-04-02 | 2013-06-12 | 哈尔滨工业大学 | PXIe接口Nand Flash数据流盘存取加速方法 |
CN103150427A (zh) * | 2013-02-19 | 2013-06-12 | 浪潮电子信息产业股份有限公司 | 一种基于ssd硬盘缓存加速与备份的raid设计方法 |
CN103207852A (zh) * | 2013-04-03 | 2013-07-17 | 北京华清瑞达科技有限公司 | 多总线嵌入式处理装置 |
CN103744807A (zh) * | 2013-12-04 | 2014-04-23 | 西安诺瓦电子科技有限公司 | 基于可编程逻辑器件的存储卡访问控制系统 |
CN104158636A (zh) * | 2014-08-12 | 2014-11-19 | 烽火通信科技股份有限公司 | 一种基于fpga的多路fc业务远距离传输方法和装置 |
CN104615384A (zh) * | 2015-02-11 | 2015-05-13 | 浪潮集团有限公司 | 一种磁盘阵列及数据存储方法 |
CN104750437A (zh) * | 2014-12-19 | 2015-07-01 | 中国航天科技集团公司第五研究院第五一三研究所 | 一种容量可扩展的星载大容量存储系统 |
CN105138469A (zh) * | 2015-08-28 | 2015-12-09 | 北京腾凌科技有限公司 | 一种数据读写方法以及主板 |
CN105335326A (zh) * | 2015-10-10 | 2016-02-17 | 广州慧睿思通信息科技有限公司 | 一种基于fpga的pcie转sata接口阵列的装置 |
CN105374200A (zh) * | 2015-10-16 | 2016-03-02 | 北京精密机电控制设备研究所 | 一种高速可靠的远程数据采集存储系统 |
US9342629B2 (en) | 2012-12-06 | 2016-05-17 | Huawei Technologies Co., Ltd. | Content searching chip based protocol conversion |
CN105681904A (zh) * | 2016-01-18 | 2016-06-15 | 四川长虹电器股份有限公司 | 提高电视响应速度的方法 |
CN105720958A (zh) * | 2016-03-02 | 2016-06-29 | 深圳市同创国芯电子有限公司 | Fpga芯片上电控制方法、电路及fpga芯片 |
CN106020738A (zh) * | 2016-06-28 | 2016-10-12 | 国营芜湖机械厂 | 一种模块化机载存储器读写装置 |
CN106125586A (zh) * | 2015-05-04 | 2016-11-16 | 洛克威尔自动控制德国有限两合公司 | 具有快速备份和配置的安全控制器 |
CN106991062A (zh) * | 2017-04-13 | 2017-07-28 | 济南浪潮高新科技投资发展有限公司 | 一种基于服务器cpu的srio接口固态硬盘的装置 |
CN107038134A (zh) * | 2016-11-11 | 2017-08-11 | 济南浪潮高新科技投资发展有限公司 | 一种基于fpga的srio接口固态硬盘系统及其实现方法 |
CN107066406A (zh) * | 2017-04-21 | 2017-08-18 | 济南浪潮高新科技投资发展有限公司 | 一种基于fpga的接口兼容的大容量存储系统 |
CN107220196A (zh) * | 2017-05-27 | 2017-09-29 | 郑州云海信息技术有限公司 | 一种支持Tri‑Mode的内置高端存储卡 |
CN107342785A (zh) * | 2017-06-06 | 2017-11-10 | 北京东土军悦科技有限公司 | 一种信号转换装置 |
CN107577419A (zh) * | 2017-07-20 | 2018-01-12 | 郑州云海信息技术有限公司 | 一种外置高端存储卡 |
CN107656881A (zh) * | 2017-09-13 | 2018-02-02 | 中国科学院半导体研究所 | 基于fpga的数据存储通路系统 |
CN107710177A (zh) * | 2015-06-15 | 2018-02-16 | 奥林巴斯株式会社 | 数据输送装置和数据输送方法 |
CN108055460A (zh) * | 2017-12-20 | 2018-05-18 | 东南大学 | 高速图像处理和采集系统 |
CN108447238A (zh) * | 2018-03-22 | 2018-08-24 | 江苏麦酷博信息科技有限公司 | 无缝对接多点数据收集分析的智能无线数据采集器及其工作方法 |
CN108491169A (zh) * | 2018-03-31 | 2018-09-04 | 北京联想核芯科技有限公司 | 配置独立冗余磁盘阵列raid条带的方法、装置、设备及介质 |
CN109240965A (zh) * | 2018-08-01 | 2019-01-18 | 清华大学 | Fpga逻辑捕获处理显示套件及其使用方法 |
CN109634882A (zh) * | 2018-11-20 | 2019-04-16 | 山东超越数控电子股份有限公司 | 一种基于fpga的高速数据采集板卡 |
CN109933546A (zh) * | 2019-01-29 | 2019-06-25 | 山东华芯半导体有限公司 | 一种ssd主控中的raid主动加速装置和加速方法 |
CN109933547A (zh) * | 2019-01-29 | 2019-06-25 | 山东华芯半导体有限公司 | 一种ssd主控中的raid被动加速装置和加速方法 |
CN109947376A (zh) * | 2019-04-04 | 2019-06-28 | 上海威固信息技术股份有限公司 | 一种基于fpga实现的多协议接口固态存储系统 |
CN110322979A (zh) * | 2019-07-25 | 2019-10-11 | 美核电气(济南)股份有限公司 | 基于fpga的核电站数字控制计算机系统核心处理单元 |
CN110837484A (zh) * | 2019-10-31 | 2020-02-25 | 山东华芯半导体有限公司 | Ssd主控中的raid多路处理装置及数据恢复方法 |
CN111581132A (zh) * | 2020-04-27 | 2020-08-25 | 武汉中科牛津波谱技术有限公司 | 一种基于fpga的可扩展的多端口ddr3控制器 |
CN112699062A (zh) * | 2020-12-28 | 2021-04-23 | 湖南博匠信息科技有限公司 | 数据高速存储系统 |
WO2021184741A1 (zh) * | 2020-03-19 | 2021-09-23 | 上海御渡半导体科技有限公司 | 一种提高pcie控制ddr通信速率的装置及方法 |
CN116736234A (zh) * | 2023-08-15 | 2023-09-12 | 南京楚航科技有限公司 | 一种基于fpga的雷达数据采集方法、系统及装置 |
WO2023197500A1 (zh) * | 2022-04-12 | 2023-10-19 | 深圳市安信达存储技术有限公司 | 一种基于赛灵思平台及 raid 技术的存储主板 |
CN117708028A (zh) * | 2024-02-05 | 2024-03-15 | 成都电科星拓科技有限公司 | Sata raid桥接芯片 |
Citations (4)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US20040098538A1 (en) * | 2002-11-18 | 2004-05-20 | Horn Robert L. | Caching in a virtualization system |
US20070233727A1 (en) * | 2003-08-05 | 2007-10-04 | Gideon Guy | Multiple Virtual Devices |
CN201278146Y (zh) * | 2008-10-31 | 2009-07-22 | 西安奇维测控科技有限公司 | 一种基于fpga实现ata接口信号捕获装置 |
CN101599004A (zh) * | 2009-07-10 | 2009-12-09 | 中国科学院光电技术研究所 | 基于fpga的sata控制器 |
-
2010
- 2010-03-26 CN CN 201010134925 patent/CN101833424B/zh not_active Expired - Fee Related
Patent Citations (4)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US20040098538A1 (en) * | 2002-11-18 | 2004-05-20 | Horn Robert L. | Caching in a virtualization system |
US20070233727A1 (en) * | 2003-08-05 | 2007-10-04 | Gideon Guy | Multiple Virtual Devices |
CN201278146Y (zh) * | 2008-10-31 | 2009-07-22 | 西安奇维测控科技有限公司 | 一种基于fpga实现ata接口信号捕获装置 |
CN101599004A (zh) * | 2009-07-10 | 2009-12-09 | 中国科学院光电技术研究所 | 基于fpga的sata控制器 |
Non-Patent Citations (1)
Title |
---|
吴德铭: "基于PCI 总线的高速串行通信研究与实现", 《中国优秀硕士学位论文全文数据库信息科技辑》 * |
Cited By (74)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN102156588A (zh) * | 2011-03-16 | 2011-08-17 | 中国科学院上海技术物理研究所 | 一种嵌入式红外实时信号处理系统 |
CN102156588B (zh) * | 2011-03-16 | 2013-01-09 | 中国科学院上海技术物理研究所 | 一种嵌入式红外实时信号处理系统 |
CN102169419A (zh) * | 2011-04-02 | 2011-08-31 | 无锡众志和达存储技术有限公司 | 基于sata控制器的raid数据块拆分、组装方法 |
CN102789190A (zh) * | 2011-05-20 | 2012-11-21 | 中国科学院微电子研究所 | 适用于不同类型fpga电路编程的列地址分配器电路 |
CN102789190B (zh) * | 2011-05-20 | 2015-03-25 | 中国科学院微电子研究所 | 适用于不同类型fpga电路编程的列地址分配器电路 |
CN102902829B (zh) * | 2011-07-26 | 2016-02-17 | 中国人民解放军海军七○二厂 | 一种高速海量实时数据采集处理系统 |
CN102902829A (zh) * | 2011-07-26 | 2013-01-30 | 中国人民解放军海军七○二厂 | 一种高速海量实时数据采集处理系统 |
CN102360342A (zh) * | 2011-10-11 | 2012-02-22 | 中国人民解放军国防科学技术大学 | 海量影像数据快速存储显示固态硬盘 |
CN102520710A (zh) * | 2011-11-28 | 2012-06-27 | 曙光信息产业(北京)有限公司 | 一种fpga控制设备的检测装置和方法 |
CN102520710B (zh) * | 2011-11-28 | 2014-05-28 | 曙光信息产业(北京)有限公司 | 一种fpga控制设备的检测装置和方法 |
CN102833546B (zh) * | 2012-08-21 | 2015-03-04 | 中国科学院光电技术研究所 | 基于小波子带交织最优量化的高速图像压缩方法及装置 |
CN102833546A (zh) * | 2012-08-21 | 2012-12-19 | 中国科学院光电技术研究所 | 基于小波子带交织最优量化的高速图像压缩方法及装置 |
US9342629B2 (en) | 2012-12-06 | 2016-05-17 | Huawei Technologies Co., Ltd. | Content searching chip based protocol conversion |
CN103150427A (zh) * | 2013-02-19 | 2013-06-12 | 浪潮电子信息产业股份有限公司 | 一种基于ssd硬盘缓存加速与备份的raid设计方法 |
CN103107923B (zh) * | 2013-02-27 | 2016-01-20 | 成都成电光信科技有限责任公司 | 一种基于片上系统技术的光纤通道网络数据监控系统及方法 |
CN103107923A (zh) * | 2013-02-27 | 2013-05-15 | 成都成电光信科技有限责任公司 | 一种基于soc技术的fc网络数据监控系统及方法 |
CN103150129A (zh) * | 2013-04-02 | 2013-06-12 | 哈尔滨工业大学 | PXIe接口Nand Flash数据流盘存取加速方法 |
CN103150129B (zh) * | 2013-04-02 | 2015-09-16 | 哈尔滨工业大学 | PXIe接口Nand Flash数据流盘存取加速方法 |
CN103207852A (zh) * | 2013-04-03 | 2013-07-17 | 北京华清瑞达科技有限公司 | 多总线嵌入式处理装置 |
CN103207852B (zh) * | 2013-04-03 | 2016-03-02 | 北京华清瑞达科技有限公司 | 多总线嵌入式处理装置 |
CN103744807B (zh) * | 2013-12-04 | 2016-10-19 | 西安诺瓦电子科技有限公司 | 基于可编程逻辑器件的存储卡访问控制系统 |
CN103744807A (zh) * | 2013-12-04 | 2014-04-23 | 西安诺瓦电子科技有限公司 | 基于可编程逻辑器件的存储卡访问控制系统 |
CN104158636A (zh) * | 2014-08-12 | 2014-11-19 | 烽火通信科技股份有限公司 | 一种基于fpga的多路fc业务远距离传输方法和装置 |
CN104158636B (zh) * | 2014-08-12 | 2017-12-22 | 烽火通信科技股份有限公司 | 一种基于fpga的多路fc业务远距离传输方法 |
CN104750437B (zh) * | 2014-12-19 | 2017-10-13 | 中国航天科技集团公司第五研究院第五一三研究所 | 一种容量可扩展的星载大容量存储系统 |
CN104750437A (zh) * | 2014-12-19 | 2015-07-01 | 中国航天科技集团公司第五研究院第五一三研究所 | 一种容量可扩展的星载大容量存储系统 |
CN104615384A (zh) * | 2015-02-11 | 2015-05-13 | 浪潮集团有限公司 | 一种磁盘阵列及数据存储方法 |
CN106125586A (zh) * | 2015-05-04 | 2016-11-16 | 洛克威尔自动控制德国有限两合公司 | 具有快速备份和配置的安全控制器 |
CN107710177B (zh) * | 2015-06-15 | 2020-08-04 | 奥林巴斯株式会社 | 数据输送装置和数据输送方法 |
CN107710177A (zh) * | 2015-06-15 | 2018-02-16 | 奥林巴斯株式会社 | 数据输送装置和数据输送方法 |
CN105138469B (zh) * | 2015-08-28 | 2018-03-16 | 北京腾凌科技有限公司 | 一种数据读写方法以及主板 |
CN105138469A (zh) * | 2015-08-28 | 2015-12-09 | 北京腾凌科技有限公司 | 一种数据读写方法以及主板 |
CN105335326A (zh) * | 2015-10-10 | 2016-02-17 | 广州慧睿思通信息科技有限公司 | 一种基于fpga的pcie转sata接口阵列的装置 |
CN105374200B (zh) * | 2015-10-16 | 2019-01-11 | 北京精密机电控制设备研究所 | 一种高速可靠的远程数据采集存储系统 |
CN105374200A (zh) * | 2015-10-16 | 2016-03-02 | 北京精密机电控制设备研究所 | 一种高速可靠的远程数据采集存储系统 |
CN105681904A (zh) * | 2016-01-18 | 2016-06-15 | 四川长虹电器股份有限公司 | 提高电视响应速度的方法 |
CN105720958A (zh) * | 2016-03-02 | 2016-06-29 | 深圳市同创国芯电子有限公司 | Fpga芯片上电控制方法、电路及fpga芯片 |
CN105720958B (zh) * | 2016-03-02 | 2019-07-02 | 浙江大学 | Fpga芯片上电控制方法、电路及fpga芯片 |
CN106020738B (zh) * | 2016-06-28 | 2023-06-02 | 国营芜湖机械厂 | 一种模块化机载存储器读写装置 |
CN106020738A (zh) * | 2016-06-28 | 2016-10-12 | 国营芜湖机械厂 | 一种模块化机载存储器读写装置 |
CN107038134A (zh) * | 2016-11-11 | 2017-08-11 | 济南浪潮高新科技投资发展有限公司 | 一种基于fpga的srio接口固态硬盘系统及其实现方法 |
CN106991062A (zh) * | 2017-04-13 | 2017-07-28 | 济南浪潮高新科技投资发展有限公司 | 一种基于服务器cpu的srio接口固态硬盘的装置 |
CN107066406A (zh) * | 2017-04-21 | 2017-08-18 | 济南浪潮高新科技投资发展有限公司 | 一种基于fpga的接口兼容的大容量存储系统 |
CN107220196A (zh) * | 2017-05-27 | 2017-09-29 | 郑州云海信息技术有限公司 | 一种支持Tri‑Mode的内置高端存储卡 |
CN107342785A (zh) * | 2017-06-06 | 2017-11-10 | 北京东土军悦科技有限公司 | 一种信号转换装置 |
CN107342785B (zh) * | 2017-06-06 | 2019-12-03 | 北京东土军悦科技有限公司 | 一种信号转换装置 |
CN107577419A (zh) * | 2017-07-20 | 2018-01-12 | 郑州云海信息技术有限公司 | 一种外置高端存储卡 |
CN107656881A (zh) * | 2017-09-13 | 2018-02-02 | 中国科学院半导体研究所 | 基于fpga的数据存储通路系统 |
CN108055460B (zh) * | 2017-12-20 | 2021-11-02 | 东南大学 | 高速图像处理和采集系统 |
CN108055460A (zh) * | 2017-12-20 | 2018-05-18 | 东南大学 | 高速图像处理和采集系统 |
CN108447238A (zh) * | 2018-03-22 | 2018-08-24 | 江苏麦酷博信息科技有限公司 | 无缝对接多点数据收集分析的智能无线数据采集器及其工作方法 |
CN108491169A (zh) * | 2018-03-31 | 2018-09-04 | 北京联想核芯科技有限公司 | 配置独立冗余磁盘阵列raid条带的方法、装置、设备及介质 |
CN108491169B (zh) * | 2018-03-31 | 2020-12-29 | 深圳忆联信息系统有限公司 | 配置独立冗余磁盘阵列raid条带的方法、装置、设备及介质 |
CN109240965A (zh) * | 2018-08-01 | 2019-01-18 | 清华大学 | Fpga逻辑捕获处理显示套件及其使用方法 |
CN109240965B (zh) * | 2018-08-01 | 2021-02-12 | 清华大学 | Fpga逻辑捕获处理显示套件及其使用方法 |
CN109634882A (zh) * | 2018-11-20 | 2019-04-16 | 山东超越数控电子股份有限公司 | 一种基于fpga的高速数据采集板卡 |
CN109933547A (zh) * | 2019-01-29 | 2019-06-25 | 山东华芯半导体有限公司 | 一种ssd主控中的raid被动加速装置和加速方法 |
CN109933546A (zh) * | 2019-01-29 | 2019-06-25 | 山东华芯半导体有限公司 | 一种ssd主控中的raid主动加速装置和加速方法 |
CN109933547B (zh) * | 2019-01-29 | 2023-03-10 | 山东华芯半导体有限公司 | 一种ssd主控中的raid被动加速装置和加速方法 |
WO2020155544A1 (zh) * | 2019-01-29 | 2020-08-06 | 山东华芯半导体有限公司 | 一种ssd主控中的raid被动加速装置和加速方法 |
CN109933546B (zh) * | 2019-01-29 | 2023-03-10 | 山东华芯半导体有限公司 | 一种ssd主控中的raid主动加速装置和加速方法 |
CN109947376A (zh) * | 2019-04-04 | 2019-06-28 | 上海威固信息技术股份有限公司 | 一种基于fpga实现的多协议接口固态存储系统 |
CN109947376B (zh) * | 2019-04-04 | 2024-02-09 | 上海威固信息技术股份有限公司 | 一种基于fpga实现的多协议接口固态存储系统 |
CN110322979A (zh) * | 2019-07-25 | 2019-10-11 | 美核电气(济南)股份有限公司 | 基于fpga的核电站数字控制计算机系统核心处理单元 |
CN110322979B (zh) * | 2019-07-25 | 2024-01-30 | 美核电气(济南)股份有限公司 | 基于fpga的核电站数字控制计算机系统核心处理单元 |
CN110837484A (zh) * | 2019-10-31 | 2020-02-25 | 山东华芯半导体有限公司 | Ssd主控中的raid多路处理装置及数据恢复方法 |
WO2021184741A1 (zh) * | 2020-03-19 | 2021-09-23 | 上海御渡半导体科技有限公司 | 一种提高pcie控制ddr通信速率的装置及方法 |
CN111581132A (zh) * | 2020-04-27 | 2020-08-25 | 武汉中科牛津波谱技术有限公司 | 一种基于fpga的可扩展的多端口ddr3控制器 |
CN112699062A (zh) * | 2020-12-28 | 2021-04-23 | 湖南博匠信息科技有限公司 | 数据高速存储系统 |
WO2023197500A1 (zh) * | 2022-04-12 | 2023-10-19 | 深圳市安信达存储技术有限公司 | 一种基于赛灵思平台及 raid 技术的存储主板 |
CN116736234A (zh) * | 2023-08-15 | 2023-09-12 | 南京楚航科技有限公司 | 一种基于fpga的雷达数据采集方法、系统及装置 |
CN116736234B (zh) * | 2023-08-15 | 2023-10-13 | 南京楚航科技有限公司 | 一种基于fpga的雷达数据采集方法、系统及装置 |
CN117708028A (zh) * | 2024-02-05 | 2024-03-15 | 成都电科星拓科技有限公司 | Sata raid桥接芯片 |
CN117708028B (zh) * | 2024-02-05 | 2024-04-26 | 成都电科星拓科技有限公司 | Sata raid桥接芯片 |
Also Published As
Publication number | Publication date |
---|---|
CN101833424B (zh) | 2013-07-10 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
CN101833424B (zh) | 基于fpga的高速存储与传输装置 | |
CN109271335B (zh) | 一种多通道数据源ddr缓存的fpga实现方法 | |
CN101965559B (zh) | 包括将处理器与内部存储器连接的交叉切换器的用于闪存的存储控制器 | |
JP5960517B2 (ja) | フラッシュメディアコントローラの内部のメタデータハンドリング | |
Kwak et al. | Cosmos+ OpenSSD: Rapid prototype for flash storage systems | |
CN103336745B (zh) | 一种基于ssd缓存的fc hba及其设计方法 | |
CN101599004B (zh) | 基于fpga的sata控制器 | |
CN102122235B (zh) | 一种raid4系统及其数据读写方法 | |
CN103246625B (zh) | 一种数据与地址共用引脚自适应调整访存粒度的方法 | |
CN104809075A (zh) | 一种存取实时并行处理的固态记录装置及方法 | |
JP2013025795A (ja) | フラッシュデバイスのためのフラッシュコントローラハードウェアアーキテクチャ | |
CN103117797B (zh) | 高速载荷数据模拟源 | |
CN101710270B (zh) | 一种基于闪存的高速大容量存储器及芯片数据管理方法 | |
WO2009146330A1 (en) | Ssd with sata and usb interfaces | |
CN103002046B (zh) | 多系统数据拷贝的rdma装置 | |
CN101436171B (zh) | 模块化通信控制系统 | |
CN108153482A (zh) | Io命令处理方法与介质接口控制器 | |
CN103207846A (zh) | 内存控制器及控制方法 | |
CN101727128A (zh) | 服务器 | |
CN103403667A (zh) | 数据处理方法和设备 | |
CN201465566U (zh) | 一种数据存储装置 | |
CN102053929A (zh) | 一种基于Linux系统DM层的IO缓存操作方法和系统 | |
CN102520892A (zh) | 多功能固态数据存储回放仪 | |
CN104409099A (zh) | 基于FPGA的高速eMMC阵列控制器 | |
CN102929813A (zh) | 一种pci-e接口固态硬盘控制器的设计方法 |
Legal Events
Date | Code | Title | Description |
---|---|---|---|
C06 | Publication | ||
PB01 | Publication | ||
C10 | Entry into substantive examination | ||
SE01 | Entry into force of request for substantive examination | ||
C14 | Grant of patent or utility model | ||
GR01 | Patent grant | ||
CF01 | Termination of patent right due to non-payment of annual fee |
Granted publication date: 20130710 Termination date: 20150326 |
|
EXPY | Termination of patent right or utility model |