Salut à tous,
J'ai entendu dire que la puce flash de la calculatrice (TI-83 Premium CE Edition Python ah ces noms à rallonge ) n'était prévue que pour supporter 10 000 cycles d'effacement. Je ne comprends pas vraiment la signification. Est-ce que ça veut dire qu'au bout d'un moment je ne pourrais plus archiver/désarchiver mes programmes ? Est-ce que quelqu'un peut m'éclairer là-dessus ?
Puce flash 10 000 cycles d'effacement
Voir le premier message non lu • 8 messages
• Page 1 sur 1
Puce flash 10 000 cycles d'effacement
Tous mes programmes sont disponibles ici
↳ Testez mon simulateur Android sur Ti-83 Premium CE et / ou Édition PythonJetez un coup d'oeil à mon langage de programmation interprété Neon.
-
BobbProgrammeur
Niveau 10: GR (Guide de Référence)- Messages: 300
- Inscription: 19 Avr 2020, 12:37
- Localisation: Morbihan
- Genre:
- Calculatrice(s):→ MyCalcs profile
- Classe: CPGE MPI
Re: Puce flash 10 000 cycles d'effacement
En effet, l'écriture de la mémoire Flash utilise un processus de piégeage de charges qui stresse, et à la longue, endommage la micro-structure des matériaux. Tu trouveras des explications plus détaillées sur ceci, et sur les différents types de mémoire Flash (NAND vs. NOR, en particulier) sur Internet
Les mémoires Flash utilisent des secteur de taille régulière ou irrégulière, souvent entre 4 et 64 KB. Après l'effacement d'un secteur, qui est une opération assez longue, toute la mémoire de ce secteur contient des bits à 1. Un bit donné de mémoire Flash ne peut être passé à 0 qu'une seule fois avant réécriture. Ce sont ces cycles écriture / effacement qui stressent les matériaux; à la longue, une des deux opérations peut échouer sur un bit donné, produisant un collage partiel. A ce moment-là, certaines portions de la mémoire ne sont plus fiables pour le stockage et la rétention des données à long terme.
En théorie, oui, un jour, tu es susceptible de ne plus pouvoir archiver/désarchiver les données dans certaines pages. En pratique... si les TI-eZ80 utilisent de la mémoire Flash donnée pour 10K cycles, ça veut quand même dire que tu peux déclencher, en théorie, 3 garbage collects par jour pendant ~3333j, soit environ 9 ans. En réalité, ce sera probablement moins, sauf s'il y a une techno de wear leveling dans le chip de Flash, parce que le(s) secteur(s) temporaires utilisés pour la réalisation du garbage collect est/sont davantage sollicité(s). Mais bon - le point général à retenir est qu'il faut faire exprès pour endommager la mémoire Flash de sa calculatrice, ça ne se produit pas en utilisation normale.
Avant, beaucoup de mémoires Flash étaient données pour 100K cycles, et on ne précisait pas le nombre de couches puisque personne ne s'était encore amusé à réaliser et vendre des cellules multi-couches. Maintenant, 10K est hélas courant même pour des mémoires SLC; les vilaines MLC, TLC et a fortiori QLC, utilisées pour les Flash NAND de haute capacité qu'on trouve dans les SSD des ordinateurs / smartphones / tablettes / etc., ont des endurances de quelques milliers à quelques centaines (!) de cycles - même pour les modèles soi-disant professionnels - et disposent de technologies de wear leveling (en français, ça doit se traduire par un truc du genre répartition/étalement/nivellement de l'usure) avancées pour limiter les effets de la faible fiabilité de ce type de stockage. Plus il y a de couches, pires sont la fiabilité, et d'ailleurs la vitesse. Même le moindre mal que représente la MLC NAND est de plus en plus difficile à trouver pour des périphériques de stockage de grande taille, alors la SLC (et pas seulement un cache de SLC devant de la MLC/TLC/QLC, comme on le trouve souvent, y compris dans les nombreuses annonces mal renseignées)...
Par rapport aux disques rotatifs (HDD), les mémoires Flash sont plus rapides à la lecture, en particulier car il n'y a pas de déplacement de la tête qui prend beaucoup de temps, et plus résistantes aux chocs; en revanche, la fiabilité en nombre de cycles est catastrophique...
Certes, la fiabilité des HDDs récents de très haute capacité n'est probablement plus bonne non plus: on a vu apparaître les mêmes ratings en TBW / DWPD sur les HDDs SMR récents comme sur les SSDs Flash... je ne sais pas si c'est parce que les fabricants veulent faire payer plus cher les disques qui ont des nombres TBW / DWPD plus élevés, ou si c'est que les disques sont réellement devenus moins fiables. Probablement un peu des deux...
Les mémoires Flash utilisent des secteur de taille régulière ou irrégulière, souvent entre 4 et 64 KB. Après l'effacement d'un secteur, qui est une opération assez longue, toute la mémoire de ce secteur contient des bits à 1. Un bit donné de mémoire Flash ne peut être passé à 0 qu'une seule fois avant réécriture. Ce sont ces cycles écriture / effacement qui stressent les matériaux; à la longue, une des deux opérations peut échouer sur un bit donné, produisant un collage partiel. A ce moment-là, certaines portions de la mémoire ne sont plus fiables pour le stockage et la rétention des données à long terme.
En théorie, oui, un jour, tu es susceptible de ne plus pouvoir archiver/désarchiver les données dans certaines pages. En pratique... si les TI-eZ80 utilisent de la mémoire Flash donnée pour 10K cycles, ça veut quand même dire que tu peux déclencher, en théorie, 3 garbage collects par jour pendant ~3333j, soit environ 9 ans. En réalité, ce sera probablement moins, sauf s'il y a une techno de wear leveling dans le chip de Flash, parce que le(s) secteur(s) temporaires utilisés pour la réalisation du garbage collect est/sont davantage sollicité(s). Mais bon - le point général à retenir est qu'il faut faire exprès pour endommager la mémoire Flash de sa calculatrice, ça ne se produit pas en utilisation normale.
Avant, beaucoup de mémoires Flash étaient données pour 100K cycles, et on ne précisait pas le nombre de couches puisque personne ne s'était encore amusé à réaliser et vendre des cellules multi-couches. Maintenant, 10K est hélas courant même pour des mémoires SLC; les vilaines MLC, TLC et a fortiori QLC, utilisées pour les Flash NAND de haute capacité qu'on trouve dans les SSD des ordinateurs / smartphones / tablettes / etc., ont des endurances de quelques milliers à quelques centaines (!) de cycles - même pour les modèles soi-disant professionnels - et disposent de technologies de wear leveling (en français, ça doit se traduire par un truc du genre répartition/étalement/nivellement de l'usure) avancées pour limiter les effets de la faible fiabilité de ce type de stockage. Plus il y a de couches, pires sont la fiabilité, et d'ailleurs la vitesse. Même le moindre mal que représente la MLC NAND est de plus en plus difficile à trouver pour des périphériques de stockage de grande taille, alors la SLC (et pas seulement un cache de SLC devant de la MLC/TLC/QLC, comme on le trouve souvent, y compris dans les nombreuses annonces mal renseignées)...
Par rapport aux disques rotatifs (HDD), les mémoires Flash sont plus rapides à la lecture, en particulier car il n'y a pas de déplacement de la tête qui prend beaucoup de temps, et plus résistantes aux chocs; en revanche, la fiabilité en nombre de cycles est catastrophique...
Certes, la fiabilité des HDDs récents de très haute capacité n'est probablement plus bonne non plus: on a vu apparaître les mêmes ratings en TBW / DWPD sur les HDDs SMR récents comme sur les SSDs Flash... je ne sais pas si c'est parce que les fabricants veulent faire payer plus cher les disques qui ont des nombres TBW / DWPD plus élevés, ou si c'est que les disques sont réellement devenus moins fiables. Probablement un peu des deux...
Membre de la TI-Chess Team.
Co-mainteneur de GCC4TI (documentation en ligne de GCC4TI), TIEmu et TILP.
Co-mainteneur de GCC4TI (documentation en ligne de GCC4TI), TIEmu et TILP.
-
Lionel DebrouxSuper Modo
Niveau 14: CI (Calculateur de l'Infini)- Messages: 6859
- Inscription: 23 Déc 2009, 00:00
- Localisation: France
- Genre:
- Calculatrice(s):→ MyCalcs profile
- Classe: -
- GitHub: debrouxl
Re: Puce flash 10 000 cycles d'effacement
Merci pour toutes ces précisions, ça faisait longtemps que je me posais la question !
J'en profite pour te demander qu'est-ce qu'est un garbage collect et à quoi ça sert ?
J'en profite pour te demander qu'est-ce qu'est un garbage collect et à quoi ça sert ?
Tous mes programmes sont disponibles ici
↳ Testez mon simulateur Android sur Ti-83 Premium CE et / ou Édition PythonJetez un coup d'oeil à mon langage de programmation interprété Neon.
-
BobbProgrammeur
Niveau 10: GR (Guide de Référence)- Messages: 300
- Inscription: 19 Avr 2020, 12:37
- Localisation: Morbihan
- Genre:
- Calculatrice(s):→ MyCalcs profile
- Classe: CPGE MPI
-
Hamza.SAdmin
Niveau 17: GM (Grand Maître des calculatrices)- Messages: 4463
- Images: 18
- Inscription: 07 Nov 2014, 00:43
- Genre:
- Calculatrice(s):→ MyCalcs profile
Re: Puce flash 10 000 cycles d'effacement
Le garbage collect est déclenché quand il n'y a plus assez d'espace disponible pour l'écriture, c'est à dire plus assez de plages où il n'y a que des 1 qu'on puisse basculer vers 0 pour stocker des données ou méta-données.
Il faut alors récupérer de la place en effaçant les données obsolètes: anciennes versions des variables archivées puis désarchivées, etc. L'information d'obsolescence est indiquée dans le système de fichiers en Flash, ça peut être l'effacement d'un ou quelques bits: c'est comme ça que ça fonctionne sur TI-68k/AMS.
Il faut bien stocker quelque part le nom de fichier et l'état de bloc pour permettre la récupération des données lors d'un reboot de la calculatrice; sur TI-68k/AMS, dans les premières versions de l'OS, TI n'avait pas implémenté la restauration de l'archive au reboot. Sur TI-68k, et probablement sur TI-eZ80, les méta-données sont stockées à côté des données, c'est à dire qu'il n'y a pas de secteur dédié aux méta-données; c'est pour ça que la taille maximale d'un fichier est légèrement inférieure à 64 KB.
Une version simplifiée de ce nettoyage de la mémoire Flash peut être décrite ainsi:
* (soit en début de garbage collect, soit en fin) effacement du secteur dédié au garbage collect;
* pour chaque secteur de la mémoire archive: copie des données vers le secteur de garbage collect, effacement du secteur source, réécriture des données probablement fichier par fichier (et pas forcément dans le même ordre) en éliminant les fichiers qui ne servent plus à rien. Mise à jour des informations du système de fichiers en même temps.
En réalité, c'est certainement un algorithme plus complexe et plus efficace qui est utilisé. Pour commencer, l'ordre des secteurs n'est pas choisi au hasard; ensuite, il est en général intéressant de stocker les gros fichiers en premier. Et il doit y avoir quelques autres heuristiques assez simples et évidentes. Enfin bref, des algorithmes classiques plus ou moins avancés de garbage collection sous contraintes multiples, peaufinés au cours de l'histoire de l'informatique, je ne les connais pas en détail.
Le placement optimal est un problème NP-complet, si je me souviens bien, donc on ne cherche pas à le réaliser pour au moins deux raisons: non seulement c'est beaucoup trop coûteux à calculer dès qu'il y a plus de quelques blocs, surtout quand on n'a pas un puissant processeur et beaucoup de mémoire, mais de plus, le placement optimal tendrait en général à produire plus d'effacements de secteurs et donc endommager plus vite la mémoire, ce qui n'est pas bon.
Il faut alors récupérer de la place en effaçant les données obsolètes: anciennes versions des variables archivées puis désarchivées, etc. L'information d'obsolescence est indiquée dans le système de fichiers en Flash, ça peut être l'effacement d'un ou quelques bits: c'est comme ça que ça fonctionne sur TI-68k/AMS.
Il faut bien stocker quelque part le nom de fichier et l'état de bloc pour permettre la récupération des données lors d'un reboot de la calculatrice; sur TI-68k/AMS, dans les premières versions de l'OS, TI n'avait pas implémenté la restauration de l'archive au reboot. Sur TI-68k, et probablement sur TI-eZ80, les méta-données sont stockées à côté des données, c'est à dire qu'il n'y a pas de secteur dédié aux méta-données; c'est pour ça que la taille maximale d'un fichier est légèrement inférieure à 64 KB.
Une version simplifiée de ce nettoyage de la mémoire Flash peut être décrite ainsi:
* (soit en début de garbage collect, soit en fin) effacement du secteur dédié au garbage collect;
* pour chaque secteur de la mémoire archive: copie des données vers le secteur de garbage collect, effacement du secteur source, réécriture des données probablement fichier par fichier (et pas forcément dans le même ordre) en éliminant les fichiers qui ne servent plus à rien. Mise à jour des informations du système de fichiers en même temps.
En réalité, c'est certainement un algorithme plus complexe et plus efficace qui est utilisé. Pour commencer, l'ordre des secteurs n'est pas choisi au hasard; ensuite, il est en général intéressant de stocker les gros fichiers en premier. Et il doit y avoir quelques autres heuristiques assez simples et évidentes. Enfin bref, des algorithmes classiques plus ou moins avancés de garbage collection sous contraintes multiples, peaufinés au cours de l'histoire de l'informatique, je ne les connais pas en détail.
Le placement optimal est un problème NP-complet, si je me souviens bien, donc on ne cherche pas à le réaliser pour au moins deux raisons: non seulement c'est beaucoup trop coûteux à calculer dès qu'il y a plus de quelques blocs, surtout quand on n'a pas un puissant processeur et beaucoup de mémoire, mais de plus, le placement optimal tendrait en général à produire plus d'effacements de secteurs et donc endommager plus vite la mémoire, ce qui n'est pas bon.
Membre de la TI-Chess Team.
Co-mainteneur de GCC4TI (documentation en ligne de GCC4TI), TIEmu et TILP.
Co-mainteneur de GCC4TI (documentation en ligne de GCC4TI), TIEmu et TILP.
-
Lionel DebrouxSuper Modo
Niveau 14: CI (Calculateur de l'Infini)- Messages: 6859
- Inscription: 23 Déc 2009, 00:00
- Localisation: France
- Genre:
- Calculatrice(s):→ MyCalcs profile
- Classe: -
- GitHub: debrouxl
Re: Puce flash 10 000 cycles d'effacement
Ok merci beaucoup
Tous mes programmes sont disponibles ici
↳ Testez mon simulateur Android sur Ti-83 Premium CE et / ou Édition PythonJetez un coup d'oeil à mon langage de programmation interprété Neon.
-
BobbProgrammeur
Niveau 10: GR (Guide de Référence)- Messages: 300
- Inscription: 19 Avr 2020, 12:37
- Localisation: Morbihan
- Genre:
- Calculatrice(s):→ MyCalcs profile
- Classe: CPGE MPI
Re: Puce flash 10 000 cycles d'effacement
Je suis dans la communauté TI depuis près de 20 ans et je n'ai vu qu'un incident à propos de mémoire flash morte sur une calculatrice, en 2009. En général je crois que la mémoire flash durera plus longtemps que certains autres composants du hardware de la calculatrice. Par contre, pour les Casio Graph 100 c'était une toute autre histoire, d'après wikipedia.
-
DoOmnimagaPremium
Niveau 12: CP (Calculatrice sur Pattes)- Messages: 683
- Images: 25
- Inscription: 21 Fév 2012, 12:04
- Localisation: Quebec, Canada
- Genre:
- Calculatrice(s):→ MyCalcs profile
- Classe: 11eme annee scolaire termine
- YouTube: DJOmnimaga
- Twitter/X: DJOmnimaga
- Facebook: djomnimaga
Re: Puce flash 10 000 cycles d'effacement
ça me rassure
Tous mes programmes sont disponibles ici
↳ Testez mon simulateur Android sur Ti-83 Premium CE et / ou Édition PythonJetez un coup d'oeil à mon langage de programmation interprété Neon.
-
BobbProgrammeur
Niveau 10: GR (Guide de Référence)- Messages: 300
- Inscription: 19 Avr 2020, 12:37
- Localisation: Morbihan
- Genre:
- Calculatrice(s):→ MyCalcs profile
- Classe: CPGE MPI
8 messages
• Page 1 sur 1
Retourner vers Problèmes divers / Aide débutants
Qui est en ligne
Utilisateurs parcourant ce forum: Aucun utilisateur enregistré et 28 invités