Comment implémenter SMART Embedded pour SATA & SSD PCIe NVMe ?
Manuel d'utilisation
Cette note d'application fournit des instructions pour utiliser le programme utilitaire SP SMART Embedded à intégrer au programme du client afin d'obtenir des informations SMART pour SP Industrial SATA et PCIe NVMe SSD.
Environnement de soutien
- OS : Windows 10 et Linux
- Programme utilitaire SP SMART Embedded : smartwatch 7.2
- Hôte : Plate-forme Intel x 86
Liste de support pour SP Industrial SSD
- SATA SSD & C rapide (MLC) : SSD700/500/300, MSA500/300, MDC500/300, CFX510/310
- SATA SSD & C Fast (3D TLC) : SSD550/350/3K0, MSA550/350/3K0, MDC550/350, MDB550/350, série MDA550/350/3K0, CFX550/350
- PCIe NVMe : série MEC350, MEC3F0, MEC3K0
Attribut INTELLIGENT
- SATA SSD & C rapide (MLC)
| SM2246FR | SM2246XT | |
| Attribut | SSD700/500/300R/S series MSA500/300S Série MDC500/300 R/S |
CFX510/310 |
| 01 | Taux d'erreurs de lecture Nombre d'erreurs CRC | Taux d'erreurs de lecture Nombre d'erreurs CRC |
| 05 | Les secteurs réaffectés comptent | Les secteurs réaffectés comptent |
| 09 | Heures de mise sous tension | Réservé |
| 0C | Nombre de cycles d'alimentation | Nombre de cycles d'alimentation |
| A0 | Nombre de secteurs non corrigibles lors de la lecture/écriture | Nombre de secteurs non corrigibles lors de la lecture/écriture |
| A1 | Nombre de blocs de secours valides | Nombre de blocs de secours valides |
| A2 | Nombre de blocs de secours valides | |
| A3 | Numéro du bloc invalide initial | Numéro du bloc invalide initial |
| A4 | Nombre total d'effacements | Nombre total d'effacements |
| A5 | Nombre maximal d'effacements | Nombre maximal d'effacements |
| A6 | Nombre minimal d'effacements | Nombre moyen d'effacements |
| A7 | Nombre maximal d'effacements de spécifications | |
| A8 | Reste la vie |
| SM2246FR | SM2246XT | |
| Attribut | SSD700/500/300R/S series MSA500/300S Série MDC500/300 R/S |
CFX510/310 |
| A9 | Reste la vie | |
| AF | Nombre d'échecs de programme dans le pire dé | |
| B0 | Effacer le nombre d'échecs dans le pire dé | |
| B1 | Nombre total de niveaux d'usure | |
| B2 | Nombre de blocs non valides à l'exécution | |
| B5 | Nombre total d'échecs du programme | |
| B6 | Nombre total d'échecs d'effacement | |
| BB | Nombre d'erreurs non corrigibles | |
| C0 | Nombre de rétractions hors tension | Nombre de rétractions hors tension |
| C2 | Température contrôlée | Température contrôlée |
| C3 | Matériel ECC récupéré | Matériel ECC récupéré |
| C4 | Nombre d'événements réaffectés | Nombre d'événements réaffectés |
| C6 | Nombre d'erreurs non corrigibles hors ligne | |
| C7 | Nombre d'erreurs Ultra DMA CRC | Nombre d'erreurs Ultra DMA CRC |
| E1 | Total des LBA écrits | |
| E8 | Espace réservé disponible | |
| F1 | Écrire le nombre de secteurs Nombre total de LBA écrits (chaque unité d'écriture = 32 Mo) |
Total des LBA écrits |
| F2 | Lire le nombre de secteurs Nombre total de LBA lus (chaque unité de lecture = 32 Mo) |
Nombre total de LBA lus |
| SM2258H | SM2258XT | RL5735 | |
| Attribut | Série SSD550/350 R/S Série MSA550/350 S Série MDC550/350 R/S Série MDB550/350 S Série MDA550/350 S Série CFX550/350 S | Série CFX550/350 | SSD3K0E, MSA3K0E, MDA3K0E series |
| 01 | Taux d'erreur de bande de roulement (nombre d'erreurs CRC) | Taux d'erreur de bande de roulement (nombre d'erreurs CRC) | Taux d'erreur de bande de roulement (nombre d'erreurs CRC) |
| 05 | Les secteurs réaffectés comptent | Les secteurs réaffectés comptent | Les secteurs réaffectés comptent |
| 09 | Heures de mise sous tension | Nombre d'heures de mise sous tension | Nombre d'heures de mise sous tension |
| 0C | Nombre de cycles d'alimentation | Nombre de cycles d'alimentation | Nombre de cycles d'alimentation |
| 94 | Nombre total d'effacements (SLC) (modèle pSLC) | ||
| 95 | Nombre maximal d'effacements (SLC) (modèle pSLC) | ||
| 96 | Nombre minimal d'effacements (SLC) (modèle pSLC) | ||
| 97 | Nombre moyen d'effacements (SLC) (modèle pSLC) | ||
| A0 | Nombre de secteurs non corrigibles en ligne (nombre de secteurs non corrigibles lors de la lecture/écriture) | Nombre de secteurs non corrigés en ligne (nombre de secteurs non corrigibles lors de la lecture/écriture) | |
| A1 | Nombre de Pure Spare (Nombre de blocs de rechange valides) | Nombre de blocs de secours valides | Augmenter le nombre de défauts (bloc défectueux ultérieur) |
| A2 | Nombre total d'effacements | ||
| A3 | Numéro du bloc invalide initial | Numéro du bloc invalide initial | Spécification maximale du cycle PE |
| A4 | Nombre total d'effacements (TLC) | Nombre total d'effacements (TLC) | Nombre moyen d'effacements |
| A5 | Nombre maximal d'effacements (TLC) | Nombre maximal d'effacements (TLC) | |
| A6 | Nombre minimal d'effacements (TLC) | Nombre minimal d'effacements (TLC) | Nombre total de blocs défectueux |
| A7 | Nombre moyen d'effacements (TLC) | Nombre moyen d'effacements (TLC) | Mode de protection SSD |
| A8 | Nombre maximum d'effacements dans la spécification (nombre maximal d'effacements de la spécification) | Nombre maximum d'effacements dans la spécification | Nombre d'erreurs SATA Phy |
| A9 | Pourcentage de vie restantetage | Pourcentage de vie restantetage | Pourcentage de vie restantetage |
| AB | Nombre d'échecs du programme | ||
| AC | Effacer le nombre d'échecs | ||
| AE | Nombre de pertes de puissance inattendues | ||
| AF | Nombre d'échecs ECC (échec de lecture de l'hôte) |
| SM2258H | SM2258XT | RL5735 | |
| Attribut | Série SSD550/350 R/S Série MSA550/350 S Série MDC550/350 R/S Série MDB550/350 S Série MDA550/350 S Série CFX550/350 S | Série CFX550/350 | SSD3K0E, MSA3K0E, MDA3K0E series |
| B1 | Nombre total de niveaux d'usure | Nivelage de l'usure | |
| B2 | Nombre de blocs réservés utilisés (nombre de blocs non valides à l'exécution) | Grand nombre de blocs défectueux | |
| B5 | Nombre total d'échecs du programme | Nombre d'échecs de programme | Nombre d'accès non alignés |
| B6 | Nombre total d'échecs d'effacement | Effacer le nombre d'échecs | |
| BB | Nombre d'erreurs non corrigibles | Erreur non corrigible signalée | |
| C0 | Nombre de rétractions hors tension | Compte de puissance soudaine (compte de retrait de mise hors tension) | |
| C2 | Température_Celsius (jonction T) | Température de l'enceinte (jonction en T) | Température de l'enceinte (jonction T) |
| C3 | Matériel ECC récupéré | Matériel ECC récupéré | Ecc corrigé cumulatif |
| C4 | Nombre d'événements réaffectés | Nombre d'événements réaffectés | Nombre d'événements de réallocation |
| C5 | Nombre actuel de secteurs en attente : | Nombre actuel de secteurs en attente | |
| C6 | Nombre d'erreurs non corrigibles hors ligne | Erreurs non corrigibles signalées | |
| C7 | Erreur CRC UDMA (Nombre d'erreurs Ultra DMA CRC) |
Nombre d'erreurs CRC (Nombre d'erreurs Ultra DMA CRC) |
Nombre d'erreurs Ultra DMA CRC |
| CE | Min. nombre d'effacements | ||
| CF | Nombre maximum d'effacements | ||
| E1 | L'hôte écrit (Total des LBA écrits) |
||
| E8 | Espace réservé disponible | Nombre maximum d'effacements dans la spécification | Espace réservé disponible |
| E9 | Nombre total d'écritures sur flash | Bloc de rechange | |
| EA | Lecture totale à partir du flash | ||
| F1 | Écrire le nombre de secteurs (Total Host Writes, chaque unité 32 Mo) |
Hôte 32 Mo/unité écrite (TLC) | Écrire la durée de vie |
| F2 | Lire le nombre de secteurs
(Total Host Read, chaque unité 32 Mo) |
Hôte 32 Mo/unité de lecture (TLC) | Lire la durée de vie |
| F5 | Nombre d'écritures Flash | NAND 32 Mo/unité écrite (TLC) | Nombre de pertes de puissance inattendues |
| F9 | Total de Go écrits sur NAND (TLC) | ||
| FA | Total de Go écrits sur NAND (SLC) |
| # d'octets | Index d'octets | Attributs | Description |
| 1 | 0 | Avertissement critique : Définition des bits 00 : Si défini sur '1', l'espace libre disponible est tombé en dessous du seuil. 01 : Si réglé sur « 1 », une température est supérieure à un seuil de surtempérature ou inférieure à un seuil de sous-température. 02 : Si défini sur « 1 », la fiabilité du sous-système NVM a été dégradée en raison d'erreurs importantes liées au support ou de toute erreur interne qui dégrade la fiabilité du sous-système NVM. 03 : Si défini sur '1', le média a été placé en mode lecture seule. 04 : Si défini sur '1', le périphérique de sauvegarde de la mémoire volatile est en panne. Ce champ n'est valide que si le contrôleur dispose d'une solution de sauvegarde de la mémoire volatile. 07h05 : Réservé |
Ce champ indique des avertissements critiques pour l'état du contrôleur. Chaque bit correspond à un type d'avertissement critique ; plusieurs bits peuvent être définis. Si un bit est remis à '0', cet avertissement critique ne s'applique pas. Les avertissements critiques peuvent entraîner une notification d'événement asynchrone à l'hôte. Les bits de ce champ représentent l'état actuel associé et ne sont pas persistants. Lorsque la réserve disponible tombe en dessous du seuil indiqué dans ce champ, un achèvement d'événement asynchrone peut se produire. La valeur est indiquée en pourcentage normalisétage (0 à 100%). |
| 2 | 2:1 | Température composite : | Contient une valeur correspondant à une température en degrés Kelvin qui représente la température composite actuelle du contrôleur et des espaces de noms associés à ce contrôleur. La manière dont cette valeur est calculée est spécifique à l'implémentation et peut ne pas représenter la température réelle d'un point physique du sous-système NVM. La valeur de ce champ peut être utilisée pour déclencher un événement asynchrone. Les valeurs de seuil de température composite d'avertissement et de surchauffe critique sont signalées par les champs WCTEMP et CCTEMP dans la structure de données Identifier le contrôleur. |
| 1 | 3 | Pièces de rechange disponibles : | Contient un pourcentage normalisétage (0 à 100 %) de la capacité de réserve restante disponible |
| 1 | 4 | Seuil de réserve disponible : | Lorsque la réserve disponible tombe en dessous du seuil indiqué dans ce champ, une fin d'événement asynchrone peut se produire. La valeur est indiquée en pourcentage normalisétage (0 à 100%). |
| 1 | 5 | Pourcentagetage Utilisé : | Contient une estimation spécifique au fournisseur du pourcentagetage de la durée de vie du sous-système NVM utilisé en fonction de l'utilisation réelle et de la prédiction du fabricant de la durée de vie de la NVM. Une valeur de 100 indique que l'endurance estimée de la NVM dans le sous-système NVM a été consommée, mais peut ne pas indiquer une défaillance du sous-système NVM. La valeur est autorisée à dépasser 100. PercentagLes valeurs supérieures à 254 doivent être représentées par 255. Cette valeur doit être mise à jour une fois par heure de mise sous tension (lorsque le contrôleur n'est pas en état de veille). Reportez-vous à la norme JEDEC JESD218A pour les techniques de mesure de la durée de vie et de l'endurance des dispositifs SSD |
| 31:6 | Unités de données écrites : | ||
| 16 | 47:32 | Unités de données lues : | Contient le nombre d'unités de données de 512 octets que l'hôte a lues à partir du contrôleur ; cette valeur n'inclut pas les métadonnées. Cette valeur est rapportée en milliers (c'est-à-dire qu'une valeur de 1 correspond à 1000 unités de 512 octets lus) et est arrondie. Lorsque la taille LBA est une valeur autre que 512 octets, le contrôleur doit convertir la quantité de données lues en unités de 512 octets. Pour le jeu de commandes NVM, les blocs logiques lus dans le cadre des opérations de comparaison et de lecture doivent être inclus dans cette valeur. |
| # d'octets | Index d'octets | Attributs | Description |
| 16 | 63:48 | Unités de données écrites : | Contient le nombre d'unités de données de 512 octets que l'hôte a écrites dans le contrôleur ; cette valeur n'inclut pas les métadonnées. Cette valeur est rapportée en milliers (c'est-à-dire qu'une valeur de 1 correspond à 1000 unités de 512 octets écrits) et est arrondie. Lorsque la taille LBA est une valeur autre que 512 octets, le contrôleur doit convertir la quantité de données écrites en unités de 512 octets. Pour le jeu de commandes NVM, les blocs logiques écrits dans le cadre des opérations d'écriture doivent être inclus dans cette valeur. Les commandes d'écriture non corrigibles n'ont pas d'impact sur cette valeur. |
| 16 | 79:64 | Commandes de lecture de l'hôte : | Contient le nombre de commandes de lecture exécutées par le contrôleur. Pour le jeu de commandes NVM, il s'agit du nombre de commandes de comparaison et de lecture. |
| 16 | 95:80 | Commandes d'écriture de l'hôte : | Contient le nombre de commandes d'écriture exécutées par le contrôleur. Pour le jeu de commandes NVM, il s'agit du nombre de commandes d'écriture. |
| 16 | 111:96 | Temps d'occupation du contrôleur : | Contient le temps pendant lequel l'automate est occupé avec des commandes d'E/S. Le contrôleur est occupé lorsqu'il y a une commande en attente dans une file d'attente d'E/S (en particulier, une commande a été émise via une écriture de sonnette de queue de file d'attente de soumission d'E/S et l'entrée de file d'attente d'achèvement correspondante n'a pas encore été publiée sur l'E/S associée File d'attente d'achèvement). Cette valeur est rapportée en minutes. |
| 16 | 127:112 | Cycles d'alimentation : contient le nombre de cycles d'alimentation. | |
| 16 | 143:128 | Heures de mise sous tension : | Contient le nombre d'heures de fonctionnement. Les heures de mise sous tension sont toujours enregistrées, même en mode basse consommation. |
| 16 | 159:144 | Arrêts non sécurisés : | Contient le nombre d'arrêts dangereux. Ce décompte est incrémenté lorsqu'une notification d'arrêt (CC.SHN) n'est pas reçue avant la perte d'alimentation. |
| 16 | 175:160 | Erreurs d'intégrité des médias et des données : | Contient le nombre d'occurrences où le contrôleur a détecté une erreur d'intégrité des données non récupérée. Erreurs telles que ECC non corrigible, échec de la somme de contrôle CRC ou LBA tag non-concordance sont inclus dans ce champ. |
| 16 | 191:176 | Nombre d'entrées du journal des informations d'erreur : | Contient le nombre d'entrées du journal des informations d'erreur pendant la durée de vie du contrôleur. |
| 4 | 195:192 | Temps de température composite d'avertissement : | Contient la durée en minutes pendant laquelle le contrôleur est opérationnel et la température composite est supérieure ou égale au champ Seuil de température composite d'avertissement (WCTEMP) et inférieure au champ Seuil de température composite critique (CCTEMP) dans la structure de données Identifier le contrôleur. Si la valeur du champ WCTEMP ou CCTEMP est 0h, ce champ est toujours remis à 0h, quelle que soit la valeur de température composite. |
| 4 | 199:196 | Temps de température composite critique : | Contient la durée en minutes pendant laquelle le contrôleur est opérationnel et la température composite est supérieure au champ Seuil de température composite critique (CCTEMP) dans la structure de données Identifier le contrôleur. Si la valeur du champ CCTEMP est 0h, ce champ est toujours remis à 0h, quelle que soit la valeur de température composite. |
| 2 | 201:200 | Réservé | |
| 2 | 203:202 | Réservé | |
| 2 | 205:204 | Réservé | |
| 2 | 207:206 | Réservé | |
| 2 | 209:208 | Réservé | |
| 2 | 211:210 | Réservé | |
| 2 | 213:212 | Réservé | |
| 2 | 215:214 | Réservé | |
| 296 | 511:216 | Réservé |
Installation
- Veuillez télécharger la dernière version du programme utilitaire SMART Embedded. (Lien de téléchargement sur demande)
- Décompressez (dans ce cas, décompressez dans le dossier E:\smartmontools-7.2.win32)
- Exécuter l'invite de commande
- Exécuter en tant qu'administrateur
- C:\WINDOWS\system32> E:\smartmontools-7.2.win32\bin\smartctl.exe -h
- Pour obtenir un résumé de l'utilisation
Outil en ligne de commande pour obtenir des informations SMART (sdb : disque sur PhysicalDrive 1)
- C:\WINDOWS\system32> E:\smartmontools-7.2.win32\bin\smartct.exe -a /dev/sdb
- Vérifiez la pièce jointe file SMART.TXT : https://www.silicon-power.com/support/lang/utf8/smart.txt
Sortie des informations SMART au format JSON. (sdb : disque sur PhysicalDrive 1)
- C:\WINDOWS\system32> E:\smartmontools-7.2.win32\bin\smartctl.exe -a -j /dev/sdb
- Vérifiez la pièce jointe file JSON.TXT : https://www.silicon-power.com/support/lang/utf8/json.txt
Cas d'utilisation 1 : Surveillance à distance du tableau de bord SMART via IBM Node-Red
- Installez IBM Node Red, Node Red est un outil de programmation basé sur les flux développé par IBM. Nous utilisons Node Red pour intégrer le programme utilitaire SP SMART Embedded afin de développer un outil de surveillance à distance « SP SMART Dashboard ».
- Développer un script pour Node Red et utiliser « smartctl.exe »
- Scénario file comme le SMARTDASHBOARD.TXT ci-joint : https://www.silicon-power.com/support/lang/utf8/SMARTDASHBOARD.txt
- Ouvrez le navigateur, saisissez "ip:1880/ui"
- ip est l'adresse IP de la machine qui exécute le script Node Red. La valeur par défaut de la machine locale est 127.0.0.1
Figure 1 Tableau de bord SMART
![]()
* Cas d'utilisation 2 : Intégration avec Google Cloud Platform pour gérer les informations SMART des appareils connectés sur le terrain
SP Industrial s'appuie sur Google Cloud Platform et SP SMART Embedded pour développer une plateforme de services SMART IoT Sphere. SP SMART IoT Sphere est un service basé sur le cloud avec des notifications d'alarme et de maintenance qui surveille et analyse la santé et l'état des SSD industriels SP et des cartes Flash à l'intérieur des appareils connectés exécutant le système d'exploitation Windows ou le système d'exploitation intégré Linux Ubuntu.
Figure 2 Architecture de SMART IoT Sphère
![]()
Figure 3 Gestion de plusieurs appareils
![]()
Figure 4 SP SMART Embedded prend en charge les systèmes d'exploitation Windows 10 et Linux
![]()
Figure 5 Affichage des informations SMART en temps réel
![]()
Toutes les marques, marques et noms sont la propriété de leurs propriétaires respectifs.
©2022 SILICON POWER Computer & Communications, Inc., Tous droits réservés.
Documents / Ressources
![]() |
Silicon Power Comment implémenter SMART Embedded pour SATA & PCIe NVMe SSD ? [pdf] Manuel de l'utilisateur SM2246EN, SM2246XT, Comment implémenter SMART Embedded pour SSD SATA PCIe NVMe |




