嵌入式SATA存儲(chǔ)系統(tǒng)的研究
SATA硬盤作為新型的存儲(chǔ)介質(zhì),具有高速、海量、價(jià)格低廉、使用方便等優(yōu)點(diǎn)。SATA2.5協(xié)議支持3.0Gb/s的接口速度,SATA2.5硬盤的持續(xù)存儲(chǔ)速度可達(dá)80MB/s,最大存儲(chǔ)容量已經(jīng)達(dá)到750GB(如希捷ST3750640AS硬盤)。SATA硬盤已經(jīng)占據(jù)了大部分的PC機(jī)硬盤市場(chǎng),并且正向工作站、服務(wù)器的領(lǐng)域邁進(jìn)。而在嵌入式的應(yīng)用領(lǐng)域,目前的硬盤存儲(chǔ)設(shè)備依然廣泛采用傳統(tǒng)的IDE(ATA)和SCSI硬盤。由于兩者存在低速或昂貴的缺點(diǎn),因此如何將SATA硬盤存儲(chǔ)應(yīng)用到嵌入式系統(tǒng)中就成為今后相關(guān)領(lǐng)域的研究重點(diǎn)。
1 SATA2.5協(xié)議的性能與結(jié)構(gòu)
1.1 各種硬盤存儲(chǔ)接口的比較
通常硬盤根據(jù)接口類型進(jìn)行分類。硬盤接口主要分為:IDE(ATA)、Serial ATA(SATA)、SCSI、Serial Attached SCSI(SAS)和Fiber Channel(FC),此外還存在IEEE1394、USB等。
IDE、SCSI采用的是并行總線接口,隨著技術(shù)要求的不斷提高,并行技術(shù)的種種問題如信號(hào)扭曲和串?dāng)_、電纜和連接器的反射、設(shè)備的尋址能力有限等都已成為提高其數(shù)據(jù)吞吐能力的障礙。FC、SAS和SATA采用串行技術(shù),克服了并行技術(shù)存在的缺點(diǎn),大大提高了速度、可靠性和可擴(kuò)展性。而SATA硬盤相對(duì)于FC和SAS硬盤具有很大的價(jià)格優(yōu)勢(shì),并且與SAS接口兼容。
1.2 SATA2.5協(xié)議的基本性能[1]
SATA2.5是國(guó)際串行ATA組織SATA-IO(Serial ATA International Organization)制訂的最新SATA標(biāo)準(zhǔn)。其主要性能特點(diǎn)如下:
(1)傳輸速率快,由SATA1.0的1.5Gb/s發(fā)展到SATA2.5的3.0Gb/s,并且SATA-IO計(jì)劃今后幾年推出6.0Gb/s的接口協(xié)議,這比最新的并行IDE接口ATAPI-7的133MB/s的傳輸速率提高許多。
(2)電纜線寬度降低而長(zhǎng)度增加,寬度由IDE的40針/80針減少到7針,長(zhǎng)度由18英寸增加到1米。
(3)支持熱插拔,這使SATA硬盤可以作為移動(dòng)硬盤使用。
(4)提高了數(shù)據(jù)傳輸?shù)木_度,ATA-3標(biāo)準(zhǔn)引入了基于CRC(循環(huán)冗余碼校驗(yàn))的數(shù)據(jù)包出錯(cuò)檢測(cè),但是,沒有任何一種并行ATA標(biāo)準(zhǔn)提供命令和狀態(tài)包的出錯(cuò)檢測(cè)。SATA提高了CRC對(duì)數(shù)據(jù)、命令和狀態(tài)包錯(cuò)誤的檢測(cè)能力,從而提高了數(shù)據(jù)傳輸?shù)木_度。
(5)支持全速命令隊(duì)列(NQC),大大提高了硬盤的內(nèi)部數(shù)據(jù)傳輸速度。
此外,SATA2.5協(xié)議采用點(diǎn)對(duì)點(diǎn)結(jié)構(gòu),降低了磁盤陣列的出錯(cuò)風(fēng)險(xiǎn);降低了工作電壓,減少了功耗;向下軟件兼容并行ATA,橫向兼容SAS協(xié)議。
1.3 SATA2.5協(xié)議的體系結(jié)構(gòu)
SATA2.5采用四層結(jié)構(gòu):應(yīng)用層、傳輸層、鏈接層和物理層。其中,應(yīng)用層負(fù)責(zé)所有ATA命令的執(zhí)行,包括對(duì)控制命令模塊寄存器的訪問;傳輸層負(fù)責(zé)在主機(jī)和硬盤設(shè)備之間以幀信息結(jié)構(gòu)(FIS)的形式傳輸控制命令和數(shù)據(jù);鏈接層負(fù)責(zé)對(duì)數(shù)據(jù)進(jìn)行8/10編解碼,根據(jù)需要從結(jié)構(gòu)幀中提取有效數(shù)據(jù),或者將控制字插入到結(jié)構(gòu)幀當(dāng)中;物理層負(fù)責(zé)在串行數(shù)據(jù)線上傳輸已編碼的數(shù)據(jù)。
2 Virtex-5 FPGA芯片簡(jiǎn)介[2]
Virtex-5系列FPGA芯片[2]是Xilinx公司最新推出的高端產(chǎn)品,它采用65納米工藝,1.0V核電壓,具有靈活的時(shí)鐘管理模塊,100Mb/s~3.2Gb/s的串行連接功能,550MHz的DSP硬核,內(nèi)置36KB的塊RAM, I/O引腳多達(dá)1 200個(gè)。目前,Virtex5系列FPGA有LX、LXT和SXT三款平臺(tái),分別面向高性能邏輯功能、高性能邏輯功能和高速串行連接,以及高速串行連接和DSP功能。
RocketIO GTP收發(fā)器是專門為Virtex-5 FPGA實(shí)現(xiàn)高速低功耗串行連接而設(shè)計(jì)的,具有高速、穩(wěn)定的特點(diǎn),可以實(shí)現(xiàn)PCI Express、FC、SATA等高速接口的物理層協(xié)議,而不用外置子板,從而節(jié)省了空間和成本。
3 SATA2.5協(xié)議在FPGA上的實(shí)現(xiàn)[3][4]
3.1 鏈接層在FPGA內(nèi)的實(shí)現(xiàn)
鏈接層發(fā)送或者接收混合了控制原語的數(shù)據(jù)流,在數(shù)據(jù)傳輸過程中,CRC被加入或者提取出數(shù)據(jù)流,同時(shí)8b/10b編解碼被執(zhí)行。圖1給出了鏈接層在FPGA內(nèi)部的邏輯結(jié)構(gòu),左邊與傳輸層相連,右邊與物理層相連。
在核時(shí)鐘域里,數(shù)據(jù)寬度是32位;而在PHY時(shí)鐘域里,數(shù)據(jù)寬度是10位。在發(fā)送過程中,異步接口每四個(gè)PHY時(shí)鐘發(fā)送一次雙字,每個(gè)PHY時(shí)鐘內(nèi)一個(gè)8位數(shù)據(jù)塊通過8b/10b編碼器生成10位數(shù)據(jù)塊,并被連續(xù)串行發(fā)送到物理層。接收過程剛好與此相反。原語是由雙字組成的實(shí)體,用于控制和提供串行連接的狀態(tài)。在FPGA內(nèi)部,原語專門由原語發(fā)生器提供,主控制器根據(jù)上層命令控制原語的產(chǎn)生。CRC發(fā)生器多項(xiàng)式為:
評(píng)論