新聞中心

EEPW首頁 > 模擬技術(shù) > 設計應用 > 串行ATA總線應用技術(shù)

串行ATA總線應用技術(shù)

作者:李冬 汪東升 薛一波 時間:2008-07-30 來源:電子技術(shù)應用 收藏

  串行ATA (-Serial ATA)是Intel代表的設備開發(fā)商開發(fā)的ATA-7串行版本 1.0。目的是把基于ATA的能夠更普遍應用于桌面、移動設備、低端服務器和網(wǎng)絡存儲領域[1]。2004年4月,IDF再次對標準1.0版本的帶寬和物理層連接器進行較大改進,并發(fā)布了增強的標準 I,以兼容SAS物理層,滿足數(shù)據(jù)中心存儲需要[1]。使基于ATA的存儲設備性能與中、低端企業(yè)級存儲設備性能重疊,適應數(shù)據(jù)生命周期和企業(yè)存儲分層等應用模式的開展。與ATA物理接口結(jié)構(gòu)改變對應,SATA硬盤在機械系統(tǒng)、傳輸模式、信號方式、伺服系統(tǒng)、磁介質(zhì)等都有一定的改變或改進,并大量借鑒技術(shù),其基本帶寬達到1.5GMps,是一種典型的“后PC”技術(shù)[2]。

本文引用地址:http://www.butianyuan.cn/article/86406.htm

1 SATA技術(shù)要點

  1.1 簡化的模型

  SATA串行鏈路接口協(xié)議借鑒了ISO/OSI和TCP/IP模型的組織方式和對象、服務、層次封裝等概念,沿用層次化的描述方法,從低向上分別為物理層、鏈路層、傳輸層和應用層四層。由于通信是在主機和存儲設備非對等的雙方進行的,所以傳統(tǒng)的peer-to-peer實體指代發(fā)生了變化。

  1.2 協(xié)議狀態(tài)機機制

  SATA協(xié)議操作主要通過通信實體協(xié)議棧的傳輸控制狀態(tài)機(Transport State Machine)和鏈路狀態(tài)機(Link State Machine)兩大核心子模塊完成,其中鏈路狀態(tài)機完成與串行線路相關的操作,傳輸控制狀態(tài)機通過把上層操作分解成可與鏈路狀態(tài)交換的一系列動作,使用接口中的子模塊資源,完成與主機平臺相關的操作。兩狀態(tài)機在傳輸數(shù)據(jù)過程中相互協(xié)調(diào)工作行為,最優(yōu)化應用資源。

  1.3 精簡高效的核心技術(shù)

  SATA是高速串行總線技術(shù),為了在區(qū)區(qū)4條數(shù)據(jù)線上得到比并行16條數(shù)據(jù)線還要高的數(shù)據(jù)傳輸率,結(jié)構(gòu)上減少協(xié)議層次,精簡協(xié)議內(nèi)容和算法復雜性;技術(shù)上各層大量采用支持高速或有利于傳輸?shù)募夹g(shù)。這些技術(shù)主要有:

  幀技術(shù) SATA采用幀作為基本傳輸單元,支持七種類型、最大長度達8192字節(jié)的幀傳輸。在幀結(jié)構(gòu)中,HOLD、HOLDA(32位)原語用于流量控制,F(xiàn)IS Content是有效載荷。

  本地命令隊列 NCQ[3](NCQ-Native Command Queuing)是在SATA I中引入的一個強大的磁盤接口技術(shù),目的在于減少主機和設備的握手次數(shù)、聚合數(shù)據(jù)中斷,減少接口事務數(shù)量。達到減少驅(qū)動器的尋道和旋轉(zhuǎn)的機械位置延遲,提高隊列負載性能的目的。NCQ是對SATA 1.0所做的諸多功能擴展中唯一與性能密切相關的技術(shù)。NCQ采用RPO磁盤旋轉(zhuǎn)位置命令調(diào)度算法,支持線程和最大達32級深度的命令隊列管理,增加Race-free狀態(tài)返回機制、中斷聚合和First Parity DMA三個新的能力。

  · 點到點的連接 SATA存儲設備與主機的連接采用點對點連接和星型拓撲,連接帶寬專用,降低了共享仲裁和配置的復雜性,避免了單點故障,改善了可擴展性和并發(fā)操作能力。

  · 全層次錯誤檢測支持 在SATA協(xié)議棧中,錯誤的檢測從低層一直延伸到頂層[4]。層之間的錯誤通過接口狀態(tài)寄存器和接口錯誤寄存器進行傳遞,每層都有錯誤發(fā)現(xiàn)、錯誤控制和錯誤報告恢復能力。根據(jù)錯誤性質(zhì)和可恢復程度,有Freeze、Abort、Retry和Track/Ignore四種處理策略。

  ·改進的線纜連接器和熱插[5] SATA的信號線和電源線獨立配置,各信號線或電源線之間使用地線分隔。盲匹配設計,頭部有額外的用于插拔定位和保護的凸出;支持帶外硬盤檢測,實現(xiàn)了完整的熱插拔支持。

  ·其他技術(shù) SATA使用字母標記來描述數(shù)據(jù)位和控制變量,使用8B/10B編碼方案把SATA未編碼的數(shù)據(jù)和控制字節(jié)翻譯成字符串。傳輸?shù)男盘柌捎门c現(xiàn)有電路兼容的(偏移值為250mv)的低電壓差動(LVD)技術(shù)。電源管理細粒度化,它不僅能對存儲設備的電源進行管理,還具有自我管理功能,能把不運行的部分置于低功耗模式。

2 SATA應用方案

  2.1 橋

  串行存儲設備定位于桌面和中低端網(wǎng)絡存儲,為了能夠在這些并行接口主導的領域開展應用,業(yè)界沿用了傳統(tǒng)的“并串兼容共存、逐漸過渡到純串行”的策略。目前實現(xiàn)這種策略的主流方案是橋。SATA/PATA橋是基于現(xiàn)有系統(tǒng)總線,通過附加SATA/PATA轉(zhuǎn)換卡,實現(xiàn)串行/并行轉(zhuǎn)換,把先進的串行設備集成到并行結(jié)構(gòu)環(huán)境中。

  橋是目前解決SATA和PATA在系統(tǒng)中共存的一個理想、便捷的方案,具有不影響原有的系統(tǒng)、開發(fā)周期短等優(yōu)勢,不足在于橋芯片沒有提高性能,卻增加了成本、板空間和功耗,同時還增加驅(qū)動器印刷電路板設計和生產(chǎn)的復雜性,所以只能作為一個過渡的解決方案。

  2.2 本地設備

  該策略是直接把SATA硬盤連入系統(tǒng)結(jié)構(gòu)中,省缺了橋方式中大量的轉(zhuǎn)換和策略延遲,最大限度發(fā)揮SATA功能特性。AHCI[6](Advanced Host Controller Interface)是一種理想的實現(xiàn)本地設備策略的方案,它通過PCI BAR(Base Address Register)實現(xiàn)原生的SATA功能。

  AHCI本質(zhì)是一種PCI類設備,在系統(tǒng)內(nèi)存總線和串行ATA設備內(nèi)部邏輯之間扮演一種通用接口的角色。這個類設備描述了一個含控制和狀態(tài)區(qū)域、命令序列入口表的通用系統(tǒng)內(nèi)存結(jié)構(gòu);每個命令表入口包含SATA設備編程信息,和一個指向(用于在設備和主機傳輸數(shù)據(jù)的)描述表的指針。

  本地設備方案通過集成SATA到芯片組實現(xiàn),它可以充分利用SATA減少信號數(shù)量的優(yōu)點,表現(xiàn)SATA的高速度,節(jié)省了板空間,增加了可靠性,減少了功耗,實施更簡單容易。不足是由于SATA接口是高速信號,給讀取信道帶來干擾,所以在設計芯片和主板時必須考慮采取適當?shù)男盘柾暾员Wo措施。由于AHCI統(tǒng)一接口的研發(fā)成功,使得支持串行ATA產(chǎn)品的開發(fā)工作大為簡化,操作系統(tǒng)和設備制造商省去了單獨開發(fā)接口的工作,取而代之的是直接在統(tǒng)一接口上進行操作,就能實現(xiàn)包括NCQ在內(nèi)的諸多功能。

  2.3 橋與本地設備方案的比較

  橋和本地設備方案除了具有上述的技術(shù)實質(zhì)差別外,還有如表1給出的多個不同之處。從比較中也可以看出橋?qū)ATA支持的局限性,從一個側(cè)面表現(xiàn)了技術(shù)對現(xiàn)狀的妥協(xié),也注定了橋?qū)儆诩夹g(shù)發(fā)展過渡階段的產(chǎn)物。

3 SATA設備編程

  3.1 SATA的數(shù)據(jù)流

  在SATA系統(tǒng)中,數(shù)據(jù)操作對象按粒度大小分為Primitive、FIS和Command三種。數(shù)據(jù)在(主機)適配器和存儲設備之間交換,參與交換的對象和數(shù)據(jù)結(jié)構(gòu)關系[7]如圖1所示。在圖中,箭頭從父對象指向子對象,數(shù)字1和n代表父對象擁有子對象的數(shù)目。適配器對象代表控制板或HBA,它有一個與適配器相關的適配器信息數(shù)據(jù)結(jié)構(gòu)。適配器可以擁有多個控制器,每個控制器有自己獨立的控制器信息,內(nèi)含控制器公共寄存器數(shù)據(jù)結(jié)構(gòu)和其他控制信息。而每個控制器又有多個供連接目標設備的端口。每個端口連接一個存儲設備,每個設備有一個深度為1或更大的命令隊列,而每條命令由與數(shù)據(jù)結(jié)構(gòu)和DMA對象相關的命令對象代表。另外,對于一些含有多口的存儲設備,允許它連到其他控制器的端口上,以提高設備的可用性和可靠性。


   3.2 SATA的編程結(jié)構(gòu)

  SATA的編程結(jié)構(gòu)如圖2(其中右部是各層次API關系),特定操作系統(tǒng)模塊(圖2中①)完成把不同操作系統(tǒng)對低層驅(qū)動器件的請求翻譯成低層器件能夠識別的格式。SATA庫模塊(圖2中②)包括通用SATA邏輯和SATA控制邏輯兩個組件,為不同操作系統(tǒng)的驅(qū)動器模塊提供獨立于操作系統(tǒng)的標準API。其中,通用SATA邏輯模塊是獨立于控制器、操作系統(tǒng)和結(jié)構(gòu)的,主要實現(xiàn)所有的算法和例程。SATA控制邏輯描述的是所有專用控制器代碼,具體內(nèi)容依賴于控制器的主控制芯片。操作系統(tǒng)服務層(圖2中③)提供一個獨立于操作系統(tǒng)的與SATA庫層的接口。它與具體的操作系統(tǒng)相關,能把上層操作系統(tǒng)類的請求翻譯成目標操作系統(tǒng)能夠識別的請求格式。


  3.3 操作系統(tǒng)對SATA應用支持

  3.3.1 Windows平臺
  Windows平臺中,橋是通過仿真Windows支持的PATA模式控制器,加載和使用PATA控制器實現(xiàn)。為了提供對SATA兩種模式的支持,微軟開發(fā)了支持最新ATA/ATAPI命令集的Ataport,該命令集支持PATA、SATA混合應用環(huán)境。應用Ataport開發(fā)的SATA控制器,一般提供兩個微口(Miniport),其中一個是支持現(xiàn)PATA控制器的默認微口驅(qū)動器,替換現(xiàn)有的PATA和SATA仿真PATA的驅(qū)動棧功能實體;另一個是支持AHCI SATA的微口驅(qū)動器,在未來的Windows系統(tǒng)中實現(xiàn)本地設備模式。在Ataport中,每個設備的工作模式通過PCI規(guī)范中基類01(塊存儲器)的子類代碼設置,當SATA設備運行在仿真并行模式時,子類代碼設置為01h;運行在本地SATA模式時,應設置為06h。要說明的是,Windows 2003 Server及以前的所有版本都不提供對本地設備的支持。

  3.3.2 平臺
  平臺對SATA設備的支持是通過借鑒成熟的PATA,并對PATA與SATA相異部分加以改進,擴充一些SATA支持的新功能實現(xiàn)。

  IDE設備驅(qū)動器模塊(ide.c)含有一些特定的設備子驅(qū)動器如ide-pci.c、ide-probe.c、ide-pnp.c、ide-dma.c、ide-proc等。根據(jù)SATA的新特性,對SATA設備的物理發(fā)現(xiàn)和傳輸進行完善和改進,即對原有的PATA的ide-probe.c、ide-dma.c子驅(qū)動器等進行修訂,其他子驅(qū)動器可以直接借鑒PATA。用戶只需通過驅(qū)動器層的可選擇配置,即實現(xiàn)對橋和本地兩種模式的支持。

4 發(fā)展趨勢

  SATA是一種新興的總線技術(shù),是PATA的理想的替代技術(shù),對它的研究和應用已成為一種趨勢。這種趨勢表現(xiàn)在:

  (1) 標準化工作將進一步加快 主導SATA標準化工作的SATA工作組、Intel、Seagate、Maxtor、IBM等在不斷完善SATA標準,現(xiàn)已有SATA1.0(a,b,c,d,等多個版本)、SATA I (Extensions to Serial ATA 1.0a, revision 1.1)等多個版本。2004年5月6日,Serial ATA工作組把原本在第二代推出的物理層帶寬3Gbps編入Serial ATA Ⅱ標準中。與新標準迅速地進展相對比,工業(yè)化步伐也急需快速跟上。關鍵工作急需統(tǒng)一驅(qū)動器、主板和PC供應商,特別是芯片廠商等對SATA通信和功能的理解,創(chuàng)造一個真正的即插即用和相互共存環(huán)境。

  (2) 協(xié)議硬件化 硬件化是減少協(xié)議的復雜性和運行效率的有效途徑,為了高效實現(xiàn)SATA功能,第二和第三層的部分或全部協(xié)議功能硬件化(集成到芯片組)將是SATA功能實現(xiàn)的主要途徑。

  (3) SATA的應用將逐步過渡到本地模式 橋應用模式是PATA向SATA遷移過程存在的一種廉價、全兼容PATA環(huán)境的方案。但隨著SATA、AHCI標準化和工業(yè)化的發(fā)展,現(xiàn)在PATA和SATA共存的現(xiàn)狀將逐步過渡到以SATA主導。

  (4) SATA將應用于網(wǎng)絡存儲領域 SATA具有高帶寬、拓撲易擴展、數(shù)據(jù)完整性、可靠性、盤體MTBF與SCSI相當、支持熱插拔網(wǎng)絡存儲等特點,具備組成低廉的RAID進入網(wǎng)絡存儲領域的條件。加之SAS(Serial Attached SCSI)支持SATA,提供STP(SATA Tunnel Protocol)最大限度地兼容SATA等等內(nèi)容,都為SATA進入網(wǎng)絡存儲領域提供了技術(shù)條件。

  隨著ATA-100/133的引入,PATA的發(fā)展已經(jīng)到了盡頭,引入SATA代替PATA是技術(shù)發(fā)展的必然趨勢。SATA引入了大量的新技術(shù),并保持與PATA兼容。Windows和操作系統(tǒng)都提供應用支持,開展應用簡單快捷。以相對較低的成本獲得比PATA高得多的性能,并為中、低端企業(yè)級存儲和其他外存應用拓展空間,將是未來存儲技術(shù)發(fā)展的主流技術(shù)之一。

參考文獻

1 Wong, William, A year of transition: Machines get faster,smaller, smarter[J],Electronic Design, v 51, n 13, Jun 16, 2003, p34~36
2 Bob Norman, Frank Lee. Implementing serial ATA in next-generation computer systems.Computer Technology Review[J].Feb 2002
3 Amber Huffman, Joni Clark. Serial ATA Native Command Queuing[S].www.intel.com. Jul 2003.
4 APT Technologies Inc, Dell Computer Corporation, Intel Cor-poration, etc. Serial ATA: High Speed Serialized AT Attach-ment(Revision 1.0a) [S] , www.serialata.org , Jan 2003.
5 Dell Computer Corporation. Intel Corporation, Maxtor Corpo-ration, etc. SerialⅡ: Cable and Connector volume 1("Final Specification") [S], www.serialata.org, Feb 2003.
6 Intel Corporation. Serial ATA: Advanced Host Controller In-terface (Revision 1.0) [S], www.intel.com, May 2004
7 Intel Corporation, Serial ATAⅡ Native Command Queuing Overview[R], www.intel.com, Apr. 2003

 

linux操作系統(tǒng)文章專題:linux操作系統(tǒng)詳解(linux不再難懂)


關鍵詞: SATA 存儲 SCSI Linux

評論


相關推薦

技術(shù)專區(qū)

關閉