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

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

教育装备采购网 2016-04-13 10:15 围观2904次

  随着我们对SATA协议的逐步分析,SATA的物理层、链路层、传输层的基本原理和结构我们基本上都搞清楚了,现在,我们来看SATA协议的最后一部分,应用层的原理与结构,有的文献上将应用层内部划分出一个命令层来,但总的来看,功能上都是类似的。

  应用层是 SATA协议的顶层结构,它负责所有ATA指令的执行与解析,向处理器报告当前硬盘运行状态,生成对数据的读写请求,读取和设置硬盘的工作性能模式,还包括对控制指令模块寄存器的访问。SATA应用层和PATA协议的应用层功能相同,主要负责所有ATA指令的解析和向处理器报告当前工作状态。当主机的BIOS程序或软件向硬盘控制器发送主机指令时,应用层对主机发送的SATA指令进行解析和执行,它通过指令和控制寄存器来接收指令,硬盘控制器的微处理器通过中断和状态信息设置状态寄存器,响应相应的操作,并向主机报告当前的工作状态,微处理器指示硬盘系统软件执行下一步操作,设置ATA协议内部DMA的控制,实现数据的高速传输。主机向指令寄存器写入指令,并读取指令的状态信息,设备处理器通过设置指令寄存器中的各种参数,控制中断、复位和其他各种状态。

  应用层的命令处理部分,也可称之为命令层,主要负责ATA命令的解析。在发送端,命令层将主机端的映射寄存器(Shadow Register Block)或者设备端的ATA 寄存器(ATA Register)内更新的寄存器值提取出来并转换成对应不同交互机制的命令类型,然后通知传输层构造 FIS;在接收端,命令层通过解析传输层的FIS所携带的信息,判断出是哪一种命令类型并作相对应的操作。SATA2.0标准协议中规定的命令主要包括两大部分:与PATA兼容的ATA命令集和SATA新特性添加的新命令。其中常用的主要有IDENTIFY DEVICE、READ DMA、READ DMA EXT、READ SECTOR(S)、WRITE DMA EXT等。为了实现这些命令,SATA2.0标准协议将他们分为12个类型,每一种类型对应着不同的交互机制,每一种命令还采用不同的命令码来加以区分,具体见表1、2 所示。

  表1 SATA命令类型


  表2 SATA常用命令表

  以READ DMA EXT命令为例,介绍整个交互机制和过程。READ DMA EXT命令属于DMA-In 命令类型,命令码位25h。该命令使用DMA数据传输方式从设备端向主机端发送数据,一次DMA传输的数据必须为8K字节的整数倍。其交互过程如下图1所示:


  图1 DMA-In类型命令交互过程

  详细流程为:

  1、主机软件首先初始化主机端的DMA控制器,包括指定用于存放硬盘数据的内存空间地址;

  2、主机软件初始化主机端的映射寄存器(BSY=0);

  3、主机软件向主机端映射寄存器发起READ DMA EXT命令(BSY=1),命令层识别该命令的交互机制并通知传输层构造一个Register FIS - Host to Device 发送到设备端;

  4、设备端接收到该FIS后,校验其正确性并解析出命令内容;

  5、设备端执行命令-READ DMA EXT,读取硬盘中目标扇区的数据并存储在硬盘本地缓存中;

  6、设备端然后通过Data FIS向主机端发送数据,根据扇区数决定发送Data FIS的数量,一次Data FIS所能传输的数据量为16个扇区(16×512Bytes=8KB);

  7、主机端接收到数据后校验是否出现错误;

  8、通过DMA 控制器将主机端的缓存中的数据转移到主机内存中,当速度不匹配时需要进行流量控制;

  9、当数据全部发送完成后,设备端将完成状态通过Register FIS-Device to Host发送给主机端;

  10、主机端更新映射寄存器组中的值;

  11、主机端向主机软件发起中断,报告完成状态,结束命令。

  应用层是SATA2.0标准协议的顶层,它为主机软件提供编程接口,负责执行所有的ATA命令。应用层包含映射寄存器和SATA协议规定的寄存器组,主机软件可以根据中断标志和状态信息访问并更新这些寄存器,使得SATA标准接口根据命令完成相应的操作。主机端映射寄存器与PATA相兼容,包括了命令寄存器、设备寄存器、设备控制寄存器、错误寄存器、状态寄存器等。下面对这些寄存器进行简要介绍,如表 3所示。


  表3 主机端映射寄存器表

  除了映射寄存器之外,SATA还规定了16组SCR寄存器(Status and Control Register,状态控制寄存器)。SCR寄存器独立于映射寄存器之外,用于SATA标准接口新特性的状态报告和错误信息。目前协议使用了 5 组,剩下的作为未来升级使用,其定义见表4。


  表4 SCR 寄存器定义表

  SATA 传输层完成各种FIS帧的封装后,应用层利用这些封装好的 FIS进行接口通讯。协议根据接口各种数据传输方式需要,定义设计各种不同的数据传输控制流程, SATA 协议设备端常用数据传输控制操作流程:

  非数据命令类型操作流程

  非数据命令操作类型主要读取或设置SATA接口设备端的状态或属性信息等,如SLEEP , IDLE , FLUSH CACHE等命令。设备端收到此类命令后,执行该命令并以发送响应FIS帧作为回应,而响应FIS帧中包括了执行命令后的状态信息以及可能的出错信息,具体执行操作流程如图2所示。


  图2 非数据命令类型操作流程

  2. PIO数据读写命令类型操作流程

  PIO 数据读写操作命令类型主要用作从 SATA 设备端的硬盘内部扇区中读取少量数据,如读取设备整体属性的命令IDENTIFY,扇区读取命令READ等。设备端收到命令后,设置状态寄存器并准备发送数据,准备完毕后先发送PIO SETUP FIS信息帧,然后再将准备好的数据封装成DATA FIS信息帧发送给主机端,如此循环直至数据传输完毕,最后发送响应 FIS信息帧表示传输完毕,具体执行操作流程如图3。


  图3 PIO数据读命令类型操作流程

  3. DMA 数据读写命令类型操作流程

  DMA 数据传输与 PIO大致相同,不同点在于DMA传输操作需要配置 DMA控制器,并利用该控制器来进行数据传输操作,而且一次可以传输多个DATA FIS信息帧,因此DMA数据传输率比PIO较高。

  总体上看,SATA的应用层主要完成命令的处理和数据的传输,这些操作和PATA协议高度兼容,并添加了体现SATA特性的一些新的寄存器和命令。理解这些寄存器和命令的使用,是主机端驱动开发和设备端数据读取的基础。

  通过连续5篇文章的分析,我们对SATA协议已经有了一个清晰的认识,对SATA的框架基本上分析了一遍,但“光说不练是假把式”,后续的文章中,我们将动用SATA协议分析的利器-SATA总线分析仪,连接主板和SATA硬盘,具体的展现SATA主机端和设备端通信的细节,敬请期待。

  关于达思科技

  达思科技,国家级高新技术企业,天津市国家保密局涉密载体数据恢复唯一协作单位,数据恢复和取证行业著名品牌,是一家以技术研发为核心生产力的技术型企业,在国内乃至全亚洲数据恢复与取证技术领先!

  达思科技 中国数据恢复与取证专家!

  更多数据恢复与取证技术、互联网请关注微信公众订阅号:woocs

  微信号:woocs

  长按识别二维码关注

  专注数据恢复与取证技术、互联网

  投稿:woocs@qq.com

点击进入达思凯瑞技术(北京)有限公司展台查看更多 来源:达思凯瑞技术(北京)有限公司 我要投稿
校体购终极页

相关阅读

  • 西部数据WD5000AAKX磁头损坏数据恢复成功
    教育装备采购网08-21
    上个月中,王先生带着西部数据WD5000AAKXSN:WCAYUFZ23845来到达思数据恢复中心,说电脑开机很慢,开机后一操作就死机,怀疑硬盘故障。达思数据恢复工程师立即检测,根据经验判断,硬盘的磁头损坏...
  • 希捷ST500LM021有声响数据恢复成功
    教育装备采购网08-09
    上个月中,宋先生带着希捷ST500LM021SN:W624CFKC来到达思数据恢复中心,宋先生说,硬盘有声响,不明故障原因。达思数据恢复工程师立即检测,根据经验判断,硬盘的磁头损坏了,由于宋先生并没有多...
  • 希捷逻辑故障数据恢复成功
    教育装备采购网08-02
    上上周,王先生带着4T希捷SN:NA7F1E8S来到达思数据恢复中心找工程师恢复数据。达思硬盘数据恢复工程师先检测硬盘用winhex查看硬盘底层数据流判定为逻辑故障,和客户沟通好之后,将客户硬盘接到达...
  • 希捷ST1000LM010磁头损坏数据恢复成功
    教育装备采购网08-01
    上个月中旬,武先生带着希捷ST1000LM010SN:W100HW7A来到达思数据恢复中心,根据客户描述,硬盘有声响,不清楚什么原因造成的,所以直接带着硬盘来达思数据恢复中心了。达思数据恢复工程师立即检...
  • 富士通s937逻辑故障数据恢复成功
    教育装备采购网07-17
    上上周,以为自称王先生的客户带着富士通S937来到达思数据恢复中心,王先生说今早电脑被不小心摔了一下,由于里边有重要内容所以并未进行过通电尝试,便直接带着电脑来到这里了。希望工程师帮忙...
  • 联想笔记本逻辑鼓掌数据恢复成功
    教育装备采购网07-16
    这个月5号,王先生带着联想笔记本电脑来到达思数据恢复中心,说是电脑开机很慢,半天都是蓝屏状态,很着急,怕其中的重要资料丢失了。达思硬盘数据恢复工程师先检测硬盘用winhex查看硬盘底层数据...
  • 西部数据WD5000LPVX-08V0T 磁头损坏数据恢复成功
    教育装备采购网07-15
    上个星期三,刘先生带着西部数据WD5000LPVX-08V0TSN:WXA1A6334371来到达思数据恢复中心,刘先生描述说自己的硬盘磁头坏了,想来这找工程师修修,最重要的是把硬盘里边的数据恢复出来,不要丢失。...
  • 联想硬盘 320gG逻辑故障数据恢复成功
    教育装备采购网07-12
    前几天,贾女士带着联想硬盘320gG型号:SN:0a0428093901169来到达思数据恢复中心,故障不明,找工程师检测。达思硬盘数据恢复工程师先检测硬盘用winhex查看硬盘底层数据流判定为逻辑故障,和客户...

版权与免责声明:

① 凡本网注明"来源:教育装备采购网"的所有作品,版权均属于教育装备采购网,未经本网授权不得转载、摘编或利用其它方式使用。已获本网授权的作品,应在授权范围内使用,并注明"来源:教育装备采购网"。违者本网将追究相关法律责任。

② 本网凡注明"来源:XXX(非本网)"的作品,均转载自其它媒体,转载目的在于传递更多信息,并不代表本网赞同其观点和对其真实性负责,且不承担此类作品侵权行为的直接责任及连带责任。如其他媒体、网站或个人从本网下载使用,必须保留本网注明的"稿件来源",并自负版权等法律责任。

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

校体购产品