李秦
(陕西财经职业技术学院 陕西 咸阳 712000)
随着现代存储技术的发展,硬盘存储容量和速度也越来越快。当前单块的硬盘其对数据的读写速度通常在100 MBytes/s,而随着现代科学实验对数据采集的速度的要求,200 MBytes/s、400 MBytes/s甚至更高。而要达到如此高的速度,则必须要采用多块硬盘同时对数据进行读写才能完成。如果要采用多块硬盘对数据进行读写,则需要通过硬盘阵列控制系统对其进行控制才能实现。对此本文采用一种基于SATA硬盘阵列的控制系统,并对其实现进行了详细的设计。
在对数据的存储当中,之所以磁盘阵列能够实现对多块不同硬盘的并行操作,其主要是由磁盘当中数据传输特性来进行决定的。在通常状态下,在对磁盘进行数据写入的时候,主机通常首先会将数据写入到磁盘的高速缓存当中。当其中的缓存写满了之后,主机则需要等待其缓存为空,当缓存变为空后,主机则开始进入到下一次的读写存储。磁盘控制器在缓存被写满之后,将其中的数据通过高速缓存的方式写入到磁盘的介质当中。数据在高速缓存写入的过程当中其速度通常都比较快。当数据在通过高速缓存被写入到磁盘介质的过程中,因为其中哦的磁头其平均的寻道时间通常表现都比较长,并且受到主轴转速不高等相关因素的影响,从而造成了磁盘介质写入的速度变得非常的慢,并且其写入的速度要远远比高速缓存的速度慢。由此两者因为在写入速度方面存在的差异,造成了当高速缓存在写满后,磁盘控制器在对高速缓存进行读写的过程中,可先对其他的设备进行高速的缓存,最后再来写当前设备的缓存区。通过这样的方式在减少了主机写入高速缓存的时间,并可在同一个时间对多个不同的硬盘进行同时写入操作。
为更好的提高该系统的性能,文中将该控制系统设计为如图1所示。
图1 系统整体架构设计Fig.1 Overall system architecture design
该系统在初始化之后,通过相关的参数设定,从而进入到相应的工作模式,而当数据在存储的时候,其首先是通过ARM对硬盘当中的基本分区信息进行读取,从而借助ARM的处理功能找到在硬盘当中存在的空闲信息,并发出写的命令。通过这样的方式,在完成对所有空闲硬盘的搜索之后,再回到第一块硬盘的操作当中。同时,在图1的整体系统设计当中,通过数据采集器对你数据的采集,其首先是通过FPGA的逻辑处理功能,对ARM状态进行检测,在确认可以对数据进行写入之后,将数据从FPGA中的FIFO当中读写,并通过FPGA当中的PCI-X总线,将命令送入到SI13124处理器当中,最后该处理器则自动按照原始设定的程序将命令发送给制定的地址。当数据存储工作完成之后,ARM在直接对其中的FAT表进行更新,从而完成了对整个控制系统硬盘的存储。
而在图1中可以看出,FPGA与主机的连接是通过USB接口的方式,通过USB器件则将系统映射盘符,而主机则以移动硬盘的方式对系统进行访问,在此时FPGA则通过该USB器件将系统的命令传递给SI13124,SI13124则根据命令的要求将其完成,并执行相应的操作,FPGA主要的功能则是将其中的护具进行拆包,并将其转换为字节送入到USB器件当中。当主机通过网卡方式进行连接的时候,ARM则将该系统映射为FTP,主机则如访问FTP的方式进行访问。在这种访问模式下的ARM其同样通过FPGA的逻辑功能,向SI13124发出命令并执行。在图1中通过ARM连接SDRAM,其主要的作用则是通过SDRAM为ARM提供足够的空间,因为本身ARM内部的存储空间是比较小的。当系统在遇到比较大的程序的时候,可将其直接存到SDRAM当中,而不需要存入到ARM中。
对该系统的设计,其主要的目的就是要通过磁盘阵列的方式提高对数据存储的速度,并可脱离主机进行独立的工作,同时还可与主机进行连接进行对数据的回收。对此,结合图1对系统的设计,将系统分为USB接口、SATA磁盘列阵、FPGA磁盘接口控制器、ARM逻辑控制、ARM处理器等构成。其中主要对系的工作模式和文件系统进行管理;USB接口其主要的功能也是实现与主机的联机,从而得到对数据回收的目的;SATA控制器的作用则指实现FPGA与SATA的逻辑的转换,通过PCI-X的方式来实现,并对数据进行拆包和打包。因此,本系统中对硬件的选择中,处理器选择AT91 RM9200,该处理器具有性价比高、易用、功耗低等特点;对FPGA逻辑处理模块的选择采用CycloneⅡ系列,该系列具有低成本、高密度等优点;USB接口采用CY7V68013A芯片,该芯片其传输速率可达到56 Mbyres/s,同时其中智能可有效的减少开发时间,并确保USB接口的兼容性;总线传输则采用PCI-X传输协议,该传输协议其最高的传输速率可达到1 GB/S,并适用于服务器或工作站等平台。
在该系统当中对的逻辑进行设计则采用语言来进行实现,其具体的逻辑框架图则如图2所示:
图2 FPGA内部逻辑Fig.2 FPGA internal logic
通过图2可以看出,该部分包括3个主要的逻辑设计,与逻辑控制设计、接口设计、与硬盘控制器等部分。同时由于该系统进行设计的时候,与的传输中,其总线采用的是64位,在工作方式的时候为低32位,而在当中的总线是为32位,当总线处在工作模式的时候则为16位,以此需要将其从32位转换为16位,对此本文在对该问题进行处理的时候则采用32位的模式实现上述接口的通讯,其具体的转换的方式则如图3所示。
图3 系统数据流程设计Fig.3 System data flow design
系统在进行初始化并设定好最初的工作模式的时候,对SⅠ13124的状态进行读取,从而确认硬盘准备好可向硬盘的端口写入地址/命令,通过SATA硬盘接口控制器执行相关的操作,并最后返回并进行下一次操作。
通过采用MATLAB软件对上述的程序进行仿真,从而可以得到如图4的读写时序图。
图4 硬盘读写程序设计Fig.4 Hard literacy program design
同时通过上述设计,SATA硬盘传输速度可达到300 MB/s,PCI-X总线带宽可达到1 GB/s。
图5 ARM读写FIFO时序图Fig.5 Read and write timing diagram
通过采用at91 rm9200、cYCLONEⅡ等对系统CPU进行和FPGA进行设计,从而实现SATA硬盘传输最大速度直接达到300 MB/s,以此最终实现对数据的高速存储和读写。
[1]张志炜,吕幼新.基于SATA硬盘和FPGA的高速数据采集存储系统[J].电子设计工程,2011(21):166-169.ZHANG Wei,LV You-xin.SATA hard drives and FPGA-based high-speed data acquisition and storage system[J].Electronic Design Engineering,2011(21):166-169.
[2]王超,刘伟,张德聪.基于SATA的嵌入式直接存储系统[J].计算机工程,2012(12):232-235.WANG Chao,LIU Wei,ZHANG De-cong.Directly embedded SATA-based storage system[J].Computer Engineering,2012(12):232-235.
[3]吴芝路,冯阳凯,任广辉.基于SATA接口硬盘数据存储系统设计[J].哈尔滨商业大学学报:自然科学版,2008(5):550-552.WU Zhi-lu,FENG Yang-kai,REN Guang-hui.Design interface hard disk data storage system based on SATA[J].Harbin University of Commerce:Natural Science,2008(5):550-552.
[4]林连雷,杨英,姜守达.基于PCI总线的雷达信号采集分析系统设计[J].电子测量与仪器学报,2007(4):82-86.LIN Lian-lei,YANG Ying.Desinger and keep up to design a radar signal acquisition and analysis system based on PCI bus[J].Electronic Measurement and Instrument,2007(4):82-86.
[5]孙海波,王晓斌,李雅梅.基于SATA接口固态硬盘的高速存储系统设计[J].遥测遥控,2014(2):48-52.SUN Hai-bo,WANG Xiao-bin,LI Ya-mei.Design high-speed SATA interface SSD-based storage system[J].Remote Telemetry,201(2):48-52.
[6]刘勇.基于USB2.0和DDR2的数据采集系统设计与FPGA实现[J].电子元器件应用,2010,12(10):48-50.LIU Yong.USB2.0 and DDR2-based data acquisition system design and FPGA[J].Electronic Component Applications,2010,12(10):48-50.