FR2544524A1 - Processeur de signaux numeriques et multicalculateur - Google Patents

Processeur de signaux numeriques et multicalculateur Download PDF

Info

Publication number
FR2544524A1
FR2544524A1 FR8404690A FR8404690A FR2544524A1 FR 2544524 A1 FR2544524 A1 FR 2544524A1 FR 8404690 A FR8404690 A FR 8404690A FR 8404690 A FR8404690 A FR 8404690A FR 2544524 A1 FR2544524 A1 FR 2544524A1
Authority
FR
France
Prior art keywords
address
sequence
processor
words
register
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.)
Withdrawn
Application number
FR8404690A
Other languages
English (en)
Inventor
Andrew John Mcwilliam
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.)
STC PLC
Original Assignee
Standard Telephone and Cables PLC
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 Standard Telephone and Cables PLC filed Critical Standard Telephone and Cables PLC
Publication of FR2544524A1 publication Critical patent/FR2544524A1/fr
Withdrawn 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/355Indexed addressing
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F13/00Interconnection of, or transfer of information or other signals between, memories, input/output devices or central processing units
    • G06F13/14Handling requests for interconnection or transfer
    • G06F13/36Handling requests for interconnection or transfer for access to common bus or bus system
    • G06F13/362Handling requests for interconnection or transfer for access to common bus or bus system with centralised access control
    • G06F13/364Handling requests for interconnection or transfer for access to common bus or bus system with centralised access control using independent requests or grants, e.g. using separated request and grant lines
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F17/00Digital computing or data processing equipment or methods, specially adapted for specific functions
    • G06F17/10Complex mathematical operations
    • 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
    • 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/38Concurrent instruction execution, e.g. pipeline or look ahead
    • G06F9/3877Concurrent instruction execution, e.g. pipeline or look ahead using a slave processor, e.g. coprocessor
    • G06F9/3879Concurrent instruction execution, e.g. pipeline or look ahead using a slave processor, e.g. coprocessor for non-native instruction execution, e.g. executing a command; for Java instruction set

Landscapes

  • Engineering & Computer Science (AREA)
  • Theoretical Computer Science (AREA)
  • Software Systems (AREA)
  • Physics & Mathematics (AREA)
  • General Physics & Mathematics (AREA)
  • General Engineering & Computer Science (AREA)
  • Mathematical Physics (AREA)
  • Data Mining & Analysis (AREA)
  • Mathematical Analysis (AREA)
  • Mathematical Optimization (AREA)
  • Computational Mathematics (AREA)
  • Pure & Applied Mathematics (AREA)
  • Databases & Information Systems (AREA)
  • Algebra (AREA)
  • Complex Calculations (AREA)
  • Multi Processors (AREA)
  • Executing Machine-Instructions (AREA)

Abstract

L'INVENTION CONCERNE LES PROCESSEURS DE SIGNAUX NUMERIQUES. SELON L'INVENTION, UNE SEQUENCE DE MOTS EST LUE DANS UNE MEMOIRE A ACCES DIRECT. A CET EFFET, L'ADRESSE D'UN PREMIER MOT EST PLACEE DANS UN REGISTRE D'ADRESSE DE BASE 34 ET UN NOMBRE A AJOUTER AU PREMIER MOT EST PLACE DANS UN REGISTRE DE POINTEUR 36 AFIN QU'UNE ADRESSE DE MEMOIRE SOIT CONSTITUEE. LES CONTENUS DES DEUX REGISTRES SONT AJOUTES PAR UN ADDITIONNEUR 40 ET LE RESULTAT EST UTILISE COMME PREMIERE ADRESSE. LE CONTENU DU REGISTRE DE POINTEUR PROGRESSE D'UNE UNITE A CHAQUE OPERATION. APPLICATION A L'ACCELERATION DU TRAITEMENT DANS LES MICROPROCESSEURS.

Description

La présente invention concerne les processeurs de signaux électriques
numériques et notamment des microprocesseurs. Dans de nombreux processeurs classiques, il est possible de transférer un certain nombre de mots de données dans un espace contigu d'adressage ou à l'unité arithmétique et logique du processeur en vue de leur traitement Une telle séquence commence à une première extrémité de la séquence des mots de données et se poursuit avec création automatique d'adresses, par exemple par indexage, jusqu'à ce que tous les mots de données aient été transférés L'invention concerne une technique perfectionnée d'adressage de ce type général. Plus précisément, l'invention concerne un processeur de signaux numériques électriques, comprenant au moins une mémoire à accès direct dans laquelle des mots à traiter sont conservés lorsque le processeur est utilisé, un registre d'adresse dans lequel peut être conservée l'adresse, dans cette mémoire, d'un mot à traiter, un registre de commande dans lequel un nombre peut être conservé, ce nombre représentant la longueur d'une séquence de mots dans la mémoire à accès direct
ou dans l'une des mémoires à accès direct, et un disposi-
tif de sélection d'adresse commandé par le' contenu du registre d'adresse et par le registre de commande de manière qu'il provoque l'extraction d'une séquence de mots d'une mémoire à accès direct, la séquence extraite commençant avec le mot se trouvant à l'adresse de la mémoire déterminée par le contenu du registre d'adresse, le mot suivant et les mots ultérieurs se trouvant à des adresses de la mémoire à accès direct qui sont tirées chacune de l'adresse du mot extrait précédemment par progression ou régression de l'adresse d'un nombre entier fixe, par exemple égal à 1, et la séquence se poursuit jusqu'à ce que le nombre d'adresses dont des mots ont été lus soit celui qui est déterminé par le
2544524-
contenu du registre de commande; lorsque, au cours de la progression ou de la régression, l'adresse du dernier mot de là séquence est atteinte, la progression ou régression suivante forme l'adresse du mot qui se trouve à l'extrémité de la séquence si bien que les mots peuvent être choisis cycliquement et successivement; en outre, les mots ainsi lus successivement dans la mémoire à
accès direct sont traités successivement par le proces-
seur, et une telle séquence peut être répétée un nombre de fois aussi grand que le nécessite l'exécution d'un programme. Comme indiqué dans la suite, cette technique
est surtout intéressante dans les techniques de trai-
tement de signaux numériques, par exemple lorsque des coefficients successifs doivent être formés pour la commande des filtres numériques Dans certains cas, surtout lorsque le traitement à réaliser met en oeuvre un grand nombre d'opérations de traitement, l'utilisation d'un processeur convient En conséquence, l'invention
concerne aussi la réalisation d'un système multicalcula-
teur perfectionné.
L'invention concerne aussi un ensemble de traitement numérique qui comporte plusieurs processeurs de signaux numériques électriques ayant tous accès
à une ligne commune formant un bus de système, un proces-
seur ayant besoin d'un transfert de données avec un
autre des processeurs transmettant une demande de trans-
fert au bus du système, et un circuit logique d'arbitrage
connecté au bus du système reçoit les demandes de trans-
fert de tous les processeurs et, lorsque le bus est disponible pour la réalisation d'un tel transfert, le circuit logique attribue le bus à ce transfert; lorsqu'une telle attribution du bus est réalisée, un signal est transmis à cet effet au processeur ayant transmis la demande; ce dernier, à la suite de ce signal provenant du circuit logique d'arbitrage, transmet
l'adresse de l'autre processeur impliqué dans le trans-
fert voulu de données; un dispositif de décodage d'adresse associé au bus du système détecte l'adresse du processeur demandé et active un processeur d'adresse incorporé qui s'ajoute à l'unité principale de traitement du processeur, et le processeur d'adresse des deux processeurs commande alors le transfert des données à échanger de l'un à
l'autre des processeurs.
D'autres caractéristiques et avantages de
l'invention ressortiront mieux de la description qui
va suivre, faite en référence aux dessins annexés sur lesquels:
la figure 1 est un diagramme synoptique simpli-
fié représentant l'architecture, c'est-à-dire la structure interne, d'un microprocesseur selon l'invention la figure 2 est un diagramme synoptique d'une
unité d'adressage de données utilisée dans le micropro-
cesseur de la figure 1;-et
la figure 3 montre comment plusieurs micropro-
cesseurs peuvent être utilisés dans un système multi-
calculateur.
Le microprocesseur représenté sur la figure 1 est du type présenté sous forme d'un composant à 40 broches, et les broches indiquées sur la figure 1 sont
référencées dans la description qui suit Le microproces-
seur est réalisé avec une architecture et un jeu d'ins-
tructions destinés à accroître la vitesse d'exécution d'une-classe élargie de tâchesde traitement de signaux numériques, bien qu'il puisse être programmé pour d'autres tâches A cet effet,-il met en oeuvre de façon importante un traitement parallèle et coaxial réalisé sur le circuit lui-même L'expression "traitement coaxial" utilisée dans le présent mémoire désigne -l'exécution de deux ou
plusieurs instructions avec recouvrement dans le temps.
Ainsi, lorsque les instructions mettent en oeuvre chacune un certain nombre de cycles qui doivent être exécutés successivement, plusieurs instructions peuvent être
exécutées par réalisation de cycles différents siniulta-
nément pour des instructions différentes On note que
ces principes sont étendus à des arrangements à multical-
culateur, par mise en oeuvre du procédé de transfert
de données utilisé entre les processeurs.
L'architecture globale comporte deux caracté-
ristiques principales qui rendent le microprocesseur parti-
culièrement utile dans les applications de traitement de signaux numériques indiquées précédemment Il s'agit
des caractéristiques suivantes.
(a) Les unités d'adressage de données 10 et 12 qui créent des adresses destinées aux deux mémoires internes de données à accès direct 14 et 16, peuvent avoir une configuration exécutée par logiciel afin que des tampons annulaires de dimension quelconque soient formés dans la mémoire Un tampon annulaire comprend un certain nombre d'emplacements consécutifs
de mémoire qui joue le r 8 le d'une mémoire en boucle fermée.
Aucun maintien d'un pointeur logiciel n'est nécessaire.
L'unité 10 est décrite plus en détail en référence à
la figure 2 et l'unité 12 est analogue à l'unité 10.
(b) La communication entre des processeurs met en oeuvre un processeur ( 18) à accès direct parallèle à la mémoire réalisé sur la pastille afin que le temps nécessaire au transfert des données soit réduit Ce processeur qui s'ajoute aux éléments principaux de traitement, comprend un processeur spécialisé à accès direct à la mémoire, et un circuit tampon 20 d'accès direct à la mémoire -Les tâches qui nécessitent un plus grand "débit" de traitement que celui qui peut être obtenu
commodément avec-un processeur peuvent ainsi être exécu-
tées efficacement à l'aide de plusieurs microprocesseurs
comme décrit en référence à la figure 3.
Avant la description des caractéristiques
précédentes, on considère rapidement l'architecture
du système comme l'indique la figure 1 Le microproces-
seur comporte un générateur d'horloge 22 qui transmet les impulsions d'horloge utilisées intérieurement, avec une entrée de synchronisation SYNC et une entrée d'horloge CLK du système dans lequel le processeur est
utilisé Cet ensemble a aussi une entrée de rétablis-
sement active de faible niveau RST et une sortie 0 1 qui est une sortie de fréquence d'instruction permettant la formation d'un signal d'entrée de synchronisation SYNC d'un autre processeur ou l'échantillonnage d'une bascule externe de décodage d'adresse d'un dispositif d'entrée-sortie. Un signal d'entrée YE provenant d'un décodeur externe d'adresse d'un dispositif d'-entrée-sortie donne accès au circuit tampon 20 Lorsque ce signal a un faible niveau, il indique que le transfert par accès direct à la mémoire par l'intermédiaire de la ligne commune du système est nécessaire, c'est-à-dire que le processeur représenté constitue l'élément asservi dans le transfert de données Ce circuit tampon a accès au bus 24 du système S( O 7), à un organe de commande de bus 26, à un organe de commande de programme 28, à l'unité arithmétique et logique 30, à un multiplicateur 32 et au deux mémoires à accès direct 14 et 16 L'unité arithmétique et logique 30 constitue l'unité principale de traitement du processeur, et il s'agit d'un dispositif à 35 bits Le multiplicateur peut multiplier deux nombres à 16 bits en formant un produit à 32 bits; il est utilisé en plus de l'unité 30 étant donné le nombre élevé de multiplications nécessaires lors du traitement des signaux numériques Le reste du diagramme synoptique comprend les circuits générateurs d'adresse 10 et 12
et l'unité centrale de traitement 18, indiqués précédem-
ment. Les broches et les fonctions sont indiquées
dans le tableau qui suit.
Broches et mémoire passive externe A( O 7) Transmet l'octet le moins significatif de
l'adresse de la mémoire passive externe.
D( O 7) Bidirectionnel: il s'agit du bus externe de données de sortie de la mémoire passive Dans
l'autre sens, il est utilisé pour la transmis-
sion de l'octet le plus significatif de l'adresse de la mémoire passive externe à
une bascule externe.
AS Signal de sortie d'échantillonnage vers
bascule externe.
0 E Utilisé pour mise à trois états du signal de sortie de données de la mémoire passive externe lorsque D( O 7) est utilisé pour la
transmission à partir du processeur.
Broches entrée-sortie série SYEN Signal d'entrée à 1 bit d'emploi universel, l'objet des deux instructions de branchement conditionnel. SYSORT Signal de sortie à 1 bit d'emploi universel, qui peut être mis à un niveau élevé ou faible
par exécution d'une instruction.
Broches d'entrée-sortie de données parallèles S( O 7) Bus bidirectionnel du système par lequel sont réalisés tous les transferts de données
entre des processeurs ou des périphériques.
RTS Transmis au circuit d'arbitrage de bus deman-
dant à être le processeur principal du bus du
système (faible niveau actif).
RFS Signal d'entrée reçu du circuit d'arbitrage de bus donnant satisfaction à la demande de processeur principal du bus du système (faible
niveau actif).
IE Signal d'entrée provenant du décodeur d'adresse de dispositif d'entréesortie externe Un signal actif de faible niveau indique qu'un transfert par accès direct à la mémoire, par
le bus du système, est nécessaire, c'est-à-
dire qu'il s'agit du processeur asservi dans
le transfert de données.
WR/RD LOB Broches d CLK SYNC RST Broches d VCC MAS Signal de sortie à trois états vu du processeur principal du bus du sytème indiquant le sens de transfert des données vu par le processeur principal Signal d'entrée d'un dispositif asservi. Signal de sortie à trois états du processeur principal, signal d'entrée du processeur asservi Un signal faible actif indique que l'octet le plus significatif d'un mot à
16 bits se trouve sur le bus.
Signal de sortie à trois états du processeur, signal d'entrée du processeur asservi Un signal actif faible indique que l'octet le moins significatif d'un mot à 16 bits se
trouve sur le bus.
e synchronisation Signal d'entrée pour l'horloge à 10 M Hz créée extérieurement. Signal d'entrée pour l'horloge de fréquence du cycle d'instruction utilisé pour la synchronisation de plusieurs processeurs
pendant la remise à zéro.
Signal de sortie de fréquence de cycle d'ins-
truction pouvant être transmis comme signal SYNC des autres processeurs et aussi pour l'échantillonnage des bascules de décodage
d'adresse des dispositifs externes d'entrée-
sortie. Signal d'entrée de remise à zéro, faible
niveau actif.
alimentation volts. Masse. On considère maintenant les unités d'adressage de données de la figure 2 Comme indiqué précédemment, le circuit paillette du microprocesseur qui comprend deux
2544524-
ensembles générateurs d'adresse, peut lire deux mots de données à 16 bits, un dans chaque mémoire à accès direct, pendant un seul cycle d'instructions Ceci
est effectué malgré le fait que seul 8 bits de l'instruc-
tion sont attribués aux adresses des mémoires à accès direct Les deux adresses à 8 bits nécessaires sont créées par les unités d'adressage, 4 bits d'instruction
étant chacun utilisé pour la commande de ces unités.
Une unité d'adressage de données a une unité d'adresse de base 34 qui contient quatre registres d'adresse de base à 8 bits, un registre de pointeur 36 qui est un compteur-décompteur à 8 bits, et un registre 38 de longueur de vecteur qui peut être chargé et lu
sous la commande du logiciel Sur les quatre bits d'ins-
truction commandant l'unité d'adresse de données, deux sont utilisés pour la sélection de l'un des quatre registres d'adresse de base par l'entrée d'adresse de l'unité 34 et deux sont utilisés pour la sélection de l'un de quatre modes d'adressage Ces modes sont les
suivants.
( 1) Adressage direct dans lequel l'adresse de l'instruction provoque la lecture du contenu du registre choisi. ( 2) Adressage indexé, provoquant la lecture de l'emplacement de mémoire défini par la somme du contenu du registre choisi et du registre de pointeur 36,
la somme étant réalisée modulo 256 -
( 3) Progression dans laquelle une séquence des emplacements de mémoire est lue par exécution répétée d'instructions portant ce mode d'adressage Les adresses sont dérivées par sommations successives du contenu du registre de pointeur 36 et de un Chaque progression donne le module défini par le contenu du registre 38 de longueur de vecteur Ainsi, une séquence de mots du registre de pointeur est produite, chaque mot étant utilisé pour la production d'une adresse de mémoire à accès direct Chaque adresse de mémoire est la somme du contenu du registre d'adresse choisi et du registre de pointeur 36, modulo 256 Cette sommation est réalisée *par un additionneur spécialisé 40 et le résultat est transmis par une bascule 42 à la ligne commune constituant le bus A, à partir de laquelle le résultat est transmis aux arrangements de lecture Cette séquence se poursuit
jusqu'à ce qu'un nombre d'emplacements de mémoire con-
venant au contenu du registre 38 ait été lu.
( 4) Régression, constituant en fait l'inverse de la progression Dans ce cas, le contenu du registre de pointeur 36, à chaque pas, est le résultat de la soustraction de un du contenu du registre 38 de longueur du vecteur, les modules étant déterminés par le registre 38 Les adresses dans la mémoire sont chacune la somme du registre choisi et du registre de pointeur 36, modulo 256. Il est ainsi possible de réaliser, dans chaque
mémoire à accès direct, jusqu'à quatre tampons annulaires.
Un registre d'adresse est réglé afin qu'il pointe vers le mot du tampon annulaire ayant l'adresse physique la plus basse dans sa mémoire à accès direct Le registre 38 est alors mis à un état qui détermine la dimension de l'anneau Il est alors possible, à l'aide des modes de progression ou de régression le cas échéant, de faire tourner l'anneau dans un sens ou dans un autre, quel que
soit l'emplacement du "raccord".
On considère un exemple illustrant la valeur de cette caractéristique Lorsqu'on veut réaliser un filtre transversal à 50 prises, on doit calculer
49
yn = La(i) x S(n-i) a(i) étant les cinquante coefficients fixes conservés dans le tampon annulaire formé dans la mémoire à accès direct 1, S(n-i) représentant les cinquante échantillons les plus récents des signaux qui doivent être conservés dans le registre tampon annulaire formé dans la mémoire à accès direct 2 On veut former un nouveau signal de sortie chaque fois qu'un nouvel échantillon du signai
est reçu.
Le procédé utilisé est tel que, chaque fois qu'une nouvelle valeur y(n) est calculée, les adresses physiques des paires du coefficient et du mot du signal à multiplier sont décalées d'un emplacement Le décalage dans ce cas indique que, à l'endroit o les deux circuits tampons annulaires doivent être lus, à l'exécution d'une seconde séquence d'instructions, dans l'une des séquence, l'un des circuits tampons annulaires est
en fait décalé d'un emplacement par rapport à l'autre.
Ainsi, lorsqu'un nouvel échantillon du signal est écrit, il se superpose simplement à l'échantillon plus ancien du signal qui est alors redondant Aucun autre déplacement
des données des signaux dans la mémoire n'est nécessaire.
Ceci est posible uniquement parce que le "raccord invi-
sible" formé dans le circuit tampon annulaire indique qu'il n'est pas nécessaire de conserver les adresses
physiques dans la mémoire lorsque l'algorithme se déroule.
On note ainsi que la technique d'adressage utilisée permet une simplification considérable lors de l'exécution des opérations de traitement de signaux numériques. On considère maintenant le transfert des
données entre les processeurs, en référence à la figure 3.
Un problème qui se pose souvent dans le cas des microprocesseurs est la faible efficacité relative des transferts de données entre les processeurs si
bien que des systèmes comportant trois ou quatre proces-
seurs ont un débit bien inférieur à trois à quatre fois celui de chaque processeur Un procédé classique est l'interruption d'un autre processeur par le processeur
qui déclenche le transfert des données Un tel proces-
seur a besoin d'un temps important pour conserver l'état de sa machine, réagir à la demande de transfert et reprendre son état afin qu'il puisse continuer ce qu'il
était egn train de faire avant l'interruption En consé-
quence, un temps important est perdu par le processeur asservi et en outre, par le processeur principal lorsqu'il attend la réponse du processeur asservi De façon plus grave, il garde souvent le contrôle de la ligne commune de transfert des données pendant ce temps d'attente, si bien que l'utilisation du bus s'en trouve encore réduite. Le procédé utilisé selon l'invention ne met pas en oeuvre des interruptions En fait, au niveau du processeur asservi, le transfert des données est transparent en ce qui concerne le temps Au niveau du processeur principal, le transfert d'un mot à 16 bits
n'utilise habituellement qu'un seul cycle d'instruc-
tions de 400 ns, des cycles d'attente seulement étant introduits au niveau du processeur principal lorsque
le bus de transfert des données est en cours d'utilisa-
tion lorsque le transfert est demandé Les cycles d'at-
tente n'apparaisse pas au niveau du processeur asservi.
Ceci est possible parce que le transfert est réalisé entre l'unité arithmétique et logique du processeur principal et une mémoire à accès direct du processeur asservi par l'intermédiaire de l'organe de commande à accès direct à la mémoire incorporée au processeur
asservi qui, à cet effet, est commandé extérieurement.
Le coefficient d'utilisation de la mémoire à accès direct est partagé également entre l'unité principale de traitementdu processeur asservi et le processeur à accès direct à la mémoire, si bien que le circuit présente
une transparence vis-à-vis du temps.
Lorsqu'un processeur portant par exemple la référence 50 sur la figure 3, rencontre un ordre d'entrée ou de sortie dans son courant d'instructions, il devient un processeur principal dans un transfert de données et signale son souhait de prendre la maîtrise du bus du système 52 par établissement de sa demande
afin que le signal RTS soit transmis à un faible niveau.
Le circuit externe logique 54 d'arbitrage de bus, essen-
tiellement un circuit de verrouillage ayant des priorités incorporéesle cas échéant, décide en 100 ns si la demande peut être satisfaite Si la réponse est positive, il l'indique au processeur ayant fait la demande par mise de la broche RFS à un faible niveau sur le processeur "appelant" Si la demande ne peut pas être satisfaite, le signal RFS garde un niveau élevé et le processeur demandeur 50 dans ce cas passe à un état d'attente d'un seul cycle ( 400 ns) et maintient la demande de maîtrise du bus Le circuit 54 est relativement simple puisque tous les cycles d'instructions des processeurs sont verrouillés de manière que plusieurs demandes de commande du bus atteignent simultanément le dispositif 54 Ainsi, la décision prise par le circuit 54 pour le cycle d'instruction dépend simplement de la priorité
des tâches et non du moment de la demande.
La maîtrise du bus est donnée seulement à un processeur pour un seul cycle et, s'il faut un plus long temps, le processeur appelant entre de façon répétée
en concurrence d'un cycle au suivant.
Lorsque la maîtrise du bus du système 52 a été donnée à un processeur principal 55, la première chose qu'il effectue est la transmission d'une adresse à 8 bits du processeur asservi nécessaire Cette adresse est transmise par le bus bidirectionnel S( O 7) au bus du système et elle est alors verrouillée dans une bascule d'adresse 56 et est décodée par le décodeur d'adresse de dispositif 58 afin qu'un signal de validation d'interface IE passe à un faible niveau dans le processeur asservi demandé Ceci active le processeur-d'accès direct à la mémoire du processeur Les données peuvent alors être transmises dans les deux sens, c'est-à-dire
du processeur principal au processeur asservi ou inver-
sement, avec un ou deux octets à 8 bits Les signaux de lecture-écriture WR/RD, d'octets élevés HIB et d'octets faibles LOB créés par le processeur principal commandent à la fois le fonctionnement et la synchronisation du circuit tampon d'accès direct à la mémoire au niveau
du processeur asservi.
Enfin, le processeur "principal" libère le bus du système par retour du signal RTS à un niveau élevé, et le circuit 54 d'arbitrage répond alors par transmission d'un signal RFS de niveau élevé en 100 ns. Il faut noter qu'il n'y a aucun signal d'accusé de réception par lequel-le processeur asservi indique que le trnsfert a été réalisé convenablement, puisque cette opération prolongerait le temps de transfert
et aurait très peu d'intérêt dans un système bien réalisé.
On considère maintenant les différentes opéra-
tions qui ont lieu lorsqu'un mot de données est transmis au circuit tampon d'accès direct à la mémoire de la figure 1 Ceci est indiqué à l'unité centrale 18 qui crée alors une adresse de mémoire à accès direct pour le mot de données et commande aussi la synchronisation du transfert de ce mot du circuit tampon d'entrée à la mémoire à accès direct convenable par les lignes
communes représentées.
De même, lorsqu'un mot de données est transmis par le circuit tampon de sortie, ceci est signalé à l'unité centrale 18 qui crée une adresse de mémoire à accès direct et commande le transfert du mot à cette adresse vers le circuit tampon de sortie, afin que le circuit soit prêt pour la demande ultérieure de formation du processeur "asservi" et de transmission
de données.
L'unité centrale 18 comprend huit registres à 8 bits qui commandent son fonctionnement Ces registres peuvent être chargés à tout moment par le programme
exécuté dans l'unité centrale de traitement du processeur.
Il s'agit d'un registre d'instruction et d'un registre d'inversion de bit et, pour chacune des deux mémoires à accès direct, d'un registre d'adresse de base, d'un registre de pointeur et d'un registre de longueur de vecteur. Le registre d'instructions valide ou inhibe
l'entrée ou la sortie d'accès direct à la mémoire indépen-
damment Il commande aussi l'attribution des canaux
d'entrée et de sortie à des mémoires à accès direct par-
ticulières A tout moment, une mémoire à accès direct doit être attribuée à l'entrée et l'autre à la sortie, bien que les deux directions ne soient pas obligatoirement validées Le registre d'instructions spécifie aussi
un mode d'adressage pour chaque mémoire à accès direct.
Les modes d'adressage permis suivent le même schéma que dans les unités d'adressage de données du processeur principal, c'est-à-dire adressage direct, indexé, avec progression et avec régression Cette fois, un seul registre d'adresse de base est utilisé par mémoire à accès direct Le registre de longueur de vecteur de chaque mémoire à accès direct permet encore la création de circuits tampons annulaires La fonction restante des registres d'instructions est de spécifier l'indexage normal ou avec inversion de bitspour chaque mémoire
à accès direct, de manière indépendante.
Cette caractéristique d'indexage à inversion de bitsest utile lors de l'exécution d'un quelconque algorithme de transformation rapide de Fourier Lorsqu'un
tel algorithme est exécuté sur un bloc de huit échantil-
lons de données par exemple, des échantillons successifs
de données peuvent devoir être conservés à des empla-
cements 0, 4, 2, 6, 1, 5, 3, 7 Une telle séquence est créée par prise de la séquence normale O à 7 et inversion de l'ordre des bits dans la représentation binaire à 3 bits de ces nombres afin que par exemple 4 (100) devienne 1 ( 001) et inversement Le procédé d'arrangement des données dans cet ordre peut prendre beaucoup de temps s'il doit être réalisé par le logiciel, mais il ne prend aucun temps lorsqu'il est réalisé
au cours de l'opération d'accès direct à la mémoire.
Lorsqu'une inversion de bits est spécifiée par le registre d'instructions, une partie ou la totalité des bits du registre correspondant de pointeur est
inversée avant addition au registre d'adresse de base.
(Le contenu réel du registre de pointeur reste dans l'ordre normal) Le registre à inversion de bits permet la spécification de la largeur du champ de bits dans lequel l'inversion doit être réalisée, et indique aussi
si l'algorithme concerne des données réelles ou complexes.
L'exemple précédent indique un critère portant sur les données réelles Lorsqu'une transformation est en cours de réalisation sur huit échantillons de données complexes, ceux-ci sont conservés successivement de la manière suivante: 0, 1, 8, 9, 4, 5, 12, 13, 2,
3, 10, 11, 6, 7, 14, 15 Les parties réelles et-imagi-
naires de chaque échantillon de données complexes sont conservées à des emplacements adjacents de mémoire, mais par ailleurs l'indexage à inversion de bits est
réalisé de la même manière.
La possibilité du circuit d'accès direct à la mémoire d'écriture de donnéesdans la mémoire à accès direct ou de lecture de données dans cettemémoire d'une manière "intelligente" et pratiquement sans perte
de temps augmente beaucoup les possibilités de trai-
tement de l'unité de traitement.

Claims (8)

REVENDICATIONS
1 Processeur de signaux électriques numériques, caractérisé en ce qu'il comprend au moins une mémoire à accès direct ( 14, 16) dans laquelle des mots à traiter sont conservés lorsque le processeur est en cours d'utilisation, un registre d'adresse dans lequel peut être conservée l'adresse d'un mot à traiter dans l'une des mémoires à accès direct, un registre de commande dans laquelle un nombre représentant la longueur d'une séquence de mots dans la mémoire ou l'une des mémoires à accès direct peut être conservé, et un dispositif de sélection d'adresse commandé par le contenu du registre d'adresse
et du registre de commande et destiné à provoquer l'ex-
traction d'une séquence de mots dans une mémoire à accès direct, en ce que la séquence extraite commence par le mot qui se trouve à l'adresse de la mémoire à accès direct qui est défini par le contenu du registre d'adresse, en ce que le mot suivant et les mots ultérieurs se trouvent à des adresses de la mémoire à accès direct qui sont dérivées chacune de l'adresse du mot extrait précédemment, par progression ou régression de cette adresse d'un nombre entier fixe, par exemple égal à 1, en ce que la séquence se poursuit jusqu'à ce que le nombre d'adresses soit égal à celui qui est défini par le contenu du registre de commande, en ce que, lorsque, au cours de la progression ou de la régression, l'adresse du dernier mot de la séquence est atteinte, la progression ou régression suivante produit l'adresse du mot se trouvant à l'autre extrémité de la séquence si bien que les mots peuvent être choisis cycliquement et successivement, en ce que les mots ainsi lus successivement dans la mémoire à accès direct sont traités successivement par le processeur, et en ce qu'une telle séquence peut être répétée un nombre de fois aussi grand que le nécessite l'exécution d'un programme.
2 Processeur selon la revendication 1, caracté-
risé en ce qu'il comporte deux mémoires à accès direct ( 14, 16), en ce que, à chaque pas, deux mots sont extraits dans une séquence des adresses correspondantes dans les mémoires à accès direct, et en ce que chaque pas d'une séquence de traitement mettant en oeuvre les mots ainsi extraits implique une opération de traitement effectuée sur les deux mots extraits des mémoires à
accès direct dans la séquence.
3 Processeur selon l'une des revendications
1 et 2, caractérisé en ce que l'indexage de l'adresse est assuré de manière qu'une adresse d'une mémoire à accès direct puisse être formée par addition du contenu
du registre d'adresse et du registre de commande.
4 Processeur selon l'une quelconque des
revendications 1 à 3, caractérisé en ce qu'il comprend
plusieurs registres de commande qui peuvent être choisis chacun pour être utilisés au cours d'un progamme en
cours d'exécution par l'ordinateur.
Processeur de signaux numériques électriques, caractérisé en ce qu'il comprend au moins une mémoire à accès direct ( 14, 16) qui conserve des mots à traiter, un registre d'adresse à partir duquel peut être obtenue l'adresse, dans la mémoire à accès direct, d'un mot à traiter, un premier registre de commande dans lequel peut être conservé un premier nombre entier, par exemple égal à 1, destiné à être utilisé pour la création d'une séquence d'adresses, cette séquence étant créée par progression ou régression successive du contenu du registre d'adresse du nombre entier contenu dans le premier registre de commande, un second registre de commande dans lequel un entier supplémentaire peut être
conservé, ce nombre entier déterminant le nombre d'adres-
ses dans la séquence nécessaire, et un dispositif de sélection d'adresse placé sous la commande du contenu du registre d'adresse et des deux registres de commande et destiné à créer la séquence d'adresses nécessaire de manière qu'une séquence de mots à traiter soit extraite de la mémoire à accès direct, en ce qu'une séquence de mots commence avec le mot se trouvant à l'adresse correspondant au contenu du registre d'adresse, en ce que le mot suivant et les mots ultérieurs de la séquence se trouvent à des adresses de la mémoire à accès direct qui sont tirées chacune de l'adresse du mot extrait précédemment par progression ou régression de cette adresse du premier entier, en ce que la séquence de création d'adresse se poursuit jusqu'à ce qu'un nombre d'adresses déterminé par le nombre entier du second registre de commande ait été créé, et en ce que, lorsque la séquence se poursuit après la création de l'adresse se trouvant à la première-extrémité de la séquence, l'adresse créée ensuite est l'adresse de l'autre extrémité de la séquence, si bien que la séquence de mots à traiter peut être adressée successivement
et cycliquement sous la commande des adresses créées.
6 Processeur selon la revendication 5, caracté-
risé en ce qu'il comporte deux mémoires à accès direct
( 14, 16), ayant chacune son propre dispositif généra-
teur d'adresse, en ce que, à chaque pas, dans une sé-
quence, deux mots sont extraits des adresses correspon-
dantes dans la mémoire à accès direct, et en ce que chaque pas, dans une séquence de traitement impliquant les mots ainsi extraits, met en oeuvre une opération de traitement exécutée sur les deux mots extraits de
la mémoire à accès direct dans ce pas de la séquence.
7 Ensemble de traitement numérique, caractéri-
sé en ce qu'il comprend plusieurs processeurs de signaux électriques numériques ( 50, 55) ayant tous accès à une ligne commune formant un bus de système ( 52), en ce qu'un processeur qui nécessite un transfert de données destinées à un autre processeur ou provenant d'un autre processeur transmet une demande de transfert au bus du système, en ce qu'un circuit logique d'arbitrage ( 54) connecté au bus du système ( 52) reçoit les demandes de transfert de tous les processeurs et, lorsque le bus est disponible pour l'exécution d'un tel transfert,
attribue le bus en conséquence, en ce que, lorsque l'at-
tribution du bus est effectuée, un signal est transmis
à cet effet au processeur demandeur, en ce que le proces-
seur demandeur, lorsqu'il reçoit le signal du circuit logique d'arbitrage ( 52) transmet l'adresse de l'autre processeur impliqué dans le transfert voulu de données, en ce qu'un dispositif de décodage ( 58) associé au bus du système ( 52) détecte l'adresse du processeur demandé et active un processeur d'adresse incorporé, ce processeur d'adresse s'ajoutant à l'unité centrale de traitement du processeur, et en ce que les processeurs d'adresse des-deux processeurs commandent alors le
transfert des données à échanger entre les deux processeurs.
8 Ensemble selon la revendication 7, caracté-
risé en ce que chaque transfert est réalisé de l'accumula-
teur de l'un des processeurs à la mémoire de l'autre.
FR8404690A 1983-04-14 1984-03-26 Processeur de signaux numeriques et multicalculateur Withdrawn FR2544524A1 (fr)

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
GB08310157A GB2138182B (en) 1983-04-14 1983-04-14 Digital processor

Publications (1)

Publication Number Publication Date
FR2544524A1 true FR2544524A1 (fr) 1984-10-19

Family

ID=10541111

Family Applications (1)

Application Number Title Priority Date Filing Date
FR8404690A Withdrawn FR2544524A1 (fr) 1983-04-14 1984-03-26 Processeur de signaux numeriques et multicalculateur

Country Status (4)

Country Link
JP (1) JPS59200361A (fr)
DE (1) DE3412805A1 (fr)
FR (1) FR2544524A1 (fr)
GB (1) GB2138182B (fr)

Families Citing this family (5)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US5239628A (en) * 1985-11-13 1993-08-24 Sony Corporation System for asynchronously generating data block processing start signal upon the occurrence of processing end signal block start signal
CA1283738C (fr) * 1985-11-13 1991-04-30 Atsushi Hasebe Processeur de donnees
JPH0772863B2 (ja) * 1986-10-30 1995-08-02 日本電気株式会社 プログラムカウンタ相対アドレス計算方式
JPH03257645A (ja) * 1990-03-08 1991-11-18 Matsushita Electric Ind Co Ltd メモリ装置
EP0772818A1 (fr) * 1995-05-26 1997-05-14 National Semiconductor Corporation Appareil et procede pour executer des instructions pop

Family Cites Families (6)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
GB1038710A (en) * 1964-04-04 1966-08-10 Ibm Data processing systems
DE1810413B2 (de) * 1968-11-22 1973-09-06 Siemens AG, 1000 Berlin u. 8000 München Verfahren zum ausgeben von daten aus einer datenverarbeitungsanlage an externe geraete und zum eingeben von daten von den externen geraeten in die datenverarbeitungsanlage
JPS5834037B2 (ja) * 1976-05-08 1983-07-23 株式会社東芝 アドレス計算装置
JPS589977B2 (ja) * 1976-05-21 1983-02-23 三菱電機株式会社 複合形処理装置
AU3329178A (en) * 1977-03-28 1979-08-23 Data General Corp A micro-control storage system
DK157954C (da) * 1978-01-23 1990-08-13 Data General Corp Databehandlingsanlaeg med direkte lageradgang

Also Published As

Publication number Publication date
GB2138182B (en) 1986-09-24
JPS59200361A (ja) 1984-11-13
DE3412805A1 (de) 1985-01-03
GB2138182A (en) 1984-10-17
GB8310157D0 (en) 1983-05-18

Similar Documents

Publication Publication Date Title
EP0029131B1 (fr) Procédé de commande de l'affectation de ressources dans un système comportant plusieurs processeurs à fonctionnement simultané
FR2645666A1 (fr) Procede pour transferer des donnees par salves dans un microprocesseur
EP0063972B1 (fr) Procédé et dispositif d'allocation d'une ressource dans un système comportant des unités de traitement de données autonomes
EP2366147B1 (fr) Gestionnaire physique de barriere de synchronisation entre processus multiples
FR2593304A1 (fr) Systeme logique de priorite
FR2598835A1 (fr) Cache de blocs de donnees empiles sur une puce de microprocesseur
FR2519441A1 (fr) Systeme de selection de priorite pour l'acces a un bus utilise en mode partage
FR2778258A1 (fr) Controleur d'acces de trafic dans une memoire, systeme de calcul comprenant ce controleur d'acces et procede de fonctionnement d'un tel controleur d'acces
EP0315529A1 (fr) Machine multiprocesseur reconfigurable pour traitement du signal
FR2525787A1 (fr) Systeme a multimicroprocesseurs
FR2613100A1 (fr) Processeur graphique perfectionne
FR2528195A1 (fr) Systeme de communication entre ordinateurs
EP1081598B1 (fr) Dispositif à plusieurs processeurs partageant une mémoire collective
EP1324175B1 (fr) Module de securisation de donnees par chiffrement/dechiffrement et/ou signature/verification de signature
EP0684551A1 (fr) Circuit électronique d'utilisation d'un coprocesseur
FR2480459A1 (fr) Systeme de traitement de donnees a un dispositif d'appariement d'adresses de memoire de controle
EP0171305B1 (fr) Circuit de calcul de la transformée de Fourier discrète
FR2544524A1 (fr) Processeur de signaux numeriques et multicalculateur
CH621201A5 (fr)
EP1081597B1 (fr) Dispositif à plusieurs processeurs ayant une interface pour une mémoire collective
FR2536884A1 (fr) Reseau de transfert de donnees entre plusieurs processeurs et une memoire
EP0435718B1 (fr) Processeur à plusieurs unités microprogrammées avec mécanisme d'exécution anticipée des instructions
FR2678400A1 (fr) Processeur de protocole destine a l'execution d'un ensemble d'instructions en un nombre reduit d'operation.
FR2595474A1 (fr) Dispositif de controle et de verification du fonctionnement de blocs internes a un circuit integre
FR2717645A1 (fr) Procédé et appareil de transmission de signaux par une ligne partagée.

Legal Events

Date Code Title Description
CD Change of name or company name
ST Notification of lapse