struttura NVME_HEALTH_INFO_LOG (nvme.h)
Contiene campi che specificano le informazioni contenute nella pagina SMART/Health Information Log .
La pagina SMART/Health Information Log (Registro informazioni smart/integrità) fornisce informazioni di integrità intelligenti e generali sulla durata del controller che viene mantenuto tra i cicli di alimentazione. La pagina del log è supportata su base globale. Per richiedere la pagina del log globale, specificare lo spazio dei nomi FFFFFFFFh
.
La pagina SMART/Health Information Log può essere supportata anche per ogni spazio dei nomi, come indicato nella struttura dei dati del controller di identificazione . Se la pagina del log non è supportata per ogni spazio dei nomi, specificando qualsiasi spazio dei nomi diverso FFFFFFFFh
da deve interrompere il comando con lo stato NVME_STATUS_INVALID_FIELD_IN_COMMAND. In NVMe versione 1.3 non sono presenti informazioni specifiche dello spazio dei nomi definite nella pagina log SMART/Health, pertanto la pagina del log globale e gli spazi dei nomi specifici contengono informazioni identiche.
Gli avvisi critici relativi all'integrità del sottosistema NVM vengono indicati tramite una notifica di evento asincrona all'host. Gli avvisi che generano una notifica degli eventi asincroni all'host vengono configurati usando il comando Imposta funzionalità.
Le prestazioni possono essere calcolate usando i parametri restituiti come parte del log delle informazioni smart/integrità. In particolare, il numero di comandi lettura o scrittura, la quantità di dati letti o scritti e la quantità di tempo occupato del controller consente di calcolare sia I/O al secondo che la larghezza di banda.
La struttura NVME_HEALTH_INFO_LOG viene restituita dal comando Get Log Page .The NVME_HEALTH_INFO_LOG structure is returned by the Get Log Page command. Per altre informazioni, vedere NVME_CDW10_GET_LOG_PAGE.
Sintassi
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;
Members
CriticalWarning
Struttura di avviso critico (CriticalWarning) contenente campi che indicano avvisi critici per lo stato del controller.
Ogni campo della struttura CriticalWarning è un bit che corrisponde a un tipo di avviso critico; è possibile impostare più bit. Se un bit viene cancellato in 0
, l'avviso critico non viene applicato. I bit in questo campo rappresentano lo stato associato corrente e non sono persistenti.
Gli avvisi critici possono comportare una notifica degli eventi asincrona all'host.
CriticalWarning.DUMMYSTRUCTNAME
CriticalWarning.DUMMYSTRUCTNAME.AvailableSpaceLow
Indica se lo spazio di riserva disponibile è sceso al di sotto della soglia.
Quando questo valore è impostato su 1
, lo spazio di riserva disponibile è sceso al di sotto della soglia.
CriticalWarning.DUMMYSTRUCTNAME.TemperatureThreshold
Indica se una temperatura è superiore a una soglia di temperatura superiore o inferiore a una soglia di temperatura inferiore.
Quando questo valore è impostato su , una temperatura è superiore a 1
una soglia di temperatura superiore o inferiore a una soglia di temperatura inferiore. Per altre informazioni sulle soglie di temperatura, vedere NVME_CDW11_FEATURE_TEMPERATURE_THRESHOLD.
CriticalWarning.DUMMYSTRUCTNAME.ReliabilityDegraded
Indica se l'affidabilità del sottosistema NVM è stata danneggiata.
Quando questo valore è impostato su 1
, l'affidabilità del sottosistema NVM è stata ridotta a causa di errori significativi correlati ai supporti o di qualsiasi errore interno che degrada l'affidabilità del sottosistema NVM.
CriticalWarning.DUMMYSTRUCTNAME.ReadOnly
Indica se il supporto è stato inserito in modalità di sola lettura.
Quando questo valore è impostato su 1
, il supporto è stato posizionato in modalità di sola lettura.
CriticalWarning.DUMMYSTRUCTNAME.VolatileMemoryBackupDeviceFailed
Indica se il dispositivo di backup della memoria volatile non è riuscito.
Quando questo valore è impostato su 1
, il dispositivo di backup della memoria volatile non è riuscito. Questo campo è valido solo se il controller ha una soluzione di backup della memoria volatile.
CriticalWarning.DUMMYSTRUCTNAME.Reserved
I bit 05:07 della struttura CriticalWarning sono riservati.
CriticalWarning.AsUchar
Temperature[2]
Indica la temperatura composita, in gradi Kelvin, del dispositivo complessivo, incluso il controller e il sottosistema NVM.
Se la temperatura in questo campo supera la soglia di temperatura, può verificarsi un completamento dell'evento asincrono. Per altre informazioni, vedere NVME_CDW11_FEATURE_TEMPERATURE_THRESHOLD.
I valori soglia di temperatura compositi di avviso e surriscaldamento critico vengono segnalati dai campi WCTEMP e CCTEMP nella struttura dei dati del controller di identificazione .
AvailableSpare
Indica una percentuale normalizzata (da 0 a 100) della capacità di riserva rimanente disponibile.
AvailableSpareThreshold
Indica la soglia della capacità di riserva disponibile.
Quando il valore di AvailableSpare scende al di sotto della soglia indicata in questo campo, può verificarsi un completamento dell'evento asincrono. Il valore è indicato come percentuale normalizzata (da 0 a 100).
PercentageUsed
Indica una stima specifica del fornitore della percentuale di durata del sottosistema NVM usata, in base all'utilizzo effettivo e alla stima del ciclo di vita nvm del produttore.
Il valore 100 indica che è stata utilizzata la resistenza stimata del nvm nel sottosistema NVM, ma potrebbe non indicare un errore del sottosistema NVM. Il valore può superare 100. Le percentuali maggiori di 254 sono rappresentate come 255. Questo valore viene aggiornato una volta per ogni ora di alimentazione (quando il controller non è in stato di sospensione).
Reserved0[26]
Un campo riservato.
DataUnitRead[16]
Indica il numero di 512 unità dati di byte che l'host ha letto dal controller, senza includere i metadati.
Il valore di questo campo viene segnalato in migliaia e viene arrotondato per errotondamento. Ad esempio, un valore pari a 1 corrisponde a 1000 unità di 512 byte letti. Quando la dimensione LBA (Logical Block Access) è un valore diverso da 512 byte, il controller converte la quantità di dati letti in 512 unità di byte.
Per il set di comandi NVM, i blocchi logici letti come parte delle operazioni Di confronto e lettura sono inclusi in questo valore.
DataUnitWritten[16]
Indica il numero di 512 unità dati di byte che l'host ha scritto nel controller, senza includere i metadati.
Il valore di questo campo viene segnalato in migliaia e viene arrotondato per errotondamento. Ad esempio, un valore pari a 1 corrisponde a 1000 unità di 512 byte letti. Quando la dimensione LBA (Logical Block Access) è un valore diverso da 512 byte, il controller converte la quantità di dati scritti in 512 unità di byte.
Per il set di comandi NVM, i blocchi logici scritti come parte delle operazioni di scrittura sono inclusi in questo valore. La scrittura di comandi non correggibili non influisce su questo valore.
HostReadCommands[16]
Indica il numero di comandi Di lettura completati dal controller.
Per il set di comandi NVM, si tratta del numero di comandi Compare e Read.
HostWrittenCommands[16]
Indica il numero di comandi di scrittura completati dal controller.
Per il set di comandi NVM, si tratta del numero di comandi di scrittura.
ControllerBusyTime[16]
Indica la quantità di tempo, in minuti, che il controller è occupato con i comandi di I/O.
Il controller è occupato quando è presente un comando in attesa di una coda di I/O. In particolare, quando un comando è stato eseguito tramite una scrittura porta coda coda di invio di I/O e la voce della coda di completamento corrispondente non è stata ancora registrata nella coda di completamento I/O associata.
PowerCycle[16]
Indica il numero di cicli di alimentazione.
PowerOnHours[16]
Indica il numero di ore di alimentazione. Questo non include l'ora in cui il controller è stato alimentato e in una condizione di stato a basso consumo.
UnsafeShutdowns[16]
Indica il numero di arresti non sicuri. Questo conteggio viene incrementato quando una notifica di arresto, indicata nel file SHN di Configurazione controller, non viene ricevuta prima della perdita di alimentazione.
MediaErrors[16]
Indica il numero di occorrenze in cui il controller ha rilevato un errore di integrità dei dati non ripristinato.
In questo campo sono inclusi errori multimediali, ad esempio ECC non correzione, errore di checksum CRC o mancata corrispondenza dei tag LBA.
ErrorInfoLogEntryCount[16]
Indica il numero di voci del log delle informazioni sugli errori nel ciclo di vita del controller.
WarningCompositeTemperatureTime
Indica la quantità di tempo, espressa in minuti, che il controller è operativo e che la temperatura composita (temperatura) è maggiore o uguale al campo Soglia temperatura composita di avviso (WCTEMP) e minore del campo Soglia temperatura composita critica (CCTEMP) nella struttura dei dati del controller di identificazione .
Se il valore del campo WCTEMP o CCTEMP è 0h
, questo campo viene sempre cancellato indipendentemente 0h
dal valore Temperature .
CriticalCompositeTemperatureTime
Indica la quantità di tempo in minuti in cui il controller è operativo e la temperatura composita (temperatura) è maggiore del campo Soglia temperatura composita critica (CCTEMP) nella struttura dei dati del controller di identificazione .
Se il valore del campo CCTEMP è 0h
, questo campo viene sempre cancellato indipendentemente 0h
dal valore Temperature .
TemperatureSensor1
Indica la temperatura corrente in gradi Kelvin segnalata dal sensore di temperatura 1.
TemperatureSensor2
Indica la temperatura corrente in gradi Kelvin segnalata dal sensore di temperatura 2.
TemperatureSensor3
Indica la temperatura corrente in gradi Kelvin segnalata dal sensore di temperatura 3.
TemperatureSensor4
Indica la temperatura corrente in gradi Kelvin segnalata dal sensore di temperatura 4.
TemperatureSensor5
Indica la temperatura corrente in gradi Kelvin segnalata dal sensore di temperatura 5.
TemperatureSensor6
Indica la temperatura corrente in gradi Kelvin segnalata dal sensore di temperatura 6.
TemperatureSensor7
Indica la temperatura corrente in gradi Kelvin segnalata dal sensore di temperatura 7.
TemperatureSensor8
Indica la temperatura corrente in gradi Kelvin segnalata dal sensore di temperatura 8.
Reserved1[296]
Un campo riservato.
Commenti
La temperatura segnalata da un sensore di temperatura può essere usata per attivare un evento asincrono. Per altre informazioni, vedere NVME_CDW11_FEATURE_TEMPERATURE_THRESHOLD.
Requisiti
Requisito | Valore |
---|---|
Client minimo supportato | Windows 10 |
Intestazione | nvme.h |