NVMe1.4 Admin Command 学习(3)-- fw commit & sanitize

1.Firmware Commit command

   在1.0和1.1协议里,Firmware Commit command被称作Firmware activate,固件提交命令用于修改固件映像或引导分区。

    修改固件映像时,“固件提交”命令将验证是否已下载了有效的固件映像,并将该修订提交到特定的固件插槽。 主机可以选择固件映像作为该命令的一部分在下次控制器级别复位时激活。 主机可以通过检查图247中的“识别控制器”数据结构中的“固件版本”字段来确定当前正在执行的固件版本。主机可以通过检查“固件插槽信息”日志页面来确定要在下一个控制器级别重置上执行的固件版本。 NVM子系统中的所有控制器共享固件插槽,并且相同的固件映像应用于所有控制器。

     固件映像的激活可能会导致主机不希望的控制器行为发生变化(例如,UUID列表发生不兼容的变化(请参阅第8.24.2节))。 在这种情况下,如果“提交操作”字段设置为011b,则控制器应中止状态为“固件激活需要常规复位”的命令。

    修改引导分区时,主机可以选择引导分区以将其标记为活动或替换。 引导分区仅在解锁时才能写入(请参阅第8.13节)。固件提交命令使用Dword10字段。 保留所有其他命令特定字段。

Figure 175: Firmware Commit – Command Dword 10
bitsdescription
31引导分区ID(BPID):指定用于提交操作的引导分区(如果适用)
30:06保留
05:03

提交操作(CA):此字段指定对使用“固件映像下载”命令下载的映像或先前下载并放置的映像执行的操作(请参阅第8.1节)。 下表中指示了这些操作。

valuedescription
000b下载的映像将替换指定固件插槽中的现有映像(如果有)。 新放置的映像未激活。
001b下载的映像将替换指定固件插槽中的现有映像(如果有)。 新放置的映像在下一次控制器级别重置时被激活。
010b指定的固件插槽中的现有映像在下一次控制器级别重置时被激活。
011b下载的映像将替换指定固件插槽中的现有映像(如果有),然后立即将其激活。 如果没有新下载的映像,然后立即激活指定固件插槽中的现有映像。
100b-101b保留
110b下载的映像将替换由“引导分区ID”字段指定的引导分区。
11b将BPID字段中指定的引导分区标记为活动,并更新BPINFO.ABPID

 

02:00固件插槽(FS):指定适用于“提交操作”的固件插槽。 如果指定的值为0h,则控制器应选择固件插槽(即插槽1至插槽7)进行操作

       完成固件提交命令后,控制器会将完成队列条目发布到Admin Completion Queue中,以指示命令的状态。对于固件提交命令,该命令指定在下一个控制器级别重置(即,CA字段设置为001b或010b)并激活状态码值为0h(即,成功完成)时激活控制器级别的新固件映像。 通过第7.3.2节中定义的任何方法启动的复位将激活指定的固件。
     固件提交命令特定的状态值在图176中定义。

Figure 176: Firmware Commit – Command Specific Status Values
valuedescription
06h无效的固件插槽:指示的固件插槽无效或只读。 如果固件插槽超过支持的数量,则会指示此错误。
07h无效的固件映像:指定用于激活的固件映像无效,并且未由控制器加载
0Bh固件激活需要常规重置:固件提交成功,但激活固件映像需要常规重置。 如果在常规复位之前发生FLR或控制器复位,则控制器应使用当前正在执行的固件映像继续运行。
10h固件激活需要NVM子系统重置:固件提交成功,但固件映像的激活需要NVM子系统重置。 如果在NVM子系统复位之前发生了其他类型的控制器级别复位,则控制器应使用当前正在执行的固件映像继续运行。
11h固件激活需要控制器级重置:固件提交成功;但指定的映像不支持在控制器级别重置之前被激活。映像将在下一个控制器电平复位被激活。只有当固件提交命令中的Commit操作字段被设置为011b时(即当固件提交命令中的Commit操作字段被设置为011b时),才应该返回此状态代码,立即激活)。
12h激活固件需要最长的时间:激活后指定的映像立即数将超过“识别控制器”数据结构中报告的“固件激活的最大时间”(MTFA)值(请参见图247)。 要激活固件,需要重新发出“固件提交”命令,并使用重置来激活映像。
13h禁止激活固件:由于供应商的特定原因,控制器禁止激活指定的映像(例如,控制器不支持向下版本的固件)。
14h重叠范围:如果固件映像具有重叠范围,则指示此错误
1Eh禁止引导分区写入:如果命令在锁定时尝试修改引导分区,则指示此错误(请参阅第8.13.3节)。

2.Sanitize Command

       sanitize操作从block级别,在物理擦除SSD上的数据,会更改NVM子系统中的所有用户数据,从而无法从任何高速缓存,非易失性介质或任何控制器内存缓冲区恢复任何先前的用户数据。 具体的实现方式是是否通过sanitize操作来更改控制器内存缓冲区中的提交队列和完成队列。 存储在所有控制器内存缓冲区中的所有其他数据将通过sanitize操作进行更改。 如果一部分用户数据未更改且sanitize操作成功完成,则NVM子系统应确保该部分用户数据永久不可访问,以备将来在NVM子系统内使用(例如,从NVM介质,缓存, 或任何控制器内存缓冲区),并通过与NVM子系统的任何接口(包括管理接口,例如NVMe-MI实现)永久无法访问用户数据的那部分。   

      该命令有三种操作类型:block erase,crypo erase,overwrite,均为后台运行,命令的完成不代表操作的完成。如果sanitize命令选择了不支持的sanitize操作类型,则控制器应在命令中以Invalid字段的状态终止该命令。①block erase sanitize操作使用一种低级的块擦除方法来修改用户数据,该方法特定于NVM子系统中存储用户数据的媒体上的所有位置的媒体;②Crypto Erase sanitize操作通过改变NVM子系统中存储用户数据的媒体上所有位置的媒体加密密钥来修改用户数据;③Overwrite sanitize操作通过将固定的数据模式(下图)或相关模式写入NVM子系统中媒体上的所有位置来修改用户数据,用户数据可以在其中存储一次或多次。

            

     当任何控制器上的sanitize操作开始时,NVM子系统中的所有控制器①应该清除任何未完成的sanitize操作完成的异步事件或sanitize操作完成时意外的Deallocation异步事件;②更新sanitize状态日志;③在进行中的清洗操作中,应中止任何不允许的命令(已提交的或正在进行的);④终止正在进行的设备自检操作;⑤暂停第8.4.2节所述的自主电源状态管理活动;⑥应释放任何开放流的流标识符。

     如果FW的激活和重置正在等待执行,则控制器将中止sanitize命令。Sanitize命令使用命令dword10和命令dword11。所有其他特定于命令的字段都被保留。

Figure 330: Sanitize – Command Dword 10
bitsdescriptions
31:10

保留

09

sanitize后不释放:如果设置为‘1’,并且No-Deallocate inhibited位(参见图247)被清除为‘0’,则控制器在成功完成sanitize操作后不会释放任何逻辑块。如果:

a)清除到' 0 ';或者

b)设置为“1”,并且No-Deallocate的受抑制位设置为“1”,

然后,由于成功完成了sanitize操作,控制器应该释放逻辑块。如果Sanitize操作字段设置为001b(即退出失败模式),则该位将被忽略。

08Overwrite Invert Pattern Between Passes(OIPBP):如果设置为“ 1”,则覆盖模式应在passes之间反转。 如果清除为“ 0”,则覆盖模式在passes之间不得反转。 除非将“清除操作”字段设置为011b(即“覆盖”),否则应忽略该位。
07:04Overwrite Pass Count (OWPASS):此字段使用此命令的“覆盖模式”字段中的数据指定覆盖次数(即,要重写介质的次数)。 值0h指定16次覆盖遍历。 除非将“清除操作”字段设置为011b(即“覆盖”),否则应忽略此字段。
03 Allow Unrestricted Sanitize Exit (AUSE):如果设置为“1”,则在不受限制的完成模式下执行sanitize操作。如果清除为“0”,则在受限完成模式下执行sanitize操作。如果Sanitize操作字段设置为001b(即退出失败模式),则该位将被忽略。
02:00

Sanitize Action (SANACT):

valuedescriptions
000breserved
001bexit failure mode
010bStart a Block Erase sanitize operation
011bStart an Overwrite sanitize operation

100b

Start a Crypto Erase sanitize operation
101b-111breserved

 

Figure 331: Sanitize – Command Dword 11
bitdescriptions
31:0Overwrite Pattern (OVRPAT):除非命令Dword 10中的Sanitize操作字段被设置为011b(即Overwrite),否则该字段将被忽略。此字段指定用于覆盖清理操作的32位模式。
Figure 332: Sanitize – Command Specific Status Values
valuedescriptions
10hFirmware Activation Requires NVM Subsystem Reset:由于固件激活处于挂起状态,因此无法启动sanitize操作。
23hSanitize Prohibited While Persistent Memory Region is Enabled:启用持久存储区时,禁止执行sanitize操作。

 

  • 2
    点赞
  • 12
    收藏
    觉得还不错? 一键收藏
  • 2
    评论
### 回答1: NVMe 1.4 PDF是指NVMe(Non-Volatile Memory Express)1.4技术规范的PDF版本。NVMe是一种用于固态硬盘驱动器(SSD)和其他非易失性存储设备的专有通信协议。 NVMe 1.4是一项新的技术规范,旨在改进存储设备的性能和功能。它包含了许多新的功能和改进,使得存储设备能够更好地应对现代数据中心和企业存储需求。 NVMe 1.4 PDF提供了这个技术规范的完整文档,其中包含了所有关于NVMe 1.4协议的详细信息。这个文档可以帮助硬件制造商、软件开发人员和系统管理员更好地了解和实现NVMe 1.4协议。 在NVMe 1.4 PDF中,你可以找到关于NVMe命名空间(Namespace)管理、队列管理、错误处理、安全和认证、电源管理等方面的细节。它还提供了关于控制命令、队列命令和传输命令等方面的详细说明。 NVMe 1.4 PDF还提供了一些在NVMe技术中使用的高级功能的详细信息,如多队列、SR-IOV(Single Root I/O Virtualization)和NVMe over Fabrics等。 总之,NVMe 1.4 PDF是一份关于NVMe 1.4技术规范的完整文档,其详细描述了这一新的存储设备通信协议的各个方面。这个文档对于存储行业的专业人士来说是非常有价值的参考资料。 ### 回答2: NVMe 1.4 PDF(英特尔非易失性内存快速存储扩展接口1.4的PDF文档)是关于NVMe 1.4标准的详细说明文件。它是为了帮助开发者、厂商和用户更好地理解和实现NVMe 1.4接口而创建的。 NVMe是一种快速、低延迟的存储协议,用于连接非易失性存储设备,如固态硬盘(SSD)。而NVMe 1.4则是该协议的最新版本,相比以往版本有了一些重要的改进。 NVMe 1.4 PDF文档提供了关于NVMe 1.4协议的全面解释和描述。它详细介绍了NVMe的架构、命令和特性,以及与之前版本的区别。此外,它还包含了一些示例代码和配置指南,以帮助开发者更好地理解和使用NVMe 1.4接口。 NVMe 1.4 PDF文档的内容对于存储设备制造商和开发者来说非常有用。它们可以通过研究该文档,了解NVMe 1.4接口的工作原理和要求,并相应地设计和实施自己的产品。此外,用户也可以通过阅读该文档,了解他们所使用和购买的存储设备是否符合NVMe 1.4标准,并了解其性能和兼容性。 总而言之,NVMe 1.4 PDF是一份重要的文档,它提供了关于NVMe 1.4协议的详细说明和指导。无论对于存储设备制造商、开发者还是用户来说,了解NVMe 1.4标准都是非常有益的。 ### 回答3: NVMe(Non-Volatile Memory Express)是一种用于固态硬盘(SSD)的接口协议。NVMe 1.4是NVMe协议的最新版本,于2019年发布。 NVMe 1.4引入了一些新功能和改进,旨在提升SSD的性能和功能。其中,最显著的改进是引入了Zoned Namespaces(ZNs)和多队列(Multi-Queue)功能。 ZNs允许SSD将存储空间分为逻辑区域,这样可以更好地管理和优化数据的存储和访问。这有助于提升SSD的写入性能和耐用性,尤其在需要大量连续写入数据的应用场景下。 多队列功能则可以提高多核处理器系统中的多线程并发访问性能。通过将队列与CPU核心进行分离,可以实现更高效的并发读写操作。这对于服务器和数据中心等高负载环境下的应用非常重要。 此外,NVMe 1.4还提供了更丰富的错误处理和调试功能,使得开发人员可以更容易地查找和解决问题。同时,该协议还支持更多的安全功能,例如硬件加密和信任模型,以保护存储的数据安全。 总之,NVMe 1.4是一项重要的技术进步,将进一步推动SSD的发展并提升存储系统的性能和可靠性。通过引入Zoned Namespaces和多队列等新功能,NVMe 1.4将为各种应用场景提供更高效的存储解决方案,并为数据中心和服务器等高负载环境带来更好的性能和稳定性。

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论 2
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值