1 Register - Host to Device

描述:将映像寄存器内容由主机发送至设备,用于发送命令;

发送:

�初始化:c="1"时,写命令寄存器;c="0"时,写设备控制寄存器;

�写完命令寄存器后 400ns 内,BSY 置位;若写完设备控制寄存器并将 SRST 由“0”

置"1",则在 400ns 内将 BSY 置位;

�状态寄存器中 BSY="1"或 DRQ="1"时,主机禁止写 Feature(7:0)、Count(7:0)、

LBA(23:0)、Device Register,此时任意写 DeviceRegister 的操作(除设备复位外)

会被忽略;

接收:

�设备刷新命令、控制块寄存器,然后执行新命令/新控制(以寄存器 c 为依据)的

请求;

�此 FIS 只在状态改变时发送;

2 Register - Device to Host

描述:将映像寄存器内容由设备发送至主机,用于指明命令完成的状态或改变主机适配器映

像寄存器内容;

发送:

�通常命令完成时发送;

�当 BSY="1"或 DRQ="1"时,此 FIS 只能用于请求总线释放命令,将状态寄存器中

的 SERV 置位;当 BSY="0"且 DRQ="0"时,用 Set Device Bit FIS 将 SERV 置位;

� SERV 随此 FIS 写至映像寄存器,准确反映等待服务请求的状态;

接收:

�接收到的寄存器内容传递至主机适配器的映像寄存器;

� BSY=0 且 DRQ=0 时,主机适配器忽略此 FIS 内容,不更新映像寄存器内容;

3 Set Device Bits - Device to Host

描述:设备用来载入设备专有的存取的映像寄存器区块位;这些区块位是:8bit 的 Error 和

6bit 的 Status(Status(6:4)&Status(2:0));

此 FIS 包含 1bit 控制信号,使主机适配器在 BSY="0"且 DRQ="0"时产生中断;

发送:

�设备发送此 FIS 以改变 Error/Status Register 中的值;

�请求总线释放命令服务时,用此 FIS 置位 SERV(此时中断位 I="1");

接收:

�主机适配器接到此信号时将 Error、Status(6:4)、Status(2:0)载入;

� BSY、DRQ 值应不变;

�若中断位 I="1",BSY="0"且 DRQ="0",则主机适配器进入中断等待状态;

4 DMA Activate - Device to Host

描述:设备用来通知主机开始 DMA 数据发送;

主机为完成所有数据发送请求可能需发送许多数据 FIS,此时主机需等待一个 DMA

Activate FIS 成功接收;

发送:

�设备发送此 FIS 至主机用来初始化主机至设备的 DMA 数据流,这是匹配 DMA 写入命令的数据传送的一部分;

�设备发送此 FIS 时应当做好准备接收带有 DMA Data 的 Data - Host to Device FIS;

接收:

�接收到此 FIS,主机适配器 DMA 控制器准备就绪,则主机适配器应当初始化 DATA

FIS 发送,发送匹配 DMA 控制器内容所指向的主机存储区域内的数据;

�若接收到此 FIS,主机适配器 DMA 控制器未准备就绪,则主机适配器应设立一个

内部状态表明 DMA 控制器已被设备激活,一旦准备就绪则开始发送;

5 DMA Setup - Bidirectional

描述:此 FIS 用于初始化第一方 DMA 访问主机内存,用于请求主机或设备在发送数据之前

程序化它的 DMA 控制器;

此 FIS 允许将实际的主机内存分离出来,分离方式是用一个基础内存描述符号引用的

存储区域,来表示主机授权设备访问的存储区域;

主机、设备会提前一些时间接收到 64 位 DMA 缓存描述符号;

通过缓存偏移(buffer offset)可以在 buffer 内任意寻址;

传统模式设备或其驱动不需支持第一方 DMA,但这在未来的设备中是必要的;

发送:

�主机或设备发送 DMA Setup 是 DMA 访问的第一步;

�发送目的是为一个或多个数据传输建立 DMA 硬件环境;

� DMA Setup 只在 DMA 环境需要改变时被请求发送;

�许多 DATA FIS 随后发送(例如传输计数超出最大 DATA FIS 或 DATA 传输中断),

此时应将数据放置在 FIS 的连续地址中,除非中间介入 DMA Setup 改变 DMA 环

境;

接收:

�收到 DMA Setup 时,应验证 DMA Setup 请求,加入缓存描述符号、规定的偏移量、

计数是有效的,用 FIS 中的信息程序化并装备适配器的 DMA 控制器;

�验证 DMA Setup 有效后,D="0",接收 FIS 的一方用一个或多个 DATA 回应,直到

DMA Context 耗尽;D="1",接收 FIS 的一方需准备好接收 DATA;

�若中断位 I="1",则 DMA 传送完成时应产生等待状态,DMA 传送完成依系统不同

而定,但通常包括传输计数耗尽或 DMA 控制器发现错误;

注意:

� 第一方 DMA 访问分为两类:命令或状态传输,用户数据传输。其中用户传输通常

不产生中断;

� Auto-Activate:主机到设备的第一方 DMA 传输需传输 DMA Setup 并随后传输 DMA

Activate,由于设备只在准备好接收时发送 DMA Setup,所以常常通过将 DMA Setup

中的"A"置位来省去 DMA Activate 的发送;

� 主机总线适配器需保证第一方 DMA 数据期间无中断,除非映像寄存器中 Error 位

置位,否则主机应保证除需要的数据负载和软复位的 FIS 以外任何 FIS 不能从主机

传向设备。

6 BIST Activate - Bidirectional

描述:BIST(Build In Self Test)用于给接收 FIS 一方选择一种反馈模式;

发送方发完 FIS,将应用层、传输层、物理层准备好以传送数据流,直到接收方 FIS

接收成功的信号,此 FIS 才算成功发送;7 PIO Setup - Device to Host

描述:设备用来提供给主机有关 PIO DATA 阶段的足够信息,让主机适配器更有效率地处理

PIO DATA 传输;

对 PIO DATA 传输来说,每一个 DATA FIS 之前设备需要向主机发送此 FIS,不论主

机到设备数据发送还是设备到主机都遵循此规则;

ATA 标准中有严格的定时限制约束,PIO Setup 中包含初始和结束的状态值,此状态

值用于主机首先用信号通知主机软件准备状态,并 PIO 写入 DATA(BSY="0",

DRQ="1"),然后突然令 DRQ="0",可能令 BSY="1"通知主机软件;

发送:(Host to Device)

�设备发送此 FIS 来为 PIO data 负载传输作准备;

� PIO data 负载传输中开头、结尾的状态值将由 FIS 存入映像寄存器;

�设备需准备好接收主机发送的 PIO Setup FIS 的回馈数据信号;

接收:(Host to Device)

�接收到设备发来的 PIO Setup,主机应更新所有映像寄存器并将 E_status 值存入临

时寄存器;

�传输长度值应存入倒数计时寄存器;

�检测到映像状态寄存器变化,主机软件卡是对数据映像寄存器进行一些列写操作

并产生一个 Data FIS 发给 Device;

�对数据映像寄存器的每一个写操作会导致一个字的数据加入到 FIS 中,并使

Countdown 渐减;

� E_Status 值应在 Countdown 到达终值的 400ns 内传送至映像状态寄存器;

�传送字数为奇数时,最后一字放在最低位(word 0),高位补 0;

发送:(Device to Host)

�设备发送此 FIS 来为 PIO data 负载传输作准备;

� PIO data 负载传输中开头、结尾的状态值将由 FIS 存入映像寄存器;

�设备需准备好在发送 PIO Setup FIS 之后发送数据信号;

接收:(Device to Host)

�接收到设备发来的 PIO Setup,主机应更新所有映像寄存器并将 E_status 值存入临

时寄存器;

�传输长度值应存入倒数计时寄存器;

�检测到映像状态寄存器变化,主机软件卡是对数据映像寄存器进行一些列读操作

并产生一个 Data FIS 发给 Device;

�对数据映像寄存器的每一个读操作会导致一个字的数据加入到 FIS 中,并使

Countdown 渐减;

� E_Status 值应在 Countdown 到达终值的 400ns 内传送至映像状态寄存器;

�传送字数为奇数时,最后一字放在最低位(word 0),高位补 0;

8 Data - Bidirectional

描述:此 FIS(两种)用来传递数据,比如读出或写入到硬件驱动的一部分数据;

此 FIS 只是数据传送的一部分,此 FIS 前、后均有传输动作;

负载中的字节数不明确,SOFp 与 EOFp 之间,不包含 FIS TYPE、CRC 都为数据字;

发送:

�设备发送 Data FIS 在以下情况:传统 PIO 读模式、DMA 读、第一方 DMA 写入主机 MEM;

�设备先于 Data FIS 应发送环境设置(如先发 DMA Setup);

�主机发送 Data FIS 在以下情况:PIO 写、DMA 写、第一方 DMA 读取主机 MEM;

�主机先于 Data FIS 应发送环境设置;

� DMA 操作需发送许多 Data,在传输中断或数据过长时有可能产生分割;

�回应 PIO Setup 发送 Data 时,Data FIS 应包含 PIO Setup FIS 中的传输计数;

�传输若被分割为多个 FIS,所有中间 FIS 应包含完成的全部 Dword;

接收:

�主机或设备都不缓存整个 Data FIS 来检验 CRC;

�数据错误应反映在整个命令完成状态中;

SATA3.0中FIS的八种类型相关推荐

  1. 在C#2.0中使用Nullable可空类型(转帖)

    在C#2.0中使用Nullable可空类型 在C#1.x的版本中,一个值类型变量是不可以被赋予null值的,否则会产生异常.在C#2.0中,微软提供了Nullable类型,允许用它定义包含null值( ...

  2. 一文看懂现金流量表的八种类型

    现金流量表是三张表中最不受财务人待见的一张表,因为它不像利润表那么简单直接的反映出企业的盈利状况,也不像资产负债表那么直观的把企业的上上下下盘点一遍.现金流量表折腾出经营.投资.筹资三大活动,只为了反 ...

  3. STM32中GPIO口八种工作模式简介及LED灯测试

    STM32中GPIO口八种工作模式简介及LED灯测试 一.GPIO口八种工作模式 二. LED灯测试 一.GPIO口八种工作模式 在STM32单片机里对于GPIO的配置种类有8种之多,包括4种输入模式 ...

  4. 高级语言中的单词——5种类型的token

    <高级语言中的单词--5种类型的token>源站链接,阅读体验更佳 特别感谢李文塔工程师,这篇文章借鉴了<Go语言核心编程>第一章的许多内容,在写这篇文章的时候我卡了很长一段时 ...

  5. swift中变量的几种类型

    swift中变量的几种类型 swift中变量分为 optional,non-optional 以及 implicitly unwrapped optional 这几种类型 var nullablePr ...

  6. 在c语言程序设计中函数有两种类型 和,在C语言程序设计中函数有两种类型:__________和__________...

    在C语言程序设计中函数有两种类型:__________和__________ 以下程序的输出结果是()intA:6B:3C:2D:1 红楼梦中提到的名菜有A:酒酿清蒸鸭子B:奶油松瓤卷酥C:四喜丸子D ...

  7. java对象数组覆盖_java – 如何覆盖RAML 1.0中的对象数组属性类型

    据了解,Response是抽象不同类型的数据,但格式相似.一种方法是使用resourcesTypes抽象出响应中的相似性,并在类型中定义具体的数据. #%RAML 1.0 title: New API ...

  8. 在C#2.0中使用Nullable可空类型

    在C#1.x的版本中,一个值类型变量是不可以被赋予null值的,否则会产生异常.在C#2.0中,微软提供了Nullable类型,允许用它定义包含null值(即空值)的数据类型,这对处理数据库中包含可选 ...

  9. linux系统中文件的几种类型

    Linux系统是以文件的形式来进行管理的.Linux文件类型常见的有:普通文件.目录.字符设备文件.块设备文件.符号链接文件等,如果想了解这方面知识的弟兄,就进来了解了解. Linux系统不同于win ...

最新文章

  1. Facebook iOS 应用是如何加速图片显示的?
  2. 智能车竞赛“猪尾汇” 是不是二呀?
  3. 选择创业项目的基础——适合自己的才是最好的
  4. 如何把apdu[decode_len]打印出来
  5. 云服务器可以文件服务器,云服务器 可以上传文件
  6. MySQL InnoDB 存储引擎文件
  7. 内存管理, 对象的生命周期
  8. mysql 表 区 块 页_数据库 | 001-MySQL梳理系列(一)
  9. 线上Mysql重大事故快速应急解决办法
  10. 10. PHP 常量
  11. 设计模式之组合模式(十四)
  12. 120个常用货源网站,赶紧收藏!
  13. echarts写地图,调用本地地图json数据,实现秒下钻功能
  14. linux终端下载速度只有几kb,[菜鸟教学]如何提高linux下的下载速度!新手必看!...
  15. C++笔记——第一个MFC程序
  16. c语言中dot作用,Unix中的dot命令详解
  17. 有道云笔记同步IT笔试面试资源
  18. MSP430X1XX系列ADC12和DMA详解(附带程序)(上)--ADC12详解与源码
  19. 消防管道标志色号_消防标志的起步问题
  20. Spring Cloud Gateway 解决跨域问题

热门文章

  1. 网络基本概念之TCP, UDP, 单播(Unicast), 组播(Multicast)
  2. 去哪儿2018春季校园招聘软件开发工程师笔试经验
  3. 人工智能软件怎么开发
  4. 不要再逼我们去见旧情人
  5. PointGet的一生
  6. MySQL彻底卸载全过程
  7. 33、网络地址转换(NAT)
  8. 百度地图的鼠标绘制工具
  9. 2014年至今参与的五个项目总结
  10. 五、C语言创建桌面程序:画笔和画刷