教育装备采购网
第七届图书馆 体育教师课题研修班

硬盘数据恢复技术之SATA协议分析(四)

教育装备采购网 2016-04-12 11:08 围观2588次


  前面的几篇文章中,我们已经分析了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(非本网)"的作品,均转载自其它媒体,转载目的在于传递更多信息,并不代表本网赞同其观点和对其真实性负责,且不承担此类作品侵权行为的直接责任及连带责任。如其他媒体、网站或个人从本网下载使用,必须保留本网注明的"稿件来源",并自负版权等法律责任。

③ 如涉及作品内容、版权等问题,请在作品发表之日起两周内与本网联系,否则视为放弃相关权利。

校体购产品