SATA-Technology详细说明.ppt

上传人:牧羊曲112 文档编号:5447425 上传时间:2023-07-08 格式:PPT 页数:75 大小:6.29MB
返回 下载 相关 举报
SATA-Technology详细说明.ppt_第1页
第1页 / 共75页
SATA-Technology详细说明.ppt_第2页
第2页 / 共75页
SATA-Technology详细说明.ppt_第3页
第3页 / 共75页
SATA-Technology详细说明.ppt_第4页
第4页 / 共75页
SATA-Technology详细说明.ppt_第5页
第5页 / 共75页
点击查看更多>>
资源描述

《SATA-Technology详细说明.ppt》由会员分享,可在线阅读,更多相关《SATA-Technology详细说明.ppt(75页珍藏版)》请在三一办公上搜索。

1、Serial ATA Technology,Auster Lai,SATA Basics,SATA 1.0傳輸速度為1.5Gbit/s。支援進階主機控制器介面(AHCI)功能,可讓SATA儲存裝置啟用進階SATA功能,例如NCQ及熱插拔。SATA 2.0傳輸速度可達3.0Gbit/s在2004年正式推出,符合ATA-7規範。,SATA Basics,SATA 2.0進步的地方在於:1.3.0Gb/s的高傳輸速度 2.支援真正的SATA指令排序(NCQ)3.Port Selector:可使Host埠的兩個獨立SATA Port連接至 同一設備,SATA Basics,4.Port Multipl

2、ier:是一種可以在一個控制器上擴展多個 SATA設備的技術5.介面和連線的強化:SATA 3Gb/s資料線長度最多2m。SATA 1.5Gb/s只是1m,PATA更短到50cm,SATA Basics,SATA 3.01.傳輸速度可達6Gbit/s2.新增NCQ 的指令數目、優先權及演算法,包括為即時 性的資源提供優先處理,主要用於影像及音像傳輸。3.採用全新INCITS ATA8-ACS標準,改良傳輸訊號技術 亦大幅減低了傳輸時所需功耗。,SATA Basics,SATA資料線由兩條傳送方向相反的差分信號對(LVDS,共4根)組成,發送(Tx)和接收(Rx)各走一路。不過,SATA在一對信

3、號線上傳送資料的同時需要用另一對信號線返回流控(flow control)資訊,所以仍然是半雙工(half duplex)。,SATA IO還是SATA II?,SATA II 並是規格的名稱,而是制定SATA 1.0延伸架構的組織名稱,該組織已經正式改名為SATA IO。SATA II是SATA 1.0a的延伸,延伸的新技術完全相容於SATA 1.0,但代表廠商就一定要加入這些新功能。從SATA IO聲明解,新技術可以選擇性加入而非必要,如果硬碟廠出一台標有SATA II(SATA IO)的產品,但既沒3GB/S也沒NCQ,事實上也能它錯。,Native Command Queuing(NC

4、Q),硬碟有支援NCQ,指會先保在硬碟控制晶片內,最多可以保到32組指,硬碟會根據指所需要的資位置重新排,以最佳的順序送出,而低指的存取時間。NCQ示意圖,沒有NCQ時寫順序為1234,碟片要轉圈。有NCQ後指會重排成1324,碟片只需要轉一圈。,SATA Architecture Model,SATA Architecture Model,Physical Layer:1.OOB handshake,2.Serial&Parallel Data Transfer,3.還有BIST functionLink Layer:1.將要打出去的data做編碼,將收進來的data做解碼,2.維持Link

5、 Layer的handshake機制.Transport Layer:1.將Application Layer要做的Command轉化成FIS的handshake,2.對FIS的組成和解開.Application Layer:1.最高層級的Layer,進行ATA或ATAPI command的執行,2.implementation上很多是用軟體處理.,Physical Layer,Transmission(Tx)and Reception(Rx)of a 6Gb/s serial streamPower on sequencingSpeed negotiationProvide status t

6、o link layerSupport power management requestsOut-of-Band(OOB)signal generation and detection,Physical Layer-OOB,通訊鏈結的建立是靠OOB(Out Of Band)的檢測實現的,並且向上層Link Layer提供了物理層的鏈結情況。透過OOB handshake,host與device可以決定要在Gen1,Gen2或Gen3做data傳輸。OOB主要的用意有:1:初始化(initialization)2:傳送速度的協商3:重置(Reset)4:從省電狀態的喚醒,Physical Lay

7、er-OOB,OOB信號的實踐,實際上是仰賴著COMRESET/COMINIT與COMWAKE三個PHY信號線。1:COMRESET:主機對裝置的硬體重置。2:COMINIT:裝置送往主機。3:COMWAKE:主機或是裝置可以激發該信號來將 PHY從省電狀態抽離。COMREST、COMINIT和COMWAKE,由四個D/K組成,其组成为:D27.3 D10.2 D10.2 K28.5(ALIGNPrimitive),Physical Layer-OOB,COMRESET由兩部分相互間隔構成,一部分是突發長度為160個UI(Unit Interval)約106.7ns的ALIGN,另一部分是長度

8、為480UI約320ns的Idle。COMREST和COMINIT形式上是一樣的,但COMREST只能從host到device,而COMINIT只能從device到host。,Physical Layer-OOB,OOB Detect:通過檢測ALIGN資料流程的寬度和ALIGN資料流程的間隙達到的。,Physical Layer-Initiate,通迅鏈結建立過程:1:主機重置,發出COMREST。2:設備檢測到COMRESET後以COMINIT回應。(COMINIT為重新連接開始信號,設備可以在任意時間 發送COMINIT重新建立連接)若沒有COMINIT的通知,HOST就會重覆步驟1,直

9、到DEVICE回覆為止,這也是系統允許熱插拔的關鍵。3:主機calibrate,發出COMWAKE。4:設備接收到COMWAKE後,設備連續發送6個 COMWAKE信號,接著連續發送ALIGN進行傳送速度的協商。,Physical Layer-Initiate,5:主機鎖存資料。主機接收到COMWAKE後,以支援的最低速率連 續發送D10.2資料,同時鎖存檢測接收的資料,當檢測到設備發送 的ALIGN後,以接收的速率將ALIGN轉發給設備。D10.2是0101010101.這樣0和1交替的波形,可以讓device端更容易做clock recovery的動作.主機在發送了COMWAKE後至少要在

10、880 ps內接檢測到ALIGN,否則主機重啟上電序列重新檢測設備,直到應用層將其終止。6:設備鎖存資料,檢測到ALIGN後發送同步信號SYNC,通訊建立 成功,進入到正常操作模式。如在54.6us內未檢測到ALlGN,則 進入錯誤處理,等待重新連接。7:當主機接收到三個非ALIGN後,鏈結建立完成,進入正常操作。,Physical Layer-Initiate,Physical Layer-Initiate,Device與Host連接是首先從Device支持的最高速開始的,如果最高速不滿足則用較低速率再次匹配,直到最低速率也不能匹配後Device將進入error狀態;換速等待時間為54.6u

11、s(2048個ALIGN DWORD傳輸時間);,Physical Layer Detailed Block Diagram,Link Layer,1.Provides frame flow control2.CRC generation/checking3.Scrambles/descrambles data and control words4.8b/10b encoding Conduct5.Converts data from transport layer into frames,Link Layer,傳輸層有FIS要傳送,鏈結層計算CRC值、加擾和8B/10B編碼後,加上SOF和E

12、OF 封裝成frame,傳遞給物理層。通過插入各種primitive進行流量控制,在成功傳遞完有效資料後,連接層等待對方的應答,並把結果傳給上層;從物理層接收到有效資料時,進行8B/10B解碼、解擾以及CRC效驗,然後將資料提交到傳輸層。,Link Layer-8B/10B,8B/10B編解碼:資料值可以統一的表示為Dxy或Kxy,其中D表示為資料字元,K表示為特殊的控制字元,x表示輸入的原始資料的低5位元,y表示輸入的原始資料的高3位元。輸出位元數目總共是10個位元,但只有+2+0-2三種組合。+2是指4個位元0,與6個位元1;+0是指5個位元0,與5個位元1;-2是指6個位元0,與4個位元

13、1,利用這種不均等性-Disparity的特性而具有強大的直流平衡(DC Balance)功能,可使得發送的0、1數量保持一致,連續的1或0基本上不超過5位。,Link Layer-8B/10B,編碼分為兩個階段:階段一,把低5位元資料結合D/K#與CRD的當前狀態(正或負)查5B/6B資料編碼表,產生高6位元資料。階段二,把高3位元資料結合D/K#與CRD當前狀態查3B/4B編碼資料表,產生低4位元資料。對K控制字元的編碼方式和D資料字元編碼方式一樣。協定中只使用了兩個控制字元K28.3和K28.5,Link Layer-8B/10B,Link Layer-8B/10B,例如一組8位元的資料

14、是 10110101(B5h):首先,分成兩組 101 與 10101a=10101(21)b=101(5),符號為 D21.5,在下表中的位序為HGFEDCBA,a(EDCBA)經過5B/6B編碼為abcdei,b(HGF)經過3B/4B編碼為fghj。,Link Layer-8B/10B,Link Layer-8B/10B,Example:HEX number 45 HEX number BC,Link Layer CRD,Current Running Disparity(CRD),反映所發送的1和0的總數,用一位二進位數字來表示正和負(-1 and 1)。當傳輸完一次資料後,SATA必

15、須根據當前的傳輸資料計算下一個CRD值。交替使用RD+和RD-欄的值,使差分信號的直流分量盡量小。計算規則如下:(1)資料l的個數大於0的個數,那麼CRD為正。(2)資料0的個數大於1的個數,那麼CRD為負。(3)資料中l的個數等於0的個數,則CRD的值不變。,Link Layer CRD,0 0 1 1 1 1 1 1,1 0 1 0 1 1 1 0 0 1,0 1 0 1 0 0 1 0 0 1,8b Character 0 x3F,This 10b Character transmitted when CRD negative,This 10b Character transmitted

16、 when CRD positive,This character6 ones4 zerosDisparity+2-next CRD positive,This character4 ones6 zerosDisparity-2-next CRD negative,Link Layer Scrambling,資料在進行8b/10b 編碼之前,必須先行資料打散(Scramble)的處理,目的是為了降低EMI。實現方式是由LFSR(Linear Feedback Shift Register)的方式來實踐;基本原理是將資料的8 位元與LFSR 暫存器的16 位元輸出做XOR 的處理。多項式G(x)

17、:,Link Layer Scrambling,規定LFSR的初始值為0 xFFFF,LFSR必須在SOF標誌前就要被初始化,在SOF與EOF之間的資料,包括CRC值都需要加擾。對於操作基元Primitive是不需要加擾的 資料處理流程:對於一個資料包,在SOF後的資料就必須計算其CRC值,同時這個資料必須和擾碼器的輸出進行XOR操作,操作結果送往8B10B編碼器編碼;反之,在接收方,資料先通過10B8B解碼,再與擾碼器的輸出結果進行XOR操作,最後計算資料的CRC值。,Link Layer CRC,CRC的計算是以SOF和EOF之間的所有資料(即不包括操作基元)為物件,以Dword(32-b

18、it)為單位,如果資料的內容不是Dword的整數倍,需要在資料包的後面用0來補充。協議規定CRC的初始值為0X52325032,SOF和EOF之間的所有資料不能超過2064個Dwords。,SATA Frame Structure,All SATA frames consist of:1.A start of frame(SOF)delimiter2.A payload transport layer information3.A Cyclic Redundancy Check(CRC)4.An end of frame(EOF)delimiter,Link Layer Primitive,P

19、rimitive基元是用來控制和提供串列線路的狀態的,由4個Byte構成的DWORD,第一個byte是控制信號(K開頭)後面三個byte是資料信號(D開頭),Link Layer Primitive,FIS Transfer Protocal Sequence,現以設備接收一個資料包的傳輸過程來說明基元的作用,總共分為9個狀念。首先主機、設備都處於空閒狀態。(1)主機有資料需要發送,發送X_RDY,通知設備準備接收資料;,FIS Transfer Protocal Sequence,(2)設備檢醒好自己的狀態,準備好後發送R_RDY告訴主機可以發送數據;(3)主機開始發送資料;,FIS Tra

20、nsfer Protocal Sequence,(4)接收方在接收到資料時,以R_IP告訴主機正在接收資料;,FIS Transfer Protocal Sequence,(5)主機的資料包沒有發送完,可是還有些資料沒有準備好,以HOLD告訴設備暫停資料發送;(6)設備接收到HOLD後,以HOLDA回應;(7)主機準備好了資料可以繼續發送,以HOLD結束等待狀態;(8)主機繼續傳輸資料;(9)設備接收資料,以R_IP告訴主機正在接收資料;,FIS Transfer Protocal Sequence,(10)主機發送完了整個資料包,發送WTRM告訴設備:主機正在等待傳輸結果;(11)設備接收完

21、整個資料包並效正確,以R_OK告訴主機接收正確;,FIS Transfer Protocal Sequence,(12)主機進入空閒狀態,發送同步信號SYNC;(13)設備進入空閒狀態,發送同步信號SYNC;,Transport Layer,Transport Layer,1.發送時根據Command的種類及格式構造FIS,接受時檢測FIS種類並分解得到有用資訊2.通知Link Layer傳送frame以及獲取Link Layer傳來的frame receipt確認(host收到FIS後也會向device發送確認資訊的FIS)3.管理和流量控制4.向Application Layer報告傳輸完

22、成或者報錯傳輸層不必關心需要傳輸或接收資訊的多少,只需把要傳輸的資料封裝成FIS 格式,發送到Link Layer,或者把收到的FIS去除封裝,提交給Application Layer。,SATA Compatibility with Parallel ATA,Task file location:The task file is in the ATA deviceIn parallel ATA,accesses to these registers result in parallel ATA trafficAll information exchanged between SATA Hos

23、t and drive is done via FISIn SATA,a duplicate copy of the Task File,called“shadow registers,”is located in the host adapter.,Shadow Register,同一個Register,不是2個Register,只不過分了2層,上層是下層的Shadow。第一層是供CPU access,第二層供HW access。CPU在寫Register的時候,會先寫在上層的Shadow Register,硬體update後才會供下層HW access的Register開始執行。,Shad

24、ow Register to Task File,Application layer sends a shadow register command to Transport layer.Transport layer creates the FIS.將payload content的資訊,先寫到shadow command block register和shadow control block register裏,通過FIS傳到device的command register block和control register block;1.shadow command block 映射到 com

25、mand register block;2.shadow control block 映射到 control register block;,Shadow Register:example,Application layer initiate a command.Transport layer creates the FIS is called a Register FIS-Host to Device.Table 73 may be referenced to refresh the readers memory of a simplified version of the Shadow R

26、egister Block organization of an ATA adapter.,Task File Register,IDE介面硬碟的控制是通過硬碟控制器上的二組寄存器實現。Task File Registers(命令寄存器),I/O的埠位址為1F0H1F7H,其作用是傳送命令與命令參數。Control/Diagnostic Registers(控制/診斷寄存器),I/O的埠位址為3F6H3F7H,其作用是控制硬碟驅動器。,Task File:example,讀取 1000 號邏輯磁區開始的 8 個磁區為例:第 0 x1f30 x1f6 4個位元組的埠位址用來寫入 LBA 位址,那

27、麼 1000 號邏輯磁區的 LBA 位址為 0 x000003E8,所以 0 x1F3,0 x1F4 寫 0 x00,0 x1F5 寫 0 x03,0 x1F6 寫 0 xE8。0 x1F2 用來寫入命令所需要讀寫的磁區數,讀取 8 個磁區就寫 0 x080 x1F7 用來寫入要執行的操作的命令碼,讀操作為 0 x20綜合起來,執行的命令序列為:out 0 x1F3,0 x00out 0 x1F4,0 x00out 0 x1F5,0 x03out 0 x1F6,0 xE8out 0 x1F2,0 x08out 0 x1F7,0 x20,FIS Types and Formats,A FIS i

28、s a mechanism to transfer information between host and device application layers1.Shadow Register Block contents2.ATA commands3.Data movement setup information4.Read and write data5.Self test activation6.Unique FIS Type Code,Register FIS-Host to Device(27h),用來傳輸主機的Shadow Register的資料到設備,與ATA/ATAPI指令字

29、和寄存器相容。當Device接收到一個有效的Register FIS-Host to Device,檢查C bit的內容,然後更新命令寄存器/控制寄存器中的內容中,C bit為1,Device按照Command Register中的命令執行命令,C bit為0,Device按照Control Register中的內容執行控制請求。,Register FIS-Device to Host(34h),從裝置送往主機端,傳送裝置的狀態變化。當Device完成一個命令,向主機報告指令完成的狀態。Device用於修改host中shadow block裏的command register和control

30、register,Set Device Bits-Device to Host(A1h),Device用來改寫host 的shadow register中的error或status的某些bit;包括Error全部8 bit和Status中的6 bit,不改變狀態寄存器中的第7 bit BSY、第3 bit DRQ。I表示host在收到該FIS以後,如果shadow status register中BSY和DRQ位都為0時,host進入中斷等待狀態(實際上表明device進入中斷等待狀態)將I位置1後可以設置host中status register的SERV=1,以要求匯流排使用權,此時BSY和

31、DRQ位要都為0,DMA Activate-Device to Host(39h),Device發送該FIS同意主機以DMA方式向設備發送資料,是Device對主機DMA寫命令的一個回應。當發送完FIS後,Device必須進入接收DMA資料接收狀態。每發送一個DMA DATA FIS後,要再次收到DMA Activate FIS才能發送下一個DMA DATA FIS;,DMA setup FIS Bidirectional(41h),Bidirectional進行DMA操作的第一步,目的是為了建立DMA操作參數。發送方通過發送這個FIS,要求對方配置好DMA控制器,同時記憶體空間必須按要求處於

32、準備狀態。D bit為0,代表發送方傳送資料;D bit為l,代表接收方傳送資料,傳輸時一方的D為1 另一方的D為0 DMA Transfer Count表示傳輸資料計數。,PIO Setup-Device to Host(5Fh),由設備發送給主機,告訴主機相關PIO操作參數,包括了在PIO傳輸前和傳輸後shadow register的內容。在PIO傳輸資料的過程中,Device必須先發送這個FIS給主機,表示Device準備好發送或接受數據。與DMA傳輸一樣,每傳一個DATA FIS就要一個PIO SETUP FIS傳輸下一個DATA FIS;,DATA FIS Bidirectional

33、(46h),Bidirectional用來傳輸資料,比如說對硬碟的讀寫操作,資料包的長度是不定的,除去SOF、EOF、CRC和FIS類型等標誌外,最多2048個Dwords。,BIST Activate Bidirectional(58h),讓對方進入測試模式,是一個雙向可用的FIS,接收方以R_OK回應,完成測試工作之後就進入BIST交換狀態了。,Application/Command Layer,Host software issues the ATA commandApplication layer負責將ATA command解析,並向處理器提供Shadow Register 存取介面,

34、處理器根據中斷和狀態資訊存取Shadow Register,完成相對應的操作。Command layer state machine knows the sequence of the transfer from ATA command to FISes.Transport layer creates the FIS.,Command Layer,Command layer state machine,Command Protocol Type,Twelve different categories of command,example:Non-Data Commands,Collection

35、 of commands that use the Non-Data command protocol,ATA basic command sequence,In parallel ATA,all register accesses go over the ATA bus to the deviceIn SATA,register updates are batched together,SATA after COMRESET,After completing a phy reset sequence,device runs diagnostics and transmits a Register FIS-Device to Host with the results,SATA software reset sequence,SATA non-data command sequence,SATA PIO read command sequence,SATA PIO write command sequence,SATA DMA read command sequence,SATA DMA write command sequence,Serial ATA Technology,END,

展开阅读全文
相关资源
猜你喜欢
相关搜索

当前位置:首页 > 生活休闲 > 在线阅读


备案号:宁ICP备20000045号-2

经营许可证:宁B2-20210002

宁公网安备 64010402000987号