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 PDFInfo
- 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
Links
- 230000015654 memory Effects 0.000 title claims abstract description 32
- 238000000034 method Methods 0.000 title claims description 8
- 238000000605 extraction Methods 0.000 claims description 14
- 230000004044 response Effects 0.000 claims description 5
- 230000003139 buffering effect Effects 0.000 claims description 2
- 230000009471 action Effects 0.000 description 6
- 238000013075 data extraction Methods 0.000 description 5
- 230000008901 benefit Effects 0.000 description 4
- 230000001934 delay Effects 0.000 description 4
- 238000010586 diagram Methods 0.000 description 4
- 230000006870 function Effects 0.000 description 3
- 238000012163 sequencing technique Methods 0.000 description 2
- 241000252210 Cyprinidae Species 0.000 description 1
- 230000008859 change Effects 0.000 description 1
- 230000000295 complement effect Effects 0.000 description 1
- 230000001186 cumulative effect Effects 0.000 description 1
- 230000003111 delayed effect Effects 0.000 description 1
- 238000006073 displacement reaction Methods 0.000 description 1
- 238000009432 framing Methods 0.000 description 1
- 238000003780 insertion Methods 0.000 description 1
- 230000037431 insertion Effects 0.000 description 1
- 230000004048 modification Effects 0.000 description 1
- 238000012986 modification Methods 0.000 description 1
- 238000011369 optimal treatment Methods 0.000 description 1
- 230000008520 organization Effects 0.000 description 1
- 238000011282 treatment Methods 0.000 description 1
- 230000001960 triggered effect Effects 0.000 description 1
- 239000002699 waste material Substances 0.000 description 1
Classifications
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F9/00—Arrangements for program control, e.g. control units
- G06F9/06—Arrangements for program control, e.g. control units using stored programs, i.e. using an internal store of processing equipment to receive or retain programs
- G06F9/30—Arrangements for executing machine instructions, e.g. instruction decode
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F9/00—Arrangements for program control, e.g. control units
- G06F9/06—Arrangements for program control, e.g. control units using stored programs, i.e. using an internal store of processing equipment to receive or retain programs
- G06F9/30—Arrangements for executing machine instructions, e.g. instruction decode
- G06F9/34—Addressing or accessing the instruction operand or the result ; Formation of operand address; Addressing modes
- G06F9/355—Indexed addressing
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F13/00—Interconnection of, or transfer of information or other signals between, memories, input/output devices or central processing units
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F9/00—Arrangements for program control, e.g. control units
- G06F9/06—Arrangements for program control, e.g. control units using stored programs, i.e. using an internal store of processing equipment to receive or retain programs
- G06F9/30—Arrangements for executing machine instructions, e.g. instruction decode
- G06F9/38—Concurrent instruction execution, e.g. pipeline or look ahead
- G06F9/3802—Instruction prefetching
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F9/00—Arrangements for program control, e.g. control units
- G06F9/06—Arrangements for program control, e.g. control units using stored programs, i.e. using an internal store of processing equipment to receive or retain programs
- G06F9/30—Arrangements for executing machine instructions, e.g. instruction decode
- G06F9/38—Concurrent instruction execution, e.g. pipeline or look ahead
- G06F9/3824—Operand accessing
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F9/00—Arrangements for program control, e.g. control units
- G06F9/06—Arrangements for program control, e.g. control units using stored programs, i.e. using an internal store of processing equipment to receive or retain programs
- G06F9/30—Arrangements for executing machine instructions, e.g. instruction decode
- G06F9/38—Concurrent instruction execution, e.g. pipeline or look ahead
- G06F9/3867—Concurrent instruction execution, e.g. pipeline or look ahead using instruction pipelines
Landscapes
- Engineering & Computer Science (AREA)
- Theoretical Computer Science (AREA)
- Software Systems (AREA)
- Physics & Mathematics (AREA)
- General Engineering & Computer Science (AREA)
- General Physics & Mathematics (AREA)
- Executing Machine-Instructions (AREA)
- Advance Control (AREA)
- Complex Calculations (AREA)
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)
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.
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)
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)
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 | 命令コ−ドアクセス制御方式 |
DE3775299D1 (de) * | 1986-01-27 | 1992-01-30 | Fujitsu Ltd | Zentrale recheneinheit. |
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 | 松下電器産業株式会社 | 可変パイプラインプロセッサ |
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 |
US5251322A (en) * | 1987-08-13 | 1993-10-05 | Digital Equipment Corporation | Method of operating a computer graphics system including asynchronously traversing its nodes |
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 |
US7493607B2 (en) | 2002-07-09 | 2009-02-17 | Bluerisc Inc. | Statically speculative compilation and execution |
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)
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)
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 |
US3449723A (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 |
-
1981
- 1981-09-21 US US06/304,017 patent/US4541045A/en not_active Expired - Lifetime
-
1982
- 1982-09-03 NZ NZ201809A patent/NZ201809A/en unknown
- 1982-09-07 CA CA000410913A patent/CA1180455A/fr not_active Expired
- 1982-09-17 JP JP57503026A patent/JPS58501560A/ja active Pending
- 1982-09-17 WO PCT/US1982/001264 patent/WO1983001133A1/fr active Application Filing
- 1982-09-17 GB GB08312020A patent/GB2116339B/en not_active Expired
- 1982-09-20 IT IT68114/82A patent/IT1155933B/it active
- 1982-09-20 FR FR8215793A patent/FR2513410B1/fr not_active Expired
- 1982-09-21 KR KR8204268A patent/KR880001170B1/ko active
- 1982-09-21 BE BE0/209066A patent/BE894457A/fr unknown
- 1982-09-21 AR AR290717A patent/AR230712A1/es active
Patent Citations (1)
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)
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)
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 |
---|---|
JPS58501560A (ja) | 1983-09-16 |
AR230712A1 (es) | 1984-05-31 |
BE894457A (fr) | 1983-01-17 |
GB8312020D0 (en) | 1983-06-08 |
KR880001170B1 (ko) | 1988-07-02 |
WO1983001133A1 (fr) | 1983-03-31 |
CA1180455A (fr) | 1985-01-02 |
US4541045A (en) | 1985-09-10 |
KR840001728A (ko) | 1984-05-16 |
FR2513410B1 (fr) | 1988-10-07 |
GB2116339B (en) | 1985-11-20 |
IT1155933B (it) | 1987-01-28 |
NZ201809A (en) | 1985-12-13 |
GB2116339A (en) | 1983-09-21 |
IT8268114A0 (it) | 1982-09-20 |
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'affectation de ressources dans un système comportant plusieurs processeurs à fonctionnement simultané | |
FR2645663A1 (fr) | Procedes et circuits pour gerer une pile en memoire | |
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'instructions provenant d'une mémoire-programme | |
FR2588980A1 (fr) | Processeur de traitement de signal numerique comportant plusieurs multiplicateurs | |
FR2583540A1 (fr) | Gestion de memoire pour systeme a microprocesseur. | |
FR2827684A1 (fr) | Controleur de memoire presentant une capacite d'ecriture 1x/mx | |
FR2522232A1 (fr) | Dispositif de traitement de signaux numeriques | |
CH616252A5 (fr) | ||
EP0030504A1 (fr) | Dispositif de synchronisation et d'affectation de processus entre plusieurs processeurs dans un système de traitement de l'information | |
FR2602070A1 (fr) | Systeme et procede d'acces a une memoire d'ordinateur. | |
FR2539239A1 (fr) | Systeme d'ordinateur a taches multiples a gestion de memoire | |
FR2480458A1 (fr) | Dispositif pour transferer des informations entre des unites d'un systeme de traitement de donnees | |
FR2497374A1 (fr) | Machine informatique pour traitement multitache | |
FR2528195A1 (fr) | Systeme de communication entre ordinateurs | |
FR2480459A1 (fr) | Systeme de traitement de donnees a un dispositif d'appariement d'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'adressage pour fournir à une mémoire des codes d'adresse | |
FR2645986A1 (fr) | Procede pour accelerer les acces memoire d'un systeme informatique et systeme pour la mise en oeuvre du procede | |
FR2632092A1 (fr) | Circuit de conditionnement d'ecriture d'antememoire retarde pour un systeme de microcalculateur a bus double comprenant une unite 80386 et une unite 82385 | |
FR2569288A1 (fr) | Dispositif de calcul d'adresse pour un appareil de traitement numerique | |
EP0435718B1 (fr) | Processeur à plusieurs unités microprogrammées avec mécanisme d'exécution anticipée des instructions | |
EP1748355B1 (fr) | Dispositif d'interfaçage unidirectionnel de type FIFO entre un bloc maître et un bloc esclave et bloc esclave correspondant |
Legal Events
Date | Code | Title | Description |
---|---|---|---|
ST | Notification of lapse |