5.2 Comando de solicitud de evento asíncrono

5.2 Comando de solicitud de evento
asíncrono Los eventos asíncronos se utilizan para notificar al software del host el estado, el error y la información de estado a medida que ocurren estos eventos. Para permitir que el controlador informe los eventos asincrónicos, el software del host debe enviar uno o más comandos de solicitud de eventos asincrónicos al controlador. El controlador especifica un evento para el host completando un comando de solicitud de evento asincrónico. El software host debe esperar que el controlador no ejecute el comando de inmediato; el comando debe completarse cuando hay un evento que se debe informar.
El software de host envía el comando Asynchronous Event Request para permitir la notificación de eventos asincrónicos desde el controlador. Este comando no tiene tiempo de espera. El controlador publica una entrada en la cola de finalización para este comando cuando hay un evento asincrónico para informar al host. Si los comandos de solicitud de evento asíncrono están pendientes cuando se reinicia el controlador, los comandos se cancelan.
Todos los campos específicos del comando están reservados.
El software host puede enviar múltiples comandos de solicitud de eventos asincrónicos para reducir la latencia de informes de eventos. El número total de comandos de solicitud de evento asincrónico pendientes simultáneamente está limitado por el límite de solicitud de evento asincrónico especificado en la estructura de datos de Identify Controller en la Figura 109.
Los eventos asincrónicos se agrupan en tipos de eventos. La información del tipo de evento se indica en el Dword 0 de la entrada de la cola de finalización para el comando Asynchronous Event Request. Cuando el controlador publica una entrada de cola de finalización para un comando de solicitud de evento asincrónico pendiente y, por lo tanto, informa un evento asincrónico, el controlador enmascara automáticamente los eventos posteriores de ese tipo de evento hasta que el host borre ese evento. Un evento se borra leyendo la página de registro asociada con ese evento utilizando el comando Obtener página de registro (consulte la sección 5.14).
Se definen los siguientes tipos de eventos:
   Evento de error: indica un error general que no está asociado con un comando específico. Para borrar este evento, el software host lee el registro de información de errores (consulte la sección 5.14.1.1) utilizando el comando Obtener página de registro con el campo Retener evento asincrónico desactivado en '0'.
   Evento de estado de salud / SMART: indica un evento de estado de salud o SMART. Para borrar este evento, el software host lee el registro de SMART / Health Information (consulte la sección 5.14.1.2) utilizando la página Obtener registro con el campo Retener evento asincrónico desactivado en '0'. Las condiciones SMART / Health que desencadenan eventos asincrónicos se pueden configurar en la función de configuración de eventos asincrónicos mediante el comando Establecer características (consulte la sección 5.21).
   Eventos de conjunto de comandos de E / S: eventos definidos por un conjunto de comandos de E / S.
    Eventos del conjunto de comandos de NVM:
     Evento disponible de la página de registro de reserva: indica que una o más páginas de registro de notificación de reserva (consulte la sección 5.14.1.9.1) están disponibles. Para borrar este evento, el software host lee la página de registro de Notificación de reserva utilizando el comando Obtener página de registro con el campo Retener evento asincrónico borrado a '0'.
     Evento de operación de desinfección completada: indica que se ha completado una operación de desinfección y que el estado está disponible en la página de registro de estado de desinfección (consulte la sección 5.14.1.9.2). Para borrar este evento, el software host lee la página de registro de estado de desinfección utilizando el comando Obtener página de registro con el campo Retener evento asincrónico borrado a '0'.

   Evento específico del proveedor: indica un evento específico del proveedor. Para borrar este evento, el software del host lee la página de registro específica del proveedor indicado utilizando el comando Obtener página de registro con el campo Retener evento asincrónico borrado a '0'.
Los eventos asincrónicos se informan debido a una nueva entrada que se agrega a una página de registro (por ejemplo, registro de información de errores) o una actualización de estado (por ejemplo, estado en el registro SMART / Health). Un cambio de estado puede ser permanente (p. Ej., El medio se ha convertido en solo lectura) o transitorio (p. Ej., La temperatura excedió un umbral durante un período de tiempo). El software host debe modificar el umbral del evento o enmascarar el evento para cambios de estado transitorios y permanentes antes de emitir otro comando de solicitud de evento asincrónico para evitar informes repetidos de eventos asincrónicos.
Si el controlador necesita informar un evento y no hay comandos pendientes de solicitud de evento asíncrono, el controlador debe enviar una notificación única de ese tipo de evento asíncrono cuando se recibe un comando de solicitud de evento asíncrono. Si un comando Obtener página de registro borra el evento antes de recibir el comando Solicitud de evento asincrónico o si se produce una condición de apagado, no se envía una notificación.

5.2 Comandos de solicitud de
eventos asíncronos Los eventos asíncronos se utilizan para notificar al software del host el estado, los errores y la información del estado operativo cuando se producen estos eventos. Para que el controlador informe eventos asincrónicos, el software del host debe enviar uno o más comandos de solicitud de eventos asincrónicos al controlador. El controlador asigna un evento al host completando el comando "Solicitud de evento asincrónico". El software del host debe esperar que el controlador no ejecute el comando inmediatamente; cuando hay un evento para informar, el comando debe completarse.
El software host envía los comandos de solicitud de eventos asincrónicos para permitir la notificación de eventos asincrónicos desde el controlador. Este comando no expiró. Cuando hay un evento asincrónico para informar al host, el controlador emitirá una entrada de cola de finalización para este comando. Si los comandos de "Solicitud de evento asincrónico" no se completan cuando se reinicia el controlador, estos comandos se cancelarán.
Todos los campos específicos del comando están reservados.
El software del host puede enviar múltiples comandos de solicitud de eventos asíncronos para reducir el retraso en la notificación de eventos. Al mismo tiempo, el número total de comandos de solicitud de eventos asincrónicos pendientes está limitado por el límite de solicitud de eventos asincrónicos especificado en la estructura de datos del "controlador de identificación" de la figura 109.
Los eventos asincrónicos se dividen en tipos de eventos. La información del tipo de evento se indica en el Dword 0 de la entrada de la cola de finalización del comando de solicitud de evento asíncrono. Cuando el controlador emite una entrada de cola de finalización para un comando de solicitud de evento asincrónico pendiente y, por lo tanto, informa un evento asincrónico, el controlador bloquea automáticamente los eventos posteriores de ese tipo de evento hasta que el host borra el evento. Borre el evento leyendo la página de registro asociada con el evento utilizando el comando "Obtener página de registro" (consulte la sección 5.14).
Se definen los siguientes tipos de eventos:
   Evento de error: indica un error general que no está relacionado con un comando específico. Para borrar este evento, el software host utiliza el comando "Obtener página de registro" para borrar el campo "Mantener eventos asincrónicos" a "0" para leer el registro de mensajes de error (consulte 5.14.1.1).
   SMART / Evento de estado de salud: indica SMART o evento de estado de salud. Para borrar este evento, el software host utiliza la "Página de registro de registro" y borra el campo "Mantener eventos asincrónicos" en "0" para leer el registro de información SMART / Health (consulte 5.14.1.2). Puede utilizar el comando "Función de configuración" para configurar el estado SMART / Run que desencadena eventos asincrónicos en la función "Configuración de eventos asincrónicos" (consulte la Sección 5.21).
   Eventos del conjunto de comandos de E / S: eventos definidos por el conjunto de comandos de E / S.
    Eventos de conjunto de comandos de NVM:
       Eventos disponibles de la página de registro reservada: indica que una o más páginas de registro de notificación reservadas (consulte la sección 5.14.1.9.1) están disponibles. Para borrar este evento, el software host usará el comando "Obtener página de registro" para leer la página "Notificación de retención" y borrará el campo "Retener evento asincrónico" a "0".
       Evento de operación de limpieza completada: indica que la operación de limpieza se ha completado y que hay un estado disponible en la página de registro "Estado de limpieza" (consulte la sección 5.14.1.9.2). Para borrar este evento, el software host utiliza el comando "Obtener página de registro" para borrar el campo "Mantener eventos asincrónicos" a "0" para leer la página de registro "Borrar estado".

 Eventos específicos del proveedor: indique eventos específicos del proveedor. Para borrar este evento, el software host utiliza el comando "Obtener página de registro" para borrar el campo "Mantener eventos asincrónicos" a "0" para leer la página de registro específica del proveedor.
A medida que se agregan nuevas entradas a la página de registro (por ejemplo, registros de mensajes de error) o actualizaciones de estado (por ejemplo, el estado en el registro SMART / Health), se informan eventos asincrónicos. El cambio de estado puede ser permanente (por ejemplo, el medio se ha convertido en solo lectura) o puede ser transitorio (por ejemplo, la temperatura excede el umbral por un período de tiempo). El software del host debe modificar el umbral del evento o enmascarar eventos para cambios de estado transitorios y permanentes antes de emitir otro comando de "solicitud de evento asincrónico" para evitar informes repetidos de eventos asincrónicos.
Si el controlador necesita informar un evento y no hay comandos de solicitud de evento asincrónico pendientes, el controlador debe enviar una notificación única del tipo de evento asincrónico cuando se recibe el comando de solicitud de evento asincrónico. Si el comando "Obtener página de registro" borra el evento antes de recibir el comando "Solicitud de evento asincrónico", o se produce un corte de energía, no se enviará ninguna notificación.

5.2.1 Finalización del comando
Una entrada de la cola de finalización se publica en la Cola de finalización del administrador si hay un evento asincrónico que informar al host. Los valores de estado específicos del comando asociados con la solicitud de evento asincrónico se definen en la Figura 45.

5.2.1 Finalización del comando

Si hay eventos asíncronos para informar al host, la entrada de la cola de finalización se publicará en la "cola de finalización de gestión". Los valores de estado específicos del comando asociados con las solicitudes de eventos asíncronos se definen en la Figura 45.

Dword 0 de la entrada de la cola de finalización contiene información sobre el evento asincrónico. La definición de Dword 0 de la entrada de la cola de finalización se encuentra en la Figura 46.

Dword 0 de la entrada de cola completa contiene información sobre eventos asincrónicos. La definición de Dword 0 para completar la entrada de la cola se muestra en la Fig. 46.

 

 La información de la Figura 47, la Figura 48 o la Figura 50 se devuelve en el campo Información de evento asincrónico, según el Tipo de evento asincrónico.

Dependiendo del tipo de evento asincrónico, la información de la Figura 47, Figura 48 o Figura 50 se devuelve en el campo "Información de evento asincrónico".

 

 

 

 

 

 

 

Supongo que te gusta

Origin www.cnblogs.com/hswy/p/12671374.html
Recomendado
Clasificación