文章目录
- Reservation Register
- Reservation Acquire
- Reservation Report
- Reservation Release
Reservation Register
Reservation Register命令用于注册、取消注册或替换reservation key。
该命令使用Command Dword 10和内存中的Reservation Register data structure
如果该命令使用PRP进行数据传输,则使用PRP Entry 1和PRP Entry 2字段。如果命令使用 SGL 进行数据传输,则使用 SGL Entry 1 字段。所有其他命令的特定字段都被保留。
Bits | Description |
---|---|
127:00 | Data Pointer (DPTR):该字段指定数据传输的 data buffer 的位置。 |
Bytes | Description |
---|---|
07:00 | Current Reservation Key (CRKEY): 如果Reservation Register Action是001b(即Unregister Reservation Key)或010b(即Replace Reservation Key),那么这个字段就包含与主机相关的当前reservation key。对于所有其他的Reservation Register Action值,这个字段被保留。 |
15:08 | New Reservation Key (NRKEY):如果Reservation Register Action字段被清除为000b(即,Register Reservation Key)或010b(即,Replace Reservation Key),那么这个字段包含与主机相关的新 reservation key。对于所有其他的Reservation Register Action值,这个字段被保留。 |
当命令完成后,控制器应向相关的I/O Completion Queue 发布一个 completion queue entry,表明该命令的状态。
Reservation Acquire
Reservation Acquire命令用于获取命名空间上的 reservation,抢占命名空间上的 reservation,以及中止命名空间上的reservation。
该命令使用 Command Dword 10 和内存中的 Reservation Acquire数据结构。如果命令使用PRP进行数据传输,那么就会使用PRP Entry 1和PRP Entry 2字段。如果该命令使用 SGL 进行数据传输,则使用 SGL Entry 1 字段。所有其他命令的特定字段都是 reserved
Bits | Description |
---|---|
127:00 | Data Pointer (DPTR):该字段指定数据传输的 data buffer 的位置。 |
Value | Description |
---|---|
0h | Reserved |
1h | Write Exclusive Reservation |
2h | Exclusive Access Reservation |
3h | Write Exclusive - Registrants Only Reservation |
4h | Exclusive Access - Registrants Only Reservation |
5h | Write Exclusive - All Registrants Reservation |
6h | Exclusive Access - All Registrants Reservation |
7h to FFh | Reserved |
当命令完成后,控制器应向相关的 I/O Completion Queue 发布一个 completion queue entry,表明该命令的状态。
Reservation Report
Reservation Report命令向内存返回一个Reservation Status data structure,描述命名空间的registration和reservation状态。
Reservation Status data structure的大小是NVM子系统中与作为命名空间registrants的主机相关联的控制器数量的函数(即,每个这样的控制器都有一个Registered Controller data structure和/或Registered Controller extended data structure)。如果主机选择了 64-bit Host Identifier,控制器会返回Figure 404中的数据结构;如果主机选择了128-bit Host Identifier,控制器会返回Figure 405中的数据结构。
如果指定了64-bit Host Identifier,并且Extended Data Structure位在Command Dword 11中被设置为 "1",那么控制器应以Host Identifier Inconsistent Format的状态码中止命令。如果指定了 128-bit Host Identifier,并且Extended Data Structure位在Command Dword 11 中被清除为 "0",则控制器应以Host Identifier Inconsistent Format的状态码中止命令。
该命令使用Command Dword 10和Command Dword 11。如果该命令使用 PRP 进行数据传输,则使用 PRP Entry 1 和 PRP Entry 2 字段。如果该命令使用 SGL 进行数据传输,则使用 SGL Entry 1 字段。所有其他命令的特定字段都是reserved。
Bits | Description |
---|---|
127:00 | Data Pointer (DPTR):该字段指定数据传输的 data buffer 的位置。 |
Bytes | Description |
---|---|
23:00 | 参考Figure 404定义。 |
63:24 | Reserved |
127:64 | Registered Controller Extended Data Structure 0 |
… | |
64*(n+1)+63:64*(n+1) | Registered Controller Extended Data Structure n |
当命令完成后,控制器应向相关的I/O Completion Queue 发布一个 completion queue entry,表明该命令的状态。
Reservation Release
Reservation Release命令用于释放或清除对命名空间的reservation。
该命令使用Command Dword 10和内存中的 Reservation Release data structure。如果该命令使用PRP进行数据传输,则使用PRP Entry 1和PRP Entry 2字段。如果该命令使用 SGL 进行数据传输,则使用 SGL Entry 1 字段。所有其他命令的特定字段都被保留。
Bits | Description |
---|---|
127:00 | Data Pointer (DPTR):该字段指定数据传输的 data buffer 的位置。 |