【NVMe2.0d 17 - 1】Reservation 核心命令

文章目录

  • 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 字段。所有其他命令的特定字段都被保留。

Figure 395: Reservation Register – Data Pointer
Bits Description
127:00 Data Pointer (DPTR):该字段指定数据传输的 data buffer 的位置。

Figure 396: Reservation Register – Command Dword 10

【NVMe2.0d 17 - 1】Reservation 核心命令_第1张图片

Figure 397: Reservation Register Data Structure
Bytes Description
07:00

Current Reservation Key (CRKEY): 如果Reservation Register Action是001b(即Unregister Reservation Key)或010b(即Replace Reservation Key),那么这个字段就包含与主机相关的当前reservation key。对于所有其他的Reservation Register Action值,这个字段被保留。
当Ignore Existing Key(IEKEY)位被设置为’1’时,控制器会忽略这个字段的值。

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

Figure 391: Reservation Acquire – Data Pointer
Bits Description
127:00 Data Pointer (DPTR):该字段指定数据传输的 data buffer 的位置。

Figure 392: Reservation Acquire – Command Dword 10

【NVMe2.0d 17 - 1】Reservation 核心命令_第2张图片

Figure 393: Reservation Acquire Data Structure

【NVMe2.0d 17 - 1】Reservation 核心命令_第3张图片

Figure 394: Reservation Type Encoding
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。

Figure 401: Reservation Report – Data Pointer
Bits Description
127:00 Data Pointer (DPTR):该字段指定数据传输的 data buffer 的位置。
Figure 402: Reservation Report – Command Dword 10

【NVMe2.0d 17 - 1】Reservation 核心命令_第4张图片

Figure 403: Reservation Report – Command Dword 11

【NVMe2.0d 17 - 1】Reservation 核心命令_第5张图片

Figure 404: Reservation Status Data Structure

【NVMe2.0d 17 - 1】Reservation 核心命令_第6张图片

Figure 405: Reservation Status Extended Data Structure
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

Figure 406: Registered Controller Data Structure

【NVMe2.0d 17 - 1】Reservation 核心命令_第7张图片

Figure 407: Registered Controller Extended Data Structure

【NVMe2.0d 17 - 1】Reservation 核心命令_第8张图片

当命令完成后,控制器应向相关的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 字段。所有其他命令的特定字段都被保留。

Figure 398: Reservation Release – Data Pointer
Bits Description
127:00 Data Pointer (DPTR):该字段指定数据传输的 data buffer 的位置。

Figure 399: Reservation Release – Command Dword 10

【NVMe2.0d 17 - 1】Reservation 核心命令_第9张图片

Figure 400: Reservation Release Data Structure

在这里插入图片描述

当命令完成后,控制器应向相关的 I/O Completion Queue 发布一个 completion queue entry,表明该命令的状态。

你可能感兴趣的:(#,NVMe,汽车,NVMe,SSD)