SHARP EL-556
Le modèle EL-556 n’est pas courant, moins que la EL-506A qui lui est assez très semblable, coloris exceptés. Son millésime : 1988.
Je me suis amusé à pousser la comparaison de ces deux modèles, ce qui a révélé l’existence de processeurs distincts.
J’ai soumis pour cela les deux calculatrices à mon test préféré, le cumul des sinus des 360 premières valeurs entières.
Nous sommes dans les deux cas proches de la valeur théorique zéro, mais il est clair que la 506A s’en approche davantage.
Troisième test, l’impitoyable test Forensics (*)
Cette fois, nous devrions lire la valeur théorique 9. Nous en sommes très proches (capture de gauche) mais, soustraction de 9 faite (capture de droite), nous constatons que l’écart renvoyé par la 556 est plus petit, donc meilleur. Un partout.
Nous pouvons déjà conclure que deux processeurs distincts sont à l’oeuvre. Pourquoi deux cœurs différents pour des performances aussi proches et aussi discutables puisqu’ils n’avantagent ni l’une ni l’autre ? Je n’ai pas la réponse. Je précise que les deux machines calculent à la même vitesse, que leur consommation d’énergie est la même.
Je continue la comparaison. Après tout, si deux calculatrices aussi identiques dans les fonctions proposées ne sont pas animées par le même processeur, cela doit bien se voir quelque part. Me voilà donc résolu à tester finement chaque fonction en ouvrant l’œil au maximum.
Alors que les comportements se montrent tristement superposables, je finis par mettre le doigt sur la fonction qui trahit son processeur. Il s’agit de la touche Factorielle, représentée ici par son symbole, le point d’exclamation.
La fonction Factorielle se borne classiquement à renvoyer le résultat de multiplications successives. L’algorithme du micro programme implémenté est donc en principe très simple. Il en existe pourtant plusieurs variétés, décelables à leur gestion des « effets de bord ». Ainsi le micro programme doit vérifier que la valeur entrée est positive, entière, qu’elle n’excède pas la capacité de calcul (soit inférieure à 70). J’ai vu par exemple des touches Factorielle accepter des valeurs négatives avec décimales et pourtant retourner le résultat de la valeur absolue de la partie entière …
Ici à quoi assiste-t-on ? Sur la 556, la plus grande valeur acceptée est classiquement 69. Si on tape 70, le témoin d’erreur s’allume aussitôt.
A contrario la 506A accepte sans broncher la valeur 70 et lance son long calcul qui aboutit lui aussi à l’affichage du témoin d’erreur mais avec un petit délai. Que s’est-il passé ?
Le micro programme de la 556 sait repérer d’emblée une valeur trop grande, avant même d’entamer sa chaîne de multiplications. Elle vous en informe sans délai en activant le témoin d’erreur. La 506A ne fait pas cette vérification et se lance tête baissée dans les multiplications qui font « exploser » à un moment la capacité de calcul, une détresse interne qui aboutira à l’affichage du témoin d’erreur.
Pour être honnête, reconnaissons que la 506A fait bien la vérification de la valeur entrée, mais elle ne sourcille qu’à 100, lançant bien inutilement tout calcul de 70 à 99. Entrer 100 affichera le témoin sans délai, comme sur une 556.
Ce comparatif est plus un jeu qu’une étude rigoureuse. En effet, je ne sais pas si ces deux machines sont exactement contemporaines, et si non, laquelle est la plus récente. Il se pourrait bien qu’au cours de leur production, les deux processeurs se soient retrouvés sur l’une et l’autre machines.
(*) https://www.rskey.org/~mwsebastian/miscprj/forensics.htm