数据结构 - Reservation Notification Log Page 结构解析 (第246页)
深入分析 NVM Express® Base Specification, revision 2.0b - Reservation Notification Log Page 与 Sanitize Status Log Page
Reservation Notification Log Page 和 Sanitize Status Log Page 都是 NVM Express 规范中用于日志记录和管理的页面,它们分别用于报告命名空间的预留通知和擦除状态。
Reservation Notification Log Page 结构解析
Reservation Notification Log Page 用于跟踪和报告 NVM 子系统中命名空间的预留操作。当发生未屏蔽的预留通知时,新的日志页面会被添加到队列中。主机可以通过 Get Log Page 命令获取这些日志页面,以便了解最新的预留状态。
字段解析:
- Log Page Count:
- 功能:这是一个 64 位递增的日志页面计数器,表示当前日志页面的唯一标识符(采用模 64 位的方式)。该计数从
0h开始,每发生一个事件导致预留通知时都会递增。 -
值说明:
- 如果队列为空,返回值为
0h。 - 当日志页满时且发生新的预留通知时,计数器会溢出并从
1h开始。
- 如果队列为空,返回值为
-
Reservation Notification Log Page Type:
- 功能:指示当前日志页面所描述的预留通知类型。
-
值说明:
0h:空日志页面,表示当前没有可用的预留通知。1h:注册被抢占。2h:预留释放。3h:预留被抢占。4h到FFh:保留。
-
Number of Available Log Pages:
-
功能:指示日志队列中还有多少可用的未读预留通知日志页面。最大值为
255。 -
Namespace ID:
-
功能:指示与该预留通知相关联的命名空间 ID。
-
Log Page Count 的作用:
- 递增:每次新的预留通知被添加时,
Log Page Count会递增。 - 溢出处理:当
Log Page Count达到最大值时,它会回滚到1h,并开始新的日志页面记录。
Sanitize Status Log Page 结构解析
Sanitize Status Log Page 用于报告 Sanitize 操作的时间估算和与擦除操作相关的信息。该日志页面在每次擦除操作后提供关于命名空间擦除状态的详细信息,且会在电源周期和重置后保留。
字段解析:
- Sanitize Capabilities (SANICAP):
-
功能:指定控制器是否支持擦除命令。如果
SANICAP字段不为0h,则表示控制器支持擦除命令,日志页面将被启用;如果为0h,则该日志页面是保留的。 -
时间估算:
-
该日志页面报告上次擦除操作的时间估算,帮助用户了解擦除进度和预期完成时间。
-
数据保留:
- 在每次擦除操作过程中,
Sanitize Status Log Page将包含擦除操作的有效数据,直到擦除完成。
Sanitize Status Log Page 的重要性:
- 擦除状态追踪:提供擦除操作的进度和状态,确保用户能够监控擦除任务的执行。
- 电源周期与重置后保留:该日志页面能跨电源周期和重置保留数据,确保在系统重启后继续保持数据一致性。
总结
-
Reservation Notification Log Page:用于记录和跟踪命名空间的预留通知。通过此日志页面,主机能够了解预留操作的状态,包括注册、释放和抢占等事件。如果预留通知队列已满,通知将丢失并相应更新日志页计数器。
-
Sanitize Status Log Page:用于报告擦除操作的状态和进度,确保擦除过程的可跟踪性,并在系统重启或电源循环后保持数据一致性。
这两个日志页面在 NVM Express 规范中扮演着重要的角色,帮助系统管理员和主机软件管理命名空间的预留操作和数据擦除任务,确保数据的完整性与安全性。