Remarque
L’accès à cette page nécessite une autorisation. Vous pouvez essayer de vous connecter ou de modifier des répertoires.
L’accès à cette page nécessite une autorisation. Vous pouvez essayer de modifier des répertoires.
Contient des valeurs qui indiquent les fonctionnalités du contrôleur, les fonctionnalités, les attributs de jeu de commandes et les descripteurs d’état d’alimentation.
Syntaxe
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
Contient l’identificateur du fournisseur d’entreprise affecté par l’interconnexion des composants périphériques - Groupe d’intérêts spéciaux (PCI-SIG).
SSVID
Contient l’identificateur du fournisseur d’entreprise affecté par l'PCI-SIG pour le sous-système.
SN[20]
Contient le numéro de série du sous-système NVM affecté par le fournisseur en tant que chaîne ASCII.
MN[40]
Contient le numéro de modèle pour le sous-système NVM affecté par le fournisseur en tant que chaîne ASCII.
FR[8]
Contient la révision du microprogramme actuellement active pour le sous-système NVM.
Il s’agit des mêmes informations de révision du microprogramme dans le NVME_FIRMWARE_SLOT_INFO_LOG qui peuvent être récupérées avec la commande Get Log Page.
RAB
Contient la taille de rafale d’arbitrage recommandée.
IEEE[3]
Contient l’identificateur unique de l’organisation (OUI) pour le fournisseur du contrôleur.
Oui est un identificateur attribué IEEE/RAC valide qui peut être inscrit à l’adresse http://standards.ieee.org/develop/regauth/oui/public.html.
CMIC
Structure D’E/S multi-chemin de contrôleur et de partage d’espaces de noms (CMIC) qui spécifie les fonctionnalités d’E/S multipath et de partage d’espace de noms du sous-système du contrôleur et de la machine virtuelle réseau.
CMIC.MultiPCIePorts
Bit 0 de la structure CMIC .
Lorsque cette valeur est définie 1, le sous-système NVM peut contenir deux ports PCI Express physiques ou plus. Lorsque la valeur est effacée 0, le sous-système NVM contient un seul port PCI Express.
CMIC.MultiControllers
Bit 1 de la structure CMIC .
Lorsque cette valeur est définie 1, le sous-système NVM peut contenir deux contrôleurs ou plus. Lorsque la valeur est effacée 0, le sous-système NVM contient un seul contrôleur.
CMIC.SRIOV
Bit 2 de la structure CMIC .
Lorsque cette valeur est définie 1, le contrôleur est associé à une virtualisation d’E/S racine unique (SR-IOV) Virtual Function. Lorsque la valeur est effacée 0, le contrôleur est associé à une fonction PCI.
CMIC.ANAR
CMIC.Reserved
Les bits 3:7 de la structure CMIC sont réservés.
MDTS
Indique la taille maximale du transfert de données entre l’hôte et le contrôleur.
L’hôte ne doit pas envoyer de commande qui dépasse cette taille de transfert. Si une commande est envoyée qui dépasse la taille de transfert, la commande est abandonnée avec un état de NVME_STATUS_INVALID_FIELD_IN_COMMAND.
La valeur de ce champ est en unités de la taille minimale de la page mémoire spécifiée dans le champ MPSMIN de la structure des capacités du contrôleur , et est signalée sous la forme d’une puissance de deux (2^n). Une valeur indiquant qu’aucune restriction n’est 0h appliquée à la taille du transfert. La restriction inclut les métadonnées si elles sont entrelacées avec les données de bloc logique.
Si les descripteurs de compartiment de bits SGL sont pris en charge, leurs longueurs sont incluses dans la détermination si une commande dépasse la taille maximale du transfert de données pour les mémoires tampons de données de destination. Leur longueur dans une mémoire tampon de données source n’est pas incluse pour un calcul de taille de transfert de données maximale.
CNTLID
Contient l’identificateur de contrôleur unique du sous-système NVM associé au contrôleur.
VER
Contient la valeur signalée dans le registre de versions, définie dans le champ VS de la structure NVME_CONTROLLER_REGISTERS .
Les implémentations conformes à la spécification NVMe version 1.2 ou ultérieure signalent une valeur non nulle dans ce champ.
RTD3R
Indique la latence classique en microsecondes lors de la reprise à partir du runtime D3 (RTD3).
Les implémentations conformes à la spécification NVMe version 1.2 ou ultérieure signalent une valeur non nulle dans ce champ.
RTD3E
Indique la latence classique en microsecondes pour entrer runtime D3 (RTD3).
Les implémentations conformes à la spécification NVMe version 1.2 ou ultérieure signalent une valeur non nulle dans ce champ.
OAES
Structure OAES (Optional Asynchrone Events Supported) contenant des champs qui indiquent si les événements asynchrones facultatifs sont pris en charge par le contrôleur.
Un contrôleur ne doit pas envoyer d’événements asynchrones facultatifs avant qu’ils ne soient activés par le logiciel hôte.
OAES.Reserved0
Les bits 10:31 de la structure OAES sont réservés.
OAES.NamespaceAttributeChanged
Bit 8 de la structure OAES .
Lorsque cette valeur est définie 1, le contrôleur prend en charge l’envoi de l’événement Namespace Attribute Changed. Lorsque cette valeur est effacée 0, le contrôleur ne prend pas en charge l’événement Namespace Attribute Changed.
OAES.FirmwareActivation
Bit 9 de la structure OAES .
Lorsque cette valeur est définie 1, le contrôleur prend en charge l’envoi de l’événement d’activation du microprogramme. Lorsque cette valeur est effacée 0, le contrôleur ne prend pas en charge l’événement d’activation du microprogramme.
OAES.Reserved1
Les bits 0:7 de la structure OAES sont réservés.
OAES.AsymmetricAccessChanged
OAES.PredictableLatencyAggregateLogChanged
OAES.LbaStatusChanged
OAES.EnduranceGroupAggregateLogChanged
OAES.Reserved2
OAES.ZoneInformation
OAES.Reserved3
CTRATT
Structure CTRATT (Controller Attributes) contenant les informations d’attribut du contrôleur.
CTRATT.HostIdentifier128Bit
Bit 32 de la structure CTRATT contenant un identificateur d’hôte 128 bits.
CTRATT.NOPSPMode
Bit 31 de la structure CTRATT contenant des informations sur l’état d’alimentation non opérationnel (NOPS).
CTRATT.NVMSets
Bit 30 de la structure CTRATT contenant des informations sur les jeux de commandes NVM.
CTRATT.ReadRecoveryLevels
Bit 29 de la structure CTRATT contenant des informations sur les niveaux de récupération en lecture.
CTRATT.EnduranceGroups
Bit 28 de la structure CTRATT contenant des informations sur les niveaux des groupes d’endurance.
CTRATT.PredictableLatencyMode
CTRATT.TBKAS
CTRATT.NamespaceGranularity
CTRATT.SQAssociations
CTRATT.UUIDList
CTRATT.Reserved0
Les bits 0:27 de la structure CTRATT sont réservés.
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]
Champ réservé de 140 octets.
CNTRLTYPE
FGUID[16]
CRDT1
CRDT2
CRDT3
Reserved0_1[106]
ReservedForManagement[16]
Réservé à la gestion NVMe.
OACS
Structure de prise en charge facultative des commandes d’administration (OACS) contenant des champs qui indiquent les commandes d’administration facultatives prises en charge par le contrôleur.
OACS.SecurityCommands
Le bit 0 de la structure OACS indique si le contrôleur prend en charge les commandes d’envoi de sécurité et de réception de sécurité.
Lorsque cette valeur est définie 1, le contrôleur prend en charge les commandes d’envoi de sécurité et de réception de sécurité. Lorsque cette valeur est effacée 0, le contrôleur ne prend pas en charge les commandes Security Send and Security Receive.
OACS.FormatNVM
Le bit 1 de la structure OACS indique si le contrôleur prend en charge la commande NVM Format.
Lorsque cette valeur est définie 1, le contrôleur prend en charge la commande Format NVM. Lorsque cette valeur est effacée 0, le contrôleur ne prend pas en charge la commande Format NVM.
OACS.FirmwareCommands
Le bit 2 de la structure OACS indique si le contrôleur prend en charge les commandes de validation du microprogramme et de téléchargement d’images du microprogramme.
Lorsque cette valeur est définie 1, le contrôleur prend en charge les commandes de validation du microprogramme et de téléchargement d’images du microprogramme. Lorsque cette valeur est effacée 0, le contrôleur ne prend pas en charge les commandes de validation du microprogramme et de téléchargement d’images du microprogramme.
OACS.NamespaceCommands
Le bit 3 de la structure OACS indique si le contrôleur prend en charge les commandes Gestion des espaces de noms et Pièce jointe d’espace de noms.
Lorsque cette valeur est définie 1, le contrôleur prend en charge les commandes Gestion des espaces de noms et Pièce jointe d’espace de noms. Lorsque cette valeur est effacée 0, le contrôleur ne prend pas en charge les commandes Gestion des espaces de noms et Pièce jointe d’espace de noms.
OACS.DeviceSelfTest
Le bit 4 de la structure OACS indique si le contrôleur prend en charge la commande Device Self Test.
OACS.Directives
Le bit 5 de la structure OACS indique si le contrôleur prend en charge les commandes d’envoi et de réception de directive de directive.
OACS.NVMeMICommands
OACS.VirtualizationMgmt
OACS.DoorBellBufferConfig
OACS.GetLBAStatus
OACS.Reserved
Bits 6:15 : sont réservés.
ACL
Indique le nombre maximal de commandes Abort en attente simultanée prises en charge par le contrôleur.
Il s’agit d’une valeur de base de 0. Les implémentations doivent prendre en charge au moins quatre commandes Abort en attente simultanément.
AERL
Indique le nombre maximal de commandes de demande d’événement asynchrone en attente simultanée prises en charge par le contrôleur.
Il s’agit d’une valeur de base de 0. Les implémentations doivent prendre en charge au moins quatre commandes de demande d’événement asynchrone en attente simultanément.
FRMW
Structure de mises à jour de microprogramme (FRMW) contenant des champs qui indiquent des fonctionnalités relatives aux mises à jour du microprogramme.
FRMW.Slot1ReadOnly
Le bit 0 de la structure FRMW indique si le premier emplacement du microprogramme (emplacement 1) est en lecture seule.
Lorsque cette valeur est définie 1sur , le premier emplacement du microprogramme (emplacement 1) est en lecture seule. Lorsque cette valeur est effacée 0, le premier emplacement du microprogramme (emplacement 1) est en lecture/écriture. Les implémentations peuvent choisir d’avoir une image de microprogramme en lecture seule en lecture de base.
FRMW.SlotCount
Les bits 1:3 de la structure FRMW indiquent le nombre d’emplacements de microprogramme pris en charge par le contrôleur.
Ce champ spécifie une valeur comprise entre un et sept, indiquant qu’au moins un emplacement de microprogramme est pris en charge et jusqu’à sept maximum. Cela correspond aux emplacements de microprogramme 1 à 7.
FRMW.ActivationWithoutReset
Le bit 4 de la structure FRMW indique si le contrôleur prend en charge l’activation du microprogramme sans réinitialisation.
Lorsque cette valeur est définie 1, le contrôleur prend en charge l’activation du microprogramme sans réinitialisation. Lorsque cette valeur est effacée 0, le contrôleur nécessite une réinitialisation pour que le microprogramme soit activé.
FRMW.Reserved
Les bits 5:7 de la structure FRMW sont réservés.
LPA
Structure Attributs de page de journal (LPA) contenant des champs qui indiquent des attributs facultatifs pour les pages de journal accessibles à l’aide de la commande Get Log Page .
LPA.SmartPagePerNamespace
Le bit 0 de la structure LPA indique si le contrôleur prend en charge la page du journal des informations SMART/Health par espace de noms.
Lorsque cette valeur est définie 1, le contrôleur prend en charge la page du journal des informations SMART/Health par espace de noms. Lorsque cette valeur est effacée 0, le contrôleur ne prend pas en charge la page du journal des informations SMART/Health par espace de noms.
LPA.CommandEffectsLog
Le bit 1 de la structure LPA indique si le contrôleur prend en charge la page du journal Effets de commande.
Lorsque cette valeur est définie 1, le contrôleur prend en charge la page du journal Effets de commande. Lorsque cette valeur est effacée 0, le contrôleur ne prend pas en charge la page du journal Effets de commande.
LPA.LogPageExtendedData
Le bit 2 de la structure LPA indique si le contrôleur prend en charge les données étendues de la page de journal.
LPA.TelemetrySupport
Le bit 3 de la structure LPA indique si le contrôleur prend en charge la prise en charge des données de télémétrie.
LPA.PersistentEventLog
LPA.Reserved0
LPA.TelemetryDataArea4
LPA.Reserved1
ELPE
Indique le nombre d’entrées du journal des informations d’erreur stockées par le contrôleur. Ce champ est une valeur basée sur 0.
NPSS
Indique le nombre d’états d’alimentation NVM Express pris en charge par le contrôleur. Il s’agit d’une valeur de base de 0.
Les états d’alimentation sont numérotés séquentiellement à partir de l’état d’alimentation 0. Un contrôleur doit prendre en charge au moins un état d’alimentation (par exemple, l’état d’alimentation 0) et peut prendre en charge jusqu’à 31 états d’alimentation supplémentaires, pour un total de 32.
AVSCC
Structure AVSCC (Admin Vendor Specific Command Configuration) contenant les champs qui indiquent les paramètres de configuration pour la gestion des commandes spécifiques du fournisseur d’administration.
AVSCC.CommandFormatInSpec
Le bit 0 de la structure AVSCC indique si toutes les commandes spécifiques du fournisseur d’administration utilisent le format de commande défini dans la structure NVME_COMMAND .
Lorsque cette valeur est effacée 0, elle indique que le format de toutes les commandes spécifiques du fournisseur d’administration est spécifique au fournisseur.
Lorsque cette valeur est définie 1, elle indique que toutes les commandes spécifiques du fournisseur d’administration utilisent la structure NVME_COMMAND .
AVSCC.Reserved
Les bits 1:7 de la structure AVSCC sont réservés.
APSTA
Structure APSTA (Autonomous Power State Transition Attributes) contenant les champs qui indiquent les attributs de la fonctionnalité de transition d’état d’alimentation autonome.
APSTA.Supported
Le bit 0 de la structure APSTA indique si le contrôleur prend en charge les transitions d’état d’alimentation autonome.
Lorsque cette valeur est définie 1, le contrôleur prend en charge les transitions d’état d’alimentation autonome. Lorsque cette valeur est effacée 0, le contrôleur ne prend pas en charge les transitions d’état d’alimentation autonome.
APSTA.Reserved
Les bits 1:7 de la structure APSTA sont réservés.
WCTEMP
Indique la valeur minimale du champ Température composite (signalée dans le journal SMART/Health Information ) qui indique une condition de surchauffe pendant laquelle l’opération du contrôleur se poursuit.
La correction immédiate est recommandée (par exemple, une réduction supplémentaire du refroidissement ou de la charge de travail). La plateforme doit s’efforcer de maintenir une température composite inférieure à cette valeur.
Une valeur de ce champ indique qu’aucune 0h valeur de seuil de température d’avertissement n’est signalée par le contrôleur. Les implémentations conformes à NVMe Spec version 1.2 ou ultérieure doivent signaler une valeur non nulle dans ce champ. Il est recommandé que les implémentations signalent une valeur dans 0157h ce champ.
CCTEMP
Indique la valeur minimale du champ Température composite (signalée dans le journal SMART/Health Information ) qui indique une condition de surchauffe critique. Par exemple, une condition qui peut empêcher une opération normale continue, la possibilité de perte de données, l’arrêt automatique de l’appareil, une limitation extrême des performances ou des dommages permanents.
Une valeur de ce champ indique qu’aucune 0h valeur de seuil de température critique n’est signalée par le contrôleur. Les implémentations conformes à NVMe Spec version 1.2 ou ultérieure doivent signaler une valeur non nulle dans ce champ.
MTFA
Indique la durée maximale pendant laquelle le contrôleur arrête temporairement le traitement des commandes pour activer l’image du microprogramme.
Ce champ est valide si le contrôleur prend en charge l’activation du microprogramme sans réinitialisation. La valeur MFTA est spécifiée en 100 millisecondes. Une valeur indiquant 0h que la durée maximale n’est pas définie.
HMPRE
Indique la taille préférée que l’hôte doit allouer pour la fonctionnalité mémoire tampon de l’hôte en unités de 4 Ko.
Cette valeur doit être supérieure ou égale à la taille minimale de mémoire tampon de l’hôte (HMMIN).
Si ce champ n’est pas égal à zéro, la fonctionnalité mémoire tampon de l’hôte est prise en charge. Lorsque cette valeur est effacée 0h, la fonctionnalité mémoire tampon de l’hôte n’est pas prise en charge.
HMMIN
Indique la taille minimale que l’hôte doit allouer pour la fonctionnalité mémoire tampon de l’hôte en unités de 4 Ko.
Lorsque cette valeur est effacée 0, l’hôte est invité à allouer toute quantité de mémoire hôte possible jusqu’à la valeur HMPRE .
TNVMCAP[16]
Indique la capacité NVM totale, en octets, du sous-système NVM.
Ce champ est pris en charge si les commandes Gestion des espaces de noms et Pièces jointes d’espace de noms sont prises en charge.
UNVMCAP[16]
Indique la capacité NVM non allouée, en octets, du sous-système NVM.
Ce champ est pris en charge si les commandes Gestion des espaces de noms et Pièces jointes d’espace de noms sont prises en charge.
RPMBS
Structure RPMBS (Replay Protected Memory Block Support) contenant des champs qui indiquent si le contrôleur prend en charge un ou plusieurs blocs de mémoire protégés par relecture (RPMB) et les fonctionnalités associées.
RPMBS.RPMBUnitCount
Indique le nombre de cibles RPMB que le contrôleur prend en charge.
Toutes les cibles PMB prises en charge (bloc de mémoire protégée) ont les mêmes fonctionnalités que celles définies dans le champ RPMBS . Une valeur indiquant 0h que le contrôleur ne prend pas en charge les rpmBs. Si cette valeur n’est pas zéro, le contrôleur prend en charge les commandes Security Send and Security Receive.
RPMBS.AuthenticationMethod
Indique la méthode d’authentification utilisée pour accéder à tous les blocs de mémoire protégés par relecture (RPMB) dans le contrôleur. Les valeurs de ce champ sont les suivantes :
| Valeur | Definition |
|---|---|
| 000b | HMAC SHA-256 |
| 001b-111b | Réservé |
RPMBS.Reserved0
Champ réservé.
RPMBS.TotalSize
Indique la taille totale de chaque RPMB prise en charge dans le contrôleur en unités de 128 Ko. Il s’agit d’une valeur de base de 0. La valeur indique 0h une taille de 128 Ko.
RPMBS.AccessSize
Indique la taille qui peut être lue ou écrite par accès RPMB par les commandes Security Send ou Security Receive pour ce contrôleur en unités de 512B.
Il s’agit d’une valeur de base de 0. Une valeur indiquant 0h une taille de 512B.
EDSTT
Indique le temps de test automatique de l’appareil étendu (EDSTT).
DSTO
Indique les options d’auto-test de l’appareil (DSTO).
FWUG
Indique la granularité de mise à jour du microprogramme (FWUG).
KAS
Indique la prise en charge keep alive (KAS).
HCTMA
Structure HCTMA (Host Controlled Thermal Management Attributes).
HCTMA.Supported
Indique si les attributs de gestion thermique contrôlée par l’hôte sont pris en charge.
HCTMA.Reserved
Ce champ de structure HCTMA est réservé.
MNTMT
Température minimale de gestion thermique (MNTMT)
MXTMT
Température maximale de gestion thermique (MXTMT)
SANICAP
Fonctionnalités d’assainissement (SANICAP)
SANICAP.CryptoErase
Le contrôleur prend en charge l’assainissement de l’effacement de chiffrement
SANICAP.BlockErase
Le contrôleur prend en charge l’assainissement de l’effacement de bloc
SANICAP.Overwrite
Le contrôleur prend en charge Overwrite Santize
SANICAP.Reserved
SANICAP.NDI
SANICAP.NODMMAS
HMMINDS
HMMAXD
NSETIDMAX
NVM Set Identifier Maximum
ENDGIDMAX
ANATT
ANACAP
ANACAP.OptimizedState
ANACAP.NonOptimizedState
ANACAP.InaccessibleState
ANACAP.PersistentLossState
ANACAP.ChangeState
ANACAP.Reserved
ANACAP.StaticANAGRPID
ANACAP.SupportNonZeroANAGRPID
ANAGRPMAX
NANAGRPID
PELS
Reserved1[156]
Champ réservé.
SQES
Structure SQES (Submission Queue Entry Size) contenant les champs qui indiquent la taille d’entrée de file d’attente de soumission requise et maximale lors de l’utilisation du jeu de commandes NVM.
SQES.RequiredEntrySize
Les bits 0:3 de la structure SQES indiquent la taille d’entrée de file d’attente de soumission requise lors de l’utilisation du jeu de commandes NVM.
Il s’agit de la taille minimale d’entrée qui peut être utilisée. La valeur est en octets et est signalée sous la forme d’une puissance de deux (2^n). La valeur requise est 6, ce qui correspond à 64 octets.
SQES.MaxEntrySize
Les bits 4:7 de la structure SQES indiquent la taille maximale d’entrée de file d’attente de soumission lors de l’utilisation du jeu de commandes NVM.
Cette valeur est supérieure ou égale à SQES. Valeur RequiredEntrySize . La valeur est en octets et est signalée sous la forme d’une puissance de deux (2^n). La valeur recommandée est 6, correspondant à une taille d’entrée SQ de jeu de commandes NVM standard de 64 octets. Les contrôleurs qui implémentent des extensions propriétaires peuvent prendre en charge une valeur plus importante.
CQES
Structure CQES (Completion Queue Entry Size) contenant les champs qui indiquent la taille d’entrée de file d’attente d’achèvement requise et maximale lors de l’utilisation du jeu de commandes NVM.
CQES.RequiredEntrySize
Les bits 0:3 de la structure CQES indiquent la taille d’entrée de file d’attente d’achèvement requise lors de l’utilisation du jeu de commandes NVM.
Il s’agit de la taille minimale d’entrée qui peut être utilisée. La valeur est en octets et est signalée sous la forme d’une puissance de deux (2^n). La valeur requise est 4, ce qui correspond à 16 octets.
CQES.MaxEntrySize
Les bits 4:7 de la structure CQES indiquent la taille maximale d’entrée de file d’attente d’achèvement lors de l’utilisation du jeu de commandes NVM.
Cette valeur est supérieure ou égale à la taille d’entrée CQ requise. La valeur est en octets et est signalée sous la forme d’une puissance de deux (2^n). La valeur recommandée est 4, correspondant à une taille d’entrée CQ de jeu de commandes NVM standard de 16 octets. Les contrôleurs qui implémentent des extensions propriétaires peuvent prendre en charge une valeur plus importante.
MAXCMD
NN
Indique le nombre d’espaces de noms valides présents pour le contrôleur.
ONCS
Structure de prise en charge des commandes NVM facultative (ONCS) contenant des champs qui indiquent les commandes et fonctionnalités NVM facultatives prises en charge par le contrôleur.
ONCS.Compare
Le bit 0 de la structure ONCS indique si le contrôleur prend en charge la commande Comparer.
Lorsque cette valeur est définie 1, le contrôleur prend en charge la commande Comparer. Lorsque cette valeur est effacée 0, le contrôleur ne prend pas en charge la commande Comparer.
ONCS.WriteUncorrectable
Le bit 1 de la structure ONCS indique si le contrôleur prend en charge la commande Write Uncorrectable.
Lorsque cette valeur est définie 1, le contrôleur prend en charge la commande Write Uncorrectable. Lorsque cette valeur est effacée 0, le contrôleur ne prend pas en charge la commande Write Uncorrectable.
ONCS.DatasetManagement
Le bit 2 de la structure ONCS indique si le contrôleur prend en charge la commande Gestion des jeux de données.
Lorsque cette valeur est définie 1, le contrôleur prend en charge la commande Gestion du jeu de données. Lorsque cette valeur est effacée 0, le contrôleur ne prend pas en charge la commande Gestion du jeu de données.
ONCS.WriteZeroes
Le bit 3 de la structure ONCS indique si le contrôleur prend en charge la commande Write Zeroes.
Lorsque cette valeur est définie 1, le contrôleur prend en charge la commande Write Zeroes. Lorsque cette valeur est effacée 0, le contrôleur ne prend pas en charge la commande Write Zeroes.
ONCS.FeatureField
Le bit 4 de la structure ONCS indique si le contrôleur prend en charge le champ Enregistrer dans la commande Définir les fonctionnalités et le champ Sélectionner dans la commande Obtenir les fonctionnalités.
Lorsque cette valeur est définie 1, le contrôleur prend en charge le champ Enregistrer dans la commande Définir les fonctionnalités et le champ Sélectionner dans la commande Obtenir les fonctionnalités.
Lorsque cette valeur est effacée 0, le contrôleur ne prend pas en charge le champ Enregistrer dans la commande Définir les fonctionnalités et le champ Sélectionner dans la commande Obtenir les fonctionnalités.
ONCS.Reservations
Le bit 5 de la structure ONCS indique si le contrôleur prend en charge les réservations.
Lorsque cette valeur est définie 1, le contrôleur prend en charge les réservations et prend également en charge les commandes suivantes associées aux réservations :
- Rapport de réservation
- Registre des réservations
- Acquisition de réservation
- Mise en production de réservation
Lorsque cette valeur est effacée 0, le contrôleur ne prend pas en charge les réservations.
ONCS.Timestamp
Le bit 6 de la structure ONCS indique si le contrôleur prend en charge la fonctionnalité Timestamp (NVME_FEATURE_TIMESTAMP).
ONCS.Verify
ONCS.Reserved
Les bits 7:15 de la structure ONCS sont réservés.
FUSES
Structure fuses (Fused Operation Support) contenant des champs qui indiquent les opérations fusionnées que le contrôleur prend en charge.
FUSES.CompareAndWrite
Le bit 0 de la structure FUSES indique si le contrôleur prend en charge l’opération de comparaison et d’écriture fusionnée.
Lorsque cette valeur est effacée 0, le contrôleur ne prend pas en charge l’opération de comparaison et d’écriture fusionnée. La comparaison sera la première commande de la séquence.
FUSES.Reserved
Les bits 15:1 de la structure FUSES sont réservés.
FNA
Structure D’attributs NVM (Format NVM) contenant des champs qui indiquent des attributs pour la commande Format NVM .
FNA.FormatApplyToAll
Le bit 0 de la structure FNA indique si l’opération de format s’applique à tous les espaces de noms ou est spécifique à un espace de noms particulier.
Lorsque cette valeur est définie 1, tous les espaces de noms sont configurés avec les mêmes attributs et un format d’espace de noms entraîne un format de tous les espaces de noms.
Lorsque cette valeur est effacée 0, le contrôleur prend en charge le format par espace de noms.
FNA.SecureEraseApplyToAll
Le bit 1 de la structure FNA indique si la fonctionnalité d’effacement de chiffrement et d’effacement des données utilisateur s’applique à tous les espaces de noms ou est spécifique à un espace de noms particulier.
Lorsque cette valeur est définie 1sur , une effacement de chiffrement d’un espace de noms particulier dans le cadre d’un format entraîne une effacement de chiffrement de tous les espaces de noms et une effacement des données utilisateur d’un espace de noms particulier dans le cadre d’un format entraîne l’effacement des données utilisateur de tous les espaces de noms.
Lorsque cette valeur est effacée 0, une effacement de chiffrement ou une effacement des données utilisateur dans le cadre d’un format est effectuée par espace de noms.
FNA.CryptographicEraseSupported
Le bit 2 de la structure FNA indique si l’effacement de chiffrement est pris en charge dans le cadre de la fonctionnalité d’effacement sécurisée.
Lorsque cette valeur est définie 1sur , l’effacement de chiffrement est pris en charge. Lorsque cette valeur est effacée 0, l’effacement de chiffrement n’est pas pris en charge.
FNA.FormatSupportNSIDAllF
FNA.Reserved
Les bits 7:3 de la structure FNA sont réservés.
VWC
Structure VWC (Volatile Write Cache) contenant des champs qui indiquent les attributs liés à la présence d’un cache d’écriture volatile dans l’implémentation.
VWC.Present
Le bit 0 de la structure VWC indique qu’un cache d’écriture volatile est présent.
Lorsque cette valeur est définie 1sur , un cache d’écriture volatile est présent et l’hôte peut émettre des commandes de vidage et contrôler si le cache d’écriture volatile est activé avec la commande Set Features spécifiant l’identificateur de fonctionnalité NVME_FEATURE_VOLATILE_WRITE_CACHE .
Lorsque cette valeur est effacée 0, un cache d’écriture volatile n’est pas présent.
Lorsqu’un cache d’écriture volatile n’est pas présent, les commandes de vidage se terminent correctement et n’ont aucun effet, et la commande Définir les fonctionnalités avec le jeu d’identificateurs de NVME_FEATURE_VOLATILE_WRITE_CACHE échoue avec l’état de NVME_STATUS_INVALID_FIELD_IN_COMMAND, et Obtenir des fonctionnalités avec le jeu d’identificateurs de NVME_FEATURE_VOLATILE_WRITE_CACHE échoue avec l’état de NVME_STATUS_INVALID_FIELD_IN_COMMAND.
VWC.FlushBehavior
VWC.Reserved
Les bits 1:7 de la structure VWC sont réservés.
AWUN
Indique la taille de l’opération d’écriture garantie d’être écrite atomiquement dans la machine virtuelle réseau sur tous les espaces de noms avec n’importe quel format d’espace de noms pris en charge pendant l’opération normale. Ce champ est spécifié dans les blocs logiques et est une valeur de base de 0.
Si un espace de noms spécifique garantit une taille supérieure à celle signalée dans ce champ, cette taille spécifique à l’espace de noms est signalée dans le champ NAWUN de la structure de données Identifier l’espace de noms .
Si une commande d’écriture est envoyée avec une taille inférieure ou égale à la valeur AWUN , l’hôte est garanti que la commande d’écriture est atomique à la machine virtuelle réseau par rapport à d’autres commandes de lecture ou d’écriture. Si une commande d’écriture est envoyée avec une taille supérieure à la valeur AWUN , il n’existe aucune garantie d’atomicité des commandes.
La valeur AWUN n’a aucune applicabilité pour écrire des erreurs causées par une panne d’alimentation. Pour plus d’informations, consultez le champ AWUPF (Atomic Write Unit Power Fail).
Une valeur indiquant FFFFh que toutes les commandes sont atomiques, car il s’agit de la plus grande taille de commande. Les implémentations doivent prendre en charge un minimum de 128 Ko, correctement mis à l’échelle en fonction de la taille de l’accès au bloc logique (LBA).
AWUPF
Indique la taille de l’opération d’écriture garantie d’être écrite atomiquement dans la machine virtuelle réseau sur tous les espaces de noms avec n’importe quel format d’espace de noms pris en charge lors d’un échec d’alimentation ou d’une condition d’erreur. Ce champ est spécifié dans les blocs logiques et est une valeur de base de 0.
Si un espace de noms spécifique garantit une taille supérieure à celle signalée dans ce champ, cette taille spécifique à l’espace de noms est signalée dans le champ NAWUPF de la structure de données Identifier l’espace de noms . La valeur AWUPF doit être inférieure ou égale à la valeur AWUN .
Si une commande d’écriture est envoyée avec une taille inférieure ou égale à la valeur AWUPF , l’hôte est garanti que l’écriture est atomique à la machine virtuelle NVM par rapport à d’autres commandes de lecture ou d’écriture. Si une commande d’écriture est soumise supérieure à cette taille, il n’existe aucune garantie d’atomicité de commande. Si la taille d’écriture est inférieure ou égale à la valeur AWUPF et que la commande d’écriture échoue, les commandes de lecture suivantes pour les blocs logiques associés retournent les données de la commande d’écriture réussie précédente.
Si une commande d’écriture est envoyée avec une taille supérieure à la valeur AWUPF , il n’existe aucune garantie de données retournées lors des lectures suivantes des blocs logiques associés.
NVSCC
Structure nvSCC (NVM Vendor Specific Command Configuration) contenant les champs qui indiquent les paramètres de configuration pour la gestion des commandes spécifiques du fournisseur de machines virtuelles NVM.
NVSCC.CommandFormatInSpec
Le bit 0 de la structure NVSCC indique si toutes les commandes spécifiques du fournisseur de machine virtuelle NVM utilisent le format défini dans la figure 13.
Lorsque cette valeur est définie 1sur , toutes les commandes spécifiques du fournisseur de machine virtuelle NVM utilisent le format défini dans la figure 13. Lorsque cette valeur est effacée 0, elle indique que le format de toutes les commandes spécifiques du fournisseur de machine virtuelle réseau est spécifique au fournisseur.
NVSCC.Reserved
Les bits 1:7 de la structure NVSCC sont réservés.
NWPC
NWPC.WriteProtect
NWPC.UntilPowerCycle
NWPC.Permanent
NWPC.Reserved
ACWU
Indique la taille de l’opération d’écriture garantie d’être écrite atomiquement dans la machine virtuelle réseau dans tous les espaces de noms avec n’importe quel format d’espace de noms pris en charge pour une opération de comparaison et d’écriture fusionnée.
Si un espace de noms spécifique garantit une taille supérieure à celle signalée dans ce champ, cette taille spécifique à l’espace de noms est signalée dans le champ NACWU dans la structure de données Identifier l’espace de noms .
Ce champ est pris en charge si la commande Comparer et écrire fusionnée est prise en charge. Ce champ est spécifié dans les blocs logiques et est une valeur de base de 0. Si une comparaison et une écriture sont envoyées qui demandent une taille de transfert supérieure à cette valeur, le contrôleur peut échouer à la commande avec l’état de NVME_STATUS_INVALID_FIELD_IN_COMMAND.
Si Compare and Write n’est pas une commande fusionnée prise en charge, la valeur de ce champ est 0h.
Reserved4[2]
Champ réservé.
SGLS
Structure SGL Support (SGLS) contenant des champs qui spécifient si les listes de collecte de points (SGL) sont prises en charge pour le jeu de commandes NVM et les types SGL pris en charge.
SGLS.SGLSupported
Lorsque cette valeur est définie 1, le contrôleur prend en charge les listes SGL pour le jeu de commandes NVM, notamment les types de descripteur SGL Data Block, SGL Segment et SGL Last Segment. Lorsque cette valeur est effacée 0, le contrôleur ne prend pas en charge les listes SGL pour le jeu de commandes NVM et tous les autres bits de ce champ sont effacés sur 0.
SGLS.KeyedSGLData
SGLS.Reserved0
Champ réservé.
SGLS.BitBucketDescrSupported
Lorsque cette valeur est définie 1sur , le descripteur de compartiment de bits SGL est pris en charge. Lorsque cette valeur est effacée 0, le descripteur de compartiment de bits SGL n’est pas pris en charge.
SGLS.ByteAlignedContiguousPhysicalBuffer
Lorsque cette valeur est définie 1sur , l’utilisation d’une mémoire tampon physique contiguë alignée sur octets des métadonnées (le champ Pointeur de métadonnées de la figure 12) est pris en charge. Lorsque cette valeur est effacée 0, l’utilisation d’une mémoire tampon physique contiguë alignée sur octets des métadonnées n’est pas prise en charge.
SGLS.SGLLengthLargerThanDataLength
Lorsque cette valeur est définie 1, le contrôleur prend en charge les commandes qui contiennent des données ou des métadonnées SGL d’une longueur supérieure à la quantité de données à transférer. Lorsque cette valeur est effacée 0, la longueur SGL est égale à la quantité de données à transférer.
SGLS.MPTRSGLDescriptor
SGLS.AddressFieldSGLDataBlock
SGLS.TransportSGLData
SGLS.Reserved1
Champ réservé.
MNAN
Reserved6[224]
Les octets 704:2047 sont réservés pour les attributs d’ensemble de commandes d’E/S.
SUBNQN[256]
Reserved7[768]
Reserved8[256]
PDS[32]
Contient un tableau de descripteurs d’état d’alimentation 32. Chaque membre du tableau est un champ 32 bits qui indique les caractéristiques d’un descripteur Power State. Le format de ce champ est défini dans la structure NVME_POWER_STATE_DESC .
La position de base zéro d’une structure dans le tableau correspond au nom du descripteur Power State, de sorte que Power State 0 Descriptor (PSD0) est à la position 0, Power State 1 Descriptor (PSD1) est à la position 1, et ainsi de suite, jusqu’à Power State 31 Descriptor (PSD31) à la position 31.
VS[1024]
Les octets 3072:4095 sont alloués pour une utilisation spécifique du fournisseur.
Remarques
Les valeurs des champs VID, SN et MN peuvent être combinées pour former une valeur globale unique qui identifie le sous-système NVM.
Spécifications
| Requirement | Valeur |
|---|---|
| Client minimum requis | Windows 10 |
| Header | nvme.h |