包含指出控制器功能、功能、命令集屬性和電源狀態描述元的值。
語法
typedef struct {
USHORT VID;
USHORT SSVID;
UCHAR SN[20];
UCHAR MN[40];
UCHAR FR[8];
UCHAR RAB;
UCHAR IEEE[3];
struct {
UCHAR MultiPCIePorts : 1;
UCHAR MultiControllers : 1;
UCHAR SRIOV : 1;
UCHAR ANAR : 1;
UCHAR Reserved : 4;
} CMIC;
UCHAR MDTS;
USHORT CNTLID;
ULONG VER;
ULONG RTD3R;
ULONG RTD3E;
struct {
ULONG Reserved0 : 8;
ULONG NamespaceAttributeChanged : 1;
ULONG FirmwareActivation : 1;
ULONG Reserved1 : 1;
ULONG AsymmetricAccessChanged : 1;
ULONG PredictableLatencyAggregateLogChanged : 1;
ULONG LbaStatusChanged : 1;
ULONG EnduranceGroupAggregateLogChanged : 1;
ULONG Reserved2 : 12;
ULONG ZoneInformation : 1;
ULONG Reserved3 : 4;
} OAES;
struct {
ULONG HostIdentifier128Bit : 1;
ULONG NOPSPMode : 1;
ULONG NVMSets : 1;
ULONG ReadRecoveryLevels : 1;
ULONG EnduranceGroups : 1;
ULONG PredictableLatencyMode : 1;
ULONG TBKAS : 1;
ULONG NamespaceGranularity : 1;
ULONG SQAssociations : 1;
ULONG UUIDList : 1;
ULONG Reserved0 : 22;
} CTRATT;
struct {
USHORT ReadRecoveryLevel0 : 1;
USHORT ReadRecoveryLevel1 : 1;
USHORT ReadRecoveryLevel2 : 1;
USHORT ReadRecoveryLevel3 : 1;
USHORT ReadRecoveryLevel4 : 1;
USHORT ReadRecoveryLevel5 : 1;
USHORT ReadRecoveryLevel6 : 1;
USHORT ReadRecoveryLevel7 : 1;
USHORT ReadRecoveryLevel8 : 1;
USHORT ReadRecoveryLevel9 : 1;
USHORT ReadRecoveryLevel10 : 1;
USHORT ReadRecoveryLevel11 : 1;
USHORT ReadRecoveryLevel12 : 1;
USHORT ReadRecoveryLevel13 : 1;
USHORT ReadRecoveryLevel14 : 1;
USHORT ReadRecoveryLevel15 : 1;
} RRLS;
UCHAR Reserved0[9];
UCHAR CNTRLTYPE;
UCHAR FGUID[16];
USHORT CRDT1;
USHORT CRDT2;
USHORT CRDT3;
UCHAR Reserved0_1[106];
UCHAR ReservedForManagement[16];
struct {
USHORT SecurityCommands : 1;
USHORT FormatNVM : 1;
USHORT FirmwareCommands : 1;
USHORT NamespaceCommands : 1;
USHORT DeviceSelfTest : 1;
USHORT Directives : 1;
USHORT NVMeMICommands : 1;
USHORT VirtualizationMgmt : 1;
USHORT DoorBellBufferConfig : 1;
USHORT GetLBAStatus : 1;
USHORT Reserved : 6;
} OACS;
UCHAR ACL;
UCHAR AERL;
struct {
UCHAR Slot1ReadOnly : 1;
UCHAR SlotCount : 3;
UCHAR ActivationWithoutReset : 1;
UCHAR Reserved : 3;
} FRMW;
struct {
UCHAR SmartPagePerNamespace : 1;
UCHAR CommandEffectsLog : 1;
UCHAR LogPageExtendedData : 1;
UCHAR TelemetrySupport : 1;
UCHAR PersistentEventLog : 1;
UCHAR Reserved0 : 1;
UCHAR TelemetryDataArea4 : 1;
UCHAR Reserved1 : 1;
} LPA;
UCHAR ELPE;
UCHAR NPSS;
struct {
UCHAR CommandFormatInSpec : 1;
UCHAR Reserved : 7;
} AVSCC;
struct {
UCHAR Supported : 1;
UCHAR Reserved : 7;
} APSTA;
USHORT WCTEMP;
USHORT CCTEMP;
USHORT MTFA;
ULONG HMPRE;
ULONG HMMIN;
UCHAR TNVMCAP[16];
UCHAR UNVMCAP[16];
struct {
ULONG RPMBUnitCount : 3;
ULONG AuthenticationMethod : 3;
ULONG Reserved0 : 10;
ULONG TotalSize : 8;
ULONG AccessSize : 8;
} RPMBS;
USHORT EDSTT;
UCHAR DSTO;
UCHAR FWUG;
USHORT KAS;
struct {
USHORT Supported : 1;
USHORT Reserved : 15;
} HCTMA;
USHORT MNTMT;
USHORT MXTMT;
struct {
ULONG CryptoErase : 1;
ULONG BlockErase : 1;
ULONG Overwrite : 1;
ULONG Reserved : 26;
ULONG NDI : 1;
ULONG NODMMAS : 2;
} SANICAP;
ULONG HMMINDS;
USHORT HMMAXD;
USHORT NSETIDMAX;
USHORT ENDGIDMAX;
UCHAR ANATT;
struct {
UCHAR OptimizedState : 1;
UCHAR NonOptimizedState : 1;
UCHAR InaccessibleState : 1;
UCHAR PersistentLossState : 1;
UCHAR ChangeState : 1;
UCHAR Reserved : 1;
UCHAR StaticANAGRPID : 1;
UCHAR SupportNonZeroANAGRPID : 1;
} ANACAP;
ULONG ANAGRPMAX;
ULONG NANAGRPID;
ULONG PELS;
UCHAR Reserved1[156];
struct {
UCHAR RequiredEntrySize : 4;
UCHAR MaxEntrySize : 4;
} SQES;
struct {
UCHAR RequiredEntrySize : 4;
UCHAR MaxEntrySize : 4;
} CQES;
USHORT MAXCMD;
ULONG NN;
struct {
USHORT Compare : 1;
USHORT WriteUncorrectable : 1;
USHORT DatasetManagement : 1;
USHORT WriteZeroes : 1;
USHORT FeatureField : 1;
USHORT Reservations : 1;
USHORT Timestamp : 1;
USHORT Verify : 1;
USHORT Reserved : 8;
} ONCS;
struct {
USHORT CompareAndWrite : 1;
USHORT Reserved : 15;
} FUSES;
struct {
UCHAR FormatApplyToAll : 1;
UCHAR SecureEraseApplyToAll : 1;
UCHAR CryptographicEraseSupported : 1;
UCHAR FormatSupportNSIDAllF : 1;
UCHAR Reserved : 4;
} FNA;
struct {
UCHAR Present : 1;
UCHAR FlushBehavior : 2;
UCHAR Reserved : 5;
} VWC;
USHORT AWUN;
USHORT AWUPF;
struct {
UCHAR CommandFormatInSpec : 1;
UCHAR Reserved : 7;
} NVSCC;
struct {
UCHAR WriteProtect : 1;
UCHAR UntilPowerCycle : 1;
UCHAR Permanent : 1;
UCHAR Reserved : 5;
} NWPC;
USHORT ACWU;
UCHAR Reserved4[2];
struct {
ULONG SGLSupported : 2;
ULONG KeyedSGLData : 1;
ULONG Reserved0 : 13;
ULONG BitBucketDescrSupported : 1;
ULONG ByteAlignedContiguousPhysicalBuffer : 1;
ULONG SGLLengthLargerThanDataLength : 1;
ULONG MPTRSGLDescriptor : 1;
ULONG AddressFieldSGLDataBlock : 1;
ULONG TransportSGLData : 1;
ULONG Reserved1 : 10;
} SGLS;
ULONG MNAN;
UCHAR Reserved6[224];
UCHAR SUBNQN[256];
UCHAR Reserved7[768];
UCHAR Reserved8[256];
NVME_POWER_STATE_DESC PDS[32];
UCHAR VS[1024];
} NVME_IDENTIFY_CONTROLLER_DATA, *PNVME_IDENTIFY_CONTROLLER_DATA;
Members
VID
包含由 周邊元件互連 - 特殊興趣群組 (PCI-SIG) 指派的公司廠商識別碼。
SSVID
包含子系統 PCI-SIG 所指派的公司廠商識別碼。
SN[20]
包含廠商指派為 ASCII 字串的 NVM 子系統序號。
MN[40]
包含廠商指派為 ASCII 字串的 NVM 子系統的型號。
FR[8]
包含 NVM 子系統的目前作用中韌體修訂。
這與 NVME_FIRMWARE_SLOT_INFO_LOG 中的韌體修訂資訊相同,可使用「取得記錄頁」命令擷取。
RAB
包含建議的仲裁高載大小。
IEEE[3]
包含控制器廠商的組織唯一識別碼 (OUI)。
OUI 是有效的 IEEE/RAC 指派識別碼,可在 上註冊。http://standards.ieee.org/develop/regauth/oui/public.html
CMIC
控制器多路徑I/O和命名空間共用功能(CMIC)結構,指定控制器和NVM子系統的多路徑I/O和命名空間共用功能。
CMIC.MultiPCIePorts
CMIC 結構的位 0。
當此值設為 1時,NVM 子系統可能包含兩個以上實體 PCI Express 埠。 當該值清除為 0時,NVM 子系統包含單一 PCI Express 埠。
CMIC.MultiControllers
CMIC 結構的位 1。
當此值設為 1時,NVM 子系統可能包含兩個以上控制器。 當該值清除為 0時,NVM 子系統包含單一控制器。
CMIC.SRIOV
CMIC 結構的位 2。
當此值設為 1時,控制器會與單根 I/O 虛擬化 (SR-IOV) 虛擬功能相關聯。 當該值清除為 0時,控制器會與 PCI 函數相關聯。
CMIC.ANAR
CMIC.Reserved
CMIC 結構的位 3:7 是保留的。
MDTS
指出主機與控制器之間的資料傳輸大小上限。
主機不應提交超過此傳輸大小的命令。 如果提交的指令超過傳輸大小,則會中止指令,狀態為 NVME_STATUS_INVALID_FIELD_IN_COMMAND。
此欄位的值以控制器功能結構的 MPSMIN 欄位中指定的最小記憶體頁面大小為單位,並報告為 2 的冪 (2^n) 。 值 表示 0h 傳輸大小沒有限制。 如果中繼資料與邏輯區塊資料交錯,則限制會包含中繼資料。
如果支援 SGL 位元儲存區描述子,則其長度會包含在判斷命令是否超過目的地資料緩衝區的「資料傳輸大小上限」時。 來源資料緩衝區中的長度不包括在「資料傳輸大小上限」計算中。
CNTLID
包含與控制器相關聯的NVM子系統唯一控制器識別碼。
VER
包含版本暫存器中報告的值,定義在NVME_CONTROLLER_REGISTERS結構的 VS 欄位中。
符合 NVMe 規格 1.2 版或更新版本的實作,會在此欄位中報告非零值。
RTD3R
指出從執行階段 D3 (RTD3) 繼續時的典型延遲 (以微秒為單位)。
符合 NVMe 規格 1.2 版或更新版本的實作,會在此欄位中報告非零值。
RTD3E
指出進入執行階段 D3 (RTD3) 的典型延遲 (以微秒為單位)。
符合 NVMe 規格 1.2 版或更新版本的實作,會在此欄位中報告非零值。
OAES
支援選用非同步事件 (OAES) 結構,其中包含指出控制器是否支援選用非同步事件的欄位。
控制器在主機軟體啟用選擇性非同步事件之前,不應傳送選擇性非同步事件。
OAES.Reserved0
保留OAES結構的位元10:31。
OAES.NamespaceAttributeChanged
OAES 結構的位 8。
當此值設定為 1時,控制器支援傳送 Namespace Attribute Changed 事件。 當清除此值 0為 時,控制器不支援命名空間屬性變更事件。
OAES.FirmwareActivation
OAES 結構的位 9。
當此值設定為 1時,控制器支援傳送韌體啟用事件。 當此值清除為 0時,控制器不支援韌體啟用事件。
OAES.Reserved1
OAES結構的0:7位是保留的。
OAES.AsymmetricAccessChanged
OAES.PredictableLatencyAggregateLogChanged
OAES.LbaStatusChanged
OAES.EnduranceGroupAggregateLogChanged
OAES.Reserved2
OAES.ZoneInformation
OAES.Reserved3
CTRATT
包含控制器屬性資訊的「控制器屬性 (CTRATT)」結構。
CTRATT.HostIdentifier128Bit
CTRATT 結構的位元 32 包含 128 位主機 ID。
CTRATT.NOPSPMode
CTRATT 結構的位 31 包含非工作電源狀態 (NOPS) 的相關資訊。
CTRATT.NVMSets
CTRATT 結構的位 30 包含 NVM 指令集的相關資訊。
CTRATT.ReadRecoveryLevels
CTRATT 結構的位元 29 包含讀取回復層次的相關資訊。
CTRATT.EnduranceGroups
CTRATT 結構的位 28 包含有關耐力組級別的信息。
CTRATT.PredictableLatencyMode
CTRATT.TBKAS
CTRATT.NamespaceGranularity
CTRATT.SQAssociations
CTRATT.UUIDList
CTRATT.Reserved0
保留 CTRATT 結構的位元 0:27。
RRLS
RRLS.ReadRecoveryLevel0
RRLS.ReadRecoveryLevel1
RRLS.ReadRecoveryLevel2
RRLS.ReadRecoveryLevel3
RRLS.ReadRecoveryLevel4
RRLS.ReadRecoveryLevel5
RRLS.ReadRecoveryLevel6
RRLS.ReadRecoveryLevel7
RRLS.ReadRecoveryLevel8
RRLS.ReadRecoveryLevel9
RRLS.ReadRecoveryLevel10
RRLS.ReadRecoveryLevel11
RRLS.ReadRecoveryLevel12
RRLS.ReadRecoveryLevel13
RRLS.ReadRecoveryLevel14
RRLS.ReadRecoveryLevel15
Reserved0[9]
保留的欄位為 140 個位元組。
CNTRLTYPE
FGUID[16]
CRDT1
CRDT2
CRDT3
Reserved0_1[106]
ReservedForManagement[16]
保留用於 NVMe 管理。
OACS
選用管理命令支援(OACS)結構,其中包含指示控制器支援的選用 管理命令 的欄位。
OACS.SecurityCommands
OACS 結構的位 0 指出控制器是否支援安全性傳送和安全性接收命令。
當此值設定為 1時,控制器會支援安全傳送和安全接收命令。 當此值清除為 0時,控制器不支援安全傳送和安全接收命令。
OACS.FormatNVM
OACS 結構的位 1 指出控制器是否支援格式化 NVM 命令。
當此值設定為 1時,控制器支援格式化 NVM 命令。 當清除此值 0時,控制器不支援Format NVM命令。
OACS.FirmwareCommands
OACS結構的位2指出控制器是否支援韌體提交和韌體映像下載命令。
當此值設定為 1時,控制器支援韌體提交和韌體映像下載命令。 當此值清除為 0時,控制器不支援韌體提交和韌體映像下載命令。
OACS.NamespaceCommands
OACS 結構的位 3 指出控制器是否支援 [名稱空間管理] 和 [名稱空間附件] 命令。
當此值設定為 1時,控制器會支援命名空間管理與命名空間附件命令。 當清除此值 0為 時,控制器不支援 Namespace Management 和 Namespace Attachment 命令。
OACS.DeviceSelfTest
OACS 結構的位 4 指出控制器是否支援裝置自我測試指令。
OACS.Directives
OACS 結構的位 5 指出控制器是否支援 Directive Send 和 Directive Receive 命令。
OACS.NVMeMICommands
OACS.VirtualizationMgmt
OACS.DoorBellBufferConfig
OACS.GetLBAStatus
OACS.Reserved
位元 6:15:保留。
ACL
指出控制器支援的同時未 完成中止 命令數目上限。
這是以 0 為基礎的值。 實作應該同時支援至少四個未完成的中止命令。
AERL
指出控制器支援的並行未完成非 同步事件要求 命令數目上限。
這是以 0 為基礎的值。 實作應該同時支援至少四個未完成的非同步事件要求命令。
FRMW
韌體更新 (FRMW) 結構,其中包含指出韌體更新相關功能的欄位。
FRMW.Slot1ReadOnly
FRMW 結構的位 0 指出第一個韌體插槽 (插槽 1) 是否為唯讀。
當此值設定為 1時,第一個韌體插槽(插槽1)為唯讀。 當此值清除為 0時,第一個韌體插槽(插槽 1)為讀/寫。 實作可能會選擇具有基準唯讀韌體映像。
FRMW.SlotCount
FRMW 結構的位 1:3 表示控制器支援的韌體插槽數目。
此欄位指定介於 1 到 7 之間的值,表示至少支援一個韌體插槽,最多支援 7 個。 這對應於韌體插槽 1 到 7。
FRMW.ActivationWithoutReset
FRMW 結構的位 4 指出控制器是否支援韌體啟用而不重設。
當此值設定為 1時,控制器支援韌體啟動而不進行重設。 當此值清除為 0時,控制器需要重設才能啟動韌體。
FRMW.Reserved
保留 FRMW 結構的位 5:7。
LPA
「日誌頁面屬性 (LPA)」結構,其中包含指出使用「 取得日誌頁面 」指令所存取之日誌頁面選用屬性的欄位。
LPA.SmartPagePerNamespace
LPA 結構的位 0 表示控制器是否支援每個命名空間的 SMART/健康情況資訊記錄頁面。
當此值設定為 1時,控制器會依每個命名空間支援 SMART / 健康情況資訊記錄檔頁面。 清除此值 0時,控制器不支援每個命名空間的SMART/健康情況資訊日誌頁。
LPA.CommandEffectsLog
LPA 結構的位 1 指出控制器是否支援 [命令效果] 記錄檔頁面。
當此值設定為 1時,控制器會支援「命令效果」記錄頁面。 清除此值 0時,控制器不支援「命令效果」記錄頁面。
LPA.LogPageExtendedData
LPA 結構的位 2 指出控制器是否支援記錄頁擴充資料。
LPA.TelemetrySupport
LPA 結構的位 3 指出控制器是否支援遙測支援。
LPA.PersistentEventLog
LPA.Reserved0
LPA.TelemetryDataArea4
LPA.Reserved1
ELPE
指出控制器所儲存的錯誤資訊記錄項目數目。 此欄位是以 0 為基礎的值。
NPSS
指出控制器支援的NVM Express電源狀態數目。 這是以 0 為基礎的值。
電源狀態從電源狀態 0 開始依序編號。 控制器必須支援至少一種電源狀態 (例如,電源狀態 0) ,而且最多可支援 31 個其他電源狀態,總共 32 個。
AVSCC
管理廠商特定命令組態 (AVSCC) 結構,其中包含指示管理廠商特定命令處理組態設定的欄位。
AVSCC.CommandFormatInSpec
AVSCC 結構的位 0 指出所有系統管理廠商特定命令是否都使用NVME_COMMAND結構中定義的命令格式。
當此值清除為 0時,表示所有管理廠商特定命令的格式都是廠商特定的。
當此值設定為 1時,表示所有管理廠商特定命令都將使用 NVME_COMMAND 結構。
AVSCC.Reserved
AVSCC結構的位1:7是保留的。
APSTA
自主電源狀態轉換屬性 (APSTA) 結構,其中包含指示 自主電源狀態轉換特性屬性的欄位。
APSTA.Supported
APSTA 結構的位 0 表示控制器是否支援自主電源狀態轉換。
當此值設定為 1時,控制器支援自主電源狀態轉換。 當此值清除為 0時,控制器不支援自主電源狀態轉換。
APSTA.Reserved
APSTA 結構的位元 1:7 是保留的。
WCTEMP
表示最小複合溫度欄位值(在 SMART / 健康資訊 日誌中報告),表示控制器繼續操作的過熱狀況。
建議立即修復 (例如,額外冷卻或減少工作量)。 平台應努力將複合溫度保持在該值以下。
此欄位中的值 表示 0h 控制器未報告警告溫度臨界值。 符合 NVMe 規格 1.2 版或更新版本的實作應在此欄位中報告非零值。 建議實作在此欄位中報告值 。0157h
CCTEMP
表示最小複合溫度欄位值(在 SMART / 健康資訊 日誌中報告),表示嚴重過熱狀況。 例如,可能阻止繼續正常運作、資料遺失的可能性、裝置自動關機、極端效能節流或永久損壞的情況。
此欄位中的值 表示 0h 控制器未報告任何臨界溫度臨界值。 符合 NVMe 規格 1.2 版或更新版本的實作應在此欄位中報告非零值。
MTFA
指出控制器暫時停止處理命令以啟動韌體映像檔的時間上限。
如果控制器支援韌體啟動而不重設,則此欄位有效。
MFTA 值以 100 毫秒為單位指定。 值 表示 0h 時間上限未定義。
HMPRE
指出主機應為 主機記憶體緩衝區 功能配置的慣用大小,以 4KB 為單位。
此值必須大於或等於主機記憶體緩衝區大小下限 (HMMIN) 。
如果此欄位為非零,則支援主機記憶體緩衝區功能。 當清除此值 0h為 時,不支援主機記憶體緩衝區功能。
HMMIN
指出主機應為主機記憶體緩衝區功能配置的最小大小,以 4KB 為單位。
當清除此值 0至 時,會要求主機配置任何可能的主機記憶體數量,最高可達 HMPRE 值。
TNVMCAP[16]
指出 NVM 子系統的 NVM 總容量 (以位元組為單位)。
如果支援「名稱空間管理」和「名稱空間附件」命令,則支援此欄位。
UNVMCAP[16]
指出 NVM 子系統的未配置 NVM 容量 (以位元組為單位)。
如果支援「名稱空間管理」和「名稱空間附件」命令,則支援此欄位。
RPMBS
Replay Protected Memory Block Support (RPMBS) 結構,其中包含指出控制器是否支援一或多個 Replay Protected Memory Block (RPMB) 及相關聯功能的欄位。
RPMBS.RPMBUnitCount
指出控制器支援的 RPMB 目標數目。
所有支援的 (受保護記憶體區塊) PMB 目標都具有與 RPMBS 欄位中定義的相同功能。 值為表示 0h 控制器不支援 RPMB。 如果此值為非零,則控制器支援安全傳送和安全接收命令。
RPMBS.AuthenticationMethod
指出用於存取控制器中所有重播保護記憶體區塊(RPMB)的驗證方法。 此欄位的值為:
| 價值觀 | Definition |
|---|---|
| 000億 | HMAC SHA-256 |
| 001b-111b | 保留的 |
RPMBS.Reserved0
保留欄位。
RPMBS.TotalSize
指出控制器支援的每個RPMB總大小、以128KB為單位。 這是以 0 為基礎的值。 值 表示 0h 大小為 128KB。
RPMBS.AccessSize
指出此控制器的「安全傳送」或「安全接收」命令每次 RPMB 存取可以讀取或寫入的大小,以 512B 單位表示。
這是以 0 為基礎的值。 值 表示 0h 大小為 512B。
EDSTT
指出延伸裝置自我測試時間 (EDSTT)。
DSTO
指出裝置自我測試選項 (DSTO)。
FWUG
表示韌體更新粒度 (FWUG)。
KAS
表示保持連線支援 (KAS)。
HCTMA
主機控制的熱管理屬性 (HCTMA) 結構。
HCTMA.Supported
指出是否支援主機控制的熱管理屬性。
HCTMA.Reserved
此 HCTMA 結構欄位已保留。
MNTMT
最低熱管理溫度 (MNTMT)
MXTMT
最高熱管理溫度 (MXTMT)
SANICAP
消毒功能 (SANICAP)
SANICAP.CryptoErase
控制器支援加密擦除清理
SANICAP.BlockErase
控制器支援區塊擦除清理
SANICAP.Overwrite
控制器支援覆寫 Santize
SANICAP.Reserved
SANICAP.NDI
SANICAP.NODMMAS
HMMINDS
HMMAXD
NSETIDMAX
NVM 設定識別碼上限
ENDGIDMAX
ANATT
ANACAP
ANACAP.OptimizedState
ANACAP.NonOptimizedState
ANACAP.InaccessibleState
ANACAP.PersistentLossState
ANACAP.ChangeState
ANACAP.Reserved
ANACAP.StaticANAGRPID
ANACAP.SupportNonZeroANAGRPID
ANAGRPMAX
NANAGRPID
PELS
Reserved1[156]
保留欄位。
SQES
提交佇列項目大小 (SQES) 結構,其中包含指出使用 NVM 指令集時必要及最大提交佇列項目大小的欄位。
SQES.RequiredEntrySize
SQES 結構的位元 0:3 表示使用 NVM 指令集時所需的提交佇列項目大小。
這是可以使用的最小條目大小。 該值以位元組為單位,並報告為 2 的冪 (2^n)。 所需值為 6,對應於 64 個位元組。
SQES.MaxEntrySize
SQES 結構的位元 4:7 表示使用 NVM 指令集時的提交佇列項目大小上限。
此值大於或等於 SQES。RequiredEntrySize 值。 該值以位元組為單位,並報告為 2 的冪 (2^n)。 建議值為 6,對應於 64 位元組的標準 NVM 命令集 SQ 項目大小。 實作專屬延伸模組的控制器可能會支援較大的值。
CQES
「完成佇列項目大小 (CQES)」結構,其中包含指出使用 NVM 指令集時必要及最大完成佇列項目大小的欄位。
CQES.RequiredEntrySize
CQES 結構的位元 0:3 指出使用 NVM 指令集時所需的完成佇列項目大小。
這是可以使用的最小條目大小。 該值以位元組為單位,並報告為 2 的冪 (2^n)。 所需值為 4,對應於 16 個位元組。
CQES.MaxEntrySize
CQES 結構的位元 4:7 表示使用 NVM 指令集時的完成佇列項目大小上限。
此值大於或等於所需的CQ專案大小。 該值以位元組為單位,並報告為 2 的冪 (2^n)。 建議值為 4,對應於 16 位元組的標準 NVM 命令集 CQ 專案大小。 實作專屬延伸模組的控制器可能會支援較大的值。
MAXCMD
NN
指出控制器存在的有效命名空間數目。
ONCS
選用NVM命令支援(ONCS)結構、其中包含指示控制器支援的選用 NVM命令 和功能的欄位。
ONCS.Compare
ONCS 結構的位元 0 指出控制器是否支援 Compare 指令。
當此值設為 1時,控制器會支援「比較」指令。 當清除此值 0時,控制器不支援比較命令。
ONCS.WriteUncorrectable
ONCS 結構的位 1 指出控制器是否支援 Write Uncorrectable 指令。
當此值設定為 1時,控制器支援 Write Uncorrectable 命令。 當此值清除為 0時,控制器不支援 Write Uncorrectable 命令。
ONCS.DatasetManagement
ONCS 結構的位 2 指出控制器是否支援「資料集管理」指令。
當此值設定為 1時,控制器支援資料集管理指令。 當清除此值 0時,控制器不支援資料集管理命令。
ONCS.WriteZeroes
ONCS 結構的位 3 指出控制器是否支援「寫入零」指令。
當此值設為 1時,控制器支援寫入零指令。 當清除此值 0為 時,控制器不支援寫入零指令。
ONCS.FeatureField
ONCS 結構的位元 4 指出控制器是否支援「設定功能」指令中的「儲存」欄位,以及「取得功能」指令中的「選取」欄位。
當此值設定為 1時,控制器會支援「設定特徵」指令中的「儲存」欄位,以及「取得特徵」指令中的「選取」欄位。
當清除此值 0為 時,控制器不支援「設定特徵」指令中的「儲存」欄位,以及「取得特徵」指令中的「選取」欄位。
ONCS.Reservations
ONCS 結構的位元 5 指出控制器是否支援保留。
當此值設定為 1時,控制器會支援保留,也支援下列與保留相關聯的命令:
- 預訂報告
- 預訂登記
- 預訂取得
- 預訂發布
當此值清除為 0時,控制器不支援保留。
ONCS.Timestamp
ONCS 結構的位 6 指出控制器是否支援時間戳記 (NVME_FEATURE_TIMESTAMP) 特性。
ONCS.Verify
ONCS.Reserved
保留ONCS結構的位7:15。
FUSES
融合作業支援 (FUSES) 結構,其中包含指出控制器支援的融合作業的欄位。
FUSES.CompareAndWrite
FUSES結構的位0表示控制器是否支援比較和寫入融合作業。
當清除此值 0時,控制器不支援「比較」和「寫入」融合作業。 比較將是 序列中的第一個命令。
FUSES.Reserved
FUSES結構的位15:1是保留的。
FNA
格式化 NVM 屬性 (FNA) 結構,其中包含指示 格式化 NVM 命令屬性的欄位。
FNA.FormatApplyToAll
FNA 結構的位 0 指出格式作業是否套用至所有命名空間,或特定於特定命名空間。
當此值設定為 1時,所有命名空間都會設定相同的屬性,且任何名稱空間的格式都會產生所有名稱空間的格式。
當此值清除為 0時,控制器會支援每個命名空間的格式化。
FNA.SecureEraseApplyToAll
FNA 結構的位 1 指出密碼編譯清除和使用者資料清除功能是否適用於所有命名空間,或特定於特定命名空間。
當此值設定為 1時,將特定命名空間加密清除為格式的一部分會導致所有命名空間的加密清除,而將特定命名空間作為格式的一部分清除使用者資料會導致清除所有命名空間的使用者資料。
當此值清除為 0時,會以每個命名空間為基礎執行加密清除或使用者資料清除作為格式的一部分。
FNA.CryptographicEraseSupported
FNA 結構的位 2 指出是否支援加密清除作為安全清除功能的一部分。
當此值設定為 1時,支援密碼編譯清除。 當此值清除為 0時,不支援加密清除。
FNA.FormatSupportNSIDAllF
FNA.Reserved
FNA結構的位7:3是保留的。
VWC
揮發性寫入快取 (VWC) 結構,其中包含指出與實作中存在揮發性寫入快取相關的屬性的欄位。
VWC.Present
VWC 結構的位 0 表示存在揮發性寫入快取。
當此值設為 1時,會存在揮發性寫入快取,且主機可以發出 Flush 指令,並使用指定NVME_FEATURE_VOLATILE_WRITE_CACHE功能 ID 的 [設定功能] 指令來控制是否啟用揮發性寫入快取。
當此值清除為 0時,不存在易失性寫入快取。
當揮發性寫入快取不存在時,「排清」命令會順利完成且沒有任何作用,且設定NVME_FEATURE_VOLATILE_WRITE_CACHE識別碼的「設定功能」命令將會失敗,狀態為NVME_STATUS_INVALID_FIELD_IN_COMMAND,而設定NVME_FEATURE_VOLATILE_WRITE_CACHE識別碼的「取得功能」將會失敗,狀態為NVME_STATUS_INVALID_FIELD_IN_COMMAND。
VWC.FlushBehavior
VWC.Reserved
VWC 結構的位 1:7 是保留的。
AWUN
指出寫入作業的大小,保證在正常作業期間,具有任何支援的命名空間格式,跨所有命名空間以不可部分完成方式寫入 NVM。 此欄位在邏輯區塊中指定,且是以 0 為基礎的值。
如果特定名稱空間保證的大小大於此欄位中報告的大小,則會在「識別名稱空間」資料結構的 NAWUN 欄位中報告此名稱空間特定大小。
如果提交的寫入命令大小小於或等於 AWUN 值,則可以保證主機的寫入命令相對於其他讀取或寫入命令對 NVM 是不可部分完成的。 如果提交的寫入指令大小大於 AWUN 值,則無法保證指令不可部分完成性。
AWUN值對電源故障引起的寫入錯誤沒有任何適用性。 如需詳細資訊,請參閱 Atomic Write Unit Power Failure (AWUPF) 欄位。
值 表示 FFFFh 所有命令都是不可部分完成的,因為這是最大的命令大小。 實作應支援至少 128KB,並根據邏輯區塊存取 (LBA) 大小適當調整。
AWUPF
指出寫入作業的大小,保證在電源故障或錯誤狀況期間,在具有任何支援命名空間格式的所有命名空間中以不可部分完成方式寫入 NVM。 此欄位在邏輯區塊中指定,且是以 0 為基礎的值。
如果特定命名空間保證的大小大於此欄位中報告的大小,則會在識別命名空間資料結構的 NAWUPF 欄位中報告此命名空間特定大小。 AWUPF 值必須小於或等於 AWUN 值。
如果提交寫入命令的大小小於或等於 AWUPF 值,則保證主機相對於其他讀取或寫入命令,寫入對 NVM 是不可部分完成的。 如果提交的寫入命令大於此大小,則無法保證命令不可部分完成性。 如果寫入大小小於或等於 AWUPF 值,且寫入命令失敗,則相關聯邏輯區塊的後續讀取命令會傳回上一個成功寫入命令的資料。
如果提交的寫入指令大小大於 AWUPF 值,則無法保證在相關聯邏輯區塊的後續讀取時傳回資料。
NVSCC
NVM 廠商特定命令組態 (NVSCC) 結構,其中包含指出 NVM 廠商特定命令處理組態設定的欄位。
NVSCC.CommandFormatInSpec
NVSCC 結構的位 0 表示所有 NVM 廠商特定命令是否都使用圖 13 中定義的格式。
當此值設定為 1時,所有 NVM 供應商特定命令都使用圖 13 中定義的格式。 當此值清除為 0時,表示所有 NVM 廠商特定命令的格式都是廠商特定的。
NVSCC.Reserved
保留 NVSCC 結構的位 1:7。
NWPC
NWPC.WriteProtect
NWPC.UntilPowerCycle
NWPC.Permanent
NWPC.Reserved
ACWU
指出寫入作業的大小,保證在所有命名空間中以不可部分完成方式寫入 NVM,並具有任何支援的命名空間格式,以進行比較和寫入融合作業。
如果特定名稱空間保證的大小大於此欄位中報告的大小,則會在「識別名稱空間」資料結構的 NACWU 欄位中報告此名稱空間特定大小。
如果支援「比較」和「寫入融合」命令,則將支援此欄位。 此欄位在邏輯區塊中指定,且是以 0 為基礎的值。 如果提交了請求大於此值的傳輸大小的比較和寫入,則控制器可能會使命令失敗,狀態為 NVME_STATUS_INVALID_FIELD_IN_COMMAND。
如果「比較與寫入」不是支援的融合命令,則此欄位的值將為 0h。
Reserved4[2]
保留欄位。
SGLS
SGL支援(SGLS)結構,其中包含指定NVM命令集和支援的SGL型別是否支援散佈收集清單(SGL)的欄位。
SGLS.SGLSupported
當此值設定為 1時,控制器支援NVM命令集的SGL,包括SGL資料區塊、SGL分段和SGL最後一個分段描述符型別。 當此值清除為 0時,控制器不支援 NVM 命令集的 SGL,且此欄位中的所有其他位都將清除為 0。
SGLS.KeyedSGLData
SGLS.Reserved0
保留欄位。
SGLS.BitBucketDescrSupported
當此值設定為 1時,支援 SGL 位元儲存區描述元。 當清除此值 0為 時,不支援 SGL 位元儲存區描述符。
SGLS.ByteAlignedContiguousPhysicalBuffer
當此值設定為 1時,支援使用位元組對齊的中繼資料連續實體緩衝區 (圖 12 中的 Metadata Pointer 欄位)。 當此值清除為 0時,不支援使用位元組對齊的中繼資料連續實體緩衝區。
SGLS.SGLLengthLargerThanDataLength
當此值設定為 1時,控制器支援包含長度大於要傳輸的資料量的資料或中繼資料 SGL 的命令。 當此值清除為 0時,SGL 長度將等於要傳輸的資料量。
SGLS.MPTRSGLDescriptor
SGLS.AddressFieldSGLDataBlock
SGLS.TransportSGLData
SGLS.Reserved1
保留欄位。
MNAN
Reserved6[224]
位元組 704:2047 保留給 I/O 指令集屬性。
SUBNQN[256]
Reserved7[768]
Reserved8[256]
PDS[32]
包含 32 個電源狀態描述元的陣列。 陣列的每個成員都是 32 位欄位,指出電源狀態描述元的特性。 此欄位的格式是在 NVME_POWER_STATE_DESC 結構中定義的。
陣列中結構的從零開始的位置對應至電源狀態描述元的名稱,例如電源狀態 0 描述元 (PSD0) 位於位置 0、電源狀態 1 描述元 (PSD1) 位於位置 1,依此類推,直到電源狀態 31 描述元 (PSD31) 位於位置 31。
VS[1024]
位元組 3072:4095 是為廠商特定用途配置的。
備註
VID、SN及MN欄位的值可以組合成識別NVM子系統的全域唯一值。
需求
| Requirement | 價值觀 |
|---|---|
| 最低支援的用戶端 | 視窗10 |
| Header | nvme.h |