嵌入式SATA存儲系統(tǒng)的研究
SATA硬盤作為新型的存儲介質(zhì),具有高速、海量、價格低廉、使用方便等優(yōu)點。SATA2.5協(xié)議支持3.0Gb/s的接口速度,SATA2.5硬盤的持續(xù)存儲速度可達80MB/s,最大存儲容量已經(jīng)達到750GB(如希捷ST3750640AS硬盤)。SATA硬盤已經(jīng)占據(jù)了大部分的PC機硬盤市場,并且正向工作站、服務器的領域邁進。而在嵌入式的應用領域,目前的硬盤存儲設備依然廣泛采用傳統(tǒng)的IDE(ATA)和SCSI硬盤。由于兩者存在低速或昂貴的缺點,因此如何將SATA硬盤存儲應用到嵌入式系統(tǒng)中就成為今后相關(guān)領域的研究重點。
1 SATA2.5協(xié)議的性能與結(jié)構(gòu)
1.1 各種硬盤存儲接口的比較
通常硬盤根據(jù)接口類型進行分類。硬盤接口主要分為:IDE(ATA)、Serial ATA(SATA)、SCSI、Serial Attached SCSI(SAS)和Fiber Channel(FC),此外還存在IEEE1394、USB等。
IDE、SCSI采用的是并行總線接口,隨著技術(shù)要求的不斷提高,并行技術(shù)的種種問題如信號扭曲和串擾、電纜和連接器的反射、設備的尋址能力有限等都已成為提高其數(shù)據(jù)吞吐能力的障礙。FC、SAS和SATA采用串行技術(shù),克服了并行技術(shù)存在的缺點,大大提高了速度、可靠性和可擴展性。而SATA硬盤相對于FC和SAS硬盤具有很大的價格優(yōu)勢,并且與SAS接口兼容。
1.2 SATA2.5協(xié)議的基本性能[1]
SATA2.5是國際串行ATA組織SATA-IO(Serial ATA International Organization)制訂的最新SATA標準。其主要性能特點如下:
(1)傳輸速率快,由SATA1.0的1.5Gb/s發(fā)展到SATA2.5的3.0Gb/s,并且SATA-IO計劃今后幾年推出6.0Gb/s的接口協(xié)議,這比最新的并行IDE接口ATAPI-7的133MB/s的傳輸速率提高許多。
(2)電纜線寬度降低而長度增加,寬度由IDE的40針/80針減少到7針,長度由18英寸增加到1米。
(3)支持熱插拔,這使SATA硬盤可以作為移動硬盤使用。
(4)提高了數(shù)據(jù)傳輸?shù)木_度,ATA-3標準引入了基于CRC(循環(huán)冗余碼校驗)的數(shù)據(jù)包出錯檢測,但是,沒有任何一種并行ATA標準提供命令和狀態(tài)包的出錯檢測。SATA提高了CRC對數(shù)據(jù)、命令和狀態(tài)包錯誤的檢測能力,從而提高了數(shù)據(jù)傳輸?shù)木_度。
(5)支持全速命令隊列(NQC),大大提高了硬盤的內(nèi)部數(shù)據(jù)傳輸速度。
此外,SATA2.5協(xié)議采用點對點結(jié)構(gòu),降低了磁盤陣列的出錯風險;降低了工作電壓,減少了功耗;向下軟件兼容并行ATA,橫向兼容SAS協(xié)議。
1.3 SATA2.5協(xié)議的體系結(jié)構(gòu)
SATA2.5采用四層結(jié)構(gòu):應用層、傳輸層、鏈接層和物理層。其中,應用層負責所有ATA命令的執(zhí)行,包括對控制命令模塊寄存器的訪問;傳輸層負責在主機和硬盤設備之間以幀信息結(jié)構(gòu)(FIS)的形式傳輸控制命令和數(shù)據(jù);鏈接層負責對數(shù)據(jù)進行8/10編解碼,根據(jù)需要從結(jié)構(gòu)幀中提取有效數(shù)據(jù),或者將控制字插入到結(jié)構(gòu)幀當中;物理層負責在串行數(shù)據(jù)線上傳輸已編碼的數(shù)據(jù)。
2 Virtex-5 FPGA芯片簡介[2]
Virtex-5系列FPGA芯片[2]是Xilinx公司最新推出的高端產(chǎn)品,它采用65納米工藝,1.0V核電壓,具有靈活的時鐘管理模塊,100Mb/s~3.2Gb/s的串行連接功能,550MHz的DSP硬核,內(nèi)置36KB的塊RAM, I/O引腳多達1 200個。目前,Virtex5系列FPGA有LX、LXT和SXT三款平臺,分別面向高性能邏輯功能、高性能邏輯功能和高速串行連接,以及高速串行連接和DSP功能。
RocketIO GTP收發(fā)器是專門為Virtex-5 FPGA實現(xiàn)高速低功耗串行連接而設計的,具有高速、穩(wěn)定的特點,可以實現(xiàn)PCI Express、FC、SATA等高速接口的物理層協(xié)議,而不用外置子板,從而節(jié)省了空間和成本。
3 SATA2.5協(xié)議在FPGA上的實現(xiàn)[3][4]
3.1 鏈接層在FPGA內(nèi)的實現(xiàn)
鏈接層發(fā)送或者接收混合了控制原語的數(shù)據(jù)流,在數(shù)據(jù)傳輸過程中,CRC被加入或者提取出數(shù)據(jù)流,同時8b/10b編解碼被執(zhí)行。圖1給出了鏈接層在FPGA內(nèi)部的邏輯結(jié)構(gòu),左邊與傳輸層相連,右邊與物理層相連。
在核時鐘域里,數(shù)據(jù)寬度是32位;而在PHY時鐘域里,數(shù)據(jù)寬度是10位。在發(fā)送過程中,異步接口每四個PHY時鐘發(fā)送一次雙字,每個PHY時鐘內(nèi)一個8位數(shù)據(jù)塊通過8b/10b編碼器生成10位數(shù)據(jù)塊,并被連續(xù)串行發(fā)送到物理層。接收過程剛好與此相反。原語是由雙字組成的實體,用于控制和提供串行連接的狀態(tài)。在FPGA內(nèi)部,原語專門由原語發(fā)生器提供,主控制器根據(jù)上層命令控制原語的產(chǎn)生。CRC發(fā)生器多項式為:
[!--empirenews.page--]
FPGA內(nèi)需設置一個線性循環(huán)移位寄存器(LFSR),在檢驗過程中與傳輸數(shù)據(jù)進行異或,LFSR內(nèi)部多項式為:
3.2 傳輸層在FPGA內(nèi)的實現(xiàn)
傳輸層在發(fā)送過程中將數(shù)據(jù)和控制信號打包為FIS,在接收過程中分解接收到的FIS。如圖2所示,F(xiàn)PGA內(nèi)部設置了一個FIFO,數(shù)據(jù)的接收和發(fā)送過程都通過同一個FIFO通道。Wishbone總線是一種片上系統(tǒng)互聯(lián)規(guī)范,該規(guī)范給片內(nèi)的各部分以及IP核之間的互聯(lián)定義了一種通用的接口,由此提高了設計的可靠性和可移植性。圖中的Wishbone從接口與應用層的Wishbone主接口通信,過程方便可靠。Shadow寄存器用于轉(zhuǎn)送命令到設備端,或者記錄設備端的狀態(tài)。狀態(tài)和控制寄存器包含了一系列的寄存器,用于控制接口并且檢索接口狀態(tài)信息。
3.3 SATA與XC5VLX30T的接口及仿真
3.3.1 GTP收發(fā)器簡介[5]
GTP收發(fā)器是Virtex-5 LXT和SXT系列FPGA內(nèi)高度可配置和高度集成的可編程邏輯資源。它支持包括SATA在內(nèi)的許多高速串行接口,內(nèi)部的電流模式邏輯(CML)驅(qū)動器和緩存器提供用戶可配置的終端、電壓擺幅和耦合,可編程的發(fā)送預加重和接收均衡使得信號完整性得到優(yōu)化。此外它還集成了可選的8b/10b編碼、逗號校準、信道綁定以及時鐘校正模塊。
以Virtex-5 LXT系列的XC5VLX30T為例,它具有四個獨立的GTP模塊,每個模塊又分別包含了若干GTP驅(qū)動電壓與參考電壓引腳,一對低壓差分串行時鐘引腳,以及兩對RocketIOTM低壓差分串行引腳。
3.3.2 SATA接口信號定義
SATA接口數(shù)據(jù)線由7根信號線組成。在主機端,1至7號線依次為GND、Tx+、Tx-、GND、Rx+、Rx-和GND。其中,Tx+和Tx-組成低壓差分發(fā)送信號對,分別與XC5VLX30T的MGTTXP和MGTTXN引腳相連;Rx+和Rx-組成低壓差分接收信號對,分別與XC5VLX30T的MGTRXP和MGTRXN引腳相連。
3.3.3 SATA時鐘電路及PCB仿真[6-8]
由于SATA的時鐘頻率和串行數(shù)據(jù)傳輸速率都很高,因此對信號的抗干擾能力的要求很高。為提高系統(tǒng)可靠性,需要對布線后的PCB板上SATA時鐘信號和數(shù)據(jù)信號進行反復的仿真實驗。下面以SATA時鐘信號為例,進行PCB布線后仿真實驗。
SATA2.5最高支持3.0Gb/s的傳輸速度,因此要求所選的晶振具有300MHz以上的低壓差分時鐘輸出能力。IDT公司的ICS844071和ICS844031滿足要求,前者的輸出頻率范圍是62.5MHz~170MHz,后者的輸出頻率范圍是245MHz~340MHz。兩者在封裝上完全兼容,用戶可以根據(jù)設計的速度要求來選取。圖3是SATA時鐘接口電路圖,其中SATA_CLK和分別與XC5VLX30T 的GTP專用差分時鐘輸入引腳MGTREFCLKP和MGTREFCLKN相連。
利用844071_3v3.ibs及virtex5.ibs兩個IBIS模型,在Hyperlynx7.5環(huán)境下對SATA差分時鐘進行BoardSim差分眼圖仿真。圖4是在線長1.2in、線寬10mil、差分線距12mil、串行連接0.01μF電容以及端接100Ω電阻等條件下,考慮各種過孔、PCB板的整體分析等因素后的PRBS位模式仿真眼圖。從圖中可以看出,在100MHz頻率條件下,眼圖的睜開程度較大,符合GTP收發(fā)器的時鐘眼圖要求。
隨著FPGA邏輯單元的不斷增多、內(nèi)存容量的不斷增大、主頻的不斷提高,許多以前只能在專用芯片上才能實現(xiàn)的功能,現(xiàn)在都可以集成到一片F(xiàn)PGA內(nèi)部來完成。例如圍繞著一片Virtex-5 FXT可以搭建涵蓋圖像采集、顯示、處理、存儲、通信等功能的系統(tǒng)。SATA作為一項正蓬勃發(fā)展的存儲技術(shù),與FPGA技術(shù)結(jié)合之后可以極大地提高其本身的應用范圍,特別是為一些脫離PC機的嵌入式系統(tǒng)實現(xiàn)高速、穩(wěn)定、價格較低的存儲功能提供一種新的有效途徑。