4.5 Metadata Region (MR)
4.5 Metadata Region (MR)
Metadata may be supported for a namespace as either part of the logical block (creating an extended logical block which is a larger logical block that is exposed to the application) or it may be transferred as a separate buffer of data. The metadata shall not be split between the logical block and a separate metadata buffer. For writes, the metadata shall be written atomically with its associated logical block. Refer to section 8.2.
In the case where the namespace is formatted to transfer the metadata as a separate buffer of data, then the Metadata Region is used. In this case, the location of the Metadata Region is indicated by the Metadata Pointer within the command. The Metadata Pointer within the command shall be Dword aligned.
The controller may support several physical formats of logical block size and associated metadata size. There may be performance differences between different physical formats. This is indicated as part of the Identify Namespace data structure.
If the namespace is formatted to use end-to-end data protection, then the first eight bytes or last eight bytes of the metadata is used for protection information (specified as part of the NVM Format operation).
4.5元数据区域(MR)
元数据可以作为逻辑块的一部分(创建扩展的逻辑块,它是暴露给应用程序的更大的逻辑块)作为名称空间支持的,也可以作为单独的数据缓冲区进行传输。元数据不得在逻辑块和单独的元数据缓冲区之间分割。对于写入,元数据应与其相关的逻辑块原子写入。请参阅第8.2节。
如果命名空间的格式设置为将元数据作为单独的数据缓冲区传输,则使用元数据区域。在这种情况下,元数据区域的位置由命令内的元数据指针指示。命令中的元数据指针应为双字对齐。
控制器可以支持逻辑块大小和关联的元数据大小的几种物理格式。不同的物理格式之间可能会有性能差异。这表示为“标识名称空间”数据结构的一部分。
如果将名称空间格式化为使用端到端数据保护,则元数据的前八个字节或后八个字节将用作保护信息(指定为NVM Format操作的一部分)。
4.6 Completion Queue Entry
An entry in the Completion Queue is at least 16 bytes in size. Figure 26 describes the layout of the first 16 bytes of the Completion Queue Entry data structure. The contents of Dword 0 are command specific. If a command uses Dword 0, then the definition of this Dword is contained within the associated command definition. If a command does not use Dword 0, then the field is reserved. Dword 1 is reserved. Dword 2 is defined in Figure 27 and Dword 3 is defined in Figure 28. Any additional I/O Command Set defined in the future may use an alternate Completion Queue entry size or format.
If a Completion Queue Entry is constructed via multiple writes, the Phase Tag bit shall be updated in the last write of that Completion Queue Entry.
完成队列中的条目大小至少为16个字节。 图26描述了完成队列条目数据结构的前16个字节的布局。 Dword 0的内容是命令特定的。 如果命令使用Dword 0,则此Dword的定义包含在关联的命令定义中。 如果命令不使用Dword 0,则保留该字段。 Dword 1被保留。 Dword 2在图27中定义,Dword 3在图28中定义。将来定义的任何其他I / O命令集都可以使用替代的Completion Queue条目大小或格式。
如果完成队列条目是通过多次写操作构造的,则应在该完成队列条目的最后一次写操作中更新阶段标签位。
4.6.1 Status Field Definition
The Status Field defines the status for the command indicated in the completion queue entry, defined in Figure 29.
A value of 0h for the Status Field indicates a successful command completion, with no fatal or non-fatal error conditions. Unless otherwise noted, if a command fails to complete successfully for multiple reasons, then the particular status code returned is chosen by the vendor.
4.6.1状态字段定义
状态字段定义完成队列条目中指示的命令的状态,如图29所示。
状态字段的0h值表示命令成功完成,没有致命或非致命错误情况。 除非另有说明,否则,如果命令由于多种原因未能成功完成,则由供应商选择返回的特定状态代码。
4.6.1.1 Status Code Type (SCT)
Completion queue entries indicate a status code type for the type of completion being reported. Figure 30 specifies the status code type values and descriptions.
4.6.1.1状态码类型(SCT)
完成队列条目指示所报告的完成类型的状态码类型。 图30指定状态码类型的值和说明。
4.6.1.2 Status Code (SC)
The Status Code (SC) field in the completion queue entry indicates more detailed status information about the completion being reported.
Each Status Code set of values is split into three ranges:
00h – 7Fh: Applicable to Admin Command Set, or across multiple command sets.
80h – BFh: I/O Command Set Specific status codes.
C0h – FFh: Vendor Specific status codes.
If there are multiple status codes that apply to a particular command failure, the controller shall report the status code with the lowest numerical value.
4.6.1.2状态码(SC)
完成队列条目中的状态代码(SC)字段指示有关正在报告的完成的更详细的状态信息。
每个状态代码值集分为三个范围:
00h – 7Fh:适用于管理命令集,或适用于多个命令集。
80h – BFh:I / O命令集特定的状态代码。
C0h – FFh:供应商特定的状态码。
如果有多个状态代码适用于特定的命令故障,则控制器应报告具有最低数值的状态代码。
4.6.1.2.1 Generic Command Status Definition
Completion queue entries with a Status Code type of Generic Command Status indicate a status value associated with the command that is generic across many different types of commands.
4.6.1.2.1通用命令状态定义
状态码类型为“通用命令状态”的完成队列条目指示与该命令关联的状态值,该状态值跨许多不同类型的命令通用。
4.6.1.2.2 Command Specific Errors Definition
Completion queue entries with a Status Code Type of Command Specific Errors indicate an error that is specific to a particular command opcode. Status codes of 0h to 7Fh are for Admin command errors. Status codes of 80h – BFh are specific to the selected I/O command set.
4.6.1.2.2命令特定的错误定义
状态队列类型的命令特定错误的完成队列条目指示特定于特定命令操作码的错误。 状态代码0h至7Fh用于管理命令错误。 状态代码80h – BFh特定于所选的I / O命令集。
4.6.1.2.3 Media and Data Integrity Errors Definition
Completion queue entries with a Status Code Type of Media and Data Integrity Errors indicate an error associated with the command that is due to an error associated with the NVM media or a data integrity type error.
4.6.1.2.3媒体和数据完整性错误定义
状态码类型为媒体和数据完整性错误的完成队列条目指示与命令相关的错误,这是由于与NVM介质相关的错误或数据完整性类型错误所致。