La saga HP-35 Sommaire FI 7/2007 [email protected], Domaine IT 1 La saga HP-35 François Roulet 2 DIT-info 3 Chiffres animés Laurent Kling 7 Du bon usage du réseau Jacques Virchaux Préambule Il y a 35 ans, apparaissait la première calculatrice scientifique de poche, la HP-35, ainsi dénommée pour son imposant nombre de touches. Comme le déclarait la publicité, c’était la première calculatrice de poche à franchir le mur des 4 opérations, en offrant les fonctions trigonométriques, exponentielles et logarithmiques. Pour cela, elle fût surnommée la tueuse de règles à calcul. Hewlett-Packard a célébré cet événement numérique, en annonçant en juillet dernier le modèle commémoratif HP-35s. Chronologie 1968Premier calculateur scientifique de table: HP-9100 1971Premier microprocesseur: Intel 4004 1972Première calculatrice scientifique de poche: HP-35 1975Premier micro-ordinateur helvétique: Smaky 1977Premier micro-ordinateur populaire: Apple II. Replaçons-nous brièvement dans le contexte de cette époque. Le premier calculateur scientifique de table, le HP-9100, apparu en 1968, avait l’aspect d’une machine à écrire électrique, hormis son clavier qui n’était pas alphanumérique. Ce qualificatif de Calculateur était stratégiquement choisi par Bill Hewlett afin de clairement se démarquer des Ordinateurs du concurrent IBM. Le HP-9100A marquait une étape importante, en offrant le calcul en virgule flottante et les fonctions transcendantales, ainsi que la programmation, tout en tenant aisément sur un bureau. suite en page 8 12 Memoria-Mea, ou comment stocker, … ses informations multimédias personnelles Anne Le Calvé, Elena Mugellini, Hatem Ghorbel et Philippe Richard 15 MailCleaner pour tous Martin Ouwehand 16 vvpd – véritable vidéo à la demande: patching Andrés Revuelta 19 Prochain évènement CHOSUG 20 Programme des cours 24 Un nouveau certificat pour le serveur RADIUS Jacques Virchaux Prochaines parutions no 8 9 10 délai parution rédaction 04.10.07 01.11.07 29.11.07 23.10.07 20.11.07 18.12.07 FI 7 – 25 septembre 2007 – page La saga HP-35 Architecture suite de la première page Il était aussi caractérisé par l’absence de circuits intégrés, par une mémoire vive ferrite, et une mémoire morte câblée et gravée. Suite à cette innovation, Bill Hewlett a chargé ses ingénieurs d’en développer une version 10 fois plus petite (gabarit d’un paquet de cigarettes taille royale), 10 fois plus légère (255g au lieu de 18kg) et 10 fois moins chère ($395 au lieu de $4900), et il ajouta encore qu’elle devait tenir dans la poche d’une chemise. La HP-35 a relevé cet ambitieux défi, tout en intégrant en première mondiale virgule flottante et fonctions transcendantales (trigonométriques, logarithmiques et exponentielles). Pour parvenir à une telle prouesse, il fallait vraiment faire preuve de génie, et c’est pourquoi nous souhaitons vous présenter un certain nombre de solutions originales qui ont présidé la genèse de cette formidable machine, précurseur d’une légendaire lignée de calculatrices, assurant gloire, prestige et fortune à la firme. Mais l’autre défi était de contrer les Japonais sur le terrain des calculatrices à 4 opérations, qu’ils monopolisaient mondialement. Alors que l’ambitieux Bill Hewlett souhaitait vendre 10’000 exemplaires durant la première année, ses conseillers commerciaux ont tenté de l’en dissuader, argumentant qu’un instrument de calcul coûtant 20 fois le prix d’une règle à calcul n’aurait aucune chance d’atteindre un tel objectif. L’histoire a donné raison au premier, car 100’000 unités ont été écoulées durant la première année, et au total 300’000 au cours des 3.5 ans de sa production. Il faut se rappeler qu’à cette époque, une vulgaire calculatrice 4 opérations était vendue en Suisse 444.- chez InterDiscount ! La HP-35, initialement commercialisée à $395, avec un taux de change de 3.9 CHF/$, était proposée en Suisse aux alentours de 2000.- CHF. La première caractéristique exclusive d’une calculatrice HP était son mode d’introduction breveté des opérandes, baptisé notation polonaise inverse, suite à l’invention en 1920 de la syntaxe postfixée par le Polonais Jan Lukasiewicz. Mais en réalité, la description appliquée à l’informatique, qui est due à l’Australien Charles Hamblin, a été publiée en 1957. + - x / ENTER t T t z Z z y Y y x X x T y+x y-x y.x y/x Z Y X Les 2 principaux mouvements de la pile opérationnelle, à savoir l'entrée d'un opérande, suivi d'une des 4 opérations L’architecture interne de la gamme des calculatrices HP n’a quasiment pas varié jusqu’à l’avènement de la HP-18C en 1986, à tel point que la calculatrice financière HP-12C, apparue en 1981 et actuellement toujours commercialisée (à un tarif prohibitif ), possède encore la même architecture que la HP-35, à savoir une pile opérationnelle de 4 registres de 10 digits (56 bits chacun). Celle-ci détient le record historique de longévité de produit et d’unités vendues par HP. FI 7 – 25 septembre 2007 – page La HP-35 est fondamentalement caractérisée par une représentation numérique BCD (Binaire Codé Décimal), avec une mantisse de 10 chiffres significatifs et exposant à 2 chiffres, et toutes les données sont mémorisées dans la désormais célèbre pile opérationnelle, constituée de 4 registres à décalage, plus un registre mémoire indépendant pour y déposer par exemple une constante. Deux registres généraux, invisibles à l’utilisateur, sont affectés aux résultats intermédiaires durant les opérations de calcul, et aux formatages et masquage des nombres durant l’affichage. Le jeu d’instructions comporte 54 instructions distinctes codées sur 10 bits, les 8 premiers bits des instructions de branchement étant réservés à l’adresse. Le matériel est plus surprenant, car avec ce processeur entièrement sériel, aussi bien l’adressage et l’accès aux instructions du microprogramme que les mouvements et les calculs sur les registres s’effectuent toujours sur une seule ligne. Les chemins de circulation des instructions et des données étant totalement séparés, ce processeur respecte le modèle de Harvard. La sérialisation de tous les transferts d’informations entraîne un temps de cycle très élevé de 280µs, alors qu’en comparaison, le premier microprocesseur monolithique de l’histoire, le Intel 4004, avait un temps de cycle de 10µs seulement. À y regarder de plus près, le processeur spécialisé d’HP s’avère pourtant plus efficace, en évitant les lectures & écritures en mémoire pour chaque chiffre à traiter, puisque les registres sont exclusivement manipulés comme des registres à décalage. Le temps de cycle est alors dicté par la circulation complète du contenu d’un registre, soit l’équivalent de 14 chiffres (10 pour la mantisse, 2 pour l’exposant et 2 pour les signes). Avec une horloge à 200 kHz, en découlent un bit time de 5µs, un digit time de 20µs, et un word time de 280µs. Afin d’optimiser la propagation de la retenue additionnelle, les registres sont naturellement exclusivement décalés de gauche à droite, le chiffre le moins significatif défilant en premier en direction de l’unité arithmétique et logique. Inhérente à cette architecture sérielle, l’instruction lue et décodée durant un cycle complet du processeur, ne sera traitée que durant le cycle suivant. Toutefois, ce décalage temporel n’affecte heureusement pas la rapidité de la machine. La saga HP-35 Le mot mémoire, ou registre, comportant des champs spécifiques (mantisse, exposant), il est impératif de pouvoir les adresser individuellement, et cela s’effectue au moyen du signal Word Select, qui sélectionnera temporellement la portion du registre à décalage à traiter, et ce, aussi bien durant un transfert, une copie ou une addition. Cette approche entièrement sérielle minimise les interconnexions, donc, les portes logiques requises pour la réalisation du processeur. Réalisation matérielle Le processeur de la HP-35 est principalement constitué de 2 circuits intégrés, le circuit Control & Timing couplé au circuit Arithmetic & Registers. Les trois autres circuits intégrés sont les ROM renfermant le microcode de la calculatrice. Chaque circuit comporte environ 6000 transistors, tous les 5 totalisant le nombre impressionnant pour l’époque de 30000 transistors. Leur fabrication fut confiée à 2 jeunes fonderies de la Silicon Valley, AMI et Mostek. La technologie LSI (Large Scale Integration) adoptée est de type pMOS (Metal Oxide Semiconductor), nécessitant le rafraîchissement permanent des données, obtenu par une perpétuelle recirculation des registres à décalages, même lorsqu’aucune opération ou mouvement n’est requis. La technologie naissante CMOS exigeait trop de transistors pour pouvoir être envisagée dans des circuits d’une telle ampleur avec les processus de fabrication de l’époque. Un des circuits est plus imposant, le Control & Timing avec ses 28 pattes requises notamment pour assurer le balayage du clavier de 35 touches réparties en 5 colonnes de 8 rangées. Il prend en charge toutes les instructions d’adressage, alors que les instructions de données sont entièrement traitées par le circuit Arithmetic & Registers. Ce second circuit constitue la mémoire vive du calculateur, puisque la totalité des données est mémorisée dans les 7 registres à décalage de 56 bits qu’il renferme. Étant donné que toutes les interconnexions sont sérielles, ce dernier ne comporte que 16 pattes. Pour des raisons techniques, le reste de la circuiterie, à savoir les pilotes des anodes et cathodes de l’affichage à diodes électroluminescentes, est en technologie TTL. Lors de l’avènement de cette architecture originale, le premier microprocesseur généraliste monolithique historique, le Intel 4004, avait 6 mois d’existence, et l’on peut se poser la question pourquoi ne pas avoir eu recours à ce matériel. Ce processeur 4 bits pMOS d’architecture Harvard à jeu de 46 instructions, mais à accès multiplexés sur 4 bits, totalisait 2300 transistors. Avec son temps de cycle de 10µs, il parait 28 fois plus rapide que celui de la HP-35 ! La réalité est bien différente, et l’on découvre tout le bénéfice tiré de l’architecture originale et spécialisée choisie par HP. Si le temps de cycle de la HP-35 est bel et bien de 280µs, il faut considérer qu’en ce laps de temps, un registre est intégralement traité. Typiquement, l’addition de 2 mantisses alignées de 10 chiffres sera entièrement accomplie durant ce word time ! Quant à lui, en un cycle, le 4004 ne pourra qu’additionner 2 chiffres, l’un étant déjà préalablement chargé dans un registre interne. Pour replacer le résultat en mémoire centrale, il faudra comptabiliser un cycle supplémentaire, et nous atteindrons alors 20µs, soit exactement le digit time de la HP-35. Mais le traitement du chiffre suivant exigera la lecture de l’instruction, le chargement dans le registre 4 bits interne de la donnée, puis l’addition proprement dite. FI 7 – 25 septembre 2007 – page La saga HP-35 De ce point de vue, il apparaît évident que l’architecture de la HP-35 sera sensiblement plus efficace, donc performante, que celle du 4004. Chronogramme Le responsable de cette implémentation pour la HP-35, David S. Cochran, fut surnommé le brasseur d’algorithmes. Les bogues L’histoire de la HP-35 fut émaillée par le bogue émergeant e^ln(2.02)=2 affectant les fonctions exponentielles. Il n’est d’ailleurs pas sans nous rappeler le célèbre Pentium Bug, qui a frappé les processeurs Intel en 1994, quand bien même l’origine du second découlerait des cœfficients erronés chargés dans la table de multiplication, alors que le premier était dû à l’exécution de l’algorithme, donc dépendant du microcode. La correction de ce microcode fut un défi, car la mémoire ROM de 768 mots était déjà entièrement pleine. Un autre bogue, affectant les fonctions trigonométriques inverses, était moins perceptible, car l’erreur n’était pas d’un pour cent, mais seulement d’un centième de pour cent. Lorsque ces bogues furent signalés, et malgré l’absence du vecteur de communication Internet, sur ordre de Dave Packard, HP a réagi en proposant le reOn distingue ligne après ligne, la synchronisation (SYNC) du cycle complet, tour en usine pour échange gratuit des ROM des 25000 la lecture de l'instruction (Is), l'adressage de la mémoire morte (Ia), 3 des modèles défectueux déjà vendus. Malheureusement, 8 variantes possibles de sélection de champ (WS), le contenu d'un registre seul un quart des propriétaires se sont manifestés, ce complet, soit 14 digits, 56 bits, le tout dans une fenêtre de temps de 280µs. qui laisse encore bien quelques modèles défectueux en circulation, aisément reconnaissables à leurs touches de Dans le même domaine d’application, la plus célèbre fonctions banalisées, leur fonction étant directement gravée réalisation autour de l’Intel 4004 demeure la calculatrice de sur le boîtier. table japonaise Busicom, dotée d’une imprimante intégrée, mais strictement restreinte aux 4 opérations en virgule fixe, et ressemblante aux caisses enregistreuses électroniques. Affichage Algorithmes Alors que les 4 opérations s’effectuent de manière naturelle, il faut toutefois gérer la virgule flottante. Pour l’addition et la soustraction, le temps moyen d’exécution est de 60ms, cette durée découlant de l’alignement des mantisses, mais aussi de la normalisation et du formatage du résultat. Pour la multiplication et la division, le temps moyen d’exécution est de 100ms, cette durée découlant principalement de la longueur de la mantisse, c’est-à-dire du nombre de chiffres significatifs à traiter. Mais le véritable tour de force réside dans le traitement des fonctions logarithmiques en 200ms et trigonométriques en 500ms seulement. Pour les fonctions exponentielles et logarithmiques, l’algorithme utilisé est celui des pseudodivision et pseudomultiplication décrit par J. E. Meggitt en 1962, découlant de la méthode des différences publiée en 1624 par le mathématicien anglais Henry Briggs. Quant aux fonctions trigonométriques, elles sont effectuées par des rotations CORDIC (COordinate Rotation DIgital Computer), algorithme implémenté en 1960 par Jack E. Volder dans le calculateur de navigation embarqué du bombardier Convair B58 Hustler. Il s’agit d’approximations successives. FI 7 – 25 septembre 2007 – page 10 Un soin tout particulier a été apporté à ce module, car l’autonomie de cette calculatrice sur ses accumulateurs NiCd devait lui permettre d’être utilisée hors raccordement au chargeur secteur. Le nombre important de chiffres affichés ayant une influence néfaste sur cette consommation, HP a saisi l’occasion de mettre en application un brevet sur les affichages à diodes électroluminescentes qu’ils avaient précédemment déposé. Pour la majorité des affichages de ce type, multiplexés afin de minimiser le nombre de connexions, chaque diode est alimentée au travers d’une indispensable résistance de charge, qui dissipe de l’énergie durant l’illumination. Le brevet d’HP consiste à contourner ce gaspillage, en remplaçant le câblage conventionnel par l’établissement préalable d’un courant dans une inductance, cette dernière étant dans une seconde phase reliée en série avec la diode, La saga HP-35 induisant le courant nécessaire à l’illumination pulsée de la diode. Dès lors, l’intensité lumineuse n’est plus déterminée par la résistance de charge, mais par la durée d’établissement du courant de charge dans l’inductance. Grâce à cette astucieuse technique de pilotage, la consommation de l’affichage demeure inférieure à 110mW avec tous les segments allumés, la principale dissipation thermique étant ainsi épargnée. Pour garantir un chronogramme approprié, l’affichage est le module qui requiert la cadence d’horloge la plus rapide de toute la calculatrice, soit 800kHz, cela expliquant pourquoi c’est précisément cet élément qui donne le pouls à tous les autres circuits. En effet, le temps de charge de chacune des 7 inductances de segment n’est que de 2.5µs, (et la moitié seulement pour celle du point décimal, sa surface lumineuse étant nettement inférieure). Chacun des 7 segments d’un chiffre est allumé séquentiellement à intervalle de 1.25µs, afin de lisser la consommation de courant durant la phase d’affichage de chaque chiffre. Le temps de décharge de chaque inductance au travers de la diode luminescente est physiquement le double du temps de charge, soit 5µs. Le séquencement de l’affichage se déroule en parfait synchronisme avec la perpétuelle recirculation du registre x; il est de fait entièrement rafraîchi en 280µs, en débutant par le chiffre le plus à droite, l’exposant, pour terminer par le signe de la mantisse à l’extrême gauche. Un 15e symbole, le point décimal, est généré au vol par le chronogramme de l’affichage, lui réservant un emplacement complet sans pour autant prolonger le cycle d’une tranche de temps. Cette particularité était aussi une exclusivité d’HP: le point décimal occupant une position égale à celle d’un chiffre, conférant ainsi une meilleure lisibilité des nombres. Clavier Là aussi, les calculatrices HP se distinguent de leurs concurrentes par leur clavier à touche basculante et rétroaction tactile, fonctionnant selon le principe de la burette d’huile, à savoir que l’élément de contact, assurant aussi la fonction de ressort de rappel, constitué d’une cloque métallique, cède soudainement au-delà d’une certaine pression exercée sur la touche, retournant à l’utilisateur une sensation tactile confirmant la prise en compte de l’ordre donné. Conclusion Hewlett-Packard fut le grand innovateur parmi les constructeurs de calculatrices électroniques. Le caractère élitiste et la qualité permise par les prix pratiqués, a valu à HP un cortège restreint, mais actif de fanatiques. Aujourd’hui, ces calculatrices scientifiques semblent détrônées par l’omniprésence des ordinateurs portables et des assistants personnels, ces derniers supportant d’authentiques émulations des HP récentes les plus diffusées. Depuis, les utilisateurs d’antan se sont mués en collectionneurs, et ces anciennes calculatrices atteignent des prix astronomiques: la première version de la HP-35 avec son point rouge caractéristique à côté de l’interrupteur se négocie à $300. Si nous devons référencer une exceptionnelle source d’information consacrée à la HP-35, c’est sans aucun doute le site Web de Jacques Laporte, une contribution historique inestimable, recensant tous les aspects de la conception de la HP-35, tant matériels que logiciels, avec un simulateur de microcode en Java, qui offre la possibilité d’analyser jusque dans les moindres détails le déroulement de l’exécution des algorithmes, et de découvrir l’origine exacte des fameux bogues. Saisissons ici l’occasion de remercier et féliciter Jacques Laporte pour son aussi précieux que fastidieux travail de bénédictin (http://www.jacques-laporte.org). n Classic Woodstock Topcat/Sting Scientific • HP-35 • HP-45 HP-46 • HP-55 HP-65 HP 9805 • HP-21 • HP-25 • HP-25C HP-29C HP-67 Financial HP-70 • HP-80 HP-81 HP-22 Scientific/Financial Spice Coconut Voyager HP-91 HP-95C HP-97 HP-97S HP-19C HP-31E • HP-32E HP-33E • HP-33C • HP-34C • HP-41C • HP-41CV • HP-41CX HP-10C • HP-11C • HP-15C HP-92 • HP-37E • HP-38E • HP-38C • HP-12C HP-27 Other processor architecture Cricket HP-10 Classic Woodstock HP-01 Cricket Woodstock Nut Tableau des modèles de la première génération, de 1972 à 1985, classés selon leur processeur interne (nonpareil.brouhaha.com) FI 7 – 25 septembre 2007 – page 11