美女胸被狂揉扒开吃奶的网站o_亚洲日韩av中文无码专区_东京热激情无码专区_久久HEZYO久综合亚洲色_欧美成人高清视频_国产精品乡下勾搭老头_欧美一级v片在线播放_成人午夜国产视频_男女猛烈无遮挡免费动态图_亚洲一区国产精品视频

電線電纜網(wǎng) > 數(shù)據(jù) 高頻線纜 > 光大祖業(yè) 奉子成婚——SAS與SATA-Ⅱ?qū)n}(完整版)

光大祖業(yè) 奉子成婚——SAS與SATA-Ⅱ?qū)n} - 無圖版

maxxiao --- 2010-08-27 23:08:46

1

光大祖業(yè) 奉子成婚——SAS與SATA-Ⅱ?qū)n}

前言

2002年的7月29日,《計算機世界》報第28期B1~B11版發(fā)表了筆者的《ATA串起SCSI——存儲接口世紀聯(lián)姻》專題,這也是國內(nèi)媒體上第一組介紹串行連接SCSI(Serial Attached SCSI,SAS)的原創(chuàng)文章。由于當時SAS尚處于規(guī)格制訂的早期階段,很多工作都還沒有“浮出水面”,因此該專題以ATA和SCSI的淵源入手,引出Serial ATA(SATA)的串行誘惑與并行SCSI的總線危機,最后1/3的篇幅才是討論SAS問世背景、簡要規(guī)格及市場定位的內(nèi)容。

隨后SAS進入產(chǎn)品設(shè)計階段,標準制訂工作取得了長足的進展。2003年1月20日,SCSI商業(yè)協(xié)會(SCSI Trade Association,STA)在Server I/O 2003上宣布與Serial ATA Ⅱ工作組達成合作,共同致力于SAS與SATA硬盤的系統(tǒng)級兼容。SAS的物理接口設(shè)計已經(jīng)確定,各相關(guān)廠商陸續(xù)走上前臺。

在追蹤SAS技術(shù)動態(tài)的同時,筆者也一直關(guān)注著Serial ATA Ⅱ。作為Serial ATA針對入門級服務器和網(wǎng)絡(luò)存儲設(shè)備需要進行的功能擴展,Serial ATA Ⅱ?qū)⑦M入企業(yè)級市場作為Serial Attached SCSI在低端的補充,ATA和SCSI交匯之處不再涇渭分明。筆者受一位臺灣同行網(wǎng)名“疑似奉子成婚”的啟發(fā),用“奉子成婚”來形容Serial Attached SCSI與Serial ATA Ⅱ之間的關(guān)系,出發(fā)點固然是Serial Attached SCSI在事實上兼容Serial ATA后才宣布達成官方合作,真正的用意卻指向雙方在企業(yè)級存儲市場高低搭配的互補關(guān)系。通過對各種相關(guān)技術(shù)規(guī)范的發(fā)掘,筆者整理出底層接口、設(shè)備性能和子系統(tǒng)三條主線,希望這種剖析方式能夠讓大家對Serial Attached SCSI和Serial ATA Ⅱ有更為深入的了解。

<DIV align=center>

特別提示

Marty Czekalski SCSI商業(yè)協(xié)會董事會成員/副總裁

Serial Attached SCSI工作組創(chuàng)立者之一,執(zhí)委會成員

Maxtor公司接口架構(gòu)主管

    T10委員會的網(wǎng)站一直在更新Serial Attached SCSI的技術(shù)規(guī)范,通過其他途徑也可以搜集到不少相關(guān)資料,但在一些關(guān)鍵技術(shù)細節(jié)的理解上筆者還不是很有把握。通過與Marty Czekalski先生的多次E-mail交流,筆者得到了足夠詳盡的解釋,特在此表示感謝。

[maxxiao 在 2010-8-27 23:18:37 編輯過]

maxxiao --- 2010-08-27 23:10:17

2

光大祖業(yè) 奉子成婚——SAS與SATA-Ⅱ

這是一個串行的時代

串行革命的先行者USB和IEEE 1394已經(jīng)先后取得了成功,PCI Express也正如推廣者所愿高速向黎明挺進。如果說接口互連技術(shù)從并行向串行的過渡要遵循自外而內(nèi)的順序,那么介于內(nèi)外之間的存儲設(shè)備接口應該恰處在“串行進行時”。

事實的確如此。低端的ATA“笨鳥先飛”,三年前就開始行動的Serial ATA已于去年“修成正果”,正在準備迎接收獲季節(jié);Serial Attached SCSI雖起步較晚,但對Serial ATA的“收編”顯著加快了標準制訂的進度,有望在2004年成為堪與PCI Express比肩的熱點。

祖宗之法終須改

經(jīng)過20年的發(fā)展(截止到2001年,ATA的歷史還沒有這么長,詳情參見《ATA串起SCSI——存儲接口世紀聯(lián)姻》專題),SCSI和ATA在硬盤接口領(lǐng)域已占據(jù)了絕對的統(tǒng)治地位:個人存儲市場(桌面型和移動型硬盤)完全是ATA的天下,企業(yè)級硬盤采用SCSI的比例也超過80%。

SCSI和ATA的成功書寫了并行接口的輝煌,然而后者的總線結(jié)構(gòu)頻率提升困難、效率低下,動輒數(shù)十根的連線也不利于設(shè)備小型化和高密度存儲,已經(jīng)不能適應21世紀的要求。相比之下,大幅度減少連線的串行接口不僅有便于設(shè)計、利于機內(nèi)空氣流通的優(yōu)點,更可以在點對點連接的基礎(chǔ)上演變出高效且易于擴展的交換架構(gòu),是(至少)未來十年的發(fā)展方向。

基于上述共識,Ultra ATA/100和Ultra320 SCSI先后被定位成并行接口的收山之作。既然要轉(zhuǎn)向串行,包括連接器和線纜在內(nèi)的物理層必然會隨之改變,但一定要與原來的并行接口保持軟件兼容,這樣現(xiàn)有的操作系統(tǒng)和軟件都無需改變,保護了開發(fā)商和用戶的投資。

當然,軟件兼容只是幫助新一代ATA和SCSI接口完成從并行向串行平滑遷移,順利繼承“祖業(yè)”的手段,若要充分發(fā)揮串行接口的優(yōu)勢、擴大各自原先的適用范圍,可以再陸續(xù)增加新的功能、改善性能(成為并行ATA和SCSI命令的所謂“超集”),并隨著時間的推移逐漸淘汰原有標準中過時的部分,即盡可能以漸近的方式完成變革——完全推倒重來不是開放市場的風格。

成婚妙舉獲利多

雖說同為并行,SCSI和ATA的高下之分還是很明顯的。這也難怪,ATA接口的“始作俑者”初衷是以盡可能低的成本提供可以接受的性能,本就沒有什么長遠打算。經(jīng)過不斷的規(guī)格擴充后,ATA標準不經(jīng)意中已在市場上活躍了十多年,然而最初的“因陋就簡”限制了其進一步發(fā)展的空間:不要說連接距離(46厘米)和設(shè)備數(shù)目(雙通道,主/從配置)難以滿足下一個十年的要求,就連帶寬的提升也變得步履維艱——如果沒有增加40根地線這一招,真不知Ultra ATA/66該怎樣實現(xiàn)。

窮則思變。在Ultra ATA/66的熱潮尚未褪去的2000年春季,串行ATA(Serial ATA,SATA)被提上了議事日程。Serial ATA 1.0參考了ATA/ATAPI-5標準,與Ultra ATA的軟件兼容相對比較容易,難的是硬件接口要重新設(shè)計,因此最終規(guī)范直到2001年秋季才正式發(fā)布,前后歷時18個月。在此期間,并行ATA經(jīng)過Ultra ATA/100的過渡才勉強實現(xiàn)了接口帶寬的倍增(象征意義大于實用價值的Ultra ATA/133)。

ATA相比,SCSI改走串行“未雨綢繆”的成份更大一些。在Ultra320 SCSI還未產(chǎn)品化、Ultra640 SCSI尚處制訂中的2001年冬季,Compaq、IBM、LSI Logic、Maxtor和Seagate主動出擊,宣布要開發(fā)Serial Attached SCSI。Serial Attached SCSI支持SCSI主要命令(SCSI Primary Commands-3,SPC-3),硬件接口則獨出心裁地“先斬后奏,偷食禁果”——采用增強的Serial ATA物理層(添加第二端口支持),這樣做的好處至少有二:

首先,開發(fā)時間得到了有效的控制。如果說Serial ATA是ATA的一場革命,那么Serial Attached SCSI就是SCSI“翻天覆地”的大革命——雙端口、多路物理連接和從單一總線轉(zhuǎn)至分級交換架構(gòu),復雜程度變化之大遠非Serial ATA所能比擬,如果物理層還要白手起家,就難保不會像Serial ATA一樣遭遇進度延期(大約一年)的困擾。正是憑借對Serial ATA物理層的“拿來主義”,一年多來Serial Attached SCSI的前進步調(diào)基本上與擬定好的時間表(見下圖)相吻合,曾經(jīng)有可能為其充當“救火隊員”的Ultra640 SCSI也不再有人提起。反觀ATA一方,業(yè)內(nèi)本已達成從Ultra ATA/100直升Serial ATA的共識,難耐寂寞的Maxtor還是請出Ultra ATA/133“秀”了一把。

其次,SATA外圍設(shè)備(特別是硬盤)將能夠用于SAS環(huán)境中。長期以來,ATA只是在功能上被視為SCSI的子集,兩者之間并不兼容。如今SAS在軟硬件層面上都涵蓋了SATA,企業(yè)級用戶可以在同一環(huán)境中混用SAS(提高性能)和SATA(降低成本)驅(qū)動器,既提高了靈活性又可避免重復投資,無疑是一項創(chuàng)新之舉。

兩相比較,SAS對SATA的兼容顯然更為重要。正因如此,SAS在標準制訂過程中一直緊跟ATA方面的變化,SAS規(guī)范所參考的ATA規(guī)范從00a修訂本中的ATA/ATAPI-6和ATA/ATAPI-7前進至05修訂本中的ATA/ATAPI-7 V1、ATA/ATAPI-7 V3(Serial ATA)及Serial ATA Ⅱ: Extensions to Serial ATA 1.0就是一例,而SCSI商業(yè)協(xié)會與Serial ATA Ⅱ工作組共同致力于SAS與SATA硬盤系統(tǒng)級兼容合作的意義更超越了簡單的“名份”范疇。

[maxxiao 在 2010-8-27 23:19:23 編輯過]

maxxiao --- 2010-08-27 23:10:56

3

魔高一尺 道高一丈——ATA與SCSI再戰(zhàn)串行

 

從應用的層面講,ATA與SCSI的關(guān)系是互補遠大于競爭,存在的價值不應有高下之分;然而若深入挖掘技術(shù)細節(jié),孰強孰弱、誰先誰后的討論卻并非全無意義。

歷史:基礎(chǔ)制勝

SCSI的問世時間早于ATA,規(guī)格也更為完善,但并不意味著在新技術(shù)的應用上總是SCSI走在前面。這方面比較典型的例子是雙沿傳輸(DT,原理相當于DDR)和CRC校驗,1996年出臺的Ultra ATA/33(又稱Ultra DMA/33)就已經(jīng)具備,比SCSI早了整整兩年(Ultra3 SCSI)。

某些功能則是難分伯仲。仍以CRC校驗為例,最初只有數(shù)據(jù)相(Data Phase)能夠享受這個待遇,后來ATA和SCSI不約而同地將其增強為對包括命令和狀態(tài)在內(nèi)的全部傳輸內(nèi)容提供保護(下圖)——從標準制訂到產(chǎn)品化,Serial ATA 1.0和Ultra320 SCSI在時間上都相差無幾。

CRC范圍的變遷

然而在最基本的底層架構(gòu)上,先天不足的ATA怎么努力也無法縮小與SCSI的差距。LVD(Low Voltage Differential,低電壓差分),一項不算復雜但卻需要雙倍數(shù)據(jù)線(分別傳輸正、負電壓信號)的技術(shù),成為了決定SCSI和并行ATA(Parallel ATA,PATA)發(fā)展空間的重要因素。LVD增強了信號的抗干擾、抗衰減能力,有助于延長連接距離,保證高頻傳輸?shù)目煽啃。站在LVD的角度來考慮問題,就容易理解為何SCSI不急于采用雙沿傳輸和CRC校驗了。

如果不采用雙沿傳輸,PATA要實現(xiàn)33MB/s的帶寬,運行頻率就會達到16.6MHz,可是PATA的40根數(shù)據(jù)線在運行頻率逼近11.1MHz的時候就已無法保證傳輸質(zhì)量,而雙沿傳輸使Ultra ATA/33無需提高運行頻率(8.3MHz)即可達到同樣的目的,CRC校驗的引入則有利于維護數(shù)據(jù)完整性。不過,隨著帶寬的再次翻倍(66MB/s),11.1MHz終被突破,因此Ultra ATA/66不得已搬出了增加40根地線的設(shè)計,效果雖不能與LVD相提并論,但總算能夠?qū)勖娱L至Ultra ATA/133(運行頻率33.3MHz)。

反觀Ultra2 Wide(U2W)SCSI,80MB/s的帶寬都不需要雙沿傳輸,因為LVD線纜足以應付40MHz的運行頻率,沒有CRC校驗數(shù)據(jù)質(zhì)量也不差。Ultra160 SCSI采用了雙沿傳輸和CRC校驗,所以運行頻率保持不變,線纜也不用更換;Ultra320 SCSI的運行頻率提高到了80MHz,理論上要求用專門的線纜,但由于線纜的結(jié)構(gòu)并沒有實質(zhì)性改變,因此質(zhì)量較好的LVD線纜仍然可以使用(只是連接距離可能會受到一些影響)。

從連接距離、設(shè)備數(shù)目到多任務操作能力,SCSI建筑在底層架構(gòu)上的優(yōu)勢是PATA無法追趕的,LVD不過是其中一例。

[maxxiao 在 2010-8-27 23:20:14 編輯過]

maxxiao --- 2010-08-27 23:11:38

4

變法:強者愈強

PC處理能力的增強帶來了其應用范圍的擴大,對存儲設(shè)備接口的要求也水漲船高——至少,僅靠廉價是不行了。

Serial ATA(SATA)的串行點對點連接在保持廉價特色的同時突破了PATA的局限:簡直是串行接口必備的LVDS(低電壓差分信號)技術(shù)將連接距離提高了一倍,1米的長度完全能夠滿足PC機內(nèi)存儲的要求;每個端口可連接的設(shè)備數(shù)目雖然從2個減少為1個,但小巧的連接器卻讓同樣面積所能容納的端口數(shù)量成倍增加,結(jié)局不言自明;點對點連接構(gòu)成相對先進的星形拓撲,可以顯著改善并發(fā)操作能力。在發(fā)展空間上,令PATA難以逾越的150MB/s(1.5Gb/s,8b/10b編碼)只是SATA的起步帶寬,后續(xù)將會提高到300MB/s和600MB/s(下圖)。

SAS和SATA的發(fā)展路線圖

盡管SATA與(并行)SCSI相比仍存在全方位的差距,但已不像PATA那么明顯,SCSI陣營對此焉能視而不見?何況并行SCSI繼續(xù)發(fā)展的潛力也很有限,步ATA的后塵轉(zhuǎn)向串行是遲早的事。Serial Attached SCSI(SAS)吸納SATA的物理層設(shè)計是一大妙招,然而怎樣運用同樣的串行點對點連接營造出比SATA更為復雜的拓撲結(jié)構(gòu),從而滿足企業(yè)級存儲系統(tǒng)對性能、可靠性和可用性的要求,難度也是顯而易見的。

SAS不僅是在SATA的物理層上執(zhí)行SCSI命令集那么簡單,它還具備FC(Fibre Channel)的某些特性,這使其超越了SATA和(并行)SCSI的范疇(表1)。 

1:SATA、SAS和FC-AL主要特性對比

雙端口  SAS的數(shù)據(jù)幀基于FCP(FC Protocol),還對SATA的物理層進行了增強——(在外圍設(shè)備端)添加第二端口支持,形成符合高可用性要求的雙端口(dual port)。

全雙工  并行ATA和SCSI都是發(fā)送和接收共用一組數(shù)據(jù)線,因此發(fā)送和接收不能同時進行,即所謂的半雙工(half duplex);SATA數(shù)據(jù)線由兩條傳送方向相反的差分信號對(LVDS,共4根)組成,發(fā)送(Tx)和接收(Rx)各走一路,為全雙工(full duplex)提供了物理上的可能。不過,SATA在一對信號線上傳送數(shù)據(jù)的同時需要用另一對信號線返回流控(flow control)信息,所以仍然是半雙工;SAS則將一路數(shù)據(jù)所需的流控信息與反向傳送的數(shù)據(jù)混合在一起,從而能在同樣的數(shù)據(jù)線上實現(xiàn)全雙工(下圖)。

SAS的全雙工工作示意圖

寬鏈接  物理鏈接(physical link)是SAS中的一個基礎(chǔ)概念,一條物理鏈接包括兩對差分信號線(TxRx,即一條SATA線纜),傳輸方向相反,在兩個物理Phy之間形成通路。兩個SAS端口之間可以建立起由多個物理鏈接構(gòu)成的wide link(圖4),相應的端口也被稱做wide port,可以表示為N-wide link和N-wide port,N取值在1~4之間,代表物理鏈接的數(shù)量。1-wide link/port即narrow link/port,這方面的典型例子是硬盤,雙端口意味著兩個獨立的narrow port(雖然規(guī)格中并沒有將硬盤端口嚴格限定在1-wide,但單個物理鏈接所能提供的帶寬已經(jīng)明顯超出硬盤的內(nèi)部傳輸率,還可以降低成本和設(shè)計復雜性),不能配置成一個2-wide port(2寬度端口)。

寬鏈接和寬端口

類似于PCI Express(×1~×32),SAS支持寬鏈接的主要出發(fā)點是獲得成倍的帶寬,這種并聯(lián)的方便性顯然要拜串行技術(shù)所賜。

帶寬  或許是考慮到2004年第一批SAS產(chǎn)品問世時SATA很可能已推出3.0Gb/s的第二代規(guī)格,SAS 1.0/1.1采取了直接支持3.0Gb/s并向下兼容1.5Gb/s的策略。Marty Czekalski承認,包括7月8日T10會議上LSI Logic與Maxtor聯(lián)合演示系統(tǒng)在內(nèi)的某些初期原型產(chǎn)品的確運行在1.5Gb/s,但都是在FPGA和現(xiàn)貨供應PHY(物理層)芯片基礎(chǔ)上開發(fā)的,預計2003年年底將會有采用完全集成3Gb/s PHY芯片和ASIC設(shè)計的設(shè)備出現(xiàn),并逐漸被業(yè)內(nèi)接受。

量產(chǎn)的SAS設(shè)備會具有每端口3Gb/s的數(shù)據(jù)速率,SAS協(xié)議還允許全雙工操作,這意味著一臺雙端口驅(qū)動器能夠達到12Gb/s的峰值吞吐率(理論上限,持續(xù)時間取決于驅(qū)動器內(nèi)部結(jié)構(gòu)和緩存帶寬),而4-wide port(4寬度端口)更可以獲得24Gb/s(合2.4GB/s)的帶寬——超過PCI-X 2.0。

連接距離  為了提高連接距離,SAS發(fā)送和接收信號的電壓范圍都比SATA大為提高(表2)。在具體的連接距離指標上,最初宣稱是10米,新的資料則是大于6米(外部線纜),似乎與信號速率從1.5Gb/s提高到3.0Gb/s有關(guān)。需要指出的是SAS規(guī)范里面并沒有嚴格限定線纜長度,而是靠發(fā)送水平和接收敏感度來考察,(制造商)通過檢測線纜特性來判定其所能達到的距離——高質(zhì)量線纜可以連接得更遠,當然成本也更高,F(xiàn)在SAS線纜連接距離的要求已經(jīng)提高到8米(制造商仍可以花費更多,用更高質(zhì)量的線纜求得更長的距離),通過3個擴展器(Expander)之后,SAS的連接距離能夠超過32米,與Ultra160/320 SCSI的12米(15個設(shè)備)或25米(點對點)相比雖沒有明顯優(yōu)勢,但也足以應付機內(nèi)存儲設(shè)備連接和近距離DAS的要求了。

 2:SAS和SATA物理層的兼容性

[maxxiao 在 2010-8-27 23:20:57 編輯過]

maxxiao --- 2010-08-27 23:12:15

5

演變——SATA-Ⅱ和SAS 1.1

Serial ATA 1.0定義了Serial ATA接口的連接器、線纜、物理層和協(xié)議,桌面計算平臺是其主要應用目標。在2002年春季IDF上,Serial ATA 1.0的發(fā)起者APT、Dell、Intel、Maxtor和Seagate又牽頭成立了Serial ATA Ⅱ工作組,負責開發(fā)具備服務器和網(wǎng)絡(luò)存儲設(shè)備所需功能及下一代信號速率的Serial ATA Ⅱ規(guī)范,而緊隨其后的Serial Attached SCSI也沒有滿足于1.0版。

Serial ATA Ⅱ兩步走

Serial ATA Ⅱ規(guī)范分為兩個階段,第一階段是在Serial ATA 1.0的基礎(chǔ)上增加服務器和網(wǎng)絡(luò)存儲設(shè)備所需功能,即“Serial ATA Ⅱ: Extensions to Serial ATA 1.0”(簡稱Extensions to SATA 1.0),已經(jīng)于2002年10月16日完成1.0修訂本,是Serial ATA Ⅱ工作組開發(fā)的眾多規(guī)范中第一個亮相的。Extensions to SATA 1.0的所有功能(下表)都是可選的(非強制性),只要具備任何一個功能都可以聲明“Supports SATA Extensions”(支持SATA擴展),相應的產(chǎn)品則被稱為“SATA 1.5 Gb/s product x supports SATA Extensions”或“SATA 1.5 Gb/s product x supports SATA Extensions a, b, &c”。根據(jù)Serial ATA命名規(guī)則,產(chǎn)品不能叫做“SATA 1.0”或“SATA Ⅱ”——“SATA 1.5 Gb/s”或“SATA 3.0 Gb/s”既表明了是哪一代SATA規(guī)范,還可以避免引起混淆。

第二階段的主要目標是將信號速率翻倍為3.0Gb/s,按計劃應該在2003年下半年定義,2004年下半年進入產(chǎn)品研發(fā)。其他最初賦予第二階段的任務,不是已經(jīng)公布規(guī)范(“有效連接大量設(shè)備的能力”,包括Serial ATA Ⅱ: Port Multiplier和Ganged connector),就是與SAS關(guān)系密切(“拓撲支持雙主機失效保護”),詳細介紹參見后文。

Serial ATA Ⅱ: Extensions to Serial ATA 1.0的新增功能

×——需要改進以支持相應功能

Serial Attached SCSI內(nèi)外皆修

2002年10月23日,Intel向T10委員會遞交了讓SAS支持Serial ATA Ⅱ: Extensions to Serial ATA 1.0的提議。11月7日,T10開始考慮自己的下一代——Serial Attached SCSI - 2(SAS-2),并計劃于2004年12月對外公布草案。

然而,進入2003年后不久,“SAS-2”的字樣就從T10網(wǎng)站的工作草案文檔區(qū)消失了——被Serial Attached SCSI-1.1(SAS-1.1)取而代之。對此STA(SCSI商業(yè)協(xié)會)常務董事Michael T. LoBue的解釋是,那個“SAS-2”與SAS 1.0相比變化不是很大,用“SAS-1.1”表達更符合實際。

2003年7月10日,T10公布了SAS 1.1工作草案的第一個版本(00修訂本),它的絕大部分內(nèi)容與SAS 1.0的05修訂本相同,只有少量改進,信號速率不變。改進之處包括:

1.增加4-wide內(nèi)部連接器(對應SATA Ⅱ的Ganged connector);

2.簡化的第一次突發(fā)(可選功能,不利用它對硬盤和磁帶機等設(shè)備沒有影響);

3.鏈路/傳輸層重試:在SAS 1.0中,如果傳輸數(shù)據(jù)到設(shè)備的過程中發(fā)生錯誤,將導致整個傳輸終止,傳輸重試,這種機制與硬盤的行為相匹配,很少甚至根本不會影響整個系統(tǒng)的性能。然而,對流式磁帶驅(qū)動器來說,重發(fā)數(shù)據(jù)卻會因磁帶回卷而造成性能顯著下降。為了獲得一個基本穩(wěn)定的規(guī)范并加快SAS系統(tǒng)推向市場的速度,制訂SAS 1.0時沒有過多考慮這個問題。SAS 1.1增加了鏈路/傳輸層重試,可以改善使用磁帶驅(qū)動器時的性能。

4.改正了在SAS 1.0中發(fā)現(xiàn)的所有錯誤。

預計SAS 1.1將在SAS 1.0之后9個月左右通過標準審查,SAS 2.0的時間表目前還不清楚,惟一確定的是其數(shù)據(jù)速率將達到6Gb/s。Marty Czekalski估計大約還要等上兩年,不會早于SAS 1.1。

也許作為SAS象征的標志(logo)改變更為顯著。最初的標志(圖)是在工作組初期設(shè)計的,描繪了一個連接著多個設(shè)備的擴展器(Expander),當時工作組只有5個成員,主要精力都放在開發(fā)技術(shù)規(guī)范上,標志的挑選程序沒有過多考慮市場宣傳的要求。在2002年5月規(guī)范草案轉(zhuǎn)交T10開發(fā)之后,代替工作組推廣SAS的STA認為,最初的標志在顏色和風格上不能與STA或SATA的標志形成互補,有必要改用一種與所有標志同時在介紹材料中出現(xiàn)時仍清晰可見的風格。于是,經(jīng)過更換顏色和部分變形之后,SAS標志就成了今天這個樣子(見下圖)。

[maxxiao 在 2010-8-27 23:21:37 編輯過]

maxxiao --- 2010-08-27 23:12:55

6

包容有道——SAS環(huán)境中的SATA設(shè)備

SAS兼容SATA的能力非常重要,系統(tǒng)集成商和用戶可以根據(jù)實際需要在大容量/高性價比的SATA硬盤與高性能/高可用性的SAS硬盤之間自由選擇。不過,串行互連技術(shù)促進存儲接口融合說起來容易,但真正實現(xiàn)起來要解決的問題還是很多的。

SAS對SATA的支持可以從軟件和硬件兩個層面來討論,其中雙端口格外值得我們關(guān)注。

STP鋪路 OOB識別

SAS定義了3個協(xié)議:串行SCSI協(xié)議(Serial SCSI Protocol,SSP),全雙工,讓SCSI運行在增強的SATA物理層上;串行ATA隧道協(xié)議(Serial ATA Tunneled Protocol,STP),為SATA增加多目標尋址和多發(fā)起者訪問,以適應SAS環(huán)境的需要;串行管理協(xié)議(Serial Management Protocol,SMP),用于發(fā)現(xiàn)和管理擴展器(Expander)。

擴展器把SATA的點對點連接擴展至SAS的多發(fā)起者/多目標,然而SATA協(xié)議僅支持單發(fā)起者/單目標,STP的任務就是讓發(fā)起者能夠通過擴展器訪問SATA目標。STP在發(fā)起者與最遠的、也就是連接SATA設(shè)備的擴展器端口(STP目標端口)之間建立起一條通路(隧道),傳輸標準的SATA 1.0幀,因此在SATA設(shè)備看來,自己連接的就是SATA主機適配器。如果發(fā)起者端口識別出與其直接相連的是一臺SATA設(shè)備,則只使用SATA協(xié)議通信。

發(fā)起者端口怎么知道自己連接的是SATA設(shè)備或SAS設(shè)備呢?在連接初始化時,發(fā)起者送出OOB(Out of band)慢速脈沖信號,檢測目標對COMSAS脈沖的響應情況——如果目標也返回COMSAS脈沖,就是SAS設(shè)備,反之即為SATA設(shè)備。需要注意的是,由于在SAS協(xié)議中發(fā)起者和目標是對等的,外圍設(shè)備(如硬盤)也可以作為發(fā)起者,主動送出COMSAS脈沖,向目標(主機適配器)表明自己的身份。以硬盤為例,能否生成COMSAS脈沖即辨別SAS與SATA的依據(jù)。

STP發(fā)起者端口經(jīng)過OOB協(xié)商確認與自己相連的是SATA設(shè)備后即進入SATA模式,嚴格遵循SATA主機適配器的行為規(guī)范。STP并不關(guān)心SATA FIS(Frame Information Structure,幀信息結(jié)構(gòu))的內(nèi)容,SATA命令排隊可以在FIS中傳輸——前提當然是STP發(fā)起者端口和SATA設(shè)備必須支持命令排隊功能。不過,SATA Ⅱ中的其他擴展功能不是被STP排除在外,就是以另外的方式實現(xiàn)。

傳輸完成后由SAS主機適配器或擴展器決定是否用STP斷開與SATA設(shè)備的連接,以后需要時再重新連接。整個過程中該SATA設(shè)備始終以為自己通過正常的流控機制直接連在某個SATA主機適配器上,實際情況卻是SAS主機適配器進行了SATA“翻譯”工作。在Windows操作系統(tǒng)中,這個SAS主機適配器將與使用Miniport驅(qū)動程序的SATA主機適配器一樣被歸類為SCSI控制器。

背側(cè)添丁 雙口防患

從時間上看,SAS連接器(包括設(shè)備端插頭及背板和內(nèi)部線纜插座)的設(shè)計方案要滯后于線纜——第二端口的安放位置似乎比并聯(lián)數(shù)據(jù)線更費思量。

SAS與SATA連接器示意圖

難者不會,會者不難。SFF-8482內(nèi)部附屬連接器規(guī)范將原本分離的SATA端口和電源插頭相連,SAS第二端口位于連接處的背側(cè)(插座則是對側(cè),見上圖)。第二端口比這塊跨接區(qū)域略寬,但也只有SATA端口(也即SAS第一端口)的2/3,因此其7個接腳及間距均明顯變窄(下圖)。與SAS插頭的“鐵板一塊”相對應,SAS插座也“全線貫通”(SATA插座在SAS第二端口的位置有一突起),這樣既可以保證SATA設(shè)備插入SAS插座,又能避免誤將SAS設(shè)備插入SATA插座。

SAS連接器就是SATA連接器背面加上第二端口

由于單端口的帶寬(3.0Gb/s,甚至1.5Gb/s)已經(jīng)能夠滿足硬盤的要求,SAS硬盤增加第二端口并不是為了支持寬鏈接(2-wide),而是通過給它們賦予不同的SAS地址(WWN),讓雙端口分屬兩個(冗余的)域以防系統(tǒng)出現(xiàn)單點故障,從而提高可用性。

SAS環(huán)境中,SATA設(shè)備同樣有高可用性需求,即允許兩個主機適配器連接到一臺SATA硬盤上,避免主機適配器成為單點故障源(圖3)。與SAS的雙端口不同,在任何時刻都只能由一個主機適配器獨享此SATA硬盤的控制權(quán)(由系統(tǒng)軟件檢測哪個主機適配器處于“活動”狀態(tài))。這種通路切換機制由兩端口到單端口的適配器——端口選擇器(Port Selector,PS)——實現(xiàn),SATA Ⅱ工作組負責開發(fā)規(guī)范,工作草案已經(jīng)遞交T10網(wǎng)站供參考。在任何時刻只有一個端口處于活動狀態(tài),在切換端口之前硬盤的所有行為都必須停止(隊列中無請求)。端口選擇器的設(shè)計取決于子系統(tǒng)廠商,可以兩邊分別是SAS(雙端口)和SATA連接器,也有可能把端口選擇器放在背板上,或者干脆將其集成到硬盤上配合統(tǒng)一的背板連接器使用。SATA Ⅱ工作組還有意將端口選擇器用于靜態(tài)負載均衡。不過,這樣一來也對該SATA硬盤的工作周期(7×24)和平均無故障時間(MTBF)提出了更高的要求。

防止單點失效的典型SAS配置

為了更好地兼容SATA,SAS的物理層也提供了對時鐘頻譜擴展(Spread Spectrum Clocking)的支持。時鐘頻譜擴展通過將時鐘發(fā)生器脈沖波的尖峰衰減為相對平滑的曲線來降低EMI(ElectroMagnetic Interference,電磁干擾),SATA加入這項功能是為了滿足PC對電磁輻射的嚴格要求;SAS所面向的服務器和網(wǎng)絡(luò)存儲設(shè)備輻射標準沒有那么苛刻,SAS設(shè)備并不需要它,但SAS系統(tǒng)卻必須能接收來自SATA設(shè)備的時鐘頻譜擴展信號。

發(fā)起者和目標

SATA來說,發(fā)起者(initiator)必須是主機控制器,目標(target)只能是外圍(存儲)設(shè)備;SAS卻靈活許多,外圍設(shè)備同樣能夠成為發(fā)起者,主機控制器也可以當做目標。

造成這種差別的根源在于SAS繼承了SCSI對等(peer-to-peer)的傳統(tǒng),即發(fā)起者和目標地位平等,在建立連接和傳輸數(shù)據(jù)時沒有主從之分。對等是SAS很容易地就能在單個物理鏈接上實現(xiàn)全雙工的主要原因,但它的優(yōu)點并不限于此。

SAS硬盤執(zhí)行SCSI擴展拷貝命令時,(SSP)協(xié)議允許一塊硬盤直接與其他硬盤建立連接,在沒有主機參與的情況下發(fā)送SCSI命令并傳輸數(shù)據(jù)。

另一個對等的例子是RAID卡。SAS允許兩塊(冗余的)RAID卡連接到同一SAS域中互相通信,這個通信路徑將兩塊RAID卡聯(lián)系在一起,如果其中一塊RAID卡發(fā)生故障,另一塊就會接替它的動作而不用擔心數(shù)據(jù)損壞。

相比之下,SATA和PATA一樣由主機起控制作用,外圍設(shè)備只是被動地響應請求,即所謂“非對等”。也就是說,SATA協(xié)議沒有允許兩塊主機適配器相互溝通或在兩塊硬盤間建立直接通信路徑的機制。

SAS規(guī)范并沒有限制SAS硬盤作為發(fā)起者與SATA硬盤通信的能力,然而實際設(shè)計中不會出現(xiàn)這種情況,因為SAS硬盤要為此提供對STP和SATA發(fā)起者協(xié)議的支持,從而提高復雜性和成本。

[maxxiao 在 2010-8-27 23:22:22 編輯過]

maxxiao --- 2010-08-27 23:13:46

7

把排隊落到實處——SATA-Ⅱ本機命令排隊

Serial ATA Ⅱ?qū)erial ATA 1.0所做的諸多功能擴展中,只有一項是與性能密切相關(guān)的,它就是本機命令排隊(Native Command queuing,也稱全速命令排隊,簡寫為NCQ)。借助SATA 1.0改進的DMA機制,SATA Ⅱ本機命令排隊結(jié)束了PATA命令排隊可有可無的尷尬歷史,能夠更好地滿足入門級服務器和網(wǎng)絡(luò)存儲設(shè)備的要求,也順應了PC應用環(huán)境向多線程發(fā)展的趨勢。

并行ATA(PATA)命令排隊協(xié)議1997年就被加入ATA/ATAPI-4規(guī)范,可直到現(xiàn)在仍僅有一家硬盤廠商(HGST,原來的IBM)提供支持該協(xié)議的產(chǎn)品。難道是PATA命令排隊實現(xiàn)起來太過復雜?答案當然是——非也。

PATA排隊難有作為

在這個即將被拋棄的時刻,PATA的“罪惡”自然是罄竹難書。如此說來,再多拎出一條似乎也不能算落井下石。

組成PATA排隊協(xié)議的命令包括Read DMA Queued(Ext)、Write DMA Queued(Ext)和Service,其中后者是出于PATA DMA的總線從屬性需要。前面我們已經(jīng)介紹過,PATA是非對等的協(xié)議,也即硬盤不能主動與主機通信,必須由主機定期交替輪詢(同一通道內(nèi)的)主盤和從盤。這樣一來,硬盤在接收到來自主機的命令后,要么立即執(zhí)行,要么必須通過設(shè)置注意標志和Service位來通知主機何時準備就緒執(zhí)行命令。主機發(fā)現(xiàn)Service位后,會發(fā)出一條Service命令,以便從硬盤得到將執(zhí)行哪一條待執(zhí)行命令的信息。

由于隊列的客觀屬性決定了其中至多有一條命令能夠立即執(zhí)行,因此在深度大于1的隊列中Service命令不可避免。由于Service位不包含任何對即將執(zhí)行命令的識別信息,所必需的命令識別信息要以標記值的形式與數(shù)據(jù)請求一同傳輸,而且僅供主機用以設(shè)置DMA引擎和接收數(shù)據(jù)緩沖區(qū),主機不能預先掌握硬盤所設(shè)置的輔助位來自哪條命令,數(shù)據(jù)傳輸周期開始前也無法設(shè)置DMA引擎。本來最清楚數(shù)據(jù)存放在何處和怎樣訪問的硬盤,現(xiàn)在反倒被置于完全被動的地位,有關(guān)數(shù)據(jù)傳輸?shù)乃袦蕚涔ぷ骱蜎Q策都是由主機做出的,自己只剩下設(shè)置Service位,等待主機下一次查詢的份兒。最終的結(jié)果是,受PATA DMA的總線從屬性限制,PATA命令排隊帶來的性能改善,很輕易地就被協(xié)議開銷抹殺了。在隊列深度較淺的時候,性能甚至還比不排隊的情況有所下降——連“聊勝于無”都算不上。

所以,盡管接收到來自主機的命令就執(zhí)行(而不是排隊)看起來很傻,可是PATA硬盤的設(shè)計者們基本上別無選擇。沒有命令排隊(有也發(fā)揮不了多大作用)的后果就是,隨著并發(fā)訪問程度的提高,PATA硬盤與SCSI硬盤之間的性能差距被越拉越大(見圖)。

PATA硬盤的IOPS性能隨隊列深度提高的幅度明顯不及SCSI硬盤

在傳統(tǒng)的PC單線程應用中,PATA硬盤可以按照主機軟件安排的順序執(zhí)行命令,因此沒有命令排隊還不是很嚴重的問題。但是,隨著超線程技術(shù)的出現(xiàn),多線程應用將逐漸在PC領(lǐng)域普及,對硬盤端排隊能力的需求漸趨迫切,SATA Ⅱ本機命令排隊可謂生逢其時。

FPDMA反客為主

既然PATA DMA的總線從屬性是命令排隊有名無實的“元兇”,SATA Ⅱ本機命令排隊就通過單方DMA(First Party DMA,F(xiàn)PDMA)的機制來解決這個問題。雖然繼承了PATA的非對等“傳統(tǒng)”,但SATA利用FPDMA促成主機控制器為排隊命令的數(shù)據(jù)傳輸選擇適當?shù)哪繕嘶蛟次锢韮?nèi)存區(qū)域(允許硬盤經(jīng)由Scatter/Gather列表直接尋址)并初始化DMA引擎,進而可以自己安排傳輸數(shù)據(jù)的時間和順序。

為了實現(xiàn)硬盤與主機之間的數(shù)據(jù)和狀態(tài)通信,SATA 1.0定義了三種類型的幀信息結(jié)構(gòu)(FIS),分別是FPDMA Setup、DMA Active和Set Device Bits,SATA Ⅱ本機命令排隊直接使用它們而無需修改現(xiàn)有SATA協(xié)議,不過增加了Read FPDMA Queued和Write FPDMA Queued這兩條命令。

SATA Ⅱ本機命令排隊允許支持和不支持該協(xié)議的硬盤連接在一個主機控制器上,當然更能夠共存于同一磁盤子系統(tǒng)中。主機控制器驅(qū)動程序通過識別設(shè)備(Identify Device)功能檢測硬盤是否支持SATA Ⅱ本機命令排隊,本身還要支持Read FPDMA Queued和Write FPDMA Queued,因此必須做出相應的改動。

5月7日,Intel在WinHEC 2003會議上發(fā)布了高級主機控制器接口0.95版規(guī)范(Advanced Host Controller Interface,AHCI),為驅(qū)動程序和系統(tǒng)軟件提供了發(fā)現(xiàn)并實施命令隊列、熱插及電源管理等高級SATA功能的標準接口。AHCI最終規(guī)范預計在2004年早期推出,而基于0.95版規(guī)范的AHCI SATA獨立主機控制器則力爭于2003年年底上市。

SATA在DMA方式上的改進,不僅避免了PATA命令排隊的協(xié)議開銷,還提高了無序數(shù)據(jù)傳送的效率。由于PATA DMA的總線從屬性和輪詢間隔造成的等待,PATA硬盤只有在收到Service命令后,才能將數(shù)據(jù)寫入緩存,然后整塊傳輸;在SATA中,硬盤決定何時開始傳輸數(shù)據(jù),也就是說,從盤片中讀取數(shù)據(jù)后,不等主機完成讀時序和置Service位啟動DMA設(shè)置,立刻就可以利用非零偏移(no-zero offset)數(shù)據(jù)傳輸。以磁頭錯過起始LBA的32扇區(qū)數(shù)據(jù)傳輸為例,SATA硬盤不是以無序數(shù)據(jù)傳送方式將數(shù)據(jù)寫入高速緩存,然后再啟動32扇區(qū)DMA傳輸,而是建立一個部分DMA傳輸——譬如后16個扇區(qū)的DMA傳輸,等起始LBA旋轉(zhuǎn)到磁頭下方,硬盤立刻發(fā)出針對前16個扇區(qū)的新一條Read FPDMA Queued命令。

由于FPDMA可以充分利用無序數(shù)據(jù)傳送,即使隊列深度為1,SATA也可以提高性能。利用明顯高于硬盤持續(xù)傳輸率的接口帶寬,SATA能通過非零偏移FPDMA Setup先傳輸?shù)谝慌鷶?shù)據(jù)扇區(qū)的數(shù)據(jù),然后斷開與主機控制器的連接避免無謂地占用帶寬,待起始LBA到達磁頭下方再啟動第二個FPDMA Setup傳輸其余數(shù)據(jù)。這實質(zhì)上就是利用了命令排隊的功能,而且在數(shù)據(jù)傳輸過程中主機控制器也的確可以插入其他命令。

小結(jié):(硬盤內(nèi)部)命令排隊的本質(zhì)是什么?就是讓硬盤來決定何時及以怎樣的形式執(zhí)行每一條命令以達到節(jié)省時間、提高效率的目的?墒窃赑ATA中,硬盤只有排列命令順序的能力,最關(guān)鍵的時間因素卻掌握在主機(控制器)手里,硬盤準備好的數(shù)據(jù)(往往)不能立即傳輸給主機,由此產(chǎn)生的無謂等待和命令開銷很輕易地就將命令排隊所能帶來的優(yōu)勢化解為無形,接到命令立即執(zhí)行成為了PATA硬盤的主旋律。SATA的FPDMA方式幫助硬盤“奪回”對時間因素的控制權(quán),真正可以自主決定何時傳輸數(shù)據(jù),是本機命令排隊得以發(fā)揮作用的必要保障。

差距源于定位

雖說看起來SATA Ⅱ本機命令排隊比PATA要簡潔高效許多,但那主要應歸功于DMA方式的改變,命令排隊本身的功能仍然受到了PATA“遺傳”的局限,譬如排隊命令與非排隊命令不能混合使用、發(fā)生錯誤將導致硬盤放棄隊列中的全部命令(主機必須管理恢復過程),不過與SCSI命令排隊最大的區(qū)別還是隊列類型及深度。

SCSI命令排隊支持三種隊列類型,分別是簡單隊列(Simple Queue)、有序隊列(Ordered Queue)和隊列頭(Head of Queue)。ATA命令排隊只是簡單隊列,即硬盤享有以任意順序排列和優(yōu)化命令的完全自主權(quán)。

隊列頭屬性賦予某一命令以優(yōu)先權(quán),讓它排在某個現(xiàn)有隊列的前頭,以優(yōu)先響應緊急的I/O請求。如果出現(xiàn)了新的更為緊急的I/O請求,只需發(fā)出相應的命令并賦予隊列頭屬性即可,后進先出(LIFO)排序方案隨后就會限定優(yōu)先執(zhí)行這一新的命令。不過,SATA Ⅱ本機命令排隊雖然不能對隊列排定優(yōu)先級,但卻可以發(fā)出一條虛擬的隊列頭命令來打亂現(xiàn)有隊列,給新的命令讓路——代價是隊列中未完成的命令必須重新發(fā)送。

有序隊列要求以命令的接收順序執(zhí)行命令,杜絕了在硬盤內(nèi)部調(diào)整執(zhí)行時間和進行優(yōu)化的可能性。作為SCSI命令排隊中的特例,有序隊列用于多啟動程序(發(fā)起者)/多目標環(huán)境,啟動程序突然將必須嚴格遵守的命令排序方案發(fā)送給硬盤,隨后就釋放總線,直到滿足該I/O請求為止。通過發(fā)送一個由上述三種類型隊列組成的混合隊列,SCSI命令排隊可以提供比SATA Ⅱ本機命令排隊更為強大的功能。

至于隊列深度的規(guī)定,ATA最大為32級,SCSI為256級,兩種新興的串行接口(SATA和SAS)也不例外。對于PC和入門級服務器、網(wǎng)絡(luò)存儲設(shè)備,SATA的32級深度已經(jīng)足夠,而SCSI面向的多主機/多設(shè)備應用環(huán)境則要求更深的隊列深度。不過,由于隊列越深(實現(xiàn))成本也就越高,并且滿深度利用隊列時大量的待處理命令反倒可能成為性能瓶頸,因此并行SCSI硬盤通!爸荒堋边_到64級深度。Marty Czekalski認為,多數(shù)SAS硬盤將采用支持128級深度的設(shè)計,從而與FC-AL硬盤相當。

在單主機/單硬盤配置中,由于單主機產(chǎn)生不了足夠的待處理請求,SCSI的隊列深度得不到充分利用,只能靠主軸轉(zhuǎn)速的優(yōu)勢提高性能。隨著作業(yè)的復雜程度不斷提高,SCSI的優(yōu)勢才愈加明顯。雖然SAS 1.0的命令排隊功能與并行SCSI相比沒有什么變化,但是它卻具有無需經(jīng)過共享總線仲裁的優(yōu)點,并可以利用串行點對點連接賦予的全雙工能力在突發(fā)數(shù)據(jù)傳輸?shù)耐瑫r反向接受命令,為命令排隊功能提供了更為廣闊的發(fā)展空間。

[maxxiao 在 2010-8-27 23:23:17 編輯過]

maxxiao --- 2010-08-27 23:14:31

8

為什么要排隊?

所謂命令排隊(Command Queuing),通常包括兩個層次的含義:首先,硬盤(緩沖區(qū))內(nèi)部能夠容納來自主機控制器的多條命令,待處理命令的數(shù)目即隊列深度;其次,硬盤控制器可以重新安排這些命令的執(zhí)行順序,從而獲得最大的輸出。

我們知道,硬盤是機、電、磁一體化的設(shè)備,其中動作最慢的機械部分是硬盤性能提升的瓶頸所在。硬盤的磁道是以主軸為圓心的一個個同心圓,當磁頭懸停在磁道上方拾取數(shù)據(jù)的時候,機械動作的影響降至最低點(總不能讓主軸不轉(zhuǎn)吧?),相應地硬盤可以向外輸出數(shù)據(jù)的流量也達到了最高的水平,即持續(xù)傳輸率(為簡化問題起見,忽略磁道間切換的開銷)。當然,由于外圈磁道長度占優(yōu),其傳輸率的數(shù)值也更高。

高轉(zhuǎn)速的硬盤通常在持續(xù)傳輸率上領(lǐng)先,譬如目前主流15000RPM SCSI能達到75MB/s56MB/s(見表);7200RPM ATA由于盤片直徑較大,外圈傳輸率也有61MB/s。這樣的指標雖然比內(nèi)存低兩個數(shù)量級,但也還算說得過去。

然而在實際應用中持續(xù)傳輸很少出現(xiàn),高端企業(yè)級計算更是如此。以數(shù)據(jù)庫索引操作為例,對象在盤片上的分布位置并不連續(xù),迫使磁頭移動去讀寫一次只有幾KB的小數(shù)據(jù)塊,是典型的隨機訪問。磁頭要先移動到數(shù)據(jù)所在磁道(尋道),然后再等待要讀取的區(qū)塊旋轉(zhuǎn)過來(延遲),即使按照平均值(即平均訪問時間,等于平均尋道時間與平均延遲時間之和)來計算,也要花費10ms左右的時間(以附表為例,SCSI5.2msATA12.7ms),相比之下真正讀取數(shù)據(jù)的時間幾乎可以忽略不計(512字節(jié)只需幾十μs)。如果是每次僅讀取512字節(jié)的完全隨機訪問,硬盤輸出數(shù)據(jù)的流量將驟降至0.1MB/s以下!

事實上,每秒(隨機)I/O操作的次數(shù),即IOPSI/O per second),早已成為衡量企業(yè)級存儲設(shè)備性能的標準,這也是最高轉(zhuǎn)速總是來自于SCSI硬盤的主要原因。毫秒級對微秒級,千倍左右的差距,無疑使優(yōu)化機械部件的移動次序(隨機訪問操作)比提高電磁器件的響應速率(單純拾取數(shù)據(jù))更為重要,所以一定要對命令進行排隊。

典型ATASCSI硬盤的性能指標

 

尋道靠排隊

命令排隊主要解決的是尋道順序,不妨以電梯為例幫助我們理解這個問題。設(shè)想一座電梯停在7層,進入的人按照1、6、2、5層的順序按下按鈕,電梯是應當遵循這個7→1→6→2→5(走過16層、折返3次),還是將其調(diào)整為7→6→5→2→1(走過6層、減速4次)呢?相信大家都會選擇后一種方案,因為它不僅大大節(jié)省了時間,還避免了不必要的折返操作,非常有利于延長電梯的壽命。此外,我們還希望電梯在運行過程中能夠?qū)π掳聪碌陌粹o(假設(shè)為3)做出判斷,決定是否重新排序:如果此時電梯在6或5層,就把3插在2的前面;但若電梯已到3層,就按原順序走向2層——突然急停對乘客和電梯都會造成很大的傷害。

以上下的電梯來比喻在磁道間搖擺運動的磁頭非常形象——取出隊列中的命令(按下的樓層按鈕),然后重新排序(見下圖),縮減硬盤的機械開銷,以便有效地獲取和發(fā)送主機請求的數(shù)據(jù)。當然,命令排隊真正實現(xiàn)起來需要考慮的問題要復雜得多,譬如是否切換磁頭、針對不同磁道的尋道時間、不同的運行模式(靜音尋道),涉及的參數(shù)更包括尋道長度、起始位置和方向、傳動機構(gòu)的加速分布、旋轉(zhuǎn)定位(讀寫定位時間差)、讀緩存命中率、寫緩存的啟用與禁用、處理相同LBA的I/O進程,以及算法的公正性(消滅命令“餓死”現(xiàn)象),甚至旋轉(zhuǎn)等待時間?傊,一個好的命令排隊算法可不那么簡單。

等待有無序

僅僅把磁頭移動到目標磁道上方是不夠的,還必須把等待要訪問的數(shù)據(jù)塊旋轉(zhuǎn)過來,這就是旋轉(zhuǎn)等待時間(延遲)。最好的情況自然是起始LBA就在磁頭下方,最糟糕的則是起始LBA剛好過去——意味著要損失旋轉(zhuǎn)一整圈的時間(取旋轉(zhuǎn)半圈的時間為平均延遲),也就是4ms(15000RPM)~8.3ms(7200RPM),簡直與平均尋道時間不相上下,同樣不能忽略。

提高主軸轉(zhuǎn)速當然可以縮短旋轉(zhuǎn)等待時間,但未必是最好的辦法。無序數(shù)據(jù)傳送(Out of order data delivery)不需要磁頭從起始LBA開始讀取,而是可以從目前LBA中的任何位置開始讀取數(shù)據(jù)。也就是說,只要磁頭定位在目標磁道上方,就立刻開始讀取所請求的數(shù)據(jù)塊,錯過的數(shù)據(jù)待盤片旋轉(zhuǎn)回來后再補上即可。如果所請求的恰好是整條磁道的數(shù)據(jù),那么就沒有在旋轉(zhuǎn)等待上損失任何時間(就這條磁道而言相當于持續(xù)傳輸),此時無序數(shù)據(jù)傳送顯然比任何機械方法都更為有效;如果所請求的數(shù)據(jù)塊非常小,無序數(shù)據(jù)傳送的作用就大打折扣了,不像提高主軸轉(zhuǎn)速那般始終如一。從客觀情況出發(fā),無序數(shù)據(jù)傳送更受在提高轉(zhuǎn)速上受到諸多限制的ATA硬盤青睞。

除了提高硬盤本身的性能,命令排隊功能還可以使主機在設(shè)備對命令進行排隊的時候,斷開與硬盤間的連接以釋放總線,一旦硬盤準備就緒,就重新連接到主機,盡可能以最快的速率傳輸數(shù)據(jù),從而消除占用總線的現(xiàn)象,改善整個系統(tǒng)的表現(xiàn)。

[maxxiao 在 2010-8-27 23:24:09 編輯過]

maxxiao --- 2010-08-27 23:15:07

9

在模仿中超越——SATA-Ⅱ與SAS的子系統(tǒng)級技術(shù)

Serial ATA要用于服務器和網(wǎng)絡(luò)存儲設(shè)備,就必須支持背板、箱體服務、交錯旋轉(zhuǎn)預備等子系統(tǒng)(subsystem)級技術(shù),這些Serial ATA Ⅱ都不能通過繼承(自PATA)的手段獲得,只好向老大哥SCSI學習;Serial Attached SCSI當然不用再為上述那些小兒科勞神,它的目標是滿足高端服務器和存儲設(shè)備的需求,因此從FC(Fibre Channel,光纖通道)“偷師”了雙端口、多級交換、WWN等用于組建復雜拓撲架構(gòu)的技術(shù)。與其說SATA Ⅱ追趕SCSI、SAS挑戰(zhàn)FC,不如來欣賞兩者如何實現(xiàn)超越自我的雄心。

SATA Ⅱ在SATA 1.0基礎(chǔ)上進行的諸多擴展中,除本機命令隊列和識別設(shè)備/設(shè)置功能外,都是專門為子系統(tǒng)服務的。由于類似的技術(shù)并行SCSI早已采用,所以本文只對它們做一簡單介紹,而把主要的關(guān)注點放在SATA Ⅱ與SAS對SATA 1.0簡單點對點連接所做的擴充上。

SATA子系統(tǒng):學習與完善

背板互連、箱體服務/管理、交錯旋轉(zhuǎn)預備、硬盤活動指示和熱插/到位檢測這五大功能在B9版都有簡要的解釋,以下將視具體情況做進一步的介紹。

背板互連  針對在19英寸標準機架(存儲陣列)內(nèi)部,最遠端的硬盤與背板間的距離小于18英寸的情況?紤]到背板端接口往往不會直接與(SATA)主控芯片相連,主控芯片PHY發(fā)送信號電壓差底限從(SATA 1.0規(guī)定的)400mV提高到500mV,接收信號電壓差底限從325mV降低至240mV。嚴格說來,背板互連屬于物理層功能,其他四項才被Serial ATA Ⅱ: Extensions to Serial ATA 1.0規(guī)范明確地劃在Subsystem(子系統(tǒng))一節(jié)中。

箱體服務/管理  提供對工業(yè)標準SAF-TE(SCSI Accessed Fault-Tolerant Enclosures,SCSI接口容錯箱體)和SES(SCSI Enclosure Services,SCSI箱體服務)的支持以增強SATA存儲子系統(tǒng)的功能,與背板互連一樣無需硬盤做出改變。不用說,這是個向SCSI學習的成果。

交錯旋轉(zhuǎn)預備  聽起來挺拗口,實際上就是讓子系統(tǒng)控制器按順序(以一定時間間隔)先后初始化硬盤、使其主軸加電旋轉(zhuǎn)的方法。磁盤陣列等存儲子系統(tǒng)中通常會有多塊硬盤,如果它們一起加電啟動主軸馬達,所需要的瞬間電流很可能會讓系統(tǒng)電源吃不消。

熱插/到位檢測  這里首先需要澄清“熱插拔”這個概念。最初宣傳SATA的時候,支持熱插拔是其一大熱點;等到第一批本機SATA硬盤上市,又有人說SATA 1.0并不支持熱插拔,要SATA Ⅱ才行。真相是SATA 1.0提供了實現(xiàn)熱插拔所需要的能力,但卻沒有為生成一個完整的方案加以必要的指導。SATA Ⅱ要求設(shè)備具有能夠限制熱插涌入電流的預先加電(precharge)功能,并支持在熱插入之后使用OOB(out of band)序列信號檢測硬盤是否到位,從而實現(xiàn)了完整的熱插拔支持。

[maxxiao 在 2010-8-27 23:24:46 編輯過]

maxxiao --- 2010-08-27 23:15:51

10

Port Multiplier:量比質(zhì)優(yōu)先

2003年4月29日,SATA Ⅱ工作組在WinHEC會議上公布了Serial ATA Ⅱ: Port Multiplier 1.0規(guī)范。Port Multiplier(端口增加器)的作用是把一個活動主機連接多路復用(multiplexed)至多個設(shè)備連接,相當于一個SATA的Hub。

Port Multiplier的鏈路層與物理層兼具SATA 1.0主機和(外圍)設(shè)備的能力,連接到其上的SATA 1.0設(shè)備無需做出改變,也不用增加新的FIS類型。Port Multiplier采用4位(bit)寬度的PM端口字段,其控制端口占用一個地址,因此最多能輸出15個設(shè)備連接——與并行SCSI相當。

Port Multiplier不允許級聯(lián),而且只能有一個活動的主機連接,這就限制了其上行帶寬,主要用于為端口不足的系統(tǒng)增加可連接設(shè)備的數(shù)量。Port Multiplier 1.0規(guī)范列舉了以下幾種典型應用:

1.采用SATA外部接口的驅(qū)動器箱體(下圖)。SATA外部線纜可以包括多路SATA鏈接,但它們不能合并為一個(寬)鏈接,每路SATA鏈接對應一個Port Multiplier(的上行端口)。

采用SATA外部接口的Port Multiplier示例

2.采用FC-AL、GbE、SAS等其他外部接口的驅(qū)動器箱體(下圖)。箱體內(nèi)部有一個將外部接口轉(zhuǎn)為SATA接口的主機控制器,它的每個SATA端口連接一個Port Multiplier或其他SATA設(shè)備。

采用其他外部接口的Port Multiplier示例

3.筆記本電腦的移動塢站(docking station,見下圖)。塢站中的Port Multiplier上行端口與主機相連,下行端口用來接外部硬盤、光驅(qū)或其他SATA外圍設(shè)備。

用于塢站的Port Multiplier示例

Port Multiplier的上行和(所有)下行端口帶寬均為150MB/s(信號速率1.5Gb/s),明顯領(lǐng)先于任何SATA設(shè)備(包括硬盤)的實際速度,因此在下行連接設(shè)備較少(或速度較慢,如光驅(qū))的情況下上行接口未必會成為性能瓶頸——何況將來可以把上行端口的帶寬先行提高到300MB/s(信號速率3.0Gb/s)。但不管怎么說,現(xiàn)在的Port Multiplier仍只是一個功能受限(不能級聯(lián))的SATA Hub而已。

[maxxiao 在 2010-8-27 23:25:25 編輯過]

maxxiao --- 2010-08-27 23:16:30

11

SAS:復雜奠定優(yōu)勢

如果把SATA的Port Multiplier比做Hub,那么將SAS的擴展器形容為交換機(Edge Expander,邊沿擴展器)和路由器(Fanout Expander,扇出擴展器)就再合適不過了。

擴展器利用可多達128個的Phy(發(fā)送器和接收器各一、能夠接受1個物理鏈接的最小單元,譬如1個4寬度端口即由4個Phy組成)連接發(fā)起者/目標設(shè)備或其他擴展器,組成星形拓撲架構(gòu)。扇出擴展器是SAS域的核心,一個SAS域只能有一個扇出擴展器,它可以隨意連接邊沿擴展器(只要不超過Phy數(shù)目上限);一個邊沿擴展器只能連接到一個扇出擴展器上,而在沒有扇出擴展器的情況下最多僅允許兩個邊沿擴展器互連;在不超過Phy數(shù)目上限的前提下,擴展器可以隨意連接發(fā)起者/目標設(shè)備。也就是說,在一個SAS域中,任意兩個設(shè)備(發(fā)起者或目標)之間最多可以有3個擴展器(邊沿-扇出-邊沿,下圖)。此外,一個具有多個端口的設(shè)備還能跨越不同的SAS域。

擴展器與設(shè)備的關(guān)系

SAS制訂初期的目標是每個擴展器可連接64個設(shè)備,一個SAS域最多4096個(64×64)設(shè)備;后來規(guī)范制訂者們意識到?jīng)]有必要把擴展器的端口數(shù)目限制在64個,于是便改為每個擴展器能夠?qū)ぶ?28個Phy,整個SAS域形成一個物理連接數(shù)目可達16k(128×128=16384)的點對點交換式拓撲架構(gòu)。這種從基于路徑向基于尋址的轉(zhuǎn)變允許在不使用扇出擴展器的情況下獲得更大規(guī)模的配置——通過多個邊沿擴展器組成“邊沿擴展器集”的方法,將能夠以Phy數(shù)目較少但卻廉價的芯片構(gòu)建起一個大型的邏輯擴展器。

SAS連接器類型對比表

擴展器強大的連接能力不僅是為設(shè)備數(shù)量服務的,它還可以用多達4個的物理鏈接(消耗的Phy數(shù)目也隨之上升)組成寬鏈接來獲得成倍的帶寬(見上表)。以4寬度內(nèi)部串行附屬連接器(下圖)為例,SATA只能通過4根相互間沒有邏輯聯(lián)系的線纜獲得4個獨立的SATA鏈接,SAS卻可以得到一個4寬度鏈接(在一個擴展器上)、兩個2寬度鏈接(在兩個擴展器上)、四個1寬度鏈接(在四個獨立的擴展器或設(shè)備上),甚至還能夠是一個3寬度鏈接和一個1寬度鏈接……性能與靈活度都遠勝于SATA。

SAS 1.1和SATA Ⅱ共同增加的4寬度內(nèi)部連接器

當然,擴展器引入的復雜度也不盡是優(yōu)點,譬如它將原本直接相連的兩個設(shè)備分隔開就隱藏著潛在的風險。假想有兩個設(shè)備,支持的最高速率分別是1.5Gb/s和3.0Gb/s,當它們直接相連的時候,會在經(jīng)過協(xié)商后以1.5Gb/s的速率通信,沒有什么不妥。若斷開這個連接,在中間插入一個3.0Gb/s的擴展器,情況會怎樣呢?問題來了——兩個設(shè)備分別與擴展器(上的相應端口)協(xié)商后以各自的最高速率連接,即3.0Gb/s對1.5Gb/s,(當各自處于接收狀態(tài)時)快的吃不飽,慢的吃不消。為此,SAS在鏈路層引入了速率匹配(rate matching)的概念,即在高速連接一側(cè)(視需要)插入ALIGN,降低其實際數(shù)據(jù)速率,維持擴展器吞吐量的平衡。這一功能對SAS主機控制器(3.0Gb/s)通過擴展器連接SATA外圍設(shè)備(1.5Gb/s)的應用顯得尤為重要(下圖)。

速率匹配示意圖

要讓一個可能多達16k個Phy的域順利地運作,必須有一個足夠大的地址分配空間。通過為每個SAS端口分配一個8字節(jié)的WWN(World Wide Name,全局名)作為SAS地址,這個問題得到了解決。WWN包括24位的IEEE公司ID和36位制造商標識符,可以保證其惟一性。

SAS環(huán)境中,SAS主機控制器使用自己和SAS硬盤的WWN來建立SSP通路,可是對于并不支持WWN的SATA硬盤該怎么辦呢?解決辦法是用(與SATA硬盤直接相連的)STP目標端口的WWN來代替。STP目標端口不僅能夠讓多個STP發(fā)起者(主機控制器)通過它訪問同一SATA硬盤,還應具備追蹤每一個STP發(fā)起者SAS地址的能力,否則訪問該STP目標端口的STP發(fā)起者必須在命令完成之前保持連接——因為SATA硬盤本身并不支持多主機,若STP發(fā)起者送出命令后即斷開連接,而STP目標端口又不能追蹤其地址的話,那么SATA硬盤準備好數(shù)據(jù)后將不知道該傳輸給誰。雖說讓STP發(fā)起者在命令執(zhí)行過程中始終保持連接也不失為一種解決之道,但這無疑將導致SATA硬盤的命令排隊能力得不到充分利用

[maxxiao 在 2010-8-27 23:26:07 編輯過]

maxxiao --- 2010-08-27 23:17:26

12

融合亦有界

毫無疑問,SAS的多級交換架構(gòu)明顯地優(yōu)于并行SCSI、SATA和FC-AL,但另一方面,它的應用范圍又被嚴格限定在機內(nèi)(In-box)和短距離DAS。也就是說,SAS可以在機內(nèi)(硬盤級)接口的較量中擊敗FC-AL,但在外部(子系統(tǒng)間)接口的層面上卻只有給FC和iSCSI打下手的份兒。

SAS面前,SATA的功能的確顯得有些小兒科,可這并不妨礙它打入傳統(tǒng)SCSI市場的低端。Adaptec和LSI Logic這兩家傳統(tǒng)意義上的SCSI控制器供應商都相當關(guān)注SATA技術(shù), Adaptec中國區(qū)業(yè)務發(fā)展經(jīng)理吳剛先生就認為SATA將擠壓Ultra160 SCSI的市場空間,迫使后者加快向Ultra320 SCSI升級的速度。此外,Adaptec還計劃在一年之內(nèi)推出4/8端口的SATA RoC(RAID on Chip)和8/12端口的SATA卡,進一步迫近并行SCSI。

不過,就主機控制器而言,SATA也只能在SAS無暇顧及的低端生存。為SATA主機控制器服務的Port Multiplier能力無法與SAS的擴展器相提并論固然是一個重要原因,SAS兼容SATA的單向性也不容忽視。換句話說,SAS主機控制器能夠使用SATA硬盤,SATA主機控制器卻不能使用SAS硬盤,這意味著前者具有豐富的設(shè)備資源,簡直是如虎添翼;而后者除了價格優(yōu)勢外,就僅剩下(相對)可憐的擴展能力和平平的性能。

硬盤端的情況似乎不太一樣。雖然總的趨勢仍將是SAS硬盤以性能和功能領(lǐng)先,SATA硬盤的容量和性價比占優(yōu),但后者可以在SAS主機控制器的幫助下進入一些以前不敢奢望的領(lǐng)域。事實上,高端應用環(huán)境中也未必處處都需要無與倫比的性能和極高的可用性,相對廉價且大容量的硬盤同樣會有用武之地(如盤基備份)。以前,由于并行SCSI主機控制器不兼容PATA硬盤,而PATA控制器的能力又實在不能令人滿意,限制了ATA硬盤的應用范圍,F(xiàn)在有了SAS主機控制器對SATA硬盤的兼容,情況可望改觀(下圖)。

SAS與SATA在企業(yè)級市場共存示例

具有低端SCSI產(chǎn)品特征的SATA硬盤可能會成為一個例子。有些企業(yè)級應用并不一定在乎雙端口或大容量,但主流SATA硬盤的性能又滿足不了需要,這時“采用SATA接口的中低端SCSI(或SAS)硬盤”也許倒很適合。本報2002年6月23日B10版介紹過的WD Raptor硬盤(10000RPM,36.7GB,“ESATA”接口)算是這方面的先行者,2003年春季IDF上對比未來兩年各類硬盤產(chǎn)品的規(guī)格時,也專門列出了SATA-Enterprise(企業(yè)級SATA,10000RPM/100萬小時MTBF),以與SATA-Desktop(桌面級SATA,7200RPM/50萬小時MTBF)相區(qū)別。

另一個機會來自于一些高端存儲系統(tǒng)對參考數(shù)據(jù)應用的需求。所謂參考數(shù)據(jù),是指重要但不頻繁訪問的歸檔/備份等數(shù)據(jù),這種應用強調(diào)每兆字節(jié)最低(購置)成本和可擴展性,性能不是最關(guān)鍵的因素,按說正適合ATA硬盤。然而多數(shù)高端存儲系統(tǒng)都會對扇區(qū)添加用于數(shù)據(jù)完整性檢查的元數(shù)據(jù),這就要求扇區(qū)尺寸大于512字節(jié)(通常會是520字節(jié)或528字節(jié)),可是PATA偏偏不支持非512字節(jié)的扇區(qū)尺寸……現(xiàn)在SATA提供了對非512字節(jié)扇區(qū)尺寸的支持,配合SAS超強的擴展能力,在參考數(shù)據(jù)應用領(lǐng)域取得成功的把握大增。不過,SCSI/FC硬盤的扇區(qū)尺寸能夠在格式化時指定,非512字節(jié)扇區(qū)尺寸的SATA硬盤則很可能需要特別定制。

以上我們討論了SAS與SATA在企業(yè)級應用領(lǐng)域可能的一些動態(tài),SATA在PC市場的優(yōu)勢不是本專題所關(guān)心的。有一點是肯定的,那就是對SAS(系統(tǒng))兼容SATA(外圍設(shè)備)的重大意義怎么強調(diào)都不算過分。身為SATA始作俑者之一的Intel,從去年秋季IDF公開把SAS與SATA相提并論,到2003年春季IDF上將SAS作為串行存儲接口講座的核心,也許就是機內(nèi)存儲設(shè)備接口在串行時代走向融合大勢的一個縮影。

[maxxiao 在 2010-8-27 23:26:41 編輯過]

maxxiao --- 2010-08-27 23:27:38

13

完畢,可要有耐心來閱讀喲!
qjp1976 --- 2010-08-28 10:58:33

14

看了沒一半就暈了,休息一下再來
yishuihzj --- 2010-08-28 15:58:43

15

看不懂呀

maxxiao --- 2010-08-28 21:18:14

16

qjp1976:
看了沒一半就暈了,休息一下再來

早就說了,要有耐心

還要有一定的知識基礎(chǔ)哦

加油,

不要放棄,

讀完之后你會有一種成就感的

突然發(fā)現(xiàn)自己對SAS河SATA的歷史根源的聯(lián)系有了很深刻的了解

maxxiao --- 2010-08-28 21:42:14

17

yishuihzj:

看不懂呀

對于做cable的人來說

完全看懂是不可能的

了解一下吧

能看懂多少就看多少吧

說實話

我看的也不是非常懂

326714568 --- 2010-11-10 14:49:27

18

看不懂呀

cuijiude --- 2011-06-26 16:36:43

19

有最新進展嗎?
killer555 --- 2011-09-06 10:10:10

20

堅持看完
Kining --- 2011-09-06 10:14:30

21

標題是很牛的,就是內(nèi)容看著頭暈
yidazt3216 --- 2013-06-08 10:04:08

22

-- 結(jié)束 --