FR2569288A1 - Dispositif de calcul d'adresse pour un appareil de traitement numerique - Google Patents

Dispositif de calcul d'adresse pour un appareil de traitement numerique Download PDF

Info

Publication number
FR2569288A1
FR2569288A1 FR8503613A FR8503613A FR2569288A1 FR 2569288 A1 FR2569288 A1 FR 2569288A1 FR 8503613 A FR8503613 A FR 8503613A FR 8503613 A FR8503613 A FR 8503613A FR 2569288 A1 FR2569288 A1 FR 2569288A1
Authority
FR
France
Prior art keywords
address
register
data
memory
registers
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
Application number
FR8503613A
Other languages
English (en)
Other versions
FR2569288B1 (fr
Inventor
Charles L Saxe
Current Assignee (The listed assignees may be inaccurate. Google has not performed a legal analysis and makes no representation or warranty as to the accuracy of the list.)
Tektronix Inc
Original Assignee
Tektronix Inc
Priority date (The priority date 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 date listed.)
Filing date
Publication date
Application filed by Tektronix Inc filed Critical Tektronix Inc
Publication of FR2569288A1 publication Critical patent/FR2569288A1/fr
Application granted granted Critical
Publication of FR2569288B1 publication Critical patent/FR2569288B1/fr
Anticipated expiration legal-status Critical
Expired - Lifetime legal-status Critical Current

Links

Classifications

    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F9/00Arrangements for program control, e.g. control units
    • G06F9/06Arrangements 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/30Arrangements for executing machine instructions, e.g. instruction decode
    • G06F9/34Addressing or accessing the instruction operand or the result ; Formation of operand address; Addressing modes
    • G06F9/345Addressing or accessing the instruction operand or the result ; Formation of operand address; Addressing modes of multiple operands or results

Landscapes

  • Engineering & Computer Science (AREA)
  • Software Systems (AREA)
  • Theoretical Computer Science (AREA)
  • Physics & Mathematics (AREA)
  • General Engineering & Computer Science (AREA)
  • General Physics & Mathematics (AREA)
  • Complex Calculations (AREA)
  • Memory System (AREA)
  • Executing Machine-Instructions (AREA)
  • Advance Control (AREA)

Abstract

L'INVENTION CONCERNE UN DISPOSITIF DE CALCUL D'ADRESSE DESTINE A LA MISE A JOUR DES ADRESSES DE DEPART DE RANGEES DE DONNEES DANS UN PROCESSEUR A ORGANISATION CELLULAIRE PENDANT UN CYCLE D'INSTRUCTION. UN PREMIER ENSEMBLE DE REGISTRES 16 EST PREVU POUR MEMORISER LES ADRESSES DE DEPART POUR CHAQUE RANGEE. UN SECOND ENSEMBLE DE REGISTRE 18 EST PREVU POUR MEMORISER LES ADRESSES COURANTES POUR CHAQUE RANGEE. UNE LOGIQUE EST PREVUE POUR FOURNIR INITIALEMENT, AU DEBUT D'UNE SERIE D'ETAPES DE CALCUL DEVANT ETRE EXECUTEES DE MANIERE REPETITIVE, UNE ADRESSE PROVENANT D'UN REGISTRE DU PREMIER ENSEMBLE DE REGISTRE 16, MODIFIER CETTE ADRESSE ET LA MEMORISER DE NOUVEAU DANS LE MEME REGISTRE ET DANS UN REGISTRE CORRESPONDANT DU SECOND ENSEMBLE DE REGISTRE 18 EN METTANT A JOUR L'ADRESSE DE DEPART POUR LA NOUVELLE REPETITION DE CES ETAPES DE CALCUL TOUT EN FAISANT AVANCER L'ADRESSE COURANTE DE LA SECONDE DE CES ETAPES.

Description

"Dispositif de calcul d'adresse pour un appareil de traitement numérique".
La présente invention concerne un appareil de
traitement numérique et en particulier un dispositif pour cal-
culer l'adresse du prochain opérande à appeler à partir d'une mémoire en même temps que le traitement sur le dernier opérande appelé. Dans un appareil de traitement à organisation cellulaire, il est fréquemment nécessaire d'effectuer une opération sur un ensemble ordonné, ou rangée, de données par un autre ensemble ordonné de données de manière répétitive, en démarrant avec un nouveau point de données dans le premier ensemble pour chaque opération successive. Par exemple, dans le filtrage numérique d'un signal représenté par un ensemble d'échantillons d'une forme d'onde de signal, on effectue de
manière usuelle un produit de composition. Uie expression gé-
nérale représentant le produit de convolution du signal x par la caractéristique h du filtre est la suivante P y (i) = > h (i). x (i+n) n =0
dans laquelle P est le nombre de coefficieni de la caractéris-
tique du filtre et i le nombre de points de données, ces deux nombres obéissant à la relation suivante 0 < i < P Dans cet exemple chaque ensemble de points de
données représentant la forme d'onde x est tout d'abord mul-
tiplié par un coefficient correspondant de h et la somme des
produits est additionnée; ensuite, les coefficient sont déca-
lés d'une position et ce processus est répété. Cette multipli-
cation et cette addition pour chacun des coefficients repré-
sentant la caractéristique du filtre sont répétées jusqu'à ce que l'ensemble des données représentant la forme d'onde du signal ait été traité par produit de composition avec tous les coefficientsreprésentant la caractéristique du filtre, 2. Pendant chaque passage par l'ensemble des coefficients, il faut calculer les adresses des données et des coefficients dans la
mémoire des données après chaque opération successive de mul-
tiplication et d'addition. Après chaque passage de ce type par l'ensemble des coefficients représentant la caractéristique du filtre, le système doit revenir à une adresse de départ pointant sur le début de l'ensemble des coefficients dans la mémoire de données et à une adresse de départ pointant sur le nouveau point de données dans l'ensemble des points de données représentant la forme d'onde, l'indicateur original ayant été
modifié d'une unité.
Undes buts qui est ordinairement recherché dans le traitement à organisation cellulaire, en particulier dans le
traitement de signaux, est de réaliser un calcul à grande vi-
tesse. Ceci est particulièrement important quand on désire faire
un traitement en temps réel. Lorsque, comme dans l'exemple pré-
cédent, des passages répétitifs par des ensembles dEpoints de
données sont nécessaires, il faut calculer de nouvelles adres-
ses pour chaque opération successive, c'est-à-dire que l'on doit prévoir un certain dispositif pour faire avancer les
adresses d'opérande pendant chaque passage et pour réinitiali-
ser les pointeurs au début de chaque passage, ce qui inclut le fait de faire avancer la valeur pour laquelle un pointeur est initialisé. Dans les appareils du type microprocesseur de l'art antérieur, le calcul de l'adresse de départ requiert de manière typique que les adressesde départ et la quantité dont on doit faire avancer les adresses de départ soient stockées dans une mémoire, que ces valeurs soient appelées à chaque fois qu'il faut faire le calcul d'une nouvelle adresse de départ, c'est-à-dire pour réinitialiser l'adresse courante au début de chaque passage par un ensemble d'opérandes et que l'on calcule la nouvelle adresse de départ. Ce processus est accompli par
une série d'étapes de programmes, c'est-à-dire des instructions.
Des appareils qui fonctionnent de cette manière sont représentés, 3. par exemple par le microprocesseur TMS320 fabriqué par la Société TEXAS INSTRUMENTS CORPORATION, le microprocesseur F9445 fabriqué par la Société FAIRCHILD et le microprocesseur ATMAC fabriqué par la Société RADIO CORPORATION OF AMERICA. Ces étapes de programme nécessitent du temps d'unité centrale ce qui augmente le temps
nécessaire pour réaliser une opération de traitement à orga-
nisation cellulaire.
Par conséquent, il serait désirable de fournir un dispositif qui garderait une trace des adresses de départ et des adresses courantes, qui calculerait de nouvelles adresses lorsque l'opération de traitement passe par les ensembles de données et qui calculerait de muvelles adresses de départ pour chaque passage successif par une nouvelle séquence de calcul simultanément avec l'opération sur les opérandes adressées de
manière à maximiser la vitesse des opérations de traitement.
La nécessité d'éliminer des temps d'unité centra-
le utilisés de manière conventionnelle pour calculer de nouvelles adresses et réinitialiser des pointeurs est réalisée selon la
présente invention par la fourniture d'une architecture de sys-
tème qui remplace un fonctionnement traditionnel par programme.
On fournit un premier ensemble de registresd'adresse pour mémo-
riser les pointeurs sur les adresses de départ d'ensembles de données. On prévoit un second ensemble de registres d'adresse pour mémoriser les adresses courantes associées avec ces données et on prévoit un troisième ensemble de registres pour mémoriser la page et la mémoire sur lesqoelles ces adresses se présentent, L'adresse fournie à la mémoire de données est un chaSnagede la sortie des registres de pages et de la sortie de chacun des premier et second
registres d'adresse.
Initialement, le premier ensemble de registre avec le registre de pages fournit les adresses de départ à la mémoire de données. Au même moment, les adresses de départ dans
le premier ensemble de registre sont changées d'une valeur pré-
déterminée et sont mémorisées de nouveau dans le second aussi bien que dans le premier ensemble de registre selon les nécessité
4 2569288
Cela constitue non seulement une mise à jour du premier ensemble de registresaux adresses de départ pour la boucle suivante mais, cela avance aussi les adresses dans le
second ensemble de registres pour la secondeétape de la boucle.
En'suite, pendant que le système progresse par un calcul, le second registre est changé pour Chaque étage successif. Après l'accomplissement d'un passage par une boucle de calcul, le premier ensemble de registresfournit de nouveau les adresses de départ qui sont également de nouveau mises à jour et le
second ensemble de registres fonctionne comme précédemment. Ce-
ci se produit jusqu'à ce que le traitement entier soit réalisé.
La mise à jour est réalisée par une logique combinatoire qui reçoit la sortie de l'un des premier, second ou troisième ensembles de registres et la combine dans une
unité logique arithmétique conformément à une fonction prédé-
terminée avec une valeur prédéterminée. Le résultat est en-
suite mémorisé de nouveau dans le registre respectif. Une valeur sélectionnée peut être fournie pour changer les sorties et produire le résultat mentionné ci-dessus. L'adressage de la mémoire de données, le calcul des nouvelles adresses et le chargement des nouvelles adresses dans les registres d'adresses se produisent pendant un cycle d'opération d'instruction de
l'appareil de traitement de données.
C'est donc un objet principal de l'invention de fournir un nouveau dispositif de calcul d'adresse destiné
à l'utilisation dans un appareil de traitement de données.
C'est encore un autre objet de la présente in-
vention de fournir un dispositif de calcul d'adresse dans lequel les données peuvent être appelées et les adresses de départ peuvent être mises à jour simultanément avec les
opérations de calcul sur l'opérande de données précédent.
D'autres caractéristiques et avantages de l'in-
vention ressortiront de la description qui suit et des dessins
ci-annexés sur lesquels; la Fig. 1 représente des exemples d'ensembles points de données et de coefficients qui doivent être employés
dans un calcul de traitement à organisation cellulaire.
-La Fig. 2 représente un exemple général d'une
partie de la structure d'un processeur à organisation cellu-
laire avec lequel on peut avantageusement utiliser le dispo- sitif de calcul d'adresse conforme à la présente invention et, - la Fig. 3 est un schéma synoptique d'un mode de réalisation préféré du dispositif de calcul d'adresse selon
la présente invention.
Sur les figures 1 et 2, les points de données D1-D12 représentent une forme d'onde de signal échantillonné
qui doit être traitée par la fonction représentée par les coef-
ficients C1-C6. Ces ensembles de points de données et de coef-
ficients représentent des rangées devant être traitéeset corres-
pondent à des valeurs mémorisées dans une mémoire de données 10 du système généralisé représenté à la figure 2, chaque valeur ayant une adresse de mémoire respective. Dans une application typique, on réalise un produit de composition sur la rangée de
données avec la rangée de coefficients. Par conséquent, on appel-
le D1 et Cl de la mémoire en se basant sur des adresses fournies par l'unité d'adressage 14 et ces valeurs sont multipliées dans l'unité arithmétique 12 qui sauvegarde le résultat. D2 et C2 sont ensuite appelés et multipliés et ainsi de suite jusqu'à ce que D6 et C6 soient appelés et multipliés, opération pendant laquelle on fait le total des produits respectifs. Le total final est sauvegardé dans la mémoire de manière normale bien que cela
ne soit pas nécessaire.
Ensuite, on répète la même séquence en commencant
avec le second point de données dans la rangée de données, c'est-
à-dire que D2 est multiplié par Cl, D3 par C2 et ainsi de suite jusqu'à que D7 soit multiplié par C6. Le processus sera répété
de nouveau autant de fois que cela sera nécessaire pour multi-
plier un nombre prédéterminé de points de données par tous les coefficients. Le processus de multiplication des points de
6. 2569288
données par des coefficients respectifs et de totalisation des produits comprend une série d'étapes qui doivent être réalisées de manière répétitive, c'est-à-dire une boucle, Pendant chaque passage dans la boucle, l'unité d'adressage doit fournir à la mémoire de données les adresses de données courantes et des valeurs de coefficient à multiplier. De ce fait, ces adresses doivent être changées pour chaque opération successive d'appel en mémoire,de multiplication et d'addition. Au début de chaque passage successif par la boucle, l'unité d'adresse doit pointer les adresses du coefficient de départ et des nouvelles données de départ. Cet exemple de traitement à organisation cellulaire est fourni en vue d'expliquer la présente invention et il est
connu que beaucoup d'autres algorithmesde traitement à organi-
sation cellulaire nécessitent des étapes répétitives dont une ou plusieurs séries d'adresses correspondant à des rangées de données en commencant par une ou plusieurs nouvelles adresses pour chaque série successive d'opérations; par conséquent la présente invention s'applique à de nombreux algorithmesde ce type. Dans le dispositif généralisé représenté sur la figure 2, le calcul d'adresse s'effectue dans l'unité d'adresse 14 dans la période de temps que nécessite l'unité arithmétique 12 pour réaliser une opération arithmétique, pendant un cycle
d'instruction d'opérations de l'appareil de traitement de don-
nées. Dans l'exemple précité, pendant que l'on multiplie un point de données et un coefficient, l'adresse pour le prochain point de données est envoyée à la mémoire et l'adresse pour le
point de données suivant est calculée par l'unité d'adressage.
Pendant que l'on fait l'addition du produit précédent, l'adresse du prochain coefficient est envoyée à la mémoire et on calcule l'adresse pour le coefficient suivant. Ceci suppose que la mémoire de
donnéesenvoie de manière automatique son contenu à l'unité arith-
métique après réception d'une adresse et que l'unité arithmétique contient des registres pour mémoriser de manière temporaire son opérande comme cela est connu de manière générale dans la
7' 2569288
technique. Il y a lieu de noter que le dispositif de calcul d'adresse selon la présente invention peut être utilisé avec une grande variété d'architecturesde processeurs; on préfère cependant que l'on fournisse des mémoires séparées de données et d'instructions de programme et que le circuit d'instructions
de programme, l'unité arithmétique et l'unité d'adressage fonc-
tionnent tous de manière simultannée et indépendante pour béné-
ficier au maximum des avantages de la présente invention.
Si on se réfère maintenant à la figure 3 qui re-
présente un mode de réalisation préféré du dispositif de calcul d'adresse selon la présente invention, l'adresse de départ de chaque ensemble de données auquel on doit accéder est mémorisée dans une première mémoire d'adresse 16 qui est de préférence en
réalité un ensemble de registres destinés à mémoriser les adres-
ses de départ des ensembles respectifs de rangées de données.
Les adresses courantes de données sont mémorisées dans une se-
conde mémoire d'adresse 18 qui est également de préférence un
ensemble de registresdestinésà mémoriser les adresses courantes.
Les adresses dans les mémoires 16 et 18 sont reçues par des ports d'entrée 20 et 22 respectivement et proviennent d'une source
de nouvelles données ou de données mises à jour.
Lorsque des données sont mémorisées dans une mé-
moire sous forme de "pages", le dispositif comprend également
de préférence une mémoire d'adresse de pages 24 destinée à gar-
der les bits de poids le plus élevé de l'adresse qui doit être envoyée à la mémoire de données, les mémoires 16 et 18 gardant
les bits de poids le plus faible de leurs adresses respectives.
De même que les mémoires 16 et 18F la mémoire 24 comprend effec-
tivement de préférence une pluralité de registres destinés à
mémoriser des parties d'adresse représentant des pages dans les-
quelles des rangées respectives de données sont mémorisées-
Comme les mémoires 16 et 18, la mémoire 24 reçoit ses bits d'a-
dresse d'une source d'adresses nouvelles ou mises à jour sur un port d'entrée 26. Le registre particulier dans les mémoires 16,
18 et 24 à partir duquel ou vers lequel une adresse est transfé-
rée pendant toutes opérations particulières est fourni par une 8.
entrée 28 d'index de registre qui est une partie du code d'ins-
truction du processeur fourni par un circuit d'instruction de
programme de toute conception appropriée (non représenté).
L'adresse fournie à la mémoire de données à la sortie 30 est un chainage de la sortie 32 de la mémoire 24
et de la sortie 34 provenant d'un multiplexeur d'adresse 36.
Initialement, le multiplexeur 36 sélectionne à sa sortie la sortie 38 provenant de la mémoire 16. Ensuite le multiplexeur d'adresse 36 sélectionne la sortie 40 provenant de la mémoire 18, c'est-à-dire jusqu'à ce qu'une série d'étapes ou boucle
soit complète.
Au moment même o la sortie provenant de la mé-
moire 16 est envoyée au multiplexeur 36, elle peut être modi-
fiée, c'est-à-dire mise à jour, et placée de nouveau dans le registre correspondant de la mémoire 16 par l'intermédiaire du port d'entrée 20. De manière similaire, lorsque la sortie de la mémoire 18 est envoyée au multiplexeur d'adresse 36, elle peut également être mise à jour, le résultat étant de nouveau placée dans le registre correspondant de la mémoire 18 par l'intermédiaire du port d'entrée 22. Il est particulièrement important que lorsque la sortie provenant de la mémoire 16 est envoyée à la mémoire de données et mise à jour, l'adresse mise à jour soit chargée non seulement dans la mémoire 16 mais également dans la mémoire 18, ce qui fait avancer la mémoire 18. De manière typique, les adresses sont simplement incrémentée d'une unité; mais elles pourraient être incrémentées d'une manière plus grande ou diminuées d'une certaine valeur, ou encore elles pourraient ne pas être modifiées du tout. Dans tous les cas, le dispositif destiné à modifier ces valeurs
est décrit plus bas.
La sortie 38 de la mémoire 16 est envoyée à un premier multiplexeur intermédiaire 44 qui reçoit également
en tant que entrées un ensemble de 0 (zéro) provenant de l'en-
trée 46, un ensemble de 1 (un) provenant de l'entrée 48, la sortie 50 (généralement une valeur décalée) provenant d'un
registre en X 52 et la sortie 54 provenant d'un registre en Y 56.
Un autre multiplexeur intermédiaire 58 reçoit en tant qu'entrées la sortie 40 de la mémoire 18, la sortie 32 de la mémoire 24 un ensemble de 0 (zéro) provenant de l'entrée 60 et la sortie 5. 50 provenant du registre en X 52. Une unité logique arithmétique
62 qui est capable de réaliser de manière sélective des opéra-
tions mathématiques ou logiques est munie de deux entrées,
c'est-à-dire l'entrée 64 provenant du premier multiplexeur in-
termédiaire 44 et la sortie 66 provenant du second multiplexeur intermédiaire 58. Ces deux entrées parvenant à l'unité logique arithmétique 62 sont combinées par cette dernière pour fournir
une sortie résultante 68.
La sortie 68 provenant de l'unité logique arith-
métique 62 est envoyée en tant qu'entrée à une autre multiple-
xeur 70 dont la sortie fournit des entrées aux mémoires 16 18 et 24, au registre en X 52 et au registre en Y 56. De cette manière la sortie provenant du multiplexeur 70 peut être utilisée pour mettre à jour les adresses dans les mémoires 16,18 et 24 et pour modifier les valeurs dans les registres en X et en Y, Par exemple, la sortie provenant de la mémoire 16 peut être
sélectioné par le multiplexeur 44 pour être envoyée comme va-
leur d'entrée à l'unité logique arithmétique 62 avec la valeur provenant d'une des entrées sélectionnées par le multiplexeur 58,si bien que les deux valeurs peuvent subir une opération logique ou méthématique dans l'unité logique arithmétique en vue de produire une nouveile valeur à la sortie 68. Une adresse de départ dans la mémoire 16 peut être incrémentée de 1, en
placant un 1 dans le registre X 52 et en sélectionnant ce der-
nier en tant qu'entrée provenant du multiplexeur 58 pour l'ad-
ditonner à la valeur se trouvant dans un registre sélectionné
de la mémoire 16. La sortie provenant de l'unité logique arith-
métique 62 représentela valeur se trouvant dans le registre sélectionné de la mémoire 16 augmentée de 1, La valeur de la mémoire 16 augmentée de 1 est sélectionnée par le multiplexeur 70 et envoyée au'port d'entrée 20 de la mémoire 16 ce qui la 10. mémorise de nouveau dans le registre sélectionné de la mémoire
16 en incrémentant ce registre de la mémoire 16 de la valeur 1.
Cette valeur de la mémoire 16 augmentée de 1 est également en-
voyée au port d'entrée 22 de la mémoire 18 pour y remplacer l'adresse courante correspondante, ce qui fait avancer l'adresse courante correspondante à l'ensemble de données pour lequel l'adresse de départ avait été mise à jour. Dans l'exemple de produit de composition qui a été donné ci-dessus, cela revient à décaler l'adresse de départ de la rangée de données de un point
de données et à avancer l'adresse courante de la rangée de don-
nées à la seconde étape d'une nouvelle boucle.
De manière similaire, à chaque fois que l'on
envoie une adresse à la mémoire de données à partir d'un regis-
tre sélectionné de la mémoire 18, cette adresse peut également être envoyée à l'unité logique arithmétique 62 par l'intermédiaire du multiplexeur intermédiaire 58. Simultanément, un nombre peut
être sélectionné par le multiplexeur intermédiaire 44, par exem-
ple en provenance du registre en X,pour l'additionner à l'adres-
se et la faire avancer de cette valeur, le résultat étant mémorisé de nouveau dans le registre sélectionné de la mémoire 18. Dans l'exemple de produit de composition, ceci revient à faire avancer
jusqu'à un nouveau point de données ou un nouveau coefficient.
Le registre en X 52 sert ainsi à fournir une valeur avec laquelle les valeurs se trouvant dans les mémoires 16,18 ou 24 peuvent être modifiées. Le registre en Y 56 peut être utilisé, de manière alternative pour fournir une valeur pour modifier les valeurs dans la mémoire 18 ou dans la mémoire 24. Ces registres en X et Y sont chargés à partir d'un bus de registre 72 par l'intermédiaire du multiplexeur 70, les valeurs à charger dans les registres en X et Y venant d'autres unités de calcul, telles que le circuit d'instruction mentionné ci-dessus,
ce trouvant dans l'appareil complet de traitement de données.
Par exemple le registre en X peut être chargé avec une valeur avec laquelle on doit incrémenter un registre se trouvant dans la mémoire 16 pour réinitialiser l'adresse de départ d'une rangée 11. au début d'une boucle, alors que le registre en Y sera chargé avec une autre valeur avec laquelle un registre se trouvant
dans la mémoire 18 serait incrémenté lors du calcul de l'adres-
se courante d'une autre rangée pendant un passage dans une boucle.
La sortie 68 provenant de l'unité logique arith-
métique peut également être placée sur le bus de registre 72 par l'intermédiaire d'un amplificateur tampon 74 en vue de l'utilisation par d'autres unités de calcul se trouvant dans
l'appareil. Dans certaines circonstances, il peut être dési-
rable de déterminer lorsqu'une adresse calculée est égale à O (zéro), ce qui peut être détecté directement à partir de la
sortie 68 de l'unité logique arithmétique. Il faut recon-
naître que les éléments fonctionnels mentionnés ci-dessus de l'unité de calcul1d'adresse comprennent un logique de commande associée (non représentée). La conception et la structure du circuit spécifique destinée à mettre en oeuvre l'architecture du dispositif décrit ci-dessus sont bien connues dans la technique
et il n'est pas nécessaire de prévoir une conception particu-
lière pour la présente invention à l'exception qu'il faut uti-
liser une logique combinatoire de telle manière que la sortie d'une adresse et le nouveau calcul de cette adresse pour la présentation aux entrées des mémoires 16,18 et 24 se produisent toutes en une seule étape et que la mémorisation du résultat
dans la mémoire 16,18 et 24 se produiseen une seconde étape.
Il en résulte que la présentation d'adresse à la mémoire de
données et la mise à jour de ces adresses peuvent être accom-
plies en un seul cycle d'instruction d'opération de l'appareil
de traitement de données, ctest-à-dire pendant le temps néces-
saire pour que l'unité arithmétique exécute complètement une seule instruction d'opération. Ordinairement, ceci comporterait
le processus suivant: prendre un opérande à partir d'un em-
placement de mémoire tel qu'un registre temporaire de mémoire compris dans l'unité arithmétique faire une opération sur
cette opérande et sauvegarder le résultat.
La description ci-dessus d'un exemple de réalisa-
tion n'a été fournie qu'à titre illustratif et nullement li-
mitatif et il est évident que l'on peut y apporter des modi-
fications ou variantes sans pour autant sortir du cadre de la présente invention. 13.

Claims (7)

REVENDICATIONS
1 ) Dispositif de calcul d'adresse destiné à
être utilisé dans un appareil de traitement de données compor-
tant une mémoire de données (10) et des moyens (12) pour exé-
cuter une instruction d'opérations pendant un cycle d'instruc- tions, caractérisé en ce qu'il comprend: a) un premier registre d'adresse (16) destiné à mémoriser une partie pré-déterminée d'une adresse de données
devant être fournie à ladite mémoire d'adresse (10).
b) un second registre d'adresse(18) destiné à mémo-
riser une partie prédéterminée d'une adresse de données devant
être fournie à ladite mémoire de données.
c) un multiplexeur de sortie (36) agissant en réponse auxdits premier et second registres d'adresse (16,18) et à une instruction d'opérations en vue de présenter de manière
sélective à la mémoire de données {10) soit une partie d'adres-
se de données emmagasinée dans le premier registre d'adresse (16), soit une partie d'adresse de données emmagasinée dans le second registre d'adresse (18), et d) un organe logique de mise à jour (44,52,56,58, 62) agissant en réponse audit premier registre d'adresse (16) et à une instruction d'opérations en vue de nmdifier une partie
d'adresse de données mémorisée dans ledit premier registre d'a-
dresse (16) d'une valeur prédéterminée lorsqu'elle est présentée à la mémoire de données (10) et a charger la partie d'adresse de données modifiée à la fois dans le premier (16) et le second (16) registres d'adresse pour sa mémorisation, lesdites opérations de modification et de chargement se produisant pendant un cycle
d'instruction dudit appareil de traitement de données.
2 ) Dispositif de calcul d'adresse selon la re-
vendication 1, caractérisé en ce que les parties d'adresses de données emmagasinées dans lesdits premier et second registres d'adresse (le,18) comprennent un. nobre prédéterminé des bits
de poids le plus faible d'adressesbinairesrespective% ledit dis-
positif de comptage d'adresse comprenant en outre un troisième 14.
69288
registre d'adresse (24) destiné à mémoriser les bits restant desdites adresses binaires et un organe agissant en réponse audit troisième registre (24) et audit multiplexeur de sortie (36) en vue de présenter une adresse binaire complète à la mémoire de données (10).
3 ) Dispositif de calcul d'adresse selon la re-
vendication 1, caractérisé en ce que ledit organe logique de mise à jour comprend des moyens destinés à modifier une partie d'adresses de données dont ledit second registre d'adresse (18)
d'une valeur prédéterminée.
4 ) Dispositif de calcul d'adresse selon la re-
vendication 1, caractérisé en ce que ledit organe logique de
mise à jour comprend une unité logique arithmétique (62) des-
tinée à réaliser de manière sélective des opérations arithmé-
tiques ou logiquessur l'une ou les deux de deux opérandes d'en-
trée et à produire un résultat, un premier multiplexeur inter-
médiaire (44) destiné à fournir en tant que l'un des opérandes d'entrées de ladite unité logique arithmétique (62) une partie d'adresse de données provenant dudit premier registre d'adresse
(16), des moyens pour fournir en tant que second opérande d'en-
trées pour ladite unité logique arithmétique (62) une valeur prédéterminée, et des moyens pour mémoriser ledit résultat dans
l'un ou les deux registres d'adresse (16,18).
) Dispositif de calcul d'adresse selon la re- vendication 4, caractérisé en ce que lesdits moyens pour fournir une valeur prédéterminée comprennent un registre de décalage
(52) destiné à mémoriser ladite valeur prédéterminée et un se-
cond multiplexeur intermédiaire (58) destiné à sélectionner
en tant qu'un opérande d'entrée de ladite unité logique arith-
métique (62) la valeur mémorisée dans ledit registre de déca-
lage (52).
6 ) Dispositif de comptage d'adresse selon la re-
vendication 5, caractérisé en ce que ledit second multiplexeur
intermédiaire (58) agit en réponse audit second registre d'a-
dresse (18) en vue de sélectionner en tant qu'entrée de l'unité
15. 25692O8
logique arithmétique (62) une partie d'adresse de données mémorisée dans ledit second registre d'adresse (18) et en ce que ledit premier multiplexeur intermédiaire (44) agit
en réponse audit registre de décalage (52) en vue de sé-
lectionner en tant qu'entrée de ladite unité logique arith-
métique (62) la valeur mémorisée dans ledit registre de dé-
calage (52).
7 ) Dispositif de calcul d'adresse selon la revendication 1, caractérisé en ce que lesdits premier et second registred'adresse (16,18) comprennent chacun une
pluralité de registres de mémoire et des moyens pour mémo-
riser de manière sélective dans lesdits registres de mémoire ou pour lire à partir de ces dits registres de mémoire une
partie d'adresse.
8 ) Dispositif de calcul d'adresse selon la revendication 7, caractérisé en ce que les parties d'adresse
de données mémorisées dans lesdits premier et second regis-
tres d'adresse (16,18) comprennent un nombre prédéterminé
des bits de poids le plus faible des adresses binaires res-
pectives, ledit dispositif de calcul d'adresse comprenant en outre une troisième pluralité de registres de mémoire (24)(
destiné à mémoriser les bits restant desdites adresses bi-
naires, des moyens pour mémoriser de manière sélective pour
lire dans ou à partir desdits troisièmes registres de mé-
moire (24) et des moyens agissant en réponse auxdits troi-
sième registre de mémoire (24) et multiplexeur de sortie (36) en vue de présenter une adresse binaire complète à la
mémoire de données (10).
FR8503613A 1984-08-15 1985-03-12 Dispositif de calcul d'adresse pour un appareil de traitement numerique Expired - Lifetime FR2569288B1 (fr)

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
US06/641,098 US4704680A (en) 1984-08-15 1984-08-15 Address computation system for updating starting addresses of data arrays in an array processor within an instruction cycle

Publications (2)

Publication Number Publication Date
FR2569288A1 true FR2569288A1 (fr) 1986-02-21
FR2569288B1 FR2569288B1 (fr) 1990-12-14

Family

ID=24570924

Family Applications (1)

Application Number Title Priority Date Filing Date
FR8503613A Expired - Lifetime FR2569288B1 (fr) 1984-08-15 1985-03-12 Dispositif de calcul d'adresse pour un appareil de traitement numerique

Country Status (7)

Country Link
US (1) US4704680A (fr)
JP (1) JPS6160133A (fr)
CA (1) CA1223664A (fr)
DE (1) DE3507584A1 (fr)
FR (1) FR2569288B1 (fr)
GB (1) GB2163280B (fr)
NL (1) NL8500683A (fr)

Families Citing this family (15)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
DE3619036A1 (de) * 1986-06-06 1987-12-10 Wajda Eligiusz Dipl Ing Verfahren zur steuerung von datenverarbeitenden einrichtungen
US5050070A (en) * 1988-02-29 1991-09-17 Convex Computer Corporation Multi-processor computer system having self-allocating processors
US5159686A (en) * 1988-02-29 1992-10-27 Convex Computer Corporation Multi-processor computer system having process-independent communication register addressing
JP2617974B2 (ja) * 1988-03-08 1997-06-11 富士通株式会社 データ処理装置
US5163149A (en) * 1988-11-02 1992-11-10 International Business Machines Corporation Combining switch for reducing accesses to memory and for synchronizing parallel processes
US5265225A (en) * 1990-02-21 1993-11-23 Harris Corporation Digital signal processing address sequencer
DE69125874T2 (de) * 1990-02-21 1997-11-20 Matsushita Electric Ind Co Ltd Generator für mehrdimensionale Adressen und Anordnung zum Steuern desselben
US5832533A (en) * 1995-01-04 1998-11-03 International Business Machines Corporation Method and system for addressing registers in a data processing unit in an indexed addressing mode
US6047364A (en) * 1997-08-27 2000-04-04 Lucent Technologies Inc. True modulo addressing generator
US5983333A (en) * 1997-08-27 1999-11-09 Lucent Technologies Inc. High speed module address generator
US6049858A (en) * 1997-08-27 2000-04-11 Lucent Technologies Inc. Modulo address generator with precomputed comparison and correction terms
US6529983B1 (en) 1999-11-03 2003-03-04 Cisco Technology, Inc. Group and virtual locking mechanism for inter processor synchronization
US6892237B1 (en) 2000-03-28 2005-05-10 Cisco Technology, Inc. Method and apparatus for high-speed parsing of network messages
US6505269B1 (en) 2000-05-16 2003-01-07 Cisco Technology, Inc. Dynamic addressing mapping to eliminate memory resource contention in a symmetric multiprocessor system
WO2001090888A1 (fr) * 2000-05-23 2001-11-29 Theis Jean Paul Systeme de traitement de donnees possedant une unite de generation d'adresse avec support d'indexation de memoire multidimensionnelle cable

Citations (3)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US4172287A (en) * 1977-01-12 1979-10-23 Hitachi, Ltd. General purpose data processing apparatus for processing vector instructions
EP0047842A2 (fr) * 1980-09-15 1982-03-24 International Business Machines Corporation Générateur d'adresses pour une matrice décalée
EP0124799A2 (fr) * 1983-04-13 1984-11-14 Nec Corporation Dispositif d'accès à une mémoire dans un système de traitement de données

Family Cites Families (5)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US4130868A (en) * 1977-04-12 1978-12-19 International Business Machines Corporation Independently controllable multiple address registers for a data processor
JPS54127653A (en) * 1978-03-28 1979-10-03 Toshiba Corp Data processor
US4365292A (en) * 1979-11-26 1982-12-21 Burroughs Corporation Array processor architecture connection network
US4439827A (en) * 1981-12-28 1984-03-27 Raytheon Company Dual fetch microsequencer
JPS5965377A (ja) * 1982-10-05 1984-04-13 Nippon Telegr & Teleph Corp <Ntt> アドレス制御方法およびその装置

Patent Citations (3)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US4172287A (en) * 1977-01-12 1979-10-23 Hitachi, Ltd. General purpose data processing apparatus for processing vector instructions
EP0047842A2 (fr) * 1980-09-15 1982-03-24 International Business Machines Corporation Générateur d'adresses pour une matrice décalée
EP0124799A2 (fr) * 1983-04-13 1984-11-14 Nec Corporation Dispositif d'accès à une mémoire dans un système de traitement de données

Non-Patent Citations (2)

* Cited by examiner, † Cited by third party
Title
IBM TECHNICAL DISCLOSURE BULLETIN, vol. 25, no. 5, octobre 1982, pages 2272-2274, New York, US; E.G. DRIMAK: "Vector addressing hardware assist" *
PATENT ABSTRACTS OF JAPAN, vol. 7, no. 266 (P-239) [1411], 26 novembre 1983; JP-A-58 146 968 (TOKYO SHIBAURA DENKI K.K.) 01-09-1983 *

Also Published As

Publication number Publication date
CA1223664A (fr) 1987-06-30
GB2163280B (en) 1988-06-08
GB2163280A (en) 1986-02-19
NL8500683A (nl) 1986-03-03
GB8504822D0 (en) 1985-03-27
US4704680A (en) 1987-11-03
FR2569288B1 (fr) 1990-12-14
JPH0444970B2 (fr) 1992-07-23
DE3507584A1 (de) 1986-02-27
JPS6160133A (ja) 1986-03-27
DE3507584C2 (fr) 1988-10-20

Similar Documents

Publication Publication Date Title
FR2569288A1 (fr) Dispositif de calcul d&#39;adresse pour un appareil de traitement numerique
EP0030504B1 (fr) Dispositif de synchronisation et d&#39;affectation de processus entre plusieurs processeurs dans un système de traitement de l&#39;information
FR2588980A1 (fr) Processeur de traitement de signal numerique comportant plusieurs multiplicateurs
EP0020202B1 (fr) Système multiprocesseur de traitement de signal
CH616252A5 (fr)
EP3671488A1 (fr) Système de multiplication de matrices par blocs
EP0558125B1 (fr) Processeur neuronal à cellules synaptiques reparties
FR2764406A1 (fr) Sous-systeme d&#39;analyse logique dans un emulateur a tranches de temps
FR2513410A1 (fr) Microprocesseur et procede pour imbriquer les acces en memoire de ce microprocesseur
NL8304186A (nl) Geintegreerde processor voor het verwerken van woordsgewijze ontvangbare informatie.
EP3503103A1 (fr) Système comportant une mémoire adaptée à mettre en oeuvre des opérations de calcul
FR2588981A1 (fr) Processeur de traitement de signal numerique
EP0760119B1 (fr) Dispositif de mise en uvre numerique d&#39;une operation de division
FR2772950A1 (fr) Dispositif electronique de calcul d&#39;une transformee de fourier a architecture dite &#34;pipelinee&#34; et procede de commande correspondant
EP0476592A2 (fr) Générateur d&#39;adresses pour la mémoire de données d&#39;un processeur
FR2801693A1 (fr) Procedes et appareils pour detecter la presence eventuelle d&#39;exceptions
EP0683455B1 (fr) Circuit intégré comprenant des moyens pour arrêter l&#39;exécution d&#39;un programme d&#39;instructions quand une combinaison de points d&#39;arrêt est vérifiée
EP0520579A2 (fr) Dispositif de traitement de l&#39;information plus particulièrement adapté à un langage chaîné, du type FORTH notamment
EP0190514B1 (fr) Dispositif de test en ligne de circuit de calcul de la transformée de Fourier discrète, et circuit comportant un tel dispositif
FR2475763A1 (fr) Processeur numerique a structure pipeline
EP0520572B1 (fr) Dispositif de traitement d&#39;informations
EP1168242B1 (fr) Dispositif de traitement de données
EP0337544B1 (fr) Procédé et unité de gestion de mots d&#39;adresse
EP0112427A1 (fr) Dispositif de commande logique programmable
FR2666670A1 (fr) Coprocesseur de calcul parallele optimise pour les traitements a base de matrices creuses.

Legal Events

Date Code Title Description
TP Transmission of property