1. FIS简介
- SATA执行的所有传输都是以FIS进行的,链路上实际传输的只有:OOB、primitive、FIS
- 每一个FIS进行传输,都需要完成X_RDY、R_RDY … 的整个交互过程(见SATA学习笔记 6)
- SATA协议目前规定的FIS共有8种
- 有些FIS是单向的,有些FIS是双向的
- 除了DATA FIS,每个FIS都有固定的大小。DATA FIS由于payload的变化,大小为2DWs ~ 2049 DWs
2. FIS详解
2.1 Register Host to Device FIS(H2D)
- 单向,Host —> Device
- 用于向Device传递command,仔细看可以发现,H2D格式中的很多field就是 task file的field
- Features[15:0]
- 根据command的不同,代表不同的含义。
- Command[7:0]
- 代表要发起的命令,device收到后,会解析commad,并进行执行
- C
- 为1代表是由于shadow register的command 更新而发起的传输
- 为0代表是由于shadow register的control 更新而发起的传输(通常用于复位ATA device)
- 【说明】shadow register的control field允许host去复位device。而对于ATAPI设备,是使用DEVICE RESET Comm