linux sata reset 指令,SATA系列专题之四:4.1 Command Layer命令分类详细解析

news/2024/11/17 18:36:17/

一、故事前传

在之前的文章中,

我们已经介绍了传输层(Transport

Layer),链路层(Link Layer)以及物理层(Physical Layer)的相关内容。详见前期文章:

1,浅析SATA

Physical Layer物理层OOB信号;

2,SATA

Link Layer链路层解析2.0-2.3;

3,SATA

Transport Layer传输层解析3.0-3.4;

4,SATA

Command Layer命令层解析4.0;

我们这里主要解析Command layer命令层具体Command相关内容。

二、SATA Command Layer命令层具体解析

SATA

Spec定义了12类Command,具体分类与对应的数量如下表:

a4c26d1e5885305701be709a3d33442f.png

那么,我们就对这12类Commands中作详细的介绍:

1. Command No Implemented

当Command无法执行时,状态如下图,Device需要做三件事情:

在ATA status register中将ERR bit 置为1;

在ATA error register中将abort bit置为1;

返回Register FIS-D2H更新shadow register.

注:ATA status & error register详细介绍请见历史文章"SATA

Transport Layer传输层解析".

a4c26d1e5885305701be709a3d33442f.png

2. Non-Data Commands

Non-Data

Commands这一类的command sequence比较简单,主要是通过Register

FIS在Host与device之间进行交互,如下图:

a4c26d1e5885305701be709a3d33442f.png

3. PIO Data-In Commands

PIO

data-in command的作用是将device的数据读到host memory中,具体sequence如下:

a4c26d1e5885305701be709a3d33442f.png

PIO read

SATA trace供参考:

a4c26d1e5885305701be709a3d33442f.png

4. PIO Data-Out Commands

PIO

data-out command的作用是将host memory数据写入device。具体sequence如下:

a4c26d1e5885305701be709a3d33442f.png

5. DMA Data-In(Read) Commands

a4c26d1e5885305701be709a3d33442f.png

DMA read

SATA trace供参考:

a4c26d1e5885305701be709a3d33442f.png

6. DMA Data-Out(Write) Commands

a4c26d1e5885305701be709a3d33442f.png

DMA write

SATA trace供参考:

a4c26d1e5885305701be709a3d33442f.png

7. DMA Data-In(Read) Queued Commands

a4c26d1e5885305701be709a3d33442f.png

8. DMA Data-Out(Write) Queued Commands

a4c26d1e5885305701be709a3d33442f.png

9. COMRSET Sequence

a4c26d1e5885305701be709a3d33442f.png

10. Host Software Reset Sequence

a4c26d1e5885305701be709a3d33442f.png


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

相关文章

windows c语言 sata 序列号,读取SATA硬盘序列号的方法?解决方法

读取SATA硬盘序列号的方法? 本帖最后由 VisualEleven 于 2012-10-10 07:32:12 编辑 各位大侠,VC环境下要去取SATA硬盘序列号与IDE硬盘序列号的方法一样吗? 我用网上的DeviceIoControl这个函数写的, char sFilePath[64]={0}; sprintf(sFilePath,"\\\\.\\PHYSICALDRIVE%…

SATA3.0中FIS的八种类型

1 Register - Host to Device 描述:将映像寄存器内容由主机发送至设备,用于发送命令; 发送: �初始化:c"1"时,写命令寄存器;c"0"时,写设备控制…

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 – 定时器工作方式寄…