Forum |  HardWare.fr | News | Articles | PC | S'identifier | S'inscrire | Shop Recherche
3271 connectés 

  FORUM HardWare.fr
  Programmation
  C++

  Probabilité propagation erreur sur un PC

 


 Mot :   Pseudo :  
 
Bas de page
Auteur Sujet :

Probabilité propagation erreur sur un PC

n°1910131
I_have_a_b​ig_problem
Posté le 30-07-2009 à 04:54:16  profilanswer
 

Bonjour.
Je me posais une petite question.
 
Imaginons un programme tout simple en C++ : par exemple un algorithme pour déterminer si un nombre N est premier ou non, programme ne comprenant aucun algorithme de vérification d'erreurs. Il teste i=2 puis tous les nombres i impairs entre 3 et sqrt(N) et si N%i est égal à 0 alors N n'est pas premier (exemple d'un algorithme tout bête). Si un seul bit (pour on ne sait quelle raison) change d'état alors le résultat final peut être complètement modifié (N détecté comme non premier alors qu'il l'est).
 
Imaginons que ce programme tourne sur un PC de bureau avec de la Ram non ECC, en zone urbaine (donc avec toutes les perturbations électromagnétiques que ça engendre) et qu'il teste des grands nombres.  
 
Quelle est la probabilité que le résultat final soit faux ? Et quel composant présente le plus de risque : le processeur (une erreur de proc de ce type est-elle possible), la liaison CPU<->Ram, la carte mère, ou la RAM ?
 
Merci beaucoup  :jap:

mood
Publicité
Posté le 30-07-2009 à 04:54:16  profilanswer
 

n°1910144
Mackila
Posté le 30-07-2009 à 08:29:25  profilanswer
 

Je dirais : suffisement faible pour ne pas à avoir à s'en préoccuper pour quasi toutes les applications.
Pour faire les calculs, tu dois prendre en compte toutes les défaillances possible, et calculer leur probabilité d'apparition à partir des données de fiabilité des fabriquants (il existe des listes pour des composants "standard" : résistances, relais (heu dans un PC y'en a pas beaucoup...), etc,...). Bonne chance pour un PC  :sweat:  
Tu as la possibilité aussi il me semble d'évaluer une probabilité de fonctionnement correct à partir de l'expérience (si tu fais tourner ton bazar 10 ans sans erreur, alors tu peux affirmer que t'as un p'tit 10-1/an de probabilité de défaillance...).
Pour les applications pour lesquelles cette information est importante, on cherche généralement des probabilités de défaillance non détectées très faibles, on rajoute donc du code de vérification, on fait faire le calcul deux fois sous deux formes différentes au processeur (genre une fois en utilisant des instructions sur les entiers, l'autre coup en utilisant les instructions sur les flottants, quand c'est possible). On peut faire faire le calcul deux fois à deux processeurs de conception différentes (un x86 et un PPC, par exemple).
La fiabilité va dépendre aussi de ta conception logicielle (bug = mauvaise fiabilité). Il existe des normes qui imposent des méthodologies de développement pour obtenir certaines fiabilités de fonctionnement.
 
Si on reste sur ton exemple, la probabilité d'apparition d'une défaillance de cellule mémoire RAM préalablement testée OK de PC classique doit être assez faible en environnement "normal" (= changement de valeur d'une cellule mémoire) (si t'arrives à trouver des chiffres chez les constructeurs, fais tourner).
Après, si tu tourne en environnement chaud (radiations), j'suis pas sur qu'un PC standard apprécie longtemps :o
 
Sujet interessant mais question un peu hardcore pour démarrer  :pt1cable:  
 

n°1910219
theShockWa​ve
I work at a firm named Koslow
Posté le 30-07-2009 à 11:57:16  profilanswer
 

considère que la probabilité que le résultat soit faux est 0. De toute façon, si ce problème devait arriver, il y a bien plus de chance que tu te retrouves à crasher directement. Imagine ce qui se passerait si jamais ton système récupère une adresse avec un bit modifié parce que tu es dans un environnement douteux. Tu arriveras bien plus rapidement à des crash qu'à des erreurs sur tes résultats uniquement.


---------------
last.fm
n°1910306
Taz
bisounours-codeur
Posté le 30-07-2009 à 15:03:27  profilanswer
 

Paye ton blindage TEMPEST !

n°1910386
Mackila
Posté le 30-07-2009 à 16:52:43  profilanswer
 

Ouaip. Enfin faut calculer. Ca va (peut-être) te protéger, dans une certaine mesure, contre des défaillances induites par certaines fréquences de parasites électro-magnétiques. Si t'es dans un environnement radiatif (neutrons :o ), ca sert à rien  :pt1cable: . Ca ne sert à rien non plus contre les défaillances induites par un vieillissement d'un composant...
 
Enfin bon si t'as posé la question parceque tu as réèllement une problématique de sureté de fonctionnement d'un calculateur, bah faut approfondir.
Si t'as posé la question seulement par curiosité, bah CF la réponse de Theshockwave :)

n°1910400
theShockWa​ve
I work at a firm named Koslow
Posté le 30-07-2009 à 17:06:58  profilanswer
 

Dans tous les cas, calculateur ou pas, on ne peut pas résoudre une panne physique (ici, un rayonnement quelconque violent) juste de manière logicielle
 
Edit : Bon, je m'emballe peut-être, en généralisant ca, c'est sur que si tu veux éliminer les parasites sur une webcam, tu pourras chercher à faire quelque chose, mais là, ce qui est décrit est vraiment un problème majeur.


Message édité par theShockWave le 30-07-2009 à 17:07:55

---------------
last.fm
n°1910450
Joel F
Real men use unique_ptr
Posté le 30-07-2009 à 19:09:31  profilanswer
 

Y a des technos dites de "durcissage" que les militaires emplois sur des composants standards (cf les activités de Thales à ce sujet)

n°1910601
antac
..
Posté le 31-07-2009 à 11:54:26  profilanswer
 

d'après mes calculs, 0.0000000000000000000000000000000001% environ

n°1910664
I_have_a_b​ig_problem
Posté le 31-07-2009 à 14:52:55  profilanswer
 

Merci à tous pour vos réponses.
 
Juste 1 question : prenons par exemple "Superpi" qui peut être utilisé pour tester la stabilité d'une machine. Prenons un ordi un peu trop overclocké : Superpi va finir par indiquer une erreur. Alors que se passe-t-il si je fais tourner le programme défini dans mon premier message sur cette machine ? Parce que pour moi il y a 2 solutions liés à cette instabilité de la machine : soit le programme va indiquer quelque chose de faux, soit l'ordi va planter ?
 
Laquelle des deux solutions va se vérifier dans ce cas ?

n°1910889
bjone
Insert booze to continue
Posté le 01-08-2009 à 11:12:35  profilanswer
 

Pas déterministe.


Aller à :
Ajouter une réponse
  FORUM HardWare.fr
  Programmation
  C++

  Probabilité propagation erreur sur un PC

 

Sujets relatifs
[RESOLU] erreur pendant le chargement un fichier XML[VBA] Erreur 1004 AutoFiltre method of Range class failed
Erreur 1004: Méthode Open de l'objet workbook échouéemessage d'erreur "can not access a member of class X"
[VBA Excel 2007] erreur Nombre d'arguments incorrects [RESOLU]erreur : Set RS = db.OpenRecordset("SITE", dbOpenTable)
[VBA] Erreur out of range sur scriptErreur 1004 : La methode 'Cells' de l'objet '_Global' a échoué
[Resolu]Erreur de compilationErreur Excel nombre de polices [RESOLU]
Plus de sujets relatifs à : Probabilité propagation erreur sur un PC


Copyright © 1997-2025 Groupe LDLC (Signaler un contenu illicite / Données personnelles)