李秦
(陜西財經(jīng)職業(yè)技術(shù)學(xué)院 陜西 咸陽 712000)
隨著現(xiàn)代存儲技術(shù)的發(fā)展,硬盤存儲容量和速度也越來越快。當(dāng)前單塊的硬盤其對數(shù)據(jù)的讀寫速度通常在100 MBytes/s,而隨著現(xiàn)代科學(xué)實驗對數(shù)據(jù)采集的速度的要求,200 MBytes/s、400 MBytes/s甚至更高。而要達到如此高的速度,則必須要采用多塊硬盤同時對數(shù)據(jù)進行讀寫才能完成。如果要采用多塊硬盤對數(shù)據(jù)進行讀寫,則需要通過硬盤陣列控制系統(tǒng)對其進行控制才能實現(xiàn)。對此本文采用一種基于SATA硬盤陣列的控制系統(tǒng),并對其實現(xiàn)進行了詳細(xì)的設(shè)計。
在對數(shù)據(jù)的存儲當(dāng)中,之所以磁盤陣列能夠?qū)崿F(xiàn)對多塊不同硬盤的并行操作,其主要是由磁盤當(dāng)中數(shù)據(jù)傳輸特性來進行決定的。在通常狀態(tài)下,在對磁盤進行數(shù)據(jù)寫入的時候,主機通常首先會將數(shù)據(jù)寫入到磁盤的高速緩存當(dāng)中。當(dāng)其中的緩存寫滿了之后,主機則需要等待其緩存為空,當(dāng)緩存變?yōu)榭蘸?,主機則開始進入到下一次的讀寫存儲。磁盤控制器在緩存被寫滿之后,將其中的數(shù)據(jù)通過高速緩存的方式寫入到磁盤的介質(zhì)當(dāng)中。數(shù)據(jù)在高速緩存寫入的過程當(dāng)中其速度通常都比較快。當(dāng)數(shù)據(jù)在通過高速緩存被寫入到磁盤介質(zhì)的過程中,因為其中哦的磁頭其平均的尋道時間通常表現(xiàn)都比較長,并且受到主軸轉(zhuǎn)速不高等相關(guān)因素的影響,從而造成了磁盤介質(zhì)寫入的速度變得非常的慢,并且其寫入的速度要遠(yuǎn)遠(yuǎn)比高速緩存的速度慢。由此兩者因為在寫入速度方面存在的差異,造成了當(dāng)高速緩存在寫滿后,磁盤控制器在對高速緩存進行讀寫的過程中,可先對其他的設(shè)備進行高速的緩存,最后再來寫當(dāng)前設(shè)備的緩存區(qū)。通過這樣的方式在減少了主機寫入高速緩存的時間,并可在同一個時間對多個不同的硬盤進行同時寫入操作。
為更好的提高該系統(tǒng)的性能,文中將該控制系統(tǒng)設(shè)計為如圖1所示。
圖1 系統(tǒng)整體架構(gòu)設(shè)計Fig.1 Overall system architecture design
該系統(tǒng)在初始化之后,通過相關(guān)的參數(shù)設(shè)定,從而進入到相應(yīng)的工作模式,而當(dāng)數(shù)據(jù)在存儲的時候,其首先是通過ARM對硬盤當(dāng)中的基本分區(qū)信息進行讀取,從而借助ARM的處理功能找到在硬盤當(dāng)中存在的空閑信息,并發(fā)出寫的命令。通過這樣的方式,在完成對所有空閑硬盤的搜索之后,再回到第一塊硬盤的操作當(dāng)中。同時,在圖1的整體系統(tǒng)設(shè)計當(dāng)中,通過數(shù)據(jù)采集器對你數(shù)據(jù)的采集,其首先是通過FPGA的邏輯處理功能,對ARM狀態(tài)進行檢測,在確認(rèn)可以對數(shù)據(jù)進行寫入之后,將數(shù)據(jù)從FPGA中的FIFO當(dāng)中讀寫,并通過FPGA當(dāng)中的PCI-X總線,將命令送入到SI13124處理器當(dāng)中,最后該處理器則自動按照原始設(shè)定的程序?qū)⒚畎l(fā)送給制定的地址。當(dāng)數(shù)據(jù)存儲工作完成之后,ARM在直接對其中的FAT表進行更新,從而完成了對整個控制系統(tǒng)硬盤的存儲。
而在圖1中可以看出,F(xiàn)PGA與主機的連接是通過USB接口的方式,通過USB器件則將系統(tǒng)映射盤符,而主機則以移動硬盤的方式對系統(tǒng)進行訪問,在此時FPGA則通過該USB器件將系統(tǒng)的命令傳遞給SI13124,SI13124則根據(jù)命令的要求將其完成,并執(zhí)行相應(yīng)的操作,F(xiàn)PGA主要的功能則是將其中的護具進行拆包,并將其轉(zhuǎn)換為字節(jié)送入到USB器件當(dāng)中。當(dāng)主機通過網(wǎng)卡方式進行連接的時候,ARM則將該系統(tǒng)映射為FTP,主機則如訪問FTP的方式進行訪問。在這種訪問模式下的ARM其同樣通過FPGA的邏輯功能,向SI13124發(fā)出命令并執(zhí)行。在圖1中通過ARM連接SDRAM,其主要的作用則是通過SDRAM為ARM提供足夠的空間,因為本身ARM內(nèi)部的存儲空間是比較小的。當(dāng)系統(tǒng)在遇到比較大的程序的時候,可將其直接存到SDRAM當(dāng)中,而不需要存入到ARM中。
對該系統(tǒng)的設(shè)計,其主要的目的就是要通過磁盤陣列的方式提高對數(shù)據(jù)存儲的速度,并可脫離主機進行獨立的工作,同時還可與主機進行連接進行對數(shù)據(jù)的回收。對此,結(jié)合圖1對系統(tǒng)的設(shè)計,將系統(tǒng)分為USB接口、SATA磁盤列陣、FPGA磁盤接口控制器、ARM邏輯控制、ARM處理器等構(gòu)成。其中主要對系的工作模式和文件系統(tǒng)進行管理;USB接口其主要的功能也是實現(xiàn)與主機的聯(lián)機,從而得到對數(shù)據(jù)回收的目的;SATA控制器的作用則指實現(xiàn)FPGA與SATA的邏輯的轉(zhuǎn)換,通過PCI-X的方式來實現(xiàn),并對數(shù)據(jù)進行拆包和打包。因此,本系統(tǒng)中對硬件的選擇中,處理器選擇AT91 RM9200,該處理器具有性價比高、易用、功耗低等特點;對FPGA邏輯處理模塊的選擇采用CycloneⅡ系列,該系列具有低成本、高密度等優(yōu)點;USB接口采用CY7V68013A芯片,該芯片其傳輸速率可達到56 Mbyres/s,同時其中智能可有效的減少開發(fā)時間,并確保USB接口的兼容性;總線傳輸則采用PCI-X傳輸協(xié)議,該傳輸協(xié)議其最高的傳輸速率可達到1 GB/S,并適用于服務(wù)器或工作站等平臺。
在該系統(tǒng)當(dāng)中對的邏輯進行設(shè)計則采用語言來進行實現(xiàn),其具體的邏輯框架圖則如圖2所示:
圖2 FPGA內(nèi)部邏輯Fig.2 FPGA internal logic
通過圖2可以看出,該部分包括3個主要的邏輯設(shè)計,與邏輯控制設(shè)計、接口設(shè)計、與硬盤控制器等部分。同時由于該系統(tǒng)進行設(shè)計的時候,與的傳輸中,其總線采用的是64位,在工作方式的時候為低32位,而在當(dāng)中的總線是為32位,當(dāng)總線處在工作模式的時候則為16位,以此需要將其從32位轉(zhuǎn)換為16位,對此本文在對該問題進行處理的時候則采用32位的模式實現(xiàn)上述接口的通訊,其具體的轉(zhuǎn)換的方式則如圖3所示。
圖3 系統(tǒng)數(shù)據(jù)流程設(shè)計Fig.3 System data flow design
系統(tǒng)在進行初始化并設(shè)定好最初的工作模式的時候,對SⅠ13124的狀態(tài)進行讀取,從而確認(rèn)硬盤準(zhǔn)備好可向硬盤的端口寫入地址/命令,通過SATA硬盤接口控制器執(zhí)行相關(guān)的操作,并最后返回并進行下一次操作。
通過采用MATLAB軟件對上述的程序進行仿真,從而可以得到如圖4的讀寫時序圖。
圖4 硬盤讀寫程序設(shè)計Fig.4 Hard literacy program design
同時通過上述設(shè)計,SATA硬盤傳輸速度可達到300 MB/s,PCI-X總線帶寬可達到1 GB/s。
圖5 ARM讀寫FIFO時序圖Fig.5 Read and write timing diagram
通過采用at91 rm9200、cYCLONEⅡ等對系統(tǒng)CPU進行和FPGA進行設(shè)計,從而實現(xiàn)SATA硬盤傳輸最大速度直接達到300 MB/s,以此最終實現(xiàn)對數(shù)據(jù)的高速存儲和讀寫。
[1]張志煒,呂幼新.基于SATA硬盤和FPGA的高速數(shù)據(jù)采集存儲系統(tǒng)[J].電子設(shè)計工程,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的嵌入式直接存儲系統(tǒng)[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接口硬盤數(shù)據(jù)存儲系統(tǒng)設(shè)計[J].哈爾濱商業(yè)大學(xué)學(xué)報:自然科學(xué)版,2008(5):550-552.WU Zhi-lu,F(xiàn)ENG 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總線的雷達信號采集分析系統(tǒng)設(shè)計[J].電子測量與儀器學(xué)報,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接口固態(tài)硬盤的高速存儲系統(tǒng)設(shè)計[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的數(shù)據(jù)采集系統(tǒng)設(shè)計與FPGA實現(xiàn)[J].電子元器件應(yīng)用,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.