特性配置 - 1. Volatile Write Cache (VWC) (第271页)
在《NVM Express® Base Specification, revision 2.0b》文档中,Identify Controller数据结构中的字段Volatile Write Cache (VWC)、Atomic Write Unit Normal (AWUN)、Atomic Write Unit Power Fail (AWUPF)和I/O Command Set Vendor Specific Command Configuration (ICSVSCC)描述了控制器的写缓存、原子写操作以及供应商特定命令的配置。以下是这些字段的详细分析:
1. Volatile Write Cache (VWC)
该字段指示与易失性写缓存相关的属性。易失性写缓存用于提高存储设备的写入性能,但其数据在电源断开时会丢失。
字段定义:
- Bits 7:3:保留位,不参与实际功能。
- Bits 2:1:指示如果NSID值设置为FFFFFFFFh时,Flush命令的行为:
- 00b:未指示支持NSID字段设置为FFFFFFFFh。只有符合NVM Express Base Specification修订版1.3及以前的控制器才允许返回此值。
- 01b:保留。
- 10b:Flush命令不支持NSID字段设置为FFFFFFFFh。如果收到该命令,控制器会返回“Invalid Namespace or Format”状态码。
-
11b:Flush命令支持NSID字段设置为FFFFFFFFh。
-
Bit 0:如果设置为‘1’,表示存在易失性写缓存。如果为‘0’,表示没有易失性写缓存。
- 如果存在易失性写缓存,主机可以通过Set Features命令控制缓存是否启用。主机可以指定Volatile Write Cache特性标识符来启用或禁用写缓存。
作用:
- Bit 2:1字段有助于定义Flush命令如何处理所有命名空间(通过设置NSID为FFFFFFFFh)。该字段对于确保数据一致性至关重要,特别是在电源丢失或系统崩溃时。
- Bit 0字段指示是否有易失性写缓存,并为主机提供了控制此功能的方式,确保写操作数据的持久性。
2. Atomic Write Unit Normal (AWUN)
该字段是针对指定逻辑块命令集(即命令集标识符为0h或2h)的命名空间的,定义了原子写操作的正常单位。如果命名空间没有与指定逻辑块命令集相关联,则该字段应清除为0h。
字段定义:
- 作用:该字段指示原子写操作的单位大小,确保在正常操作中数据的一致性和完整性。
3. Atomic Write Unit Power Fail (AWUPF)
该字段也是针对指定逻辑块命令集的命名空间的,定义了原子写操作在电源失败时的单位大小。类似于AWUN字段,如果命名空间没有与指定逻辑块命令集相关联,则该字段应清除为0h。
字段定义:
- 作用:该字段指示在电源故障的情况下,控制器如何保证原子写操作的完整性,帮助确保数据不会丢失。
4. I/O Command Set Vendor Specific Command Configuration (ICSVSCC)
该字段指示控制器如何处理I/O命令集的供应商特定命令,并定义了相关的配置设置。
字段定义:
- Bits 7:1:保留位,不参与实际功能。
- Bit 0:如果设置为‘1’,则表示所有NVM供应商特定命令使用在Figure 88中定义的格式。如果为‘0’,则表示所有NVM供应商特定命令的格式是供应商特定的。
作用:
- 该字段允许控制器支持供应商特定的命令格式。它提供了灵活性,允许厂商根据需要定义额外的命令类型或扩展标准命令集,以适应不同的应用需求。
5. 总结
这些字段为控制器提供了与写缓存、原子写操作和供应商特定命令处理相关的详细配置:
- VWC字段:指示是否存在易失性写缓存,并允许主机控制该功能,确保数据的一致性和持久性,特别是在电源中断的情况下。
- AWUN和AWUPF字段:针对原子写操作提供了正常和电源故障情况下的原子写单位大小,确保在数据写入时的完整性和一致性。
- ICSVSCC字段:提供了供应商特定命令的处理配置,允许厂商扩展标准命令集,支持更多自定义的命令格式。
这些功能确保了存储系统在高性能、高可靠性的环境中能够稳定运行,并能够在极端情况下(如电源丧失)保证数据的完整性和一致性。