加载中…
个人资料
古猫先生-存储随笔
古猫先生-存储随笔
  • 博客等级:
  • 博客积分:0
  • 博客访问:35,691
  • 关注人气:10
  • 获赠金笔:0支
  • 赠出金笔:0支
  • 荣誉徽章:
相关博文
推荐博文
谁看过这篇博文
加载中…
正文 字体大小:

SATA系列专题之四:4.0 Command Layer命令层概述

(2017-05-04 17:53:16)
标签:

sata

命令层

分类: SATA协议

一、故事前传

在之前的文章中, 我们已经介绍了传输层(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;


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


二、SATA Command Layer命令层概述

当Host要下发一个command时,步骤大致如下:

  1. Host软件先初始化Shadow register;

  2. 软件下发cmd, 将payload content的资讯,先写到shadow command block register和shadow control block register里;

  3. 应用层将shadow register的内容发送传输层,并产生FIS,,

  4. 通过FIS传到device的command register block和control register block;


#shadow command block 映射到 command register block;

#shadow control block 映射到 control register block;


这里要先提一下Shadow register:

这其实是个和硬件有关的概念。有些register是2层的,第一层是供CPU访问,第二层供HW访问。

 

 

  1. 这是同一个Register,不是2个Register,只不过分了2层。形象的讲上层是下层的Shadow。

  2. CPU在写Register的时候,会先写在上层的Shadow Register,硬件update之后才会在下层供HW访问的Register开始执行。

  3. 因为真正生效的执行HW动作的是下面这层,而上面这层只是将CPU(也就是将软件)的信息获取到,等下个硬件周期才会执行。



更多内容,请关注微信公众号:存储随笔,ID: Memory-logger,
SATA系列专题之四:4.0 <wbr>Command <wbr>Layer命令层概述

0

阅读 评论 收藏 转载 喜欢 打印举报/Report
  • 评论加载中,请稍候...
发评论

    发评论

    以上网友发言只代表其个人观点,不代表新浪网的观点或立场。

      

    新浪BLOG意见反馈留言板 电话:4000520066 提示音后按1键(按当地市话标准计费) 欢迎批评指正

    新浪简介 | About Sina | 广告服务 | 联系我们 | 招聘信息 | 网站律师 | SINA English | 会员注册 | 产品答疑

    新浪公司 版权所有