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