DEUCE électrique anglais - English Electric DEUCE

DIABLE
Aussi connu sous le nom Moteur de calcul universel électronique numérique
Fabricant Anglais Électrique
Date de sortie 1955 ( 1955 )
Abandonné 1964 ( 1964 )
Unités expédiées 33
CPU à base de valve thermoionique
Mémoire lignes à retard au mercure
384 mots de 32 bits (Mark I et Mark II)
608 mots de 32 bits (Mark IIA)
Espace de rangement Tambour magnétique de 8192 mots
Affichage 2 × CRT
Prédécesseur Pilote ACE

Le Deuce ( solveur universel électronique numérique ) a été l' un des premiers britanniques disponibles dans le commerce des ordinateurs , construit par English Electric à partir de 1955. Il a été la version de production du pilote ACE , lui - même une version allégée de Alan Turing d » ACE .

Description du matériel

Le DEUCE avait 1450 valves thermoioniques et utilisait des lignes à retard de mercure pour sa mémoire principale ; chacune des 12 lignes à retard pourrait stocker 32 instructions ou mots de données de 32 bits chacun. Il a adopté la fréquence d'horloge alors élevée de 1 mégahertz du Pilot ACE. L'entrée/sortie s'effectuait via un équipement Hollerith à cartes perforées à 80 colonnes. Le lecteur lisait les cartes au rythme de 200 cartes par minute, tandis que le rythme de perforation des cartes était de 100 cartes par minute. Le DEUCE avait également un tambour magnétique de 8192 mots pour le stockage principal. Pour accéder à l'une des 256 pistes de 32 mots, le tambour disposait d'un groupe de 16 têtes de lecture et d'un groupe de 16 têtes d'écriture, chaque groupe sur des bras mobiles indépendants, chacun capable de se déplacer dans l'une des 16 positions. Le temps d'accès était de 15 millisecondes si les têtes étaient déjà en place ; 35 millisecondes supplémentaires étaient nécessaires si les têtes devaient être déplacées. Il n'y a pas eu de retard de rotation lors de la lecture et de l'écriture sur le tambour. Les données ont été transférées entre le tambour et l'une des lignes à retard de 32 mots.

Le DEUCE pourrait être équipé d' un équipement de bande de papier ; la vitesse du lecteur était de 850 caractères par seconde, tandis que la vitesse de sortie de la bande papier était de 25 caractères par seconde. (Le DEUCE de l' Université de Nouvelle-Galles du Sud {UTECOM} avait un téléimprimeur Siemens M100 connecté en 1964, donnant 10 caractères par seconde en entrée/sortie). Des unités de bande magnétique Decca peuvent également être fixées. Le multiplicateur et le diviseur automatiques fonctionnaient de manière asynchrone (c'est-à-dire que d'autres instructions pouvaient être exécutées pendant que l'unité multiplicateur/diviseur était en fonctionnement). Deux unités arithmétiques ont été fournies pour les opérations sur les nombres entiers : une de 32 bits et une autre capable d'effectuer des opérations de 32 bits et des opérations de 64 bits. L'auto-incrémentation et l'auto-décrémentation étaient fournies sur huit registres à partir de 1957 environ. L'arithmétique matricielle et les transferts de données matricielles étaient autorisés. Comparé à des contemporains tels que le Manchester Mark 1 , DEUCE était environ dix fois plus rapide.

Les mots individuels des registres quadruples étaient associés à une fonction d'auto-incrémentation/décrémentation. Cette facilité pourrait être utilisée pour compter et pour modifier des instructions (pour l'indexation, le contrôle de boucle et pour changer l'adresse source ou de destination d'une instruction).

Étant une machine série, le temps d'accès à un seul registre était de 32 microsecondes, un double registre de 64 microsecondes et un quadruple registre de 128 microsecondes. Celui d'une ligne à retard était de 1024 microsecondes.

Les temps d'instruction étaient : addition, soustraction, opérations logiques : 64 microsecondes pour les mots de 32 bits ; 96 microsecondes double précision ; multiplication et division 2 millisecondes. Pour l'arithmétique matricielle et les opérations de transfert, le temps par mot était de 33 microsecondes par mot pour 32 mots.

Les opérations en virgule flottante étaient fournies par un logiciel ; fois : 6 millisecondes pour l'addition et la soustraction, 5 ½ millisecondes en moyenne pour la multiplication et 4 ½ millisecondes en moyenne pour la division.

Dans les premières machines, toutes les instructions impliquant le tambour magnétique étaient verrouillées pendant qu'une opération était en cours. Ainsi, si les têtes de lecture étaient déplacées, toute opération magnétique ultérieure, telle que lire une piste ou écrire une piste, était interdite jusqu'à ce que la première soit terminée. A partir d'environ 1957, une nouvelle unité, appelée "magnétisme rationalisé" a été mise à disposition. Cette unité a éliminé les verrouillages inutiles. Ainsi, il était possible d'exécuter une instruction qui déplaçait les têtes de lecture : si elle était suivie d'une instruction de déplacement des têtes d'écriture, ou d'écriture d'une piste, ces instructions n'étaient pas imbriquées, et pouvaient se dérouler parallèlement au déplacement des têtes de lecture.

Le panneau avant du DEUCE comportait deux écrans CRT : l'un montrait le contenu actuel des registres, tandis que l'autre montrait le contenu de l'un des magasins de ligne à retard de mercure.

À partir de 1958 environ, sept lignes à retard supplémentaires pouvaient être connectées, donnant 224 mots supplémentaires de stockage à grande vitesse. Un IBM 528 combiné lecteur-poinçon pourrait être substitué à l'équipement Hollerith, donnant les mêmes vitesses d'entrée/sortie, auquel cas la machine s'appelait Mark II. La conversion automatique des données alphanumériques en BCD a été fournie en entrée, et l'opération inverse en sortie, pour les quatre-vingts colonnes de carte. Sur cet équipement, la lecture et le poinçonnage pourraient se dérouler simultanément, si nécessaire, et ainsi pourraient être utilisés pour lire un enregistrement, le mettre à jour, puis poinçonner un enregistrement mis à jour simultanément à la lecture dans l'enregistrement suivant. Avec les sept lignes à retard supplémentaires, le DEUCE était noté Mark IIA.

Logiciel

Les principaux langages de programmation de haut niveau étaient GEORGE (General Order Generator), ALPHACODE, STEVE, TIP, GIP et ALGOL . Les traducteurs de langage assembleur inclus ZP43 et STAC.

Inventé par Charles Leonard Hamblin en 1957, GEORGE était le plus proche des langages de programmation actuels. Il utilisait la notation polonaise inversée . Par exemple, pour évaluer e = ay 2 + par + c, on a écrit

a y dup × × b y × + c + (e).

où "dup" duplique l'entrée précédente, étant la même chose que d'utiliser "y" ici.

GEORGE a fourni un accumulateur à 12 positions en tant que pile pop-up déroulante. L'utilisation d'un nom de variable dans un programme (par exemple, 'd') a amené la valeur de la variable 'd' dans l'accumulateur (c'est-à-dire poussé d sur le dessus de la pile), tout en mettant un nom entre parenthèses {par exemple, (d ) } affecté à la variable 'd' la valeur au sommet de la pile (accumulateur). Pour détruire (faire sauter et jeter) la valeur en haut de la pile, le point-virgule (;) a été utilisé. Le programme GEORGE suivant lit dix nombres et imprime leurs carrés :

1, 10 rep (i)
   read
   dup ×
   punch
   ;
]

Dans le programme ci-dessus, la commande "dup" dupliquait le haut de la pile, de sorte qu'il y avait alors deux copies de la valeur en haut de la pile.

GIP (General Interpretive Programme) était un programme de contrôle permettant de manipuler des programmes appelés « briques ». Son service principal était l'exécution de programmes parmi les centaines de la bibliothèque d' algèbre linéaire DEUCE . La préparation d'un tel programme impliquait de sélectionner les briques requises (sur des cartes perforées), de les copier et de GIP dans une perforation de reproduction, et d'assembler les copies dans un jeu de cartes. Ensuite, des mots de code simples seraient écrits pour utiliser les briques pour effectuer des tâches telles que : multiplication matricielle ; inversion de matrice; arithmétique matricielle terme par terme (addition, soustraction, multiplication et division); résolution d'équations simultanées; saisir; et sortie. Les dimensions des matrices n'ont jamais été spécifiées dans les mots de code. Les dimensions ont été prises à partir des matrices elles-mêmes, soit à partir d'une carte précédant les cartes de données, soit à partir des matrices stockées sur tambour. Ainsi, les programmes étaient entièrement généraux. Une fois écrit, un tel programme gérait n'importe quelle taille de matrices (jusqu'à la capacité du tambour, bien sûr). Un programme court pour lire une matrice à partir de cartes, transposer la matrice et poinçonner les résultats sur des cartes nécessite les mots de code suivants :

0,   0,   5, 1
5,   0, 120, 2
120, 0,   0, 3

Dans chacun des mots de code, le quatrième nombre est le numéro de brique. Le premier mot de code spécifie que la matrice est lue à partir des cartes et stockée à l'adresse de tambour 5 ; le deuxième mot de code précise que la matrice à l'adresse de tambour 5 est transposée, et le résultat est stocké à l'adresse de tambour 120 ; et les troisièmes poinçons qui en résultent sur les cartes.

STAC était un macro-assembleur. La plupart des instructions étaient écrites sous la forme d'un transfert, en décimal, comme 13-16, signifiant copier le mot du registre 13 vers le registre 16. L'emplacement de l'instruction n'était pas précisé. STAC a alloué une instruction à un mot dans une ligne à retard et a calculé les six composantes de l'instruction binaire. Il attribuait l'instruction suivante à un emplacement optimal, à exécuter dès que l'instruction précédente était terminée, si possible.

Le programme suivant lit une valeur, n, puis lit n entiers binaires. Il poinçonne l'entier et son carré. Les commentaires en minuscules expliquent l'instruction.

1.0 12-24      start the card reader. The location of the program is specified as 1.0.
     0-13X     read one number (n) from the card reader. The letter X causes the computer to wait
               until the first row of the card has arrived at the reading station.
R2  12-24      start or re-start the card reader.
     0-16X     read one number to be squared, store it in the multiplier register.
     9-24      stop the card reader.
    16-21.3    copy the number to the multiplicand register.
    30-21.2    clear the low-order bits of the multiplicand register.
     MULT
    10-24      start the card punch.
    21.2-29X   send the square to the card punch.
     9-24      stop the card punch.
    27-26      decrement n.
    13-28  R1  test for zero. Branch on zero to R1; branch on not zero to R2.
R1   1-1X      halt; the program is complete.

STAC produirait les instructions suivantes (en plus du programme binaire). L'emplacement mémoire de chaque instruction est indiqué à gauche.

1.0  12-24
1.2   0-13X
1.4  12-24
1.6   0-16X
1.8   9-24
1.10 16-21.3
1.13 30-21.2
1.16  0-24    wait 1
1.18  1-1     wait 1
1.20 10-24
1.22 21.2-29X
1.24  9-24
1.26 27-26
1.28 13-28 1.3
1.3   1-1X

Les numéros d'attente et de synchronisation ne sont pas affichés, à l'exception de la multiplication.

La programmation

La programmation du DEUCE était différente des autres ordinateurs. La nature sérielle des lignes à retard exigeait que les instructions soient ordonnées de telle sorte que lorsqu'une instruction a terminé son exécution, la suivante soit prête à émerger d'une ligne à retard. Pour les opérations sur les registres uniques, le moment le plus tôt auquel l'instruction suivante pouvait être obéie était de 64 microsecondes après la présente. Ainsi, les instructions n'étaient pas exécutées à partir d'emplacements séquentiels. En général, les instructions peuvent transférer un ou plusieurs mots. Par conséquent, chaque instruction spécifiait l'emplacement de l'instruction suivante. Une programmation optimale signifiait qu'à mesure que chaque instruction était exécutée, la suivante sortait tout juste d'une ligne à retard. La position des instructions dans le magasin pourrait grandement affecter les performances si l'emplacement d'une instruction n'était pas optimal.

La lecture des données du lecteur de cartes se faisait en temps réel – chaque ligne devait être lue au fur et à mesure qu'elle passait les brosses de lecture, sans s'arrêter. De même pour le perforateur de carte ; le mot pour une rangée particulière était préparé à l'avance et devait être prêt lorsqu'une rangée donnée de la carte était en place sous les couteaux de perforation. Le mode normal de lecture et de poinçonnage était binaire. L'entrée et la sortie décimales ont été effectuées via un logiciel.

La mémoire à grande vitesse se composait de quatre registres à mot unique de 32 bits chacun, de trois registres à mot double et de deux registres à mot quadruple. Chaque mot de 32 bits des registres de mots doubles et quadruples pourrait être adressé séparément. Ils pouvaient également être accédés par paire et, dans le cas des registres quadruples, par groupe de trois ou quatre. La mémoire d'instructions se composait de douze lignes à retard au mercure, chacune de 32 mots, et numérotées de 1 à 12. La ligne à retard 11 (DL11) servait de tampon entre le tambour magnétique et la mémoire à grande vitesse. Étant une "machine de transfert", les données pourraient être transférées un mot à la fois, une paire de mots à la fois, et n'importe quel nombre de mots jusqu'à 33 à la fois. Ainsi, par exemple, 32 mots lus à partir du tambour pourraient être transférés en bloc vers n'importe laquelle des autres lignes à retard ; quatre mots pouvaient être transférés sous forme de bloc d'un registre quadruple à l'autre, ou entre un registre quadruple et une ligne à retard, le tout avec une seule instruction. Les 32 mots d'une ligne à retard pourraient être additionnés en les passant à l'additionneur simple (au moyen d'une seule instruction).

Par un lien spécial entre DL10 et un registre, à savoir le registre 16, DL10 pourrait être utilisé comme pile déroulante.

Production

Les trois premières machines ont été livrées au printemps 1955 ; à la fin de 1958, un modèle amélioré DEUCE Mark II est apparu. Cette version utilisait un lecteur de carte et un poinçon combinés. Le lecteur et le poinçon IBM 528 combinés se comportaient comme les unités Hollerith séparées des anciennes machines DEUCE Mark I; cependant, il était également fourni avec une conversion matérielle des données alphanumériques en BCD en entrée, et vice versa en sortie. Les données pourraient également être lues et perforées simultanément à 100 cartes par minute. Le DEUCE Mark IIA a fourni sept lignes à retard supplémentaires au mercure, chacune de 32 mots.

Au total, 33 machines DEUCE ont été vendues entre 1955 et 1964, dont deux ont été achetées par le motoriste Bristol Siddeley .

Le succès de DEUCE était dû à sa bibliothèque de programmes de plus de 1000 programmes et sous-routines.

Caractéristiques matérielles

DEUCE Mark 0 et I :

Clock rate         1 MHz
Word size         32 bits
High speed store 384 words
Arithmetic:
  one 32-bit accumulator;
  one 64-bit accumulator that could be used also as two 32-bit accumulators.
  addition/subtraction
     64 microseconds single length,
     96 microseconds double precision
     Addition of a single-length number to a double-length number,
     with automatic sign extension, 64 microseconds.
  multiplication 2080 microseconds
  division       2112 microseconds
magnetic drum 8192 words
  separate read heads and write heads
  Track read time  15 ms
  Head shift time  35 ms
card reader speed 200 cards per minute
card punch speed  100 cards per minute
paper tape reader speed 850 character/second
  tape: 5, 7, 8-row tape.
  stopping time:    ½ millisecond (m.s.)
  start time       20 milliseconds
paper tape punch speed 25 characters/second
  tape: 5 or 7 rows
Software floating-point (average times):
  addition/subtraction 6  m.s.
  multiplication       5½ m.s.
  division             4½ m.s.

DEUCE MARK II :

  As for DEUCE Mark I.
  A combined IBM 528 card reader and punch could read cards at 200 per minute, and punch at 100 cards per minute.  When simultaneously started, the reader and punch ran at 100 cards per minute. Automatic conversion to and from 6-bit characters was provided. This mode was in addition to the programmed conversion provided by the Mark I DEUCE.

DEUCE MARK IA ET IIA :

  As above, with 7 extra delay lines providing 224 words of high-speed store.

Remarques : Le multiplicateur et le diviseur étaient asynchrones. Plusieurs entiers pourraient être multipliés en une seule exécution de l'instruction de multiplication, en insérant des entiers dans les registres multiplicateur ou multiplicande pendant la multiplication, et en extrayant les résultats pendant la multiplication. D'autres effets spéciaux comprenaient le comptage des bits dans un mot et la conversion de décimal codé binaire (BCD) en binaire. De même pour la division, qui pourrait être utilisée pour convertir des nombres entiers en décimal codé binaire (BCD) et pour convertir des livres, des shillings et des pence en pence.

Voir également

Les références

Liens externes