Asynchronous Event Request -NVM Command Set Specific
Asynchronous Event Request Command
Asynchronous Event用于在发生这些事件时通知host以下状态:错误和运行状况信息(status, error, and health information)。为了使controller 能够报告异步事件,host需要向controller 提交一个或多个Asynchronous Event Request命令。controller 通过完成Asynchronous Event Request命令 给host指定一个时间。host应该期望controller 可能不会立即执行命令(异步的事件,不能强求);当一个事件被reported时,代表命令应完成。
Asynchronous Event Request命令由Host软件提交以此来启用来自controller的异步事件的报告。此命令没有超时。当有异步事件要报告给Host时,controller将为此命令回CQ entry。如果在重置controller时有未完成“Asynchronous Event Request”命令,则这些命令将被abort并且不会返回CQ entry。
All command specific fields are reserved.
Host软件可以提交多个Asynchronous Event Request命令,以减少事件报告延迟。同时在执行的aer命令的总数受在Figure 251的“Identify Controller”数据结构中指定的Asynchronous Event Request Limit的限制。
异步事件以事件类型分类。事件类型信息在Asynchronous Event Request命令的CQ entry的Dword 0中指示。当controller为未完成的Asynchronous Event Request命令回CQ entry并因此报告一个异步事件时,controller会自动屏蔽该事件类型的后续事件,直到Host清除该事件为止。通过使用Get Log Page command读取与该事件关联的log page来清除事件(请参阅第5.14节)。
以下是事件类型:
-
Error event
Indicates a general error that is not associated with a specific command (refer to Figure 145). To clear this event, host software reads the Error Information log (refer to section
5.14.1.1) using the Get Log Page command with the Retain Asynchronous Event bit cleared to ‘0’; -
SMART / Health Status event
Indicates a SMART or health status event (refer to Figure 146). To
clear this event, host software reads the SMART / Health Information log (refer to section