Compartir a través de


estructura NVME_HEALTH_INFO_LOG (nvme.h)

Contiene campos que especifican la información contenida en la página Registro de información de estado/SMART.

La página Smart/ Health Information Log (Registro de información de salud/ SMART) proporciona información de mantenimiento general y INTELIGENTE durante la vida útil del controlador que se conserva en los ciclos de energía. La página de registro se admite de forma global. Para solicitar la página de registro global, especifique el espacio de nombres FFFFFFFFh.

La página Smart/Health Information Log (Registro de información de estado/ SMART) también se puede admitir por espacio de nombres, tal como se indica en la estructura de datos del controlador de identificación. Si no se admite la página de registro por espacio de nombres, especificando cualquier espacio de nombres distinto FFFFFFFFh de debe anular el comando con un estado de NVME_STATUS_INVALID_FIELD_IN_COMMAND. En la versión 1.3 de NVMe, no hay ninguna información específica del espacio de nombres definida en la página de registro SMART/Health, por lo que la página de registro global y las páginas de registro específicas de espacios de nombres contienen información idéntica.

Las advertencias críticas relacionadas con el estado del subsistema NVM se indican a través de una notificación de eventos asincrónica al host. Las advertencias que producen una notificación de eventos asincrónica al host se configuran mediante el comando Establecer características.

El rendimiento se puede calcular mediante parámetros devueltos como parte del registro de información de estado/SMART. En concreto, el número de comandos de lectura o escritura, la cantidad de datos leídos o escritos, y la cantidad de tiempo ocupado del controlador permite calcular las E/S por segundo y el ancho de banda.

El comando Obtener página de registro devuelve la estructura NVME_HEALTH_INFO_LOG . Para obtener más información, consulte NVME_CDW10_GET_LOG_PAGE.

Sintaxis

typedef struct {
  union {
    struct {
      UCHAR AvailableSpaceLow : 1;
      UCHAR TemperatureThreshold : 1;
      UCHAR ReliabilityDegraded : 1;
      UCHAR ReadOnly : 1;
      UCHAR VolatileMemoryBackupDeviceFailed : 1;
      UCHAR Reserved : 3;
    } DUMMYSTRUCTNAME;
    UCHAR AsUchar;
  } CriticalWarning;
  UCHAR  Temperature[2];
  UCHAR  AvailableSpare;
  UCHAR  AvailableSpareThreshold;
  UCHAR  PercentageUsed;
  UCHAR  Reserved0[26];
  UCHAR  DataUnitRead[16];
  UCHAR  DataUnitWritten[16];
  UCHAR  HostReadCommands[16];
  UCHAR  HostWrittenCommands[16];
  UCHAR  ControllerBusyTime[16];
  UCHAR  PowerCycle[16];
  UCHAR  PowerOnHours[16];
  UCHAR  UnsafeShutdowns[16];
  UCHAR  MediaErrors[16];
  UCHAR  ErrorInfoLogEntryCount[16];
  ULONG  WarningCompositeTemperatureTime;
  ULONG  CriticalCompositeTemperatureTime;
  USHORT TemperatureSensor1;
  USHORT TemperatureSensor2;
  USHORT TemperatureSensor3;
  USHORT TemperatureSensor4;
  USHORT TemperatureSensor5;
  USHORT TemperatureSensor6;
  USHORT TemperatureSensor7;
  USHORT TemperatureSensor8;
  UCHAR  Reserved1[296];
} NVME_HEALTH_INFO_LOG, *PNVME_HEALTH_INFO_LOG;

Miembros

CriticalWarning

Estructura Critical Warning (CriticalWarning) que contiene campos que indican advertencias críticas para el estado del controlador.

Cada campo de la estructura CriticalWarning es un poco que corresponde a un tipo de advertencia crítico; se pueden establecer varios bits. Si se borra un bit en 0, esa advertencia crítica no se aplica. Los bits de este campo representan el estado asociado actual y no son persistentes.

Las advertencias críticas pueden dar lugar a una notificación de eventos asincrónica al host.

CriticalWarning.DUMMYSTRUCTNAME

CriticalWarning.DUMMYSTRUCTNAME.AvailableSpaceLow

Indica si el espacio disponible ha caído por debajo del umbral.

Cuando este valor se establece 1en , el espacio disponible ha caído por debajo del umbral.

CriticalWarning.DUMMYSTRUCTNAME.TemperatureThreshold

Indica si una temperatura está por encima de un umbral de temperatura superior o inferior a un umbral de temperatura inferior.

Cuando este valor se establece 1en , una temperatura está por encima de un umbral de temperatura superior o por debajo de un umbral de temperatura inferior. Para obtener más información sobre los umbrales de temperatura, consulte NVME_CDW11_FEATURE_TEMPERATURE_THRESHOLD.

CriticalWarning.DUMMYSTRUCTNAME.ReliabilityDegraded

Indica si la confiabilidad del subsistema NVM se ha degradado.

Cuando este valor se establece 1en , la confiabilidad del subsistema NVM se ha degradado debido a errores importantes relacionados con los medios o a cualquier error interno que degrada la confiabilidad del subsistema NVM.

CriticalWarning.DUMMYSTRUCTNAME.ReadOnly

Indica si el medio se ha colocado en modo de solo lectura.

Cuando este valor se establece 1en , el medio se ha colocado en modo de solo lectura.

CriticalWarning.DUMMYSTRUCTNAME.VolatileMemoryBackupDeviceFailed

Indica si se ha producido un error en el dispositivo de copia de seguridad de memoria volátil.

Cuando este valor se establece 1en , se ha producido un error en el dispositivo de copia de seguridad de memoria volátil. Este campo solo es válido si el controlador tiene una solución de copia de seguridad de memoria volátil.

CriticalWarning.DUMMYSTRUCTNAME.Reserved

Se reservan los bits 05:07 de la estructura CriticalWarning .

CriticalWarning.AsUchar

Temperature[2]

Indica la temperatura compuesta, en grados Kelvin, del dispositivo general, incluido el controlador y el subsistema NVM.

Si la temperatura de este campo supera el umbral de temperatura, puede producirse una finalización de eventos asincrónica. Para obtener más información, consulte NVME_CDW11_FEATURE_TEMPERATURE_THRESHOLD.

Los campos WCTEMP y CCTEMP notifican los valores de umbral de temperatura compuesta de sobrecalentamiento crítico en la estructura de datos del controlador de identificación .

AvailableSpare

Indica un porcentaje normalizado (de 0 a 100) de la capacidad de reserva restante disponible.

AvailableSpareThreshold

Indica el umbral de capacidad de reserva disponible.

Cuando el valor de AvailableSpare cae por debajo del umbral indicado en este campo, puede producirse una finalización de eventos asincrónica. El valor se indica como un porcentaje normalizado (de 0 a 100).

PercentageUsed

Indica una estimación específica del proveedor del porcentaje de vida útil del subsistema NVM utilizado, en función del uso real y la predicción del fabricante de la vida útil de NVM.

Un valor de 100 indica que se ha consumido la resistencia estimada de NVM en el subsistema NVM, pero puede que no indique un error del subsistema NVM. El valor puede superar los 100. Los porcentajes mayores que 254 se representan como 255. Este valor se actualiza una vez por hora de encendido (cuando el controlador no está en estado de suspensión).

Reserved0[26]

Campo reservado.

DataUnitRead[16]

Indica el número de unidades de datos de 512 bytes que el host ha leído del controlador, no incluidos los metadatos.

El valor de este campo se notifica en miles y se redondea hacia arriba. Por ejemplo, un valor de 1 corresponde a 1000 unidades de 512 bytes leídos. Cuando el tamaño del acceso a bloques lógicos (LBA) es un valor distinto de 512 bytes, el controlador convierte la cantidad de datos leídos en 512 unidades de bytes.

Para el conjunto de comandos nvM, los bloques lógicos leídos como parte de las operaciones comparar y leer se incluyen en este valor.

DataUnitWritten[16]

Indica el número de unidades de datos de 512 bytes que el host ha escrito en el controlador, no incluidos los metadatos.

El valor de este campo se notifica en miles y se redondea hacia arriba. Por ejemplo, un valor de 1 corresponde a 1000 unidades de 512 bytes leídos. Cuando el tamaño del acceso a bloques lógicos (LBA) es un valor distinto de 512 bytes, el controlador convierte la cantidad de datos escritos en 512 unidades de bytes.

Para el conjunto de comandos nvM, los bloques lógicos escritos como parte de las operaciones de escritura se incluyen en este valor. Escribir comandos nocorrectables no afectan a este valor.

HostReadCommands[16]

Indica el número de comandos read completados por el controlador.

Para el conjunto de comandos NVM, este es el número de comandos Compare y Read.

HostWrittenCommands[16]

Indica el número de comandos de escritura completados por el controlador.

Para el conjunto de comandos nvM, este es el número de comandos de escritura.

ControllerBusyTime[16]

Indica la cantidad de tiempo, en minutos, que el controlador está ocupado con los comandos de E/S.

El controlador está ocupado cuando hay un comando pendiente para una cola de E/S. En concreto, cuando se emitió un comando a través de una escritura de cola de cola de envío de E/S y la entrada de cola de finalización correspondiente aún no se ha publicado en la cola de finalización de E/S asociada.

PowerCycle[16]

Indica el número de ciclos de energía.

PowerOnHours[16]

Indica el número de horas de encendido. Esto no incluye el tiempo en que el controlador estaba encendido y en una condición de estado de baja potencia.

UnsafeShutdowns[16]

Indica el número de apagados no seguros. Este recuento se incrementa cuando una notificación de apagado, indicada en el archivo SHN de configuración del controlador, no se recibe antes de la pérdida de energía.

MediaErrors[16]

Indica el número de repeticiones en las que el controlador detectó un error de integridad de datos irrecuperado.

Los errores multimedia, como uncorrectable ECC, el error de suma de comprobación CRC o la falta de coincidencia de etiquetas LBA, se incluyen en este campo.

ErrorInfoLogEntryCount[16]

Indica el número de entradas del registro de información de error durante la vida útil del controlador.

WarningCompositeTemperatureTime

Indica la cantidad de tiempo, en minutos, que el controlador está operativo y la Temperatura compuesta (Temperatura) es mayor o igual que el campo Umbral de temperatura compuesta de advertencia (WCTEMP) y menor que el campo Umbral de temperatura compuesta crítica (CCTEMP) en la estructura de datos Identificar controlador .

Si el valor del campo WCTEMP o CCTEMP es 0h, este campo siempre se borra a 0h independientemente del valor temperature .

CriticalCompositeTemperatureTime

Indica la cantidad de tiempo en minutos que el controlador está operativo y la temperatura compuesta (temperatura) es mayor el campo Umbral de temperatura compuesta crítica (CCTEMP) en la estructura de datos Identificar controlador .

Si el valor del campo CCTEMP es 0h, este campo siempre se borra a 0h independientemente del valor temperature .

TemperatureSensor1

Indica la temperatura actual en grados Kelvin notificado por el sensor de temperatura 1.

TemperatureSensor2

Indica la temperatura actual en grados Kelvin notificado por el sensor de temperatura 2.

TemperatureSensor3

Indica la temperatura actual en grados Kelvin notificado por el sensor de temperatura 3.

TemperatureSensor4

Indica la temperatura actual en grados Kelvin notificado por el sensor de temperatura 4.

TemperatureSensor5

Indica la temperatura actual en grados Kelvin notificado por el sensor de temperatura 5.

TemperatureSensor6

Indica la temperatura actual en grados Kelvin notificado por el sensor de temperatura 6.

TemperatureSensor7

Indica la temperatura actual en grados Kelvin notificado por el sensor de temperatura 7.

TemperatureSensor8

Indica la temperatura actual en grados Kelvin notificado por el sensor de temperatura 8.

Reserved1[296]

Campo reservado.

Comentarios

La temperatura notificada por un sensor de temperatura se puede usar para desencadenar un evento asincrónico. Para obtener más información, consulte NVME_CDW11_FEATURE_TEMPERATURE_THRESHOLD.

Requisitos

Requisito Value
Cliente mínimo compatible Windows 10
Encabezado nvme.h

Consulte también