一种Linux下的RAID高速存储驱动器及驱动方法与流程

文档序号:16550877发布日期:2019-01-08 21:06阅读:443来源:国知局
一种Linux下的RAID高速存储驱动器及驱动方法与流程

本发明涉及信息存储技术领域,具体的说,是一种linux下的raid高速存储驱动器及驱动方法。



背景技术:

vxworks操作系统是美国windriver公司于1983年设计开发的一种嵌入式实时操作系统(rtos),是嵌入式开发环境的关键组成部分。良好的持续发展能力、高性能的内核以及友好的用户开发环境,在嵌入式实时操作系统领域占据一席之地。它以其良好的可靠性和卓越的实时性被广泛地应用在通信、军事、航空、航天等高精尖技术及实时性要求极高的领域中,如卫星通讯、军事演习、弹道制导、飞机导航等。在美国的f-16、fa-18战斗机、b-2隐形轰炸机和爱国者导弹上,甚至连1997年4月在火星表面登陆的火星探测器、2008年5月登陆的凤凰号,和2012年8月登陆的好奇号也都使用到了vxworks。

现有基于vxworks的存储驱动大多是基于sata、sas等接口实现,存储速度首先面临cpu与存储器之间的接口的限制,其次会受到设备本身读写速度的限制。



技术实现要素:

本发明的目的在于提供一种linux下的raid高速存储驱动器及驱动方法,可解决嵌入式系统中对数据存储速度要求比较高的需求,采用磁盘阵列的方式实现存储,可解决存储设备本身速度限制的问题,同时主控制器与raid控制器之间采用pcie总线连接,使得存储速度得到明显的提高。

本发明通过下述技术方案实现:一种linux下的raid高速存储驱动器,包括主控制器、raid控制器、msata硬盘矩阵和pcie设备;所述主控制器包括能运行linux操作系统的设置有pcie接口的powerpc芯片;所述pcie设备包括具有xmc接口的pcie总线;所述raid控制器包括设置有ddr3接口、lbc接口、i2c接口、sata接口、pcieserdes接口的raid交换芯片以及通过ddr3接口与raid交换芯片连接的ddr3、通过lbc接口与raid交换芯片连接的norflash、通过i2c接口与raid交换芯片连接的eeprom;所述msata硬盘矩阵通过sata接口与raid交换芯片连接;所述pcie设备的xmc接口连接在raid交换芯片的pcieserdes接口上且pcie总线另一端与powerpc芯片的pcie接口连接。所述powerpc芯片、raid交换芯片通过pcie设备连接。

进一步的为更好的实现本发明,特别采用下述设置方式:所述raid控制器还包括与raid交换芯片的lbc接口连接的nvsram。

进一步的为更好的实现本发明,特别采用下述设置方式:所述raid控制器还包括与raid交换芯片的spi接口连接的spiflash。

进一步的为更好的实现本发明,特别采用下述设置方式:所述eeprom为两块,两块eeprom分别与i2c接口中的i2c0接口、i2c2接口连接。

进一步的为更好的实现本发明,特别采用下述设置方式:所述raid控制器还包括电源系统;所述电源系统包括ddr电源芯片以及输入端接直流电源的a稳压芯片、b稳压芯片,a稳压芯片的稳压输出端的第一路通过ddr电源芯片接ddr3的vtt脚、第二路直接与ddr3连接、第三路接raid交换芯片的core脚,b稳压芯片的稳压输出端输入两路不同的稳压至raid交换芯片且第三路输入相同的稳压至raid交换芯片、ddr3、norflash、nvsram、spiflash、eeprom、msata硬盘矩阵。

进一步的为更好的实现本发明,特别采用下述设置方式:所述raid控制器还包括时钟系统;所述时钟系统包括晶振和由powerpc芯片经由xmc接口提供的同步时钟通道,晶振与raid交换芯片的pin_recclk接口连接,同步时钟通道与raid交换芯片的refclk接口连接。

进一步的为更好的实现本发明,特别采用下述设置方式:所述raid控制器还包括复位电路;所述复位电路包括第一与门、复位芯片和第二与门,第一与门的输入端通过xmc接口与powerpc芯片连接且第一与门的输出端通过复位芯片与raid交换芯片的pin_reset_n接口连接,第二与门的输入端通过xmc接口与powerpc芯片连接且第二与门的输出端与raid交换芯片的pin_preset_n接口连接,复位芯片还与第二与门连接。

进一步的为更好的实现本发明,特别采用下述设置方式:所述msata硬盘矩阵内设置有4块msata硬盘,4块msata硬盘通过2041119-1连接器与raid交换芯片的sata接口连接。

进一步的为更好的实现本发明,特别采用下述设置方式:所述raid交换芯片采用88rc9580,且sata接口为sata3.0。

本发明通过下述技术方案实现:一种linux下的raid高速存储的驱动方法,所述驱动方法包括以下步骤:

步骤s1:启动linux下的raid高速存储驱动器时,raid控制器的raid交换芯片从eeprom里调用配置信息,对raid控制器进行初始化并对各通道的配置;

步骤s2:完成raid控制器的初始化及各通道的配置后,raid控制器、主控制器通过linux驱动对主控制器进行初始化;

步骤s3:主控制器初始化完成后,用户可以将业务数据以posix接口存储到raid交换芯片挂载的msata硬盘矩阵盘中。

进一步的为更好的实现本发明,特别采用下述设置方式:所述步骤s3中用户可以使用raid控制器附带的上位机程序实现对msata硬盘矩阵中各个分区中的数据进行创建、修改、删除操作。

本发明与现有技术相比,具有以下优点及有益效果:

(1)本发明可解决嵌入式系统中对数据存储速度要求比较高的需求,采用磁盘阵列的方式实现存储,可解决嵌入式系统中对数据存储速度要求比较高的需求,采用磁盘阵列的方式实现存储,可解决存储设备本身速度限制的问题,同时主控制器与raid控制器之间采用pcie总线连接,使得存储速度得到明显的提高。

(2)本发明采用pcie总线方式驱动raid控制器中相互交换的raid交换芯片、多个msata硬盘,实现存储数据的高速读写。

(3)本发明能将磁盘设备挂载到vxworks系统中。

附图说明

图1为本发明中linux下的raid高速存储驱动器的内部结构示意框图。

图2为linux下的raid高速存储驱动器中raid控制器内部示意框图。

图3为linux下的raid高速存储驱动器中电源系统示意框图。

图4为linux下的raid高速存储驱动器中时钟系统示意框图。

图5为linux下的raid高速存储驱动器中复位电路示意框图。

具体实施方式

下面结合实施例对本发明作进一步地详细说明,但本发明的实施方式不限于此。

文中涉及到的英文简称:

spiflash:serialperipheralinterfaceflash,一种通过spi总线接口访问控制的闪存设备;

nvsram:non-volatilerandomaccessmemory,非易失性随机访问存储器,断电后能保持数据的一种存储器;

norflash:一种非易失闪存;

msata:msata(mini-sata)是迷你版本sata接口,外型和电子界面与minipci-e完全相同,但电子信号不同,两者互不兼容。

eeprom:eeprom(electricallyerasableprogrammableread-onlymemory),电可擦可编程只读存储器,一种掉电后数据不丢失的存储芯片。

raid:redundantarraysofindependentdisks,独立磁盘构成的具有荣誉能力的阵列;

xmc接口件:一种电器元件连接接口的标准;

powerpc:一种精简指令集(risc)架构的中央raid控制器(cpu)。

实施例1:

如图1所示,一种linux下的raid高速存储驱动器,包括主控制器、raid控制器、msata硬盘矩阵和pcie设备;所述主控制器包括能运行linux操作系统的设置有pcie接口的powerpc芯片;所述pcie设备包括具有xmc接口的pcie总线;所述raid控制器包括设置有ddr3接口、lbc接口、i2c接口、sata接口、pcieserdes接口的raid交换芯片以及通过ddr3接口与raid交换芯片连接的ddr3、通过lbc接口与raid交换芯片连接的norflash、通过i2c接口与raid交换芯片连接的eeprom;所述msata硬盘矩阵通过sata接口与raid交换芯片连接;所述pcie设备的xmc接口连接在raid交换芯片的pcieserdes接口上且pcie总线另一端与powerpc芯片的pcie接口连接。

一种linux下的raid高速存储的驱动方法,所述驱动方法包括以下步骤:

步骤s1:启动linux下的raid高速存储驱动器时,raid控制器的raid交换芯片从eeprom里调用配置信息,对raid控制器进行初始化并对各通道的配置;

步骤s2:完成raid控制器的初始化及各通道的配置后,raid控制器、主控制器通过linux驱动对主控制器进行初始化;

步骤s3:主控制器初始化完成后,用户可以将业务数据以posix接口存储到raid交换芯片挂载的msata硬盘矩阵盘中。

所述步骤s3中用户可以使用raid控制器附带的上位机程序实现对msata硬盘矩阵中各个分区中的数据进行创建、修改、删除操作。

所述pcie设备包括pcie总线、pcie转xmc载板,所述xmc接口连接在raid控制器的pcieserdes接口上,一路pcie总线连接pcie转xmc载板和raid控制器的pcieserdes接口,一路pcie总线连接转xmc载板和xmc接口。因此,本实施例中通过pcie设备连接主控制器、挂载msata硬盘矩阵的raid控制器,同时采用磁盘阵列的方式实现存储,突破存储设备本身限速的问题,提高存储速度。

实施例2:

如图1-图5所示,一种linux下的raid高速存储驱动器,包括主控制器、raid控制器、msata硬盘矩阵和pcie设备;所述主控制器包括能运行linux操作系统的设置有pcie接口的powerpc芯片;所述pcie设备包括具有xmc接口的pcie总线;所述raid控制器包括设置有ddr3接口、lbc接口、i2c接口、sata接口、pcieserdes接口的raid交换芯片以及通过ddr3接口与raid交换芯片连接的ddr3、通过lbc接口与raid交换芯片连接的norflash、通过i2c接口与raid交换芯片连接的eeprom;所述msata硬盘矩阵通过sata接口与raid交换芯片连接;所述pcie设备的xmc接口连接在raid交换芯片的pcieserdes接口上且pcie总线另一端与powerpc芯片的pcie接口连接。

进一步的为更好的实现本发明,特别采用下述设置方式:所述eeprom为两块且分别连接raid控制器的i2c0接口、i2c2接口这两个i2c接口。

实施例中:

所述raid交换芯片采用88rc9580,且sata接口为sata3.0。88rc9580为marvell公司的raid控制器用处理器,其集成主频900mhz的arm处理器、x1/x4/x8的pcie2.0接口、8个sata3.0、sram、ddr3等接口,可硬件实现raid0/1/10/5/6/50/60。

所述powerpc芯片采用p2040,且powerpc芯片的pcie接口通过xmc接口与raid交换芯片的pcieserdes接口采用x4pcie2.0进行两者之间的通信。

所述pcie总线的xmc接口采用tpcie275。

所述ddr3采用issi公司的is43tr16640a,该芯片为128mb的存储容量,单板采用5片组成512mb+ecc的存储容量。

所述norflasf采用mxic公司的mx29lv640系列,优选采用mx29lv640eti-70g,mx29lv640eti-70g为16位8mbflash,主要用于存储raid控制器的启动代码和系统软件等。

所述eeprom采用atmel公司的at24c04bn系列器件,优选采用at24c04bn-sh器件,接口为i2c,容量为4kbit。在设计使用时,分别在raid控制器内raid交换芯片的i2c0和i2c2上各挂一片at24c04bn-sh器件,地址均为0x50。

所述msata硬盘矩阵内设置有4块msata硬盘,4块msata硬盘通过2041119-1连接器与raid交换芯片的sata接口连接。所述msata硬盘采用512gb硬盘,4块512gb硬盘够成2tb存储容量;所述msata硬盘优选采用ssd。

本实施例的其他部分与上述实施例相同,故不再赘述。

实施例3:

本实施例是在上述任一实施例的基础上进一步优化,所述raid控制器还包括与raid交换芯片的lbc接口连接的nvsram。

所述nvsram用来保存raid控制器配置参数信息。本实施例中,所述nvsram采用cypress公司的cy14b101la系列,优选采用cy14b101la-zs25xit,cy14b101la-zs25xit为8位128kb非易失sram存储器,存取时间为25ns。应为配置参数信息可修改更新,加入nvsram目的是减少对norflash设备的擦写,延长使用寿命,提高raid控制器操作效率。

本实施例的其他部分与上述实施例相同,故不再赘述。

实施例4:

本实施例是在上述任一实施例的基础上进一步优化,所述raid控制器还包括与raid交换芯片的spi接口连接的spiflash。

所述spiflash用于存储raid控制器的系统软件。本实施例中,所述spiflash采用mxic公司的mx25l4006系列,优选采用mx25l4006em1-12g,mx25l4006em1-12g为spi接口flash,容量为512kb。

本实施例的其他部分与上述实施例相同,故不再赘述。

实施例5:

本实施例是在上述任一实施例的基础上进一步优化,所述raid控制器还包括电源系统;所述电源系统包括ddr电源芯片以及输入端接直流电源的a稳压芯片、b稳压芯片,a稳压芯片的稳压输出端的第一路通过ddr电源芯片接ddr3的vtt脚、第二路直接与ddr3连接、第三路接raid交换芯片的core脚,b稳压芯片的稳压输出端输入两路不同的稳压至raid交换芯片且第三路输入相同的稳压至raid交换芯片、ddr3、norflash、nvsram、spiflash、eeprom、msata硬盘矩阵。

本实施例中,所述ddr电源芯片采用tps51200。

本实施例中,所述稳压芯片采用ltm4644;为可配置4a输出阵列的四通道dc/dcμmodule稳压器,具有如下特性:

1、为一种每路输出可提供4a电流的四通道输出降压型μmodule®稳压器;

2、具有宽输入电压范围:4v至14v;2.375v至14v(采用外部偏置);0.6v至5.5v输出电压;

3、每通道可提供4adc、5a峰值输出电流;

4、高达5.5w功耗(ta=60ºc,200lfm,无散热器);

5、±1.5%的总输出电压调节;

6、电流模式控制、快速瞬态响应;

7、可通过并联提供更高的输出电流;

8、输出电压跟踪;

9、内部温度检测二极管输出;

10、外部频率同步;

11、过压、过流和过热保护;

12、9mmx15mmx5.01mmbga封装;

所述raid控制器的电源需求方分析表如表1所示;

表1

如图3所示,本实施例中电源系统包括两块稳压芯片、一块ddr3电源芯片,且稳压芯片采用ltm4644,ddr3电源芯片采用tps51200,5v/8a的直流电源经其中一块稳压芯片ltm4644降压且稳压后分别输出1.8v/4a和2.5v/4a到raid交换芯片,同时还输出3.3v/8a到raid交换芯片、ddr3、norflash、nvsram、spiflash、eeprom、msata硬盘;另一块稳压芯片ltm4644输出1.0v/8a到raid交换芯片的core脚,输出1.5v/8a到ddr3,同时还经ddr3电源芯片tps51200降压后输出0.75v/2a至ddr3的vtt脚。

本实施例的其他部分与上述实施例相同,故不再赘述。

实施例6:

本实施例是在上述任一实施例的基础上进一步优化,所述raid控制器还包括时钟系统;所述时钟系统包括晶振和由powerpc芯片经由xmc接口提供的同步时钟通道,晶振与raid交换芯片的pin_recclk接口连接,同步时钟通道与raid交换芯片的refclk接口连接。

如图4所示,本实施例中所述晶振与raid控制器的pin_recclk接口相连接;所述主控制器通过hcsl电平方式提供100mhz同步时钟经同步时钟通道加载至raid控制器的refclk接口;所述晶振提供的50mhz单端时钟,经由raid控制器的pin_recclk接口接入。

本实施例的其他部分与上述实施例相同,故不再赘述。

实施例7:

本实施例是在上述任一实施例的基础上进一步优化,所述raid控制器还包括复位电路;所述复位电路包括第一与门、复位芯片和第二与门,第一与门的输入端通过xmc接口与powerpc芯片连接且第一与门的输出端通过复位芯片与raid交换芯片的pin_reset_n接口连接,第二与门的输入端通过xmc接口与powerpc芯片连接且第二与门的输出端与raid交换芯片的pin_preset_n接口连接,复位芯片还与第二与门连接。

本实施例中,所述复位芯片采用imp811。所述第一与门与第二与门通过xmc接口皆与powerpc芯片相连接,所述第一与门与复位芯片相连接,所述复位芯片与第二与门相连接,所述复位芯片与raid交换芯片的pin_reset_n接口相连接,所述第二与门与raid交换芯片的pcie模块pin_reset_n接口相连接。

所述powerpc芯片p2040经由xmc接口输出的sysrst信号和raid交换芯片88rc9580上电完成信号pgood通过第一与门相与后经复位芯片imp811一方面直接通过raid交换芯片的系统pin_reset_n接口进行复位驱动,完成对raid控制器的复位,另一方面经由第二与门后通过raid交换芯片的pcie模块pin_reset_n接口进行复位驱动,完成对raid控制器的复位;由powerpc芯片发出的pcierst信号亦可通过xmc接口经由第二与门后通过raid交换芯片的pcie模块pin_reset_n接口单独对raid交换芯片的pcie模块进行复位。

本实施例的其他部分与上述实施例相同,故不再赘述。

实施例8:

一种linux下的raid高速存储驱动器,包括主控制器、raid控制器、msata硬盘矩阵和pcie设备;所述主控制器包括能运行linux操作系统的设置有pcie接口的powerpc芯片;所述pcie设备包括具有xmc接口的pcie总线;所述raid控制器包括设置有ddr3接口、lbc接口、i2c接口、sata接口、pcieserdes接口的raid交换芯片以及通过ddr3接口与raid交换芯片连接的ddr3、通过lbc接口与raid交换芯片连接的norflash、通过i2c接口与raid交换芯片连接的eeprom;所述msata硬盘矩阵通过sata接口与raid交换芯片连接;所述pcie设备的xmc接口连接在raid交换芯片的pcieserdes接口上且pcie总线另一端与powerpc芯片的pcie接口连接。所述powerpc芯片、raid交换芯片通过pcie设备连接。

所述raid控制器还包括与raid交换芯片的lbc接口连接的nvsram。

所述raid控制器还包括与raid交换芯片的spi接口连接的spiflash。

所述eeprom为两块,两块eeprom分别与i2c接口中的i2c0接口、i2c2接口连接。

所述raid控制器还包括电源系统;所述电源系统包括ddr电源芯片以及输入端接直流电源的a稳压芯片、b稳压芯片,a稳压芯片的稳压输出端的第一路通过ddr电源芯片接ddr3的vtt脚、第二路直接与ddr3连接、第三路接raid交换芯片的core脚,b稳压芯片的稳压输出端输入两路不同的稳压至raid交换芯片且第三路输入相同的稳压至raid交换芯片、ddr3、norflash、nvsram、spiflash、eeprom、msata硬盘矩阵。

所述raid控制器还包括时钟系统;所述时钟系统包括晶振和由powerpc芯片经由xmc接口提供的同步时钟通道,晶振与raid交换芯片的pin_recclk接口连接,同步时钟通道与raid交换芯片的refclk接口连接。

所述raid控制器还包括复位电路;所述复位电路包括第一与门、复位芯片和第二与门,第一与门的输入端通过xmc接口与powerpc芯片连接且第一与门的输出端通过复位芯片与raid交换芯片的pin_reset_n接口连接,第二与门的输入端通过xmc接口与powerpc芯片连接且第二与门的输出端与raid交换芯片的pin_preset_n接口连接。

所述msata硬盘矩阵内设置有4块msata硬盘,4块msata硬盘通过2041119-1连接器与raid交换芯片的sata接口连接。

所述raid交换芯片采用88rc9580,且sata接口为sata3.0。

本发明通过下述技术方案实现:一种linux下的raid高速存储的驱动方法,所述驱动方法包括以下步骤:

步骤s1:启动linux下的raid高速存储驱动器时,raid控制器的raid交换芯片从eeprom里调用配置信息,对raid控制器进行初始化并对各通道的配置;

步骤s2:完成raid控制器的初始化及各通道的配置后,raid控制器、主控制器通过linux驱动对主控制器进行初始化;

步骤s3:主控制器初始化完成后,用户可以将业务数据以posix接口存储到raid交换芯片挂载的msata硬盘矩阵盘中。

所述步骤s3中用户可以使用raid控制器附带的上位机程序实现对msata硬盘矩阵中各个分区中的数据进行创建、修改、删除操作。

本实施例中的linux下的raid高速存储驱动器,基于主控制器这一powerpc硬件平台,在vxworks系统上驱动raid控制器。主控制器通过pcie设备与挂载msata硬盘矩阵的riad控制器连接,raid控制器端管理msata硬盘阵列和与主控制器通信的程序。主控制器端通过与raid控制器进行数据和命令的交互以访问msata硬盘阵列。所述msata硬盘矩阵内设置有4块msata硬盘,所述msata硬盘优选采用ssd。

主控制器与riad控制器的数据交互:

1、主控制器端命令收发:powerpc芯片按照规定格式准备命令,完成后将命令和数据的地址告诉raid控制器,然后等待raid控制器处理完成后到指定的内存区域读取返回信息;

2、raid控制器端命令的处理:powerpc芯片命令准备就绪通知raid控制器,raid控制器从主控制器端指定内存地址搬移命令到raid控制器端,然后处理命令,命令处理完成后,将命令的返回数据搬移到主控制器端并以中断的方式通知主控制器端。

raid控制器与ssd硬盘数据交互:

raid控制器的raid交换芯片与ssd硬盘之间采用sata接口连接,raid交换芯片通过sata协议访问ssd设备。

本实施例为一个基于vxworks的块设备驱动,将系统对块设备访问操作转换成powerpc芯片与raid交换芯片之间的通信命令,通过通信命令间接地访问挂载在raid控制器上的ssd设备,以实现vxworks系统对ssd阵列的访问。

以上所述,仅是本发明的较佳实施例,并非对本发明做任何形式上的限制,凡是依据本发明的技术实质对以上实施例所作的任何简单修改、等同变化,均落入本发明的保护范围之内。

当前第1页1 2 
网友询问留言 已有0条留言
  • 还没有人留言评论。精彩留言会获得点赞!
1