NVMe Management and Data Commands: A Specification Walkthrough

44 minute read

繁體中文

00.01.This report connects the interfaces used to manage an SSD and perform data operations: establish capabilities, configure behavior, receive status, and explain the range and completion guarantees of commands such as Read and Write. Start with the overall picture, then open Base and the NVM Command Set and move forward through their pages.

NVM
Non-Volatile Memory, memory that retains data without power.

The main ideas

01

Establish the device and its capabilities

01-01Identify maps device and namespace capabilities; logs add status and changes. Know the target of each query before interpreting its response.

namespace
Namespace, a formatted quantity of non-volatile memory accessed by a host through a controller.
02

Arrange commands and configure behavior

02-01Features configure behavior, while SQs/CQs carry commands. Choose maintenance actions by purpose: Create and Attach establish storage and access separately; Self-test, Telemetry, and Sanitize each have their own operation states and results.

03

Compare I/O by data flow

03-01Read returns data, Write supplies it, Compare supplies expected data, Verify returns no normal payload, and Copy supplies descriptors. Compare all eight commands by direction and result.

04

Understand what a result guarantees

04-01Completion, immediate abort, matching content, persistence, and atomicity are distinct evidence. Bound each by target range, ordering, and format conditions.

00.02.The audience knows operating systems and computer organization. Examples assume 4096-byte LBAs where stated; actual formats still come from Identify. The selected scope includes the related Self-test, namespace, Boot, Telemetry, and Sanitize interfaces.

Connecting the main ideas

00.03.For learning, connect capabilities → settings → operations → results. For the live specification report, follow Base 5 → Base 7 → selected NVM sections. The former builds understanding; the latter reduces page movement.

00.04.Avoid repeatedly switching between common and command-set-specific definitions. Explain Format scope in Base and complete PIL/PI/MSET in the NVM part. Resolve those earlier questions together, switching documents only once.

PI
Protection Information: Guard and tag fields used to check data and its associated information.

The live specification route

R-1Open the Base 2.4 PDF at viewer page 202. After B22, switch to the NVM Command Set 1.3 PDF at page 27. The table uses PDF viewer page numbers, not printed footer or table-of-contents numbers.

File to openPage numbering
NVM-Express-Base-Specification-Revision-2.4-Ratified-2026.07.31.pdfPDF page = body printed page + 26; use the verified destinations below.
NVM-Express-NVM-Command-Set-Specification-Revision-1.3-Ratified-2026.07.31.pdfPDF and printed page numbers match.

R-2At each stop, locate the starting section heading and read forward until just before the listed stopping heading. Boundaries may be mid-page: inclusion is not by whole page. Base §5.2.13.2 adds no PCIe log definition requiring a stop, and all subsections of §5.2.14.3 are excluded.

PCIe
PCI Express, the transport and device interconnect used by an NVMe memory-based controller.

First: Base 2.4, B01–B22

StopStart: PDF page / sectionWhat to explain in orderStop before
B01202
§5
Admin opcodes, data direction, and NSID; compare command restrictions during Format and the Sanitize states in Figure 144.PDF 205
§5.1.2 heading
B02207
§5.2
Abort: target and IANP → AER: completion layout, event types, and parameters.PDF 217
§5.2.3 heading
B03225
§5.2.6
Device Self-test: NSID and STC → operation interactions → command status. Distinguish request success from background-test completion; inspect results later at LID 06h.PDF 227
§5.2.7 heading
B04228
§5.2.9
Firmware Commit → Image Download → Format → Get Features → common Get Log Page format → LIDs 00h–08h. LID 06h completes Self-test; use one block-range diagram for Telemetry LIDs 07h/08h.PDF 263
§5.2.13.1.10 heading
B05302
§5.2.13.1.18
LID 12h: index by FID and distinguish support, scope, and content/capability changes; skip excluded FIDs.PDF 304
§5.2.13.1.19 heading
B06309
§5.2.13.1.21
Boot Partition LID 15h: select BPID, distinguish the 16-byte header from image data, and measure LPO from the start of the log.PDF 310
§5.2.13.1.22 heading
B07327
§5.2.13.1.33
LID 24h: read default-configuration status and support conditions without entering restoration workflows.PDF 328
§5.2.13.1.34 heading
B08339
§5.2.13.1.38
Sanitize Status LID 81h: read SSTAT before valid SPROG, action information, and time estimates; distinguish acceptance from final results.PDF 345
§5.2.13.2 heading
B09362
§5.2.13.4
Read Get Log Page completion, then the Identify request. Group the long CNS 01h table, then follow CNS 02h, 03h, 04h, 05h, 06h, 07h, 08h, 10h, 11h, 12h, 13h, and 16h in page order.PDF 421
§5.2.14.2.14 heading
B10422
§5.2.14.2.15
CNS 18h, 19h, 1Ah, 1Bh, 1Ch, 1Dh, 1Fh, and 20h: resource and format lists. Demonstrate underlying-namespace enumeration with CNSSID, GENCTR, and the 12-entry limit.PDF 427
§5.2.14.2.23 heading
B11431
§5.2.14.5
Identify completion behavior; continue forward to Namespace Attachment.PDF 431
§5.2.15 heading
B12470
§5.2.24
Namespace Attachment → Management → Sanitize. Separate associations from storage objects, then read SEL, CSI, and returned NSID. Connect Sanitize actions and Overwrite fields to the earlier LID 81h state.PDF 478
§5.2.27 heading
B13480
§5.2.28
Security Receive → Send → common Set Features rules → FIDs 01h, 02h, 04h, 06h, 07h, 0Bh, 0Ch, and 0Eh.PDF 497
§5.2.30.1.9 heading
B14497
§5.2.30.1.10
FIDs 10h and 11h: thermal-management limits and background activity in non-operational states.PDF 499
§5.2.30.1.12 heading
B15503
§5.2.30.1.16
Sanitize Config FID 17h: with NDI=1 and NDAS=1, contrast rejection for NODRM=0 with warning-mode processing for NODRM=1.PDF 504
§5.2.30.1.17 heading
B16504
§5.2.30.1.18
FID 19h: Set selects a combination index and Get returns it; connect this to the previously explained Identify vector.PDF 505
§5.2.30.1.19 heading
B17534
§5.2.30.1.34
FID 80h: PBSLC is a pre-boot software load count, not a completion percentage.PDF 534
§5.2.30.1.35 heading
B18539
§5.2.30.1.39
Boot Write Protection FID 85h Set/Get states → PCIe interrupt FIDs 08h/09h → HMB FID 0Dh. Observe the section boundaries on shared pages.PDF 545
§5.2.30.3 heading
B19545
§5.2.30.4
On the same page, skip §5.2.30.3 and read Set Features completion in §5.2.30.4.PDF 546
§5.2.31 heading
B20553
§5.3
Create CQ → Create SQ → Delete CQ → Delete SQ in page order; actual teardown removes referencing SQs before their CQ.PDF 558
§5.3.5 heading
B21590
§7
Read only the Flush row of the Chapter 7 opcode table; stop before Cancel on the same page.PDF 590
§7.1 heading
B22593
§7.2
Start at §7.2 on the page. Read Flush ordering, VWC.FB, and absent/disabled-cache behavior, then finish the Base part.PDF 594
§7.3 heading

The only document switch: NVM Command Set 1.3, N01–N07

StopStart: PDF page / sectionWhat to explain in orderStop before
N0127
§3.3.1
Compare → Copy → Dataset Management → Read → Verify → Write → Write Uncorrectable → Write Zeroes. Compare required input before reading fields and results.PDF 62
§4 heading
N0262
§4.1.1
NVM AER notices and Format-specific fields complete the common layouts already explained from Base.PDF 63
§4.1.3 heading
N0364
§4.1.3.1
NVM Power Management additions → LBA Range Type.PDF 66
§4.1.3.3 heading
N0466
§4.1.3.4
Skip Error Recovery on the same page and start at Write Atomicity Normal and DN.PDF 67
§4.1.3.5 heading
N0576
§4.1.4.1
Read only Error Information and SMART/Health on this page; stop before Device Self-test.PDF 76
§4.1.4.3 heading
N0683
§4.1.5
Follow NVM Identify CNS structures: capacity/base formats → controller capabilities → extended namespace formats → command limits → format selection and granularity.PDF 110
§4.1.6 heading
N07160
§5.6
LBA Format List layout and CNS applicability; finish by keeping one Format Index consistent throughout the I/O example.PDF 162
§5.7 heading

R-3Some shared tables list excluded functions. Skip those function rows and configuration sections while still explaining units and validity of retained command fields. For example, interpret AER event parameters in §5.2.2 without adding voltage or data-queue feature configuration.

AER
Asynchronous Event Request: an NVMe Admin command posted in advance so that the controller can later complete it to report an event.
Check the exact inclusion and exclusion list
Scope itemSelection
Main scopeBase Chapters 5/7 minus the exclusions; NVM includes only the listed sections and their descendants.
NVM3.3.1, 3.3.2, 3.3.3, 3.3.4, 3.3.5, 3.3.6, 3.3.7, 3.3.8, 4.1.1, 4.1.2, 4.1.3.1, 4.1.3.2, 4.1.3.4, 4.1.4.1, 4.1.4.2, 4.1.5, 5.6
Excluded Base sections5.1.2, 5.2.3, 5.2.4, 5.2.5, 5.2.7, 5.2.8, 5.2.13.3, 5.2.14.4, 5.2.15, 5.2.16, 5.2.17, 5.2.18, 5.2.19, 5.2.20, 5.2.21, 5.2.22, 5.2.23, 5.2.27, 5.2.30.3, 5.2.31, 5.2.32, 5.3.5, 5.3.6, 5.4, 7.1, 7.3, 7.4, 7.5, 7.6, 7.7, 7.8
Retained FIDs01h, 02h, 03h, 04h, 06h, 07h, 08h, 09h, 0Ah, 0Bh, 0Ch, 0Dh, 0Eh, 10h, 11h, 17h, 19h, 80h, 85h
Retained LIDs00h, 01h, 02h, 03h, 04h, 05h, 06h, 07h, 08h, 12h, 15h, 24h, 81h
Retained CNS values00h, 01h, 02h, 03h, 04h, 05h, 06h, 07h, 08h, 09h, 0Ah, 10h, 11h, 12h, 13h, 16h, 18h, 19h, 1Ah, 1Bh, 1Ch, 1Dh, 1Fh, 20h
Excluded FIDs0Fh, 12h, 13h, 14h, 16h, 18h, 1Ah, 1Bh, 1Dh, 1Eh, 1Fh, 21h, 22h, 23h, 24h, 25h, 26h, 27h, 78h, 79h, 7Dh, 7Eh, 7Fh, 81h, 82h, 83h, 84h
Excluded LIDs09h, 0Ah, 0Bh, 0Ch, 0Dh, 0Fh, 10h, 11h, 13h, 14h, 16h, 17h, 18h, 1Ah, 1Bh, 1Ch, 1Dh, 20h, 21h, 22h, 23h, 25h, 27h, 7Fh, 80h
Excluded CNS values14h, 15h, 17h, 21h, 22h
CNS
Controller or Namespace Structure: the Identify selector for a response data structure.

01 Separate management from data commands

CommandHost suppliesDevice operation / host receives
ReadLBA range and receive bufferReads content and returns data to the host.
WriteLBA range and new dataStores the supplied data in the selected range.
CompareLBA range and expected dataCompares stored content; returns a match or Compare Failure.
VerifyLBA range and checking controlsValidates without returning a normal Read payload.
CopySource descriptors and destination startCopies within the device without moving the full content through the host.
Dataset ManagementRange descriptors and attributesProvides usage hints or requests deallocation; it is not a zeroing command.
Write UncorrectableLBA rangeMarks an uncorrectable condition for subsequent access.
Write ZeroesLBA range and controlsApplies zeroing/deallocation rules without a normal host payload.
Compare the eight commands by data flow and the question each answers, then read their conditions below. Source: NVM 1.3 §3.3.1–3.3.8.
Host
The system running the operating system and issuing NVMe commands.
LBA
Logical Block Address: an address measured in logical blocks. With 4096-byte blocks, LBA 2 starts at data byte 8192.

01.01.Admin commands establish and configure the operating environment; I/O commands act on namespace data. Interpret an opcode within its command set, and distinguish support from permission to execute in the current state.

Admin
Administrative, the control path used to create, configure, query, or manage controllers and queues.
I/O
Input/Output, the class of data operations performed on a namespace.
Sources: Base 2.4 §5, 5.1.1

Source: NVME-BASE-2.4, Rev. 2.4, §5, 5.1.1, printed pages 176-178, PDF pages 202-204

02 Abort: requesting and confirming termination

02.01.Abort identifies the original command by SQID and CID. A successful Abort CQE does not guarantee immediate termination; interpret IANP and the original command’s CQE separately.

IANP
Immediate Abort Not Performed: 1 means immediate abort was not performed; 0 means it was.
SQID
Submission Queue Identifier, the numeric identifier of the SQ containing a command.
CID
Command Identifier, used with the SQ identifier to identify an outstanding command.
CQE
Completion Queue Entry, one completion-result structure in a CQ.
Sources: Base 2.4 §5.2.1

Source: NVME-BASE-2.4, Rev. 2.4, §5.2.1, printed pages 181-182, PDF pages 207-208

03 AER: delivering events to the host

A typical event: notification precedes full log retrieval
  1. The host posts AERs so requests are available for completion.
  2. An event completes an AER with AET/AEI/LID.
  3. The host reads the associated log and validates its fields.
  4. Clear the event according to its rules and maintain the required outstanding AERs.
This applies to the corresponding ordinary events; Immediate and One Shot exceptions are explained separately.
AEI
Asynchronous Event Information: its meaning depends on the event type selected by AET.
AET
Asynchronous Event Type: selects the category in which event information is interpreted.
LID
Log Page Identifier: selects the type of log page to read.

03.01.The host first submits an Asynchronous Event Request; the controller later completes it to report an event. Event type, event information, associated LID, and Event Specific Parameter determine the next observation.

controller
Controller, the entity that implements the NVMe interface, fetches commands, and reports completions.
Sources: Base 2.4 §5.2.2

Source: NVME-BASE-2.4, Rev. 2.4, §5.2.2, printed pages 183-191, PDF pages 209-217

04 Firmware: activation choices and image transfer

Downloading, storing, and activating have different effects
  1. Firmware Image Download transfers portions of the image.
  2. Firmware Commit uses CA to choose slot replacement and activation behavior.
  3. Activation requiring reset changes the running image after the specified reset.
  4. Firmware Slot Information distinguishes the current active slot from the next active slot.
Transfer complete, image stored, and image running are different states.
CA
Commit Action, the Firmware Commit field selecting replacement, activation, and reset policy.

04.01.Firmware Image Download transfers image pieces; Firmware Commit uses CA and FS to select storage and activation. Execution normally downloads before committing, while the specification presents Commit first.

FS
Firmware Slot, the Firmware Commit field selecting the target slot.
Sources: Base 2.4 §5.2.9, 5.2.10

Source: NVME-BASE-2.4, Rev. 2.4, §5.2.9, 5.2.10, printed pages 202-206, PDF pages 228-232

05 Format: scope before format selection

05.01.Format NVM changes the media format and can request secure erase through SES. SES selects FNS or SENS for scope interpretation; NSID and FNVMBS determine namespace and broadcast behavior.

NSID
Namespace Identifier; Identifies the namespace addressed by a command.
Sources: Base 2.4 §5.2.11

Source: NVME-BASE-2.4, Rev. 2.4, §5.2.11, printed pages 206-209, PDF pages 232-235

06 Logs: select a record, then interpret its evidence

06.01.This unit groups LIDs 00h, 01h, 02h, 03h, 04h, 05h, 12h, and 24h; LIDs 06h, 07h, 08h, 15h, and 81h are explained with their corresponding operations. Transfer length, offset, and event retention are common mechanisms; each log defines its scope, units, and validity conditions.

offset
offset: a displacement measured from a stated start. It answers “how far from the start,” unlike an index.
Sources: Base 2.4 §5.2.13, 5.2.13.1.1–5.2.13.1.6, 5.2.13.1.18, 5.2.13.1.33, 5.2.13.2, 5.2.13.4

Source: NVME-BASE-2.4, Rev. 2.4, §5.2.13, 5.2.13.1.1–5.2.13.1.6, 5.2.13.1.18, 5.2.13.1.33, 5.2.13.2, 5.2.13.4, printed pages 212-229,276-278,301-302,319,336, PDF pages 238-255,302-304,327-328,345,362

07 Identify: map controllers, namespaces, and capabilities

07.01.Identify returns a 4096-byte structure. CNS selects its kind, CSI the command set, and NSID, CNTID, or a CNS-specific identifier the target. These selectors are not interchangeable.

CSI
I/O Command Set Identifier: selects an I/O command set; NVM uses 00h.
Sources: Base 2.4 §5.2.14.1, 5.2.14.2, 5.2.14.5

Source: NVME-BASE-2.4, Rev. 2.4, §5.2.14.1, 5.2.14.2, 5.2.14.5, printed pages 336-405, PDF pages 362-431

08 Security Send/Receive: carrying protocol data

08.01.Security Send supplies protocol data and Security Receive retrieves results. SECP selects the protocol; SPSP and NSSF are protocol-dependent. NVMe command success does not by itself prove success of every protocol operation.

NVMe
Non-Volatile Memory Express, the specification family for a host interface to a non-volatile-memory subsystem.
Sources: Base 2.4 §5.2.28, 5.2.29

Source: NVME-BASE-2.4, Rev. 2.4, §5.2.28, 5.2.29, printed pages 454-456, PDF pages 480-482

09 Set Features: connect settings to operating behavior

How idle time affects power state
  1. The host configures idle time ITPT and target state ITPS in APST entries.
  2. When APST is enabled, the controller evaluates idle timers.
  3. At the applicable threshold, it enters the selected non-operational power state.
  4. Resuming I/O requires accounting for the exit latency of that state.
APST uses idle time to save power while introducing transition latency.
APST
Autonomous Power State Transition: automatic power-state changes under configured idle conditions.
ITPS
Idle Transition Power State, the target non-operational power state selected by an APST entry.
ITPT
Idle Time Prior to Transition, the APST-entry idle threshold in milliseconds.

09.01.Set Features uses FID to select a feature, SV to request saving, and feature-specific fields or buffers for values. Scope, changeability, and reset behavior are defined separately for each feature.

FID
Feature Identifier: selects the Feature to read or configure.
SV
Save, the Set Features bit requesting that the controller also save the configured value.
Sources: Base 2.4 §5.2.30.1, 5.2.30.4

Source: NVME-BASE-2.4, Rev. 2.4, §5.2.30.1, 5.2.30.4, printed pages 456-514,519, PDF pages 482-540,545

10 I/O queues: create the completion side first

Queue references determine the operation order
  1. Negotiate counts with Number of Queues.
  2. Create CQ 2, then SQs 3 and 4 referencing it.
  3. Normal commands post their completions to CQ 2.
  4. Remove SQs 3 and 4 before deleting CQ 2.
The specification lists Delete CQ before Delete SQ; actual teardown still removes SQ references first.
SQ
Submission Queue, the queue into which the host places commands.

10.01.Create I/O SQ uses CQID to reference an existing I/O CQ, so create the CQ first. Delete referencing SQs before deleting their CQ. Queue allocation, creation, and command submission are distinct steps.

Sources: Base 2.4 §5.3.1–5.3.4

Source: NVME-BASE-2.4, Rev. 2.4, §5.3.1–5.3.4, printed pages 527-532, PDF pages 553-558

11 Flush: a completion boundary for persistence

The persistence boundary for Write AThe completed A is covered by the later Flush. Persistence of B, still outstanding at submission, cannot be inferred from this Flush alone.Write ACQE completeFlushHost submitsFlushCQE successWrite B: outstanding at Flush submission
The completed A is covered by the later Flush. Persistence of B, still outstanding at submission, cannot be inferred from this Flush alone.

11.01.Flush commits data and metadata for the specified namespace to non-volatile media. It covers at least commands completed before Flush submission; concurrently outstanding Writes are not automatically covered.

metadata
Additional information stored with a logical block; it can contain protection information or serve other purposes.
Sources: Base 2.4 §7, 7.2

Source: NVME-BASE-2.4, Rev. 2.4, §7, 7.2, printed pages 564,567, PDF pages 590,593

12 Copy: descriptors cross the host interface

Two source ranges concatenate at the destinationIllustrative example: four blocks followed by six. With destination 1000, the second range starts at 1004. The host transfers two descriptors, encoded as NR=1.Source A: 4 blocksSource B: 6 blocks1000–10031004–1009
Illustrative example: four blocks followed by six. With destination 1000, the second range starts at 1004. The host transfers two descriptors, encoded as NR=1.

12.01.Copy DPTR points to source-range descriptors, while the command identifies the destination. Descriptor format, source/destination format compatibility, MSRC/MSSRL/MCL, and completion reporting constrain the operation.

DPTR
Data Pointer, the SQE field identifying a command data buffer.
Sources: NVM Command Set 1.3 §3.3.2

Source: NVME-NVM-CS-1.3, Rev. 1.3, §3.3.2, printed pages 30-43, PDF pages 30-43

13 Read: connect ranges, formats, and host buffers

13.01.Read selects a namespace range using SLBA and NLB, then transfers it to host buffers according to data format, metadata layout, and checking settings. Converting blocks to bytes requires the current format.

SLBA
Starting LBA; Starts the command range.
NLB
Number of Logical Blocks: this field is zero-based in this report’s read/write commands, Copy, and LBA Range Type; the count is NLB+1.
Sources: NVM Command Set 1.3 §3.3.4

Source: NVME-NVM-CS-1.3, Rev. 1.3, §3.3.4, printed pages 48-51, PDF pages 48-51

14 Write: content, persistence, and atomicity

14.01.Write stores host-provided data in a specified LBA range. FUA, volatile write cache, atomic-write limits, and PI checks address distinct questions; successful completion does not imply every persistence or atomicity guarantee.

FUA
Force Unit Access: its effect is command-specific. For Write, data and metadata must be committed to non-volatile media before completion.
Sources: NVM Command Set 1.3 §3.3.6

Source: NVME-NVM-CS-1.3, Rev. 1.3, §3.3.6, printed pages 53-56, PDF pages 53-56

15 NVM Identify: validate an I/O against formats and limits

15.01.NVM Identify adds capacity, LBA formats, metadata/PI, atomicity, and command limits. CNS, CSI, NSID, and Format Index determine whether a query describes a current namespace or a supported format.

Format Index
The number selecting a corresponding LBAF/ELBAF format description.
index
index: selects an item or format in a list. It answers “which one,” not “how far from the start.”
Sources: NVM Command Set 1.3 §4.1.5

Source: NVME-NVM-CS-1.3, Rev. 1.3, §4.1.5, printed pages 83-110, PDF pages 83-110

16 Device Self-test: from request to result

16.01.Device Self-test command completion acknowledges the start or abort request. LID 06h separately reports background progress and results. STC selects the action, NSID the target, and validity flags qualify result fields.

LID 06h
Identifier 06h for the Device Self-test Log Page, containing current operation state and twenty historical results.
STC
Context-dependent: Storage Tag Check controls I/O protection checks; Self-test Code selects a Device Self-test action; Status Code in a self-test result qualifies a failure. Interpret the containing structure first.
Sources: Base 2.4 §5.2.6, 5.2.13.1.7

Source: NVME-BASE-2.4, Rev. 2.4, §5.2.6, 5.2.13.1.7, printed pages 199-201,230-232, PDF pages 225-227,256-258

17 Namespaces: create storage, then attach access

17.01.Namespace Management creates or deletes namespaces; Namespace Attachment changes controller associations. Create returns an NSID without automatically attaching it. Detach removes access rather than deleting the namespace object.

Sources: Base 2.4 §5.2.24, 5.2.25

Source: NVME-BASE-2.4, Rev. 2.4, §5.2.24, 5.2.25, printed pages 445-448, PDF pages 471-474

18 Boot partitions: read, update, and select an image

18.01.Boot partitions are distinct from ordinary namespaces. LID 15h reads a selected partition, Firmware Commit CA=6 writes its image and CA=7 selects the boot source, and FID 85h controls write protection.

Sources: Base 2.4 §5.2.9, 5.2.13.1.21, 5.2.30.1.39

Source: NVME-BASE-2.4, Rev. 2.4, §5.2.9, 5.2.13.1.21, 5.2.30.1.39, printed pages 202-204,283-284,513-514, PDF pages 228-230,309-310,539-540

19 Telemetry: retrieve one consistent capture

19.01.LID 07h supports host-initiated telemetry; LID 08h reports controller-initiated data. Retrieval combines 512-byte block boundaries, cumulative data areas, and generation checks to avoid mixing captures.

Sources: Base 2.4 §5.2.13.1.8, 5.2.13.1.9

Source: NVME-BASE-2.4, Rev. 2.4, §5.2.13.1.8, 5.2.13.1.9, printed pages 232-237, PDF pages 258-263

20 Sanitize: request, background progress, and final state

20.01.Sanitize selects supported Block Erase, Overwrite, or Crypto Erase actions. Command success is not completion of background sanitization. LID 81h supplies state, progress, and estimates; FID 17h affects handling of no-deallocation requests.

Sources: Base 2.4 §5.1.1, 5.2.26, 5.2.13.1.38, 5.2.30.1.16

Source: NVME-BASE-2.4, Rev. 2.4, §5.1.1, 5.2.26, 5.2.13.1.38, 5.2.30.1.16, printed pages 178-179,314-319,449-451,477-478, PDF pages 204-205,340-345,475-477,503-504

Where to continue in the specification

21.01.Use the opening B01–B22 and N01–N07 route for the live report. The following is a conceptual lookup index, not another pass through the specification.

Concept to explainSpecification sections
Separate management from data commandsBase 2.4 §5, 5.1.1
Abort: requesting and confirming terminationBase 2.4 §5.2.1
AER: delivering events to the hostBase 2.4 §5.2.2
Firmware: activation choices and image transferBase 2.4 §5.2.9, 5.2.10
Format: scope before format selectionBase 2.4 §5.2.11
Get Features: values versus capabilitiesBase 2.4 §5.2.12
Logs: select a record, then interpret its evidenceBase 2.4 §5.2.13, 5.2.13.1.1–5.2.13.1.6, 5.2.13.1.18, 5.2.13.1.33, 5.2.13.2, 5.2.13.4
Identify: map controllers, namespaces, and capabilitiesBase 2.4 §5.2.14.1, 5.2.14.2, 5.2.14.5
Security Send/Receive: carrying protocol dataBase 2.4 §5.2.28, 5.2.29
Set Features: connect settings to operating behaviorBase 2.4 §5.2.30.1, 5.2.30.4
PCIe features: interrupt delivery and borrowed memoryBase 2.4 §5.2.30.2
I/O queues: create the completion side firstBase 2.4 §5.3.1–5.3.4
Flush: a completion boundary for persistenceBase 2.4 §7, 7.2
Compare: check against host-provided contentNVM 1.3 §3.3.1
Copy: descriptors cross the host interfaceNVM 1.3 §3.3.2
Dataset Management: usage hints and deallocationNVM 1.3 §3.3.3
Read: connect ranges, formats, and host buffersNVM 1.3 §3.3.4
Verify: validate without a host comparison bufferNVM 1.3 §3.3.5
Write: content, persistence, and atomicityNVM 1.3 §3.3.6
Write Uncorrectable and Write Zeroes: different outcomesNVM 1.3 §3.3.7, 3.3.8
NVM additions to common Admin commandsNVM 1.3 §4.1.1, 4.1.2
NVM features: idle exit latency, LBA usage, and atomicityNVM 1.3 §4.1.3.1, 4.1.3.2, 4.1.3.4
NVM log additions: interpret ranges and countersNVM 1.3 §4.1.4.1, 4.1.4.2
NVM Identify: validate an I/O against formats and limitsNVM 1.3 §4.1.5
LBA Format List: match capabilities to one formatNVM 1.3 §5.6
Device Self-test: from request to resultBase 2.4 §5.2.6, 5.2.13.1.7
Namespaces: create storage, then attach accessBase 2.4 §5.2.24, 5.2.25
Boot partitions: read, update, and select an imageBase 2.4 §5.2.9, 5.2.13.1.21, 5.2.30.1.39
Telemetry: retrieve one consistent captureBase 2.4 §5.2.13.1.8, 5.2.13.1.9
Sanitize: request, background progress, and final stateBase 2.4 §5.1.1, 5.2.26, 5.2.13.1.38, 5.2.30.1.16
Open the complete Chinese tutorial and figure explanations →

Check your understanding

1. Successful Abort status with IANP=1: may the original buffer be reclaimed immediately?

22.01.Not from that response alone. IANP=1 gives no immediate-abort guarantee; establish the original command’s completion and end of memory use.

Sources

Source: NVME-BASE-2.4, Rev. 2.4, §5.2.1, printed pages 181-182, PDF pages 207-208

2. How are eight blocks encoded for Read and a DSM range?

22.02.Read uses NLB=7; a DSM range uses LLB=8. They are different fields, while the outer DSM NR separately encodes descriptor count minus one.

Sources

Source: NVME-NVM-CS-1.3, Rev. 1.3, §3.3.4, printed pages 48-51, PDF pages 48-51

Source: NVME-NVM-CS-1.3, Rev. 1.3, §3.3.3, printed pages 44-48, PDF pages 44-48

3. Why can Format with NSID=3 affect other namespaces?

22.03.SES selects the relevant FNS or SENS branch. A scope bit selecting the wider target is not narrowed merely by the NSID value.

Sources

Source: NVME-BASE-2.4, Rev. 2.4, §5.2.11, printed pages 206-209, PDF pages 232-235

4. Why is an empty shared CQ insufficient justification for deleting it?

22.04.Emptiness means there are no completions to consume now, not that no SQ references it. Remove referencing SQs and satisfy completion/lifetime requirements before deleting the CQ.

Sources

Source: NVME-BASE-2.4, Rev. 2.4, §5.3.1–5.3.4, printed pages 527-532, PDF pages 553-558

5. If Flush is submitted before Write A completes, does successful Flush alone prove A is persistent?

22.05.No. The guaranteed set includes commands completed before Flush submission. Establish A’s completion before submitting Flush to include it in that guarantee.

Sources

Source: NVME-BASE-2.4, Rev. 2.4, §7, 7.2, printed pages 564,567, PDF pages 590,593

Source: NVME-NVM-CS-1.3, Rev. 1.3, §3.3.6, printed pages 53-56, PDF pages 53-56

Specification editions

NVM Express Base Specification, Revision 2.4

NVM Express NVM Command Set Specification, Revision 1.3

Jia-Chang

Jia-Chang

Human

Comments

  Write a comment ...