FR2513410A1 - Microprocesseur et procede pour imbriquer les acces en memoire de ce microprocesseur - Google Patents

Microprocesseur et procede pour imbriquer les acces en memoire de ce microprocesseur Download PDF

Info

Publication number
FR2513410A1
FR2513410A1 FR8215793A FR8215793A FR2513410A1 FR 2513410 A1 FR2513410 A1 FR 2513410A1 FR 8215793 A FR8215793 A FR 8215793A FR 8215793 A FR8215793 A FR 8215793A FR 2513410 A1 FR2513410 A1 FR 2513410A1
Authority
FR
France
Prior art keywords
data
instruction
memory
address
instructions
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
FR8215793A
Other languages
English (en)
Other versions
FR2513410B1 (fr
Inventor
Philip Frederick Kromer Iii
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.)
Racal Data Communications Inc
Original Assignee
Racal Data Communications 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 Racal Data Communications Inc filed Critical Racal Data Communications Inc
Publication of FR2513410A1 publication Critical patent/FR2513410A1/fr
Application granted granted Critical
Publication of FR2513410B1 publication Critical patent/FR2513410B1/fr
Expired 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
    • 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
    • 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, look ahead
    • G06F9/3802Instruction prefetching
    • 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, look ahead
    • G06F9/3824Operand accessing
    • 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, look ahead
    • G06F9/3867Concurrent instruction execution, e.g. pipeline, look ahead using instruction pipelines

Abstract

L'INVENTION CONCERNE UN MICROPROCESSEUR DONT LES ACTIONS EN MEMOIRE SONT IMBRIQUEES. CE MICROPROCESSEUR COMPORTE UN ELEMENT DE COMMANDE 45 AU MOYEN DUQUEL L'APPLICATION D'ADRESSES D'INSTRUCTIONS ET DE DONNEES A UNE MEMOIRE 19 S'EFFECTUE PAR UN BUS UNIQUE SUR LEQUEL LES INSTRUCTIONS ET LES DONNEES SONT IMBRIQUEES AFIN QUE L'ON OBTIENNE UNE EFFICACITE DE FONCTIONNEMENT MAXIMALE. DOMAINE D'APPLICATION: MICROPROCESSEURS.

Description

L'invention concerne les microprocesseurs, et plus
particulièrement des microprocesseurs utilisant des instruc-
tions qui ne nécessitent pas d'extraction en mémoire externe
et des instructions qui nécessitent une extraction en mêmoi-
re externe Les instructions ne nécessitant pas d'extraction en mémoire externe seront désignées ci-après instructions de type I tandis que celles nécessitant l'extraction de données
dans une mémoire externe seront désignées ci-après instruc-
tions du type II En général, les instructions du type Il sont constituées de deux parties: une partie étant la règle
Opérande-extraction, l'autre étant la règle Opération.
Exprimée par un verbe, une instruction de type I peut être considérée comme, par exemple, "prendre le complément de l'accumulateur", tandis qu'une instruction du type II peut être considérée, par exemple, comme " 3 extraire le contenu
de la mémoire désignée par un registre d'index R 3 et ajou-
ter ce nombre à l'accumulateur".
Une mesure très importante de la performance d'un microprocesseur, en particulier dans le cas de processeurs de signaux, est le nombre d'opérations qu'il peut exécuter
par seconde Il est donc souhaitable d'exploiter au maxi-
mum chaque cycle d'horloge Une technique bien connue pour accomplir une telle exploitation est dite technique du "pipeline" dans laquelle une ou plusieurs instructions
postérieures sont extraites avant l'achèvement de l'exécu-
tion de la première instruction.
Il est également souhaitable d'utiliser peu de bus dans l'architecture d'un microprocesseur afin de réduire le nombre de broches d'entrée/sortie, de simplifier la mémoire externe et de permettre une architecture "Von Neuman" dans laquelle les mémoires d'instruction et de
données peuvent partager les mêmes dispositifs.
L'invention s'applique particulièrement à un micro-
processeur utilisant des instructions de type I et de type II, la technique du pipeline et deux bus, à savoir un bus d'adresse et un bus d'instructions/données Dans une telle machine, les différents types d'instructions et de retards présents soulèvent des difficultés pour l'organisation des opérations de traitement et, par conséquent, un gaspillage
du temps précieux de calcul, limitant le nombre d'opéra-
tions par seconde qui pourraient être autrement effectuées.
L'invention a pour objet d'améliorer la puissance de calcul des microprocesseurs L'invention a également pour objet de synchroniser le déroulement des opérations dans une machine utilisant plusieurs types différents d'instructions afin de permettre une utilisation optimale
des cycles du microprocesseur L'invention a plus parti-
culièrement pour objet d'améliorer l'efficacité d'un micro-
processeur utilisant une architecture à pipeline, deux
bus et deux types d'instructions.
Ces objectifs et avantages, ainsi que d'autres
objectifset avantages, sont obtenus, conformément à l'in-
vention, par la mise en oeuvre de moyens destinés à tam-
ponner des adresses de données, des moyens de retard d'ins-
tructions et un contrôleur destiné à commander ces éléments
afin d'effectuer un traitement optimal.
L'invention apporte plusieurs avantages Tout d'abord, des instructions et des données peuvent être imbriquées sur le même bus Au cours de chaque cycle, une extraction utile en mémoire est effectuée Une souplesse maximale est permise pour le codage des instructions Le rythme d'exécution des
instructions est presque aussi uniforme que possible.
L'invention sera décrite plus en détail en regard des dessins annexés à titre d'exemple nullement limitatif et sur lesquels: la figure l est un schéma simplifié d'une forme préférée de réalisation de l'invention; la figure 2 A montre l'imbrication des instructions et des données, de leurs adresses et de la synchronisation requise de leur apparition sur le bus d'adresses et les bus de données d'instructions de la forme préférée de réalisation; la figure 2 B montre l'action du signal IRS-1,5 qui sert d'arbitre de bus; la figure 2 C montre la position dans le temps des
signaux d'entrée du décodeur par rapport à d'autres opéra-
tions montrées sur les figures 2 A à 2 E; la figure 2 D montre la position dans le temps des signaux de sortie du décodeur et du chargement du tampon DAB
de bus d'adresses de données par rapport aux autres opéra-
tions illustrées sur les figures 2 A à 2 E; la figure 2 E montre la position dans le temps et le positionnement des contenus du registre d'instruction, du registre d'exécution et du registre X ainsi que le signal de commande IRSO; les figures 3 et 4 représentent un diagramme d'états et une table de vérité illustrant le fonctionnement de l'élément
de mise en séquence d'états de la forme préférée de réali-
sation de l'invention; et la figure 5 est un schéma du circuit logique de
l'élément de mise en séquence d'états.
La figure 1 représente la forme préférée de réali-
sation de la structure du microprocesseur selon l'inven-
tion Comme représenté, cemicroprocesseur utilise deux
bus, à savoir un bus 11 d'adresse et un bus 13 d'instruc-
tions/données Les délais associés en pratique au décodeur
et à la logique combinatoire associée du microproces-
seur imposent 1,5 cycle pour l'interprétation de la règle d'extraction d'opérande et la génération de l'adresse de l'opérande 1,5 cycle est également nécessaire à la mémoire pour renvoyer la donnée, l'adresse étant donnée Le temps total, égal à 3 cycles, correspond à la famille préférée des circuits logiques, à savoir les circuits intégrés à grande échelle du type NMOS c'est-à-dire MOS à canal N, et il constitue le "délai de pipeline' de la forme préférée de réalisation Ce type de logique impose également la
fréquence maximale d'horloge à laquelle travaille le système.
La figure 1 représente un ensemble 15 à empilage et compteur d'instruction qui produit des adresses de programme sur un bus d'adresses de programme (PAB) 12 transmises par
l'intermédiaire d'un sélecteur 14 à un registre 17 d'adres-
se, qui adresse des dispositifs de mémoire 19.
En réponse à une adresse provenant du compteur 15
d'instruction, le dispositif de mémoire délivre une instruc-
tion de type I ou de type IIà un registre 23 de sortie de
25134 1 O
mémoire par l'intermédiaire du bus instructions/données 13, cette instruction étant transmise à un registre d'entrée Le registre d'adresse est l'un des cinq registres
"d'encadrement'17, 23, 36, 39, 25 montrés sur la figure 1.
Ces "registres" n'emmagasinent pas, mais établissent plu- tôt un retard ou délai approprié, et mettent en forme et
effilent les signaux transférés à travers eux.
L'instruction est appliquée à un décodeur 29 d'ins-
truction d'adresse et elle est introduite dans un registre 27 d'instruction La ligne 30 de commande aboutissant au compteur d'instruction commande des sauts, des appels de
sous-programoes et des retours.
Le décodeur 24 d'instruction d'adresse décode la partie d'extraction d'opérande de l'instruction et applique la sortie décodée par la ligne 31 de commande d'adresse de
données à un générateur 33 d'adresse dedonnées Le généra-
teur 33 délivre une adresse de données au bus d'adresse de données (DAB) 10 quila transmet à un tampon élastique pouvant emmagasiner une adresse de données pour qu'elle soit ensuite appliquée au dispositif de mémoire 19 par l'intermédiaire du sélecteur 14 et du registre d'adresse 17 Le générateur d'adresse de donnée utilise de préférence
la technique d'adressage indirect connue de l'homme de l'art.
La forme de réalisation préférée utilise quatre registres d'index pouvant chacun générer une adresse Le décodeur 29 sélectionne le registre d'index approprié En cours de fonctionnement, l'instruction considérée peut contenir un ordre de lecture d'un registre d'index et d'une zone de déplacement L'adresse se trouvant dans le registre d'index indiqué est ensuite appliquée sur le bus d'adresse et son contenu est en même temps incrémenté ou décrémenté suivant
le contenu de la zone de déplacement.
Certaines règles d'extraction d'opérande peuvent nécessiter l'exécution d'une opération d'écriture en mémoire Dans ce cas, le signal 60 d'écriture, transmis par le registre d'adresse 17, conditionne la mémoire pour écrire la donnée présente dans un'registre de cumul 43, par l'intermédiaire d'un registre 62 Cette même donnée apparaîtra sur le bus d'instructions/données de la même
manière que le résultat d'un cycle de lecture.
D'autres techniques de génération d'adresses sont connues et utilisables et l'invention n'est pas limitée à une technique particulière. L'instruction est également placée dans un registre
27 d'instruction pour être finalement exécutée par le micro-
processeur. L'exécution est réalisée par des circuits classiques,
comprenant un registre d'exécution 36, un décodeur d'opé-
ration 37, un registre 39, une unité logique arithmétique
41, un accumulateur 43 et un registre de données 45 Le déco-
deur d'opérations décode l Jinstruction et transmet le si-
gnal de sortie décodé au registre d'exécution Le registre
45 de données mémorise un mot de donnée demandé pour l'exé-
cution de l'ordre contenu dans le registre d'exécution 36.
Le chargement du registre de données 45 est commandé par un signal IRSO 53 Les autres données d'entrée de l'unité
logique arithmétique 41, arrivant par la ligne 47, pro-
viennent de la sortie de l'accumulateur 43.
La section arithmétique peut utiliser plus d'un accumulateur, et de préférence elle en utilise deux Ainsi,
l'entrée "A" de l'unité logique arithmétique 41 peut pro-
venir du premier ou du second accumulateur Il est de préférence prévu une instruction permettant de renvoyer dans la mémoire 19 le signal de sortie de l'un ou l'autre des accumulateurs L'unité logique arithmétique 41 établit elle-même, de façon typique, plusieurs unités de retard du pipeline Comme indiqué ci-après, dans la forme préférée de réalisation, les données sont minutées pour arriver à l'entrée B de l'unité logique arithmétique 41 en même temps que l'arrivée de l'ordre approprié contenu dans le registre 39. Selon l'invention, une imbrication optimale des adresses d'instrtctions et des adresses de données sur le bus d'adresses il et des instructions et des données sur le bus instructions/données est réalisée au moyen d'un générateur DOB (dcnrées sur bus) 45 Comme représentée le
générateur DOB 45 reçoit une entrée du décodeur 29 d'ins-
truction d'adresse Cette entrée est constituée du signal DAR (demande d'adresse de donnée) qui apparaît en même temps que la production d'une adresse de données par le générateur d'adresses de données.
Le signal DAR indique si l'instruction décodée en-
traîne une extraction de donnée ou non.
Le générateur DOB 45 produit des signaux de commande
sur cinq lignes 49, 51, 52, 53 Lorsque le signal de com-
mande IRSO présent sur la ligne 53 est vrai, le registre d'instruction est décalé Lorsque le signal de commande IRSO est faux, le registre X 45 est chargé Le signal de commande présent sur la ligne 49 détermine lorsque le tampon 38 du bus d'adresse de données (DAB) doit être chargé du signal DAB présent sur la ligne 10 Le signal de commande de sélection de bus d'adresse de programme, présent sur la ligne 52 détermine si l'adresse de programme provenant du bus d'adresse de programme (PAB) 15 est transmis au registre
d'adresse Le signal de commande de sélection de bus d'adres-
se de programme présent sur la ligne 50, détermine si le signal de sortie du générateur d'adresse de données est transmis au registre 17 d'adresse Le signal de commande de sélection de tampon du bus d'adresse de données, présent sur la ligne 51, détermine si le signal de sortie du tampon 38 du bus d'adresse de données est transmis directement au registre d'adresse 17 Ainsi, les signaux de commande 50 et 51 assurent 'l'élasticité" du tampon De plus, lorsque le générateur DOB émet une adresse de donnée, il inhibe le
compteur d'instruction 15.
Le générateur DOB a pour fonctions de générer les créneaux de microsynchronisation (signal IRS), de servir d'arbitre de bus pour les bus DAB, de tampon DAB et PAB et
d'incrémenter le compteur d'instruction.
La figure 3 représente une forme préférée de réali-
sation du générateur DOB La figure 4 montre la table d'états pour tous les états possibles et les conditions demandées
pour un mouvement d'un état à l'autre.
Le générateur DOB génère les créneaux de synchroni-
13410
sation d'instruction et de données (microsynchronisation) pour le microprocesseur ainsi que pour les circuits de l'unité logique arithmétique La figure 4 montre la table d'états pour tous les états possibles et les conditions demandées pour passer d'un état à l'autre Comme mentionné -précédemment, les instructions peuvent être classées en deux types: A celles qui extraient un opérande; c'est à dire créent un créneau de données (type Il)
B celles qui n'extraient pas un opérande; c'est-
à-dire qui ne créent pas un créneau de dc Ménes (type I).
Les règles pour imbriquer les créneaux de données et les extractions d'instructions sont: 1 le créneau de données pour une instruction N, si nécessaire, est créé immédiatement après l'extraction de
l'instruction N + 2.
2 Une extraction d'instruction suit immédiatement
chaque créneau de données.
Le générateur DOB sélectionne soit une adresse de donnée, soit une adresse d'instruction -Le résultat de l'extraction peut être utilisable comme signal d'entrée pour le générateur DOB, en provenance du décodeur principal, trois cycles de bus plus tard Ceci est dû à la structure
en pipeline (délais du matériel) du système.
Le décodeur d'instruction d'adresse génére un signal appelé DAR (demande d'adresse de donnée) En réponse a une instruction du type II, ce signal est vrai, et en réponse
à une instruction du type I, il est faux.
Dans la forme préférée de réalisation, il existe un repositionnement à déclenchement extérieur (par exemple
en réponse à la ligne sous tension).
Le cycle de repositictmement laisse le générateur DOB dans l'état 14 Il reste dans cet état 14 tant qu'aucune
instruction de type IXI nest décodée (D MR = 0).
Pendant cet état, le compteur P C est incrémenté, son contenu est dirigé vers le bus d'adresse et le signal IRS-1,5 est vraî, indiquant une instruction sur le bus de donnée Le signal IPS est très importants car il établit les
créneaux d'instruction et de donnée pour les autres cir-
cuits du microprocesseur Si dans l'état 14, DAR = 1,
le bus DAB est validé et son contenu est transféré direc-
tement au bus d'adresse;:le compteur P C est inhibé de manière à ne pas effectuer d'incrémentation Ce signal IRS passe au niveau bas et le générateur passe à l'état 6.
Dans l'état 6, le compteur P C est incrémenté.
Si DAR = 0, le contenu du compteur P C est placé sur le bus d'adresse Le signal IRS est haut et le générateur passe à l'état 10 Si DAR = i le contenu du compteur P C. est placé sur le bus d'adresse, IRS est haut, le tampon DAB 38 est chargé du contenu du bus DAB et le générateur
passe à l'état 11.
Dans l'état 10, le compteur P C est incrémenté.
Si D = O, le contenu du compteur P C est placé sur le bus d'adresse, IRS est haut et le générateur passe à l'état 12 Si DAR = 1, le contenu du compteur P C est placé sur le bus d'adresse, et IRS est haut, le tampon DAB 38 est chargé du contenu du bus DAB, et le générateur
passe à l'état 13.
Dans l'état 11, le compteur P C est inhibé de manière à ne pas pouvoir compter Si D = O, le contenu du tampon DAB 38 est placé sur le bus d'adresse, IRS reste haut et le générateur DOB passe à l'état 4 Si DAR = 1, le contenu du tampon DAB 38 est placé sur le bus d'adresse, cette opération étant suivie du chargement du registre par une nouvelle information présente sur le bus DAB Le signal IRS est haut et le générateur DOB passe à
l'état 5.
Pendant les états 4, 5, 12 et 13 le décodeur 29 est inactif, car les données sont sur le bus I/D 13, du
fait que IRSO est bas.
Dans l'état 4, le compteur P C est incrémenté et son contenu est placé sur le bus d'adresse IRS est bas,
indiquant qu'une donnée est présente sur le bus de données.
Le générateur DOB passe à l'état 10.
Dans l'état 5, le compteur P C est incrémenté et
25134 1 O
son contenu est placé sur le bus d'adresse Le tampon DAB 38
est chargé du contenu du bus DAB IRS est bas et le généra-
teur DOB passe à l'état 11.
Dans l'état 13, le compteur P C est inhibé de manière à ne pas pouvoir effectuer de comptage Le contenu du tampon DAB 38 est placé sur le bus d'adresse IRS est
bas et le générateur DOB passe à l'état 6.
A l'état 12, le compteur P C est incrémenté et son contenu est placé sur le bus d'adresse IRS est bas
et le générateur DOB passe à l'état 14.
Par conséquent, les fonctions du générateur DOB sont de générer des créneaux de micro-synchronisation (signal IRS), de servir d'arbitre de bus pour les bus DAB, de tampon DAB et PAB, et d'incrémenter le compteur
d'instruction.
La figure 5 représente le circuit logique du géné-
rateur DOB Ce générateur comprend un certain nombre d'in-
verseurs 55, 56, 57, 58; un certain nombre de portes ET , 61, 62, 63, 64; un certain nombre de portes NON-OU 67, 68, 69, 70; et quatre bascules 73, 74, 75, 76 de type
D, interconnectés comme représenté L'entrée du généra-
teur est le signal DAR et les signaux de sortie produits comprennent le signal IRS-1,5 et des signaux de commande
CHARGE TAMPON DAB; SELECT TAMPON DAB; SELECT PAB/
INCREMENT PC; et SELECT DAB La fonction de ce circuit est illustré par la table de vérité du générateur-DOB,
montrée sur la figure 4, et par le diagramme de la sé-
quence d'états de la figure 3.
Un exemple d'opération sera à présent décrit en regard des figures 2 A à 2 E et du tableau I annexé On suppose que l'historique de la machine est tel que trois instructions d'une rangée seront extraites de la mémoire, chacune demandant une extraction de donnée, Le tableau I ci-après montre un segment de programme qui exige une telle
série d'instructions.
TABLEAU I
ADRESSE INSTRUCTION
1 '
O RRI + 1 MVP AD
jl
1 RRI -1 <ADD AO>
ji 2 RR 3 O <MVP Ali jl
3 SAUT
4 PCEQ 80 <ADD Al 7
WRI O < ADD A >
jl
6 N
L 4 NOUVEAU ? <SUB Ali
81 N
82 IMMATERIEL -
83 IMMATERIEL
jl indique qu'un créneau de dconnée est associé à l'instructicn pr 6 cé-
dente Il est ignoré par l'assembleur.
Sur les figures 2 A à 2 E, I 1, Il, 12 exigent chacun
un créneau de donnée 10 est décodé aussi rapidement que pos-
sible et l'adresse AD O pour le créneau de donnée demandé par Io est placé sur DAB, puis sur le bus d'adresse 11 aussi
rapidement que possible Il convient de noter que l'asso-
ciation du retard de la mémoire et du retard minimal du décodeur exige trois cycles d'horloge entre l'instant zéro, auquel l'adresse de 10 est placée sur le bus d'adresse, et l'instant AD O placé sur le bus I 1 atteint le bus I/D à proximité de I O mais conformément à la règle opératoire DOB, l'adresse " 3 " pour 13 est placée sur le bus d'adresse avant la mise en place de ADI, à savoir l'adresse de la donnée pour I sur le bus d'adresse Ceci a pour résultat la présence de quatre unités de retard entre la mise en place de I 1 sur le bus I/D ll et la donnée Dl de Il sur le bus I/D De façon similaire, la donnée D 2 de 12 ne passe sur le bus I/D qu'après l'extraction de 14 et il en résulte cinq unités de retard
entre le moment o 12 est placé sur le bus I/D et le mo-
ment o D 2 est placé sur le même bus I/D. Entre-temps, les instructions I 0, Il, 12 pénètrent dans le registre d'instruction, sous la commande du signal IRSO (comme montré sur la figure 2 E) Lorsqu'un créneau de donnée est généré,IRSO passe au niveau bas, de sorte qu'il ne se produit aucun décalage lorsque le créneau de donnée apparatt sur le bus I/D Ainsi, 10 atteint 1 par l'intermédiaire du registre d'instruction, le registre d'exécution un demi cycle d'horloge avant l'introduction de la donnée DO O dans le registre X Ceci apparalt sur les lignes REG EXEC et REG X de la figure 2 E Ensuite, le signal de sortie du décodeur C(I 0) est appliqué à l'unité
logique arithmétique en même temps que D O par l'inter-
médiaire'du registre 39 d'encadrement.
Les figures 2 D et 2 A montrent l'action du tampon élastique conjointement avec celle du générateur DOB Ceci apparaît notamment en comparant le signal de sortie du bus DAB et le bus I/D Ar O apparaît sur le bus DAB un cycle après l'apparition de I O sur le bus I/D AD 1 apparaît sur le bus DAB un cycle d'horloge après l'apparition de I 1 sur le bus I/D et est tatponné parle tampon élastique dans son tampon d'adresse de donnée 38 En même temps que ce tamponnement, l'adresse de l'instruction " 3 " est placée sur le bus d'adresse L'action du tampon apparaît, car ADl apparaît sur le bus d'adresse seulement après l'arrivée de la valeur " 3 " sur le busd'adresse Ainsi, AD est avancé pas à pas de DAB au tampon DAB jusqu'au bus d'adresse. AD 2 est retardé dans le tampon DAB 38 (figure 2 D) plus longtemps pour permettre à la fois à AD 1 et à " 4 " d'apparaître sur le busd'adresse AD 2 peut rester pendant deux cycles, en raison de l'arrivée de DO Autrement dit,
l'arrivée de D invalide le décodeur par l Daction de IRSO.
Par conséquent, aucune nouvelle adresse de donnée ne peut
être générée.
Le tableau I montre une série-d'instructions résul-
tant des combinaisons montrées sur la figure 2 La pre-
mière instruction I est une instruction RR 1 "lecture et registre 1 " qui demande une extraction de donnée, combinée avec une opération MVP("mouvement positif vers A 0) I 1 est une instruction RR 1-l et addition à A O (il convient de noter que I O comprend un + 1 qui est un incrément pour le registre d'index afin que l'extraction suivante à ce registre provienne de la position de mémoire adjacente suivante) I 2 est une instruction RR 3 "lecture registre 3 " et "mouvement positif vers A, 13 est un saut et I 4 donne la destination du saut I 5 est une instruction "écriture au registre 1 " Etant donné que I contient un décrément, on devrait renvoyer R 1 du registre 1 à la
première position.
En raison des retards présents dans la machine, le compteur PC n'est pas affecté par le saut avant que I 41 c'est-à-dire la destination du saut, apparaisse sur le
bus I/D, de sorte que I 5 reste extrait à partir de l'an-
cienne valeur de PC Lorsque 14 apparait sur le bus I/D,
le compteur PC est modifié afin que l'extraction sui-
vante s'effectue pour I o à partir de la position 80 Le "'saut" sur les instructions "PC égale" aux adresses 3 et 4 n'exige pas de créneau de donnée Par conséquent,
sous l'action du générateur DOB, un flot de trois instruc-
tions formant une rangée sans créneau de donnée inter-
médiaire apparait après l'adresse AD 2 L'instruction "écri-
ture au registre 1 ", à savoir l'instruction IV, a pour résultat l'insertion de AD 5 dans trois créneaux apres l'arrivée de la valeur " 5 sur le bus d'adresse (voir figures 2 A 2 E) En raison de l'action du générateur DOB 45, des
instructions sont travaillées aussi uniformément que possi-
ble et,de plus, D 2 est disponible pendant plusieurs cré-
neaux.
L'unité logique arithmétique peut effectuer des opérations dépassant un cycle unique Le signal IRSO et
la nature de l'instruction peuvent être utilisés pour inhi-
ber une seconde exécution de IR 3 Il est possible d'obtenir de l'élasticité en utilisant le retard du registre I. Le tableau Il montre à titre illustratif des formats d'instructions La partie supérieure de ce tableau montre une instruction de type II L'instruction représentée est une instruction de lecture indirecte Le premier segment
de l'instruction indique le type d'extraction de donnée.
Le deuxième segment indique le déplacement à ajouter aux contacts du registre d'index Le troisième segment donne lo la désignation du registre Ces trois segments constituent la règle extraction opérande Le quatrième segment donne
l'opération à exécuter.
La partie inférieure du tableau Il montre à titre illustratif une instruction de type I Le premier segment d'information binaire indique qu'un contenu de registre particulier doit être utilisé comme opérande Il convient
de noter qu'une extraction de registre n'exige pas un cy-
cle de bus Le deuxième segment indique l'identité du registre et le troisième segment indique une opération à exécuter Par exemple, l'instruction deffandée peut être "prendre le contenu d'un registre et l'additionner au contenu de l'accumulateur" Un avantage de l'architecture particulière de l'invention est la souplesse d'utilisation des positions
de bits des;instructions, c'est-à-dire l'absence des cri-
tères rigides imposés aux formats des instructions.
TABLEAU Il
INSTRUCTION DE TYPE II LECTURE INDIRECTE ET REGISTRE D'INDEX
OPERATIONS,
LECTURE, DEPLACEMENT t DESIGNATION 4 MVP AO>
INDIRECTE' A ADDITIONNER ' REGISTRE (OPERATION)
AU REG INDEX
INSTRUCTION DE TYPE I OPERATION LOCALE
OPERATION LOCALE t @GISTRE A SELECT I <ADD AO > r INTERNE (OPERATION)
Il va de soi que de nombreuses modifications peu-
vent être apportées au microprocesseur décrit et repré-
senté sans sortir du cadre de l'invention.

Claims (4)

REVENDICATIONS
1 Microprocesseur comprenant une mémoire ( 19) qui peut être adressée par un compteur ( 15) d'instruction ou une adresse de donnée et qui réagit à ce compteur ou à cette adresse pour produire, respectivement, une instruction ou un mot de données cette instruction contenant une information indiquant une opération à exécuter par une
unité arithmétique ( 41), les données pouvant être travail-
lées par cette unité arithmétique, le processeur étant caractérisé en ce qu'il comporte des moyens ( 45) destinés à imbriquer des adresses d'instruction et des adresses
de données présentées à la mémoire et à imbriquer des ins-
tructions et des données sortant de la mémoire afin qu'il n'apparaisse aucun créneau de synchronisation perdu et que
des ordres et des données correspondantes arrivent à l'ins-
tant d'exécution à l'unité logique arithmétique.
2 Procédé pour imbriquer l'accès à la mémoire d'un microprocesseur, caractérisé en ce qu'il consiste à créer un créneau de synchronisation pour une instruction N, Si cela est nécessaire, immédiatement après l'extraction d'une
instruction N + K, K étant déterminé par le retard du pipe-
line, et à extraire une instruction immédiatement après
chaque créneau de donnée.
3 Microprocesseur caractérisé en ce qu'il comporte un élément ( 35) destiné à tamponner des adresses de données
vers une mémoire ( 19), des moyens destinés à mémoriser plu-
sieurs instructions sortant de ladite mémoire et des moyens ( 45) destinés à commander l'élément de tamponnement et des moyens de mémorisation, ainsi que l'application d'adresses
d'instructions et d'adresses de données à ladite mémoire.
4 Microprocesseur caractérisé en ce qu'il comporte
une mémoire ( 19) emmagasinant des données et des instruc-
tions, un compteur ( 153 d'instruction destiné à transmettre des adresses d'instruction à ladite mémoire, des moyens destinés à transmettre des adresses de mémoire à ladite mémoire, des moyens ( 41) sensibles aux instructions et qui effectuent des opérations arithmétiques sur les données en réponse à une instruction, des moyens destinés à emmagasiner
2513-410
plusieurs instructions pour les transmettre aux moyens effectuant des opérations arithmétiques, et des moyens ( 45) destinés à commander si une adresse de donnée ou une
adresse d'instruction est appliquée à la mémoire et à com-
mander des moyens d'emmagasinage d'instructions pour syn-
chroniser l'arrivée d'instructions avec les données appro-
priées aux moyens effectuant une opération arithmétique.
FR8215793A 1981-09-21 1982-09-20 Microprocesseur et procede pour imbriquer les acces en memoire de ce microprocesseur Expired FR2513410B1 (fr)

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
US06/304,017 US4541045A (en) 1981-09-21 1981-09-21 Microprocessor architecture employing efficient operand and instruction addressing

Publications (2)

Publication Number Publication Date
FR2513410A1 true FR2513410A1 (fr) 1983-03-25
FR2513410B1 FR2513410B1 (fr) 1988-10-07

Family

ID=23174672

Family Applications (1)

Application Number Title Priority Date Filing Date
FR8215793A Expired FR2513410B1 (fr) 1981-09-21 1982-09-20 Microprocesseur et procede pour imbriquer les acces en memoire de ce microprocesseur

Country Status (11)

Country Link
US (1) US4541045A (fr)
JP (1) JPS58501560A (fr)
KR (1) KR880001170B1 (fr)
AR (1) AR230712A1 (fr)
BE (1) BE894457A (fr)
CA (1) CA1180455A (fr)
FR (1) FR2513410B1 (fr)
GB (1) GB2116339B (fr)
IT (1) IT1155933B (fr)
NZ (1) NZ201809A (fr)
WO (1) WO1983001133A1 (fr)

Cited By (1)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
FR2575563A1 (fr) * 1984-12-29 1986-07-04 Sony Corp Procede d'exploitation d'un microcalculateur a cycle d'instruction perfectionne

Families Citing this family (21)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US4719592A (en) * 1982-11-20 1988-01-12 International Computers Limited Sequence generator
US4613935A (en) * 1983-02-02 1986-09-23 Couleur John F Method and apparatus for pipe line processing with a single arithmetic logic unit
JPS6282402A (ja) * 1985-10-07 1987-04-15 Toshiba Corp シ−ケンス制御装置
JPS62152043A (ja) * 1985-12-26 1987-07-07 Nec Corp 命令コ−ドアクセス制御方式
WO1987004541A1 (fr) * 1986-01-27 1987-07-30 Fujitsu Limited Unite centrale
US4780883A (en) * 1986-06-26 1988-10-25 Racal Data Communications Inc. Data modem with adaptive synchronized speed change
US4797817A (en) * 1986-12-10 1989-01-10 Ncr Corporation Single cycle store operations in a virtual memory
JP2695157B2 (ja) * 1986-12-29 1997-12-24 松下電器産業株式会社 可変パイプラインプロセッサ
US5251322A (en) * 1987-08-13 1993-10-05 Digital Equipment Corporation Method of operating a computer graphics system including asynchronously traversing its nodes
US5097411A (en) * 1987-08-13 1992-03-17 Digital Equipment Corporation Graphics workstation for creating graphics data structure which are stored retrieved and displayed by a graphics subsystem for competing programs
US5235684A (en) * 1988-06-30 1993-08-10 Wang Laboratories, Inc. System bus having multiplexed command/id and data
US5123097A (en) * 1989-01-05 1992-06-16 Bull Hn Information Systems Inc. Apparatus and method for simultaneous execution of a write instruction and a succeeding read instruction in a data processing system with a store through cache strategy
US5109497A (en) * 1989-01-27 1992-04-28 Hughes Aircraft Company Arithmetic element controller for controlling data, control and micro store memories
US5440749A (en) * 1989-08-03 1995-08-08 Nanotronics Corporation High performance, low cost microprocessor architecture
US7124281B1 (en) * 2000-09-21 2006-10-17 Freescale Semiconductor, Inc. Processing system having sequential address indicator signals
US6970985B2 (en) 2002-07-09 2005-11-29 Bluerisc Inc. Statically speculative memory accessing
US20050114850A1 (en) 2003-10-29 2005-05-26 Saurabh Chheda Energy-focused re-compilation of executables and hardware mechanisms based on compiler-architecture interaction and compiler-inserted control
US7996671B2 (en) 2003-11-17 2011-08-09 Bluerisc Inc. Security of program executables and microprocessors based on compiler-architecture interaction
US8607209B2 (en) 2004-02-04 2013-12-10 Bluerisc Inc. Energy-focused compiler-assisted branch prediction
US7430642B2 (en) * 2005-06-10 2008-09-30 Freescale Semiconductor, Inc. System and method for unified cache access using sequential instruction information
US20080126766A1 (en) 2006-11-03 2008-05-29 Saurabh Chheda Securing microprocessors against information leakage and physical tampering

Citations (1)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
GB2047928A (en) * 1979-04-24 1980-12-03 Tektronix Inc Means and Method Within a Digital Processing System for Prefetching both Operation Codes and Operands

Family Cites Families (36)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
NL276236A (fr) * 1961-03-24
US3409879A (en) * 1966-03-30 1968-11-05 Bell Telephone Labor Inc Computer organization employing plural operand storage
US3449724A (en) * 1966-09-12 1969-06-10 Ibm Control system for interleave memory
US3462744A (en) * 1966-09-28 1969-08-19 Ibm Execution unit with a common operand and resulting bussing system
US3699530A (en) * 1970-12-30 1972-10-17 Ibm Input/output system with dedicated channel buffering
US3820079A (en) * 1971-11-01 1974-06-25 Hewlett Packard Co Bus oriented,modular,multiprocessing computer
GB1448866A (en) * 1973-04-13 1976-09-08 Int Computers Ltd Microprogrammed data processing systems
US4050058A (en) * 1973-12-26 1977-09-20 Xerox Corporation Microprocessor with parallel operation
US3906453A (en) * 1974-03-27 1975-09-16 Victor Comptometer Corp Care memory control circuit
US4153932A (en) * 1974-03-29 1979-05-08 Massachusetts Institute Of Technology Data processing apparatus for highly parallel execution of stored programs
JPS605978B2 (ja) * 1974-09-12 1985-02-15 富士通株式会社 記憶装置のアクセス制御方式
CA1059639A (fr) * 1975-03-26 1979-07-31 Garvin W. Patterson Systeme de prise en charge anticipee des instructions fonctionnant en pipe line
US4041461A (en) * 1975-07-25 1977-08-09 International Business Machines Corporation Signal analyzer system
JPS6055849B2 (ja) * 1975-12-04 1985-12-06 株式会社東芝 命令制御方式
DE2555963C2 (de) * 1975-12-12 1982-10-28 Ibm Deutschland Gmbh, 7000 Stuttgart Einrichtung zur Funktionsmodifizierung
GB1506972A (en) * 1976-02-06 1978-04-12 Int Computers Ltd Data processing systems
US4062058A (en) * 1976-02-13 1977-12-06 The United States Of America As Represented By The Secretary Of The Navy Next address subprocessor
US4095265A (en) * 1976-06-07 1978-06-13 International Business Machines Corporation Memory control structure for a pipelined mini-processor system
GB1527289A (en) * 1976-08-17 1978-10-04 Int Computers Ltd Data processing systems
US4313160A (en) * 1976-08-17 1982-01-26 Computer Automation, Inc. Distributed input/output controller system
US4089052A (en) * 1976-12-13 1978-05-09 Data General Corporation Data processing system
US4065810A (en) * 1977-01-26 1977-12-27 International Business Machines Corporation Data transfer system
US4149245A (en) * 1977-06-09 1979-04-10 International Business Machines Corporation High speed store request processing control
US4210960A (en) * 1977-09-02 1980-07-01 Sperry Corporation Digital computer with overlapped operation utilizing conditional control to minimize time losses
JPS5454536A (en) * 1977-10-08 1979-04-28 Fujitsu Ltd Data processor
US4164787A (en) * 1977-11-09 1979-08-14 Bell Telephone Laboratories, Incorporated Multiple microprocessor intercommunication arrangement
US4298933A (en) * 1978-07-08 1981-11-03 Tokyo Shibaura Denki Kabushiki Kaisha Data-processing device including means to suppress the execution of unnecessary instructions
JPS6024985B2 (ja) * 1978-08-31 1985-06-15 富士通株式会社 デ−タ処理方式
US4236205A (en) * 1978-10-23 1980-11-25 International Business Machines Corporation Access-time reduction control circuit and process for digital storage devices
US4320453A (en) * 1978-11-02 1982-03-16 Digital House, Ltd. Dual sequencer microprocessor
US4325120A (en) * 1978-12-21 1982-04-13 Intel Corporation Data processing system
US4282572A (en) * 1979-01-15 1981-08-04 Ncr Corporation Multiprocessor memory access system
NL7906416A (nl) * 1979-08-27 1981-03-03 Philips Nv Rekenmachinesysteem, waarbij het programmageheugen geschikt is om doorlopen te worden waarbij niet tot een instruktie behorende gegevens apart gedetekteerd worden.
US4298936A (en) * 1979-11-15 1981-11-03 Analogic Corporation Array Processor
US4373182A (en) * 1980-08-19 1983-02-08 Sperry Corporation Indirect address computation circuit
US4399507A (en) * 1981-06-30 1983-08-16 Ibm Corporation Instruction address stack in the data memory of an instruction-pipelined processor

Patent Citations (1)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
GB2047928A (en) * 1979-04-24 1980-12-03 Tektronix Inc Means and Method Within a Digital Processing System for Prefetching both Operation Codes and Operands

Non-Patent Citations (1)

* Cited by examiner, † Cited by third party
Title
IBM TECHNICAL DISCLOSURE BULLETIN, vol. 20, no. 7, décembre 1977, pages 2547-2548, New York, US; D.K. HARDIN: "Variable I-fetch" *

Cited By (1)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
FR2575563A1 (fr) * 1984-12-29 1986-07-04 Sony Corp Procede d'exploitation d'un microcalculateur a cycle d'instruction perfectionne

Also Published As

Publication number Publication date
CA1180455A (fr) 1985-01-02
KR880001170B1 (ko) 1988-07-02
AR230712A1 (es) 1984-05-31
IT8268114A0 (it) 1982-09-20
GB2116339A (en) 1983-09-21
NZ201809A (en) 1985-12-13
GB8312020D0 (en) 1983-06-08
US4541045A (en) 1985-09-10
IT1155933B (it) 1987-01-28
JPS58501560A (ja) 1983-09-16
GB2116339B (en) 1985-11-20
FR2513410B1 (fr) 1988-10-07
KR840001728A (ko) 1984-05-16
BE894457A (fr) 1983-01-17
WO1983001133A1 (fr) 1983-03-31

Similar Documents

Publication Publication Date Title
FR2513410A1 (fr) Microprocesseur et procede pour imbriquer les acces en memoire de ce microprocesseur
EP0029131B1 (fr) Procédé de commande de l&#39;affectation de ressources dans un système comportant plusieurs processeurs à fonctionnement simultané
FR2645663A1 (fr) Procedes et circuits pour gerer une pile en memoire
FR2667706A1 (fr) Antememoire hierarchique a circuits integres.
EP0434483B1 (fr) Processeur à plusieurs unités de traitement microprogrammées
CH629319A5 (fr) Installation de traitement de donnees.
EP0150535B1 (fr) Processeur pour traiter des données en fonction d&#39;instructions provenant d&#39;une mémoire-programme
FR2588980A1 (fr) Processeur de traitement de signal numerique comportant plusieurs multiplicateurs
US5434818A (en) Four port RAM cell
FR2583540A1 (fr) Gestion de memoire pour systeme a microprocesseur.
FR2827684A1 (fr) Controleur de memoire presentant une capacite d&#39;ecriture 1x/mx
EP0030504A1 (fr) Dispositif de synchronisation et d&#39;affectation de processus entre plusieurs processeurs dans un système de traitement de l&#39;information
FR2602070A1 (fr) Systeme et procede d&#39;acces a une memoire d&#39;ordinateur.
FR2539239A1 (fr) Systeme d&#39;ordinateur a taches multiples a gestion de memoire
FR2480458A1 (fr) Dispositif pour transferer des informations entre des unites d&#39;un systeme de traitement de donnees
FR2497374A1 (fr) Machine informatique pour traitement multitache
CH629320A5 (fr) Installation de traitement de donnees.
FR2528195A1 (fr) Systeme de communication entre ordinateurs
FR2480459A1 (fr) Systeme de traitement de donnees a un dispositif d&#39;appariement d&#39;adresses de memoire de controle
EP0171856B1 (fr) Processeur pour le traitement de signal et structure de multitraitement hiérarchisée comportant au moins un tel processeur
EP0155731B1 (fr) Dispositif d&#39;adressage pour fournir à une mémoire des codes d&#39;adresse
FR2645986A1 (fr) Procede pour accelerer les acces memoire d&#39;un systeme informatique et systeme pour la mise en oeuvre du procede
FR2632092A1 (fr) Circuit de conditionnement d&#39;ecriture d&#39;antememoire retarde pour un systeme de microcalculateur a bus double comprenant une unite 80386 et une unite 82385
FR2569288A1 (fr) Dispositif de calcul d&#39;adresse pour un appareil de traitement numerique
FR2464521A1 (fr) Systeme de machine a calculer dans lequel la memoire de programme peut etre parcourue et des donnees qui n&#39;appartiennent pas a une instruction sont detectees separement

Legal Events

Date Code Title Description
ST Notification of lapse