IBM 704
Le IBM 704, le premier ordinateur muni de capacité d'arithmétique en virgule flottante produit en grande quantité, fut introduit par IBM en 1954[1].
Historique
Dans le marché du calcul scientifique, l'IBM 704 succédait au IBM 701. Le 704 améliorait significativement l'architecture et l'implémentation du 701. À cause de ces améliorations significatives, le 704 n'était pas compatible avec son prédécesseur.
Les améliorations par rapport au 701 incluaient le remplacement des tubes de Williams par une mémoire à tores magnétiques et l'addition de trois registres d'index. Pour supporter ces améliorations, la longueur de l'instruction-machine était augmentée de 18 à 36 bits. Le jeu d'instructions du 704 deviendra la base de la série d'ordinateurs scientifiques de la série IBM 700/7000.
IBM indiquait que l'ordinateur pouvait exécuter 40 000 instructions par seconde. IBM a vendu 123 exemplaires de l'ordinateur entre 1955 et 1960.
Deux des utilisateurs de l'IBM 704, General Motors et North American Aviation, ont développé un système d'exploitation rudimentaire pour l'ordinateur, le GM-NAA I/O (General Motors and North American Aviation Input/Output system)[2]. Il est à noter que ce système d’exploitation n’a pas été créé par IBM, mais bien par des clients d’IBM qui voulaient maximiser l’utilisation de leurs ordinateurs. Les fabricants d'ordinateurs ne réalisaient pas encore la manne de revenus que pouvait représenter le développement de logiciels pour les ordinateurs! Ce sont plutôt les utilisateurs qui développaient des logiciels utilitaires et qui les distribuaient selon une pratique proche de ce qui se passe aujourd'hui pour les logiciels libres. Le système d'exploitation GM-NAA I/O a été utilisé pour une quarantaine d'utilisateurs de l'IBM 704.
Les langages de programmation Fortran et LISP ont été initialement développés pour l'IBM 704. Le premier programme de traitement de musique a aussi été développé sur cet ordinateur par Max Mathews.
Edward O. Thorp a aussi utilisé l'IBM 704 et le langage Fortran dans le développement des sa théorie des jeux sur la probabilité de gagner au blackjack[3],[4].
Registres
L'IBM 704 avait un registre accumulateur de 38 bits (incluant deux bits de débordement), un registre multiplicateur-quotient de 36 bits et trois registres de diminution de 15 bits. Le registre de diminution était une sorte de registre d'index dont le contenu était soustrait de l'adresse de base au lieu d'y être ajouté. Les trois registres de diminution pouvaient participer à une même instruction : les 3 bits tag de l'instruction indiquaient lesquels des registres devaient participer à l'instruction.
Formats des instructions
Il existait deux formats d'instruction appelés type A et type B[5]. La plupart des instructions étaient de type B.
Les instructions de type A possédaient, en séquence :
- un code d'opération de 3 bits ;
- un décrément de 15 bits ;
- trois bits tag ;
- une adresse de 15 bits.
Les instructions de type A incluaient des sauts conditionnels en fonction des valeurs des registres de diminution spécifiés par les bits tag. Certaines instructions soustrayaient le décrément de l'instruction du contenu des registres de diminution. L'implémentation des instructions nécessitait que l'un des bits 2 ou 3 du code d'opération soit 1 pour distinguer les instructions de type A et B. Cette contrainte réduisait à 6 le nombre possible d'instructions de type A. L'une des instructions (l'instruction STR, code d'opération 101) n'a pas été implantée avant l'IBM 709.
Les instructions de type B possédaient, en séquence ;
- un code d'opération de 12 bits (le deuxième et le troisième bits devaient être 0 pour les distinguer des instructions de type A) ;
- un flag de 2 bits ;
- quatre bits inutilisés ;
- trois bits tag ;
- une adresse de 15 bits.
Format des données
Les nombres entiers étaient représentés par un bit de signe suivi de la valeur absolue de l'entier en format binaire.
Les nombres en virgule flottante en simple précision étaient représentés par un bit de signe, un exposant de 8 bits et une valeur de 27 bits.
Les caractères alphanumériques étaient représentés par un code de 6 bits (le code BCD). On pouvait donc placer 6 caractères dans un mot de 36 bits.
Références
- 704 photos from IBM
- « Timeline of Computer History: 1956: Software », Computer History Museum (consulté le )
- Discovery channel documentary with interviews by Ed and Vivian Thorp
- The Tech (MIT) "Thorpe, 704 Beat Blackjack" Vol. 81 No. I Cambridge, Mass., Friday, February 10, 1961
- John Savard, « From the IBM 704 to the IBM 7094 », {{Article}} : paramètre «
périodique
» manquant, paramètre «date
» manquant (lire en ligne, consulté le )