摘 要:隨著綜合化航空電子技術(shù)的發(fā)展,系統(tǒng)集成度的提高,針對海量數(shù)據(jù)的存儲(chǔ)方法提出了新的要求,高速存儲(chǔ)、信號(hào)抗干擾、支持熱插拔等特點(diǎn)使SATA控制器的應(yīng)用得到了發(fā)展,本文通過對SATA3.0協(xié)議的在某系統(tǒng)中的應(yīng)用的描述,詳細(xì)介紹了SATA控制器控制原理、比較了SATA控制器與其他控制器的區(qū)別;
關(guān)鍵詞:SATA;FIS;海量數(shù)據(jù)存儲(chǔ)
數(shù)字電子地圖在航空電子系統(tǒng)中的應(yīng)用,使得原有的IDE設(shè)備已滿足不了高分辨率、高幀頻、數(shù)據(jù)量巨大的航拍圖像信息的實(shí)時(shí)存儲(chǔ),基于SATA3.0協(xié)議的SATA電子盤的理論數(shù)據(jù)傳輸速率峰值可達(dá)到600MB/S,工業(yè)級的標(biāo)準(zhǔn)SATA電子盤的容量以突破500GB,這種高吞吐量,海量數(shù)據(jù)存儲(chǔ)的優(yōu)勢,使得帶有SATA控制器的電子盤將高幀頻,大陣列的數(shù)字航拍圖得到了實(shí)時(shí)的存儲(chǔ)。而傳統(tǒng)的機(jī)械型ATA電子盤的傳輸速率僅有3.3MB/S。已遠(yuǎn)遠(yuǎn)不能滿足新一代航空電子對數(shù)據(jù)高速處理的要求。
一、SATA協(xié)議
SATA(Serial Advanced Technology Attachment)設(shè)備是一種高速的串行通信的大容量電子盤的控制器,可作為并行總線的大容量電子盤替代裝置。通過8b/10b的比特解碼技術(shù)保障了串行連接的高速性。
SATA體系結(jié)構(gòu)從上到下一共分為四層,應(yīng)用層、傳輸層、鏈接層、物理層。應(yīng)用層負(fù)責(zé)執(zhí)行ATA規(guī)范的命令。傳輸層負(fù)責(zé)在活存中按照AHCI協(xié)議規(guī)定的格式組織命令和通信數(shù)據(jù)包的格式,HBA(hostbus adapter)通過PCI總線將命令包和數(shù)據(jù)包發(fā)送到ATA設(shè)備。鏈接層負(fù)責(zé)接收傳輸層發(fā)送過來的數(shù)據(jù),并將這些數(shù)據(jù)進(jìn)行解碼,并以流的形式將數(shù)據(jù)傳輸?shù)轿锢韺?。物理層?fù)責(zé)在總線上以串行數(shù)據(jù)流的形式接收解碼后的數(shù)據(jù)。
物理層:物理層決定了SATA控制器的電器特性,本設(shè)計(jì)采用Intel公司的工業(yè)檔SATA控制器。
鏈路層:和傳輸層進(jìn)行命令交換時(shí),鏈路層不關(guān)心數(shù)據(jù)包的格式。鏈路層提供以下服務(wù):提供協(xié)商機(jī)制,仲裁主機(jī)和設(shè)備的命令沖突。為數(shù)據(jù)加上包頭和包尾標(biāo)記,使數(shù)據(jù)以包頭+幀數(shù)據(jù)+包尾的形式存在。然后對數(shù)據(jù)進(jìn)行CRC校驗(yàn),并自動(dòng)將校驗(yàn)碼添加到包尾,將整包數(shù)據(jù)同擾碼值異或后再發(fā)送給物理層。和物理層進(jìn)行命令交互時(shí),鏈路層提供以下服務(wù):刷新鏈路狀態(tài),通知數(shù)據(jù)FIFO準(zhǔn)備接收,然后接收物理層解碼后的數(shù)據(jù),刪除包頭和包尾后對數(shù)據(jù)進(jìn)行CRC校驗(yàn),對收到的數(shù)據(jù)的CRC碼同計(jì)算出來的CRC校驗(yàn)進(jìn)行比對,對錯(cuò)誤數(shù)據(jù)進(jìn)行丟包處理。
傳輸層:定義了一系列FIS(Frame Information Structure),構(gòu)造/解析特定類型的FIS的流程。描述主機(jī)和設(shè)備間交互的基本結(jié)構(gòu),主機(jī)和設(shè)備會(huì)隨收到的FIS發(fā)生狀態(tài)遷移。
命令與應(yīng)用層:應(yīng)用層定義了一系列SATA設(shè)備的附加特性。
二、命令的分發(fā)及處理
控制器主機(jī)中保存了一組設(shè)備寄存器的映射,稱為Shadow Register Block(SRB),軟件將數(shù)據(jù)讀寫命令寫入主機(jī)的SRB, 再發(fā)送給設(shè)備若設(shè)備寄存器的值被修改,則也通過FIS傳給主機(jī)更新其SRB。具體的命令及數(shù)據(jù)控制流見圖1。
三、系統(tǒng)狀態(tài)機(jī)
DMA In/Out命令采用同步方式執(zhí)行,即設(shè)備收到命令后,即刻開始執(zhí)行,主機(jī)在該命令執(zhí)行結(jié)束前不能再向設(shè)備發(fā)送命令命令采用異步執(zhí)行的方式,將命令的提交與執(zhí)行分開執(zhí)行。
在設(shè)備端:響應(yīng)命令A(yù)的準(zhǔn)備工作完畢構(gòu)造一個(gè)DMA Setup FIS,包含命令A(yù)的DMA Buffer Identifier發(fā)送FIS給主機(jī)。
在主機(jī)端:收到一個(gè)DMA Setup FIS根據(jù)DMA Buffer Identifier找到內(nèi)存空間,此內(nèi)存空間中接收/發(fā)送的數(shù)據(jù)。
當(dāng)設(shè)備接收到
這三種命令時(shí),僅將命令入隊(duì)后即返回空閑態(tài),準(zhǔn)備接收下一個(gè)命令。
一旦啟動(dòng)命令執(zhí)行,當(dāng)命令隊(duì)列不為空,且運(yùn)行命令所需的條件已具備時(shí),設(shè)備即進(jìn)入相應(yīng)的命令處理階段。
設(shè)備可以自行決定命令執(zhí)行順序,不必保證命令的執(zhí)行順序與提交順序一致。
例如:命令1,2,3分別要讀取位于磁道1、5、3上的數(shù)據(jù),則磁頭尋道軌跡:
四、結(jié)語
總的來說,隨著大容量存儲(chǔ)技術(shù)的發(fā)展,不僅僅帶動(dòng)了存儲(chǔ)容量本身的提升,也帶動(dòng)了數(shù)據(jù)分發(fā)協(xié)議的完善,數(shù)據(jù)安全性的提升,從PATA到SATA,再到SATAII。相信將來,數(shù)據(jù)存儲(chǔ)設(shè)備及其接口標(biāo)準(zhǔn)還會(huì)繼續(xù)向著更穩(wěn)定、高效方向發(fā)展。
參考文獻(xiàn):
[1] 葉朝鋒,黃松嶺,徐云.基于SATA的嵌入式高速大容量數(shù)據(jù)存儲(chǔ)系統(tǒng)設(shè)計(jì)[J].電測與儀表,2008.
[2] 尤海峰,等.大型民用飛機(jī)IMA 系統(tǒng)應(yīng)用分析及發(fā)展建議[J].電訊技術(shù),2013.
[3] 劉國紀(jì),張小華.計(jì)算機(jī)組裝與維護(hù)入門.重慶大學(xué)出版社,2007,5.
基金項(xiàng)目:國家重大專項(xiàng)資助項(xiàng)目(2012ZX01041-006)
作者簡介:
霍峰,男,遼寧鐵嶺人,研究方向?yàn)榍度胧杰浖_發(fā)技術(shù)。