FR2575563A1 - Procede d'exploitation d'un microcalculateur a cycle d'instruction perfectionne - Google Patents
Procede d'exploitation d'un microcalculateur a cycle d'instruction perfectionne Download PDFInfo
- Publication number
- FR2575563A1 FR2575563A1 FR8519331A FR8519331A FR2575563A1 FR 2575563 A1 FR2575563 A1 FR 2575563A1 FR 8519331 A FR8519331 A FR 8519331A FR 8519331 A FR8519331 A FR 8519331A FR 2575563 A1 FR2575563 A1 FR 2575563A1
- Authority
- FR
- France
- Prior art keywords
- instruction
- cycle
- byte
- code
- operand
- 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
- 238000000034 method Methods 0.000 title claims description 32
- 230000008569 process Effects 0.000 title description 20
- 238000000605 extraction Methods 0.000 claims abstract description 35
- 238000011017 operating method Methods 0.000 claims 1
- PWPJGUXAGUPAHP-UHFFFAOYSA-N lufenuron Chemical compound C1=C(Cl)C(OC(F)(F)C(C(F)(F)F)F)=CC(Cl)=C1NC(=O)NC(=O)C1=C(F)C=CC=C1F PWPJGUXAGUPAHP-UHFFFAOYSA-N 0.000 abstract 2
- 230000004044 response Effects 0.000 description 11
- 238000010586 diagram Methods 0.000 description 5
- 230000005669 field effect Effects 0.000 description 3
- 101100087530 Caenorhabditis elegans rom-1 gene Proteins 0.000 description 2
- 101100305983 Mus musculus Rom1 gene Proteins 0.000 description 2
- 230000006835 compression Effects 0.000 description 2
- 238000007906 compression Methods 0.000 description 2
- 230000009467 reduction Effects 0.000 description 2
- 238000007796 conventional method Methods 0.000 description 1
- 238000012986 modification Methods 0.000 description 1
- 230000004048 modification Effects 0.000 description 1
- 238000012545 processing Methods 0.000 description 1
- 238000012546 transfer Methods 0.000 description 1
- 230000001960 triggered effect Effects 0.000 description 1
Classifications
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F15/00—Digital computers in general; Data processing equipment in general
-
- 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/32—Address formation of the next instruction, e.g. by incrementing the instruction counter
- G06F9/321—Program or instruction counter, e.g. incrementing
-
- 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
- G06F9/383—Operand prefetching
Landscapes
- Engineering & Computer Science (AREA)
- Theoretical Computer Science (AREA)
- Software Systems (AREA)
- Physics & Mathematics (AREA)
- General Engineering & Computer Science (AREA)
- General Physics & Mathematics (AREA)
- Computer Hardware Design (AREA)
- Executing Machine-Instructions (AREA)
- Advance Control (AREA)
Abstract
UN MICROCALCULATEUR COMPORTE UN DECODEUR D'INSTRUCTION 4 ET UN COMPTEUR DE PROGRAMME 5. LE DECODEUR D'INSTRUCTION DECODE DES INSTRUCTIONS EXTRAITES ET DELIVRE UN SIGNAL DE COMMANDE ORDONNANT L'EXECUTION DE L'INSTRUCTION EXTRAITE. LE SIGNAL DE COMMANDE VENANT DU DECODEUR D'INSTRUCTION COMPORTE UNE COMPOSANTE COMMANDANT DES CYCLES D'INSTRUCTION QUI DECLENCHE UN CYCLE D'EXTRACTION AU DEBUT DE CHAQUE CYCLE D'INSTRUCTION AFIN D'EXTRAIRE L'OPERANDE RELATIF A L'INSTRUCTION EN COURS D'EXECUTION ET A MI-CHEMIN DE CHAQUE CYCLE D'INSTRUCTION AFIN D'EXTRAIRE LE CODE OP RELATIF A L'INSTRUCTION SUIVANTE. LE COMPTEUR DE PROGRAMME REPOND AU DECLENCHEMENT DE CHAQUE CYCLE D'EXTRACTION EN INCREMENTANT SA VALEUR DE COMPTAGE DE MANIERE A MAINTENIR CETTE DERNIERE COHERENTE AVEC L'ADRESSE A LAQUELLE IL EST DONNE ACCES LORS DE CHAQUE CYCLE D'EXTRACTION.
Description
La présente invention concerne de façon générale un microcalculateur.
Plus spécialement, elle concerne un procédé d'exploitation d'un microcalculateur à un cycle d'instruction perfectionné, qui peut aider à accélérer le traitement dans le microcalcuLateur. Les microcalculateurs monolithiques modernes utilisent souvent une architecture en pipeline qui permet que des cycles d'extraction et des cycles d'exécution d'instruction se chevauchent. Dans le cycle d'extraction, des instructions sont extraites de la mémoire. Chaque instruction est constituée par un code opération (code OP) qui est emmagasiné dans une mémoire morte, par exemple une mémoire morte programmable (PROM), et un opérande, également emmagasiné dans une ROM, qui peut pointer
une valeur variable emmagasiné dans une mémoire vive (RAMl.
Dans les architectures en pipeline classiques, l'extraction, ou prise en charge,du code OP et l'extraction de l'opérande sont effectuées au cours de cycles d'exécution d'instruction différents, oui sont ci-après appelés "cycles d'instruction". Par exemple, pour extraire une instruction de 2 bits contenant un code OP de 1 bit et un opérande de 1 bit dans un microcalculateur de 4 bits, il faut deux cycles d'instruction. Ainsi, dans ce cas,
chaque cycle d'instruction prend trois cycles d'horloge machine.
Cette architecture en pipeline classique n'est pas vraiment efficace.
En général, le cycle de prise en charge, ou extrac-
tion, servant à l'extraction de codes OP ou d'opérandes est plus court que le cycle d'instruction. Ceci signifie qu'il y a une durée du cycle d'exécution pendant laquelle aucune extraction n'est effectuée. Si la composante d'instruction suivante Deut être extraite pendant cette durée, il devient possible
d'abréger le temps machine.
Ainsi, c'est un but de l'invention de proposer un microcalculateur présentant un cycle d'extraction amélioré
qui abrège le cycle d'instruction.
Pour réaliser les buts ci-dessus énoncés, ainsi que d'autres buts, un microcalculateur selon l'invention comporte un décodeur d'instruction et un compteur de programme. Le décodeur d'instruction décode des instructions extraites et délivre un signal de commande ordonnant L'exécution de l'instruction prise extraite. Le signal de commande venant du décodeur d'instruction comporte une composante qui commande les cycles d'extraction, LaquelLe déclenche un cycle d'extraction au début de chaque cycle d'instruction afin d'extraire l'opérande relatif à l'instruction pendant le cours de son exécution et a mi-durée de chaque cycle d'instruction afin d'extraire le code OP
relatif à l'instruction suivante.
Le compteur de programme répond au déclenchement de chaque cycle d'extraction en incrémentant sa valeur de comptage de façon à maintenir cette dernière cohérente avec l'adresse à laquelle il est accédé pendant chaque cycle d'extraction.
Selon un aspect de l'invention, un procédé d'exploi-
tation d'un microprocesseur ayant une architecture en pipeline, qui permet que les données d'instruction relatives à un cycte d'exécution d'instruction ultérieur soient extraites de la mémoire pendant un cycle d'instruction en cours, comprend les opérations suivantes: - préprogrammer des codes d'opération d'instruction (code OP) pour des instructions demandant plus d'unbyte de données d'instruction avec une information supplémentaire demandant une extraction,comprimée dans le temps,de données d'instruction; et - extraire plus d'unbytede données d'instruction de la mémoire pendant Le cycle d'instruction faisant immédiatement
suite à une demande d'extraction comprimée dans le temps.
La donnée d'instruction est constituée d'unbyte de code OP et d'unbyted'opérande, et lebytedu code OP est extrait immédiatement avant le début d'un cycle d'instruction, l'opération d'extraction comprenant l'opération qui consiste à extraire le Lytede l'opérande associé aubytede code OP extrait au même instant que le début du cycle d'instruction. Selon une autre possibilité, la donnée d'instruction consiste en unbytede code OP et deux bytesd'opérande, et lebytedu code OP est extrait immédiatement avant le début d'une première instruction, l'opération d'extraction comprenant les opérations consistant à extraire un premier byte d'opérande associé au bytede code OP extrait au moment du début du premier cycle d'instruction et à extraire un deuxième byted'opérande associé au premier byte d'opérande pendant le premier cycle d'instruction faisant suite à l'extraction du premier byte d'opérande. Le procédé comprend en outre l'opération consistant à exécuter l'instruction spécifiée par les bytes du code OP et de l'opérande dans le cycle d'instruction immédiatement avant lequel
le byte du code OP a été extrait.
La description, conçue à titre d'illustrations de
l'invention, vise à donner une meilleure illustration de ses caractéristiques et avantages; elle s'appuie sur les dessins annexés, parmi lesquels: - les figures 1(A) et 1(B) sont des diagrammes temporels montrant respectivement les cycles d'instruction selon la technique antérieure et selon l'invention pour l'exécution d'instructions de 2 bytes,; - les figures 2(A) et 2(B) sont des diagrammes temporels montrant respectivement des cycles d'instruction selon la technique antérieure et selon l'invention pour l'exécution d'instructions de 3 bytes; - la figure 3 est un schéma de principe simplifié d'un système de microcalculateur selon l'invention;
- la figure 4 compare des diagrammes temporels de-
procédures classique et préférée d'exécution d'instruction, o (B) montre la valeur du compteur de programme pendant l'exécution d'instructions de 1 byte et (C) montre cette même valeur pour des instructions de 2 bytes; les figures 5(A) et 5(B) illustrent les durées de cycles d'instructions associés à l'exécution d'instructions de 2 bytes et de 3 bytes selon les procédés de la technique antérieure et de l'invention; et - les figures 6(A) et 6(B) sont des illustrations de décodeurs d'instruction selon la technique antérieure et selon
l'invention.
Onr se repporte maintenant aux dessins, en particulier aux figures 1(A) et 1(B), o les idées générales et fondamentales du procédé préféré selon l'invention'sont présentées en opposition
avec un procédé classique. La figure 1(A) montre un procédé typi-
que de la technique antérieure, tandis que la figure 1(B) montre
le procédé préféré selon l'invention. Les deux diagrammes s'appli-
quent à l'exécution d'une instruction de deux bytes qui comportent un code d'opération (code OP) de huit bits, tels que LDA, et un opérande de huit bits qui, dans ce cas,est un code d'adresse identifiant l'adresse de la RAM à laquelle on doit accéder. Dans l'exemple représenté, L'instruction ordonne le transfert ou la
charge du contenu d'une adresse particulière de la RAM dans l'accu-
mulateur. Dans le procédé classique de la figure 1(A), le code OP LDA relatif au deuxième cycle d'instruction est extrait avant
le début du premier cycle d'instruction. Dans le cycle d'instruc-
tion suivant coïncidant avec le début du premier cycle d'instruc-
tion, la donnée se trouvant à l'adresse de la RAM idenfiée par l'opérande est extraite. La dpnnée extraite dans le cycle d'extraction commençant en même temps que le premier cycle d'instruction et le code OP LDA extrait avant le premier cycle
d'instruction sont utilisés dans le deuxième cycle d'instruction.
Dans Le processus classique ci-dessus présenté, un compteur de programme est incrémenté d'une unité à la fin de chaque cycle d'instruction. Ainsi, au début du cycle
d'extraction du codeOP, le compteur de programmes a pour -valeur PC.
Au début du premier cycle d'instruction, le compteur de programmes est incrémenté de 1, si bien que la valeur de comptage devient PC + 1. De la même façon, le compteur de programmes est incrémenté d'une unité au début du deuxième cycle d'instruction, si bien
que la valeur de comptage devient PC + 2.
Dans le procédé selon l'invention présenté sur la figure 1(B), Le code OP du premier cycle d'instruction est extrait avant te début du premier cycle d'instruction, comme dans le processus précédent. Toutefois, ce code OP de 2 bytes comporte une demande visant à comprimer le cycle d'extraction. Pendant La durée de M2 à M3 du premier cycle d'instruction, La donnée se trouvant à l'adresse de la RAM identifiée par l'opérande de la RAM est extraite. La donnée d'opérande extraite pendant la durée M2 à M3 du premier cycle d'instruction et le code OP extrait avant Le premier cycle d'instruction sont utilisés pour exécuter le premier cycle d'instruction. Dans le procédé seLon l'invention, la donnée se trouvant à l'adresse de La RAM qui est extraite pendant La durée M2 à M3 n'est pas nécessaire à L'exécution de L'instruction du
premier cycle d'instruction jusqu'à la durée M0 à M1 suivante.
Pendant le processus ci-dessus exposé, Le compteur de programme est incrémenté d'une unité à la fin de chaque cycle d'instruction. Le compteur de programme est également incrémenté d'une unité en réponse à chaque impulsion d'horloge M3. En d'autres termes, à la fin du cycle d'extraction relatif au code OP,
la valeur du compteur de programme est incrémenté de PC à PC + 1.
En réponse-à l'impulsion d'horloge M3 du premier cycle d'instruction, le compteur de programme est incrémenté de 1, si bien que la valeur de comptage passe de PC + 1 à PC + 2. Ensuite, le compteur de programme est de nouveau incrémenté de 1, en réponse à une impulsion d'horloge M1 apparaissant à la fin du premier cycle d'instruction.
Pendant la période M0 à M1 du premier cycle d'instruc-
tion, le code OP relatif au cycle d'instruction suivant peut être extrait. Ainsi, comme on l'aura compris, il suffit d'un seul cycle d'instruction pour exécuter l'instruction de 2 bytes
dans le processus préféré selon l'invention.
Les figures 2(A) et 2(B) montrent un autre exemple se rapportant à l'exécution d'une instruction de 3 bytes. L'exemple représenté vise un appel de sous-programme par lequeL la commande de programme saute à une adresse de programme spécifiée par 2 bytes, c'est-à-dire un byte d'adresse de niveau haut PH et un byte d'adresse de niveau bas PL' L'instruction comporte donc un code OP de 1 byte L (8 bits) CALL et les deux bytes d'opérande PH et PL' Dans le processus classique de la figure 2(A), le code OP relatif à l'instruction à exécuter dans le troisième cycle
d'instruction est extrait avant le début du premier cycle d'ins-
truction. Dans le cycle d'extraction, ou prise en charge, suivant qui a lieu en même temps que le premier cycle d'instruction, le byte o'adresse de niveau haut PH est extrait. De la même façon, dans le deuxième cycle d'instruction, le byte d'adresse de niveau P est extrait. Les bytes d'adresse haut PH et bas PL extraits lors des cycles d'extraction ayant lieu en même temps que les premier et deuxième cycles d'instruction et le code OP CALL extrait avant le premier cycle d'instruction sont utilisés pour exécuter l'instruction d'appel de sous-programme dans le troisième
cycle d'instruction.
Pendant le processus ci-dessus exposé, le compteur de programme est incrémenté d'une unité à la fin de chaque cycle d'instruction. Par conséquent, à la fin du cycle d'extraction du code OP, la valeur du compteur de programme est incrémentée de PC à PC + 1. A la fin du premier cycle d'instruction, le compteur de programme est incrémenté de 1 et, par conséquent, la valeur de comptage augmente de PC + 1 à PC + 2. De même, le compteur de programme est incrémenté de 1 à la fin des deuxième et troisième
cycles d'instruction.
Dans le processus selon l'invention de la figure 2(B), le code OP CALL relatif à l'instruction à exécuter lors du deuxième cycle d'instruction est extrait avant le début du premier cycle d'instruction. Le code OP CALL comporte une demande visant à comprimer les cycles d'extraction suivants. Pendant la durée M2 à M3 du premier cycle d'instruction, le byte d'adresse haut PH
est extrait. Pendant la durée de M0 à M du premier cycle d'ins-
truction, le byte d'adresse PL est extrait. Les bytes d'adresse PH et PL extraits lors du premier cycle d'instruction et le code OP CALL extrait avant le premier cycle d'instruction sont utilisés pour exécuter l'appel de sous-programme lors du deuxième cycle d'instruction. Pendant le processus ci-dessus exposé, le compteur de programme est incrémenté d'une unité à la fin de chaque cycle d'instruction. De plus, le compteur de programme est incrémenté de 1 en réponse à chaque impulsion d'horloge M3 qui tonbe à mi-parcours
de chaque cycle d'instruction. A la fin du cycle d'extraction rela-
tif au code OP, la valeur du compteur de programme augmente de PC à PC + 1. En réponse à l'impulsion d'horloge M3 du premier cycle d'instruction, le compteur de programme est de nouveau incrémenté de 1 si bien que la valeur de comptage devient PC + 2. Ensuite, le compteur de programme est incrémenté de 1 en réponse à l'impulsion d'horloge M survenant à la fin du premier cycle
d'instruction, et ainsi de suite.
Au début du deuxième cycle d'instruction, le code
OP relatif à l'instruction suivante à exécuter peut être extrait.
Ainsi, comme on l'aura compris, il suffit de deux cycles d'instruction pour exécuter une instruction de 3 bytes
dans le processus préféré selon l'invention.
La figure 3 montre un système de microprocesseur conçu pour exécuter le processus préféré selon l'invention. Le mode de réalisation préféré d'un microcalculateur comprend une ROM programmable (PROM) 1, un tampon de données 2, un registre d'instruction 3, un décodeur d'instruction 4 qui peut reposer sur un réseau logique programmable (PLA) par exemple,un compteur de programme 5, un registre 6 d'adresse de RAM, et des transistors
à effet de champ (FET) 7 à 9.
On va maintenant décrire en relation avec la figure 4 le fonctionnement du mode de réalisation préféré du microcalculateur constitué de la manière ci-dessus indiqué. Sur la figure 4, (A) indique des impulsions d'horloge M2, M3, Mo et M1 produites pendant chaque cycle d'instruction. (B) indique la valeur de comptage du compteur de programme 5 pendant l'exécution d'instructions de 1 byte séquentielles. (C) montre les variations de la valeur de
comptage du compteur de programme 5 pendant l'exécution d'instruc-
tions de 2 bytes séquentielles.
Le décodeur d'instruction délivre un signal PCUP d'incrémentation du compteur de programme et plusieurs signaux de commande C1 à C3, le dernier d'entre eux commandant le passage de l'information dans les éléments 1 à 6 du microprocesseur. Les signaux de commande C1, C2 et C3 subissent une intersection logique avec les impulsions d'horloge M3, M1 et M3 de nouveau de façon à
- 2575563
commander respectivement Les FET 7, 8 et 9. Les FET 7 et 8 permettent que des données, soit des opérandes, soit des codes OP venant du programme ROM, soient verrouiLLées par Le tampon de données 2 ou'le registre d'instruction 3, pour l'état conducteur. Le FET 9 permet que l'opérande se trouvant dans le tampon de données 2 passe sur le bus de données pour l'état conducteur, si bien que l'opérande peut être chargée dans le registre 6 d'adresse de la RAM en ce qui concerne les chargements, les mises en mémoire et les ordres analogues, ou dans le compteur de programme 5 en ce qui concerne Les appels de sous-programme, etc. Lorsqu'un code OP contient une demande d'extraction
d'opérande en compression dans le temps, le décodeur d'instruc-
tion 4 délivre à la fois une impulsion PCUP et des impulsions C2 et C3, ce qui permet de charger l'opérande dans le tampon de données 2 et de l'en faire sortir en réponse à l'impulsion d'horloge M1 suivante et d'incrémenter le compteur de programme
afin d'indiquer le code OP suivant.
Dans l'exemple représenté sur la figure 4(B), une instruction de 1 byte est exécutée au cours d'un unique cycle d'instruction. L'extraction des instructions se trouvant dans la ROM 1 est déclenchée par le flanc postérieur de L'impulsion d'horloge M1 en présence du signaL-de sortie C1 venant du décodeur d'instruction 4. Au même instant, le compteur de programme 5 est incrémenté de 1 en réponse au signal PCUP. L'instruction extraite (code OP) est lue dans le registre d'instruction 3, puis est délivrée au décodeur d'instruction 4. Le décodeur d'instruction 4 décode l'instruction extraite et délivre les signaux appropriés C1, C2 et c3. Le flanc postérieur du signal d'horloge M1 indique Le début du cycle d'instruction pendant lequel l'instruction extraite lors du cycle d'instruction précédent est exécutée. En même temps que l'exécution de l'instruction extraite lors du cycle précédent, l'instruction de 1 byte suivante est extraite pendant le cycle d'instruction en cours. L'adresse de la PROM à laquelle il faut accéder en ce qui concerne l'instruction est 9' représentée par la valeur de comptage (PC, PC + 1, PC + 2) qui est incrémentée d'une unité sur chaque flanc postérieur du signal
d'horloge M1 par le signal PCUP.
Pendant l'exécution d'instructions de 1 byte, puisqu'il n'y a pas de demande d'extraction d'opérande comprimée, les signaux de sortie C2 et C3 du décodeur d'instruction 4 restent inactifs. En résultat, les FET 8 et 9 restent non conducteurs. De
plus, à ce moment, puisque le signal PCUP du décodeur d'i.nstruc-
tion 4 n'est pas produit à mi-durée du cycle d'instruction, le compteur de programme 5 n'est incrémenté qu'en réponse au flanc
postérieur du signal d'horloge M1.
Comme représenté sur la figure 4(C), lorsque les instructions de 2 bytes comportant un code OP de 1 byte et une opérande de 1 byte doivent être exécutées, les impulsions C2 et C3 sont délivrées par le décodeur d'instruction 4 après extraction du code OP relatif à l'instruction suivant le flanc postérieur du signal d'horloge M1. Les signaux de sortie C2 et C3 rendent conducteurs les FET 8 et 9 de manière à décharger l'opérande de la ROM 1 et la charger dans le tampon de données 2, le compteur
de programme 5 et, ou bien, le registre 6 d'adresse de la RAM.
Sur le flanc postérieur du signal d'horloge M3, le compteur de programme 5 est incrémenté d'une unité en réponse au signal PCUP venant du décodeur d'instruction 4. Au même instant, par exemple, la donnée contenue dans le registre 6 d'adresse
de la RAM est lue et est utilisée pour l'exécution de l'instruc-
tion pendant la durée M0 à M1.
Pendant la durée M0 à M1, l'instruction suivante est extraite de la PROM. Dans ce cas, puisque le compteur de programme 5
est incrémenté par PCUP en réponse au flanc postérieur de l'impul-
sion d'horloge M3, l'adresse de la PROM représentée par la valeur
de comptage correspond à l'adresse du code OP relatif-à l'instruc-
tion suivante.
Comme on l'aura compris, pour permettre la compression du cycle d'extraction selon le processus préféré ci-dessus exposé, il est nécessaire que les deuxième et, ou bien, troisième bytes de données ne contiennent pas de composantes du code OP, mais, plutôt,
contiennent seulement des opérandes telles que données ou adresses.
Puisque, dans la plupart des microcalculateurs à 4 bits, les instructions ne contiennent qu'un code OP de 1 byte et un ou plusieurs bytes d'opérande, le processus préféré ci-dessus exposé est applicable à la plupart des microcalculateurs de ce type. Comme représenté sur les figures 5(A) et 5(B), selon le processus préféré de l'invention, des instructions de 2 bytes qui, classiquement, demandent 2 cycLes d'instruction pour être exécutés, peuvent être exécutes en un seuL cycle d'instruction
dans une architecture en pipeline. De la même façon, des instruc-
tions de 3 bytes qui, classiquement, demandent 3 cycles d'instruc-
tion pour être exécutés, peuvent être exécutés en 2 cycles d'ins-
truction. Ainsi, comme on l'aura facilement compris, le procédé
préféré selon l'invention abrège efficacement la durée d'exécution.
De plus, les figures 6(A) et 6(B) illustrent sché-
matiquement la zone nécessaire pour le décodeur d'instruction dans le système de la technique antérieureet le système selon l'invention, o (A) indique le système classique et (B) indique celui selon l'invention. Sur les figures 6(A) et 6(B), les lignes verticales représentent des lignes de sélection d'éléments ET et des lignes horizontales représentent des lignes de sélection d'éléments OU. En outre, M1 représente un signal sélecteur d'un état I machine, M2 représente un signal d'entrée sélecteur d'un état 2 machine, et M3 représente un signal d'entrée sélecteur
d'un état 3 machine.
Comme on l'aura compris en observant les figures 6(A) et 6(B), dans le système classique, trois états machine sont nécessaires pour exécuter une instruction de 3 bytes demandant 3 cycles d'instruction. Toutefois, selon le processus préféré de l'invention, pour exécuter des instructions de 3 bytes, il ne faut que 2 cycles d'instruction. Par conséquent, il ne faut que deux états machine du décodeur d'instruction pour exécuter des instructions de 3 bytes. Ainsi, la ligne de sélection d'éléments OU qui sert à commander une ligne de signal pour l'état 3 machine n'est plus nécessaire. Ceci conduit à une réduction notable de la longueur des lignes de sélection d'éléments ET et permet donc
une réduction concomitante de la taille du décodeur d'instruc-
tion. Ainsi, l'invention a atteint les buts et avantages
ci-dessus avancés.
Bien entendu, l'homme de l'art sera en mesure d'imaginer,
à partir du procédé dont le description vient d'être donnée à
titre simplement illustratif et nullement limitatif, diverses
variantes et modifications ne sortant pas du cadre deé l'invention.
Z575563
Claims (5)
1. Procédé d'exploitation d'un microprocesseur ayant
une architecture en pipeline, qui permet que les donrnées d'ins-
truction relatives à un cycle d'exécution d'instruction ultérieur -
soient extraites de la mémoire pendant un cycle d'instruction en cours, caractérisé en ce qu'il comprend les opérations suivantes: - préprogrammer des codes opération d'instruction (codes OP) pour des instructions demandant plus d'un byte de donnée d'instruction avec une information supplémentaire demandant une extraction,comprimée dans le temps,de la donnée d'instruction; et - extraire plus d'un byte de donnée d'instruction hors de la mémoire pendant te cycle de l'instruction faisant immédiatement suite à une demande d'extraction comprimée dans le temps.
2. Procédé selon la revendication 1, caractérisé en ce que ladite donnée d'instruction consiste en un seul byte de code OP et un seul byte d'opérande, et ledit byte du code OP est extrait immédiatement avant le début d'un cycle d'instruction, ladite opération d'extraction comprenant l'opération qui consiste à extraire ledit byte d'opérande associé avec ledit byte de code OP
extrait en même temps que Le début dudit cycle d'instruction.
3. Procédé selon la revendication 1, caractérisé en ce que ladite donnée d'instruction consiste en un seul byte de code OP et deux bytes d'opérande, et ledit byte du code OP est extrait immédiatement avant Le début d'une première instruction, Ladite opération d'extraction comprenant les opérations consistant à extraire un premier byte de l'opérande associé avec ledit byte du code OP extrait en même temps que le début dudit premier cycle d'instruction et à extraire un deuxième byte de L'opérande associé avec ledit premier byte de l'opérande pendant ledit premier cycle
d'instruction suivant L'extraction dudit premier byte de l'ooérande.
4. Procédé selon la revendication 2, caractérisé en ce qu'it comprend en outre l'opération consistant à exécuter
l'instruction spécifiée par lesdits bytes du code OP et de l'opé-
rande dans ledit cycle d'instruction immédiatement avant lequel
ledit byte du code OP a été extrait.
5. Procédé selon la revendication 3, caractérisé en ce qu'il comprend en outre l'opération consistant à exécuter l'instruction spécifiée par le byte du code OP et lesdits premier
et deuxième bytes de l'opérande dans un deuxième cycle d'instruc-
tion faisant immédiatement suite audit premier cycle d'instruction.
Applications Claiming Priority (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
JP59276835A JPH0776917B2 (ja) | 1984-12-29 | 1984-12-29 | マイクロコンピユ−タ |
Publications (2)
Publication Number | Publication Date |
---|---|
FR2575563A1 true FR2575563A1 (fr) | 1986-07-04 |
FR2575563B1 FR2575563B1 (fr) | 1990-12-07 |
Family
ID=17575063
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
FR858519331A Expired - Lifetime FR2575563B1 (fr) | 1984-12-29 | 1985-12-27 | Procede d'exploitation d'un microcalculateur a cycle d'instruction perfectionne |
Country Status (12)
Country | Link |
---|---|
US (3) | US5630085A (fr) |
JP (1) | JPH0776917B2 (fr) |
KR (1) | KR930009754B1 (fr) |
CN (1) | CN1024960C (fr) |
AT (1) | AT396409B (fr) |
AU (1) | AU582408B2 (fr) |
CA (1) | CA1242802A (fr) |
DE (1) | DE3546332C2 (fr) |
FR (1) | FR2575563B1 (fr) |
GB (1) | GB2169115B (fr) |
IT (1) | IT1208731B (fr) |
NL (1) | NL193474C (fr) |
Families Citing this family (9)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US5088035A (en) * | 1988-12-09 | 1992-02-11 | Commodore Business Machines, Inc. | System for accelerating execution of program instructions by a microprocessor |
US5293592A (en) * | 1989-04-07 | 1994-03-08 | Intel Corporatino | Decoder for pipelined system having portion indicating type of address generation and other portion controlling address generation within pipeline |
GB2230116B (en) * | 1989-04-07 | 1993-02-17 | Intel Corp | An improvement for pipelined decoding of instructions in a pipelined processor |
US6003127A (en) * | 1995-10-04 | 1999-12-14 | Nippondenso Co., Ltd. | Pipeline processing apparatus for reducing delays in the performance of processing operations |
US5901293A (en) * | 1996-06-25 | 1999-05-04 | Claxton; Daniel Dean | Bus interface controller for serially-accessed variable-access-time memory device |
KR100308211B1 (ko) | 1999-03-27 | 2001-10-29 | 윤종용 | 압축 명령을 갖는 마이크로 컴퓨터 시스템 |
US6978360B2 (en) * | 2001-05-11 | 2005-12-20 | International Business Machines Corporation | Scalable processor |
US7552427B2 (en) * | 2004-12-13 | 2009-06-23 | Intel Corporation | Method and apparatus for implementing a bi-endian capable compiler |
US9112495B1 (en) * | 2013-03-15 | 2015-08-18 | Mie Fujitsu Semiconductor Limited | Integrated circuit device body bias circuits and methods |
Citations (2)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
FR2513410A1 (fr) * | 1981-09-21 | 1983-03-25 | Racal Data Communications Inc | Microprocesseur et procede pour imbriquer les acces en memoire de ce microprocesseur |
DE3326898A1 (de) * | 1982-07-26 | 1984-03-08 | NEC Corp., Tokyo | Datenverarbeitungsmaschine |
Family Cites Families (21)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US3609700A (en) * | 1970-02-24 | 1971-09-28 | Burroughs Corp | Data processing system having an improved fetch overlap feature |
US3771138A (en) * | 1971-08-31 | 1973-11-06 | Ibm | Apparatus and method for serializing instructions from two independent instruction streams |
BE789583A (fr) * | 1971-10-01 | 1973-02-01 | Sanders Associates Inc | Appareil de controle de programme pour machine de traitement del'information |
US3793631A (en) * | 1972-09-22 | 1974-02-19 | Westinghouse Electric Corp | Digital computer apparatus operative with jump instructions |
US3840861A (en) * | 1972-10-30 | 1974-10-08 | Amdahl Corp | Data processing system having an instruction pipeline for concurrently processing a plurality of instructions |
US3961313A (en) * | 1974-12-04 | 1976-06-01 | International Business Machines Corporation | Computer control apparatus |
US4079455A (en) * | 1976-12-13 | 1978-03-14 | Rca Corporation | Microprocessor architecture |
DE2702586C3 (de) * | 1977-01-22 | 1979-07-05 | Standard Elektrik Lorenz Ag, 7000 Stuttgart | Schaltungsanordnung zum Steuern des Speicherzugriffs bei einem Rechner |
US4363091A (en) * | 1978-01-31 | 1982-12-07 | Intel Corporation | Extended address, single and multiple bit microprocessor |
US4462073A (en) * | 1978-11-08 | 1984-07-24 | Data General Corporation | Apparatus for fetching and decoding instructions |
CA1134952A (fr) * | 1979-04-24 | 1982-11-02 | Thomas E. Kloos | Dispositif et methode de preextraction des codes operation et des operandes dans un systeme de traitement de donnees numerique |
US4346437A (en) * | 1979-08-31 | 1982-08-24 | Bell Telephone Laboratories, Incorporated | Microcomputer using a double opcode instruction |
US4316247A (en) * | 1979-10-30 | 1982-02-16 | Texas Instruments, Inc. | Low power consumption data processing system |
US4399507A (en) * | 1981-06-30 | 1983-08-16 | Ibm Corporation | Instruction address stack in the data memory of an instruction-pipelined processor |
US4654781A (en) * | 1981-10-02 | 1987-03-31 | Raytheon Company | Byte addressable memory for variable length instructions and data |
JPS58134350A (ja) * | 1982-02-04 | 1983-08-10 | Matsushita Electric Ind Co Ltd | メモリ制御装置 |
JPS58149541A (ja) * | 1982-03-01 | 1983-09-05 | Hitachi Ltd | デ−タ処理装置 |
JPS58205256A (ja) * | 1982-05-24 | 1983-11-30 | Matsushita Electric Ind Co Ltd | データ処理方法 |
US4471432A (en) * | 1982-10-13 | 1984-09-11 | Wilhite John E | Method and apparatus for initiating the execution of instructions using a central pipeline execution unit |
US4613935A (en) * | 1983-02-02 | 1986-09-23 | Couleur John F | Method and apparatus for pipe line processing with a single arithmetic logic unit |
US4742451A (en) * | 1984-05-21 | 1988-05-03 | Digital Equipment Corporation | Instruction prefetch system for conditional branch instruction for central processor unit |
-
1984
- 1984-12-29 JP JP59276835A patent/JPH0776917B2/ja not_active Expired - Lifetime
-
1985
- 1985-09-27 CN CN85109719A patent/CN1024960C/zh not_active Expired - Lifetime
- 1985-12-04 KR KR1019850009098A patent/KR930009754B1/ko not_active IP Right Cessation
- 1985-12-18 CA CA000497968A patent/CA1242802A/fr not_active Expired
- 1985-12-19 NL NL8503516A patent/NL193474C/nl not_active IP Right Cessation
- 1985-12-19 AU AU51477/85A patent/AU582408B2/en not_active Expired
- 1985-12-24 GB GB08531800A patent/GB2169115B/en not_active Expired
- 1985-12-27 AT AT0376385A patent/AT396409B/de not_active IP Right Cessation
- 1985-12-27 FR FR858519331A patent/FR2575563B1/fr not_active Expired - Lifetime
- 1985-12-27 IT IT8548990A patent/IT1208731B/it active
- 1985-12-30 DE DE3546332A patent/DE3546332C2/de not_active Expired - Fee Related
-
1993
- 1993-06-28 US US08/082,822 patent/US5630085A/en not_active Expired - Lifetime
-
1995
- 1995-02-01 US US08/382,392 patent/US5621907A/en not_active Expired - Lifetime
- 1995-06-07 US US08/488,082 patent/US6484252B1/en not_active Expired - Fee Related
Patent Citations (2)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
FR2513410A1 (fr) * | 1981-09-21 | 1983-03-25 | Racal Data Communications Inc | Microprocesseur et procede pour imbriquer les acces en memoire de ce microprocesseur |
DE3326898A1 (de) * | 1982-07-26 | 1984-03-08 | NEC Corp., Tokyo | Datenverarbeitungsmaschine |
Also Published As
Publication number | Publication date |
---|---|
AT396409B (de) | 1993-09-27 |
GB2169115B (en) | 1989-01-11 |
US5630085A (en) | 1997-05-13 |
DE3546332A1 (de) | 1986-07-10 |
ATA376385A (de) | 1992-12-15 |
IT1208731B (it) | 1989-07-10 |
DE3546332C2 (de) | 1995-09-21 |
CN1024960C (zh) | 1994-06-08 |
KR930009754B1 (ko) | 1993-10-09 |
NL193474B (nl) | 1999-07-01 |
US5621907A (en) | 1997-04-15 |
JPH0776917B2 (ja) | 1995-08-16 |
NL8503516A (nl) | 1986-07-16 |
US6484252B1 (en) | 2002-11-19 |
IT8548990A0 (it) | 1985-12-27 |
AU582408B2 (en) | 1989-03-23 |
KR860005297A (ko) | 1986-07-21 |
GB8531800D0 (en) | 1986-02-05 |
GB2169115A (en) | 1986-07-02 |
JPS61157946A (ja) | 1986-07-17 |
CN85109719A (zh) | 1986-07-02 |
CA1242802A (fr) | 1988-10-04 |
AU5147785A (en) | 1986-07-03 |
NL193474C (nl) | 1999-11-02 |
FR2575563B1 (fr) | 1990-12-07 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
FR2575563A1 (fr) | Procede d'exploitation d'un microcalculateur a cycle d'instruction perfectionne | |
FR2588980A1 (fr) | Processeur de traitement de signal numerique comportant plusieurs multiplicateurs | |
BE1007932A7 (fr) | Procede et circuit de memorisation et de hierarchisation d'ordres d'effacement dans un dispositif de memoire. | |
FR2606903A1 (fr) | Procede et dispositif de gestion de points d'arret dans un moniteur de logiciel | |
FR2489555A1 (fr) | Systeme de traitement de donnees a commande par pipeline | |
FR2522232A1 (fr) | Dispositif de traitement de signaux numeriques | |
CN111324330B (zh) | 电子书的播放处理方法、计算设备及计算机存储介质 | |
FR2770659A1 (fr) | Processeur de traitement perfectionne | |
EP0006478A1 (fr) | Dispositif programmable de verrouillage de signaux de commande dans un système de traitement de données | |
EP1619590A1 (fr) | Procédé de programmation d'un controleur de DMA dans un système sur puce et système sur puce associé | |
EP1830264A1 (fr) | Procédé et dispositif de sauvegarde et de restauration d'une manière interruptible d'un ensemble de registres d'un microprocesseur | |
EP0684551B1 (fr) | Circuit électronique et méthode pour l'utilisation d'un coprocesseur | |
FR2738367A1 (fr) | Procede et appareil de telechargement rapide de fonctions dans une memoire volatile | |
EP0919026A1 (fr) | Procede de modification de sequences de code et dispositif associe | |
EP0208181A1 (fr) | File d'attente de compteur d'instructions pour processeur de type pipeline | |
FR2628237A1 (fr) | Fichier de registres de vecteurs, systeme informatique pour le traitement de vecteurs utilisant un tel fichier et procede de gestion des acces a ce fichier | |
FR2895602A1 (fr) | Dispositif et procede d'encodage de type cabac | |
FR2662281A1 (fr) | Processeur comprenant un fichier de registres adressables en plusieurs jeux de registres contenus dans des fenetres. | |
EP1632863A1 (fr) | Dispositif programmable d'interface de commande | |
EP1357459B1 (fr) | Processeur securisé contre les deroutements | |
FR2851349A1 (fr) | Procede de gestion d'une pile de microprocesseur pour la sauvegarde de donnees contextuelles | |
EP1436694B1 (fr) | Microprocesseur disposant d'un espace adressable etendu | |
EP0729091B1 (fr) | Procédé et dispositif de commande simultanée des états de contrôle des unités d'exécution d'un processeur programmable | |
FR2837948A1 (fr) | Procede de realisation de divisions entieres | |
FR2573228A1 (fr) | Procede pour le traitement de mots d'instruction codes machine et ordinateur pour l'execution du procede |
Legal Events
Date | Code | Title | Description |
---|---|---|---|
ST | Notification of lapse |