Set Features
- 5.27.1.13Host Controlled Thermal Management (Feature Identifier 10h), (可选)
- 5.27.1.14Non-Operational Power State Config (Feature Identifier 11h), (可选)
- 5.27.1.15Read Recovery Level Config (Feature Identifier 12h)
- 5.27.1.16Predictable Latency Mode Config (Feature Identifier 13h)
- 5.27.1.17Predictable Latency Mode Window (Feature Identifier 14h)
- 5.27.1.18Host Behavior Support (Feature Identifier 16h)
- 5.27.1.19Sanitize Config (Feature Identifier 17h), (Optional)
- 5.27.1.20Endurance Group Event Configuration (Feature Identifier 18h), (可选)
- 5.27.1.21I/O Command Set Profile (Feature Identifier 19h)
- 5.27.1.22Spinup Control (Feature Identifier 1Ah)
- 5.27.1.23Host Metadata (Feature Identifier 7Dh), (Feature Identifier 7Eh), (Feature Identifier 7Fh)
- 5.27.1.24Software Progress Marker (Feature Identifier 80h), (Optional)
- 5.27.1.25Host Identifier (Feature Identifier 81h), (Optional)
- 5.27.1.26Reservation Notification Mask (Feature Identifier 82h), (Optional)
- 5.27.1.27Reservation Persistence (Feature Identifier 83h), (Optional)
- 5.27.1.28Namespace Write Protection Config (Feature Identifier 84h)
5.27.1.13Host Controlled Thermal Management (Feature Identifier 10h), (可选)
该feature配置了 host controlled thermal management feature 的设置,请参考第8.15.5节。host controlled thermal management feature 使用Command Dword 11,其属性如Figure 342所示。 如果为这个Feature提交了一个Get Features命令,那么Figure 342所示的属性将在该命令的completion queue entry的Dword 0中返回。
这个Feature不是针对某个命名空间的。
5.27.1.14Non-Operational Power State Config (Feature Identifier 11h), (可选)
该Feature为控制器配置 non-operational power state 设置。这些设置是在Command Dword 11中指定的。
如果为该Feature提交了Get Features命令,Figure 343中的值会在该命令的 completion queue entry 的Dword 0中返回。
Non-Operational Power State Config feature可以与 Autonomous Power State Transition feature 交互(请参阅第 5.27.1.9 节)。 Figure 329 显示了这些交互细节。
5.27.1.15Read Recovery Level Config (Feature Identifier 12h)
该Feature用于配置Read Recovery Level(参考第8.17节)。这些属性在Command Dword 11和Command Dword 12中指定。修改Read Recovery Level对任何相关命名空间中包含的数据没有影响。 如果为这个Feature提交了Get Features命令,Figure 345中指定的属性将在该命令的completion queue entry 的Dword 0中返回。5.27.1.16Predictable Latency Mode Config (Feature Identifier 13h)
该Feature将NVM Set配置为使用Predictable Latency Mode,包括 warning event thresholds。Predictable Latency Mode和事件在默认情况下是disable的。这些属性在Command Dword 11、Command Dword 12和 Deterministic Threshold Configuration data structure 中指定。
当控制器在Command Dword 12中的Predictable Latency Enable位设置为'1'时,成功完成了Set Features命令,NVM Set已经过渡到Predictable Latency模式。如果NVM子系统需要在NVM上执行后台操作,以便在Predictable Latency Mode下运行,那么过渡到Predictable Latency Mode的时间可能会被推迟(即,Set Features 命令的完成被推迟)。该命令成功完成后,控制器应处于 Non-Deterministic Window。
如果为该特性提交了Get Features命令,则在该命令的completion queue entry的Dword 0中返回Figure 347规定的属性,并返回Deterministic Threshold Configuration data structure。
Predictable Latency Events (参考第5.16.1.12节)的配置如Figure 348所述。
5.27.1.17Predictable Latency Mode Window (Feature Identifier 14h)
如果NVM Set被配置为Predictable Latency Mode(参考第8.16节),该Feature用于设置指定NVM Set及其相关命名空间的窗口。这些属性在Command Dword 11和Command Dword 12中指定。如果没有enable Predictable Latency Mode,那么控制器将中止命令,状态码为Invalid Field in Command。 当Set Features命令成功完成后,向所选窗口的过渡就完成了。如果在Non-Deterministic Window中没有花费最少的时间,向 Deterministic Window 的过渡可能会被推迟(即,Set Features 命令的完成被推迟)。
如果为该Feature提交了Get Features命令,Figure 350中指定的属性将在该命令的completion queue entry的Dword 0中返回。如果没有enable Predictable Latency Mode,那么控制器应以Invalid Field in Command 的状态码中止命令。
5.27.1.18Host Behavior Support (Feature Identifier 16h)
该Feature使控制器功能的使用与特定的主机行为相关,并依赖于特定的主机行为,所有的主机可能支持(也可能不支持)。除非主机表示支持该功能所依赖的特定主机行为,否则控制器不会使用这种功能。主机通过设置该Feature中的一个字段向控制器表示支持。该主机行为使控制器能够使用该主机的相关功能。如果主机没有表示支持该控制器功能所依赖的相关特定主机行为,则控制器不应使用该主机的功能。Figure 351中的属性是在data buffer中传输的。
例如,Command Interrupted status code与特定的主机行为相关联,并且取决于特定的主机行为,主机期望重试使用该status code 中止的命令。 所有主机都可能支持(可能不支持)该命令重试行为(例如,符合 NVMe 1.3 及更早版本的主机不太可能重试以 Command Interrupted status code中止的命令,因为该状态码是在 NVM Express Base Specification revision 1.3 之后引入的) . 支持该 command retry行为的主机通过在 Host Behavior Support Feature 中将字段设置为 1h 来向控制器表明其支持。 将该字段设置为 1h 使控制器能够使用Command Interrupted status code,结果该状态码仅用于已指示支持相关command retry行为的主机。
此Feature不是saveable(参见Figure 195)。 此Feature的默认值应为所有字节清零。
在成功完成该 Feature 的Set Features命令后,控制器可以使用控制器到主机的功能,这取决于属性所指示的特定主机行为。如果控制器为该特征处理了多条 Set Features 的命令,只有最近成功的命令的信息被保留(即,随后的命令会取代以前的命令所提供的信息)。
如果为该特性提交了Get Features命令,Figure 351中指定的属性将在该命令的 data buffer中返回。
5.27.1.19Sanitize Config (Feature Identifier 17h), (Optional)
该特性控制Sanitize命令和Sanitize操作的行为。该Feature的范围是NVM子系统。
属性在命令Dword 11中指定。
如果为这个Feature提交了Get Features命令,Figure 352中指定的属性将在该命令的completion queue entry的Dword 0中返回。
如果这个Feature不是saveable(参考Figure 195),那么NODRM属性的默认值应为'0'(即,No-Deallocate Error Response Mode)。
如果Sanitize Config Feature Identifier 的capabilities是saveable和changeable(参考第4.2节),那么主机能够在最初配置设备时配置此Feature。
5.27.1.20Endurance Group Event Configuration (Feature Identifier 18h), (可选)
此Feature控制触发将 Endurance Group Event Aggregate Log Change Notices event 添加到Endurance Group Event Aggregate log 的事件。此Feature可用于在 persistent condition 下disable报告事件(参考第5.2节)。如果enable了相应的通知时,事件的条件为真,那么就会向主机发送事件。这些属性在 Command Dword 11 中指定。
如果为该 Feature 提交了 Get Features 命令,则不使用 Command Dword 11 中的Endurance Group Critical Warnings字段,并在该命令的 completion queue entry 的Dword 0中返回 Figure 353 中指定的属性。
如果 Endurance Group Critical Warnings 字段中的某个位被设置为 "1",并且对应 Endurance Group Information log page 的 Critical Warning 字段中的 reserved bit(参考Figure 217),那么Set Features命令将以 Invalid Field in Command 的状态码中止。
如果Endurance Group Identifier指定的Endurance Group不存在,那么Set Features或Get Features命令将以Invalid Field in Command的状态码中止。
5.27.1.21I/O Command Set Profile (Feature Identifier 19h)
本Feature规定了在CC.CSS中选择所有支持的I/O Command Sets(110b)时,控制器可以使用的I/O Command Sets。如果CAP.CSS bit 6被设置为'1',则该Feature应被实施。当CC.CSS被设置为110b以外的任何值时,则该Feature没有作用,控制器可使用的I/O Command Sets由CC.CSS指定。如果CC.CSS被设置为110b以外的任何值,并且控制器收到该Feature的Set Features命令,则该命令没有效果,并返回一个Successful Completion的状态码。
当CC.CSS中选择了所有支持的I/O Command Sets(110b)时,该Feature的值指定了Identify I/O Command Set data structure 中使用的I/O Command Set Combination 的索引。更多信息请参考5.17.2.21节。该索引在Command Dword 11的I/O Command Set Combination Index字段中指定(参考Figure 354)。如果attach到控制器的任何命名空间使用的I/O Command Set不被指定的I/O Command Set combination所支持,那么控制器应以I/O Command Set Combination Rejected的状态码中止命令。在成功完成该Feature的Set Features命令后,控制器将过渡到使用指定的I/O Command Set Combination。
如果为这个 Feature 提交了Get Features命令,那么Figure 355中描述的属性将在该命令的 completion queue entry 的Dword 0中返回。
5.27.1.22Spinup Control (Feature Identifier 1Ah)
此 feature 允许主机为在旋转介质上存储数据的 Endurance Groups 配置初始旋转的方法(参考第8.20节)。NVM子系统是这个 feature 的作用范围。
如果NVM子系统不包含任何在旋转介质上存储数据的 Endurance Groups,那么控制器应中止该Features的Set Features命令和Get Features命令,状态代码为Invalid Field In Command。 该方法在 Command Dword 11 中规定(参考 Figure 356)。
如果为该 feature 提交了Get Features命令,那么(参考Figure 357)中描述的属性将在该命令的 completion queue entry 的Dword 0中返回。
5.27.1.23Host Metadata (Feature Identifier 7Dh), (Feature Identifier 7Eh), (Feature Identifier 7Fh)
Host Metadata features 包括Enhanced Controller Metadata feature (Feature Identifier 7Dh)、Controller Metadata feature (Feature Identifier 7Eh) 和 Namespace Metadata feature (Feature Identifier 7Fh)。
如果提交了指定SEL字段设置为011b(即Supported Capabilities)的 Host Metadata features 之一的 Get Features 命令,那么相应的 completion queue entry 的Dword 0中的 Saveable 位应被清除为'0'(即参考第4.2节),而相应的completion queue entry的Dword 0中的Changeable位应被设置为'1'。 如果 Get Features 命令指定了 Host Metadata features 之一,控制器应执行Figure 358中规定的额外动作。
主机发出Set Features命令,指定含有 Host Metadata data structure 的 Host Metadata features 之一(参考Figure 360)。主机通过 Get Features 命令收到一个 Host Metadata data structure。Host Metadata data structure 中的字符串的内容是由供应商指定的。
如Figure 359所示,Action 是在 Command Dword 11 中指定的。
Metadata Element Descriptors可以根据 Element Action 字段中指定的动作进行添加、替换或删除。Host Metadata Feature 值的修改应由控制器以原子方式执行。
如果为一个 Host Metadata Feature 提交了 Set Features 命令,则在该命令的data buffer中传输Figure 360中定义的 Host Metadata data structure。 Host Metadata data structure大小为4KiB,包含零个或多个Metadata Element Descriptors。如果主机软件试图添加或替换一个Metadata Element,导致指定feature的Host Metadata Feature 值增长超过4KiB,那么控制器应中止命令,状态码为Invalid Field In Command。
如果主机通过Get Features命令收到一个 Host Metadata data structure,那么指定feature的所有 Metadata Element Descriptors 都会被添加到 Host Metadata data structure 中(参考Figure 360),并在该命令的 data buffer 中返回。Data buffer 的大小等于 Host Metadata data structure 的大小,其大小为4KiB。
如果 Feature Identifier 字段指定为 Controller Metadata 或 Namespace Metadata,那么 Host Metadata data structure 最多可以包含每个 Element Type 的一个 Metadata Element Descriptor。如果Feature Identifier 字段指定为 Enhanced Controller Metadata,那么Host Metadata data structure 可以包含每个 Element Type 的一个以上的 Metadata Element Descriptor。每个 Metadata Element Descriptor 都包含Figure 361中所示的数据结构。
5.27.1.23.1 Enhanced Controller Metadata (Feature Identifier 7Dh)
该功能用于在NVM子系统中存储关于主机平台的元数据,以便以后检索。
Figure 362中定义的 metadata element types 被该 feature 所使用。
关于Command Dword 11和 Host Metadata Data Structure 的定义,请参考5.27.1.23节。
Enhanced Controller Metadata Feature 的 Number of Metadata Element Descriptors 的默认值在 Controller Level Reset 时应为0h。
如果提交了SEL字段设置为011b(即Supported Capabilities)的具有 Enhanced Controller Metadata Feature 值的 Get Features 命令,那么相应的completion queue entry Dword 0中的NS特定位应被清除为'0'。
5.27.1.23.2Controller Metadata (Feature Identifier 7Eh)
该 feature 用于在NVM子系统中存储关于主机平台的元数据,以便日后检索。
Controller Metadata Feature 提供了与符合1.1版和早期版本的NVMe Management Interface Specification的 Management Controllers 的向后兼容性。
如果一个控制器同时支持 Enhanced Controller Metadata Feature 和 Controller Metadata Feature,那么 Controller Metadata Feature不应该被主机使用。
Figure 362中定义的metadata element types被该 Feature 所使用。
关于Command Dword 11和Host Metadata Data Structure的定义,请参考5.27.1.23节。
如果Set Features命令的Command Dword 11的Element Action字段被设置为10b(Add Entry Multiple),那么控制器将中止该命令,状态码为Invalid Field in Command,并且不改变Host Metadata Feature值。
Controller Metadata Feature的 Number of Metadata Element Descriptors 的默认值在 Controller Level Reset 时应为0h。
如果提交了SEL字段设置为011b(即Supported Capabilities)的带有 Controller Metadata Feature 值的Get Features命令,那么相应的completion queue entry 的Dword 0中的NS Specific位应被清除为'0'。
5.27.1.23.3Namespace Metadata (Feature Identifier 7Fh)
该功能用于存储与NVM子系统中的控制器相关的命名空间的元数据,以便以后检索。该功能是针对命名空间的。该feature禁止使用 "Add Entry Multiple "操作。
关于Command Dword 11和 Host Metadata Data Structure 的定义,请参考5.27.1.23节。
如果提交了SEL字段设置为011b(即Supported Capabilities)的具有名称空间元数据特征值的 Get Features 命令,那么相应completion queue entry 的 Dword 0中的 NS Specific 位应设置为'1'。
5.27.1.24Software Progress Marker (Feature Identifier 80h), (Optional)
该 Feature 是一个软件进度标记。该软件进度标记在不同的 power states 下是持久的。该信息可用于向操作系统软件驱动指示是否存在操作系统成功加载的问题。这些属性在 Command Dword 11 中指定。
如果为这个 Feature 提交了一个Get Features命令,Figure 364中指定的属性将在该命令 completion queue entry 的Dword 0中返回。
5.27.1.25Host Identifier (Feature Identifier 81h), (Optional)
该功能允许主机向控制器注册一个 Host Identifier。Host Identifier 被控制器用来确定NVM子系统中的其他控制器是否与同一主机有关。Host Identifier 可用于指定独立访问NVM子系统的主机元素,或用于reservations。
Host Identifier 包含在图366所示的数据结构中。这些属性在命令 Command Dword 11 中指定。如果为这个 Feature 发出Get Features命令,Figure 366中指定的数据结构将在该命令的data buffer中返回。 Host Identifier feature 的要求和使用取决于是否支持NVMe over PCIe实现或NVMe over Fabrics实现。请参考5.27.1.25.1节和5.27.1.25.2节。
5.27.1.25.1PCIe Transport Implementations
当在使用PCIe传输的控制器上实施时,Host Identifier是一个可选的功能。控制器可以支持64-bit Host Identifier和(或)extended 128-bit Host Identifier。建议实施方案支持extended 128-bit Host Identifier,如 Identify Controller data structure 中的 Controller Attributes 字段所示。Host Identifier可以在任何时候使用 Set Features 命令进行修改,使控制器从与旧Host Identifier相关的原始主机逻辑上重新映射到与新Host Identifier相关的新主机。
Host Identifier 0h是一个有效值,表示与控制器相关的主机没有与NVM子系统中的任何其他控制器相关。具体来说,如果一个NVM子系统中的两个控制器的Host Identifier都是0h,表明控制器与不同的主机有关联。使用0h的Host Identifier值是 reservations feature 的一个有效配置。然而,与0h Host Identifier相关的 reservations 和 registrations 不会在 Controller Level Reset 时持续存在,因为使用0h Host Identifier的主机在 Controller Level Reset 后被视为不同的主机。
5.27.1.25.2NVMe over Fabrics Implementations
NVMe over Fabrics 是 NVMe over Fabrics 实施中的一项强制性功能。Host Identifier应是一个extended 128-bit Host Identifier。在 Fabrics Connect 命令中,Host Identifier 应被设置为非零值。Host Identifier不应被修改。指定Host Identifier feature 的Set Features命令应被中止,状态码为 Command Sequence Error。指定Host Identifier feature 的Get Features命令应返回Fabrics Connect 命令中设置的值。
5.27.1.26Reservation Notification Mask (Feature Identifier 82h), (Optional)
此 Feature 在每个命名空间的基础上控制对 reservation notifications 的屏蔽。只要在命名空间上发生 reservation notifications,并且相应的 reservation notifications 类型没有被此 Feature 在该命名空间上屏蔽,就会创建一个 Reservation Notification log page。如果控制器支持reservations,则应支持此Feature。这些属性在 Command Dword 11 中指定。
使用 FFFFFFFFh 以外的 namespace ID 的 Set Features 命令只修改相应命名空间的 reservation notification mask。使用 namespace ID 为 FFFFFFFFh 的 Set Features 命令会修改athach到控制器并支持reservations的所有命名空间的 reservation notification mask。使用 FFFFFFFFh 以外的 namespace ID 的 Get Features 命令将返回相应命名空间的 reservation notification mask。使用 namespace ID 为 FFFFFFFFh 的 Get Features 命令应被中止,状态码为 Invalid Field in Command。如果Set Features命令或Get Features命令试图访问不支持reservations或无效的命名空间上的 reservation notification mask,那么该命令将被中止,状态码为Invalid Field in Command。
如果Get Features命令成功地完成了这个Feature,Figure 367中指定的属性将在该命令的 completion queue entry 的 Dword 0 中返回。
5.27.1.27Reservation Persistence (Feature Identifier 83h), (Optional)
每个支持 reservations 的命名空间都有一个Persist Through Power Loss(PTPL)的状态,可以使用Set Features命令或Reservation Register命令进行修改(参考7.3节)。Reservation Persistence feature属性在 Command Dword 11 中指定。
PTPL state包含在特定命名空间的Reservation Persistence Feature中。使用namespace ID FFFFFFFFh的Set Features命令会修改与attach到控制器并支持PTPL(即支持reservations)的所有命名空间相关的PTPL state。使用 FFFFFFFFh 以外的valid namespace ID 且其对应一个支持reservations的命名空间的 Set Features 命令,会修改该命名空间的 PTPL state。使用namespace ID为FFFFFFFh的Get Features命令应被中止,状态码为Invalid Field in Command。使用 FFFFFFFFh 以外的valid namespace ID 并对应于支持 PTPL 的命名空间的 Get Features 命令,会返回该命名空间的 PTPL state。如果Set Features命令或Get Features命令使用FFFFFFFFh以外的namespace ID,试图访问不支持该 Feature Identifier 的命名空间的PTPL state,那么该命令将被中止,状态码为Invalid Field in Command。
这个Feature不应是 saveble(参考Figure 195)。如果这个Feature 是 saveable,那么主机应该把当前值和保存的值设置为相同的值。
如果 Get Features 命令成功地完成了这个 Feature Identifier,Figure 368中指定的属性将在该命令的 completion queue entry 的Dword 0中返回。
5.27.1.28Namespace Write Protection Config (Feature Identifier 84h)
该Feature被主机用来配置命名空间的write protection state或确定命名空间的write protection state。关于命名空间write protection state的定义和行为,请参考第8.12节。这些设置在Command Dword 11中指定。
该特性不是saveable(参考Figure 195)。该Feature没有 default value;power cycle 或 Controller Level Reset 后,该Feature的值由 power cycle 或 Controller Level Reset 前命名空间的write protection state决定,但 Write Protect Until Power Cycle 的write protection state除外(参考第 8.12 节)。
如果为该Feature提交了Get Features命令,Figure 369中指定的属性将在该命令的 completion queue entry 的Dword 0中返回。
如果Set Features命令试图改变处于 Write Protect Until Power Cycle状态或 Permanent Write Protect状态的命名空间write protection state,那么该命令将以Feature Not Changeable的状态码中止。 如果Set Features命令试图将命名空间write protection state改为Write Protect Until Power Cycle状态,并且Write Protection Authentication Control字段的bit 0被清除为'0',那么该命令将以Feature Not Changeable的状态码中止。
如果Set Features命令将命名空间改为 write protected state,那么控制器应将与指定命名空间相关的所有易失性写缓存数据和元数据提交到非易失性介质,作为过渡到 write protected state的一部分。