Create/Delete Queue
5.4Create I/O Completion Queue command
Create I/O Completion Queue 命令用于创建除 Admin Completion Queue 之外的所有 I/O Completion Queue。Admin Completion Queue 是通过在 ACQ 寄存器中指定其 base address 来创建的。如果提供 PRP List 来描述 CQ,则 PRP List 应由主机软件维护在主机物理内存中的相同位置,在此 CQ 的相应 Delete I/O Completion Queue 命令成功完成或控制器reset之前,不得修改 PRP List 中的值。如果修改 PRP List 值,则行为未定义。
Create I/O Completion Queue 命令使用 PRP Entry 1、Command Dword 10 和 Command Dword 11 字段。保留所有其他命令特定字段。
5.4.1Command Completion
如果命令已完成,则控制器应将完成队列条目发布到 Admin Completion Queue,指示命令的状态。
Create I/O Completion Queue 命令的特定状态值在Figure 157 中定义。
5.5Create I/O Submission Queue command
Create I/O Submission Queue 命令用于创建 I/O Submission Queues。Admin Submission Queue 是通过在 ASQ 寄存器中指定其基地址来创建的。如果提供了 PRP List 来描述要创建的 SQ,则 PRP List 应由主机软件维护在主机物理内存中的相同位置,在该 SQ 的相应 Delete I/O Submission Queue 命令完成或控制器 reset 之前,不得修改 PRP List 中的值。如果修改 PRP List 值,则行为未定义。
Create I/O Submission Queue 命令使用 PRP Entry 1、Command Dword 10、Command Dword 11 和 Command Dword 12 字段。保留所有其他命令特定字段。
5.5.1Command Completion
Create I/O Submission Queue 命令完成后,控制器将完成队列条目发布到 Admin Completion Queue。
Create I/O Submission Queue 命令特定状态值在Figure 162 中定义。
5.6Delete I/O Completion Queue command
Delete I/O Completion Queue 命令用于删除 I/O Completion Queue。Delete I/O Completion Queue 命令使用 Command Dword 10 字段。保留所有其他命令特定字段。在此命令完成后,描述Completion Queue 的 PRP List 可能会被主机软件释放。
主机软件应确保在删除Completion Queue之前删除任何相关的 I/O Submission Queue。如果存在任何关联的 I/O Submission Queues,则 Delete I/O Completion Queue 命令将中止并返回 Invalid Queue Deletion 状态代码。
注意:无法删除 Admin Completion Queue。
5.6.1Command Completion
Delete I/O 命令完成后,控制器将完成队列条目发布到 Admin Completion Queue。Delete I/O Completion Queue 命令特定状态值在Figure 164 中定义。
5.7Delete I/O Submission Queue command
Delete I/O Submission Queue 命令用于删除 I/O Submission Queue。Delete I/O Submission Queue 命令使用 Command Dword 10 字段。保留所有其他命令特定字段。此命令完成后,描述Submission Queue的 PRP List 可能会被主机软件释放。
成功完成 Delete I/O Submission Queue 命令后,所有先前提交到指定 Submission Queue 的 I/O 命令应显式完成或隐式完成。在为 Delete I/O Submission Queue 命令返回完成队列条目之前,先前提交到要删除的 I/O Submission Queue 的其他命令可能以适当的状态完成(例如,Successful Completion、Command Aborted due to SQ Deletion) .成功完成 Delete I/O Submission Queue 命令后,控制器不应发布已提交到已删除 I/O Submission Queue 的任何 I/O 命令的完成状态。Delete I/O Submission Queue 命令的成功完成表明对于任何先前提交的没有控制器发布完成队列条目的 I/O 命令,会返回Command Aborted due to SQ Deletion 的隐式完成状态。
注意:无法删除 Admin Submission Queue。
5.7.1Command Completion
在提交到指定 I/O Submission Queue 的所有命令完成或中止后,当队列被删除时,完成队列条目将发布到 Admin Completion Queue。Delete I/O Submission Queue 命令特定状态值在Figure 166 中定义。