淺析NVMe協議:DIF

文章目錄

    • 概述
    • 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…