i
NVM Express
®
Base Specification
Revision 2.0a
July 23rd, 2021
Please send comments to info@nvmexpress.org
NVM Express
®
Base Specification, revision 2.0a
ii
NVM Express
®
Base Specification revision 2.0a is available for download at http://nvmexpress.org. The
NVM Express Base Specification revision 2.0a incorporates NVM Express Base Specification revision 2.0
(refer to https://nvmexpress.org/changes-in-nvm-express-revision-2-0 for details) and ECN 001.
SPECIFICATION DISCLAIMER
LEGAL NOTICE:
© Copyright 2007 to 2021 NVM Express, Inc. ALL RIGHTS RESERVED.
This NVM Express Base Specification, revision 2.0a is proprietary to the NVM Express, Inc. (also referred
to as “Company”) and/or its successors and assigns.
NOTICE TO USERS WHO ARE NVM EXPRESS, INC. MEMBERS: Members of NVM Express, Inc. have
the right to use and implement this NVM Express Base Specification, revision 2.0a subject, however, to
the Member’s continued compliance with the Company’s Intellectual Property Policy and Bylaws and the
Member’s Participation Agreement.
NOTICE TO NON-MEMBERS OF NVM EXPRESS, INC.: If you are not a Member of NVM Express, Inc.
and you have obtained a copy of this document, you only have a right to review this document or make
reference to or cite this document. Any such references or citations to this document must acknowledge
NVM Express, Inc. copyright ownership of this document. The proper copyright citation or reference is as
follows: “© 2007 to 2021 NVM Express, Inc. ALL RIGHTS RESERVED.” When making any such
citations or references to this document you are not permitted to revise, alter, modify, make any
derivatives of, or otherwise amend the referenced portion of this document in any way without the prior
express written permission of NVM Express, Inc. Nothing contained in this document shall be deemed as
granting you any kind of license to implement or use this document or the specification described therein,
or any of its contents, either expressly or impliedly, or to any intellectual property owned or controlled by
NVM Express, Inc., including, without limitation, any trademarks of NVM Express, Inc.
LEGAL DISCLAIMER:
THIS DOCUMENT AND THE INFORMATION CONTAINED HEREIN IS PROVIDED ON AN “AS IS”
BASIS. TO THE MAXIMUM EXTENT PERMITTED BY APPLICABLE LAW, NVM EXPRESS, INC.
(ALONG WITH THE CONTRIBUTORS TO THIS DOCUMENT) HEREBY DISCLAIM ALL
REPRESENTATIONS, WARRANTIES AND/OR COVENANTS, EITHER EXPRESS OR IMPLIED,
STATUTORY OR AT COMMON LAW, INCLUDING, BUT NOT LIMITED TO, THE IMPLIED
WARRANTIES OF MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE, TITLE, VALIDITY,
AND/OR NONINFRINGEMENT.
All product names, trademarks, registered trademarks, and/or servicemarks may be claimed as the
property of their respective owners.
The NVM Express
®
design mark is a registered trademark of NVM Express, Inc.
PCI-SIG
®
, PCI Express
®
, and PCIe
®
are registered trademarks of PCI-SIG.
InfiniBand
TM
is a trademark and servicemark of the InfiniBand Trade Association.
NVM Express Workgroup
c/o VTM, Inc.
3855 SW 153
rd
Drive
Beaverton, OR 97003 USA
info@nvmexpress.org
NVM Express
®
Base Specification, revision 2.0a
iii
Table of Contents
1 INTRODUCTION ............................................................................................................. 2
1.1 Overview ........................................................................................................................................ 2
1.2 Scope ............................................................................................................................................ 3
1.3 Outside of Scope ........................................................................................................................... 3
1.4 Conventions ................................................................................................................................... 3
1.5 Definitions ...................................................................................................................................... 6
1.6 I/O Command Set specific definitions used in the NVMe Base specification ............................. 11
1.7 NVM Command Set specific definitions used in this specification .............................................. 12
1.8 References .................................................................................................................................. 12
1.9 References Under Development ................................................................................................. 14
2 THEORY OF OPERATION ............................................................................................... 15
2.1 Memory-Based Transport Model ................................................................................................. 17
2.2 Message-Based Transport Model ............................................................................................... 18
2.3 NVM Storage Model .................................................................................................................... 21
2.4 Extended Capabilities Theory ..................................................................................................... 26
3 NVM EXPRESS ARCHITECTURE ..................................................................................... 30
3.1 NVM Controller Architecture ........................................................................................................ 30
3.2 NVM Subsystem Entities ............................................................................................................. 69
3.3 NVM Queue Models .................................................................................................................... 79
3.4 Command Architecture Submission and Completion Mechanism ............................................ 105
3.5 Controller Initialization ............................................................................................................... 108
3.6 Shutdown Processing ................................................................................................................ 115
3.7 Resets ....................................................................................................................................... 118
3.8 NVM Capacity Model ................................................................................................................. 120
3.9 Keep Alive ................................................................................................................................. 124
3.10 Privileged Actions ...................................................................................................................... 126
3.11 Firmware Update Process ......................................................................................................... 127
4 DATA STRUCTURES ................................................................................................... 129
4.1 Data Layout ............................................................................................................................... 129
4.2 Feature Values .......................................................................................................................... 136
4.3 Identifier Format and Layout (Informative) ................................................................................ 138
4.4 List Data Structures ................................................................................................................... 140
4.5 NVMe Qualified Names ............................................................................................................. 141
5 ADMIN COMMAND SET ............................................................................................... 144
5.1 Abort command ......................................................................................................................... 146
5.2 Asynchronous Event Request command .................................................................................. 147
5.3 Capacity Management command .............................................................................................. 151
5.4 Create I/O Completion Queue command .................................................................................. 155
5.5 Create I/O Submission Queue command .................................................................................. 156
5.6 Delete I/O Completion Queue command .................................................................................. 158
5.7 Delete I/O Submission Queue command .................................................................................. 159
5.8 Doorbell Buffer Config command .............................................................................................. 160
5.9 Device Self-test command ........................................................................................................ 161
5.10 Directive Receive command ...................................................................................................... 162
5.11 Directive Send command .......................................................................................................... 163
5.12 Firmware Commit command ..................................................................................................... 164
5.13 Firmware Image Download command ....................................................................................... 166
5.14 Format NVM command ............................................................................................................. 168
NVM Express
®
Base Specification, revision 2.0a
iv
5.15 Get Features command ............................................................................................................. 170
5.16 Get Log Page command ........................................................................................................... 173
5.17 Identify command ...................................................................................................................... 238
5.18 Keep Alive command ................................................................................................................. 278
5.19 Lockdown command .................................................................................................................. 278
5.20 NVMe-MI Receive command .................................................................................................... 280
5.21 NVMe-MI Send command ......................................................................................................... 280
5.22 Namespace Attachment command ........................................................................................... 280
5.23 Namespace Management command ........................................................................................ 281
5.24 Sanitize command ..................................................................................................................... 283
5.25 Security Receive command ....................................................................................................... 286
5.26 Security Send command ........................................................................................................... 288
5.27 Set Features command ............................................................................................................. 288
5.28 Virtualization Management command ....................................................................................... 318
6 FABRICS COMMAND SET ............................................................................................ 321
6.1 Authentication Receive Command and Response .................................................................... 321
6.2 Authentication Send Command and Response ........................................................................ 322
6.3 Connect Command and Response ........................................................................................... 323
6.4 Disconnect Command and Response ....................................................................................... 327
6.5 Property Get Command and Response .................................................................................... 328
6.6 Property Set Command and Response ..................................................................................... 329
7 I/O COMMANDS ......................................................................................................... 331
7.1 Flush command ......................................................................................................................... 331
7.2 Reservation Acquire command ................................................................................................. 332
7.3 Reservation Register command ................................................................................................ 333
7.4 Reservation Release command ................................................................................................ 334
7.5 Reservation Report command ................................................................................................... 335
8 EXTENDED CAPABILITIES ........................................................................................... 338
8.1 Asymmetric Namespace Access Reporting .............................................................................. 338
8.2 Boot Partitions ........................................................................................................................... 344
8.3 Capacity Management............................................................................................................... 347
8.4 Command and Feature Lockdown ............................................................................................ 350
8.5 Controller Memory Buffer .......................................................................................................... 351
8.6 Device Self-test Operations ....................................................................................................... 353
8.7 Directives ................................................................................................................................... 355
8.8 Doorbell Stride for Software Emulation ..................................................................................... 364
8.9 Host Memory Buffer ................................................................................................................... 364
8.10 Host Operation with Asymmetric Namespace Access Reporting (Informative) ........................ 365
8.11 Namespace Management ......................................................................................................... 367
8.12 Namespace Write Protection ..................................................................................................... 369
8.13 NVMe over Fabrics In-band Authentication............................................................................... 371
8.14 Persistent Memory Region ........................................................................................................ 387
8.15 Power Management .................................................................................................................. 388
8.16 Predictable Latency Mode ......................................................................................................... 394
8.17 Read Recovery Level ................................................................................................................ 398
8.18 Replay Protected Memory Block ............................................................................................... 399
8.19 Reservations .............................................................................................................................. 410
8.20 Rotational Media ........................................................................................................................ 417
8.21 Sanitize Operations ................................................................................................................... 418
8.22 Submission Queue (SQ) Associations ...................................................................................... 421
8.23 Standard Vendor Specific Command Format ........................................................................... 422
8.24 Telemetry ................................................................................................................................... 422
NVM Express
®
Base Specification, revision 2.0a
v
8.25 Universally Unique Identifiers (UUIDs) for Vendor Specific Information ................................... 426
8.26 Virtualization Enhancements ..................................................................................................... 429
9 ERROR REPORTING AND RECOVERY ............................................................................. 434
9.1 Command and Queue Error Handling ....................................................................................... 434
9.2 Media and Data Error Handling ................................................................................................. 434
9.3 Memory Error Handling ............................................................................................................. 434
9.4 Internal Controller Error Handling .............................................................................................. 434
9.5 Controller Fatal Status Condition .............................................................................................. 434
ANNEX A. SANITIZE OPERATION CONSIDERATIONS (INFORMATIVE) ..................................... 436
A.1 Overview .................................................................................................................................... 436
A.2 Hidden Storage (Overprovisioning) ........................................................................................... 436
A.3 Integrity checks and No-Deallocate After Sanitize .................................................................... 436
A.4 Bad Media and Vendor Specific NAND Use ............................................................................. 436
ANNEX B. HOST CONSIDERATIONS (INFORMATIVE) ........................................................... 438
B.1 Basic Steps when Building a Command ................................................................................... 438
B.2 Creating an I/O Submission Queue ........................................................................................... 438
B.3 Executing a Fused Operation .................................................................................................... 439
B.4 Asynchronous Event Request Host Software Recommendations ............................................ 441
B.5 Updating Controller Doorbell Properties using a Shadow Doorbell Buffer ................................ 442