La sortie officielle grand public du HP 35, premier calculateur de poche à effectuer, entre autres, les fonctions trigonométriques et exponentielles, a lieu le 1er février 1972. C'est un événement majeur tant du point de vue de l'histoire des techniques que du point de vue des calculs et de l'utilisateur. En juin de la même année, l'équipe de Hewlett-Packard qui a travaillé sur ce projet communique par l'intermédiaire de son journal un ensemble d'articles très développés qui vont des principes de fonctionnement au design industriel mis en oeuvre. Nous tenterons ici une traduction libre de cet ensemble en commençant par le plus célèbre : The " Powerful Pocketful ".
Ce calculateur scientifique de 255 grammes est si petit qu'il tient dans une poche de chemise. Il possède les fonctions logarithmiques, trigonométriques et exponentielles, et travaille sur dix chiffres.
Par Thomas M. Whitney, France Rodé, et Chung C. Tung
Quand un ingénieur ou
un scientifique a besoin d'une réponse rapide à
un problème qui nécessite multiplications, divisions,
ou fonctions transcendantes, il se saisit de sa règle à
calcul. Avant longtemps, cependant, ce "bâton glissant"
pourra trouver une retraite méritée. Il y a maintenant
un calculateur électronique de poche qui produit ces réponses
plus facilement, plus vite et avec une plus grande précision.
En dépit de sa petite taille, le nouvel HP-35 est un calculateur
scientifique puissant. Les buts initiaux étaient de faire
un instrument capable d'être construit au format d'une poche
de chemise avec quatre heures d'autonomie à partir de batteries
rechargeables, à un coût facilement justifiable par
les laboratoires et la plupart des gens. Le résultat fut
cet objet de 255 grammes qui a même surpris le public le
plus avisé au sujet de ce que les circuits intégrés
pouvaient réaliser.
Le HP-35 possède à la base les mêmes fonctions
et précisions que les autres calculateurs HP, mais en version
portable. C'est un cousin proche des calculateurs électroniques
à quatre fonctions apparus ces dernières années,
initialement au Japon et maintenant aux Etats-Unis. Cependant,
trois particularités du HP-35 en font un calculateur à
part. Primo, aucun calculateur à quatre fonctions ne possède
les fonctions transcendantes (telles trigonométriques,
logarithmiques, exponentielles), ou même la racine carrée.
Secundo, le HP 35 travaille avec deux pleines rangées de
chiffres allant de 10-99 à 9.999999999x10+99 représentant
la notation scientifique. Tercio, le HP-35 possède cinq
registres pour stocker ou restituer des valeurs constantes et
des résultats. Plutôt qu'un ou deux, quatre de ces
registres sont combinés pour constituer une pile opérationnelle,
une fonction que l'on trouve dans certains ordinateurs. À
la page (7) il y a quelques exemples de problèmes complexes
résolus avec le HP-35.
Entrée des données
La photographie du
calculateur sur cette page montre comment les touches sont distribuées.
Les nombres sont affichés, dans ce qui est aussi appelé
le registre X, de gauche à droite, exactement comme sont
pressées les touches. Le mode d'entrée est entièrement
libre. Les chiffres s'organisent exactement tels qu'ils sont introduits,
tenant compte automatiquement de l'intérêt des zéros.
La touche des exposants, EEX, est utilisée pour entrer
un nombre en notation scientifique. Par exemple, le nombre 612.000
peut être introduit comme 6,12 EEX 5 ou 612 EEX 3 ou ,0612
EEX 7 aussi bien que 612000. La touche d'inversion de signe, CHS,
change le signe de la mantisse ou, si elle est pressée
immédiatement après la touche EEX, le signe de l'exposant.
Les erreurs durant l'introduction des données peuvent être
corrigées en utilisant la touche d'effacement, CLx. Une
touche spéciale permet d'entrer pi.
L'afficheur
L'afficheur consiste
en une série de 15 ensembles (3 x 5) de sept segments LED
plus le point décimal. Une réponse comprise entre
1010 et 10-2 sera toujours affichée avec un point décimal
flottant correctement placé avec le champ réservé
à l'affichage exponentiel éteint. En dehors de ces
valeurs, le HP-35 affiche les réponses en notation scientifique
avec le point décimal à droite du premier chiffre,
et les puissances de dix affichées à l'extrême
droite de l'afficheur. Afin de rendre l'affichage plus lisible,
le point décimal utilise la valeur d'un chiffre.
L'afficheur est toujours justifié à gauche, sans
zéro superflu. Par exemple, la réponse à
3/4 donne ,75 plutôt que 0,750000000.
Les réponses supérieures à 10100 (débordement)
sont affichées par 9,999999999 X 1099, et les réponses
inférieures à 10-99 sont remplacées par zéro.
Ce sont les limites du HP-35. Les opérations incorrectes,
telle la division par zéro ou la racine carrée d'un
nombre négatif, donnent l'apparition d'un zéro clignotant.
Les touches de fonction
à simple opérande
Les touches de fonction
opèrent sur le nombre affiché dans le registre X.
Les fonctions trigonométriques, sin, cos, tan, arc sin,
arc cos, et arc tan travaillent en degré seulement. Pour
inverser une fonction trigonométrique la touche doit être
précédée par la touche "arc". L'angle
obtenu sera la valeur principale.
Les fonctions log x et ln x calculent le logarithme de x respectivement
en base 10 et base e. Il en est de même pour la fonction
exponentielle ex. Les autres fonctions à opérande
simple sont la racine carrée de x, x, et l'inverse de x,
1/x.
Les touches arithmétiques
: fonctions à deux opérandes
Les fonctions arithmétiques,
+, -, x, et / et la fonction d'élévation d'une puissance
xy, opèrent sur les registres X et Y, avec la réponse
s'affichant dans le registre X. Les nombres sont copiés
de X vers Y par l'utilisation de la touche ENTER. Ainsi, pour
élever 2 à la puissance 7, la séquence de
touches est 7 ENTER, 2, xy, et la réponse 128 s'affiche
immédiatement après la pression sur la touche xy.
C'est un principe général : quand une touche est
pressée, l'opération correspondante est immédiatement
réalisée.
Quoique élever x à une puissance quelconque peut
être accomplit par la formule xy = ey ln x ( en fait, le
calculateur suit ce chemin interne), les combinaisons de touches
représentent un inconvénient plus grand. La valeur
y peut être positive, un entier négatif ou une fraction
alors que x doit être positif.
Les touches de registre
et de contrôle
Cinq registres sont disponibles pour l'utilisateur. Quatre sont
appelés X, Y, Z et T, et forment la pile opérationnelle.
Le cinquième, S, est utilisé pour le stockage d'une
constante. (Pour plus de clarté, les lettres capitales
renvoient au contenu des registres.)
Cinq touches sont utilisées pour transférer des
données entre ces registres. La touche ENTER fait monter
la pile : en fait, x est copié dans Y, y dans Z, et z dans
T, t étant perdu. Cette touche est utilisée comme
séparateur entre deux entrées consécutives,
telle que l'a montré le précédant exemple.
Renvoi, RÍ, est utilisé pour voir le contenu de
X, Y, Z et T. Quatre pressions consécutives de cette touche
redonne la position initiale de chaque registre sans perte de
valeur.
Le contenu de X et de Y peut être échangé
en utilisant la touche x<>y ; cela est pratique lorsque
l'opérande a été introduite dans un mauvais
ordre pour xy, - ou /. Le registre de la constante, S, est accessible
via les deux touches de mise en mémoire, STO, et de rappel
mémoire RCL.
La pile opérationnelle est automatiquement déplacée
vers le haut suivant chaque opération autre que ENTER,
STO, Clx. Cette dernière sauvegarde l'utilisation de la
touche ENTER. La pile remonte automatiquement à chaque
opération faisant appel aux touches à double opérande
(+, -, X, /, xy). Par exemple, pour résoudre le problème
(3X4) + (5X6) la séquence de touches est : 3, ENTER, 4,
X, 5, ENTER, 6, X, +. ENTER n'est pas nécessaire entre
X et 5 car la réponse au premier terme, 12, est automatiquement
transférée de Y lorsque le 5 est entré. Aussi,
il n'est pas nécessaire d'utiliser la touche RÍ
après le deuxième X puisque le premier terme, 12,
est automatiquement transféré de Z à Y après
la multiplication.
La touche d'effacement total, CLR, efface tous les registres mémoires.
L'initialisation par la mise en marche du calculateur a le même
effet.
Sur l'arrière du calculateur se trouve le tableau d'instructions
qui fournit à l'utilisateur des réponses rapides
aux questions les plus couramment posées. Ce tableau montre
un exemple et sa solution.
L'organisation du système
Maintenant, allons
à l'intérieur pour voir comment cela marche. Le
HP-35 contient cinq circuits MOS/LSI : trois ROM, un circuit pour
l'arithmétique et pour les registres (A&R), et un circuit
pour le contrôle et le compteur (C&T). Leur conception
fut donnée par HP et les circuits furent développés
et manufacturés par deux fabricants extérieurs.
Trois circuits bipolaires sont manufacturés par la division
HP de Santa Clara : une horloge à deux phases, un driver
LED à anode avec générateur d'impulsion,
et un driver LED à cathode.
Le HP-35 est assemblé à partir de deux circuits
imprimés. Le circuit supérieur contient l'afficheur,
les drivers et le clavier. Le circuit inférieur contient
toutes la logique MOS, l'horloge, et l'alimentation.
Le calculateur est organisé à partir d'une série
de chiffres basés sur l'unité de base codée
en bit. Cette organisation minimise le nombre de connections sur
chaque puce et entre chaque puce, de cette façon cela permet
de gagner de la place et de l'argent tout en renforçant
la qualité. Chaque mot comprend un ensemble de 14 chiffres
codés en binaire, lesquels font 56 bits de longueur chacun.
Dix des 14 chiffres sont alloués à la mantisse,
un à son signe, deux à l'exposant, et le dernier
au signe de l'exposant.
Trois bus sont connectés aux circuits MOS. Le transport
des mots se fait grâce à un signal de synchronisation
(SYNC) qui est généré par un conteur à
56 états placé sur la puce de contrôle et
de base-temps. Un autre bus servant aux instructions (Is) transmet
en série de la mémoire ROM à la puce de contrôle
et de base-temps ou à la puce arithmétique et registres
(A&R). Le troisième bus, appelé sélecteur
de mots (WS) joue le rôle de porte auprès de la puce
C&T ou des mémoires ROM. Il permet de faire travailler
l'unité arithmétique durant une séquence
de mot, toutefois l'opération ne se fait que sur une partie
du mot seulement comme la mantisse ou l'exposant.
Circuit de contrôle
et de base-temps
Le circuit de contrôle
et de base-temps (C&T) exécute les fonctions non arithmétiques,
ou les fonctions domestiques du calculateur. Celles-ci comptent
l'interrogation du clavier, le cheminement ou le statut du système,
ça synchronisation, et les modifications d'adressages.
Le clavier est organisé dans une matrice comptant cinq
colonnes et huit rangées. La matrice est continuellement
surveillée par la puce C&T. Lorsqu'un contact est fait
entre une rangée et une colonne, un code correspondant
est transmis par la ligne Ia à la mémoire ROM. Ce
code correspond à l'adresse de départ du programme
en mémoire ROM. Les rebonds et pressions trop longues sont
supprimés par un programme de délais.
Dans tous les systèmes digitaux, les statuts des bits ou
des drapeaux sont utilisés pour conserver la trace des
évènements passés. Dans le HP-35 se trouvent
douze bits de statuts, tous alloués sur la puce C&T.
Ils peuvent être ouverts, fermés ou interrogés
par les micro-instructions.
L'adressage des ROM est mis à jour sur la puce C&T
et envoyé en série aux ROM par le bus Ia. Pendant
l'exécution d'une suite d'instructions, le signal approprié
arithmétique ou statut est testé afin
de déterminer laquelle, entre l'adresse d'incrémentation
ou d'embranchement, doit être sélectionnée
ensuite.
Une caractéristique puissante de l'organisation en série
est l'habileté à opérer sur un seul chiffre
ou un nombre alors qu'il coule à travers l'unité
arithmétique. Sur la puce C&T se trouve un registre
de pointage et un sélecteur de mots qui déterminent
un signal de sélection de mots (WS) qui correspond au temps
d'opération. La valeur du registre de pointage peut être
placée, incrémentée, et décrémentée
par des micro-instructions.
Mémoire ROM (read-only
memory)
Des routines mathématiques
préprogrammées sont enregistrées sur trois
puces ROM, chacune d'elles contenant 256 instructions de 10 bits.
Un code spécifique est assigné à chaque ROM.
Seulement une ROM est utilisée à la fois. Lorsqu'une
instruction arrive, un décodeur interne à chaque
puce vérifie le code correspondant à l'instruction.
Si elles sont appelées, seules les mémoires ROM
sélectionnées sont activées.
Un circuit de base-temps sur chaque puce ROM est synchronisé
avec le signal SYNC produit par la puce C&T dès que
le calculateur est activé. Ce circuit permet de synchronisé
la puce avec le reste du système.
Un registre d'adressage de la ROM sur chacune d'elles reçoit
l'adresse envoyée par la puce C&T. L'instruction correspondante
est placée sur la ligne d'instruction Is, lorsque la puce
ROM est activée.
La puce ROM distribue également le signal de sélection
de mots pour certains types d'instructions.
Le circuit arithmétique
et de registres
Le circuit arithmétique
et de registres exécute les instructions arrivant sous
forme de séries de bits par la ligne Is. La plupart des
instructions arithmétiques peuvent être produites
par WS, le signal de sélecteur de mots. Les données
devant être affichées sont envoyées aux drivers
LED sur cinq lignes, et une ligne porteuse transfère le
retour d'information à la puce C&T. La sortie BCD est
bidirectionnelle et peut transporter des chiffres dans un sens
ou dans l'autre à la puce A&R.
Le circuit A&R est divisé en cinq airs : stockage des
instructions et circuit de décodage, un circuit de base-temps,
sept registres de 56 bits, et un décodeur d'additions et
de soustractions ainsi qu'un décodeur d'affichage.
Trois de ces registres sont des registres de travail. L'un d'eux
et trois des quatre autres registres forment la pile opérationnelle.
Le septième registre est un registre indépendant
qui stocke la constante. Il y a de nombreuses interconnections
entre les registres pour permettre des instructions comme l'échange,
le transfert, la rotation de la pile, et bien d'autres choses
encore. Un avantage de la structure en série de bits est
que ces interconnections ne requièrent seulement qu'une
porte par ligne de programme.
Les transferts entre et hors de la pile ou du registre de la constante
sont toujours transférés en entier. Les autres instructions
arithmétiques sont contrôlées par le signal
de sélection de mots, WS. Cela dit, il est possible d'interchanger
seulement le champ des exposants de deux registres, ou d'additionner
les deux chiffres correspondants de deux registres.
Le programme d'addition-soustraction effectue la somme ou la différence
de deux nombres décimaux. Il y a deux entrées de
données, stockage pour la retenue, et addition et sortie
pour la retenue. Dans les trois premiers temps, l'addition est
strictement binaire. Au quatrième temps, la somme binaire
est vérifiée, et si la réponse est supérieure
à 1001 (neuf), alors la somme est corrigée en décimal
par l'addition de 0110 (six). Le résultat est entré
dans les derniers quatre bits du registre de réception
et la retenue est enregistrée. Une correction similaire
est effectuée pour la soustraction. L'information concernant
la retenue est toujours transmise, mais elle est enregistrée
par la puce de Contrôle et de Temps seulement au dernier
moment du signal du sélecteur de mots.
Le circuit MOS de simulation
et de test
Dès l'élaboration
des circuits intégrés comme C&T, A&R et
les puces ROM, deux questions se sont posées : comment
le design peut être contrôlé ? Et comment le
circuit intégré peut être testé ?
La première question a deux réponses. L'une d'elles
est de construire un banc d'essais et de comparer chaque résultat
avec les réponses attendues. Une autre solution est de
construire une simulation informatisée des circuits. Quant
les circuits MOS du HP-35 furent dessinés, l'approche par
simulation informatique fut choisie entre une planche TTL et une
planche MOS. Il était convenu que la simulation ne correspondait
pas à un modèle exacte des circuits finaux, pourtant
deux à trois mois furent épargnés grâce
à la simulation, parce que les gens ne peuvent pas travailler
en parallèle mais plutôt en série sur la planche
d'essais.
Un programme de simulation universelle, HP-DABEL, vient juste
d'être développé par Jim Duley des laboratoires
HP. Il est utilisé pour vérifier chaque porte de
chaque circuit de chaque puce et finalement de toutes les puces
ensemble. Chaque circuit MOS est conçu comme un réseau
de portes et d'éléments de retard. Pour chaque porte
de sortie une équation algébrique fut écrite
en fonction des entrées. Cela a produit un large éventail
d'équations qui devait être évalué
à chaque cycle de l'horloge. Grâce à une sortie
imprimée, les opérations des portes et des retards
furent observables, comme si cela avait été mesuré
sur un oscilloscope. Avec cette précision, la simulation
fut meilleure qu'un tableau d'essais.
À cause du grand nombre d'équations devant être
évaluées à chaque cycle d'horloge le programme
général de simulation était trop lent pour
évaluer les algorithmes emmagasinés dans les mémoires
mortes. Pour cela, un haut niveau de simulation fut utilisé,
aussi seules les fonctions d'entrée et de sortie de chaque
sous-système ont pu être précisées.
Ceci fut assez rapide pour que tous les algorithmes puissent être
vérifiés, y compris les fonctions transcendantales.
Si tout allait bien il était toujours possible d'arrêter
le programme et de remonter pas à pas pour trouver la faille.
Corriger un problème revenait simplement à trouver
une carte ou deux. C'est un avantage que ne connaît pas
le banc-test figé.
L'approche en simulation a prouvé le succès de l'entreprise.
Cela a fait gagner beaucoup de temps, pas seulement sur la conception
des circuits logiques, mais aussi sur la réalisation des
modèles utilisés pour tester les circuits intégrés.
Après le succès de la simulation, un modèle
de chaque entrée fut rédigé ce qui permit
de construire un circuit d'ensemble virtuel. La mise en route
du programme et d'introduction des données d'entrée
et de sortie permis de construire un modèle de test complet.
Il fut enregistré sur bande magnétique, prêt
pour le dernier test des circuits intégrés.
Affichage et contrôleurs
(driver)
Rapidement, il fut
acquis qu'il faudrait inventer une nouvelle technique d'affichage.
Les diodes LED produites alors utilisaient trop de puissance et
coûtaient trop cher. HP Associated développa un magnifique
boîtier à quatorze broches, comprenant cinq chiffres
consommant peu et peu coûteux. Chaque chiffre est surmonté
d'une lentille sphérique en plastique moulé. Selon
l'angle de vue, il résulte une légère déformation
des chiffres, mais pour un calculateur de poche cela n'est pas
un problème.
Les LED sont plus efficaces si elles sont intermittentes, produites
par un cycle lent constant, que si elle sont contrôlées
par une source de courant continu. Dans le HP 35, l'énergie
est accumulée dans un condensateur puis lancé à
travers les diodes. Cette technique de contrôle permet une
grande capacité de multiplexage ; les chiffres sont produits
un à un, un segments à la fois.
Les circuits de contrôle bipolaire anode et cathode conçus
ici furent développés et fabriqués par HP.
Le circuit contrôleur à anode génère
un système d'horloge à deux phases et le signal
du segment (anode), décode les données du registre
A&R et insère le point décimal, envoie un signal
de balayage du circuit de multiplexage (cathode driver), et vérifie
la charge de la batterie pour allume tous les points décimaux
de manière à indiquer qu'il ne reste que 15 minutes
d'utilisation. Le contrôleur à cathode contient un
registre à 15 positions qui est incrémenté
à chaque déplacement de chiffre.
Le Calvier
L'exigence en matière de clavier fut particulièrement difficile. Le clavier dvait être sérieux, pas cher, d'une hauteur limité, et avoir un bon touché. La solution est basée sur un principe dit "bidon d'huile" ou du "criquet", et conciste en un morceau de métal incurvé de telle sorte qu'il possède deux états stables. Le tableau fig.4 montre le circuit métallique gravé de plaques horizontales. A chaque bouton correspond une empreinte au-dessus des contacts du circuit imprimé. En pressant un bouton on fait fléchir le métal qui entre en contact avec le circuit. Les boutons du clavier ont une place définie rendant la question des défectuosités électriques sans intérêt.
Remerciements
La plupart des gens qui ont
contribué à la conception du HP-35 l'ont fait avec
une grande énergie et un grand enthousiasme. Il y a eu
un courant particulier à travers le projet qui devait être
pour nous un sensationnel chalenge. Une appréciation particulière
doit être portée aux importants contributeurs suivants
: Tom Osborne, Paul Stoft, Dave Cochran, Chu Yen, Glenn McGhee,
Ken Peterson, Rich Marconi, Charlie Hill, Bill Misson, Dick Osgood,
Clarence Studley, Bernie Musch, Jim Duley, Margaret Marsden, John
Welsch, Ed Liljenwall, Tom Holden, Neil Honeychurch, et Bill Hewlett.
Le design industriel du HP-35 était de première importance, prenant souvent place devant les considérations électriques.
Par Edward T. Lijenwall