1. 2012589 La présente invention se rapporte a un dispositif de traitement central d'un ordinateur numérique et, plus particulièrement, à un procédé et à un appareil permettant de canaliser le traitement à la fois des instructions et des opérandes. 5 La vitesse à laquelle un ordinateur peut effectuer ses opéra tions s'est progressivement accrue depuis l'avènement des calculatrices numériqttes électroniques telles que la calculatrice Eniac de l'Université de Pennsylvanie, qui est décrite dans le brevet des Etats-Unis d'Amérique N° 3 120 606. 10 V Les progrès de la technologie des composants ont été tels que les limitations de la vitesse des ordinateurs ne sont plus conditionnées par les composants eux-mêmes mais uniquement par les conducteurs qui les interconnectent et qui, en raison de leur longueur peuvent introduire des limitations du fait du temps de propagation 15 des données sur ces conducteurs, Le temps nécessaire pour effectuer une opération logique et certaines opérations arithmétiques a été réduit à une valeur inférieure à 100 nanosecondes environ. Les progrès de la technologie des composants ont donc permis l'exécution d'opérations, dans des unités arithmétiques, en des intervalles de 20 temps inférieurs aux intervalles exigés par la mémoire et les dispositifs de transfert associés actuellement disponibles pour transmettre des données à l'unité arithmétique et pour recevoir des données de celle-ci. On a constaté que lors du traitement de certains types de don- 25 nées, l'ensemble du fonctionnement d'une unité de traitement peut être considérablement amélioré en tirant avantage de la répétition une qu'impliquent de nombreuses opérations et qui porte sur tout ou/par— tie d'une môme information. L'invention concerne un ordinateur particulièrement bien adapté au traitement d'ensembles importants de 30 données bien ordonnées, et dans lequel la vitesse maximale des opérations dans l'unité arithmétique est utilisée. L'invention prévoit l'utilisation d'un dispositif de traitement conçu et construit de manière à comprendre, dans ses possibilités, la spécification d'opérations vectorielles complexes au 35 niveau de la machine. 69 23317 2. 2012589 L'invention vise un nouvel ordinateur offrant la souplesse nécessaire pour assurer des types classiques d'opérations de traitement de données et, en particulier, adaptable au traitement à grande vitesse de grands ensembles de données ordonnées. L'ordi- 5 nateur est un appareil scientificrue perfectionné caoable d'utili- "de traitement , ser l'unité arithmétique avec un haut rendement lors d'opérations/ de données qui exigeait jusqu'à présent un échange relativement complexe entre une unité de traitement centrale et le dispositif de mémoire. J-0 L'invention implique l'utilisation d'un dispositif de traite ment capable de spécifier des opérations vectorielles complexes au niveau de la machine. L'ordinatéur comprend une unité de traitement centrale contenant une unité arithmétique accessible à partir de la mémoire 15 par l'intermédiaire de deux canaux intermédiaires, et accessibles à la mémoire par un unique canal intermédiaire auquel e.st associé un fichier à registres adressables par un programme, capable d'emmagasiner des paramètres vectoriels en langage machine. Les mémoires intermédiaires ou tampons comprennent des registres d'emmaga-20 sinage de paramètres et de travail, l'autre registre étant monté de manière à commander le fonctionnement de l'unité arithmétique. On prévoit en outre des moyens sensibles à une instruction de programme pour charger des paramètres vectoriels eh langage machine à partir du fichier de registres dans les registres d'em-25 masinage tampons, moyennant quoi de grands ensembles de données peuvent être traités directement et continuellement en réponse à la spécification occasionnelle, au niveau de la machine, des opérations vectorielles complexes. Dans le cadre défini ci-dessus, une unité arithmétique à 30 grande vitesse et un dispositif de traitement d'instructions à grande vitesse sont prévus, suivant l'invention, pour permettre BAD ORIGINAL 69 23317 3 2012589 la transmission des données S la cadence rendue possible par la commande et la stabilisation au moyen d'éléments tampons prévus dans l'ordinateur. Suivant l'invention, il est prévu une unité arithmétique comportant une série de sous-unités spécialisées ef-5 fectuant chacune une opération spécifique sur des opérandes d'entrée. Des moyens sont prévus pour connecter sélectivement l'une quelconque de ces sous-unités en vue de la réception d'opérandes d'entrée destinés à l'unité arithmétique et pour combiner les sous-unités suivant une configuration sérielle choisie quelconque. 10 Des moyens de commande sont prévus pour l'alimentation synchrone en opérandes à travers la série choisie de sous-sections arithmétiques en vue de l'exécution simultanée de différentes phases ou opérations élémentaires sur différents opérandes, à l'intérieur de l'unité arithmétique. 15 Suivant un autre aspect de l'invention, l'unité arithmétique constitue l'un des éléments d'une canalisation d'instructions dans laquelle des unités de traitement d'instructions agissent simultanément sur différentes instructions arrivant dans l'unité arithmétique . 20 D'autres caractéristiques de l'invention apparaîtront au cours de la description qui va suivre. Aux dessins annexés, donnés uniquement à titre d'exemples : - la Fige 1 représente un agencement préféré des sous-ensembles de l'ordinateur; 25 — la Fig. 2 est un schéma symbolique de l'ordinateur de la Fig. 1 ; — la Fig. 3 est un schéma symbolique qui montre ime commutation de contexte entre l'unité de traitement centrale et l'unité de traitement périphérique des Fig0 1 et 2; BAH ORIGINAL 69 23317 2012589 - la Fig. 4 est un schéma plus détaillé du dispositif de commutation de la Fig. 3» - la Fig. 5 est un diagramme fonctionnel de l'unité de traitement centrale des Fig. 1 à 4; - la Fig. 6 représente une mise en mémoire intermédiaire pour la transmission d'une série de données vectorielles à une unité arithmétique ; - la Fig. 7 est un schéma symbolique de l'unité de traitement centrale des Fig. 1 à 4; - la Fig. 8 représente une unité arithmétique à double canalisation pour l'unité de traitement centrale des Fig. 1 et 2j - la Fig. 9 représente des éléments de l'unité de traitement centrale qui sont utilisés pour la commutation de contexte décrite à propos des Fig. 3 à 7> " - la Fig.,10 représente schématiquement un partage du temps entre des dispositifs de traitement virtuels dans l'unité de traitement périphérique des Fig. 1 et 2; - la Fig. 11 est un schéma symbolique de l'unité de traitement périphérique ; - la Fig. 12 montre l'accès à des éléments du registre de communication de la Fig. 11; et, - la Fig. 13 représente le programmateur de la Fig0 11. Pour faciliter la compréhension de l'invention, on va tout d'abord décrire dans son ensemble l'ordinateur scientifique perfectionné, dont l'invention fait partie; les sous-ensembles individuels et le rôle de l'invention, ainsi que son interaction avec d'autres sous—ensembles de l'ordinateur seront ensuite exposés. Comme on peut le voir sur la Fig0 1, l'ordinateur comprend une unité de traitement centrale (CPU) 10 et une unité de traitement périphérique (PPU) 110 Une mémoire est prévue à la fois pour la CPU 10 et pour la PPU 11 sous la forme de quatre modules 12 à 15 d'unités d'emmagasinage sur pellicule mince. De telles unités d'emmagasinage peuvent être du type connu dans la technique. Sous la forme représentée, chacun des modules d'emmagasinage traite 16 38^ mots. La mémoire présent© une durée de cycle de î60 nanosecondes et, en moyenne, un temps d'accès de 100 nanosecondes. Les mots do mémoire qui comprennent 256 bits chacun sont subdivisés en.huit zones de 32 bits chacune. En conséquence, les mots de mémoire "sont emmagasinés en blocs do S mots dans chacun des mots de mémoire à 256 bits» soit 2 048 groupes de mots par module. BAD ORIGINAL 69 23317 5. 2012589 Outre les modules d'emmagasinage 12 à 15, il est prévu des modules 16 et 17 d'emmagasinage sur disque à accès rapide dont le temps d'accès est en moyenne d'environ 16 millisecondes. Une unité de commande do mémoire 18 est également prévue pour 5 commander le fonctionnement de la mémoire, l'accès à celle-ci et 1'emmagasinage. Un lecteur de cartes 19 et une perforatrice de cartes 20 sont prévus pour l'entrée et la sortie. En outre, des appareils à bande 21 à 26 sont prévus pour des fonctions entrée/sortie (I/O) ainsi que pour l'emmagasinage. Une imprimante par lignes 27 10 est également prévue pour le service de sortie sous la commande de la PPU 11 « On remarquera que l'ordinateur comporte ainsi une hiérarchie de mémoire ou d1emmagasinage à quatre niveaux. L'emmagasinage d'accès le plus rapide s'effectue dans la CPU 10. Le second accès le 15 plus rapide est ceJni des unités d'emmagasinage à pellicule mince 12 à 15. L'emmagasinage le plus aisément disponible ensuite est celui des unités d1 emmagasinage à disque 16 et 1?» Enfin, les unités à bande 21 à 26 complètent l'ensemble d'emmagasinage. Une console de contrôle 28 à deux tubes à rayons cathodiques 20 (CRT) est prévue. La console 28 comprend deux unités terminales à clavier et à tube à rayons cathodiques adaptées qui sont commandées par la PPU 11 en tant que dispositifs entrée/sortie. Elle peut également être utilisée par un opérateur pour commander l'ordinateur à des fins de contrôle général du fonctionnement (Hardware et Soft— 25 ware) et en vue d'une interaction avec l'ordinateur dans un sens opérationnel permettant à l'opérateur, au moyen de la console 28, d'interrompre un programme donné en un point choisi pour passer en revue une opération quelconque, son déroulement ou ses résultats, puis pour déterminer l'opération suivante. De telles opérations 30 peuvent impliquer un nouveau traitement des données ou préparer l'unité à subir un transfert en vue de fonctionner avec un programme différent ou encore de traiter des données différentes. Dans l'ordinateur représenté et brièvement décrit ci—dessus, il existe plusieurs combinaisons d'éléments qui coopèrent d'une ma-35 nière nouvelle et originale pour permettre une amélioration générale des capacités de traitement de données de l'ordinateur, en parti culier lorsque ces données se présentent en ensembles bien ordonnés et en quantité considérable. L'une des.combinaisons en question assure une commutation auto 40 matique de contexte dans un ordinateur à dispositifs de traitement 69 >23317 6\ 2012589 multiples et à programmation multiple, dans lequel une relation u-nique en son genre ost prévue entre l'imité de traitement centrale 10 et l'unité de traitement périphérique 11. Sous un autre aspect de l'invention, il est prévu un dispos!— 5 tif spécial à l'intérieur de la CPU 10 pour permettre le traitement de données à une vitesse considérablement plus élevée que par le passé en utilisant des dispositifs intermédiaires pour l'introduction ordonnée de données dans l'unité arithmétique. Un autre aspect de l'invention implique une forme originale 10 d'acheminement qui permet d'obtenir un degré appréciable de parallélisme dans les opérations à l'intérieur et à l'extérieur de l'unité arithmétique. Un autre aspect encore vise des dispositions permettant un » partage du temps entre une série de dispositifs de traitement vir— 15 tuels inclus dans la PPU 11. Avant de décrire les' caractéristiques de l'ordinateur énoncées ci-dessus individuellement, on va tout d'abord décrire, d'une manière plus générale, l'organisation de l'ordinateur en so référant à la Fig. 2. Les modules de mémoires 12 à 15 sont contrôlés par la 20 commande de mémoire 18 en vue de l'introduction de données de mots dans ces modules ou de l'extraction de données de mots à partir de ces modules. En outre, la commande de mémoire 18 assure le traitement logique, l'ordonnancement et la protection des données à l'intérieur des modules de mémoire suivant les besoins. 25 Un conducteur omnibus de signal 29 s'étend entre la commande de mémoire 18 et itne unité de canal "d ' information 30 qui est connectée aux disques 16 et 17» L'unité de canal d'information 30 a pour unique fonction de supporter la mémoire représentée sous la forme des disques 16 et 17 et est un simple calculateur à programme 30 câblé capable d'introduire des données dans les disques de mémoire 16 et 17 et•d'extraire des données de ces disques. Sur ordre seulement, l'unité de canal dinformation 30 peut transférer des données de mémoire à partir des disques 16 et 17, par l'intermédiaire du conducteur omnibus 29 et de la commande de mémoire 18, aux modules 35 de mémoires 12 à 15. Deux canaux bidirectionnels s'étendent entre les disques 16 et 17 et l'unité de canal d'information 30 à raison d'un canal pour chaque unité à disque. Pour chaque unité d'information, un seul mot à la fois est transmis entre l'unité considérée et l'unité de canal h0 d'information 30. Les données provenant des modules de mémoires 12 69 23317 7. 2012589 à 15 sont transmises au canal d'information 30 de la commande de mémoire 18 et à partir de ce canal en blocs de huit mots. Une mémoire à tambour magnétique 31 (représentée en trait interrompu) éventuellement prévue, peut être connectée à l'unité de 5 canal d'information 30 lorsqu'on désire augmenter la capacité de mémoire de l'ordinateur. Un unique conducteur omnibus 32 connecte la commande de mémoire 18 à la PPU 11o Cette dernière commande tous les dispositifs entrée/sortie i/O à l'exception des disques 16 et 17. Les données 10 provenant des modules de mémoires 12 à 15 sont transmises à la PPU et à partir de celle-ci, par l'intermédiaire de la commande de mémoire 18, en blocs de huit mots. Après une lectvire dans la mémoire, une opération lecture/remise en mémoire est effectuée dans le module de mémoire intéressé. 15 Les huit mots sont "triés", un seul d'entre eux étant utilisé à l'intérieur de la PPU 11. Ce "triage" des mots d'information à l'intérieur de la PPU 11 est désirable en raison de l'utilisation relativement lente de données exigée par la PPU 11 et par les dispositifs X/0 en comparaison de la CPU 10. Une cadence de transfert de 20 mots disponibles types, pour un dispositif 1/0 commandé par la PPU 11 est d'environ 100.000 mots par seconde. La PPU 11 contient huit dispositifs de traitement virtuel, dont la majorité peut être programmée de manière à commander divers dispositifs parmi les dispositifs X/0, suivant les besoins. Les uni-25 tés à bande 21 et 22 fonctionnent avec une bande magnétique de 25,4 mm de largeur, tandis que les unités à bande 23 à 26 fonctionnent avec des bandes magnétiques de 12,7 min pour améliorer les possibilités de l'ordinateur. - . • La PPU 11 agit sur le programme contenu dans la mémoire et ex-30 écuté par des dispositifs de traitement virtuel d'une manière extrêmement efficace et assure en outre des commandes de contrôle de programme exécutés dans la CPU 10„ La CPU 10 est connectée aux modules de mémoire 12 à 15 à travers la commande de mémoire 18 par l'intermédiaire d'un conducteur 35 omnibus 33. La CPU 10 peut utiliser les huit mots d'un bloc de mots obtenus à partir des modules do mémoire 12 à 15. Eu outre, la CPU 10 est capable de lire ou d'écrire n'importe quelle combinaison de ces huit mots. Le conducteur omnibus 33 traite trois mots toutes les 50 nanosecondes, à savoir deux mots d'entrée dans la CPU 10 et 40 un mot de sortie dans la commande de mémoire 180 69 23317 8. 2012589 Comme décrit plus loin, la CPU 10 est capable d'effectuer des opérations vectorielles composées directement, spécifiées au niveau de la machine sans qu'il soit nécessaire de traduire un langage de compilateur quelconque. Cette possibilité élimine la nécessité d' — 5 instructions fragmentaires pour une longue suite d'opérations, car la CPU 10 exécute de longues opérations avec une instruction Tonique. Cette propriété de la CPU 10 est'assurée par des opéx'ations intermédiaires particulières, effectuées entre la commande de mémoire 18 et l'unité arithmétique de la CPU 10. En outre, une opéra— 10 tion d'acheminement de données perfectionnée est assurée à l'intérieur de l'unité arithmétique contenue dans la CPU 10 et autour de cette unité. Un conducteur omnibus 3^ est prévu à la sortie de la commande » de mémoire 18; il est destiné à être utilisé lorsque la capacité de 15 l'ordinateur doit être augmentée par addition d'autres unités de traitement ou analogues. Chac^in des conducteurs omnibus 29» 32, 33 et 3^ est relié logiquement et indépendamment à chaque module de mémoire, ce qui permet de faire se chevaucher les cycles de mémoire pour augmenter la 20 vitesse de traitement. Un ordre de priorité fixe est de préférence établi entre les commandes de la mémoire pour permettre de satisfaire à des demandes contradictoires provenant des diverses unités connectées à la commande de mémoire 18. La commande de mémoire interne 18 a priorité sur tous les autres dispositifs, les conduc-25 teurs omnibus extérieurs 29» 32, 33 et jh étant desservis ensitite et dans cet ordre. Les connecteurs entre les dispositifs de traitement et les conducteurs omnibus externes sont identiques, ce qui permet de placer les dispositifs de traitement dans n'importe' quel autre ordre de priorité désiré. 30 La Fig» 3 représente sous forme de schéma symbolique le monta ge d'intez'face entre la PPU 11 et la CPU 10, destiné, à assurer une commutation automatique de contexte de la CPU tout en établissant des prévisions pour éliminer un échange prenant du temps entre la PPU 11 ot la CPU 10 « 35 En fonctionnement, la CPU 10 exécute les programmes de l'uti lisateur sur la base de programmes multiples0 La PPU 11 satisfait à des demandes des programmes on cours d'exécution par la CPU 10, de services d'entrée et de sortie. La PPU 11 établit en outre la séquence des programmes de l'utilisateur stir lesquels agit la CPU 10. 40 Plus particulièrement, les programmes de l'utilisateur exécu— » 69 23317 9. 2012589 tés à l'intérieur de la CPU 20 exigent un service I/O de la PPU 11, soit par un ordre (SCP) "appel et exécution" de l'ordinateur, soit par un ordre (SCW) "appel et attente" de l'ordinateur. Le programme d'utilisateur présent dans la CPU 10 émet l'un de ses ordres en ex— 5 écutant une instruction qui correspond à l'appel. L'ordre SCP est émis par un programme d'utilisateur lorsque ce programme peut se poursuivre sans attendre le service l/O mais, pendant qu'il se déroule, la PPU 11 peut fixer ou adapter de nouvelles données ou un nouveau programme qui seront nécessaires à la CPU lors d'opérations 10 futures. La PPU 11 assure alors le service I/O en temps voulu à la CPU 10, en vue de son utilisation par le programme d'utilisateur. L'ordre SCP est appliqué, par l'intermédiaire du parcours de signal 41 , à la PPU 11. L'ordre SCW est émis par un programme d'utilisateur à l'inté-15 rieur de la CPU 10 lorsqu'il n'est pas possible que le programme se poursuive sans qiie le service l/O voulu soit assuré par la PPU 11. Cet ordre est émis par l'intermédiaire du conducteur 420 Suivant l'invention, la PPU 11 analyse constamment les programmes contenus dans la CPU 10 et non en cours d'exécution, pour déterminer lequel 20 de ces programmes est celui qui sera exécuté le premier par la CPU 10. Après la sélection du programme suivant, un dispositif 44 d'affichage de commutation est actionné. Lorsque le programme en cours d'exécution par la CPU 10 atteint un état dans lequel une demande d'ordre SCW est émise par la CPU 10, l'ordre SCW est appliqué au 25 conducteur 42 de manière à transmettre un signal de commutation de contexte d'exécution à un conducteur 45. Plus précisément, le dispositif d'affichage de commutation 44 ouvre le commutateur 43 de sorte qu'une indication du programme suivant à exécuter est automatiquement transmise, par 1'intermé— 30 diaire du conducteur 45, à la CPU 10. Ceci permet au programme suivant ou à une partie du programme suivant, d'être automatiquement choisi et exécuté par la CPU 10 sans le retard qu'impliquerait généralement l'interrogation par la PPU 11 et une réponse ultérieure de la PPU 11 à la CPU 10. Si, pour une raison quelconque, la PPU 11 35 n'a pas encore fourni la description du programme suivant, le dispositif d'affichage de commutation 44 n'est pas actionné et le commutateur de contexte est bloqué. Dans ce cas, le programme d'utilisateur contenu dans la CPU 10 et qui a émis l'appel SGW se trouve encore dans le - dispositif de traitement d'utilisateur- mais il est 40 dans un état inactif dans l'attente de là commutation de contexte. 69 23317 2012589 Lorsque cette commutation se produit, le dispositif d'affichage de commutation 44 est rétabli. La possibilité do prévision.assurée par la PPU 11, en ce qui concerne le programme d'utilisateur contenu dans la CPU 10 et qui n'est pas en cours d'exécution permet d'ef-5 fectuer la commutation de contexte automatiquement sans exiger aucun échange entre la CPU 10 et la PPU 11. Le temps mort de la CPU 10 est considérablement réduit par ce moyen qui élimine l'échange usuel dans l'ordinateur. Après la description générale ci-dessus du dispositif de com-10 mutation de contexte interposé entre l'unité de traitement centrale 10 et l'unité de traitement périphérique 11, on peut maintenant examiner la Fig. 4 où un montage plus détaillé a été représenté pour montrer d'autres détails du dispositif de commande de commutation de contexte. 15 Sur la Figi 4, la CPU 10, la PPU 11 et l'unité de commande de mémoire 18 ont été représentées sous forme de diagramme fonctionnel. La CPU 10 produit un signal sur le conducteur 41o Ce signal est produit par la CPU 10 lorsqu'au cours de l'exécution d'un programme donné, elle atteint une instruction SCP. Ce signal apparaît alors 20 sur le conducteur 41 qui est appliqué à une porte OU 50* La CPU peut être programmée de manière à produire un signal SCW qui apparaît sur le conducteur 42. Le conducteur 42 est connecté à la seconde entrée de la porte OU 50 ainsi qu'à la première entrée d'une porte OU 51o 25 Un conducteur 53 s'étend entre la CPU 10 et la seconde entrée de la porte OU 51 et fournit un signal d'erreur en réponse à une opération donnée de la CPU 10 dans laquelle la présence d'une erreur implique une modification du fonctionnement de la CPU. C.ette modification peut consister, par exemple, en une commutation de la 30 CPU, de l'exécution d'un programme en cours à celle d'un programme suivant. Sur le conducteur 54, un signal d'échantillonnage peut apparaître à partir de la CPU 10. Le signal d'échantillonnage apparaît sous la forme d'un état de tension qui est établi par la CPU après 35 l'apparition de l'un quelconque des signaux sur les conducteurs 41, 42 ou 53. La présence d'un signal sur le conducteur 41 ou sur-le conducteur 42 joue lé rôle d'une demande adressée à la PPU 11 pour permettre à la CPU 10 de transférer un code donné à partir du program-40 me alors en cours d'exécution dans la CPÙ 10, dans la mémoire par v 69 23317 2012589 l'intermédiaire de l'unité de commande de mémoire 18, par exemple par l'intermédiaire du parcours 33. Le but est d'emmagasiner un code dans une cellule réservée de la mémoire centrale 12 à 15 (Fig. 1) pour la durée de l'intervalle nécessaire à la PPU 11 pour interro-5 ger cette cellule puis exécuter une série d'instructions en fonction du code emmagasiné dans ladite cellule. Dans l'ordinateur suivant l'invention, un unique emplacement de mot est réservé dans la mémoire 12 à 15 en vue de son utilisation par l'ordinateur lors de l'opération de commutation et de commando de contexte. Le signal 10 apparaissant sur le conducteur 55 sert à indiquer à la PPU 11 qu'une séquence déclenchée soit par un signal SCP sur le conducteur 41, soit par un signal SCW sur le conducteur 42, a été achévée. Sur le conducteur $6 un signal représentant un ordre d'exécution est appliqué à partir de la PPU 11 à la CPU 10 et, comme dé-15 crit plus loin, ce signal est utilisé comme moyen d'arrêter le fonctionnement de la CPU '10 lorsque certaines conditions régnent dans la PPU 11. Sur le conducteur 57 apparaît un signal qui est produit par la CPU en réponse à la présence d'un signal SCW sur le conducteur 42 20 ou d'un signal d'erreur sur le conducteur 53« La PPU 11 déclenche une série d'opérations au cours de laquelle la CPU 10, après avoir atteint un point de son fonctionnement où elle ne peut plus continuer, est contrainte de transférer à la mémoire un code représentant l'état général de la CPU 10 au moment où elle interrompt son 25 fonctionnement sur ce programme. En outre, après un tel emmagasinage, un état entièrement nouveau est "commuté dans la CPU 10 de façon que celle—ci puisse procéder à l'exécution d'un nouveau programme. Ce nouveau programme commence à l'état représenté par le code commuté. Lorsqu'un tel signal apparaît sur le conducteur 57, la PPU 11 30 est conditionnée de manière à permettre une réponse au signal suivant des conducteurs 41, 42 ou 53• Comme on le verra plus loin, la PPU 11 contrôle alors l'état apparaissant sur le conducteur 57 et, en Éponse à un état donné sur ce conducteur, déclenche alors le programme immédiatement suivant et la transmission des données à u-35 tiliser par la CPU 10 lorsqu'un signal SCW ou un signal d'erreur apparaissent ensuite sur les conducteurs 42 et 53j respectivement. Le conducteur 45, représenté sur les Fig. 3 et 4, fournit à la CPU 10 une indication lui permettant d'exécuter l'ordre de commutation d'un programme à un autx^e. 40 Le signal du conducteur 58 indique à la CPU 10 que la cellule 69 23317 T2 2012589 de mémoire réservée et sélectée est disponible et peut être utilisée conjointement à l'émission d'un ordre SCP ou SCW. Le signal du conducteur 59 indique qu'en ce qui concerne l'unité de commande de mémoire, l'ordre de commutation a ébé exécuté 5 de sorte qu'une coïncidence de signaux sur les conducteurs 57 et 59 permet à la PPU 11 de préparer le changement d'état suivant de la CPU. Le signal du conducteur 60 est lé même que celui qui était apparu sur le conducteur 45, mais le conducteur 60 applique ce signal à l'unité de commande de mémoire 18 pour permettre à celle-ci de 10 procéder à l'exécution de l'ordre de commutation. On remarquera que le conducteur omnibus 32 et le conducteur omnibus 33 de la Fig. 4 sont tous deux des canaux à mobs multiples, capables de transmettre 8 mots ou 256 bits simultanément. On peut voir en outre sur la Fig. 4 que les composants de com-15 mutation sensibles aux signaux des conducteurs 41 , 42 et 53 à 60 sont matériellement disposés à l'intérieur de la PPU 11 et forment une section d'interface de celle-ci. Les circuits de commutation comprennent les portes OU 50 et 51* En outre, il est prévu des portes ET 61 à 67» une porte ET 43» une porte OU 68 et dix unités d'em— 20 magasinage à basculeurs bistables 71 à 75 » 77 à 80 et 44. La porte OU 50 est connectée par sa sortie à l'une des entrées de la porte ET 61. La sortie de la porte ET 61 est connectée à la borne d' actionneraient de l'unité 71» La sortie 0 de l'unité 71 est connectée à une seconde entrée de la porte ET 61 et à une entrée 25 des portes ET 62 et 63o La sortie de la porte OU 51 est connectée à la seconde entrée de la porte ET 62, dont la sortie est connectée à la borne d'action— nement de l'unité 72. La sortie 0 de l'unité 72 est connectée à l'une des entrées de chacune des portes ET 61 à 630 Le signal d'échan-30 tillonnage dti conducteur 54 est apj>liqué à la borne d'actionnement de l'unité 73. La sortie de l'unité 7 3 est connectée à l'une des entrées de chacune des portes ET 61 à 63. La fonction des unités 50, 51 > 61 à 63 et 71 & 73 est de permettre l'établissement d'un code sur un conducteur de sortie 81 35 lorsqu'un appel doit être exécuté et l'établissement d'un code sur le conducteur 82 si une fonction de commutation doit être exécutée. Initialement, cet état est établi par le signal d'échantillonnage du conducteur $4 qui alimente une entrée de chacune des portes ET 6l à 63. Un état d'appel n'apparaît siir le conducteur 81 que si les 40 états antérieurs de l'unité C71 et de l'unité S72 sont des états 69 23317 13. 2012589 zéro. D'une manière analogue, un état de commutation n'apparaît sur le conducteur 82 que si les états antérieurs des unités 71 et 72 étaient des états zéros. XI est à noter qu'un conducteur de rétablissement 83 est con-5 necté aux unités 71 et 72, celles-ci étant commandées par le programme de la PPU 11. Les unités 71 et 72 sont rétablies après l'exécution complète des fonctions d'appel ou de commutation. On remarquera que les conducteurs 81 et 82 aboutissent aux bornes 84a et 84b d'un jeu de bornes 84 accessibles au programme. 10 D'une manière analogue, les conducteurs de sortie 1 d^s unités 74, 75» 44, 77 et 78 aboutissent à des bornes accessibles au programme. Bien que toutes les unités 71 à. 75» 77 à 80 et 44 soient accessibles au programme, seules celles qui jouent un rôle en ce qui concerne l'opération considérée ici dans le cadré de la commutation de 15 contexte ont été représentées. Le conducteur 55 est' connecté à la borne d'actionnement de l'unité 74. Ceci assure l'enregistrement ou l'emmagasinage d'un code représentant le fait qu'un appel a été exécuté. Après la détermination par la PPU 11 de ce fait indiqué à la borne 84d, un signal de 20 rétablissement est appliqué par l'intermédiaire du conducteur 85» Un conducteur d'insertion de programme 86 aboutit à la borne d'actionnement de l'unité 75. La sortie 1 de l'unité 75 engendre un signal sur le conducteur 56 et est reliée à une borne d'interrogation de programme 84«î. On remarquera que l'unité 75 doit être réta— 25 blie automatiquement par le signal de sortie de la porte OU 68. En conséquence, il est nécessaire que la PPU 11 soit capable de déterminer l'état de l'unité 75» L'unité 44 est connectée, par sa borne de rétablissement, au conducteur.d'insertion de programme 88. La sortie O de l'unité 44 30 est connectée à l'une des entrées d'une porte ET 66 0 La sortie 1 de l'unité 44 est connectée à une borne d'interrogation 84f et, par l'intermédiaire d'un conducteur 89, à l'une des entrées de la porte ET 43. La sortie de la porte ET 66 est connectée à l'une des entrées de la porte OU 68. La seconde entrée de la porte OU 68 est 35 alimentée par l'intermédiaire de la porto ET 67„ L'une des entrées de la porte ET 67 est alimentée par la sortie 0 de l'unité 77» La seconde entrée de la porte ET 67 est alimentée, par l'intermédiaire du conducteur 81, à partir de l'unité 71 « L'entrée d'actionnement de l'unité 77 est alimentée par l'intermédiaire du conducteur d'in-40 sertion 91. Sa borne derétablissement est alimentée par l'intermé- BAO ORIGINAL 69 23317 2012589 diairo du conducteur 92. La fonction des unités kk et 77 et de leur montage associé est de permettre au programme présent dans la PPU 11 de déterminer, parmi los fonctions d'appel et de commutation é-tablies dans les unités 71 et72, lesquelles doivent être exécutées 5 et lesquelles doivent être inhibées. L'unité 78 est prévue pour permettre à la PPU 11 d'interroger et de déterminer quand une opération de commutation a été exécutée. L'unité 79 émet l'ordre sur les conducteurs 45 et 60 et cet ordre indique à la CPU 10 et à l'unité de commande de mémoire 18, respec— 10 tivement, qu'elles doivent procéder à l'exécution d'un ordre de commutation. L'unité 80 émet, sur le conducteur 58, un signal indiquant à la CPU 10 de procéder à l'exécution d'un ordre d'appel, mais seulement si les imités 71 et 77 ont leur sortie 1 exécutée. Ce qui précède montre la manière dont la commutation d'un pro— 15 gramme donné à un autre est effectuée, dans la CPU 10, automatiquement et en fonction de l'ensemble des conditions régnant dans la CPU 10 et sous la commande exercée par la PPU 11. Cette opération est dénommée "commutation de contexte" et est définie de façon plus précise par le tableau X ci-après qui décrit les opérations men-20 tionnées ci-dessus sous forme d'équations. Les caractéristiques marquantes d'une interface entre la CPU 10 et la PPU 11, permettant de traiter les ordres SCW et SCP ainsi que les opérations de commutation do contexte exigées par des erreurs sont les suivantes î 25 (a) une demande de la CPU peut être classée comme étant : (1) une demande de commutation de contexte exigée par une erreur; (2) un ordre SCP, ou (3) un ordre SCW; 30 (b) une seule demande do la CPU est- traitée à la fois; (c) la commutation de contexte et/ou l'exécution d'un appel sont automatiques et n'exigent pas l'intervention de la PPU, grâce à l'utilisation d'affichages séparés "appel" et "commutation"; (d) une seule cellule de mémoire est utilisée pour la communication 35 des ordres SCP et SCW5 (e) dos signaux d'exécution sépax'és sont prévus pour les fonctions "appel" et "commutation" d'un ordre SCW de sorte que l'appel peut êtro traité avant l'exécution de la commutation; (f) une commande marche/attente de la CPU est prévue; ho (g) tme interruption du fonctionnement de la PPU est prévue lorsque BAD ORIGINAL 69 23317 15 2012589 des demandes de la CPU contrôlées automatiquement ont été exécutées. Cette interruption peut être supprimée. Dix bits CR, c'est-à-dire des bits d'un ou plusieurs mots du registre de communication 431 (Fig. 11) qui sera décrit plus loin, 5 sont utilisés pour cette interface. Ces bits peuvent être décrits comme stiit en utilisant les symboles représentés sur la Fig. 4 : TABLEAU Io ' C Emmagasinage de demande d' "appel" de contrôleur (signal de demande c') 10 S Emmagasinage de demande de commutation de contexte (signal de demande s') L Emmagasinage demande/réponse charge C, S (signal de demande 1') Actionnement C = L C S c1 ) Rétablissement par la PPU à la fin Actionnement S = L C S s' ( du traitement de la demande 15 Actionnement L =1' Rétablissement L = C S L AS Affichage de commutation automatique de contexte Actionnement AS : par la PPU lorsqu'une commutation automatique de contexte doit être autorisée 20 Rétablissement AS : par la PPU lorsqu'une commutation automati que de contexte ne doit pas être autorisée AC Affichage de traitement automatique d'appel Actionnement AC : par la PPU lorsqu'un traitement automatique d'appel doit être autorisé 25 Rétablissement AC : par la PPU lorsqu'un traitement automatique d'appel ne doit pas être autorisé R Affichage de marche de la CPU Actionnement R : par la PPU lorsqu'on désire que la CPU fonctionne 30 Rétablissement R = AS S + .AC C CC Emmagasinage d'exécution d'appel (signal d'exécution cc') Actionnement CC = cc' Rétablissement CC : par la PPU lorsque C et S sont rétablis SC Emmagasinage d'exécution de commutation 35 (Signal d'exécution de la CPU : PSG )Signal d'exécution de la MCU : MCS Actionnement SC = PSC * MSC Rétablissement SC : par la PPU lorsque C et S sont rétablis PS Ordre à la CPU de procéder au déclenchement de la commutation 40 de contexte 69 23317 16. 2012589 Actionnement PS = AS * S Rétablissement PS : par l'a PPU lorsque C et S sont rétablis PC Ordre à la CPU de procéder au déclenchement do l'utilisation de l'appel de la mémoire. 5 Actionnement PC = AC * C Rétablissement PC : par la PPU lorsque C et S sont rétablis. Pour mieux mettre en évidence les opérations de commutation automatique de contexte, les tableaux II et III représentent deux exemples d'opérations caractéristiques, en indiquant, dans chaque 10 cas, les options "appel seulement", "commutation seulement", ou "appel et commutation". TABLEAU IX. Commutation ^automatique de contexte et traitement automatique d'appel, fonctionnement continu de la CPU. Temps ACASFCPS R LCCSC c S Basculeur (Figure k) i— 11 00100000 ii— 11 00110000 iii— 1100 1000 01 11 00100010 11 0 0 1000 11 iv— 1101 1000 01 11 1010001 0 1111 1 0 0 0-1 1 v— . ... 11 10 101010 1111 10 10 11 vi— 1101 1001 01 .... 1111101111 ^ f > PPU redéclenche : î 15 où, temps i— attente de demande du CPU, ii— signal d'échantillonnage de la CPU reçue, •iii— code de demande chargée, iv— processus de débuts v— exécution d'appel terminée, et 20 vi— exécution de commutation terminée. 69 23317 2012589 TABLEAU III. Commutation automatique de contexte et traitement automatique d'appel inhibez, la CPU fonctionne jusqu'à ce qu'une commutation de contexte soit effectuée. Temps ACASPÇPS. R.LCXT SC C S .Basculçur (FIGURE 4) i— ii— iii PPU^ 1000 1000 01 iv—^sfboi oooo oi "V*™ ™ • vi— 1001 0001 01 10 0 0 10 0 0 10 0 0 10 10 10 10 10 0 0 110 0 10 0 0 10 0 0 10 10 0 0 0 0 1.0 .1 o 1 0 v PPU redéclenche 1, 00010001 l/ ÉfâfeB 10 1 1000011N 1011001011 1011001111 —: } 5 où, temps i— attente de demande du CPU ii— signal d'échantillonnage de la CPU reçue, iii— code de demande chargée, iv— processus de .début, v— exécution d'appel terminée, et 10 vi— exécution de commutation terminée. NOTE A î La PPU déclenche la commutation de contexte en réglant PS à 1. NOTE B : PC est réglé à 1 automatiquement dans ce cas0 Ceci permet un traitement automatique de l'appel. Toutefois, la PPU 15 doit déclencher la commutation en réglant PS à 1. L'un des buts fondamentaux de l'ordinateur auquel l'invention est appliquée est de pouvoir effectuer, non seulement des opérations scalaires mais encore une transmission optimale de données vectorielles à l'unité arithmétique ou à partir de celle-ci en vue 20 d'effectuer des opérations vectorielles spécifiées. Une opération vectorielle type est d'effectuer l'ADDITION A + B = C, où A, B et C sont des ensembles linéaires à une seule dimension. Au niveau des éléments, on a a^+ b^ = c^. Les vecteurs A et B sont transmis à travers l'unité arithmétique et les éléments cor-25 respondants sont ajoutés pour produire le vecteur de sortie C0 Une autre opération désirable dans cet ordinateur est d'effectuer la MULTIPLICATION A.B qui produit un résultat scalaire C. Le résultat est : 69 23317 18 2012589 n c = 1? 1 aibi L'idée fondamentale d'une instruction MULTIPLICATION peut être développée de manière à inclure la multiplication matricielle. Soient 5 deux matrices A et B. La multiplication est : an aip al3 'bll bi? b13 C11 Ci? C13 a?i a?? a?3 0 b?l b2? b?3 C?1 c?? a3l a3? a33\ b3i s» b3? b33 °31 c3? C33 A B C 10 5 Z i=l C11 ~ S ^al,i^ (b ij 1 ) 15 ou C11 = Call al? ;a13l où, plus généralement, 11 b-. PI 31 '1 ? '13 i=l 3 i=l S.l* (al,i) ("i,?' alibn + al?b?l + a13bJl 20 Cij P îc=l aikbkj où p est l'ordre des matrices. La génération de l'élément c^ peut être décrite comme le résultat de la multiplication de la première rangée (rangée 1) de la 25 matrice A par la première colonne (colonne l) de la matrice B. L'élément c^p peut être engendré en multipliant la rangée 1 de la matrice A par la colonne 2 de la matrice B. L'élément c^ peut être engendré en multipliant là rangée 1 -de la matrice A par la colonne 3 de la matrice B. 3® En calcul vectoriel, le vecteur de rangée 1 de la matrice 1 est utilisé comme vecteur d'opérande pour trois opérations vectorielles portant sur les vecteurs de colonne 1, ? et 3, respectivement, de la matrice B pour engendrer le vecteur de rangée 1 de la matrice C. L'ensemble- de ce processus peut ensuite être répété. BAD ORIGINAL 69 23317 19. 2012589 deux fois en utilisant, en premier lieu, le vecteur de rangée 2 de la matrice A et en second lieu, le vecteur de rangée 3 de-la matrice A pour engendrer les vecteurs de rangée 2 et 3 de la matrice C. 5 L'instruction vectorielle de base MULTIPLICATION peut être u- tilisée à l'intérieur d'un ensemble de deux boucles pour effectuer la multiplication matricielle„ Ces boucles peuvent être respectivement dénommées "boucle intérieure" et "boucle extérieure". Dans l'exemple de la multiplication matricielle, la boucle intérieure se-10 rait utilisée pour indexer d'élément en élément une rangée de la matrice C. La boucle extérieure serait utilisée pour indexer de rangée en rangée la matrice C. Les opérations scîiématiquement représentées sur la Fig. 5 et décrites en se référant à cette figure sont traitées et optimal!— 15 sées dans une CPU réalisée comme indiqué sur la Fig. 6. Dans l'ordinateur décrit ici, la CPU 10 est capable de traiter des données à une cadence largement supérieure à celle à laquelle ces données peuvent être extraites de la mémoire et emmagasinées dans celle-ci. En conséquence, pour permettre à la mémoire et à son 20 fonctionnement de tirer avantage de la vitesse maximale possible dans la CPU 10 pour le traitement de grands ensembles de données bien ordonnées, comme par exemple dans les opérations vectorielles, une forme particulière d'interface est prévue entre la mémoire et l'unité arithmétique, avec une commande compatible. Le dispositif 25 utilise une imité tampon de mémoire scîiématiquement représentée sur la Fig. 6 où les modules de mémoire sont connectés, par l'intermédiaire de l'imité de commande de mémoire centrale 18, à la CPU 10. La CPU 10 comprend une unité tampon de mémoire 100 et une unité arithmétique vectorielle 101. Le canal 33 interconnecte la 30 commande de mémoire 18 et la CPU 10, et en particulier l'unité tampon 100. Trois conducteurs, 100a, 1 001d et 100c^ servent à connecter l'unité tampon de mémoire 100 à l'unité arithmétique 101. Les conducteurs 100a et 100_b servent à appliquer des opérandes à l'unité 101. Le conducteur 100c; sert à renvoyer le résultat des opérations 35 effectuées dans l'unité 101 à l'unité tampon de mémoire, et, de là par l'intermédiaire de la commande de mémoire, aux modules 12 à 15 de la mémoire centrale. La Fig. 7 représente sous une forme plus détaillée et d'une manière fonctionnelle, la nature de l'unité tampon de mémoire utili-hO sée pour les communications à grande vitesse vers l'unité arithmé 69 23317 20. 2012589 tique et à partir de celle-ci. Comme précédemment décrit, l'emmagasinage dans la.mémoire de l'ordinateur s'effectue en blocs de 256 bits, avec 8 mots de 32 bits par bloc. Ces mots d'information sont ensuite transmis, de la 5 mémoire à une unité 18a de traitement logique de conducteur omnibus de mémoire, par l'intermédiaire de la commande de mémoire centrale 18 et, de là, par l'intermédiaire du canal 33° Comme précédemment décrit, l'unité tampon de mémoire 100 est construite en trois canaux. Le premier canal comprend les unités tampons 102 et 10 103 en série entre l'unité de traitement logique 103 et le conducteur omnibus entrée/sortie 104 pour l'unité arithmétique 101. D'une manière analogue, le second canal comprend les unités tampons 105, 106 et le troisième canal comprend les unités 107 et 108. Les premier et second canaux établissent des parcours pour les opéran-15 des transmis à' l'unité arithmétique 101 et aux unités tampons 107 et 108. Le troisième canal assure la transmission des résultats à l'unité de mémoire centrale. L'unité tampon 102 est conçue de manière à pouvoir recevoir et emmagasiner des groupes de 8 mots à la fois. Un groupe est reçu 20 pour chaque série de 8 impulsions de rythme. Chaque groupe est transféré à l'unité tampon 103 en synchronisme avec le tampon 102. Des mots de 32 bits sont transférés, de l'unité' tampon 103 à l'unité arithmétique 101, à raison d'un seul mot à la fois et à raison d'un mot pour chaque impulsion de rythme. On remarquera que, sui— 25 vant la nature de l'opération effectuée par l'unité 101, un résultat complot peut être transféré, par l'intermédiaire des tampons 108 et 107, à la mémoire pour chaque impulsion de rythme. L'ordinateur est capable d'effectuer des opérations à taux d'utilisation élevé de ce type aussi bien que des opérations à des taux de deman— 30 de inférieurs. Un exemple de la demande maximale imposée aux unités tampons et l'unité arithmétique est une addition vectorielle dans laquelle deux opérandes seraient appliqués à l'unité arithmétique 101 à partir des unités 103 et 106 pour chaque impulsion de rythme et dans laquelle une somme serait transmise de l'unité arithmétique 35 101 à l'unité tampon 108 pour chaque impulsion de rythme. Le montage de la Fig. 7 comprend également un fichier do registres adressables comprenant des registres de base 120, 121, des registres généraux 122, 123 et un registre d'index .124 ainsi qu'un fichier de paramètres vectoriels 125. Chacun des registres 120 à 40 125 est accessible pour l'unité arithmétique 101 par 1'intermédiai- f 69 23317 21. 2012589 re du conducteur omnibus 104 et de l'unité d'emmagasinage et d'extraction d'opérande 126. Une unité de commande arithmétique 127 est également prévue et montée de façon qu'elle soit sensible au fonctionnement d'une unité tampon d'instruction 127a. Une unité 5 d'index 126a. fonctionne conjointement à l'unité tampon d'instruction 127.a en réponse à des instructions reçues de l'unité 128. Des fichiers d'instruction 129 et 130 établissent des parcours pour la transmission d'instructions, de la mémoire centrale à l'unité d'extraction d'instructions 128. 10 Une unité de traitement logique d'emmagasinage et de recherche d'état 131 est prévue, avec accès à toutes les unités de la Fig. 7 à l'exception des fichiers d'instruction 129 et 130» et à partir de toutes ces unités. L'unité 131 communique également avec l'unité de traitement logique de conducteur omnibus de mémoire 103* C'est le 15 fonctionnement de l'unité de traitement" logique d'emmagasinage et de recherche d'état 131 qui, en réponse à un ordre SCW apparaissant sur le conducteur 42 ou à un signal d'erreur apparaissant sur le conducteur 53 (Fig. 4) provoque le transfert de l'état de l'ensemble de la CPU 10 à la mémoire et l'introduction d'un nouvel état à 20 la CPU 10 en vue du déclenchement d'opérations sous l'action d'un nouveau programme. Un fichier d'emmagasinage de commando de tampon de mémoire est prévu dans l'unité tampon de mémoire 100, Ce fichier est subdivisé en un fichier-registre de paramètres 132 et un fichier-registre d'— 25 emmagasinage de travail 133» Le fichier de paramètres est connecté, par l'intermédiaire d'un canal 134 "et du conducteur omnibus 104, au fichier de paramètres vectoriels 125» Le contenu du fichier de paramètres vectoriels est alors transféré dans le fichier d'emmagasinage de commande de tampon de mémoire 132 en réponse à l'ëxtrac-30 tion d'une instruction vectox^ielle générique de la mémoire et au transfert de cette instruction dans l'unité 128, A titre d'exemple, on supposera qu'on se trouve en présence d'une acquisition d'une telle instruction vectorielle générique par l'unité 128. Un transfert est immédiatement effectué, en langage machine, pour transfé-35 rer les paramètres du fichier 125 au fichier 132. Les opérations alors en cours d'exécution dans les étages suivants 126a., 127a. et 126, 127 de la CPU 10 sont en fait "canalisées". Plus particulièrement, au cours de l'intervalle pendant lequel l'unité arithmétique 101 effectue une opération donnéo, les unités 40 126 et 127 préparent l'opération suivante en vue de son exécution 69 23317 22. 2012589 par l'unité arithmétique 101. Pendant le même intervalle de temps, les unités 126a et 127a préparent l'exécution de l'opération suivante par les unités 126 et 127. Toujours pendant ce même intervalle, l'unité d'extraction d'instruction 128 extrait l'instruction 5 suivante. Il s'agit de l'instruction qui doit être exécutée, trois opérations plus tard,, par l'unité arithmétique 101. Ainsi, dans cette structure de canalisation effective, quatre instructions sont simultanément en cours de traitement, une à chacun des niveaux Tj, T2, T^ et T^ (Fig. 7)° 10 On remarquera que la combinaison du fichier de paramètres vec toriels 125 et du fichier d'emmagasinage de commande de tampon de mémoire 132 assure la possibilité do spécifier des opérations vectorielles complexes au niveau langage machine, sous la commande du ¥ programme « 15 Le fonctionnement du fichier de paramètres 132 et du fichier d'emmagasinage de travail 133 sera mieux compris en tenant compte du fait que les légendes utilisées dans les fichiers 132 et 133 (Fi g. 7)» ont la signification indiquée dans le tableau IV ci-après, 20 TABLEAU IV. Fichier de paramètres 1320 SA : Adresse initiale dans la mémoire centrale pour la lecture du vecteur A, SB : Adresse initiale dans la mémoire' centrale pour la lecture 25 du vecteur B. SC : Adresse initiale dans la mémoire centrale pour l'emmagasinage du vecteur C. . NV s Nombre d'éléments d'une opération vectorielle fondamentale. NI : Nombre de tours de la boucle intérieure. 30 N0 : Nombrè de tours de la boucle extérieure. Al : Incrément d'adresse pour la boucle intérieure. A 0 : Adresse on incrément pour la boucle extérieure. Fichier de travail 133 poui' les vecteurs A, B et C. AA : Adresse actuelle du vecteur A. 35 BB : Adresse actuelle du vecteur B. CC î Adresse actuelle du vecteur C, 69 23317 23. 2012589 Fichier de travail 133 pour le compte d'index actuel relatif à la longueur du vecteur, boucle intérieure et boucle extérieure. 10 15 20 VC : Compte du vecteur. XC : Compte de la boucle intérieure. 0C : Compte de la boucle extérieure.. Les paramètres sont chargés dans les registres à partir de la mémoire centrale antérieurement à l'exécution d'une instruction vectorielle. Les vecteurs sont transmis à travers l'unité arithmétique, en tenant compte de la description paramétrique ainsi établie dans la CPU 10. Un exemple de multiplication matricielle relative à l'équation précédemment indiquée va maintenant être décrit de façon plus détaillée, les emplacements de mémoire étant tels qu'indiqué, dans le tableau V. TABLEAU V, emplacement emplacement o,. f t b„. emplacement kv2 î - • •"» •V • "i — l2I i -50 Z-r2 A* 3 •1-i. I' '31 "12 '00 ~-f-0 a23 %- "2 nv5 C23 ICVG * cl — - 2i->- %- y -0 :°13 i.lTO kv7 0 32 a- -7 °23 -:->7 ' » — kv3 S.~ «s 0 _ AJ -3 "33 rr.~ 0 CT: '12 ;i'3 V ^ « d' La matrice A est supposée pré-emmagasinée aux emplacements k à k + 8 par rangées. La matrice B est supposée pré-emmagasinée aux emplacements Ê* à 3^ + 8 par colonnes. La matrice C doit être emmagasinée aux emplacements m à m + 8 par rangées. Ces affectations sont présentées dans le tableaii V. A l'origine on a : SA = k \nr = J IA = 1 SE =£ MI = 3 ù# = 3 SC = m Nj* = 3 BAD ORIGINAL 69 23317 2 2012589 La séquence d'adresses ofc le procédé de calcul du vecteur A sont indiqués dans le tableau VI„ "• TABLEAU VI. / A phase opérations VC IC pc adresse 1 SA->AA NV-l-yVC 2 2 2 k NI-1—?XC N^-1->0C 2 AA+1->AA 1 2 2 k+1 VC-1 ~>VC 3 AA+1-^AA 0 2 2 k+2 VC-1->VC k SA—?AA NV-1—>VC 2 12 k ic-i-^nc 5 AA+1_?AA 1 12 k+1 VC-1->VC 6 AA+1 ->AA 0 12 k+2 VC-1-?VC 7 SA^AA NV-1_>VC 2 0 2 k IC-l-^C 8 AA+1—>AA 102 k+1 VC-1__^C 9 AA+1-> A A 0 0 2 k+2 VC-1 __?VC 10 SA+A0-?AA,SA W-l^VC 2 2 1 k+3 NI-1_>IC ^C-l^/fc 11 AA+1->AA 12 1 k+4 vc-i->vc 12 AA+1 —>AA 0 2 1 k+5 VC-1 __,VC 13 SA->AA NV-1 -->VC 2 : 1 1 k+3 IC-1 _>IC 14 AA+1 A A 1 1 1 k+4 VC-l-^VC 15 AA+l^AA 0 11 k+5 VC-1->VC 16 SA ->AA NV-1~;>VC 2 0 1 k+3 IC-1 -pIC 17 AA+l—^AA ' 10 1 k+4 VC-l^VC 18 AA+1 -?AA 0 0 1 k+5 VC-l^VC .. 19 SA+M-AA,SA NV- 1->YC 2 2 0 k+6 NI-1-.^EC $C-l~$G _ ' 20 AA+1 ->AA 12 0 k+7 VC-1 .->VC 21 AA+1 ~?AA 0 2 0 k+8 ' VC-1 ,_?VC BAD ORfGINAL 69 23317 25 2012589 / A Phase opérations VC IC adresse 22 SA ->AA NV-1 ~>YC 2 10 k+6 IC-1->IC 23 AA+1 ->AA 1 10 k+7 VC-1 ->VC 24 AA+1 ->AA 0 1 0 k+8 VC-1->VC 25 SA ->AA NV-l^VC 2 0 0 k+6 IC-l^IC 26 AA+1 —>AA 10 0 k+7 VC-1 _>VC 27 AA+1 ->AA 0 0 0 k+8 VC-l^VC Un processus analogue est adopté pour les vecteurs B et C. La séquence d'adresses du vecteur B est analogue à la séquence d'adresses du vecteur A à cela près que 1^ est l'adresse initiale au lieu de k. La séquence du vecteur C est m, m + 1, ,,,,, m.+ 8a 5 La manière dont la séquence est établie est dictée par l'ins truction vectorielle particulière en cours d'exécution. L'exemple donné est relatif à l'instruction MULTIPLICATION, Le code de vecteur est présenté à l'unité tampon de mémoire en vue d'être utilisé pour cette détermination. 10 Après la description ci-dessus des dispositions adoptées dans l'ordinateur suivant l'invention pour"fournir des données ordonnées à une cadence rapide, on comprendra qu'il est désirable de créer une unité arithmétique (AU) construite et agencée de manière à traiter les données aux cadences rendues possibles grâce- au dispo— 15 sitif de stabilisation par tampons décrits et représentés sur les Fig. 6 et 7« Le dispositif représenté sur la Fig. 8 est une unité arithmé 69 23317 26. 2012589 tique formée d'unités spécialisées et capable d'être sélectivement placée suivant différentes configurations de canalisation .à l'intérieur de l'unité arithmétique 101. L'unité arithmétique 101 est subdivisée en plusieurs parties qui sont harmonieuses et compati-5 bles avec los fonctions qu'elles exécutent, chaque unité fonctionnelle de la AU 101 étant munie de sa propre mémoire. Un multiplicateur inclus dans la AU 101 est d'un type qui permet d'obtenir un produit pour chaque .impulsion de rythme. Dans la AU 101, les retards que la multiplication implique généralement lorsqu'on utilise 10 des processus itératifs sont évités. La AU 101 comprend deux canalisations parallèles 300A et 300B. Cos canalisations sont disposées de part et d'autre d'une frontière centrale 300. Les conducteurs 300a, 300b, 300c; et 300d représentent les canaux d'entrée d'opérande. : 15 La canalisation d'unité arithmétique 300A comprend une unité de soustraction d'exposant 302 montée en série, par l'intermédiaire du conducteur 303» avec une unité d'alignement 304. L'unité d'alignement 304 est connectée, par l'intermédiaire du conducteur 305> à une unité d'addition 306 qui est à son tour connectée, par l'in-20 termédiaire du conducteur 307» à une unité de normalisation 308. Un conducteur 309 connecte là sortie de l'unité de normalisation 308 à une unité de sortie 310. Les canaux d'opérande 300a et■300c sont également connectés à une unité"do prénormalisation 311 et, de là, à un multiplicateur 25 312, dont la sortie est connectée à l'une des entrées de l'unité d'addition 306, par 11 intermédiaire"du conducteur 313» Un accumulateur 314 est alimenté par un premier conducteur d'entrée 315 partant de la sortie de l'unité d'alignement 304, par un second conducteur d'entrée 316 partant d'une sortie de l'unité d'addition 30 306 et par un conducteur 317 partant de la section de canalisation 3OOB0 L'accumulateur 31^ comporte un premier conducteur de sortie 318 aboutissant à l'une des entrées de l'unité de soustraction d'exposant 302. Un second conducteur do sortie 319 aboutit à l'unité de sortie 310. 35 L'unité de soustraction d'exposant 302 est connectée, par l' intermédiaire du conducteur 320, à l'entrée de l'unité de sortie 310. D'une manière analogue, les sorties de l'unité d'alignement jOk et de l'unité d'addition 306 sont connectées au conducteur 320. L'unité d'addition 306 est connectée, pai* l'intermédiaire du con-hO ducteur 321, à une quatrième entrée de l'unité de àoustraction d'— 69 23317 27. 2012569 exposant 302. En plus de l'entrée de l'unité d'addition 306 alimen-tee par l'unité d'alignement 304 et à partir du multiplicateur 312, une troisième entrée est alimentée, à partir de la section 300B, par l'intermédiaire du conducteur 322. 5 Un aspect important de la AU 101, réside en ce que les canaux d'opérande 300a et 300^ sont connectés, par l'intermédiaire des conducteurs 323 et 324, à chacune des" unités de la section de canalisation 300A, à l'exception de l'accumulateur 314. Plus précisément, les conducteurs 323 et 324 sont connectés à l'entrée du mul— 10 tiplicateur 312 par l'intermédiaire de conducteurs 325* D'une manière analogue, les conducteurs 326 appliquent les opérandes à l'unité d'alignement 304. En outre, les opérandes apparaissant sur les canaux 300a et 300_c sont directement transmis à l'entrée de l'unité d'addition 306 par l'intermédiaire des conducteurs 327» et à l'en-15 trée de l'unité de normalisation 308 par l'intermédiaire de conducteurs 328. Les conducteurs 323 et 324 transmettent directement les opérandes à l'unité de sortie 310. Un traitement logique de commande sous le contrôle d'instructions de machine ou de programme sert à structurer les canalisations. 20 Dans la section 300B, les conducteurs 300b et 300d sont con nectés à une unité de soustraction d'exposant 330, elle-même connectée, par l'intermédiaire d'un conducteur 331» à l'entrée d'une unité d'alignement 332 à son tour connectée, par l'intermédiaire du conducteur 333» à. l'entrée d'une unité d'addition 334. La sortie de 25 l'unité d'addition 334 est connectée, par l'intermédiaire d'un conducteur 335» à une unité de normalisation 336, dont la sortie est connectée, par l'intermédiaire du conducteur 337» à une unité de sortie 338. Les opérandes apparaissant sur les canaux 300b et 300d sont également transmis à l'entrée d'une unité de pré—normalisa-30 tion 340, dont la sortie est directement connectée à un multiplicateur 341. En outre, chacun des canaux 300b et 300d est connecté, par l'intermédiaire de conducteurs respectifs 342 et 343» à l'unité d'alignement 332» au multiplicateur 3^-1» à l'unité d'addition 334» à l'unité de normalisation 336 et à l'unité de sortie 338. 35 La sortie de l'unité d'addition 334 est connectée, par l'in termédiaire d'un conducteur 344, à l'entrée d'une unité d'accumulation 345. En outre, la sortie do l'unité d'alignement 332 est connectée, par l'intermédiaire dxi conducteur 346, à l'une des entrées de l'unité d'accumulation 345. L'unité d'accumulation 345 comporte 40 une sortie connectée, par 1'intermédiaire du conducteur 317» à 69 23317 as. 2012589 l'unité d'accumulation 314 disposée dans la section de canalisation 300A. En outre, la sortie de l'accumulateur 345 est connectée, par l'intermédiaire d'un conducteur 347» à l'unité de sortie 338. 5 Une troisième sortie de l'accumulateur 345 est connectée par l'intermédiaire d'un conducteur 348, à une autre entrée de l'unité de soustraction d'exposant 330. L'une des sorties de l'unité de soustraction d'exposant 330 est connectée, par l'intermédiaire d'un conducteur 350, à l'unité de soustraction d'exposant 302 disposée 10 dans la section de canalisation 300A. Le signal de sortie de l'unité de soustraction d'exposant 330 apparaissant sur le conducteur 331 est également appliqué, par l'intermédiaire d'un conducteur 351> à. l'unité de sortie 338. D'une V manière analogue, les signaux de sortie de l'unité d'alignement 332 15 et de l'unité d'addition 334 sont transmis, par l'intermédiaire du conducteur 351, à l'unité de sortie 338. Un signal de sortie de l'unité d'addition 33^ est également transmis, par l'intermédiaire d'un conducteur 352, à l'une des entrées de l'unité de soustraction d'exposant 330. Un signal de sortie de l'unité multiplicatrice 341 20 est transmis, par l'intermédiaire d'un conducteur 353> à une seconde entrée de l'unité d'addition 334 ainsi qu'à une entrée de l'unité d'addition 306 située dans la section de canalisation 300A. L'unité de sortie 338 est connectée, par un conducteur 355> à l'unité de sortie 310 située dans la section de canalisation 300A. 25 La AU 101 suivant l'invention comprend donc une série dîunités spécialisées capables chacune d'effectuer une opération arithmétique différente sur des signaux d'entrée d'opérande. La AU 101 offre de larges possibilités en ce sens que des unités spécialisées choisies peuvent être connectées de manière à exécuter toute une varié— 30 té de fonctions arithmétiques différentes en réponse à un programme d'instructions. Une fois que la configuration de connexion choisie à l'avance est réalisée, des signaux d'opérande sont transmis de façon séquentielle par l'intermédiaire des connexions établies de façon que les unités spécialisées choisies agissent simultanément 35 sur des signaux d'..opérande différents pendant chaque période de rythme. Ce mode de fonctionnement dit ici "canalisation" assure des opérations rapides et efficaces sur des séries de données. En fonctionnement, et pour mettre en évidence l'opération la plus exigeante de la canalisation, on remarquera qu'il existe qua-40 tre phases fonctionnelles distinctes qui constituent une addition » 69 23317 29 2012589 ÏQ ti Î£ — aibi a2h2 a?bj5 - - ' albl . a2h2 a3b3 — - - albl a2b2 — - - - albl à virgule flottante : soustraction d'exposant, alignement de fraction, addition do fraction, post—normalisation. Ces phases sont représentées sur le tableau VII. TABLEAU VIT. 5 Soustraction d'exposant Alignement de fraction Addition de fraction Post-norinalisation Lors de l'addition de deux séries de nombres ou vecteurs, com-10 mençant à l'instant t^, chaque section de l'additionneur est vacante. A l'instant t^, la première paire de nombres, a^ et b^, subi la phase initiale de soustraction d'exposant. A l'instant t^, la seconde paire de nombres, a^ et b^, subit la soustraction d'exposant. La première paire de nombres a^ et b^ est maintenant arrivée à la 15 phase suivante, alignemeiit de fraction. Ce processus se poursuit jusqu'à ce que lorsque la canalisation est pleine, à l'instant t^, chaque section traite une paire de nombres. On remarquera que l'unité arithmétique 101 est fondamentalement organisée en 6k bits. Les sous-unités de l'unité arithmétique 20 de la Fig. 8, autres que les unités de multiplication 312 et 3^1 assurent l'entrée et la sortie de 32 bits d'information, tandis que les unités de multiplication 312' et 3^1* assurent la sortie de 6k bits d'information. A l'exception de la multiplication et de la division, toutes les fonctions exigent le même temps pour des opéran-25 des de longueur double, que pour des opérandes de longueur simple. Des nombres à virgule fixe sont de préférence représentés avec la notation du complément à deux tandis que les nombres à virgule flottante sont représentés en signe et en grandeur avec un exposant représenté par un nombre supérieur à 6k, 30 Une caractéristique remarquable de l'unité arithmétique est la structure de canalisation qui permet un traitement efficace d'instructions vectorielles. Los subdivisions exclusives de la canalisation fournissent chacune un signal de sortie pour chaque impulsion de rythme. Chaque section peut assurer l'exécution de parties d'au-•35 très instructions. Toutefois, les sections sont subdivisées comme représenté pour raccourcir la durée d'une addition à virgule flottante. Chaque étage de l'unité arithmétique 101, autre que l'étage multiplicateur- contient doux sections qui peuvent être combinées. Les sections 302 et 330 forment l'un de ces étages. Les 'sections 69 23317 30 2012589 peuvent fonctionner séparément ou être couplées pour former un étage de longueur double. L'étage d'alignement 30-1-, 332 est utilisé pour effectuer des décalages vers la droite en plus de l'alignement de la virgule 5 flottante pour des opérations d'addition. L'étage de normalisation 308—336 est utilisé pour toutes les opérations de normalisation nécessaires et assure en outre des décalages vers la gauche des opérandes à virgule fixe. L'étage d'addition 306-33^ utilise de préférence des opérations de prévision de second niveau pour effectuer, 10 aussi bien des additions à virgule fixe qùe des additions à virgule flottante. Cette section est également utilisée pour additionner la pseudo-somme et le report qui est une information de sortie de la section de multiplication. • Lors du traitement dte vecteurs, l'addition à virgule flottante 15 ©st désirable pour permettre l'utilisation d'une large gamme dynamique. Bien que la AU 101 soit capable d'effectuer aussi bien une addition à virgule fixe qu'une addition à virgule flottante, l'économie de temps et d'opération assurée par l'invention est mise en évidence d'une manière particulièrement frappante dans le cas de 20 l'addition à virgule flottante (tableau VXl). L'unité de multiplication 312 est capable d'effectuer une multiplication de 32 bits par 32 bits en une seule période de rythme. Les multiplicateurs 312 et 3^1 sont de préférence du type décrit par Wallace dans un article intitulé : "A stiggestion for a fast 25 multiplier" PGEC, Vol. EC-13, p. 1 — 17 > Février 1964. De tels multiplicateurs permettent 1'exécution" des multiplications en une u— nique impulsion de rythme et, par conséquent, l'unité est harmonisée avec le concept sur lequel la AU 101 est basée. Les multiplicateurs sont également les opérateurs de base 30 pour l'instruction de division. Des opérations de longueur double pour ces deux instructions exigent plusieurs itérations à travers l'unité de multiplication pour obtenir le résiiltat. Les multiplications à virgule fixe et les multiplications à virgule flottante de longueur simple sont disponibles après un seul passage seulement à 35 travers le multiplicateur. L'information de sortie de l'unité de multiplication 312 est formée de deux mots de 6k bits chacun, à savoir la pseudo-somme et le pseudo-report, dont des bits choisis sont additionnés dans la section d'addition 3°^ pour obtenir le produit. Lorsqu'une multiplication do longueur simple doit fournir ko un produit de longueur double, le multiplicateur 3k1 produit une 69 23317 31 2012589 pseudo—somme à 64 bits et un pseudo—report à 6k bits qui sont ensuite additionnés dans l'étage 306» 334 pour assurer l'obtention du produit de longueur double. Une multiplication de longueur double peut être effectuée en canalisant les trois éléments suivants : 5 étage de multiplication 341 , étage d'addition 306, 33k, et étage accumulateur 314, 345. L'étage accumulateur 314, 345 est analogue à l'unité d'addition et est utilisé pour des cas spéciaux qui nécessitent la formation d'un total fluctuant. La multiplication de longueur double exige un tel total fluc— 10 tuant du fait que quatre multiplications séparées de 32 bits par 32 bits sont effectuées puis totalisées dans l'accumulateur aux positions de bit appropriées. Une multiplication de longueur double exige en conséquente 8 impulsions de rythme pour fournir une information de sortie, tandis que la longueur simple n'en exigerait que 15 quatre. Une multiplication de longueur double signifie que deux nombres à virgule flottante de 64 bits (56 bits de fraction) sont multipliés l'un par l'autre pour fournir un résultat à 64 bits, les bits de plus petit poids étant éliminés après la post-normalisation. Une multiplication à virgule fixe implique une multiplication de 20 32 x 32 bits et fournit un résultat à 64 bits. La division est l'opération la plus complexe parmi celles qui peuvent être effectuées par la AU 101. On tire avantage des possibilités de multiplication rapides et l'on utilise une itération qui, après un nombre déterminé de multiplications, forme le quo-25 tient avec la précision désirée. Cette opération ne fournit pas un reste à là suite des multiplications antérieures et il est donc nécessaire d'utiliser à nouveau le montage existant pour former un reste. En supposant que x/y = Q soit la solution, le reste peut ê-tre formé en multipliant y par Z et en retranchant de X le produit 30 R = X — y.Q. Le reste est précis avec autant de bits exacts que le dividende X. Le temps nécessaire pour former le reste s'ajoute directement au temps nécessaire pour obtenir le quotient. Le temps de division, pour la longueur unique, croît de 12 à 16 impulsions de rythme lorsqu'on désire obtenir le reste» L'algorithme de division 35 exige que le diviseur soit normalisé, bit par bit, pour la virgule fixe ou que le chiffre hexadécimal de plus grand poids soit non nul, dans le cas de la virgule flottante. L'étage de sortie 320, 338 est utilisé pour rassembler les informations de -sortie de toutes les autres sections et également 40 pour effectuer des transferts simples, des opérations booléennes, 69 23317 32. 2012589 etc, qui n'exigent qu'une seule période de rythme pdur leur exécution dans la AU 101. Un emmagasinage est assuré à chaque niveau de la canalisation pour établir une séparation positive entre les divers problèmes é-5 lémentaires qui peuvent être en cours de solution à un instant donné quelconque. L'ensemble de l'unité arithmétique a un fonctionnement synchrone du fait qu'elle utilise un rythmeur commun pour rythmer les circuits logiques. A cet effet, des registres d'emmagasinage tels que le registre 310a sont inclus dans chaque unité de 10 la canalisation. Après la description de la commutation de contexte faite ci-dessus en se référant aux Fig. 3 et 4 et après avoir décrit la CPU 10 en se référant aux Fig. 5 à 8, il est bon d'examiner maintenant la Fig. 9 où la coopération entre la CPU 10, la PPU 1.1 et la com-15 mande de mémoire 18 a été représentée de façon plus détaillée. La Fig. 9 peut être examinée conjointement à la Fig. 4. La Fig. 9 comprend une représentation plus détaillée du contenu de la CPU 10 et montre la relation avec les canaux 31 » 42 et 53 à 58 de la Fig. 4. Sur la Fig. 9» l'unité d'extraction d'instruction 128 est mu— 20 nie d'un registre de sortie 128ji, Ce registre, sous, sa forme préférée, offre une possibilité d'emmagasinage de 32 bits. Il est subdivisé en une première section 1281a de 8 bits qui représente le code d'opération. Il est en outre muni d'une section 128c; qui représente un si— 25 gne d'adresse de 4 bits. La section 128b est une section à 4 bits normalement utilisée lors du fonctionnement de l'unité arithmétique 101 pour désigner un registre qui n'est pas impliqué dans l'opération de commutation de contexte et qui ne sera pas décrit ici do façon plus détaillée. Enfin, il est prévu une unité d'information 30 d'adresse 128e^ de 16 bits. Lors du déroulement normal du fonctionnement de l'ordinateur, l'unité d'index 126a, qtii comporte un registre do sortie 126b, exécute l'une des phases de la séquence temporelle T1—t4. Dans certaines opérations, elle produit, dans le registre de sortie 126b, un 35 mot représentatif de la somme du mot présent dans le champ d'adresse 128e^ et d'un mot provenant du registre d'index 124 et qui est désigné par le signe d'adresse présent dans la section 128jî. Ce code est alors utilisé par l'unité d'emmagasinage et d'extraction 126 pour commander le transfert d'opérandes vers la AU 101 et à 40 partir de celle-ci. 69 23317 33. 2012589 Lorsque les codes de programme relatifs aux ordres SCW ou SCE-apparaissent dans la section 128b, une séquence d'opérations différente est déclenchée. Tout d'abord, le mot de 8 bits présent dans la section 128js est ajjpliqué à l'unité tampon 127a et apparaît dans 5 son registre de sortie 127b. Ce code de 8 bits est alors appliqué, par l'intermédiaire du canal 200, à l'unité de commande 127. A l'intérieur de l'unité de commande 127 est prévu un décodeur 201 qui fournit un signal do sortie sur le conducteur 202 si le code de 8 bits représente un ordre SCW. Ce décodeur fournit un signal 10 de sortie sur le conducteur 203 si le code de 8 bits représente un ordre SCP. De tels signaux, s'ils sont présents, apparaissent sur les conducteurs de sortie 41 et 42. Comme précédemment décrit, si la PPU 11 (Fig. 4), détecte la présence d'un signal sur l'un des conducteurs 41, 42, alors après 15 un intervalle de retard contrôlé, un signal est appliqué à l'unité 127 par le conducteur 58'et ce signal permet l'application, par l'intermédiaire du conducteur 204, d'un signal à la AU 101. Ce dernier signal agit alors pour transférer directement, à une adresse particulière de la mémoire, le code emmagasiné dans le registre 20 126d. Ce transfert s'effectue par l'intermédiaire du canal 205 et du parcours 206 à l'intérieur de la AU 101, puis du canal 207, pour aboutir au registre 126jî et, de là, par l'intermédiaire du conducteur omnibus 104, à la mémoire. Le code provenant du registre 126e^ est emmagasiné dans la mé— 25 moire à l'adresse emmagasinée dans un registre d'adresse 208, Il s'agit ici d'une adresse affectée à'cette fonction dans la mémoire et qui n'est pas autrement utilisée. Elle peut être câblée de façon permanente dans l'ordinateur. Ladite adresse est transmise en réponse à l'ouverture d'une porte 209 sous la commande du signal ap-30 paraissant sur le conducteur 204. La séquence d'opérations ci—dessus est tout d'abord soumise à un retard temporel introduit par l'action de l'unité à retard 210, pour contrôler la sortie de l'unité 127. Plus précisément, les conducteurs 202 et 203 aboutissent à une porte OU 211 et, de là, à lf— 35 unité à retard 210, de manière à appliquer un signal d'échantillonnage retardé au conducteur 54. Le conducteur 202 est connecté, par l'intermédiaire d'une porte ET 212, à une porte OU 213. Le conducteur 58 est également connecté à la porte ET 212 et à une porte ET 214, elle-même connectée 40 à la porte OU 213. Le conducteur 203 est connecté à la seconde en- 69 23317 2012589 trée de la porte ET 21 4. L'état du conducteur 58 inhibe normalement toute tentative d'accès à la cellule de mémoire particulière représentée par l'adresse présente dans le registre 208. Toutefois, comme précédemment dé-5 crit, si la condition de l'ordinateur tel qu'il est représenté par les états des conducteurs 56, 57s 45, 58, 55» 53 est convenable, a— lors, mais alors seulement, le code présent dans le registre 1 26^ est placé dans la cellule de mémoire particulière considérée. En conséquence, l'ensemble du fonctionnement de la CPU 10 peut être 10 interrompuo Selon une variante, il peut continuer cependant qu'un déclenchement ou d'autres opérations préparatoires sont amorcées dans des parties de l'ordinateur extérieures à la CPU 10. Le choix dépend de l'apparition, dans le registre 128a, d'une instruction de * programme portant un code particulier, SCP ou SCW, dans la section 15 de code d'opération 128b du registre de sortie 128a. Le conducteur 53 (Fig. 4 et 9)» est excité ou commandé de manière à appliquer un signal à la PPU 11, lorsqu'une erreur a été détectée à l'intérieur de la CPU 10» Une porte OU 220 a été représentée comme ayant une entrée alimentée à partir de la AU 101, avec 20 des conducteurs 221 et 222 aboutissant à l'unité de commande 127. lin tel signal d'erreur pourrait apparaître lorsqu'une condition de dépassement de capacité se produit dans la AU 101. Une telle erreur pourrait également apparaître si un code indéterminé était présent dans l'unité de commande 127* Dans ces deux cas, ou en réponse à 25 d'autres signaux d'erreur susceptibles d'être engendrés et appliqués à la porte OU 220, par l'intermédiaire du conducteur 222, un signal apparaît sur le conducteur 53« Le signal apparaissant sur le conducteur 53 ou sur le conducteur 42 provoque une commutation de la CPU 10 d'un programme déterminé au programme suivant préparé par 30 la PPU 11. Un tel changement de programme se produit seulement si les états de la commande représentée sur la Fig. 4 le permettent. Lorsqu'un tel changement doit être effectué, comme précédemment décrit, l'état de la CPU 10 est alors emmagasiné dans la mémoire grâce au fonctionnement de l'unité de traitement logique 131 (Fig. 7)® 35 Ensuites la CPU 10 est déclenchée pour amorcer un nouveau programme ou reprendre le programme qui ava.it été précédemment commuté dans la CPU 10. La description ci-dessus était relative à la PPU 11. D'après les opérations décrites ci-dessus, on admettra aisément que la PPU 40 11 joue un rôle vital en soutenant l'action de la CPU 10 de telle 69 23317 35. 2012589 façon que celle-ci puisse fonctionner de la manière précédemment décrite. Dans l'ordinateur suivant l'invention, la PPU 11 est capable de prévoir les besoins et les demandes en alimentation de la CPU 10 et d'autres organes de l'ordinateur en général, en utilisant 5 une forme particulière de commande pour le partage du temps, par exemple entre une série de dispositifs de traitement virtuel à l'intérieur de la PPU 11. Plus précisément, des programmes doivent être traités par un groupement de dispositifs de traitement virtuel à l'intérieur de la PPU 11. Dans le cas où les programmes varient 10 considérablement, il devient avantageux de s'écarter d'un partage de temps impartial entre les dispositifs de traitement virtuel. Dans le dispositif représenté sur la Fig. 10, certains dispositifs de traitement virtuel peuvent être considérablement favorisés en ce qui concerne l'allocation du temps de traitement à l'in— 15 térieur de la PPU 11, par rapport à d'autres dispositifs de traitement .virtuel. En outre, des dispositions sont adoptées pour permettre de modifier fréquemment et fortement l'allocation de temps, par exemple entre les dispositifs de traitement. La Fig. 10 indique que les dispositifs de traitement virtuel 20 Pq à P.^ de la PPU 11 sont desservis par la AU 400 de la PPU 11. Le concept général de la coopération sur une base de partage du temps entre une unité arithmétique telle que l'unité 400 et des dispositifs de traitement virtuel tels que les dispositifs de traitement PQ à P,^ est connu en soi. Toutefois, l'ordinateur suivant 25 l'invention et les moyens prévus pour sa commande n'ont jamais été réalisés jusqu'à présent. Les dispositifs de traitement P^ à P^ peuvent en général être du type x'eprésenté et décrit dans le brevet des Etats-Unis d'Amérique N° 3 337 85^ où les dispositifs de.traitement virtuel occupent des intervalles de temps fixes. La cons-30 truction de l'ordinateur suivant l'invention permet une commande variable des allocations de temps en fonction de la nature de la tache imposée à l'ensemble de 1'ordinateur. Dans l'exemple considéré sur la Fig. 10, huit dispositifs de traitement virtuel Pq à P,^ sont utilisés dans la PPU 1 1 . La AU 400 35 de la PPU 11 doit être mise à la disposition de chaque dispositif de traitement virtuel à raison d'un à la fois. Plus précisément, un dispositif de traitement virtuel est connecté à la AU. 400 à chaque impulsion de rythme. La sélection parmi les dispositifs de traitement virtuel est assurée par un programmateur représenté h0 scîiématiquement par un commutateur 401 . L'effet d'une impulsion de 69 23317 2012589 rythme représentée par un changement de position du commutateur 40î, est de coupler la AU 4~00 avec le dispositif de traitement virtuel représenté par un code choisi pour les fractions de temps O à 15. Un seul dispositif de traitement virtuel peut être utilisé à 5 l'exclusion de tous les autres, dans l'un des cas extrêmes. Dans 1' autre cas extrême, les dispositifs de traitement virtuel peuvent se partager la fraction de temps en parties égales. Le dispositif permettant d'obtenir cette souplesse de fonctionnement est représenté sur les Fig. 11 à 13. 10 L'agencement de la PPU 11 est représenté sur la Fig. 1t. La mémoire centrale 12 à 15 est couplée avec la commande de mémoire 18 et, de là, avec le canal 32. Les dispositifs de traitement virtuel Pq à P^. sont connectés à la AU 400 au moyen du conducteur omnibus 402, la AU 400 étant reliée avec les dispositifs de traitement vir— 15 tuel Pq à P^, pàr l'intermédiaire du conducteur omnibus 403. Les dispositifs de traitement virtuel Pq à P^ communiquent avec le conducteur omnibus interne 408 de la PPU 11 par l'intermédiaire de canaux 410 à 417. Une unité tampon 419 comprenant huit registres tampons d'un .seul mot 420 à 427 est prévue. Chaque registre est affec— 20 té exclusivement à l'un des dispositifs de traitement virtuel Pq à P^o Les dispositifs de traitement virtuel Pq à P^ sont munis d'une unité de commande de séquence 418 dans laquelle est disposée la réalisation matérielle du commutateur 401 de la Fig. 10. L'unité de commande 418 est excitée par des impulsions de rythme. L'unité tam-25 pon 419 est commandée par une unité 428. Un canal 429 relie le conducteur omnibus interne 408 à la AU'400. Les dispositifs de traitement virtuel Pq à P,^ sont munis d'une mémoire fixe 430 permettant exclusivement la lecture. Dans le mode de réalisation préféré de l'invention, la mémoire 430 est consti— 30 tuée par un ensemble pré-câblé de diodes permettant un accès rapide Un jeu de registres de communication 431 est prévu pour permettre une communication entre le conducteur omnibus 408, les dispositifs X/0 et les canaux d'information. Dans ce mode de réalisation de l'ordinateur, 64 registres de communication sont prévus 35 dans l'unité 431... Les éléments soumis au partage dans le temps comprennent la AU 400, la mémoire permettant exclusivement la lecture (ROM) 430, le fichier de'registres de communication (CR) 431, et le tampon d'un seul mot (SIv'B) 419 4o 12 à 15. 69 23317 37. 2012589 La mémoire ROM 430 contient une série de programmes et n'est accessible que par référence à partir de compteurs de programme des dispositifs de traitement virtuel. Ladite série comprend un programme d'exécution schématique et au moins un programme de commande 5 pour chaque dispositif X/0 connecté à l'ordinateur. La mémoire ROM 430 a une durée d'accès de 20 nanosecondes et fournit des instructions à 32 bits aux unités à P^. L'espace total réservé au programme dans la mémoire ROM est de 1 024 mots» La mémoire est organisée en 256 modules de mots, de sorte que des parties des program-10 mes peuvent être modifiées sans reconstruction complète de la mémoire. Les programmes des dispositifs i/o peuvent comprendre des fonctions de commande pour les milieux d'emmagasinage des dispositifs, ainsi que des fonctions de transfert de données. Ainsi, le 15 mouvement de dispositifs mécaniques peut être commandé directement par le programme au lieu de l'être par des montages hautement spécialisés pour chaque type de dispositif. Des variantes d'un programme fondamental sont assurées par des paramètres appliqués par le programme d'exécution. De tels paramètres sont emmagasinés dans 20 la CM 12 à 15 ou dans les registres d'accumulateur du dispositif de traitement virtuel exécutant le programme. La source d'instructions alimentant les dispositifs de traitement virtuel peut être l'une quelconque des mémoires ROM 430 ou CM 12 à 15. La mémoire qui est adressée à partir du compteur de pro-25 gramme d'un dispositif de traitement virtuel est commandée par le mode d'adressage qui peut être modifié par les instructions de branchement ou par la remise générale à l'état initial de l'ordinateur. Chaque dispositif de traitement virtuel, lors de la renjise de l'ordinateur à l'état initial est placé dans le mode ROM. L'obten— 30 tion d'une séquence de programmes à partir de la mémoire centrale, est acquise par l'intermédiaire du tampon 419» Etant donné qu'il s'agit ici du même tampon que celui qui est utilisé pour les transferts de données vers la CM 12 à 15 ou à partir de celle-ci, et é— tant donné que l'accès de la mémoire centrale est plus lent que 1'— 35 accès de la mémoire ROM, le temps d'èxécution est plus favorable lorsqu'un programme est obtenu de la mémoire ROM 430. L'intervalle de temps zéro peut être affecté à l'unr des huit dispositifs de traitement virtuel par un commutateur d'un panneau d'entretien. Cette affectation 11e peut pas être commandée par le 40 programme. Les autres périodes de temps sont à l'origine non affec— 69 23317 38. 2012589 tées. En conséquence, seul le dispositif de traitement virtuel choisi par le commutateur du panneau d'entretien fonctionne au début. En outre, étant donné que les compteurs de programme do chacun des dispositifs de traitement à sont à l'origine mis à 5 zéro, le dispositif de traitement virtuel choisi commence à exécuter un programme à partir de l'adresse O de la mémoire ROM 430 qui contient un programme de démarrage. Le commutateur de sélection du panneau d'entretien détermine également celui des huit bits du fichier 431 qui est établi par un signal d'ordres initiaux de pro-10 gramme déclenché par l'opérateur. Le tampon 419 assure aux dispositifs de traitement virtuel l'accès à la CM 12 à 15. Le tampon 419 comprend huit registres d'information à 32 bits, huit registres d'adresse à 24 bits et des * commandes. Vu par uh unique dispositif de traitement, le tampon 15 419 semble ne rëprésenter qu'un seul registre d'information de mémoire et un seul registre d'adresse de mémoire. A un instant donné quelconque, le tampon 419 peut contenir jusqu'à huit demandes de mémoire, une pour chaqtie dispositif de traitement virtuel. Ces demandes' sont de préférence traitées sur 20 une base combinée de priorité fixe et de priorité d'entrée et de sortie. De préférence, quatre niveaux de priorité sont établis et si deux ou plus de deux demandes de même rang de priorité ne sont pas traitées à un moment donné quelconque, elles sont traitées en priorité d'entrée et de sortie. 25 Lorsqu'une demande parvient au tampon 419» elle reçoit auto matiquement une affectation de priorité déterminée par le fichier de priorité de la mémoire 12 à 15 maintenu dans l'un des registres 431. Ce fichier est agencé suivant les numéros dos dispositifs de traitement virtuel et toutes les demandes provenant d'un disposi— 30 tif de traitement particulier reçoivent la priorité codée dans deux bits du fichier de priorité. Le contenu du fichier est programmé par le programme d'exécution et l'affectation d'un code de priorité à chaque dispositif de traitement virtuel est fonction du programme à exécuter. En plus de ces deux bits de priorité, un in— 35 dex de temps peut être utilisé pour résoudre les cas d'égale priorité. Les registres 431 ont 32 bits chacun» Chaque registre est a-, dressable à partir des dispositifs dè traitement virtuel et peut également être lu ou inscrit par le dispositif auquel il est con— 40 necté. Les registres 431 fournissent les liaisons de commande et 69 23317 39. 2012589 d'information avec tout l'équipement périphérique y compris le pupitre de l'ordinateur. Certains paramètres qui commandent le fonctionnement de l'ordinateur sont également emmagasinés dans les registres de communication 431 à partir desquels la commande est ex— 5 ercée. Chaque emplacement du registre 431 comporte deux jeux d'entrées comme représenté sur la Fig. 12. L'un de ces jeux est connecté à la PPU 11 et l'autre est disponible en vue de son utilisation par le dispositif périphérique. Les données provenant de la PPU 11 10 sont toujours transférées à la cellule en synchronisme avec le rythmeur de l'ordinateur. Le signal d'autorisation d'inscription dans la 15 La Fig. 13 représente un montage qui permet d'affecter par prépondérance le temps disponible à un ou plusieurs des dispositifs de traitement virtuel Pq à P^ plutôt qu'aux autres, ou encore d'affecter le même temps à tous les dispositifs de traitement. Le contrôle de la répartition des périodes de temps, par exem-20 pie entre les dispositifs de traitement Pq à P^, s'effectue au moyen de deux des registres de cominunication 431 . Les registres 431n et 431m sont représentés sur la Fig. 13. Chaque registre à 32 bits est subdivisé en huit segments de quatre bits par segment. Par exemple, le segment 440 du registre 431n comporte quatre bits a à d 25 qui sont connectés aux portes ET 441 à 444, respectivement. Le segment 445 comporte quatre bits a à d-connectés aux portes ET 446 à 449, respectivement. La première porte ET de tous les groupes de quatre (les portes associées à tous les bits "a"), à savoir les portes ET 441 et 446, etc, est connectée à l'une des entrées d'une 30 porte OU 450. Les portes des bits "b" de chaque groupe sont connectées à la porte OU 451, les troisièmes portes à la porte OU 452 et les quatrièmes, à la porte OU 453. Les sorties des portes OU 450 à 453 sont connectées à un registre 454, dont la sortie est reliée à un décodeur 455. Huit con-35 ducteurs de sortie partent du décodeur 455 pour contrôler les entrées et les sorties de chacun des dispositifs de traitement virtuel Pq à P^. L'unité de commande de séquence 418 est alimentée par des impulsions de rythme apparaissant sur le canal 460. La commande de 40 séquence 418 fonctionne comme un compteur en anneau à seize étages ? 69 23317 40. 2012589 avec une sortie à partir de chaque étage. Da.ns l'exemple considéré, le premier conducteur de sortie 461 du premier étage est connecté à l'une des entrées de chacune des portes ET 441 à 444. D'une ma— | » nière analogue, le conducteur de sortie 462 est connecté aux portes î, 5 ET 446 à 449. Les quatorze autres conducteurs de la commande de sé— 5! quence ou programmateur 418 sont connectés aux groupes successifs | de quatre portes ET. | f. Trois des quatre bits 440, à savoir les bits b, c. et d, spéci— | fient l'un des dispositifs de traitement virtuel Pq à P^ en éta- J 10 blissant une condition convenable sur un conducteur à la sortie du | décodeur 455. Le quatrième bit, à savoir le bit a, es-t utilisé pour | permettre ou interdire un décodage quelconque pour un jeu donné en £ fonction de l'état du bit a de manière à permettre la non—affecta— f tion d'une période de temps donnée. " , i' 15 On remarquera que l'unité arithmétique 400 est couplée avec les registres 431n et 43îm, par exemple par des canaux 470, moyen— nant quoi l'unité arithmétique 400, sous la commande du programme, 1 assure les affectations désirées dans les registres 431n et 431m. j ,, En conséquence, en reponse aux impulsions de rythme apparaissant J V 20 sur le conducteur 460, le décodeur 451 peut progresser pas-à—pas, à chaque impulsion de rythme, d'un dispositifde traitement virtuel f donné à un autre. Selon le contenu des registres 431n et 431m, la % totalité du temps peut être affectée à l'un des dispositifs de traitement ou être partagée en parties égales ou en parties inéga— 25 les suivant la détermination assurée à. cet égard par les codes présents dans les registres 431n et 431m. f. En ce qui concerne les conducteurs de commande partant de la | sortie du décodeur 455, il doit être bien compris à ce stade .que la ® 3 logique reliant les registres 431n et 43Ira au décodeur a été repré— r S 30 sentée au niveau des bits. Par contre, la logique reliant le déco— deur 455 à la AU 400 pour la commande des dispositifs de traitement ' i I virtuel Pq à P^ est représentée, non pas au niveau des bits, mais au niveau de communication totale entre les dispositifs de traitement Pq à P^ et la AU 400. 35 Les conducteurs de code 460 à 467 relient le décodeur 455 aux unités Pq à P^, respectivement. La transmission des données des dispositifs de traitement sur les canaux 478' est autorisée ou interdite par les états des conducteurs 460 à 467. Plus précisément, le canal 460 aboutit à une porte 40 ET 490 qui est également alimentée par le canal 478. Une porte ET $ BAD ORIGINAL 69 23317 M'. 2012589 500 est incorporée au canal de sortie de Pq et est ouverte par un état du conducteur 460. D'une manière analogue, les portes 491 à 497 et les portes 501 à 507 commandent les dispositifs.de traitement virtuel P^ à P^o 5 Les portes 500 à 507 sont connectées, par l'intermédiaire de la porte OU 508, à la AU 400, pour la transmission .de .données à celle-ci. Par ce moyen, un seul des dispositifs de traitement Pq à P^ fonctionne à un instant donné quelconque et le temps est proportionné par le contenu des cellules 440, 445» etc, suivant, le rythme 10 déterminé par la commande de séquence 418, • Dans le mode de réalisation particulier de l'ordinateur décrit, celui—ci fonctionne en synchronisme. La CPU 10 comporte un rythmeur produisant des impulsions à des intervalles de 50 canosecondes. Le rythmeur de la PPU 11 produit .des impulsions de rythme à des inter— 15 valles de 65 nanosecondes. Le tampon de mémoire, et son fonctionnement sont décrits dans la demande de brevet français N° déposée le L'opération de commutation de contexte automatisée et le dispositif assurant cette opération et représenté sur les Fig. 20 3, 4,8 et 9 sont décrit dans la demande dé brevet français n° du ... 69 23317 42 5012589 — REVENDICATIONS ' " i/ Unité arithmétique d'ordinateur numérique permettant de traiter des" blocs importants de données bien ordonnés à une cadence de fonctionnement rapide, caractérisée en ce qu'elle comprend 5 une combinaisons d'une série d'unités spécialisées (Fig. 8) capables chacune d'effectuer une opération arithmétique différente sur des opérandes d'entrée, un montage permettant de connecter des unités choisies permi'lesdifces unités spécialisées suivant des configurations série en exécution d'instructions de fonctions 10 arithmétiques incluses et de canaux d'entrées opérandes (300a, 300b, 300c, 300d) pour appliquer de façon synchrone des opérandes à travers lesdites configurations série en vue de l'exécution d'opérations simultanées par les unités spécialisées choisies sur différents opérandes pendant chaque période synchrone, de manière 15 à engendrer des signaux de sortie périodiques en exécution desdites instructions de fonctions arithmétiques. 2/ Unité arithmétique suivant la revendication 1, caractérisée en ce qu'elle comprend une série de sections arithmétiques en parallèle (300A, 30ÔB) comprenant chacune une série d'unités 20 spécialisées capables d'effectuer des opérations arithmétiques différentes sur des opérandes d'entrée, le montage précité étant capable de connecter sélectivement des unités spécialisées choisies dans chacune desdites sections arithmétiques suivant des 'configurations série en exécution d'instructions de fonctions ari-25 thmétiques incluses. 3/ Unité arithmétique suivant l'une des revendications 1 ou 2, caractérisée en ce qu'il est prévu un rythmeur de synchronisation dans lequel les unités spécialisées choisies agissent simultanément sur des opérandes différents au cours de chaque période 30 de rythme en engendrant les signaux de sortie périodiques en exécution des instructions de fonctions arithmétiques précitées. 4/ Unité arithmétique suivant l'une quelconque des revendications là), caractérisée en ce que les opérandes d'entrée sont des signaux d'entrée vectoriels et en ce que la série d'unités 35 spécialisées comprend une unité de soustraction d'exposant (302) permettant de retrancher un exposant desdits signaux d'entrée vectoriels, une unité d'alignement (304) permettant d'aligner les 69 23317 43. 2012589 unité de normalisation (308) pour normaliser les signaux d'entrée vectoriels, et une unité de sortie (310) pour assurer la sortie de signaux traités en exécution des instructions de fonctions arithmétiques. 5 5/ Unité arithmétique suivant la revendication 2, caracté risée en ce que la série de sections arithmétiques en parallèle comprend un certain nombre d'étages .comportant un agencement d'interconnexion entre les divers étages pour formeiAn ensemble de traitement à étages multiples pour l'addition à virgule flot-10 tante d'opérandes appliqués à l'unité arithmétique, chacun de ces étages pouvant être subdivisé en deuxsections en parallèle (300A, 300B) comprenant chacune une unité d'addition (306, 33*0, une unité de multiplication (312, 3^1) dans chacune de ces sections pour produire en réponse à une impulsion de rythme déter-15 minée, une pseudo-somme et un pseudo-report, dans chacune de ces sections, un couplage programmable pour connecter la sortie de l'une des unités de multiplication (312) à l'unité d'addition (306) sur l'une des sections, et un couplage programmable pour connecter la sortie de l'autre unité de multiplication (3^1) à 20 l'unité d'addition dans les deux sections, moyennant quoi l'on peut produire sélectivement des produits de multiplication de longueur simple ou de longueur double. 6/ Unité arithmétique suivant la revendication 5.» caractérisée en ce qu'elle comprend une imité d'extraction d'ins-25 truction (128), une unité tampon d'instruction (127a) et une unité de commande (127) montées en. tandem pour traiter simultanément une série d'instructions de fonctions arithmétiques différentes en vue de leur exécution par des unités spécialisées choisies. 30 7/ Procédé d'utilisation d'une unité arithmétique construi te suivant la revendication 1, caractérisé par un traitement simultané mais différent d'une série d'opérandes à l'intérieur de l'unité arithmétique sous la commande d'une instruction de programme, de manière à exécuter une séquence prédéterminée or-35 donnée d'opérations arithmétiques sur chacun de ces opérandes et par un traitement simultané mais différent d'une série d'instructions de fonctions arithmétiques dans la séquence d'instructions, immédiatement avant l'exécution par l'unité arithmétique .