5.7 Doorbell Buffer Config command
5.7 Doorbell Buffer Config command
The Doorbell Buffer Config command is used to provide two separate memory buffers that mirror the controller's doorbell registers defined in section 3. This command is intended for emulated controllers and is not typically supported by a physical NVMe controller. The two buffers are known as “Shadow Doorbell” and “EventIdx”, respectively. Refer to section 7.13 for an example of how these buffers may be used.
The Doorbell Buffer Config command uses the PRP Entry 1 and PRP Entry 2 fields. All other command specific fields are reserved. The command is not namespace specific, does not support metadata, and does not support SGLs. The settings are not retained across a Controller Level Reset.
Each buffer supplied with the Doorbell Buffer Config command shall be a single physical memory page as defined by the CC.MPS field. The controller shall ensure that the following condition is satisfied:
(4 << CAP.DSTRD) * (max(NSQA,NCQA)+1) <= (2^(12+CC.MPS))
5.7门铃缓冲区配置命令
Doorbell Buffer Config命令用于提供两个单独的内存缓冲区,这些缓冲区映射第3节中定义的控制器的门铃寄存器。此命令适用于仿真控制器,通常不受物理NVMe控制器的支持。 这两个缓冲区分别称为“影子门铃”和“ EventIdx”。 有关如何使用这些缓冲区的示例,请参见第7.13节。
Doorbell Buffer Config命令使用PRP条目1和PRP条目2字段。 保留所有其他命令特定字段。 该命令不是特定于名称空间的,不支持元数据,也不支持SGL。 这些设置不会在控制器级别重置中保留。
门铃缓冲区配置命令随附的每个缓冲区应是CC.MPS字段定义的单个物理内存页面。 控制器应确保满足以下条件:
(4 << CAP.DSTRD)*(max(NSQA,NCQA)+1)<=(2 ^(12 + CC.MPS))
5.7.1 Command Completion
When the command is completed, the controller posts a completion queue entry to the Admin Completion Queue indicating the status for the command. If the Shadow Doorbell buffer or EventIdx buffer memory addresses are invalid, then a status code of Invalid Field in Command shall be returned.
5.7.1命令完成
命令完成后,控制器会将完成队列条目发布到“管理完成队列”中,以指示命令的状态。 如果影子门铃缓冲区或EventIdx缓冲区的存储地址无效,则应返回Command中无效字段的状态码。
5.8 Device Self-test command
The Device Self-test command is used to start a device self-test operation or abort a device self-test operation (refer to section 8.11). The Device Self-test command is used specifically to:
a) start a short device self-test operation,
b) start an extended device self-test operation,
c) start a vendor specific device self-test operation, or
d) abort a device self-test operation already in process.
The device self-test operation is performed by the controller that the Device Self-test command was submitted to. The Namespace Identifier field controls which namespaces are included in the device self-test operation as specified in Figure 66.
5.8设备自检命令
设备自检命令用于启动设备自检操作或中止设备自检操作(请参阅第8.11节)。 设备自检命令专门用于:
a)开始简短的设备自检操作,
b)开始扩展的设备自检操作,
c)开始供应商特定的设备自检操作,或
d)中止已经进行的设备自检操作。
设备自检操作由提交了设备自检命令的控制器执行。 “名称空间标识符”字段控制设备自检操作中包括哪些名称空间,如图66所示。
The Device Self-test command uses the Command Dword 10 field. All other command specific fields are reserved.
设备自检命令使用命令字10字段。 保留所有其他命令特定字段。
The processing of a Device Self-test command and interactions with a device self-test operation already in progress is defined in Figure 68.
5.8.1 Command Completion
A completion queue entry is posted to the Admin Completion Queue after the appropriate actions are taken as specified in Figure 68. Device Self-test command specific status values are defined in Figure 69.
5.8.1命令完成
在按照图68中指定的那样采取了适当的操作之后,完成队列条目将发布到“管理完成队列”中。特定于设备自检命令的状态值在图69中定义。
5.9 Directive Receive command
The Directive Receive command returns a data buffer that is dependent on the Directive Type. Refer to section 9.
The Directive Receive command uses the Data Pointer, Command Dword 10, and Command Dword 11 fields. Command Dword 12 and Dword 13 may be used based on the Directive Type field and the Directive Operation field. All other command specific fields are reserved.
If the Number of Dwords (NUMD) field corresponds to a length that is less than the size of the data structure to be returned, then only that specified portion of the data structure is transferred. If the NUMD field corresponds to a length that is greater than the size of the associated data structure, then the entire contents of the data structure are transferred and no additional data is transferred.
5.9指令接收命令
指令接收命令返回一个数据缓冲区,该缓冲区取决于指令类型。 请参阅第9节。
指令接收命令使用数据指针,命令字10和命令字11字段。 可以基于“指令类型”字段和“指令操作”字段来使用命令Dword 12和Dword 13。 保留所有其他命令特定字段。
如果“字数(NUMD)”字段的长度小于要返回的数据结构的大小,则仅传输该数据结构的指定部分。 如果NUMD字段对应的长度大于关联数据结构的大小,则将传输数据结构的全部内容,并且不会传输其他数据。
5.9.1 Command Completion
When the command is completed, the controller posts a completion queue entry to the Admin Completion Queue indicating the status for the command. Command specific status values that may be returned are dependent on the Directive Type, refer to section 9.
5.9.1命令完成
命令完成后,控制器会将完成队列条目发布到“管理完成队列”中,以指示命令的状态。 可能返回的命令特定状态值取决于指令类型,请参阅第9节。
5.10 Directive Send command
The Directive Send command transfers a data buffer that is dependent on the Directive Type to the controller. Refer to section 9.
The Directive Send command uses the Data Pointer, Command Dword 10, and Command Dword 11 fields. Command Dword 12 and Command Dword 13 may be used based on the Directive Type field and the Directive Operation field. All other command specific fields are reserved.
5.10指令发送命令
指令发送命令将取决于指令类型的数据缓冲区传输到控制器。 请参阅第9节。
指令发送命令使用数据指针,命令字10和命令字11字段。 可以基于“指令类型”字段和“指令操作”字段来使用命令关键字12和命令关键字13。 保留所有其他命令特定字段。
5.10.1 Command Completion
When the command is completed, the controller posts a completion queue entry to the Admin Completion Queue indicating the status for the command. Command specific status values that may be returned are dependent on the Directive Type, refer to section 9.
5.10.1命令完成
命令完成后,控制器会将完成队列条目发布到“管理完成队列”中,以指示命令的状态。 可能返回的命令特定状态值取决于指令类型,请参阅第9节。