文章目录

    • 概述
    • DIF数据格式
    • 盘片支持DIF
      • Format
        • PIL
        • PI
        • MSET
        • LBAF
    • 协议命令DIF支持
      • PRACT
        • PRACT=0
        • PRACT=1
      • PRCHK
    • 相关参考

概述

NVMe协议将DIF信息作为元数据的一部分进行携带。

DIF数据格式

在这里插入图片描述

DIF的PI由多个字段组成,包括:

  • Guard字段:基于逻辑块数据计算的CRC校验值(CRC-16、CRC-32或CRC-64),用于检测数据完整性。
  • Application Tag:由上层应用定义,用于业务逻辑标识。
  • Reference Tag:将数据与逻辑块地址(LBA)关联,防止写入错误位置。

盘片支持DIF

Format

使能NVMe DIF特性的前提是盘片需要格式化成支持DIF,协议提供了Format命令对盘进行格式化,其中有几个字段描述了对DIF的关键支持。

PIL

描述DIF信息在元数据中存放的位置,通常元数据的大小要超过8字节,8字节的DIF信息则通常放置在元数据的首部或尾部的位置,具体则取决于PIL字段的值:
在这里插入图片描述

  • PIL=0:描述DIF信息存放于元数据的首部8个字节;
  • PIL=1:描述DIF信息存放于元数据的尾部8个字节。

若元数据大小恰好为8字节,那么PIL设置成0或1都无所谓。

PI

PI描述了盘片使能的DIF类型,有4中取值,如下:
在这里插入图片描述

MSET

MSET描述了元数据的传输方式:分离或连续。
在这里插入图片描述

LBAF

LBAF描述了当前使用的扇区格式,常见的格式包括:512、512+8、4096以及4096+64等,盘片支持的元数据大小也由这个字段所指定。
在这里插入图片描述

协议命令DIF支持

NVMe读写命令中提供了两个字段:PRACT和PRCHK,用于描述了NVMe控制器对DIF数据的处理行为和校验方式。

PRACT

PRACT字段用于描述NVMe控制器是否对DIF信息进行插入、替换或剥离等处理,并与元数据大小有关,分为以下几种情况:

PRACT=0

无论携带的元数据多少,DIF信息都会原封不动进行传输,NVMe控制器不会对DIF信息进行修改;
在这里插入图片描述
在这里插入图片描述

PRACT=1

元数据传输过程中不会携带DIF信息,NVMe控制器会自动生成DIF信息下盘(Write命令)或剥离DIF信息(Read命令):

  • 元数据大小为8字节:数据传输过程中不会携带DIF信息,等价于任何元数据也不会携带,NVMe控制器会针对读写命令处理DIF信息,插入或者剥离;
    在这里插入图片描述

在这里插入图片描述

  • 元数据大小超过8字节:数据传输过程中,元数据对应DIF区域不会携带有效的DIF信息,NVMe控制器会替换DIF区域数据后下盘,或剥离。
    在这里插入图片描述

在这里插入图片描述

PRCHK

PRCHK描述了数据检验类型。
在这里插入图片描述

相关参考

  • 《NVM-Express-Base-Specification-2.0c-2022.10.04-Ratified-1》

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

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

相关文章

【观成科技】蔓灵花User下载者加密通信分析

概述2025年5月7日,蔓灵花(BITTER)组织针对巴基斯坦电信公司工作人员发起钓鱼邮件攻击,投递伪装为安全简报的恶意邮件,附件为IQY类型的Web查询文件。该文件在用户执行后通过HTTP协议获取远程CMD指令并执行,进…

Redis 保证数据不丢失

Redis 保证数据不丢失(或最大限度减少丢失)的核心是通过 持久化机制 结合 合理的配置策略 实现的。具体方案如下:一、核心:开启 Redis 持久化(防止进程崩溃丢失数据)Redis 提供两种持久化方式,可…

NUMA/SNC 4种组合下Stream+MLC性能对决:双路服务器BIOS调优全攻略

关于调整 BIOS NUMA 与 SNC 选项的 Stream / MLC 性能测试总结一、测试背景与目的在现代多路 Intel Xeon 服务器上,NUMA(Non-Uniform Memory Access)与 SNC(Sub-NUMA Clustering)是两项决定内存访问延迟与带宽的关键 B…

Java-113 深入浅出 MySQL 扩容全攻略:触发条件、迁移方案与性能优化

点一下关注吧!!!非常感谢!!持续更新!!! 🚀 AI篇持续更新中!(长期更新) AI炼丹日志-31- 千呼万唤始出来 GPT-5 发布!“快的…

Kafka Connect + Streams 用到极致从 CDC 到流处理的一套落地方案

关键目标: 零丢失:端到端 Exactly Once(Source 端事务 Streams exactly_once_v2 Sink DLQ)。低延迟:Producer 端批量压缩 Streams 缓存 合理 poll/commit 间隔。可恢复:Connect/Streams 的 rebootstrap…

# `std::basic_istream`总结

std::basic_istream总结 文章目录std::basic_istream总结概述常用类型定义全局对象核心成员函数1. 格式化输入2. 非格式化输入3. 流定位4. 其他功能继承的功能来自 std::basic_ios状态检查状态管理来自 std::ios_base格式化标志流打开模式特点说明例子std::basic_istream全面用…

人工智能——课程考核

课程考核包括平时测验(75%)和讨论(25%)两个环节,测验采用线上随堂考试(2-3次,具体会在本课堂发布)重点考核:A*算法、极大极小过程(α-β剪枝)、不…

机器学习-时序预测1

最近面试过程中,Predict-then-Optimize是运筹优化算法工程师未来的发展方向。就像我之前写过的运筹优化(OR)-在机器学习(ML)浪潮中何去何从?-CSDN博客,机器学习适合预测、运筹优化适合决策。我研…

vim-plugin AI插件

文章目录一、vim 插件管理vim-plug二、如何使用和配置 vim-plug第 1 步:安装 vim-plug第 2 步:配置你的 .vimrc / init.vim第 3 步:安装插件常用 vim-plug 命令三、配置vim-aivim-aivim-deepseekvim升级四、配置 AI 插件GitHub Copilot第 1 步…

Adobe Photoshop 2025 最新下载安装教程,附PS2025下载

点击获取:Adobe Photoshop 2025 安装教程: 1、安装包下载后,鼠标右键解压安装包 添加图片注释,不超过 140 字(可选) 2、双击打开解压后的安装包文件夹 3、打开setup文件夹 添加图片注释,不超过…

LeetCode算法日记 - Day 27: 计算右侧小于当前元素的个数、翻转对

目录 1. 计算右侧小于当前元素的个数 1.1 题目解析 1.2 解法 1.3 代码实现 2. 翻转对 2.1 题目解析 2.2 解法 2.3 代码实现 1. 计算右侧小于当前元素的个数 315. 计算右侧小于当前元素的个数 - 力扣(LeetCode) 给你一个整数数组 nums &#xf…

基于SamOut的音频Token序列生成模型训练指南

通过PyTorch实现从音频特征到语义Token的端到端序列生成,适用于语音合成、游戏音效生成等场景。🧠 模型架构与核心组件 model SamOut(voc_sizevoc_size, # 词汇表大小(4098目录名特殊Token)hidden_sizehidden_size, …

AWD攻防总结

基本防守策略 1、改用户密码和服务密码 1)改linux用户密码: #passwd 如果有权限就删除用户: #userdel -r [用户名] 2)改mysql密码: #update mysql.user set passwordpassword(密码) where userroot; 删除匿名用户&…

Android14 基于Configfs的USB动态配置init.usb.configfs.rc

1 Android14 USB子系统启动以及动态切换的init.usb.rc 2 Android14 基于Configfs的USB动态配置init.usb.configfs.rc 3 Android14 高通平台的USB子系统启动和动态配置init.qcom.usb.rc 1. 什么是ConfigFS ConfigFS 是 Linux 内核提供的一种用户空间可配置的伪文件系统在Linu…

2025年KBS SCI1区TOP,矩阵差分进化算法+移动网络视觉覆盖无人机轨迹优化,深度解析+性能实测

目录1.摘要2.系统模型和问题表述3.矩阵差分进化算法4.结果展示5.参考文献6.算法辅导应用定制读者交流1.摘要 本文提出了一种面向无人机(UAV)新型轨迹优化方法,以实现对地面移动节点的高效视觉覆盖。与传统方法不同,该方法显式考虑…

Python OpenCV图像处理与深度学习:Python OpenCV图像几何变换入门

图像变换:掌握OpenCV中的几何变换 学习目标 通过本课程,学员们将能够理解图像的几何变换原理,包括缩放、旋转和平移,并能够使用Python和OpenCV库实现这些变换。本课程将通过理论讲解与实践操作相结合的方式,帮助学员们…

Redis Windows 7.0.5 安装教程(附exe/msi下载+环境配置+命令测试)

​第一步:下安装包​ 打开浏览器(比如 Edge 或 Chrome),复制这个链接到地址栏敲回车: https://pan.quark.cn/s/31912e0d0443 进去后往下翻,找名字带 ​**redis-7.0.5​ 的文件,​选那个 .exe 结…

数据结构(单链表)

目录 1.链表的概念及结构 2.单链表的应用 2.1 打印链表 2.2申请新节点 2.3插入(尾删和头删) 2.4删除(尾删和头删) 2.5查找 2.6任意位置插入 2.7删除指定位置的元素 2.8 销毁链表 3.总结 1.链表的概念及结构 &#xff…

电脑没加域却能获取到IP地址

企业网络管理的核心逻辑!电脑没加域却能获取到IP地址,这完全是一种刻意为之的安全设计,而不是网络故障。 简单来说就是:“给你IP,但不给你权限。” 这背后是一套完整的 网络准入控制(NAC) 策略。…

Go语言入门学习笔记

📚 前言 欢迎学习Go语言!这份教材假设您是编程零基础,从最基本的概念开始讲解。Go语言(也称为Golang)由Google开发,简单、高效、并发能力强,适合后端开发、系统编程和云计算。 学习建议&#xf…