OCP NVME SSD规范解读-4.NVMe IO命令-1

图片

图片

图片

针对NVMe-IO-1到NVMe-IO-14的解读如下:

  1. NVMe-IO-1:
    设备应支持所有必需的NVMe I/O命令。这是设备能够进行基本数据读写操作的基础要求。NVMe I/O命令包括读、写、删除、擦除等操作,这些是存储设备的核心功能。

  2. NVMe-IO-2:
    设备应支持Dataset Management命令。这个命令通常用于管理存储在设备上的数据集,可能包括删除、移动或重命名数据等操作。此处特别提到了TRIM-1,这个与Trim也有关系。同时需要注意,在NVME协议中,这一项是Optional可选项,OCP是需要支持的。

图片

Dataset Management命令是NVMe协议中的一种,用于管理设备上的数据集,包括分配和释放(deallocate)逻辑块。其中,Deallocate属性是Dataset Management命令的一部分。

Trim命令则是操作系统向SSD发出的一种指示,告知某些已删除的文件所在的逻辑块现在是空闲的,可以被SSD内部的垃圾回收机制重新使用。这有助于优化SSD的性能和寿命,因为垃圾回收过程可以更有效地进行,而不需要等待这些逻辑块被新的写入操作覆盖。

图片

在OCP规范定义中,TRIM-1要求设备支持Dataset Management命令的Deallocate属性。这意味着当设备接收到一个使用Deallocate属性的Dataset Management命令时,它应当释放指定的逻辑块。而且,根据TRIM-2的要求,一旦设备释放了一个逻辑块,对该逻辑块的读操作应当返回所有字节清零为0h,直到该逻辑块被其他命令(如Write,Copy等)修改。

图片

SSD可能会在后台处理接收到的TRIM命令,而不是立即执行。这样可以在不影响用户操作的情况下进行垃圾回收和空间优化。

在电源中断或不安全关机的情况下,SSD应确保已TRIM的数据不会在恢复供电后被意外恢复。这涉及到数据的安全性和隐私保护。

虽然TRIM功能有助于长期的SSD性能维护,但在短时间内大量发送TRIM命令可能会对SSD的性能产生负面影响,OCP要求对执行Trim和Idle GC对性能的影响不超过5%

因此,Dataset Management的Deallocate操作与Trim命令在功能上是相似的,都是为了通知SSD哪些逻辑块可以被重新使用。但在NVMe协议中,这种功能是通过Dataset Management命令实现的,而非单独的Trim命令。

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

如若内容造成侵权/违法违规/事实不符,请联系编程知识网进行投诉反馈email:809451989@qq.com,一经查实,立即删除!

相关文章

基于STM32的光电传感器应用开发实例

基于STM32的光电传感器应用开发是一种常见的嵌入式系统应用,光电传感器可以用于检测物体的有无、位置、颜色、亮度等信息,被广泛应用于工业自动化、机器人技术、智能家居等领域。本文将介绍如何在STM32上进行光电传感器应用开发,并提供相应的…

Linux之定时任务调度

crond crond是Linux系统中的一个守护进程,主要用于周期性地执行某种任务或等待处理某些事件。而crondtab是配套的工作,用于定时任务的设置。 语法 crontab [选项]常用选项 入门案例 执行crontab -e命令输入任务到调度文件中 */1 * * * * ls -l /et…

RIP路由协议配置实验

实验目的: (1)理解RIP路由的原理; (2)掌握RIP路由的配置方法 实验器材: Cisco packet 实验内容: 实验步骤: (1)布置拓扑: &…

Go语言学习第二天

Go语言数组详解 var 数组变量名 [元素数量]Type 数组变量名:数组声明及使用时的变量名。 元素数量:数组的元素数量,可以是一个表达式,但最终通过编译期计算的结果必须是整型数值,元素数量不能含有到运行时才能确认大小…

Elasticsearch:升级索引以使用 ELSER 最新的模型

在此 notebook 中,我们将看到有关如何使用 Reindex API 将索引升级到 ELSER 模型 .elser_model_2 的示例。 注意:或者,你也可以通过 update_by_query 来更新索引以使用 ELSER。 在本笔记本中,我们将看到使用 Reindex API 的示例。…

flutter 之proto

和嵌入式用proto协议来通信,以mac来演示 先在电脑上安装protobuf(在博主文章内容里面搜Mac安装protobuf),然后在桌面上放这几个文件,且build_proto_dart.sh文件内容如图所示 #!/bin/bashSCRIPT$(readlink -f "$0…

vue3+ts+vite自定义组件上传npm流程

1. 创建项目 npm create vite 这里踩坑点: 运行vite生成的vue项目时报错“SyntaxError: Unexpected token ?? at “ 是因为node版本过低 电脑为windows11系统,我当时使用的版本node版本是14.21.3,如下图,后边安装了nvm版本…

CEC2017(Python):五种算法(PSO、RFO、SSA、DE、HHO)求解CEC2017

一、5种算法简介 1、粒子群优化算法PSO 2、红狐优化算法RFO 3、麻雀搜索算法SSA 4、差分进化算法DE 5、哈里斯鹰优化算法HHO 二、CEC2017简介 参考文献: [1]Awad, N. H., Ali, M. Z., Liang, J. J., Qu, B. Y., & Suganthan, P. N. (2016). “Problem de…

为什么引入偏向锁、轻量级锁,介绍下升级流程 Synchronized 引入了锁升级的机制之后,如果有线程去竞争锁:

文章目录 为什么引入偏向锁、轻量级锁,介绍下升级流程Synchronized 引入了锁升级的机制之后,如果有线程去竞争锁: 今天我们来谈谈一个有意思的问题,开始。。。。 为什么引入偏向锁、轻量级锁,介绍下升级流程 Synchroni…

远程网络唤醒家庭主机(openwrt设置)

远程网络唤醒家庭主机(openwrt设置) 前提: 1.配置好主板bios的网络唤醒功能(网络教程自己百度一下找) 2.电脑开启网络唤醒功能(网络教程自己百度一下找) 3.路由器通过ddns实现域名和动态IP绑定内网穿透方法汇总_不修改光猫进行内网穿透-C…

云短信平台优惠活动 - 华为OD统一考试

OD统一考试 题解: Java / Python / C++ 题目描述 某云短信厂商,为庆祝国庆,推出充值优惠活动。 现在给出客户预算,和优惠售价序列,求最多可获得的短信总条数。 输入描述 第一行客户预算M,其中 0<=M<=100 第二行给出售价表,P1,P2,… Pn, 其中 1<=n<=100…

Windows各版本如何看到文件扩展名,这个帖子很全

前言 前段时间更新的文章中有提到文件扩展名这个词&#xff0c;估计很多小伙伴看着都萌萌哒。 你在办公室复制的“安装包”到家里的电脑&#xff0c;却打不开的原因都在这&#xff01; 新安装的电脑基本上都是默认关闭文件扩展名的&#xff0c;所以文件都会显示成下面这个样…