当前位置:网站首页>[nvme2.0b 5] sous - système nvm
[nvme2.0b 5] sous - système nvm
2022-06-22 03:15:00 【Bgone】
NVM Subsystem
3.2NVMEntité du sous - système
3.2.1Espace de noms
3.2.1.1Aperçu de l'espace de noms
Espace de noms(namespace) Est la quantité de mémoire non volatile formatée directement accessible par l'hôte .namespace ID (NSID) Est l'identificateur utilisé par le Contrôleur pour fournir l'accès à l'espace de noms .
3.2.1.2Valid and Invalid NSIDs
Valid NSID C'est possible. NSID Champ d'application, Disponible pour les références NVM Espaces de noms présents dans le Sous - système .N'importe quoi NSID Ça marche.,Sauf si NSID Pour 0h Ou plus Identify Controller data structure Rapports Number of Namespaces Champ(VoirFigure 275).NSID FFFFFFFFh Est une valeur de diffusion , Utilisé pour spécifier tous les espaces de noms .invalid NSID Oui, non.valid NSID Et ce n'est pas la valeur de la valeur de diffusion .
Efficace NSID - Oui.:
a) In NVM Dans le Sous - systèmeallocatedOuunallocated;Et
b) Spécifique au Contrôleur inactiveOuactive.
3.2.1.3Allocated and Unallocated NSID Types
InNVMDans le Sous - système,Unvalid NSID- Oui.:
a)Unallocated NSID; Ou
b)Un unallocated NSID.
Allocated NSID C'est une citation. NVM Espaces de noms présents dans le Sous - système .Unallocated NSID Non cité NVM Tout espace de noms existant dans le Sous - système .
3.2.1.4Active and Inactive NSID Types
Pour un contrôleur spécifique ,Unallocated NSID - Oui.:
a)Unactive NSID; Ou
b)Un inactive NSID.
Controlleractive NSID Se réfère à l'espace de noms attaché à ce contrôleur .Allocate Pour le Contrôleur inactive NSID Se réfère à un espace de noms qui n'est pas attaché à ce contrôleur .
Unallocated NSID - Oui. NVM Tous les contrôleurs du sous - système inactive NSID.
Si NSID L'espace de noms spécifié est joint à NVM Certains contrôleurs du sous - système , Mais pas tous les contrôleurs ,Etallocated NSID Ça pourrait être celui de certains contrôleurs. active NSID Et le même NVM D'autres contrôleurs du sous - système inactive NSID.
Pour les actions liées aux espaces de noms séparés ou supprimés ,Voir par. 8.11 Section.
3.2.1.5NSID and Namespace Relationships
Sauf indication contraire,En serviceNamespace Identifier (NSID) Spécifié dans la commande pour le champ inactive NSID Provoque le Contrôleur à Invalid Field in Command Code d'état annuler la commande .En service NSID Spécifié dans la commande pour le champ invalid NSID Provoque le Contrôleur à Invalid Namespace or Format Code d'état annuler la commande .
Le tableau ci - dessous résumevalid NSID Type,Figure 70 Montre visuellement NSID Types et relations entre eux .
| Valid NSID Type | NSID relationship to namespace | Reference |
|---|---|---|
| Unallocated | Non cité NVM Tout espace de noms existant dans le Sous - système | 3.2.1.3 |
| allocated | La référence existe à NVM Espaces de noms dans les sous - systèmes | 3.2.1.3 |
| Inactive | Ne pas faire référence à l'espace de noms attaché au Contrôleur 1 | 3.2.1.4 |
| active | Référence à l'espace de noms attaché au Contrôleur | 3.2.1.4 |
| NOTES: Siallocated, L'espace de noms qui n'est pas attaché au Contrôleur .Siunallocated, Ne fait référence à aucun espace de noms . | ||

Si elle est prise en chargeNamespace Management(Voir par. 8.11 Section)、ANA Reporting(Voir par. 8.1 Section)OuNVM Sets(Voir par. 3.2 Section)capabilities,Et NSID In NVM Doit être unique dans le Sous - système (Par exemple,NSID 3, Quel que soit le Contrôleur , Devrait accéder au même espace de noms physiques ).Si non pris en chargeNamespace Management、ANA ReportingEt NVM Sets capabilities,Et NSID:
a) Devrait être unique pour les espaces de noms partagés ;
b) Un espace de noms privé n'a pas besoin d'être unique .
Identify Les ordres(Voir par. 5.17 Section) Peut être utilisé pour déterminer active NSID Et NVM Dans le Sous - systèmeallocated NSID.
Si MNAN Champ(VoirFigure 275) Est effacé comme 0h,Etallocated NSID La quantité maximale de NN Les valeurs déclarées dans les champs sont les mêmes (VoirFigure 275).Si MNAN Le champ n'est pas0,Etallocated NSID Le nombre maximum de peut être inférieur au nombre d'espaces de noms (Par exemple,NVM Le Sous - système peut prendre en charge le réglage à 1,000,000 Le plus grandvalid NSID Valeur(C'est - à - dire: NN Champ) Mais au plus allocated 10 - Oui. NSID Valeur).
Pour déterminer active NSID, L'hôte peut utiliser l'une des méthodes suivantes :
- Envoyer unIdentifyLes ordres,Et chaquevalid NSID De CNS Champ dégagé à 0h(Basé surIdentify Controller data structure DansNumber of NamespacesValeur(C'est - à - dire:,MNAM Champ ou NN Champ)). Si spécifique NSID Retour à non0Structure des données,Alors... NSID Pouractive NSID;Ou
- Envoyer un CNS Le champ est défini à 2h DeIdentifyLes ordres, Pour récupérer jusqu'à 1,024 - Oui.active NSID Une liste de.S'il y a plus de 1,024 - Oui.active NSID, Continuer à envoyer Identify Commandez et CNS Le champ est défini à 2h, Jusqu'à ce que tout soit récupéré active NSID.
Pour être sûr NVM Dans le Sous - systèmeallocated NSID, L'hôte peut émettre un IdentifyLes ordres,Parmi eux CNS Le champ est défini à 10h, Pour récupérer jusqu'à 1,024 - Oui.allocated NSID Une liste de.Siallocated NSID Plus que 1,024 - Oui., Continuer à envoyer Identify Commandez et CNS Le champ est défini à 10h, Jusqu'à ce que tout soit récupéré allocated NSID.
Namespace ID Peut changer en cas de panne de courant .Mais,SuggestionNamespace ID Rester statique en cas de panne de courant , Pour éviter les problèmes avec le logiciel hôte . Pour déterminer si le même espace de noms a été rencontré ,L'hôte peut utiliser:
a) Namespace Identification DescriptorDans UUID Champ(VoirFigure 277)(Si elle existe);
b) Identify Namespace data( Référence applicable I/O Command Set Spécifications)Ou Namespace Identification Descriptor Dans NGUID Champ(Si elle existe);Ou
c) Identify Namespace data Ou Namespace Identification Descriptor Dans EUI64 Champ(Si elle existe).
NSFEAT Dans le champ UIDREUSE Bits(VoirFigure 280 Ou NVM Command Set Specification DansIdentify Namespace data structure,Le cas échéant)Indications NGUID Et EUI64 Réutiliser les propriétés .
Si elle est prise en charge Asymmetric Namespace Access Reporting(C'est - à - dire:,In Identify Controller data structure De CMIC Champ dans lequel 3 Bit set to“1”(VoirFigure 275)), Voir le cas échéant I/O Command Set Spécification pour plus de détails .
Les espaces de noms peuvent être liés Submission Queue C'est important, Ça n'a peut - être pas d'importance. ; Cette relation est déterminée par la mise en œuvre du logiciel hôte . Le Contrôleur doit supporter le support à partir de n'importe quel I/O Submission Queue Accès à tout active namespace.
3.2.1.7I/O Command Set Associations
Un espace de noms n'est associé qu'à un seul I/O Command Set Corrélation.Pour I/O Les ordres et I/O Command SetSpécifiqueAdminLes ordres, Associé à une entrée de file d'attente de soumission I/O Command Set Par Namespace Identifier(NSID) Champ OK. NVM Le Sous - système peut contenir des espaces de noms , Chaque espace de noms est différent I/O Command Set Corrélation. Le Contrôleur peut supporter des espaces de noms supplémentaires , Ces espaces de noms utilisent tous les I/O Command Set,Par exemple: I/O Command Set Profile Comme indiqué dans le document(Voir par. 5.27.1.21 Section).
3.2.2NVM Sets
NVM Set- Oui. NVM Collection de,Autres NVM Set Dans NVM Séparez - vous.( Logique et physique potentielle ). Un ou plusieurs espaces de noms peuvent être situés à NVM Set Création, Ces espaces de noms héritent NVM Set Propriétés de. L'espace de noms est entièrement contenu en un seul NVM Set Moyenne, Et pas plus d'un NVM Set.
Figure 72 Trois NVM Set Exemple de.NVM Set A Contient trois espaces de noms (NS A1、NS A2 Et NS A3).NVM Set B Contient deux espaces de noms (NS B1 Et NS B2).NVM Set C Contient un espace de noms (NS C1). Chaque NVM SetContient également“Unallocated”Région, Ces zones sont définies par NVM SetOui..

Il y a un NVM Set aware Admin Sous - ensemble de commandes ,Par exemple:Figure 73 Décrit dans.

Utilisation de l'hôteIdentify La commande détermine l'existence NVM Sets Et ses attributs,CNS La valeur est: 04h Pour récupérer NVM Set List(VoirFigure 278).Pour chaque NVM Set,Les propriétés incluent:
Avec NVM Set Identificateur associé ;
Écrire NVM Set Taille optimale pour;
NVM Set Capacité totale;Et
NVM Set Capacité non allouée pour .
NVM Set IdentifierC'est un 16 Valeur du BIT, Utilisé pour spécifier le NVM Set.NVM Set IdentifierÇa pourrait être dans NVM Set aware AdminSpécifié dans la commande(VoirFigure 73).NVM Set Identifier 0h Réservé,Ça ne marche pas NVM Set Identifier.Sauf indication contraire, Si l'hôte est nécessaire NVM Set Identifier La commande pour spécifie NVM Set IdentifierClear as 0h, La commande doit alors être exécutée comme suit: Invalid Field in Command Code d'état annulé .
Chaque NVM SetAvec un Endurance Group Corrélation(Voir par. 3.2.3 Section).
Espace de noms associé NVM Set In Identify Namespace data structure Rapport intermédiaire( Voir le cas échéant NVMe I/O Command Set Spécifications).Quand l'hôte utilise Namespace Management Lorsque la commande crée un espace de noms , Host spécifie où créer l'espace de noms NVM Set De NVM Set Identifier. Créer un espace de noms à partir de NVM Set Hériter des propriétés(Par exemple,Écrit à NVM Taille optimale ).
Si elle est prise en charge NVM Set,Et NVM Tous les contrôleurs du sous - système doivent: : - For each NVM Set, indicate the associated Endurance Group as an attribute.
In Identify Controller data structure De Controller Attributes Le champ indique la paire NVM Set Appui;
Dans toutes les utilisations NVM Set Identifier Prise en charge dans la commande pour NVM Set Identifier;
SoutienIdentifyOrdre deNVM Set List;
InIdentify Namespace data structure Indique que l'espace de noms est associé à NVM Set Identifier;
Soutien Endurance Groups;
Pour chaque NVM Set,À associer Endurance Group Indique un attribut .
Si aucune paire n'est déclarée NVM Sets Appui(C'est - à - dire:,CTRATT Dans le champ NVM Set Bit cleared as “0”;VoirFigure 275),Et NVM Set Identifier Les champs doivent être pris en charge sur tous les supports NVM Set Identifier Les commandes et les structures de données des champs sont effacées comme 0h.
3.2.3Endurance Groups
Endurance Peut être NVM Set (Voir par. 3.2.2 Section)Ou à travers NVM Set Géré dans une collection de .Chaque NVM Set Avec un Endurance Group Corrélation(VoirFigure 278). Si deux ou plusieurs NVM Sets Ayant le même Endurance Group Identifier,EtEndurancePar NVM Le Sous - système couvre NVM Set Gestion des collections.Si seulement un NVM Set Avec certains Endurance Group Identifier Corrélation,Et Endurance Au niveau local NVM Set Gestion.Un Endurance Group Ne peut faire partie que d'un seul domaine (Voir par. 3.2.4 Section).
Endurance Group Identifier C'est un 16 Valeur du BIT, Utilisé pour spécifier le Endurance Group.Endurance Group Identifier Valeur 0h C'est réservé,Pas efficace Endurance Group Identifier.Sauf indication contraire, Si l'hôte est nécessaire Endurance Group Identifier La commande pour spécifie Endurance Group Identifier Pour 0h, La commande doit alors être exécutée comme suit: Invalid Field in Command Code d'état annulé .
Description Endurance Group Les informations pour Endurance Group Information log pageMoyenne(Voir par. 5.16.1.10 Section).
Figure 74 Afficher l'ajout à Figure 72 Exemple Endurance Group.Dans cet exemple,NVM Set A Et NVM Set B De Endurance En tant que Endurance Group Y Une partie de ,Et NVM Set C De Endurance Seulement si NVM Set Gestion interne C, C'est la seule chose qui appartient à Endurance Group Z De NVM Set.

Si elle est prise en charge Endurance Groups,Et NVM Le Sous - système et tous les contrôleurs doivent: :
In Identify Controller data structure De Controller Attributes Indique la paire dans le champ Endurance Groups Appui;
In Identify Namespace data structure Indique que l'espace de noms est associé à Endurance Group Identifier;
Soutien Endurance Group Information log page.
Soutien Endurance Group Event Aggregate log page
Si non pris en charge Endurance Groups Et l'hôte envoie la définition Endurance Group Identifier Commandes pour les champs(Par exemple,Get Log Page), Le Contrôleur doit ignorer ce champ .
Si non pris en charge Endurance Groups Et le Contrôleur retourne à l'hôte contenant Endurance Group Identifier Informations sur le champ, Ce champ doit être effacé comme suit: 0h.
3.2.3.1Configuration et gestion Endurance Group Events
L'hôte peut configurer des événements asynchrones pour Endurance Group Déclenché lorsque certains événements se produisent . L'hôte soumet un Set Features Les ordres,Désignation Endurance Group Event Configuration feature(Voir par. 5.27.1.20 Section)、Endurance Group Et devrait déclencher l'ajout d'une entrée à Endurance Group Event Aggregate log page Événements spécifiques pour(Voir par. 5.16.1.15 Section).
Utilisation de l'hôte Set Features Commande pour chaque Endurance Group Configurer les événements.
Host commit Specification Asynchronous Event Configuration feature De Set Features Les ordres(Voir par. 5.27.1.8 Section),Parmi eux Endurance Group Event Aggregate Log Change Notices Bit set to“1”, Pour spécifier si une entrée est ajoutée à Endurance Group Event Aggregate log page Doit être déclenché sur l'hôte Endurance Group Event Aggregate Log Page Change Notice Événements(VoirFigure 353).
L'hôte lit Endurance Group Event Aggregate log page Pour déterminer s'il y a des événements en suspens Endurance Group. Pour chaque Endurance Group Renvoie une entrée. L'hôte peut être utilisé dans Identify Controller data structure Rapports Endurance Group Identifier Maximum Valeur pour déterminer la taille maximale de cette page de journal . Pour déterminer Endurance Group Événement spécifique survenu , L'hôte lit ceci Endurance Group De Endurance Group Information log page(Voir fig. 217).Critical Warning Le champ indique l'événement qui s'est produit (Par exemple,Endurance Group Tous les espaces de noms sont en mode lecture seule ). Si le Contrôleur a traité avec succès Endurance Group De Endurance Group Information log pageLire pour,Alors... Endurance Group Tous les événements de ,Parmi eux Get Log Page Les commandes seront Retain Asynchronous Event Bit clear as “0”.Si Endurance Group Information log page Dans Critical Warning Champ effacé comme 0h,Et Endurance Group Event Aggregate log page Ce n'est pas signalé dans Endurance Group Les événements de.
3.2.4 Domaines et partitions (Domains and Divisions)
3.2.4.1Généralités
NVM Le Sous - système peut être composé d'un seul domaine ou de plusieurs domaines ( C'est - à - dire deux ou plusieurs )Composition. Le domaine est partagé (Par exemplepower state、capacityInformation) Unit é minimale indivisible de . Prise en charge de plusieurs domaines NVM Le Sous - système prend en charge Asymmetric Namespace Access Reporting(Voir par. 8.1 Section).
NVM Un exemple courant de mise en oeuvre simple d'un sous - système est constitué d'un seul domaine ( C'est - à - dire que plusieurs domaines ne sont pas pris en charge ).
Chaque domaine est indépendant , La limite entre les domaines est la limite de communication (Par exemple, Limite de défaut 、 Gérer les frontières ).Si NVM Plusieurs domaines existent dans le Sous - système , Alors ces champs sont dans NVM Collaboration opérationnelle du sous - système . Si un domaine ne peut pas être NVM Collaboration pendant le fonctionnement du sous - système ,Alors ça veut dire NVM Sous - système partitionné .
La partition est NVM Un événement dans le Sous - système (Par exemple, Échec du domaine ) Ou action (Par exemple, Gérer les actions ou reconfigurer ),Son impact NVM Communication entre les domaines contenus dans le Sous - système (Voir fig. 75 Et des graphiques 76). Si une partition existe ,Et NVM L'état global au sein du sous - système peut être affecté (Par exemple, Le Contrôleur ne peut avoir que des informations sur l'état du domaine avec lequel le Contrôleur peut communiquer ). Événement ou action de zonage possible :
Affecter l'accès aux espaces de noms (Voir par. 8.1 Section);Ou
Avec NVM Opérations d'impact à l'échelle du sous - système (Par exemple,TNVMCAP、sanitize、format、SMARTInformation).
Un domaine comprend: :
0 Contrôleurs ou plus ;Et
0Ou plus NVM Endurance Groups.
Si NVM Le Sous - système prend en charge plusieurs domaines ,Alors... NVM Tous les contrôleurs du sous - système doivent: :
In Identify Controller data structure De CTRATT Dans le champ MDSBit set to"1"(VoirFigure 275);
Chaque Endurance Group descriptorDansDomain Identifier(Si elle est prise en charge)Définir comme non0Valeur;Et
Chaque Identify Controller data structure Dans Domain Identifier Définir comme non0Valeur.
Si NVM Le Sous - système prend en charge plusieurs domaines ,Alors... NVM Les contrôleurs du sous - système peuvent: :
- Soutien Endurance Groups(Voir Identify Controller data structure DeCTRATT Dans le champ Endurance Groups Bits).
Pour les domaines multiples NVM Sous - système, Chaque domaine devrait se voir attribuer un NVM Unique au sein du sous - système domain identifier(VoirFigure 275 Dans Domain Identifier Champs et par 3.2.4.3 Section). Pour les domaines multiples non pris en charge NVM Sous - système,Domain Identifier Champ effacé comme 0h.
Figure 75 Affiche un NVM Exemple de sous - système .Domain 1 Contient deux contrôleurs et un certain nombre de NVM Capacité de stockage, Ces capacités ont été attribuées à deux espaces de noms privés (C'est - à - dire: NS A Et NS C) Et un espace de noms partagé (C'est - à - dire: NS B).Domain 2 Contient deux contrôleurs et certains déjà assignés à deux espaces de noms partagés (C'est - à - dire: NS D Et NS E)De NVM Capacité de stockage.Domain 3 Contient un contrôleur ,Et non. NVM Capacité de stockage.

Si dansFigure 75 Dans l'exemple montré, Un événement de partition a causé Domain 1 Ne peut plus Domain 2 EtDomain 3 Communications,Et NVM Le Sous - système comprendra deux parties: . La première partie est composée de Domain 1 Composition, La deuxième partie est composée de Domain 2 EtDomain 3 Composition.
Figure 76 Montre un NVM Exemple de sous - système , Le Sous - système se compose de six domaines , Trois d'entre eux sont des domaines qui contiennent des contrôleurs .Domain 1 Est un ensemble de deux contrôleurs et un certain nombre de NVM Domaine de capacité de stockage , Créé à partir de NVM Endurance Groups, Il contient un espace de noms privé (C'est - à - dire: NS A) Et un espace de noms partagé (C'est - à - dire: NS C).Domain 2 Est un Contrôleur qui ne contient pas et contient un certain nombre de NVM Domaine de capacité de stockage , L'espace de noms partagé contenant a été créé à partir de (C'est - à - dire: NS B)De NVM Endurance Groups.Domain 3 Oui contient deux contrôleurs et n'a pas NVM Domaine de capacité de stockage .Domain 4 Est un Contrôleur qui ne contient pas et contient un certain nombre de NVM Domaine de capacité de stockage , Deux espaces de noms partagés ont été créés à partir de (C'est - à - dire: NS D Et NS E)De NVM Endurance Groups.Domain 5 Oui contient un contrôleur et n'a pas NVM Domaine de capacité de stockage .Domain 6 Est un Contrôleur qui ne contient pas et n'est pas assigné à NVM Endurance Group De NVM Domaine de capacité de stockage (C'est - à - dire:, Un espace aérien ).

3.2.4.2Domains and Reservations
Si NVM Le Sous - système prend en charge plusieurs domaines et Persistent Reservations(Voir par. 8.19 Section), Restaure après l'événement de partition (Par exemple,Opération de récupération,Rétablir la communication)Exigences NVM Tous les domaines du sous - système persistent reservation L'état n'est plus divisé et synchronisé (Mise à jour).
Si l'espace de noms reservation État non synchronisé , Contient l'espace de noms ANA GroupDoit être converti en ANA État inaccessible (Voir par. 8.1.3.3 Section) Et maintenir cet état ,Jusqu'à Persistent Reservation Synchroniser.Si Persistent Reservation L'état ne peut pas être synchronisé ,Et:
Se produit vers ANA Persistent Loss Changement d'état, Et conformément à l'article 8.1.3.4 Commandes de traitement décrites dans la Section ;Ou
Le Contrôleur peut arrêter de traiter les commandes et Controller Fatal Status(CSTS.CFS) Bit set to"1"(Voir par. 9.5 Section).
3.2.4.3Domain Identifier Utilisation de(Information)
Domain IdentifierIndication de la valeur NVM Partie du domaine composant le Sous - système .
L'hôte peut utiliser ces valeurs pour déterminer quels Endurance Groups(Voir par. 3.2.3 Section) Inclus dans le même domaine , Ce qui est inclus dans différents domaines .Utilisation de l'hôte domain identifier Voici quelques exemples::
Logiciel de redondance des données de l'hôte (Par exemple,RAID),Peut être utilisé Endurance Group De Domain Identifier Pour déterminer ce qui Endurance Groups Peut échouer ensemble (Par exemple, Dans le même domaine Endurance Groups)Et quoi? Endurance Groups Peut échouer indépendamment (Par exemple,Différent Endurance Groups Domaine);Et
Le logiciel d'application hôte peut utiliser Domain Identifier Pour déterminer quels contrôleurs partagent des domaines (Par exemple, Contrôleurs qui pourraient échouer ensemble ) Et quels contrôleurs font partie de différents domaines (Par exemple, Contrôleurs qui peuvent échouer indépendamment ).
边栏推荐
猜你喜欢

【NVMe2.0b 6】NVMe 队列模型

Right and left vertical time axis with serial number

六、MySQL之数据定义语言(一)
![[2. merge sort]](/img/60/5e87cffabd91af0155ae681f5bf0ba.png)
[2. merge sort]

On the auto increment of int type primary key in MySQL

xpm_ memory_ A complete example of using the tdpram primitive

【NVMe2.0b 8】NVMe 队列仲裁机制

C1-qt idea of realizing simple calculator 2021.10.15

ATM机模拟系统

Figure data platform solution: single node deployment
随机推荐
Force buckle 461 Hamming distance
Two dot vertical progress styles
Day20qt multiple forms switching idea 2021-10-31
Sword finger offer 12 Path in matrix
Figure data platform solution: cluster deployment
关于mysql的int型主键自增问题
Sword finger offer 37 Serialized binary tree
FastDFS-6.0.6
Try catch of Bash
An article thoroughly learns to draw data flow diagrams
Day18qt signal and slot 2021-10-29
什么是SSL证书,拥有一个SSL证书有什么好处?
Figure data platform solution: single node deployment
交通标志分类
[7. high precision division]
[summary of leetcode weekly competition] summary of the 298th weekly competition of leetcode (6.19)
Sword finger offer 58 Symmetric binary tree
C2-qt serial port debugging assistant 2021.10.21
What is an SSL certificate and what are the benefits of having an SSL certificate?
【NVMe2.0b 10】Controller Shutdown 与 NVM Subsystem Shutdown