SATA3.0中FIS的八种类型

news/2024/11/17 20:48:59/

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 StatusStatus(6:4)&Status(2:0));

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

发送:

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

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

接收:

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

BSYDRQ 值应不变;

若中断位 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

描述:BISTBuild 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 写入 DATABSY="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 TYPECRC 都为数据字;

发送:

设备发送 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

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


http://www.ppmy.cn/news/807158.html

相关文章

scis硬盘和SATA硬盘有什么区别

文章目录 1.要知道区别,就要知道什么是scis硬盘.2.普通硬盘工作时对cpu的使用3.scis硬盘独特之处4.除此之外,还有信息传输的不同5.sas和sics的区别 1.要知道区别,就要知道什么是scis硬盘. scis是一种硬盘的技术,他和普通的ata sata硬盘的区别在于他有一个直接控制器…

linux 发现sata硬盘的过程 命令名码 identify,SATA命令之security

参考文档:ATA8-ACS4 (一)、security相关特性在identify的位置 SECURITY SUPPORTED bit 在word 82 SECURITY ENABLED bit 在word 85 word 128 MASTER PASSWORD CAPABILITY bit 在word 128 MASTER PASSWORD IDENTIFIER field在word 92 (二)、identify中security相关的含义 (a) …

三个sata硬盘只能读取两个_两个SATA硬盘驱动器显示为可弹出

Siegelion 2月12日的《围攻狮子》 主板也可以自然弹出硬盘变成可弹出,只需习惯一下即可 [在更远的著作(ξαγτηεγ)中提到: ] : 尝试之后,它确实会弹出,这真的很不舒服. 我不知道如何将其设置为不显示为可弹出. : 检查下一个界面. 主板上的非本机SATA端口是两个扩展的MA…

服务器sas硬盘转sata硬盘6,SAS接口(sas硬盘改sata家用)

SAS的接口技术可以向下兼容SATA。具体来说,二者的兼容性主要体现在物理层和协议层的兼容。在物理层,SAS接口和SATA接口完全兼容,SATA硬盘可以直接使用在. sata是普通民用接口,一般接的都是5400转或7200转的硬盘。 sas是服务器接口。接的硬盘是10000或15000转的硬盘,比民用…

基于transformer模型的对象检测算法——BETR模型

transformer模型刚发布时,主要应用于处理NLP领域任务,比如机器翻译等,但是随着注意力机制模型的大火,很多基于transformer模型的魔改模型也相继发布,且transformer模型的注意力机制也被google团队证明可以使用在计算机视觉任务上,特别是swin transformer模型的发布,更是…

定时器中断

背景:使用动态数码管读取光电传感器的值并且显示,因此要使用到定时器,每隔一个阶段进行一次检测并进行中断。 51单片机里的关于中断的寄存器如下: IE – 中断允许控制寄存器 IP – 中断优先级控制寄存器 TMOD – 定时器工作方式寄…

mac上连接魅族手机

魅族怎么就可以这么难搞 之前写得文章是不对的。。囧啊 1、电脑连接手机 2、打开手机内置光盘 3、打开文件夹-USB Reference Manual 4、选择简体 5、打开 ADB_参考说明书 6、按照文档中关于 Unbuntu 里面的说明: 修改文件 ~/.android/adb_usb.ini&#xff0…

魅族手机无法连接到MAC使用abd

一些国产手机插入mac os 系统中无法被识别,在命令行输入 system_profiler SPUSBDataType 在, 然后将魅蓝note的vendor id 添加至 ~/.android/adb_usb.ini文件中,然后依次执行adb kill-server adb start-server即可进入adb shell。 上述中的vendor i…