第八章 SSD 电源管理

news2024/11/24 13:22:53

      从 SATA 链路、PCIe 链路、NVMe 协议以及 SSD 内部主控管理等方面介绍 SSD 上的电源管理技术。

8.1 SATA 省电模式 Partial 和 Slumber

         PHY:物理层。   

1. SATA 提供了两种低功耗模式,Partial 和 Slumber:
  (1) Partial

        PHY 处于低功耗状态,退出时间要求 < 10 μs。Partial  是让部分物理层电流进入休眠模式,能够在 10 μs 内被唤醒,让链路在不太影响性能的情况下休息一下。

  (2)Slumber

        PHY 处于更低功耗状态,要求退出时间 < 10 ms。与 Partial 模式相比,Slumber 模式下会关闭更多的电路,因此恢复要慢一些。当预测有一段相对长的 Idle 时间时,会让链路好好休息一下。

2. 发起

        主机和设备都可以发起链路电源管理,但需要对方配合才能进入 Partial 或 Slumber 模式。主机发起称为 HIPM(Host Initiated Power Management),设备发起称为 DIPM(Device Initiated Power Management)。

        PMREQ_P:请求进入 Partial 模式;

        PMREQ_S:请求进入 Slumber 模式。

        PMACK:同意请求;

        PMNAK:不同意请求。

        Listen Mode(侦听模式):AHCI 支持让没有接盘的端口进入侦听模式,此时该端口的功耗水平相当于 Slumber,但是该端口可以识别新接入的盘;

        Auto Partial to Slumber:可以让链路不需要回到 Active 状态,直接从 Partial 进入 Slumber 模式。

以主机发起为例,阐述发起过程:

(1)主机发送一个 PMREQ_P 给设备;

(2)设备回复 PMACK 或者 PMNAK;

(3)如果设备回复同意,两边一起进 Partial(一般接收方会发送多个 PMACK 以确保发起方收到);如果设备回复不同意,那就什么都不发生。

        如果需要退出 Partial 或 Slumber,需要通过 OOB(Out of Band,传输层协议使用带外数据) 重新建立连接。

8.2 SATA 超级省电模式 DevSlp

      DevSlp:Device Sleep,设备睡眠,是一个信号,通过发送这个信号可以让盘进入一个非常省电的状态。

        Partial 或 Slumber 省电模式下,盘都必须让自己的传输电路保持在工作状态,以便 SATA 主机需要的时候能把盘唤醒。如下图,进入 Partial 或 Slumber 后,SATA 总线的发送模块和接收模块仍处于工作状态,因此盘睡得并不安稳,省电效果不够好。

         DevSlp 就是把这个传输电路完全关掉,然后专门加了一个低俗的管脚来负责接收唤醒通知

 DevSlp 注意事项:

 

8.3 SATA 终极省电模式 RTD3

        DevSlp 虽然功耗小,恢复时间也还行,但进入 DevSlp 的时候 Vcc 还在,这样还是会有功耗。

       要求:设置在长期 Idle 后,要把 Power 完全关掉。于是,RTD3 出现了!!!

        在主机,也就是系统处于 S0 的情况下,如何让 SATA SSD 进入 D3 Cold 状态,这个就是 Runtime D3,简称 RTD3。

ACPI 规定的 Device Power State:

 

         Partial 和 Slumber 模式都是只针对 SATA 链路,而 D State 是针对整个 SSD

 

8.4 PCIe 省电模式 ASPM

      ASPM:Active State Power Management。

      ASPM 让 PCIe SSD 在某种情况下,能够从工作模式(D0 状态)通过把自身 PCIe 链路切换到低功耗模式,并且通知对方(主机)也这么干,从而达到降低整条链路功耗的目的。

      ASPM 定义的低功耗模式有两种:L0s 和 L1,

       上图中,各个状态的定义如下

 

8.5 PCIe 其他省电模式

        PCIe 链路在 L2 状态下,所有的时钟和电源全部关闭,能够保证最大的省电效果。但同时,L2 的退出时间相应也增加了很多

 

 8.6 NVMe 动态电源管理

        NVMe 协议中的动态电源管理框图如下:

       功耗目标和性能目标作为系统应用层面的输入,发送给主机端的 NVMe 驱动。

      NVMe Power State:NVMe 规定最多支持 32 个 Power State Descriptor(电源状态描述符),其中 Power State Descriptor 0 是必须支持的。

8.7 Power Domain

      Power Domain:电源域,简称 PD。

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.coloradmin.cn/o/752458.html

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈,一经查实,立即删除!

相关文章

复习Javascript数组

JavaScript 数组 JS 数字属性JS 数组方法 JavaScript 数组用于在单一变量中存储多个值。 var cars ["Saab", "Volvo", "BMW"]; 什么是数组&#xff1f; 数组是一种特殊的变量&#xff0c;它能够一次存放一个以上的值。 如果您有一个项目清…

[GFCTF 2021]Baby_Web(CVE-2021-41773) 从一道题入门PHP代码审计 (保姆级)

[GFCTF 2021]Baby_Web(CVE-2021-41773) 题目标签&#xff1a;WEB、PHP、CVE-2021-41773、变量覆盖 做后考点总结&#xff1a;CVEPHP中量代码审计 CVE-2021-41773是一个Apache Httpd Server 路径穿越漏洞 详情见&#xff1a;CVE-2021-41773_Jay 17的博客-CSDN博客 在源码中…

Docker安全开放远程访问连接权限

1、Docker完全开放远程访问 Docker服务完全开放对外访问权限操作如下&#xff1a; # 开启端口命令 &#xff08;--permanent永久生效&#xff0c;没有此参数重启后失效&#xff09; firewall-cmd --zonepublic --add-port2375/tcp --permanent # 重新载入 firewall-cmd --re…

模型与计算平台

说明&#xff1a;部分内容摘自参考文献&#xff0c;如有侵权&#xff0c;联系删除 模型概念 计算量 FLOPs FLOPs&#xff1a;floating point operations 指的是浮点运算次数&#xff0c;理解为计算量&#xff0c;可以用来衡量算法/模型时间的复杂度, 单位是 FLOPs。FLOPS&…

【Arduino小车实践】陀螺仪的使用

一、MPU6050简介 MPU6050是一款陀螺仪模块&#xff0c;可以测量X、Y、Z三轴的角速度和加速度&#xff0c;还带有温度传感器和数字运动处理器(DMP)。 二、学习步骤 1. I2C协议 MPU6050是通过I2C协议进行驱动的&#xff0c;配置寄存器和获取数据都需要通过I2C协议去实现开发板与…

OpenMMLab MMTracking目标跟踪环境搭建(一)

1、环境搭建 创建conda虚拟环境并激活。 conda create -n mmtrack python3.8 -y conda activate mmtrack 按照官方说明安装 PyTorch 和 torchvision 可以通过指定版本号切换到其他版本。 #如果网不好&#xff0c;可以这样安装 pip3 install torch1.8.2cu102 torchvision0.9…

基于SpringBoot+vue的校园闲置物品租售系统设计与实现

博主介绍&#xff1a; 大家好&#xff0c;我是一名在Java圈混迹十余年的程序员&#xff0c;精通Java编程语言&#xff0c;同时也熟练掌握微信小程序、Python和Android等技术&#xff0c;能够为大家提供全方位的技术支持和交流。 我擅长在JavaWeb、SSH、SSM、SpringBoot等框架…

postman:模拟发送一个需要 cookie 认证的请求

目录 前言&#xff1a; 1、chrome 已安装插件 intercept。 2、chrome 浏览器要设置打开&#xff0c;在运行期间浏览器要一直打开。 3、本人是用 fiddler 对 app 的请求进行抓包&#xff0c;也可以使用其他工具。查看 headers 里的 cookie&#xff0c;并复制。 4、将复制的…

Ubuntu安装zsh主题

安装zsh sudo apt install zsh安装git&#xff08;如果有跳过&#xff09; sudo apt install git(1条消息) 关于Git这一篇就够了_17岁boy想当攻城狮的博客-CSDN博客 安装oh my zsh git clone https://github.com/robbyrussell/oh-my-zsh切换目录到oh-my-zsh文件夹下的tools…

0基础学习VR全景平台篇 第62篇:通用功能-通用设置

公开&#xff1a;公开表示该作品对所有人可见&#xff0c;并且会在蛙色VR平台和个人主页显示。点击公开会切换成私人模式&#xff0c;私人则表示只有作者本人可以访问&#xff0c;他人即使获取了链接也无法打开。 预览&#xff1a;点击“预览”可以查看VR视频的效果&#xff0…

【LeetCode热题100】打卡第37天:岛屿数量反转链表

文章目录 【LeetCode热题100】打卡第37天&#xff1a;岛屿数量&反转链表⛅前言 岛屿数量&#x1f512;题目&#x1f511;题解 反转链表&#x1f512;题目&#x1f511;题解 【LeetCode热题100】打卡第37天&#xff1a;岛屿数量&反转链表 ⛅前言 大家好&#xff0c;我是…

kettle开发-Day41-数据清洗之字符串替换

前言&#xff1a; 昨天讲到了通过case/switch组件来进行分流&#xff0c;来区分日期里面三大类的数据&#xff0c;包括正常显示的2023/7/12 2:59:58的数据&#xff0c;一种是包含中文上午的数据&#xff0c;一种是包含中文下午的数据。但是我们发现这样直接存进去的数据还是包含…

时间有界 梦想无疆(NEBASE第十三课)

时间有界 梦想无疆(NEBASE第十三课) 1、计算机网络功能 数据通信、资源共享、增加数据可靠性、提高系统处理能力&#xff08;主要功能数所通信&#xff09; 2.标准&#xff1a;一致同意的规则可以理解为标谁 ISO&#xff08;国际标准化组织&#xff09;在网络通信中创建了OS…

前端学习——JS进阶 (Day1)

作用域 局部作用域 全局作用域 作用域链 JS垃圾回收机制 闭包 <!DOCTYPE html> <html lang"zh-CN"> <head><meta charset"UTF-8"><meta http-equiv"X-UA-Compatible" content"IEedge"><meta name&qu…

walkRE2019--属性批量赋值

1、选中待赋值的图形&#xff0c;在加工菜单栏中选择属性赋值&#xff0c;如下&#xff1a; 选择图形所在图层&#xff0c;并使图层处于可编辑状态。选择要赋值的属性字段&#xff08;即要更新的列&#xff09;&#xff0c;选择要赋值的表达式&#xff08;即赋值为&#xff09;…

产品经理必备技能:高效产品规划方法论

作为产品经理&#xff0c;进行产品规划是非常重要的一项工作。产品规划是一个方法化的过程&#xff0c;需要考虑多个因素&#xff0c;以确保产品能够满足用户需求并实现商业目标。以下是几点建议&#xff0c;帮助产品经理进行产品规划。 第一&#xff0c;了解用户需求和市场情况…

【Unity编辑器扩展】编辑器代码一键添加按钮响应事件

此功能能是基于UI变量代码生成工具的改良扩展&#xff1a;【Unity编辑器扩展】UI变量代码自动生成工具(编辑器扩展干货/大幅提高效率)_ui代码自动生成_TopGames的博客-CSDN博客 工具效果预览&#xff1a; UGUI的Button按钮在编辑面板添加响应事件非常繁琐&#xff0c;需要拖个…

视频孪生在数字经济产业发展中所发挥的作用

2023年中共中央、国务院印发的《数字中国建设整体布局规划》中明确提出&#xff1a;培育壮大数字经济核心产业&#xff0c;研究制定推动数字产业高质量发展的措施&#xff0c;打造具有国际竞争力的数字产业集群。 推动数字技术和实体经济深度融合&#xff0c;在农业、工业、金…

七大排序算法——堆排序,通俗易懂的思路讲解与图解(完整Java代码)

文章目录 一、排序的概念排序的概念排序的稳定性七大排序算法 二、堆排序核心思想代码实现 三、性能分析四、七大排序算法 一、排序的概念 排序的概念 排序&#xff1a;所谓排序&#xff0c;就是使一串记录&#xff0c;按照其中的某个或某些关键字的大小&#xff0c;递增或递…

emacs下vercial-border审美观记录

昨天一晚上时间都花在了emacs的vercial-border上。 一开始还不知道这个名词&#xff0c;以为是treemacs展示的效果&#xff0c;毕竟我是在打开treemacs的时候&#xff0c;才发现这个分割线太丑了,我的审美观在蠢蠢欲动了。 谁说程序员没有审美观的&#xff1f;只是前面有别的东…