Gestion de l'usure Flash

La mémoire de stockage interne d'Android Automotive utilise une mémoire flash avec des milliers de cycles d'effacement et d'écriture. En cas de défaillance de la mémoire flash, le système peut devenir inutilisable. Étant donné que les véhicules ont de longues durées de vie (généralement plus de 10 ans), la mémoire flash doit être extrêmement fiable. Cette page décrit le comportement de la mémoire flash et explique comment les OEM peuvent limiter le risque de défaillance des périphériques à mémoire flash.

Performances de la mémoire Flash

Les périphériques de mémoire Flash utilisent des techniques de nivellement de l'usure pour contourner les limites d'effacement et d'écriture en organisant les données et en répartissant les écritures uniformément sur le système afin qu'aucun bloc n'échoue en raison d'écritures intensives. La durée de vie estimée de la mémoire flash dépend des éléments suivants:

  • Nombre d'écritures
  • Écrire des modèles
  • Taille disponible de la mémoire Flash. Plus la taille de l'espace de stockage est importante, plus l'algorithme de mise à niveau de l'usure peut répartir les écritures sur un plus grand nombre de blocs.
  • Techniques de mise à niveau de Wear
  • Facteurs environnementaux : Par exemple, il peut s'agir d'une plage de températures de fonctionnement comprise entre -20 et 85 °C. Des températures situées en dehors de cette plage peuvent réduire davantage la durée de vie de la mémoire flash.

La durée de vie de la mémoire Flash peut être calculée à l'aide de la formule suivante:

$$ \frac{Max\ erase\ cycles * Storage\ capacity}{Data\ written\ per\ year} = {Flash\ memory\ lifespan\ in\ years} $$

Cependant, le système cessera de fonctionner correctement bien avant l'épuisement complet de la mémoire flash, car la taille de stockage utilisable diminue. Le fichier eMMC peut avoir une durée de vie encore plus courte en fonction des techniques de mise à niveau et des modèles d'écriture utilisés. En outre, cette estimation ne tient pas compte des effets des applications malveillantes ou défectueuses qui pourraient perturber les systèmes de l'automobile en écrivant de grands blocs de données indésirables dans la mémoire flash sans autorisations spéciales.

Pour détecter une éventuelle défaillance de la mémoire flash avant qu'elle ne se produise, une surveillance appropriée de l'état du stockage doit être intégrée à la surveillance globale de l'état du système.

Implémenter la mémoire flash

Android Automotive est compatible avec des fonctionnalités qui permettent aux OEM de protéger et de surveiller la mémoire de stockage interne de leurs systèmes afin de prolonger leur durée de vie.

Réduire l'usure du flash

Les OEM préoccupés par l'usure du flash sur la mémoire de stockage interne peuvent également ajouter une carte SD suffisamment rapidement pour être utilisée comme espace de stockage adopté. La carte SD doit avoir les propriétés suivantes:

  • Une fois adoptée, la carte SD est chiffrée et peut stocker les données des applications en toute sécurité.
  • L'emplacement de la carte SD doit être placé dans un endroit sûr (les utilisateurs ne sont pas censés retirer la carte SD fréquemment).
  • La carte SD ne peut pas être utilisée pour transférer des données entre des systèmes automobiles et un ordinateur.
  • L'éjection de la carte SD n'a aucune incidence sur le système en cours d'exécution. Cependant, elle ne doit être retirée que si elle doit être remplacée.

Applications sur cartes SD

Pour mieux protéger la mémoire de stockage interne du système Android Automotive, les OEM peuvent spécifier si des applications tierces peuvent être installées sur la mémoire de stockage interne afin que les applications ne puissent écrire que sur la partition sur laquelle elles sont installées. Pour procéder à la configuration, définissez la configuration suivante dans la superposition de ressources:

<bool name="config_allow3rdPartyAppOnInternal">false</bool>

Pour s'assurer que les applications tierces (créées par des développeurs d'applications pour voitures) peuvent être installées sur des cartes SD si la voiture l'exige, les développeurs d'applications pour voitures doivent inclure android:installLocation=["auto" | "preferExternal"] dans le fichier manifeste de l'application.

Si la voiture n'autorise pas l'installation d'applications tierces sur la mémoire de stockage interne, l'installation de l'application échoue sans cet indicateur (ou si le paramètre installLocation=internalOnly est configuré).

Obtenir des métriques de disque

AAOS 13 a introduit la surveillance de la surutilisation de la mémoire Flash et la collecte de métriques dans le cadre de Car Watchdog. Pour en savoir plus, consultez Surveiller l'utilisation de la mémoire flash.

Android 8 a introduit storaged, un service système qui échantillonne et publie des métriques de disque et de mémoire flash, telles que des informations sur l'utilisation globale du disque, l'estimation de la durée de vie de la mémoire Flash et les statistiques d'E/S du disque d'application. Les OEM peuvent utiliser ces informations pour avertir les utilisateurs lorsque la mémoire de stockage interne commence à tomber en panne ou lorsque des applications spécifiques effectuent trop d'E/S sur le disque. Pour en savoir plus, consultez la section Implémenter storaged.