structure NVME_IDENTIFY_CONTROLLER_DATA (nvme.h)
Contient des valeurs qui indiquent les fonctionnalités du contrôleur, les caractéristiques, les attributs du 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;
Membres
VID
Contient l’identificateur du fournisseur de l’entreprise attribué par le pci-SIG (Peripheral Component Interconnect - Special Interest Group).
SSVID
Contient l’identificateur du fournisseur de l’entreprise attribué par le PCI-SIG pour le sous-système.
SN[20]
Contient le numéro de série du sous-système NVM attribué par le fournisseur en tant que chaîne ASCII.
MN[40]
Contient le numéro de modèle du sous-système NVM attribué 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 à l’aide de la commande Obtenir la page du journal.
RAB
Contient la taille de rafale d’arbitrage recommandée.
IEEE[3]
Contient l’identificateur unique d’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 d’accès et de partage d’espaces de noms (CMIC) du contrôleur qui spécifie les fonctionnalités d’E/S multi-chemin et de partage d’espaces de noms du sous-système contrôleur et NVM.
CMIC.MultiPCIePorts
Bit 0 de la structure CMIC .
Lorsque cette valeur est définie sur 1
, le sous-système NVM peut contenir au moins deux ports PCI Express physiques. Lorsque la valeur est effacée en 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 sur 1
, le sous-système NVM peut contenir au moins deux contrôleurs. 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 sur 1
, le contrôleur est associé à une fonction virtuelle de virtualisation d’E/S mono-racine (SR-IOV). Lorsque la valeur est effacée en 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 de 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 status de NVME_STATUS_INVALID_FIELD_IN_COMMAND.
La valeur de ce champ est en unités de la taille minimale de page mémoire spécifiée dans le champ MPSMIN de la structure Des fonctionnalités du contrôleur et est signalée sous la forme d’une puissance de deux (2^n). La valeur de indique aucune restriction sur la taille du 0h
transfert. La restriction inclut les métadonnées si elle est entrelacée avec les données de blocs logiques.
Si les descripteurs de compartiment de bits SGL sont pris en charge, leurs longueurs sont incluses pour déterminer si une commande dépasse la taille maximale de 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 maximale de transfert de données.
CNTLID
Contient l’identificateur unique du contrôleur du sous-système NVM associé au contrôleur.
VER
Contient la valeur signalée dans le registre version, définie dans le champ VS de la structure NVME_CONTROLLER_REGISTERS .
Les implémentations qui sont conformes à la spécification NVMe version 1.2 ou ultérieure signalent une valeur autre que zéro dans ce champ.
RTD3R
Indique la latence typique en microsecondes lors de la reprise à partir du runtime D3 (RTD3).
Les implémentations qui sont conformes à la spécification NVMe version 1.2 ou ultérieure signalent une valeur autre que zéro dans ce champ.
RTD3E
Indique la latence classique en microsecondes pour entrer dans le runtime D3 (RTD3).
Les implémentations qui sont conformes à la spécification NVMe version 1.2 ou ultérieure signalent une valeur autre que zéro 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 sur 1
, le contrôleur prend en charge l’envoi de l’événement Namespace Attribute Changed. Lorsque cette valeur est effacée en 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 sur 1
, le contrôleur prend en charge l’envoi de l’événement Activation du microprogramme. Lorsque cette valeur est effacée en 0
, le contrôleur ne prend pas en charge l’événement 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 des attributs de contrôleur (CTRATT) contenant des informations d’attribut de 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é à NVMe Management.
OACS
Structure OACS (Optional Administration Command Support) contenant des champs qui indiquent les Administration commandes 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 sur 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 en 0
, le contrôleur ne prend pas en charge les commandes d’envoi de sécurité et de réception de sécurité.
OACS.FormatNVM
Le bit 1 de la structure OACS indique si le contrôleur prend en charge la commande Format NVM.
Lorsque cette valeur est définie sur 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 Commit du microprogramme et Firmware Image Download.
Lorsque cette valeur est définie sur 1
, le contrôleur prend en charge les commandes Validation du microprogramme et Téléchargement d’images du microprogramme. Lorsque cette valeur est effacée, 0
le contrôleur ne prend pas en charge les commandes Validation du microprogramme et 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 sur 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 de directive et de réception 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 d’abandon en attente simultanées 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 d’abandon en cours simultanément.
AERL
Indique le nombre maximal de commandes de demande d’événements asynchrones en attente simultanées 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énements asynchrones en cours simultanément.
FRMW
Structure de microprogramme Mises à jour (FRMW) contenant des champs qui indiquent les 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 sur 1
, 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 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 au 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 sur 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 l’activation du microprogramme.
FRMW.Reserved
Les bits 5 :7 de la structure FRMW sont réservés.
LPA
Structure LPA (Log Page Attributes) contenant des champs qui indiquent des attributs facultatifs pour les pages de journal accessibles à l’aide de la commande Obtenir la page de journal .
LPA.SmartPagePerNamespace
Le bit 0 de la structure LPA indique si le contrôleur prend en charge la page du journal des informations SMART/Intégrité par espace de noms.
Lorsque cette valeur est définie 1
sur , le contrôleur prend en charge la page smart/journal des informations d’intégrité par espace de noms. Lorsque cette valeur est effacée sur 0
, le contrôleur ne prend pas en charge la page du journal d’informations SMART/Intégrité 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 Des effets de commande.
Lorsque cette valeur est définie sur 1
, le contrôleur prend en charge la page journal Des effets de commande. Lorsque cette valeur est désactivée sur 0
, le contrôleur ne prend pas en charge la page du journal Des 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 page de journal.
LPA.TelemetrySupport
Le bit 3 de la structure LPA indique si le contrôleur prend en charge la télémétrie.
LPA.PersistentEventLog
LPA.Reserved0
LPA.TelemetryDataArea4
LPA.Reserved1
ELPE
Indique le nombre d’entrées de journal d’informations sur les erreurs 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 basée sur 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, état d’alimentation 0) et peut prendre en charge jusqu’à 31 états d’alimentation supplémentaires, pour un total de 32.
AVSCC
Structure Administration configuration de commande spécifique du fournisseur (AVSCC) contenant des champs qui indiquent les paramètres de configuration pour Administration gestion des commandes spécifiques au fournisseur.
AVSCC.CommandFormatInSpec
Le bit 0 de la structure AVSCC indique si toutes les commandes spécifiques Administration fournisseur utilisent le format de commande défini dans la structure NVME_COMMAND.
Lorsque cette valeur est effacée en 0
, elle indique que le format de toutes les commandes spécifiques du fournisseur Administration sont spécifiques au fournisseur.
Lorsque cette valeur est définie sur 1
, elle indique que toutes les commandes spécifiques Administration fournisseur utilisent la structure NVME_COMMAND.
AVSCC.Reserved
Les bits 1 :7 de la structure AVSCC sont réservés.
APSTA
Une structure APSTA (Power State Transition Attributes) autonome contenant des 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 autonomes.
Lorsque cette valeur est définie sur 1
, le contrôleur prend en charge les transitions d’état d’alimentation autonomes. Lorsque cette valeur est effacée sur 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.
Une correction immédiate est recommandée (par exemple, un refroidissement supplémentaire ou une réduction de la charge de travail). La plateforme doit s’efforcer de maintenir une température composite inférieure à cette valeur.
La valeur dans ce champ indique qu’aucune valeur de seuil de 0h
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 différente de zéro dans ce champ. Il est recommandé que les implémentations indiquent une valeur de 0157h
dans ce champ.
CCTEMP
Indique la valeur minimale du champ Température composite (signalée dans le [SMART / Health Information](ns-nvme-nvme_health_info_log.md log) qui indique une condition critique de surchauffe. Par exemple, une condition qui peut empêcher le fonctionnement normal continu, la possibilité de perte de données, l’arrêt automatique de l’appareil, la limitation extrême des performances ou des dommages permanents.
Une valeur de 0h
dans ce champ indique qu’aucune valeur de seuil critique de température n’est signalée par le contrôleur. Les implémentations conformes à NVMe Spec version 1.2 ou ultérieure doivent signaler une valeur différente de zéro 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 unités de 100 millisecondes. La valeur indique 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 à 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 sur 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 à la fonctionnalité Mémoire tampon de l’hôte en unités de 4 Ko.
Lorsque cette valeur est effacée sur 0
, l’hôte est invité à allouer toute quantité de mémoire hôte possible jusqu’à la valeur HMPRE .
TNVMCAP[16]
Indique la capacité totale de la machine virtuelle NVM, en octets, du sous-système NVM.
Ce champ est pris en charge si les commandes Gestion des espaces de noms et Pièce jointe d’espace de noms sont prises en charge.
UNVMCAP[16]
Indique la capacité de machine virtuelle 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èce jointe 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 (bloc de mémoire protégée) prises en charge ont les mêmes fonctionnalités que celles définies dans le champ RPMBS . La valeur indique 0h
que le contrôleur ne prend pas en charge les RPMB. Si cette valeur n’est pas égale à zéro, le contrôleur prend en charge les commandes Security Send et Security Receive.
RPMBS.AuthenticationMethod
Indique la méthode d’authentification utilisée pour accéder à tous les blocs de mémoire protégés (RPMB) de relecture dans le contrôleur. Les valeurs de ce champ sont les suivantes :
Valeur | Définition |
---|---|
000b | HMAC SHA-256 |
001b-111b | Réservé |
RPMBS.Reserved0
Champ réservé.
RPMBS.TotalSize
Indique la taille totale de chaque RPMB pris en charge dans le contrôleur, en unités de 128 Ko. Il s’agit d’une valeur basée sur 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 d’envoi de sécurité ou de réception de sécurité pour ce contrôleur en unités 512B.
Il s’agit d’une valeur basée sur 0. La valeur indique 0h
une taille de 512B.
EDSTT
Indique le temps d’auto-test 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 Crypto Erase Sanitize
SANICAP.BlockErase
Le contrôleur prend en charge l’effacement de bloc de nettoyage
SANICAP.Overwrite
Le contrôleur prend en charge le remplacement de Santize
SANICAP.Reserved
SANICAP.NDI
SANICAP.NODMMAS
HMMINDS
HMMAXD
NSETIDMAX
Valeur maximale de l’identificateur du jeu de machines virtuelles
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 des 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 d’entrée minimale qui peut être utilisée. La valeur est en octets et est signalée comme 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 d’entrée de file d’attente de soumission maximale 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 comme une puissance de deux (2^n). La valeur recommandée est 6, correspondant à une taille d’entrée SQ standard du jeu de commandes NVM de 64 octets. Les contrôleurs qui implémentent des extensions propriétaires peuvent prendre en charge une valeur plus élevée.
CQES
Structure CQES (Completion Queue Entry Size) contenant des 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 d’entrée minimale qui peut être utilisée. La valeur est en octets et est signalée comme 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 d’entrée de file d’attente d’achèvement maximale 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 comme une puissance de deux (2^n). La valeur recommandée est 4, ce qui correspond à une taille d’entrée 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 élevée.
MAXCMD
NN
Indique le nombre d’espaces de noms valides présents pour le contrôleur.
ONCS
Structure ONCS (Optional NVM Command Support) contenant des champs qui indiquent les fonctionnalités et commandes 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 sur 1
, le contrôleur prend en charge la commande Comparer. Lorsque cette valeur est désactivée sur 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 sur 1
, le contrôleur prend en charge la commande Write Uncorrectable. Lorsque cette valeur est désactivée sur 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 du jeu de données.
Lorsque cette valeur est définie sur 1
, le contrôleur prend en charge la commande Gestion du jeu de données. Lorsque cette valeur est désactivée sur 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 sur 1
, le contrôleur prend en charge la commande Écrire des zéros. Lorsque cette valeur est désactivée sur 0
, le contrôleur ne prend pas en charge la commande Écrire des zéros.
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 sur 1
, le contrôleur prend en charge le champ Enregistrer dans la commande Définir des fonctionnalités et le champ Sélectionner dans la commande Obtenir les fonctionnalités.
Lorsque cette valeur est désactivée sur 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 sur 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 de réservation
- Acquisition de réservation
- Version de réservation
Lorsque cette valeur est effacée sur 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 prises en charge par le contrôleur.
FUSES.CompareAndWrite
Le bit 0 de la structure FUSES indique si le contrôleur prend en charge l’opération fusionnée Comparer et écrire.
Lorsque cette valeur est effacée sur 0
, le contrôleur ne prend pas en charge l’opération fusionnée Comparer et écrire. Comparer 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 FNA (Format NVM Attributes) contenant des champs qui indiquent les attributs de 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 sur 1
, tous les espaces de noms sont configurés avec les mêmes attributs et un format de n’importe quel espace de noms entraîne un format de tous les espaces de noms.
Lorsque cette valeur est effacée en 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 sur 1
, 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 une effacement des données utilisateur de tous les espaces de noms.
Lorsque cette valeur est effacée en 0
, une effacement de chiffrement ou une effacement des données utilisateur dans le cadre d’un format est effectué 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é.
Lorsque cette valeur est définie sur 1
, l’effacement de chiffrement est pris en charge. Lorsque cette valeur est effacée en , l’effacement 0
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 des 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 sur 1
, 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 Définir les fonctionnalités spécifiant l’identificateur de fonctionnalité NVME_FEATURE_VOLATILE_WRITE_CACHE .
Lorsque cette valeur est effacée sur 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 un status 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 une status 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 pour être écrite atomiquement sur la machine virtuelle NVM sur tous les espaces de noms avec n’importe quel format d’espace de noms pris en charge pendant le fonctionnement normal. Ce champ est spécifié dans des blocs logiques et est une valeur basée sur 0.
Si un espace de noms spécifique garantit une taille supérieure à celle indiqué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 NVM par rapport aux 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é de la commande.
La valeur AWUN n’est pas applicable aux erreurs d’écriture provoquées par une panne de courant. Pour plus d’informations, consultez le champ Atomic Write Unit Power Fail (AWUPF).
La valeur indique que toutes les commandes sont atomiques, car il s’agit de FFFFh
la plus grande taille de commande. Les implémentations doivent prendre en charge un minimum de 128 Ko, mis à l’échelle de manière appropriée en fonction de la taille de l’accès par bloc logique (LBA).
AWUPF
Indique la taille de l’opération d’écriture garantie pour être écrite atomiquement sur la machine virtuelle NVM sur tous les espaces de noms avec n’importe quel format d’espace de noms pris en charge pendant une panne d’alimentation ou une condition d’erreur. Ce champ est spécifié dans des blocs logiques et est une valeur basée sur 0.
Si un espace de noms spécifique garantit une taille supérieure à celle indiqué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 supérieure à cette taille est envoyée, il n’y a 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’y a aucune garantie que les données sont retournées lors des lectures suivantes des blocs logiques associés.
NVSCC
Structure NVSCC (NVM Vendor Specific Command Configuration) contenant des champs qui indiquent les paramètres de configuration pour la gestion des commandes spécifiques au fournisseur NVM.
NVSCC.CommandFormatInSpec
Le bit 0 de la structure NVSCC indique si toutes les commandes spécifiques au fournisseur NVM utilisent le format défini à la figure 13.
Lorsque cette valeur est définie sur , toutes les commandes spécifiques au 1
fournisseur NVM utilisent le format défini à la figure 13. Lorsque cette valeur est effacée sur , elle indique que le format de toutes les commandes spécifiques au 0
fournisseur NVM 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 pour être écrite atomiquement dans la machine virtuelle NVM sur tous les espaces de noms avec n’importe quel format d’espace de noms pris en charge pour une opération fusionnée Comparer et écrire.
Si un espace de noms spécifique garantit une taille supérieure à celle indiquée dans ce champ, cette taille spécifique à l’espace de noms est signalée dans le champ NACWU de la structure de données Identifier l’espace de noms .
Ce champ sera pris en charge si la commande fusionnée Comparer et écrire est prise en charge. Ce champ est spécifié dans des blocs logiques et est une valeur basée sur 0. Si un objet Comparer et Écrire est envoyé qui demande une taille de transfert supérieure à cette valeur, le contrôleur peut échouer à la commande avec un status de NVME_STATUS_INVALID_FIELD_IN_COMMAND.
Si Comparer et Écrire n’est pas une commande fusionnée prise en charge, la valeur de ce champ est 0h
.
Reserved4[2]
Champ réservé.
SGLS
Structure SGLS (SGLS) contenant des champs qui spécifient si les Listes de collecte de points (SGL) sont pris en charge pour l’ensemble de commandes NVM et les types SGL pris en charge.
SGLS.SGLSupported
Lorsque cette valeur est définie sur 1
, le contrôleur prend en charge les listes DEG pour le jeu de commandes NVM, y compris les types de descripteurs SGL Data Block, SGL Segment et SGL Last Segment. Lorsque cette valeur est effacée sur 0
, le contrôleur ne prend pas en charge les sgL pour l’ensemble de commandes NVM et tous les autres bits de ce champ sont effacés en 0
.
SGLS.KeyedSGLData
SGLS.Reserved0
Champ réservé.
SGLS.BitBucketDescrSupported
Lorsque cette valeur est définie sur 1
, le descripteur de compartiment de bits SGL est pris en charge. Lorsque cette valeur est effacée en 0
, le descripteur de compartiment de bits SGL n’est pas pris en charge.
SGLS.ByteAlignedContiguousPhysicalBuffer
Lorsque cette valeur est définie sur 1
, l’utilisation d’une mémoire tampon physique contiguë alignée sur les octets de métadonnées (le champ Pointeur de métadonnées de la figure 12) est prise en charge. Lorsque cette valeur est effacée à 0
, l’utilisation d’une mémoire tampon physique contiguë alignée sur octets de métadonnées n’est pas prise en charge.
SGLS.SGLLengthLargerThanDataLength
Lorsque cette valeur est définie sur 1
, le contrôleur prend en charge les commandes qui contiennent un SGL de données ou de métadonnées d’une longueur supérieure à la quantité de données à transférer. Lorsque cette valeur est effacée sur 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 aux attributs du jeu de commandes d’E/S.
SUBNQN[256]
Reserved7[768]
Reserved8[256]
PDS[32]
Contient un tableau de 32 descripteurs d’état d’alimentation. 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 d’état d’alimentation, de sorte que le descripteur Power State 0 (PSD0) se trouve à la position 0, que le descripteur Power State 1 (PSD1) est à la position 1, et ainsi de suite, jusqu’à Power State 31 Descriptor (PSD31) en position 31.
VS[1024]
Les octets 3072 :4095 sont alloués pour une utilisation spécifique au 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.
Configuration requise
Condition requise | Valeur |
---|---|
Client minimal pris en charge | Windows 10 |
En-tête | nvme.h |