Sanitize Command被用来开始一个清除操作或者从之前失败的清除操作中恢复。可以支持的清除操作的类型有Block Erase(块擦除),Crypto Erase(秘钥擦除),Overwrite(重写).所有的清除操作都是在后台处理(例如,Sanitize Command的CQ完成并不代表清除操作完成)。具体细节参见8.15节。
当任何一个Controller的清除操作开始时,所有在这个NVM系统中的Controller:
·应当清除未完成的清除操作完成异步事件。
·应当更新Sanitize Status Log(参见5.14.1.9.2)。
·在清除操作的Sanitize In Progress状态时(参见8.15.1),应当终止任何的不允许运行的命令(从q中拿来或者正在处理的)。
·挂起在8.4.2节描述的自主的电源管理活动。
·应当释放任何打开的数据流的标识符。
当一个清除操作正在运行时,在NVM子系统中的所有的Controller都应当终止掉任何在清除操作运行期间不允许的命令(参见8.15.1节)。
清除操作失败之后,NVM子系统中的所有Controller都应当终止掉在清除失败状态期间的任何的命令,直到清除随后的清除操作又开启了或者从失败的清除操作中成功恢复。
如果最近的失败的清除操作是在无限制完成的模式下启动的(例如,Sanitize Command的AUSE位被置1),要使这个失败的清除操作恢复的话,要求主机发送一个跟随的Sanitize Command是在一个受限的或者不受限制的完成模式下,或者发送一个跟随的Sanitize Command使用一个退出失败模式模式。
如果最近的失败的清除操作在一个受限制的完成模式下启动(例如,Sanitize Command的AUSE位被清0),要使这个失败的清除操作恢复的话,要求主机在受限制和不受限制模式下发送一个跟随的Sanitize Command。在限制完成模式下清除操作失败情况时,在另一个清除操作开始之前需要以下操作:
·任何的随后的接收到的使用失败退出模式的Sanitize Command都应该被终止,终止状态为Sanitize Failed。
·任何的以不受限制完成模式发送的Sanitize Command都应当被终止,终止状态为Sanitize Failed。
在Identify Controller 数据结构中的Sanitize Capabilities字段代表了所支持的清除操作类型。如果Sanitize Command中搭载了一个不支持的清除操作类型,那么Controller应当Abort掉这个命令并且使返回的状态值为Invalid Field。
如果一个固件激活行为正在进行,那么Controller应当Abort掉任何的Sanitize Command使用Firmware Activation Requires NVM Subsystem Reset。在一个清除操作期间的固件激活行为也是被禁止的(参见8.15.1节)。
Sanitize Command 。。。。
所有清除操作(Block Erase,Crypto Erase,Overwrite)都是在后台执行的(例如Sanitize Command完成不代表清除操作完成)。如果清除操作开始了,那么Controller应当完成Sanitize Command使用一个成功完成的状态。如果Controller完成了一个Sanitize Command但是并不是一个成功完成的状态,那么这个Controller:
·不应当为这个命令开启清除操作
·不应当修改Sanitize Status Log Page
·不应当更改任何用户数据
Sanitize Command使用了DW10和DW11,所有其他的命令字段都被保留。