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


    一、故事前传

    在之前的文章中, 我们已经介绍了传输层(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(也就是将软件)的信息获取到,等下个硬件周期才会执行。

  • 相关阅读:
    Bert浅谈
    【网络工程师笔记】——ACL
    dns安全策略
    SpringSecurity-三更草堂-学习笔记
    app逆向1某联
    每日一题-字典
    python+nodejs+java电子病历病例档案管理系统+vue
    基于Java web的论坛BBS系统设计与实现
    设计模式笔记之装饰器模式(结构型)
    月销破30万辆后,比亚迪整了波大的
  • 原文地址:https://blog.csdn.net/zhuzongpeng/article/details/126807340