FR2635601A1 - Processeur de donnees a fonctions multiples - Google Patents
Processeur de donnees a fonctions multiples Download PDFInfo
- Publication number
- FR2635601A1 FR2635601A1 FR8910476A FR8910476A FR2635601A1 FR 2635601 A1 FR2635601 A1 FR 2635601A1 FR 8910476 A FR8910476 A FR 8910476A FR 8910476 A FR8910476 A FR 8910476A FR 2635601 A1 FR2635601 A1 FR 2635601A1
- Authority
- FR
- France
- Prior art keywords
- logic unit
- arithmetic logic
- bit
- bits
- input
- Prior art date
- Legal status (The legal status is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the status listed.)
- Granted
Links
Classifications
-
- G—PHYSICS
- G06—COMPUTING OR CALCULATING; COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F15/00—Digital computers in general; Data processing equipment in general
- G06F15/76—Architectures of general purpose stored program computers
- G06F15/78—Architectures of general purpose stored program computers comprising a single central processing unit
- G06F15/7828—Architectures of general purpose stored program computers comprising a single central processing unit without memory
- G06F15/7832—Architectures of general purpose stored program computers comprising a single central processing unit without memory on one IC chip (single chip microprocessors)
-
- G—PHYSICS
- G06—COMPUTING OR CALCULATING; COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F15/00—Digital computers in general; Data processing equipment in general
- G06F15/76—Architectures of general purpose stored program computers
- G06F15/78—Architectures of general purpose stored program computers comprising a single central processing unit
- G06F15/7867—Architectures of general purpose stored program computers comprising a single central processing unit with reconfigurable architecture
-
- G—PHYSICS
- G06—COMPUTING OR CALCULATING; COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F15/00—Digital computers in general; Data processing equipment in general
- G06F15/76—Architectures of general purpose stored program computers
- G06F15/80—Architectures of general purpose stored program computers comprising an array of processing units with common control, e.g. single instruction multiple data processors
- G06F15/8007—Architectures of general purpose stored program computers comprising an array of processing units with common control, e.g. single instruction multiple data processors single instruction multiple data [SIMD] multiprocessors
-
- G—PHYSICS
- G06—COMPUTING OR CALCULATING; COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F7/00—Methods or arrangements for processing data by operating upon the order or content of the data handled
- G06F7/38—Methods or arrangements for performing computations using exclusively denominational number representation, e.g. using binary, ternary, decimal representation
- G06F7/48—Methods or arrangements for performing computations using exclusively denominational number representation, e.g. using binary, ternary, decimal representation using non-contact-making devices, e.g. tube, solid state device; using unspecified devices
- G06F7/483—Computations with numbers represented by a non-linear combination of denominational numbers, e.g. rational numbers, logarithmic number system or floating-point numbers
-
- G—PHYSICS
- G06—COMPUTING OR CALCULATING; COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F7/00—Methods or arrangements for processing data by operating upon the order or content of the data handled
- G06F7/38—Methods or arrangements for performing computations using exclusively denominational number representation, e.g. using binary, ternary, decimal representation
- G06F7/48—Methods or arrangements for performing computations using exclusively denominational number representation, e.g. using binary, ternary, decimal representation using non-contact-making devices, e.g. tube, solid state device; using unspecified devices
- G06F7/57—Arithmetic logic units [ALU], i.e. arrangements or devices for performing two or more of the operations covered by groups G06F7/483 – G06F7/556 or for performing logical operations
-
- G—PHYSICS
- G06—COMPUTING OR CALCULATING; COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F9/00—Arrangements for program control, e.g. control units
- G06F9/06—Arrangements for program control, e.g. control units using stored programs, i.e. using an internal store of processing equipment to receive or retain programs
- G06F9/30—Arrangements for executing machine instructions, e.g. instruction decode
- G06F9/30003—Arrangements for executing specific machine instructions
- G06F9/30007—Arrangements for executing specific machine instructions to perform operations on data operands
- G06F9/3001—Arithmetic instructions
- G06F9/30014—Arithmetic instructions with variable precision
-
- G—PHYSICS
- G06—COMPUTING OR CALCULATING; COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F9/00—Arrangements for program control, e.g. control units
- G06F9/06—Arrangements for program control, e.g. control units using stored programs, i.e. using an internal store of processing equipment to receive or retain programs
- G06F9/30—Arrangements for executing machine instructions, e.g. instruction decode
- G06F9/30003—Arrangements for executing specific machine instructions
- G06F9/30007—Arrangements for executing specific machine instructions to perform operations on data operands
- G06F9/30018—Bit or string instructions
-
- G—PHYSICS
- G06—COMPUTING OR CALCULATING; COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F9/00—Arrangements for program control, e.g. control units
- G06F9/06—Arrangements for program control, e.g. control units using stored programs, i.e. using an internal store of processing equipment to receive or retain programs
- G06F9/30—Arrangements for executing machine instructions, e.g. instruction decode
- G06F9/30003—Arrangements for executing specific machine instructions
- G06F9/30007—Arrangements for executing specific machine instructions to perform operations on data operands
- G06F9/30036—Instructions to perform operations on packed data, e.g. vector, tile or matrix operations
-
- G—PHYSICS
- G06—COMPUTING OR CALCULATING; COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F2207/00—Indexing scheme relating to methods or arrangements for processing data by operating upon the order or content of the data handled
- G06F2207/38—Indexing scheme relating to groups G06F7/38 - G06F7/575
- G06F2207/3804—Details
- G06F2207/3808—Details concerning the type of numbers or the way they are handled
- G06F2207/3812—Devices capable of handling different types of numbers
- G06F2207/382—Reconfigurable for different fixed word lengths
-
- G—PHYSICS
- G06—COMPUTING OR CALCULATING; COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F2207/00—Indexing scheme relating to methods or arrangements for processing data by operating upon the order or content of the data handled
- G06F2207/38—Indexing scheme relating to groups G06F7/38 - G06F7/575
- G06F2207/3804—Details
- G06F2207/3808—Details concerning the type of numbers or the way they are handled
- G06F2207/3812—Devices capable of handling different types of numbers
- G06F2207/3824—Accepting both fixed-point and floating-point numbers
-
- G—PHYSICS
- G06—COMPUTING OR CALCULATING; COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F2207/00—Indexing scheme relating to methods or arrangements for processing data by operating upon the order or content of the data handled
- G06F2207/38—Indexing scheme relating to groups G06F7/38 - G06F7/575
- G06F2207/3804—Details
- G06F2207/3808—Details concerning the type of numbers or the way they are handled
- G06F2207/3828—Multigauge devices, i.e. capable of handling packed numbers without unpacking them
Landscapes
- Engineering & Computer Science (AREA)
- Theoretical Computer Science (AREA)
- Physics & Mathematics (AREA)
- General Physics & Mathematics (AREA)
- Computer Hardware Design (AREA)
- General Engineering & Computer Science (AREA)
- Pure & Applied Mathematics (AREA)
- Mathematical Optimization (AREA)
- Mathematical Analysis (AREA)
- Computing Systems (AREA)
- Computational Mathematics (AREA)
- Software Systems (AREA)
- Nonlinear Science (AREA)
- Microelectronics & Electronic Packaging (AREA)
- Mathematical Physics (AREA)
- Logic Circuits (AREA)
- Executing Machine-Instructions (AREA)
Abstract
Un processeur de données comprend une unité logique arithmétique ULA pouvant être reconfigurée, qui comporte trois portions 50, 60, 66. La portion 50 comprend deux ports d'entrée 48, 54 à 16 bits et un port de sortie 94 à 16 bits. Les deux autres portions comprennent chacune deux ports d'entrée à 8 bits et un port de sortie à 8 bits. Un fichier à registres 36 à 16 bits pouvant être reconfiguré est relié aux entrées des portions. Des commutateurs 84, 78 relient des bornes de sorties de report des seconde et troisième portions à des bornes d'entrée de report des première et seconde portions, respectivement. Les deux commutateurs étant conducteurs, une unité ULA à 32 bits est constituée de trois portions. Avec un premier commutateur ouvert, deux unités ULA à 16 bits indépendantes sont formées. Avec le second commutateur ouvert et le premier fermé, le traitement d'une mantisse à 24 bits, d'une virgule flottante à exposant à 8 bits peut être effectuée par des unités ULA indépendantes. La sortie de la première portion ULA est rebouclée par un premier multiplexeur 18 à une première entrée à 16 bits d'un registre, et les deux sorties à 8 bits des seconde et troisième portions ULA sont rebouclées par un second multiplexeur 24 à une seconde entrée à 16 bits du registre. La sortie du registre applique des mots devant être traités aux portions ULA. Application à l'architecture des microprocesseurs.
Description
La présente invention concerne une architecture de microprocesseur
destinée à exécuter une opération efficace sur une donnée à précision unique, à précision multiple et à
virgule flottante.
On utilise beaucoup les processeurs numériques de
signaux dans les systèmes modernes de tous les types.
Lorsqu'un traitement doit être effectué sur une donnée ayant des nombres de bits différents, par exemple des trajets de données à 8, 16 ou 32 bits, on rencontre des difficultés pour réaliser la configuration de l'architecture afin de tenir compte efficacement des divers types de données. Par exemple, dans le cas du traitement d'une donnée à 8, 16 et 32 bits, et o une partie de la donnée peut être sous forme d'une virgule flottante avec une mantisse à 24 bits et un exposant à 8
bits, il est possible d'utiliser une unité logique arithmé-
tique (ULA) de 16 bits pour opérer sur les 16 bits de la
donnée lors de chaque cycle de l'horloge, stockant temporai-
rement les bits de report jusqu'au cycle suivant. Le problème soulevé par l'utilisation d'un microprocesseur à 16 bits pour exécuter des opérations sur 32 bits est qu'il faut des cycles multiples d'horloge, d'o le ralentissement de l'ensemble du fonctionnement. L'unité logique arithmétique de 16 bits, lorsqu'elle doit traiter des données à 8 bits, nécessite un pré-traitement des 8 bits pour la configurer au trajet ou format de traitement à 16 bits. Lorsqu'une mantisse de 24
263S601
-2- bits en même temps qu'un exposant à 8 bits doivent être traités, la situation soulevée par l'utilisation de l'unité logique arithmétique à 16 bits est même pire, car la partie de la donnée à mantisse de 24 bits doit être divisée en deux portions, ce qui nécessite au moins deux cycle d'horloge, qu'on fait suivre d'un autre cycle d'horloge agissant sur l'exposant. On peut utiliser un processeur à 32 bits ou ULA pour traiter des signaux de 32 bits. Cela présente l'avantage qu'on peut traiter 32 bits dans un seul cycle d'horloge lors de chaque passe. Cependant, le microprocesseur ULA 32 bits nécessite un pré-traitement de manière à traiter des signaux tant de 16 bits que de 8 bits. La mantisse à 24 bits avec l'exposant à 8 bits nécessite en outre un traitement indépendant des portions à mantisse et à exposant, par "'éclatement", et impose en outre le pré-traitement de la portion à mantisse. Le pré-traitement, l'éclatement, etc.,
peuvent malheureusement nécessiter un matériel supplémen-
taire, des cycles d'horloge supplémentaires, ou bien les
deux.
Dans le cas o des types à données multiples tels que 8, 16 et 32 bits, comme on l'a décrit ci-dessus, doivent être traités, et que les increments des données peuvent être tassés en groupes plus petits que le groupe le plus grand, par exemple en utilisant un système ULA à 16 bits, on rencontre un autre problème en ce sens que des mots successifs à 16 bits représentant les parties à bit de poids fort (MSB) et à bit de poids faible (LEB) d'un mot à 32 bits doivent être chargés dans des parties appropriées de l'ULA pour un traitement correct. Un agencement ULA pouvant traiter
efficacement divers types de données est souhaitable.
Une unité logique arithmétique (ULA) selon la présente invention est fractionnée en au moins trois portions, chacune comprenant deux ports d'entrée, un port de sortie et au moins une borne de report. La première portion ULA comporte des -3- ports d'entrée et sortie-à N1 bits, et la seconde et la troisième portions ULA ont des ports d'entrée et de sortie à N2 et N3 bits, respectivement. Lorsqu'on doit traiter des mots de (N1 + N2 + N3) bits, les trois portions ULA ont leurs bornes d'entrée et de sortie de report couplées ensemble pour former une portion ULA à (N1 + N2 + N3) bits qui traite le mot à (Ni + N2 + N3) bits dans un cycle d'horloge. La portion ULA à N1 bits est découplée des deux portions ULA couplées à N2 et N3 bits pour traiter deux mots indépendants à (N2 + N3) bits à la fois. Les portions ULA à N1 bits et N2 bits sont couplées ensemble pour traiter les mantisses à (N1 + N2) bits
alors que la portion ULA restante à N3 bits traite indépen-
damment l'exposant à N3 bits. Dans un mode de réalisation particulier, N2 = N3, et Nl = N2 + N3. Plus particulièrement,
N1 = 16 bits, et N2 et N3 ont chacun 8 bits.
La suite de la description se réfère aux figures
annexées qui représentent respectivement: Figure 1, un schéma d'ensemble sous forme de blocs d'une unité de traitement dont la configuration peut être réalisée selon la présente invention, et figure 2, un schéma sous forme de blocs d'une portion
à registre du fichier à registresde la figure 1.
En figure 1, des données ou des signaux à 16 bits sont appliqués à partir d'une source (non représentée) à un premier port d'entrée 10 à 16 bits et d'autres signaux à 16 bits le sont à un second port d'entrée 12 à 16 bits. Les ports 10 et 12 peuvent être amenés à recevoir deux mots de 16 bits à précision unique, un mot à 32 bits à précision double ou une mantisse à 24 bits à virgule flottante en même temps qu'un exposant à 8 bits. Lorsque le signal d'entrée est un mot à 32 bits, le port d'entrée 10 reçoit la portion de poids fort et l'entrée 12 la portion de poids faible. Lorsque le mot d'entrée est une mantisse de 24 bits à virgule flottante en même temps qu'un exposant à 8 bits, le port d'entrée 10 reçoit les 16 bits de poids fort de la mantisse, et le port -4- d'entrée 12 les 8 autres bits de poids faible de la mantisse dans ses 8 positions de poids fort et la portion à exposant de 8 bits dans ses 8 portions de poids faible. Si seulement un mot de 16 bits seul doit être traité, le signal au port d'entrée 12 devient non pertinent et n'est pas chargé dans le
fichier à registre décrit ci-dessous.
Le signal introduit dans le port d'entrée 10 est appliqué par un jeu 14 de conducteurs à 16 bits à un premier port d'entrée 16 d'un multiplexeur 18. Le signal introduit dans le port d'entrée 12 est appliqué par un jeu de
conducteurs 20 à un premier port d'entrée 22 d'un multi-
plexeur 24.
Les multiplexeurs 18 et 24 sont contrôlés par un circuit 26 de commande multiplex. Lorsque les signaux doivent être chargés, les signaux appliqués au moyen des ports d'entrée 10 et 12 aux bornes d'entrée 16 et 22 des multiplexeurs 18 et 24, respectivement, sont appliqués à partir des ports de sortie des multiplexeurs 18 et 24 au moyen de jeux 28 et 30 de conducteurs, respectivement, à des bornes d'entrée 32 et 34, respectivement, d'un fichier 36 à registres. Le fichier 36 est un groupe de registres, qu'on décrit ultérieurement en liaison avec la figure 2. Le fichier 36 à registres stocke des mots appliqués aux bornes d'entrée 32 et 34 sous le contrôle de signaux de commande appliqués par un jeu 120 de conducteurs. Le fichier 36 à registres est effectivement une mémoire à accès direct qui fournit un stockage temporaire de manière à faciliter les opérations des
unités logiques arithmétiques (ULA) qu'on décrit ci-dessous.
Le fichier 36 a des sorties à 16 bits à chacun des ports 38,
40, 42 et 44.
Les signaux apparaissant au port 38 de sortie à 16 bits du fichier 36 à registres sont appliqués par un jeu 46 de conducteurs à la première borne d'entrée 48 à 16 bits d'une unité ULA 50 à 16 bits. Les signaux apparaissant au port de sortie 40 du fichier 36 sont appliqués par un jeu 52 -5- de conducteurs à 16 bits à un port d'entrée 54 à 16 bits de l'unité ULA 50. Ainsi, les portions de poids fort à 16 bits d'une mantisse à virgule flottante sont appliquées aux ports
d'entrée de l'unité ULA 50. Les signaux de sortie apparais-
sant au port de sortie 42 à 16 bits du fichier 36 sont divisés en portions à bits de poids fort (MSB) et à bits de poids faible (LSB). Les portions MSB sont appliquées par un jeu 56 de 8 conducteurs à un premier port d'entrée 58 à 8 bits d'une unité ULA 60 à 8 bits. Les portions LSB du signal apparaissant au port de sortie 42 du registre 36 sont appliquées par un jeu 60 de 8 conducteurs à un premier port d'entrée 64 à 8 bits d'une unité ULA 66 à 8 bits. Les signaux à 16 bits apparaissant au port de sortie 44 du fichier 36 sont divisés en portions MSB et LSB, avec les portions MSB appliquées par un jeu 68 de 8 conducteurs à un second port d'entrée 70 à 8 bits de l'unité ULA 60, et les portions LSB étant appliquées par un jeu 72 de 8 conducteurs à un second port d'entrée 74 à 8 bits de l'unité ULA 66. Ainsi, les 8 bits de poids faible de la mantisse d'un mot à virgule flottante sont appliqués aux ports d'entrée de l'unité ULA , alors que les bits de la mantisse à 8 bits le sont aux
ports d'entrée de l'unité ULA 66.
L'unité ULA 66 à 8 bits comprend aussi un port de sortie 76 de report qui est relié par un commutateur contrôlable 78 à un port d'entrée 80 de report de l'unité ULA 60. Alors qu'on a représenté le commutateur 78 comme un commutateur monopolaire, à deux directions, le technicien remarquera que des équivalents à corps solide peuvent être utilisés en pratique. L'unité ULA 60 comprend également un port de sortie 82 de report qui est relié par un commutateur contrôlable 84 à un port d'entrée 86 de report de l'unité ULA 50. Le commutateur 78, dans la position illustrée, relie la borne de sortie 76 de report de l'unité ULA 66 à la borne d'entrée 80 de report de l'unité ULA 60, mais dans son autre position (non représentée) le commutateur 78 déconnecte la -6- borne de sortie 76 de la borne d'entrée 80 et au contraire relie la borne d'entrée 80 à une borne 88 à laquelle est
appliqué un niveau logique bas (représenté par la masse).
D'une façon semblable, le commutateur contrôlable 84, dans la position illustrée, relie la borne de sortie 82 de report de l'unité ULA 60 à la borne d'entrée 86 de report de l'unité ULA 50, mais dans son autre position (non représentée) les découple et au contraire relie la borne d'entrée 86 à un niveau logique bas (représenté par la masse) connecté à une borne 90. Les commutateurs 78 et 84 sont contrôlés par un circuit de commande représenté par un bloc 92. Le circuit de commande 92 peut être un simple décodeur qui reçoit des signaux par un jeu 93 de conducteurs représentatif du type de signal traité pendant le cycle d'horloge du circuit. Le circuit de commande 92 décode le signal et place les commutateurs 78 et 84 dans les positions correctes, comme on
le décrit ci-dessous.
L'unité ULA 50 à 16 bits produit son signal de sortie traité à un port de sortie 94 à 16 bits, qui est relié par un jeu 96 de conducteurs à un second port d'entrée 98 du multiplexeur 18. Le signal produit par l'unité ULA 60 à 8 bits est obtenu à un port de sortie 98 à 8 bits et est relié à un jeu 100 de 8 conducteurs MSB. D'une façon similaire, le signal de sortie à 8 bits de l'unité ULA 66 est produit à un port de sortie 102 à 8 bits et est appliqué à un jeu 104 de 8 conducteurs LSB. Les jeux 100 et 104 de conducteurs se fondent pour former un jeu 106 de 16 conducteurs qui est
relié à un second port d'entrée 108 du multiplexeur 24.
Pendant le fonctionnement avec un signal d'entrée de 32 bits, dont les portions MSB sont appliquées au port d'entrée 10 et les portions LSB au port d'entrée 12, le fonctionnement binaire à 32 bits s'effectue en trois cycles d'horloge. Le premier cycle d'horloge sert à charger le premier mot à 32 bits dans le fichier à registres à partir des ports d'entrée 10 et 12, et le second cycle d'horloge à - 7 - charger le second mot à 32 bits dans le fichier. Avec les deux mots à 32 bits stockés, on peut utiliser le troisième cycle d'horloge pour traiter les mots par les trois unités ULA 50, 60 et 66, connectées comme une unité ULA à 32 bits par la position représentée des commutateurs 78 et 84. Les mots traités peuvent être remis en circulation jusqu'au fichier 36 à registres pour nouveau traitement au moyen des secondes entrées des multiplexeurs 18 et 24. Naturellement, lors d'opérations permanentes un chargement et un traitement continus ont lieu, et les cycles d'horloge requis pour le chargement se produisent simultanément aux cycles d'horloge utilisés pour le traitement. Une sortie peut donc être disponible pendant chaque intervalle d'horloge. La sortie à 32 bits peut commodément être prélevée aux jeux 96 et 106 de conducteurs, comme représenté par les lignes en tirets 110 et 112 reliées à des ports de sortie 111 et 113, à 16 bits, respectivement.
De manière à fonctionner avec des entrées indépen-
dantes à 16 bits, le premier mot indépendant d'entrée à 16 bits est appliqué à la borne d'entrée 10 simultanément à l'application du second mot indépendant d'entrée à 16 bits au port d'entrée 12, et les deux mots sont stockés simultanément dans le fichier 36 à registres en réponse au premier cycle d'horloge. Lors du second cycle d'horloge, l'unité ULA 50 à 16 bits peut traiter la donnée indépendamment des unités 60 et 66, ou les unités ULA 60 et 66 à 8 bits peuvent traiter le
signal ensemble indépendamment de l'unité ULA 50. La dépen-
dance de l'unité ULA 50 vis-à-vis des unités ULA 60 et 66 est obtenue en faisant passer le commutateur 84 dans sa position ouverte, c'est-à-dire dans l'autre position (non représentée)
dans laquelle la borne 86 est reliée à la masse.
Le traitement de quatre mots à précision unique de 16 bits peut s'effectuer: (a) lors d'un premier cycle d'horloge, en appliquant le premier des deux mots à 16 bits au fichier 36 au moyen du port d'entrée 10 et du multiplexeur -8- 18, et le second par le port d'entrée 12 et le multiplexeur 24, et (b) pendant un second cycle d'horloge, en appliquant un troisième mot à 16 bits au registre 36 au moyen du port 10 et du multiplexeur 18, et un quatrième mot à 16 bits au moyen du port 12 et du multiplexeur 24. Lor du troisième cycle d'horloge, l'unité ULA 50 traite indépendamment les premier et troisième mots appliqués à ses premier (48) et second (54) ports d'entrée à partir des ports 38 et 40 du fichier 36, et les unités ULA 60 et 66 traitent ensemble de manière indépendante les second et quatrième mots à 16 bits appliqués à leurs entrées à partir des ports de sortie 42 et 44 du fichier 36. Comme dans le cas de traitement à double
précision, le fonctionnement en continu comprend le charge-
ment et le traitement lors de chaque cycle d'horloge.
Le commutateur 84 peut être ouvert à tout moment antérieur ou à l'instant o la sortie produite au port de sortie 94 (ou 98, 102) est appliquée à un élément de
stockage, par exemple par remise en circulation par l'inter-
médiaire du multiplexeur 18 vers le fichier 36, ou l'applica-
tion d'une sortie au moyen du jeu 110 de conducteurs vers un appareil d'utilisation. Avec le commutateur 84 ouvert, l'unité ULA 50 à 16 bits fonctionne indépendamment des unités ULA 60 et 66. Cependant, avec le commutateur 78 fermé, la sortie de report de l'unité ULA 66 est appliquée à l'entrée de report 80 de l'unité ULA 60, d'o il résulte que les deux unités ULA à 8 bits forment ensemble une seule unité ULA à 16 bits qui est indépendante de l'unité ULA 50 à 16 bits. En conséquence, le signal à 16 bits appliqué à l'origine au moyen du port d'entrée 12 et du multiplexeur 24 au fichier 36 a ses portions LSB traitées par l'unité ULA 86 à 8 bits et les portions MSB, en même temps que la sortie de report de l'unité ULA 66 à 8 bits, traitées par l'unité ULA 60 à 8 bits. Deux sorties traitées indépendantes sont produites indépendamment sur des jeux 96 et 106 de conducteurs et sont disponibles pour remise en circulation ou pour sorties -9-
directes comme on l'a indiqué ci-dessus.
Lors de l'exécution d'opérations sur deux symboles à 32 bits, chacun sous forme d'une mantisse à 24 bits avec en même temps un exposant à 8 bits, chaque symbole est traité comme mot indépendant à 32 bits comportant une mantisse à 24 bits divisée en un premier mot MSB à 16 bits et une portion LSB à 8 bits, avec l'exposant à 8 bits associé à la portion à mantisse LSB à 8 bits dans un second mot à 16 bits. Les deux mots à 16 bits ainsi obtenus pour chaque symbole sont chargés dans le registre 36 lors d'un intervalle d'horloge, à la suite de quoi le chargement de deux tels symboles à 32 bits nécessite deux cycles d'horloge. Les mantisses à 24 bits sont appliquées à partir des ports 38, 40 et à partir des portions MSB des ports 42 et 44 du fichier 36 aux deux ports d'entrée de l'unité ULA 50 à 16 bits et aux deux ports d'entrée de l'ULA 60 à 8 bits. L'exposant à 8 bits est appliqué à partir des portions LSB des ports de sortie 42 et 44 du fichier 36
aux deux ports d'entrée 62 et 74 de l'unité ULA 66 à 8 bits.
A un certain moment avant que les résultats du traitement par les unités ULA soient achevés, le commutateur 84 est fermé et le commutateur 78 ouvert. Avec le commutateur 78 ouvert, l'unité ULA 66 fonctionne indépendamment des deux autres, et l'unité ULA 60 à 8 bits agit en conjonction avec l'unité ULA à 16 bits comme une unité ULA à 24 bits. Les portions à mantisse de 24 bits des symboles sont traitées par la combinaison ULA à 24 bits, et les portions à mantisse de 8 bits le sont par l'unité ULA 66 à 8 bits. Ainsi, le traitement du signal à virgule flottante peut être achevé en moins d'un cycle d'horloge, comme avec le traitement de simples mots à 32 bits (précision double) et de paires de
mots à 16 bits (précision simple).
Les commutateurs 78 et 84 peuvent être laissés ouverts, ce qui permet un fonctionnement indépendant de l'unité ULA 50 à 16 bits, de l'unité ULA 60 à 8 bits et de
l'unité ULA 66 à 8 bits indépendamment les unes des autres.
- 10 -
La figure 2 est un schéma sous forme de blocs du fichier 36 à registres. Les éléments de la figure 2 correspondant à ceux de la figure 1 sont désignés par les mêmes références. En figure 2, un jeu 28 de 16 conducteurs est appliqué en parallèle à des premiers ports d'entrée à 16
bits 208a, 208b... 208n de 32 multiplexeurs 210a, 210b...
210n, respectivement. D'une façon similaire, un jeu 30 de 16 conducteurs est appliqué en parallèle à des seconds ports d'entrée à 16 bits 206a, 206b... 206n des multiplexeurs 210a, 210b... 210n, respectivement. Les ports de sortie à 16 bits des multiplexeurs 210 sont appliqués aux ports d'entrée à 16 bits de 32 registres à 16 bits 212a, 212b... 212n, respectivement. Le mot à 16 bits chargé dans l'un quelconque des registres 212 apparaît à tout moment sur son jeu 214a, 214b... 214n de conducteurs de sortie à 16 bits. Le jeu 214 de conducteurs de sortie de chacun des registres 212 est appliqué simultanément à l'un des 32 ports d'entrée à 16 bits de chacun des multiplexeurs 216a, 216b, 216c et 216d. Le jeu de conducteurs de sortie à 16 bits du multiplexeur 216a est accouplé au port 38 de sortie à 16 bits du fichier 36. La sortie du multiplexeur 216b est appliquée au port de sortie à 16 bits, la sortie du multiplexeur 216c est appliquée au port de sortie 42, et la sortie du multiplexeur 216d au port
de sortie 44.
Chaque multiplexeur 216, 32:1, est contrôlé par des
signaux de commande à 5 bits appliqués par un jeu corres-
pondant 218a-218d de conducteurs, qui est une portion d'un jeu 218 de conducteurs de commande. Ainsi, par exemple, comme illustré en figure 2, le multiplexeur 216a applique à son jeu de conducteurs de sortie et au port de sortie 38, le signal appliqué à une entrée sélectionnée parmi ses 32 entrées à 16 bits, sous la commande du signal de sélection à 5 bits qui lui est appliqué par le jeu 218a de conducteurs. Cet agencement permet au mot à 16 bits stocké dans l'un
quelconque des registres 212 d'être appliqué à l'un quelcon-
- il -
que des ports de sortie 38, 40, 42 ou 44, et permet la sélection simultanée des mots à 16 bits stockés dans quatre
des registres 212 pour application aux ports de sortie 38-44.
Chaque multiplexeur 210 applique à son jeu de conduc-
teurs de sortie et au port d'entrée du registre 212 correspondant le signal appliqué à son premier port d'entrée à partir du jeu 28 de conducteurs lorsque sa borne d'entrée de sélection (S) se trouve dans un état logique particulier, par exemple à un état logique bas. Plus spécialement, lorsque l'entrée S de l'un quelconque des multiplexeurs 210 est à l'état logique haut, ce multiplexeur 210 applique à son jeu de conducteurs de sortie et au registre 212 associé le signal appliqué à son second port d'entrée 206 par le jeu 30 de conducteurs. Lorsque l'entrée S d'un multiplexeur 212 se trouve à l'état logique bas, ce multiplexeur applique à son jeu de conducteurs de sortie le signal appliqué à son premier
port d'entrée par le jeu 28 de conducteurs.
Chaque registre 212 comprend une borne d'entrée de
validation de charge (VC). Chaque registre 212a, 212b...
212n est associé à une porte OU 220a, 220b... 220n, respectivement. La sortie de chaque porte OU 220 est appliquée à la borne VC du registre 212 associé. Chaque porte OU 220 comprend deux bornes d'entrée, dont l'une est reliée à l'un des 32 conducteurs de sortie à un conducteur ou lignes 223 provenant d'un décodeur 222, 1:32. L'autre borne d'entrée de chaque porte OU 220 est reliée à l'une des lignes de
sortie 225 à un conducteur d'un second décodeur 224, 1:32.
Ainsi, les 32 conducteurs de sortie 225 du décodeur 224 sont appliqués individuellement aux entrées des 32 portes OU 220 séparées. Les conducteurs de sortie 223 du décodeur 222 sont de même reliés aux secondes entrées des portes OU 220 et sont
- également reliés aux entrées S des multiplexeurs 210 asso-
ciés. A titre d'exemple spécifique, la porte OU 220a a son entrée reliée à la borne d'entrée VC du registre 212a, qui est disposé de manière à recevoir les signaux à 16 bits en
- 12 -
provenance du multiplexeur 210a. Un conducteur de sortie 223a provenant du décodeur 222 est relié à la borne S du multiplexeur 210a et à une entrée de la porte OU 220a. La porte OU 220a est également reliée à un conducteur 225a de sélection de sortie du décodeur 224. Le décodeur 222 reçoit un signal de commande à 5 bits en provenance d'un jeu 226 de conducteurs, et le décodeur 224 reçoit un signal de commande à 5 bits par un jeu 228 de conducteurs. Le signal de commande appliqué au décodeur 222 par le jeu 226 de conducteurs a pour effet que l'une de ses 31 lignes de sortie 223 prend un niveau logique haut, validant l'un des 31 registres 212 pour écriture en mémoire, et commandant le multiplexeur 210 associé pour appliquer le signal provenant du jeu 30 de conducteurs à ce registre pour écriture ou charge. Lorsqu'elle est ainsi validée par un état logique haut à l'entrée VC, l'impulsion suivante d'horloge (les impulsions d'horloge et les connexions ne sont pas illustrées) provoque l'écriture dans le registre sélectionné par le détecteur 222 de données provenant du jeu 30 de conducteurs. Le signal de commande à 5 bits appliqué par le jeu 228 de conducteurs au décodeur 224 peut sélectionner simultanément n'importe quel autre registre pour charge à partir du jeu 28 de conducteurs. Ainsi, le signal à 5 bits sur le jeu 228 de conducteurs a pour effet que l'un des 32 conducteurs de sortie 225 du décodeur 224 choisit un registre 212 à valider au moyen de sa porte OU associée 220. Comme les conducteurs de sortie du décodeur 224 ne sont pas reliés à la
borne d'entrée S des multiplexeurs associés, les multi-
plexeurs associés aux registres 212 choisis par le décodeur 224 appliquent au registre sélectionné les signaux provenant du jeu 28 de conducteurs. La même impulsion d'horloge qui provoque le rythmage du registre sélectionné par le décodeur 222 peut provoquer aussi le rythmage dans le registre sélectionné par le décodeur 224. Une façon simple pour voir cette partie du fonctionnement est de considérer qu'un signal
- 13 -
appliqué au jeu 226 de conducteurs choisit un registre à charger (lors de l'impulsion d'horloge suivante) à partir du jeu 30 de conducteurs, et un signal appliqué au jeu 228 de conducteurs choisit un registre destiné à être chargé de façon similaire à partir du jeu 28 de conducteurs. la façon exacte de contrôler les commutateurs 78 et 84 (figure 1) dépendra des types des données devant être
traitées de temps en temps, qui, comme on l'a décrit ci-
dessus peuvent être à précision simple, à précision double ou à virgule flottante dans un cycle d'horloge particulier et dépendra aussi du type de traitement effectué. La commande apparaîtra au technicien, comme le seront les signaux de commande appliqués par le jeu 120 de conducteurs pour que les signaux arrivent aux ports corrects de l'unité ULA. D'une façon similaire, la commande des multiplexeurs 18 et 24 dépend du moment o des mots nouveaux doivent être chargés, et du fait qu'il faut ou non une remise en circulation des données, ce qui dépend de l'application particulière de l'agencement. D'autres modes de réalisation de la présente invention apparaîtront au technicien. Par exemple, la sortie du système peut être prélevée aux ports de sortie 38, 40, 42 et 44 du fichier à registres plutôt qu'au moyen des conducteurs de
sortie 110, 112 (figure 1).
En général, on peut utiliser des nombres différents de bits par mot. L'impératif général est que si un traitement à précision unique utilise N1 bits, et qu'un traitment à
virgule flottante utilise un exposant à N3 bits, le traite-
ment à précision double est alors effectué par des mots à
N1+N2+N3 bits, o N2 est la différence entre N1 et N3.
- 14 -
Claims (10)
1. Agencement pour le traitement d'une donnée à 2N
bits produite à des premier et second ports de source à N-
bits (10, 12), donnée qui peut être réalisée en configura-
tion sous la forme d'un mot à 2N bits ou de deux mots à N- bits ou d'un mot comprenant une mantisse à 3N/2 bits avec un exposant à N/2-bits, comprenant: un fichier à registres à N-bits (36) comportant des premier et second ports d'entrée à N-bits (32, 34) et des premier, second, troisième, quatrième, cinquième et sixième ports de sortie (38, 40, 42, 44), les premier et second ports de sortie ayant N-bits, les troisième et quatrième ports de sortie ayant chacun N/2 bits qui constituent ensemble un port de sortie à N-bits, avec le troisième port de sortie représentant les bits de poids fort des N-bits, et le quatrième port de sortie représentant les autres bits de poids faible, les cinquième et sixième ports de sortie ayant chacun N/2 bits, qui constituent ensemble un port de sortie de N-bits, avec le cinquième port de sortie représentant les bits de poids fort, et le sixième port de sortie représentant les autres bits de poids faible; une unité logique arithmétique (50; 60; 66) pouvant être reconfigurée de manière dynamique, comportant des premier et second ports d'entrée reliés à une première portion (50) de l'unité logique arithmétique, les premier et second ports d'entrée de la première portion de l'unité logique arithmétique ayant chacun N-bits et étant reliés aux premier et second ports de sortie du fichier à registres, respectivement, la première portion de l'unité logique arithmétique comprenant en outre un borne d'entrée de report et un port de sortie à N-bits, l'unité logique arithmétique pouvant être reconfigurée comportant en outre des troisième et quatrième ports d'entrée reliés à une seconde portion (60) de l'unité logique arithmétique, la seconde portion de l'unité logique arithmétique comprenant en outre une borne
- 15 -
d'entrée de report, une borne de sortie de report, et un port de sortie à N/2 bits, le troisième port d'entrée de l'unité logique arithmétique ayant N/2 bits et étant relié au troisième port de sortie du fichier à registres (36), le quatrième port d'entrée de l'unité logique arithmétique ayant N/2 bits et étant relié au cinquième port de sortie du fichier à registres, l'unité logique arithmétique pouvant être reconfigurée comprenant en outre des cinquième et sixième ports d'entrée reliés à une troisième portion (66) de l'unité logique arithmétique, la troisième portion de l'unité logique arithmétique comprenant en outre une borne de sortie de report et une borne de sortie à N/2 bits, le cinquième port d'entrée de l'unité logique arithmétique ayant N/2 bits et étant couplé au quatrième port de sortie du fichier à registres, et le sixième port d'entrée de l'unité logique arithmétique ayant N/2 bits et étant relié au sixième port de sortie du fichier à registres, l'unité logique arithmétique pouvant être reconfigurée comportant en outre, des premier et second moyens de commutateur contrôlable (84,.78), le premier moyen de commutateur (84) comprenant un trajet contrôlable relié à la borne de sortie de report (82) de la seconde portion de l'unité logique arithmétique et à la borne d'entrée de report (86) de la première portion de l'unité logique arithmétique, le second moyen de commutateur (78) comprenant un trajet contrôlable relié à la borne de sortie de report (76) de la troisième portion de l'unité logique arithmétique et à la borne d'entrée de report (80) de la seconde portion de l'unité logique arithmétique, les premier et second moyens de commutateur comprenant chacun des bornes d'entrée de commande; et des moyens de couplage (18, 24) reliés aux premier et second ports d'entrée à N-bits du fichier à registres (36) et destinés à être reliés aux premier et second ports de source à N-bits pour appliquer une donnée provenant des premier et second ports de source aux premier et second ports d'entrée
- 16 -
du fichier à registres, respectivement; un moyen (92) de commande de commutateur relié aux premier et second moyens de commutateur (84, 78) pour les commander dans des premier, second et troisième modes de fonctionnement, le premier mode de fonctionnement ayant les premier et second moyens de commutateur fermés pour faire ainsi fonctionner les première, seconde et troisième portions (50, 60, 66) de l'unité logique arithmétique ensemble sous forme d'une unité logique arithmétique à 2N bits, le second mode de fonctionnement ayant le premier moyen de commutateur (84) ouvert et le second moyen de commutateur (78) fermé pour faire fonctionner la première portion de l'unité logique
arithmétique de manière indépendante et pour faire fonction-
ner les seconde et troisième portions de l'unité logique arithmétique ensemble sous forme d'une portion à N-bits, le troisième mode de fonctionnement ayant le premier moyen de commutateur fermé et le second moyen de commutateur ouvert pour former ainsi une portion à 3N/2 bits de l'unité logique arithmétique comprenant les première et seconde portions de l'unité logique arithmétique ensemble avec une portion séparée à N/2 bits comportant la troisième portion de l'unité
logique arithmétique.
2. Agencement selon la revendication 1, caractérisé
en ce que N est égal à seize et N/2 à huit.
3. Agencement selon la revendication 1, caractérisé en ce que les moyens de couplage comprennent: un premier moyen de multiplexage (18) comportant des premier et second ports d'entrée à N-bits et un port de sortie à Nbits, et comprenant en outre un port d'entrée de commande, le port de sortie du premier moyen de multiplexage étant relié au premier port d'entrée du fichier à registres
(36), le premier port d'entrée du premier moyen de multi-
plexage étant relié au port de sortie de la première portion (50) de l'unité logique arithmétique, et le second port d'entrée du premier moyen de multiplexage étant destiné à
- 17 -
être relié au premier port de source (10), un second moyen de multiplexage (24) comprenant des premier et second ports d'entrée à N- bits et un port de sortie à N-bits divisé en portions à bits de poids fort (MSB) et de poids faible (LSB), et comportant en outre un port d'entrée de commande, le port de sortie du second moyen de multiplexage étant relié au second port d'entrée du fichier à registres, la portion à bits de poids fort du premier port d'entrée du second moyen de multiplexage étant reliée au port de sortie de la seconde portion (60) de l'unité logique arithmétique, et la portion à bits de poids faible du premier port d'entrée du second moyen de multiplexage étant reliée au port de sortie de la troisième portion (66) de l'unité logique arithmétique, le second port d'entrée du second moyen de multiplexage étant destiné à être relié au second port de source (12), un moyen de commande multiplex (26) relié aux premier et second moyens de multiplexage (18, 24) pour faire fonctionner les premier et second moyens de multiplexage ensemble dans l'un d'un premier mode de fonctionnement sans réaction et d'un second mode de fonctionnement à réaction, le premier mode de fonctionnement reliant les seconds ports du moyen de multiplexage de manière à recevoir une donnée provenant des ports de source et reliant les ports de sortie des premier et second moyens de multiplexage aux premier et second ports d'entrée du fichier à registres (36) pour charger ce fichier avec la donnée à traiter et pour découpler les ports de sortie des première, seconde et troisième portions (50, 60, 66) de l'unité logique arithmétique des ports d'entrée du fichier, et le second mode découplant les ports de source des ports d'entrée du fichier et reliant le port de sortie de la première portion de l'unité logique arithmétique au premier port du fichier et les ports de sortie des seconde et troisième portions de l'unité logique arithmétique aux portions à bits de poids fort et à bits de
- 18 -
poids faible, respectivement, du second port d'entrée du fichier, afin de permettre des passages recurrents dans
l'unité logique arithmétique.
4. Agencement selon la revendication 1, caractérisé en ce que le moyen de commande de commutateur (92) commande en outre les moyens de commutateur dans un quatrième mode de fonctionnement, ce quatrième mode ayant les premier et second moyens de commutateur ouverts pour faire fonctionner les premier, seconde et troisième portions (50, 60, 66) de
l'unité logique arithmétique de façon indépendante.
5. Processeur pouvant être reconfiguré, caractérisé en ce qu'il comprend:
une première unité logique arithmétique (50) compor-
tant des premier, second ports et un port de sortie à N-bits et une borne d'entrée de report; une seconde unité logique arithmétique (60) comportant des premier, second ports et un port de sortie à N/2 bits, des bornes d'entrée et de sortie de report,
une troisième unité logique arithmétique (66) compor-
tant des premier et second ports et un port de sortie à N/2 bits, et une borne de sortie de report, des moyens de couplage contrôlables (78, 84) reliés aux bornes d'entrée de report des première et seconde unités logiques arithmétiques et aux bornes de sortie de report des seconde et troisième unités logiques arithmétiques pour coupler sélectivement la borne de sortie de report de la troisième unité logique arithmétique à la borne d'entrée de report de la seconde unité logique arithmétique et la borne de sortie de report de la seconde unité logique arithmétique
à l'entrée de report de la première unité logique arithmé-
tique; un moyen pour appliquer (a), dans un premier mode de fonctionnement, le bit de poids fort des N-bits d'un premier mot à 2 Nbits au premier port d'entrée de la première unité logique arithmétique et le bit de poids fort des N-bits d'un
- 19 -
second mot à 2N-bits au second port d'entrée de la première unité logique arithmétique, et le bit de poids faible des N/2 bits du premier mot à 2Nbits au premier port d'entrée de la troisième unité logique arithmétique et le bit de poids faible des N/2 bits du second mot à 2N-bits au second port d'entrée de la troisième unité logique arithmétique, et les autres N/2-bits du premier mot à 2N-bits au premier port d'entrée de la seconde unité logique arithmétique et les autres N/2 bits du second mot à 2N bits au second port d'entrée de la seconde unité logique arithmétique, (b) dans un second mode de fonctionnement, un premier mot à N-bits au
premier port d'entrée de la première unité logique arithmé-
tique et un second mot à N-bits au second port d'entrée de la première unité logique arithmétique, et les N/2 bits de poids fort d'un troisième mot à N-bits au premier port d'entrée de la seconde unité logique arithmétique et les N/2 bits de poids fort d'un quatrième mot à N-bits au second port d'entrée de la seconde unité logique arithmétique, et les N/2bits de poids faible du troisième mot à N-bits au premier port d'entrée de la troisième unité logique arithmétique et les N/2 bits de poids faible du quatrième mot à N-bits au
second port d'entrée de la troisième unité logique arithmé-
tique, (c) dans un troisième mode de fonctionnement, les N-
bits de poids fort de la mantisse à 3N/2 bits d'un premier mot à virgule flottante au premier port d'entrée de la première unité logique arithmétique et les N-bits de poids fort de la mantisse à 3N/2 bits d'un second mot à virgule flottante au second port de la première unité logique arithmétique, et les N/2 bits de poids faible de la mantisse à 3N/2 bits du premier mot à virgule flottante au premier port d'entrée de la seconde unité logique arithmétique, et les N/2 bits de poids faible du second mot à virgule flottante au second port d'entrée de la seconde unité logique arithmétique, et l'exposant à N/2 bits du premier mot à virgule flottante au premier port d'entrée de la troisième
- 20 -
unité logique arithmétique, et l'exposant à N/2 bits du second mot à virgule flottante au second port d'entrée de la troisième unité logique arithmétique, et un moyen (92) pour commander les moyens de couplage contrôlables pour: (a) dans le premier mode de fonctionne- ment, coupler la borne de sortie de report de la troisième unité logique arithmétique à la borne d'entrée de report de la seconde unité logique arithmétique et la borne de sortie de report de la seconde unité logique arithmétique à la borne d'entrée de report de la première unité logique arithmétique, (b) dans le second mode de fonctionnement, découpler la borne de sortie de report de la seconde unité logique arithmétique de la borne d'entrée de report de la première unité logique arithmétique et coupler la borne de sortie de report de la troisième unité logique arithmétique à la borne d'entrée de report de la seconde unité logique arithmétique, et (c) dans le troisième mode de fonctionnement, coupler la borne de sortie de report de la seconde unité logique arithmétique à la borne d'entrée de report de la première unité logique arithmétique et découpler la borne de sortie de report de la troisième unité logique arithmétique de la borne d'entrée de
report de la seconde unité logique arithmétique.
6. Agencement pour le traitement d'une donnée ayant un nombre de bits égal à N1 + N2 + N3, donnée qui est produite à un premier port de source (10) à N1 bits et à un second port de source (12) à (N2 + N3) bits, donnée qui peut être configurée sous forme d'un mot à N1 + N2 + N3 bits, ou de deux mots à N1 bits, ou d'un mot comprenant une mantisse à (N1 + N2) bits avec un exposant à N3 bits, caractérisé en ce qu'il comprend: un fichier à registres ( 36) à N1 bits comprenant un premier port d'entrée à N1 bits et un second port d'entrée à (N2 + N3) bits et des premier, second, troisième, quatrième, cinquième et sixième ports de sortie, les premier et second ports de sortie ayant chacun N1 bits, les troisième et
quatrième ports de sortie ayant N2 et N3 bits, respective-
- 21 -
ment, qui constituent ensemble un port de sortie, avec le troisième port de sortie représentant le bit de poids fort des N2 + N3 bits, et le quatrième port de sortie représentant les autres bits de poids faible, les cinquième et sixième ports de sortie ayant N2 et N3 bits, respectivement, qui constituent ensemble un port de sortie, avec le cinquième port de sortie représentant les bits de poids fort, et le sixième port de sortie représentant les autres bits de poids faible,
une unité logique arithmétique pouvant être reconfi-
gurée de manière dynamique (50, 60, 66) comportant des premier et second ports d'entrée reliés à une première portion (50) de l'unité logique arithmétique, les premier et second ports d'entrée de la première portion de l'unité logique arithmétique ayant chacun N1 bits et étant reliés aux premier et second ports de sortie du fichier à registres, respectivement, la première portion de l'unité logique arithmétique comprenant en outre une borne d'entrée de report et un port de sortie à N1 bits, l'unité logique arithmétique pouvant être reconfigurée comportant en outre des troisième et quatrième ports d'entrée couplés à une seconde portion (60) de l'unité logique arithmétique, la seconde portion de l'unité logique arithmétique comportant en outre une borne d'entrée de report, une borne de sortie de report, et un port de sortie à N2 bits, le troisième port d'entrée de l'unité logique arithmétique ayant N2 bits et étant relié au troisième port de sortie du fichier à registres, le quatrième port d'entrée de l'unité logique arithmétique ayant N2 bits et étant relié au cinquième port de sortie du fichier à
registres, l'unité logique arithmétique pouvant être reconfi-
gurée comportant en outre des cinquième et sixième ports d'entrée couplés à une troisième portion (66) de l'unité logique arithmétique, la troisième portion de l'unité logique arithmétique comportant en outre une borne de sortie de report et un port de sortie à N3 bits, le cinquième port
- 22 -
d'entrée de l'unité logiquer arithmétique ayant N3 bits et étant relié au quatrième port de sortie du fichier à registres, et le sixième port d'entrée de l'unité logiquer arithmétique ayant N3 bits et étant relié au sixième port de sortie du fichier à registres, l'unité logique arithmétique pouvant être reconfigurée comportant en outre des premier et second moyens de commutateur contrôlables (84, 78), le premier moyen de commutateur comprenant un trajet contrôlable relié à la borne de sortie de report de la seconde portion de l'unité logique arithmétique et à la borne d'entrée de report de la première portion de l'unité logique arithmétique, le second moyen de commutateur comportant un trajet contrôlable relié à la borne de sortie de report de la troisième portion de l'unité logique arithmétique et à la borne d'entrée de report de la seconde portion de l'unité logique arithmétique, les premier et second moyens de commutateur comportant en outre chacun des bornes d'entrée de commande; des moyens de couplage (18, 24) reliés aux premier et second ports d'entrée du fichier à registres et destinés à être reliés aux premier et second ports de source (10, 12) pour appliquer la donnée provenant des premier et second ports de source aux premier et second ports d'entrée du fichier à registres, respectivement, un moyen (92) de commande de commutateur relié aux premier et second moyens de commutateur pour commander le moyen de commutateur dans au moins des premier, second et troisième modes de fonctionnement, le premier mode de
fonctionnement ayant les premier et second moyens de commuta-
teur fermés pour faire fonctionner les première, seconde et troisième portions de l'unité logiquer arithmétique ensemble sous forme d'une unité logique arithmétique à (N1 + N2 + N3) bits, le second mode de fonctionnement ayant le premier moyen de commutateur ouvert et le second moyen de commutateur fermé pour faire fonctionner la première portion de l'unité logiquer arithmétique de manière indépendante et pour faire
- 23 -
fonctionner les seconde et troisième portions de l'unité logiquer arithmétique ensemble sous forme d'une portion à (N2 + N3) bits, le troisième mode de fonctionnement ayant le premier moyen de commutateur fermé et le second moyen de commutateur ouvert pour former une portion à (N1 + N2) bits de l'unité logiquer arithmétique comprenant les première et seconde portions de l'unité logique arithmétique en m&me temps qu'une portion séparée à N3 bits incorporant la
troisième portion de l'unité logique arithmétique.
7. Agencement selon la revendication 5, dans lequel Ni=N2+N3.
8. Agencement selon la revendication 7, caractérisé en
ce que N1 est égal à seize, N2 à huit et N3 à huit.
9. Agencement selon la revendication 6, caractérisé en
ce que N2=N3.
10. Agencement selon la revendication 6, caractérisé en ce que le moyen de commande de commutateur commande en outre les moyens de commutateur dans un quatrième mode de fonctionnement, ce quatrième mode de fonctionnement ayant les premier et second moyens de commutateur ouverts pour faire fonctionner les première, seconde et troisième portions de
l'unité logiquer arithmétique de manière indépendante.
Applications Claiming Priority (1)
| Application Number | Priority Date | Filing Date | Title |
|---|---|---|---|
| US07/234,124 US4901268A (en) | 1988-08-19 | 1988-08-19 | Multiple function data processor |
Publications (2)
| Publication Number | Publication Date |
|---|---|
| FR2635601A1 true FR2635601A1 (fr) | 1990-02-23 |
| FR2635601B1 FR2635601B1 (fr) | 1993-08-13 |
Family
ID=22880035
Family Applications (1)
| Application Number | Title | Priority Date | Filing Date |
|---|---|---|---|
| FR898910476A Expired - Fee Related FR2635601B1 (fr) | 1988-08-19 | 1989-08-03 | Processeur de donnees a fonctions multiples |
Country Status (5)
| Country | Link |
|---|---|
| US (1) | US4901268A (fr) |
| KR (1) | KR0137217B1 (fr) |
| CA (1) | CA1325281C (fr) |
| FR (1) | FR2635601B1 (fr) |
| GB (1) | GB2222012B (fr) |
Cited By (1)
| Publication number | Priority date | Publication date | Assignee | Title |
|---|---|---|---|---|
| EP0468820A3 (en) * | 1990-07-26 | 1993-01-07 | Fujitsu Limited | Data processing system for single-precision and double-precision data |
Families Citing this family (62)
| Publication number | Priority date | Publication date | Assignee | Title |
|---|---|---|---|---|
| US5001662A (en) * | 1989-04-28 | 1991-03-19 | Apple Computer, Inc. | Method and apparatus for multi-gauge computation |
| US5666510A (en) * | 1991-05-08 | 1997-09-09 | Hitachi, Ltd. | Data processing device having an expandable address space |
| US5625713A (en) * | 1991-08-09 | 1997-04-29 | Ricoh Corporation | Apparatus and method for increasing the throughput of an acoustic or image compression system |
| JPH05282133A (ja) * | 1992-04-01 | 1993-10-29 | Mitsubishi Electric Corp | 演算方式 |
| JP2806171B2 (ja) * | 1992-08-31 | 1998-09-30 | 日本電気株式会社 | データ演算装置 |
| DE69428466T2 (de) * | 1993-11-23 | 2002-05-23 | Hewlett-Packard Co. (N.D.Ges.D.Staates Delaware), Palo Alto | Parallele Datenverarbeitung in einem Einzelprozessor |
| US5509129A (en) * | 1993-11-30 | 1996-04-16 | Guttag; Karl M. | Long instruction word controlling plural independent processor operations |
| JP2561055B2 (ja) * | 1994-11-18 | 1996-12-04 | インターナショナル・ビジネス・マシーンズ・コーポレイション | 情報処理装置及びその制御方法 |
| US5943242A (en) | 1995-11-17 | 1999-08-24 | Pact Gmbh | Dynamically reconfigurable data processing system |
| US7266725B2 (en) | 2001-09-03 | 2007-09-04 | Pact Xpp Technologies Ag | Method for debugging reconfigurable architectures |
| DE19651075A1 (de) * | 1996-12-09 | 1998-06-10 | Pact Inf Tech Gmbh | Einheit zur Verarbeitung von numerischen und logischen Operationen, zum Einsatz in Prozessoren (CPU's), Mehrrechnersystemen, Datenflußprozessoren (DFP's), digitalen Signal Prozessoren (DSP's) oder dergleichen |
| US6338106B1 (en) | 1996-12-20 | 2002-01-08 | Pact Gmbh | I/O and memory bus system for DFPS and units with two or multi-dimensional programmable cell architectures |
| DE19654593A1 (de) * | 1996-12-20 | 1998-07-02 | Pact Inf Tech Gmbh | Umkonfigurierungs-Verfahren für programmierbare Bausteine zur Laufzeit |
| DE19654595A1 (de) * | 1996-12-20 | 1998-07-02 | Pact Inf Tech Gmbh | I0- und Speicherbussystem für DFPs sowie Bausteinen mit zwei- oder mehrdimensionaler programmierbaren Zellstrukturen |
| DE19654846A1 (de) * | 1996-12-27 | 1998-07-09 | Pact Inf Tech Gmbh | Verfahren zum selbständigen dynamischen Umladen von Datenflußprozessoren (DFPs) sowie Bausteinen mit zwei- oder mehrdimensionalen programmierbaren Zellstrukturen (FPGAs, DPGAs, o. dgl.) |
| ATE243390T1 (de) * | 1996-12-27 | 2003-07-15 | Pact Inf Tech Gmbh | Verfahren zum selbständigen dynamischen umladen von datenflussprozessoren (dfps) sowie bausteinen mit zwei- oder mehrdimensionalen programmierbaren zellstrukturen (fpgas, dpgas, o.dgl.) |
| DE19704044A1 (de) * | 1997-02-04 | 1998-08-13 | Pact Inf Tech Gmbh | Verfahren zur automatischen Adressgenerierung von Bausteinen innerhalb Clustern aus einer Vielzahl dieser Bausteine |
| US6542998B1 (en) | 1997-02-08 | 2003-04-01 | Pact Gmbh | Method of self-synchronization of configurable elements of a programmable module |
| DE19704728A1 (de) | 1997-02-08 | 1998-08-13 | Pact Inf Tech Gmbh | Verfahren zur Selbstsynchronisation von konfigurierbaren Elementen eines programmierbaren Bausteines |
| DE19704742A1 (de) * | 1997-02-11 | 1998-09-24 | Pact Inf Tech Gmbh | Internes Bussystem für DFPs, sowie Bausteinen mit zwei- oder mehrdimensionalen programmierbaren Zellstrukturen, zur Bewältigung großer Datenmengen mit hohem Vernetzungsaufwand |
| US8686549B2 (en) | 2001-09-03 | 2014-04-01 | Martin Vorbach | Reconfigurable elements |
| DE19861088A1 (de) * | 1997-12-22 | 2000-02-10 | Pact Inf Tech Gmbh | Verfahren zur Reparatur von integrierten Schaltkreisen |
| KR100265362B1 (ko) * | 1997-12-30 | 2000-09-15 | 김영환 | 직병렬 방식을 이용한 마이크로프로세서의 데이터송수신 방법 |
| DE19807872A1 (de) | 1998-02-25 | 1999-08-26 | Pact Inf Tech Gmbh | Verfahren zur Verwaltung von Konfigurationsdaten in Datenflußprozessoren sowie Bausteinen mit zwei- oder mehrdimensionalen programmierbaren Zellstruktur (FPGAs, DPGAs, o. dgl. |
| WO2000025981A1 (fr) * | 1998-10-30 | 2000-05-11 | Shin-Etsu Handotai Co., Ltd. | Plan non poli de maintien/travail et son procede de fabrication ; technique et dispositif de polissage |
| US7003660B2 (en) | 2000-06-13 | 2006-02-21 | Pact Xpp Technologies Ag | Pipeline configuration unit protocols and communication |
| US6493817B1 (en) * | 1999-05-21 | 2002-12-10 | Hewlett-Packard Company | Floating-point unit which utilizes standard MAC units for performing SIMD operations |
| DE10081643D2 (de) | 1999-06-10 | 2002-05-29 | Pact Inf Tech Gmbh | Sequenz-Partitionierung auf Zellstrukturen |
| AU2002220600A1 (en) | 2000-10-06 | 2002-04-15 | Pact Informationstechnologie Gmbh | Cell system with segmented intermediate cell structure |
| US8058899B2 (en) | 2000-10-06 | 2011-11-15 | Martin Vorbach | Logic cell array and bus system |
| US20040015899A1 (en) * | 2000-10-06 | 2004-01-22 | Frank May | Method for processing data |
| US6990555B2 (en) * | 2001-01-09 | 2006-01-24 | Pact Xpp Technologies Ag | Method of hierarchical caching of configuration data having dataflow processors and modules having two- or multidimensional programmable cell structure (FPGAs, DPGAs, etc.) |
| US7210129B2 (en) | 2001-08-16 | 2007-04-24 | Pact Xpp Technologies Ag | Method for translating programs for reconfigurable architectures |
| US7444531B2 (en) * | 2001-03-05 | 2008-10-28 | Pact Xpp Technologies Ag | Methods and devices for treating and processing data |
| US20090300262A1 (en) * | 2001-03-05 | 2009-12-03 | Martin Vorbach | Methods and devices for treating and/or processing data |
| US20090210653A1 (en) * | 2001-03-05 | 2009-08-20 | Pact Xpp Technologies Ag | Method and device for treating and processing data |
| US7844796B2 (en) * | 2001-03-05 | 2010-11-30 | Martin Vorbach | Data processing device and method |
| US7581076B2 (en) | 2001-03-05 | 2009-08-25 | Pact Xpp Technologies Ag | Methods and devices for treating and/or processing data |
| US9037807B2 (en) * | 2001-03-05 | 2015-05-19 | Pact Xpp Technologies Ag | Processor arrangement on a chip including data processing, memory, and interface elements |
| WO2002103532A2 (fr) * | 2001-06-20 | 2002-12-27 | Pact Xpp Technologies Ag | Procede de traitement de donnees |
| US7996827B2 (en) | 2001-08-16 | 2011-08-09 | Martin Vorbach | Method for the translation of programs for reconfigurable architectures |
| US20030037085A1 (en) * | 2001-08-20 | 2003-02-20 | Sandbote Sam B. | Field processing unit |
| US7434191B2 (en) * | 2001-09-03 | 2008-10-07 | Pact Xpp Technologies Ag | Router |
| US8686475B2 (en) | 2001-09-19 | 2014-04-01 | Pact Xpp Technologies Ag | Reconfigurable elements |
| US7577822B2 (en) * | 2001-12-14 | 2009-08-18 | Pact Xpp Technologies Ag | Parallel task operation in processor and reconfigurable coprocessor configured based on information in link list including termination information for synchronization |
| EP1470478A2 (fr) * | 2002-01-18 | 2004-10-27 | PACT XPP Technologies AG | Procede de compilation |
| AU2003208266A1 (en) * | 2002-01-19 | 2003-07-30 | Pact Xpp Technologies Ag | Reconfigurable processor |
| WO2003071432A2 (fr) | 2002-02-18 | 2003-08-28 | Pact Xpp Technologies Ag | Systemes de bus et procede de reconfiguration |
| US8914590B2 (en) * | 2002-08-07 | 2014-12-16 | Pact Xpp Technologies Ag | Data processing method and device |
| US20060075211A1 (en) * | 2002-03-21 | 2006-04-06 | Martin Vorbach | Method and device for data processing |
| US7657861B2 (en) * | 2002-08-07 | 2010-02-02 | Pact Xpp Technologies Ag | Method and device for processing data |
| AU2003286131A1 (en) | 2002-08-07 | 2004-03-19 | Pact Xpp Technologies Ag | Method and device for processing data |
| US20110238948A1 (en) * | 2002-08-07 | 2011-09-29 | Martin Vorbach | Method and device for coupling a data processing unit and a data processing array |
| WO2004038599A1 (fr) * | 2002-09-06 | 2004-05-06 | Pact Xpp Technologies Ag | Structure de sequenceur reconfigurable |
| DE112004000026D2 (de) * | 2003-04-04 | 2006-06-14 | Pact Xpp Technologies Ag | Verfahren und Vorrichtung für die Datenverarbeitung |
| EP1634182A2 (fr) * | 2003-06-17 | 2006-03-15 | PACT XPP Technologies AG | Dispositif et procede de traitement de donnees |
| JP4700611B2 (ja) * | 2003-08-28 | 2011-06-15 | ペーアーツェーテー イクスペーペー テクノロジーズ アクチエンゲゼルシャフト | データ処理装置およびデータ処理方法 |
| US20090031104A1 (en) * | 2005-02-07 | 2009-01-29 | Martin Vorbach | Low Latency Massive Parallel Data Processing Device |
| US7281942B2 (en) * | 2005-11-18 | 2007-10-16 | Ideal Industries, Inc. | Releasable wire connector |
| WO2007082730A1 (fr) | 2006-01-18 | 2007-07-26 | Pact Xpp Technologies Ag | Procédé de définition de matériels |
| JP4782591B2 (ja) * | 2006-03-10 | 2011-09-28 | 富士通セミコンダクター株式会社 | リコンフィグラブル回路 |
| US20100272811A1 (en) * | 2008-07-23 | 2010-10-28 | Alkermes,Inc. | Complex of trospium and pharmaceutical compositions thereof |
Citations (5)
| Publication number | Priority date | Publication date | Assignee | Title |
|---|---|---|---|---|
| EP0011374A1 (fr) * | 1978-11-17 | 1980-05-28 | Motorola, Inc. | Unité de commande d'une installation de traitement d'informations avec des lignes de communication communes segmentées |
| EP0119016A2 (fr) * | 1983-02-14 | 1984-09-19 | Data General Corporation | Unité à virgule flottante à précision multiple |
| EP0198470A2 (fr) * | 1985-04-16 | 1986-10-22 | Nec Corporation | Unité arithmétique avec un système de détection de débordement simple |
| JPS61255433A (ja) * | 1985-05-07 | 1986-11-13 | Mitsubishi Electric Corp | 演算装置 |
| US4748585A (en) * | 1985-12-26 | 1988-05-31 | Chiarulli Donald M | Processor utilizing reconfigurable process segments to accomodate data word length |
Family Cites Families (8)
| Publication number | Priority date | Publication date | Assignee | Title |
|---|---|---|---|---|
| US4161784A (en) * | 1978-01-05 | 1979-07-17 | Honeywell Information Systems, Inc. | Microprogrammable floating point arithmetic unit capable of performing arithmetic operations on long and short operands |
| JPH061438B2 (ja) * | 1984-04-26 | 1994-01-05 | 日本電気株式会社 | 倍精度乗算器 |
| JPS61141034A (ja) * | 1984-12-14 | 1986-06-28 | Hitachi Ltd | 演算結果限界割出し装置 |
| US4752901A (en) * | 1985-09-16 | 1988-06-21 | Motorola, Inc. | Arithmetic logic unit utilizing strobed gates |
| US4754412A (en) * | 1985-10-07 | 1988-06-28 | Schlumberger Systems & Services, Inc. | Arithmetic logic system using the output of a first alu to control the operation of a second alu |
| US4760544A (en) * | 1986-06-20 | 1988-07-26 | Plessey Overseas Limited | Arithmetic logic and shift device |
| ATE64018T1 (de) * | 1986-07-11 | 1991-06-15 | Siemens Ag | Verfahren und anordnung zur verknuepfung von operanden variabler laenge in datenverarbeitungsanlagen. |
| US4823260A (en) * | 1987-11-12 | 1989-04-18 | Intel Corporation | Mixed-precision floating point operations from a single instruction opcode |
-
1988
- 1988-08-19 US US07/234,124 patent/US4901268A/en not_active Expired - Fee Related
-
1989
- 1989-06-01 CA CA000601486A patent/CA1325281C/fr not_active Expired - Fee Related
- 1989-08-03 FR FR898910476A patent/FR2635601B1/fr not_active Expired - Fee Related
- 1989-08-18 GB GB8918917A patent/GB2222012B/en not_active Expired - Lifetime
- 1989-08-19 KR KR1019890011815A patent/KR0137217B1/ko not_active Expired - Fee Related
Patent Citations (5)
| Publication number | Priority date | Publication date | Assignee | Title |
|---|---|---|---|---|
| EP0011374A1 (fr) * | 1978-11-17 | 1980-05-28 | Motorola, Inc. | Unité de commande d'une installation de traitement d'informations avec des lignes de communication communes segmentées |
| EP0119016A2 (fr) * | 1983-02-14 | 1984-09-19 | Data General Corporation | Unité à virgule flottante à précision multiple |
| EP0198470A2 (fr) * | 1985-04-16 | 1986-10-22 | Nec Corporation | Unité arithmétique avec un système de détection de débordement simple |
| JPS61255433A (ja) * | 1985-05-07 | 1986-11-13 | Mitsubishi Electric Corp | 演算装置 |
| US4748585A (en) * | 1985-12-26 | 1988-05-31 | Chiarulli Donald M | Processor utilizing reconfigurable process segments to accomodate data word length |
Non-Patent Citations (1)
| Title |
|---|
| PATENT ABSTRACTS OF JAPAN vol. 11, no. 107 (P-563)(2554) 4 Avril 1987 & JP-A-61 255 433 ( MITSUBISHI ELECTRIC CORP. ) 13 Novembre 1986 * |
Cited By (1)
| Publication number | Priority date | Publication date | Assignee | Title |
|---|---|---|---|---|
| EP0468820A3 (en) * | 1990-07-26 | 1993-01-07 | Fujitsu Limited | Data processing system for single-precision and double-precision data |
Also Published As
| Publication number | Publication date |
|---|---|
| KR0137217B1 (ko) | 1998-06-15 |
| FR2635601B1 (fr) | 1993-08-13 |
| CA1325281C (fr) | 1993-12-14 |
| GB2222012B (en) | 1992-09-09 |
| KR900003733A (ko) | 1990-03-26 |
| GB2222012A (en) | 1990-02-21 |
| US4901268A (en) | 1990-02-13 |
| GB8918917D0 (en) | 1989-09-27 |
Similar Documents
| Publication | Publication Date | Title |
|---|---|---|
| FR2635601A1 (fr) | Processeur de donnees a fonctions multiples | |
| US4075704A (en) | Floating point data processor for high speech operation | |
| US4866652A (en) | Floating point unit using combined multiply and ALU functions | |
| FR2522171A1 (fr) | Architecture d'addition en virgule flottante | |
| US4514805A (en) | Interrupt operation in systems emulator mode for microcomputer | |
| US4975868A (en) | Floating-point processor having pre-adjusted exponent bias for multiplication and division | |
| EP0849664A2 (fr) | Appareil à calculer rapidement des functions transcendentaux | |
| EP0754998A1 (fr) | Unité arithmétique | |
| FR2491654A1 (fr) | Appareil de commande par microprogramme | |
| US5440702A (en) | Data processing system with condition code architecture for executing single instruction range checking and limiting operations | |
| CA1233260A (fr) | Processeur vectoriel parallele a haute performance a configuration de registre vectoriel/processeur d'elements modifiee | |
| US6920470B2 (en) | Signal processing integrated circuit | |
| EP0578540B1 (fr) | Procédé pour tester le fonctionnement d'un circuit intégré spécialisé, et circuit intégré spécialisé s'y rapportant | |
| EP0683454B1 (fr) | Procédé pour tester le déroulement d'un programme d'instructions | |
| FR2583904A1 (fr) | Systeme d'ordinateur du type a trains multiples de donnees et instruction unique (simd), avec traitement selectif des donnees | |
| FR2593620A1 (fr) | Circuit arithmetique et logique multifonction | |
| EP0760119B1 (fr) | Dispositif de mise en uvre numerique d'une operation de division | |
| US4380051A (en) | High speed digital divider having normalizing circuitry | |
| KR100290906B1 (ko) | 부동소수점곱셈기에서반올림과덧셈을동시에수행하는장치및방법 | |
| US4506322A (en) | Read/write memory cell for microcomputer | |
| US4206458A (en) | Numerical display system for electronic instrument | |
| EP0520579A2 (fr) | Dispositif de traitement de l'information plus particulièrement adapté à un langage chaîné, du type FORTH notamment | |
| FR2645665A1 (fr) | Dispositif de decodage d'instructions en pipeline pour microprocesseur | |
| FR2731813A1 (fr) | Processeur informatique utilisant la conversion logarithmique et son procede d'utilisation | |
| EP0152331A2 (fr) | Unité arithmétique et logique avec indicateur de débordement |
Legal Events
| Date | Code | Title | Description |
|---|---|---|---|
| TP | Transmission of property | ||
| ST | Notification of lapse |