<acronym id="pokdi"><strong id="pokdi"></strong></acronym>
      <acronym id="pokdi"><label id="pokdi"><xmp id="pokdi"></xmp></label></acronym>

      <td id="pokdi"><ruby id="pokdi"></ruby></td>
      <td id="pokdi"><option id="pokdi"></option></td>
      <td id="pokdi"></td>

        1. 教育裝備采購網
          第八屆圖書館論壇 校體購2

          硬盤數據恢復技術之SATA協議分析(四)

          教育裝備采購網 2016-04-12 11:08 圍觀2603次


            前面的幾篇文章中,我們已經分析了SATA協議的物理層和鏈路層,下面繼續分析SATA協議的傳輸層。

            傳輸層的功能,簡單的說,就是面向應用層和鏈路層來調整適應兩層傳輸的數據格式,它根據應用層的讀寫請求指令和鏈路層的應答信息來啟動數據包的傳送,傳輸層控制主機和硬盤之間傳輸控制指令和數據的幀信息結構(Frame Information Structures,FIS)的格式,傳輸層不會改變傳輸數據的內容,只會將要傳輸至應用層的數據打包成數據幀的結構,并且將接收到的數據幀還原成數據傳輸至鏈路層。

            具體來說,傳輸層主要負責FIS幀信息結構的封裝與解析。發送數據時,傳輸層將映射寄存器中的命令,數據等按協議規定結構進行封裝,之后將封裝幀信息結構傳遞給鏈路層進行發送;接收數據時,傳輸層會將鏈路層傳遞的數據流按照SATA協議規定的相應數據結構進行解析,檢查FIS中的各種控制字查看數據傳輸狀態。傳輸層位于數據鏈路層的上一層,主要負責 FIS(Frame Information Structure,幀信息結構)的封裝與解封。它不需要知道一幀數據具體是如何傳輸的,只負責在發送端按照上層命令構造FIS,在接收端提取出FIS 中的數據和控制信息。

            當傳輸層接收到上層FIS封裝請求后,需要完成的功能包括:

            1、收集基于FIS請求類型的FIS內容;

            2、按照既定的順序排列FIS內容;

            3、向數據鏈路層發送幀傳輸請求并發送FIS;

            4、管理Buffer/FIFO數據流,需要時告知數據鏈路層流量控制;

            5、接收來自數據鏈路層的對方的傳輸狀態報告;

            6、向上層報告正確或錯誤傳輸狀態;

            當傳輸層接收到來自數據鏈路層的FIS后,需要完成的功能包括:

            1、接收FIS并確定其類型;

            2、根據FIS的類型將FIS內容分配到指定的位置;

            3、對于主機端的傳輸層而言,接收到FIS的同時也需要向設備端返回一個FIS;

            4、向上層報告正確或錯誤傳輸狀態。

            傳輸層接收到來自于應用層的命令請求后,根據命令的不同將相關寄存器中的信息按照SATA標準協議規定的格式封裝為FIS傳遞給數據鏈路層。當數據鏈路層成功接收后,向傳輸層反饋一個傳輸完成的狀態標志。傳輸層接收到來自數據鏈路層的FIS后,判斷該FIS是否有效以及類型。如果是有效的類型,則按照SATA標準協議規定格式進行解析,并將其中的數據映射到對應的寄存器中,然后通知應用層更新相應寄存器的值。如果是無效的類型,則丟棄。就是說,對寄存器的操作,是在傳輸層完成的。表1為SATA的寄存器列表

            表1 SATA寄存器列表

            FIS(Frame Information Struction,幀信息結構)是一組 DWs的集合,用于主機端和設備端之間的信息交換(包括數據和控制信息),配合 SOFP和 EOFP作為開始和結束標志組成完整的一幀數據。SATA協議一共定義了八種FIS,包括寄存器、配置和數據三大類型,每一種 FIS 的第一個DW的第一個字節是類型代碼,代表FIS的類型和名稱。此外還預留了六組類型值以備未來版本升級使用。表2為FIS的類型

            表2 SATA協議的FIS的類型

            具體介紹一下各個FIS的功能和結構:

            主機寄存器信息幀,Register FIS - Host to Device,用于將主機端寄存器組中更新過的值傳遞到設備端寄存器組中,該FIS只能由主機發送。每當主機端寄存器組的值發生變化,主機端可以發起一次Register FIS - Host to Device到設備端,設備端將接解析出的信息更新到自己的ATA 寄存器組中,并執行相應的操作。Register FIS - Host to Device 的類型代碼為 27h,位于第一DW第一字節處,該FIS 共有5 個DWs。其中,C 位的值(“0”或“1”)取決于主機端寄存器組中命令寄存器(Command Register)或設備控制寄存器(Device Control Register)發生了變化,特征寄存器(Feature Register)、設備寄存器(Device Register)、LBA 地址寄存器(LBA Address Register)等從對應的主機端寄存器組中獲取,R 位和保留字節一律賦值“0”,該幀結構如下圖所示:

            圖1 Register FIS - Host to Device 幀結構圖

            在主機端的命令寄存器或控制寄存器中的內容被改變時,主機端則立即觸發將映射寄存器的內容按早定義的FIS結構封裝發送出去。當設備端接收到一個主機寄存器信息幀時,主機端按協議定義的結構提出幀信息的命令,控制信息,更新自身映射寄存器中相應的信息,并來判斷是執行命令操作或執行控制操作。

            從圖1可看出,該幀由5組DW組成,共20個字節構成,包含了各個必要的寄存器的信息。

            設備信息幀,Register FIS - Device to Host 用于將設備端寄存器組中更新過的值傳遞到主機端寄存器組中以反饋命令執行情況,該 FIS 只能由設備發送。每當設備完成了一次命令,設備端便會發起一次 Register FIS - Device to Host 到主機端,主機端接收并解析出信息更新自己的寄存器組。Register FIS - Device to Host 的類型代碼為34h,位于第一 DW 第一字節處,該FIS共有5個DWs。其中,I 位是中斷標志位,錯誤寄存器(Error Register)、狀態寄存器(Status Register)、LBA 地址寄存器等從對應的設備端寄存器組中獲取,R位和保留字節一律賦值“0”,其幀結構如圖2所示:

            圖2 Register FIS - Device to Host 幀結構圖

            當設備端完成了某項命令之后,需要更新主機端的映射寄存器狀態時,則發送設備寄存器信息幀至主機端,通過狀態寄存器的信息向主機報告命令完成狀態及可能的錯誤信息。當主機端接收到一個設備寄存器信息幀,主機端會按照協議規定的格式對信息幀進行解析,并更新映射寄存器中的內容。

            DMA響應信息幀,DMA Activate FIS用于設備端響應主機端發起的 DMA 傳輸請求,該FIS只能由設備發送。當主機端需要發送多個Data FISes以完成一次DMA傳輸過程時,主機端在每次發送 Data FIS 之前都必須確認成功接收到DMA Activate FIS,這說明設備端已經做好了接收 Data FIS 的準備。DMA Activate FIS 的類型代碼為 39h,位于第一 DW 第一字節處,該 FIS 共有1個DWs,其幀結構如圖3所示:

            圖3 DMA Activate FIS 幀結構圖

            DMA建立信息幀,DMA Setup FIS 用于設備端以 First-Party DMA 方式訪問主機內存時,在正式傳輸數據之前,對主機/設備端DMA 控制器進行配置。該FIS允許設備端自行建立DMA通道,直接對DMA控制器發送請求通知,可由主機/設備發送。DMA Setup FIS 的類型代碼為41h,位于第一DW第一字節處,該FIS共有7個DWs。其中,D 位代表數據傳輸方向;A 位表示第一次發送Data FIS是否需要 DMA Activate FIS 觸發;I 位是DMA傳輸完成的中斷標志;R位和保留字節一律賦值“0”,其幀結構如圖4所示:

            圖4 DMA Setup FIS 幀結構圖

            數據信息幀,Data FIS 用于主機端和設備端之間傳遞數據,主機/設備均可發送。Data FIS 的類型代碼為 46h,位于第一DW第一字節處。該FIS的長度是不確定的,根據實際情況而定,最大值不能超過2048個DWs。如果待發送的數據不足DW的整數倍,那么需要在數據末尾補“0”,其幀結構如圖5所示:

            圖5 Data FIS 幀結構圖

            BIST響應信息幀,BIST Activate FIS 用于使接收方進入回環測試模式,主機/設備均可發送。BIST Activate FIS 的類型代碼為58h,位于第一DW第一字節處。正常工作時不會出現,其幀結構如圖6所示:

            圖6 BIST Activate FIS 幀結構圖

            PIO傳輸建立信息幀,PIO Setup FIS 用于設備端向主機端提供關于 PIO 數據的充足信息,使得主機端可以更有效地控制 PIO數據傳輸,該 FIS只能由設備發送。在PIO傳輸中,無論是主機端發送數據給設備端還是設備端發送數據給主機端,在每一次傳輸 Data FIS之前設備端都會給主機端發送一次PIO Setup FIS。PIO Setup FIS 的類型代碼為 5Fh,位于第一DW第一字節處,該FIS共有5個DWs。其中,D 位代表數據傳輸方向;I 是中斷標志位;R 位和保留字節一律賦值“0”,其幀結構如圖7所示:

            圖7 PIO Setup FIS 幀結構圖

            無論設備端需要準備發送或接收數據,在設備端與主機端之間以 PIO數據傳輸方式進行數據傳輸時,設備端都需要向主機端發送PIO 操作信息幀,通知主機端 PIO 操作的各項相關信息,如 PIO 傳輸前后的地址,扇區大小,狀態等。當該信息幀傳輸完畢后,設備端則進入發送或接收數據狀態,等待主機端的相應信息。

            設備置位信息幀,Set Device Bits FIS 用于更新主機端寄存器組中僅對設備開放寫權限的寄存器值,比如錯誤寄存器、狀態寄存器中的 6位,該 FIS 只能由設備發送。設備端首先對自己的寄存器進行改寫,然后向主機端發送一個 Set Device Bits FIS,當主機端接收到將改寫過的內容后更新自己的寄存器。Set Device Bits FIS 的類型代碼為A1h,位于第一DW第一字節處,該FIS共有2個DWs。其中,Status Hi 表示狀態寄存器的 4、5、6 位;Status Lo表示狀態寄存器的 0、1、2 位;I 是中斷標志位;R 位和保留字節一律賦值“0”,其幀結構如圖8所示:

            圖8 Set Device Bits FIS 幀結構圖

            由以上分析,可知,SATA的傳輸層,主要處理信息包,所用到的寄存器與PATA協議的類似。下一篇文章中將介紹SATA的應用層的原理與結構,敬請關注。

            關于達思科技

            達思科技,國家級高新技術企業,天津市國家保密局涉密載體數據恢復唯一協作單位,數據恢復和取證行業著名品牌,是一家以技術研發為核心生產力的技術型企業,在國內乃至全亞洲數據恢復與取證技術領先!

            達思科技 中國數據恢復與取證專家!

            更多數據恢復與取證技術、互聯網請關注微信公眾訂閱號:woocs

            微信號:woocs

            長按識別二維碼關注

            專注數據恢復與取證技術、互聯網

            投稿:woocs@qq.com


          點擊進入達思凱瑞技術(北京)有限公司展臺查看更多 來源:達思凱瑞技術(北京)有限公司 我要投稿
          校體購終極頁

          相關閱讀

          • 西部數據WD5000AAKX磁頭損壞數據恢復成功
            教育裝備采購網08-21
            上個月中,王先生帶著西部數據WD5000AAKXSN:WCAYUFZ23845來到達思數據恢復中心,說電腦開機很慢,開機后一操作就死機,懷疑硬盤故障。達思數據恢復工程師立即檢測,根據經驗判斷,硬盤的磁頭損壞...
          • 希捷ST500LM021有聲響數據恢復成功
            教育裝備采購網08-09
            上個月中,宋先生帶著希捷ST500LM021SN:W624CFKC來到達思數據恢復中心,宋先生說,硬盤有聲響,不明故障原因。達思數據恢復工程師立即檢測,根據經驗判斷,硬盤的磁頭損壞了,由于宋先生并沒有多...
          • 小米6物理故障數據恢復成功
            教育裝備采購網08-08
            上個月初,李女士帶著小米6來到達思數據恢復中心,李女士說當天上班的時候路上不小心把手機摔在了地上,結果屏幕碎了,而且無法開機,李女士不知道手機還能不能修,只是希望里邊的數據不要丟失。...
          • 華為榮耀6P邏輯故障數據恢復成功
            教育裝備采購網08-07
            上個月中,張先生帶著自己的華為榮耀6P來到達思數據恢復中心,張先生說早上拿著手機洗漱的時候不小心手機掉進洗手池里,結果開不了機了,因為手機里有幾乎所有重要人的通訊方式和對自己一些很重...
          • 16G U盤數據恢復成功
            教育裝備采購網08-06
            上個月中旬,李先生帶著U盤來達思數據恢復中心,經李先生描述,u盤進行剪切操作然后電腦死機強制拔出后看不到數據,很是著急,不知道怎么辦。達思硬盤數據恢復工程師先檢測u盤用winhex查看硬盤底...
          • 希捷邏輯故障數據恢復成功
            教育裝備采購網08-02
            上上周,王先生帶著4T希捷SN:NA7F1E8S來到達思數據恢復中心找工程師恢復數據。達思硬盤數據恢復工程師先檢測硬盤用winhex查看硬盤底層數據流判定為邏輯故障,和客戶溝通好之后,將客戶硬盤接到達...
          • 希捷ST1000LM010磁頭損壞數據恢復成功
            教育裝備采購網08-01
            上個月中旬,武先生帶著希捷ST1000LM010SN:W100HW7A來到達思數據恢復中心,根據客戶描述,硬盤有聲響,不清楚什么原因造成的,所以直接帶著硬盤來達思數據恢復中心了。達思數據恢復工程師立即檢...
          • 濟南某一卡通管理平臺數據庫修復成功案例
            教育裝備采購網07-31
            濟南唐先生的公司數據庫中了勒索病毒,他們公司使用的是自己研發的一款一卡通軟件平臺,找到我們達思后,工程師先檢測數據庫,查看測試數據庫損壞程度。從檢測結果上看,數據庫損壞不多,修復成...

          版權與免責聲明:

          ① 凡本網注明"來源:教育裝備采購網"的所有作品,版權均屬于教育裝備采購網,未經本網授權不得轉載、摘編或利用其它方式使用。已獲本網授權的作品,應在授權范圍內使用,并注明"來源:教育裝備采購網"。違者本網將追究相關法律責任。

          ② 本網凡注明"來源:XXX(非本網)"的作品,均轉載自其它媒體,轉載目的在于傳遞更多信息,并不代表本網贊同其觀點和對其真實性負責,且不承擔此類作品侵權行為的直接責任及連帶責任。如其他媒體、網站或個人從本網下載使用,必須保留本網注明的"稿件來源",并自負版權等法律責任。

          ③ 如涉及作品內容、版權等問題,請在作品發表之日起兩周內與本網聯系,否則視為放棄相關權利。

          校體購產品
          99久久国产自偷自偷免费一区|91久久精品无码一区|国语自产精品视频在线区|伊人久久大香线蕉av综合

            <acronym id="pokdi"><strong id="pokdi"></strong></acronym>
              <acronym id="pokdi"><label id="pokdi"><xmp id="pokdi"></xmp></label></acronym>

              <td id="pokdi"><ruby id="pokdi"></ruby></td>
              <td id="pokdi"><option id="pokdi"></option></td>
              <td id="pokdi"></td>