FR2586490A1 - Unite de traitement d'instruction de branchement - Google Patents

Unite de traitement d'instruction de branchement Download PDF

Info

Publication number
FR2586490A1
FR2586490A1 FR8611998A FR8611998A FR2586490A1 FR 2586490 A1 FR2586490 A1 FR 2586490A1 FR 8611998 A FR8611998 A FR 8611998A FR 8611998 A FR8611998 A FR 8611998A FR 2586490 A1 FR2586490 A1 FR 2586490A1
Authority
FR
France
Prior art keywords
register
connection
instruction
stored
registers
Prior art date
Legal status (The legal status is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the status listed.)
Granted
Application number
FR8611998A
Other languages
English (en)
Other versions
FR2586490B1 (fr
Inventor
Hideshi Ishii
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.)
NEC Corp
Original Assignee
NEC Corp
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 NEC Corp filed Critical NEC Corp
Publication of FR2586490A1 publication Critical patent/FR2586490A1/fr
Application granted granted Critical
Publication of FR2586490B1 publication Critical patent/FR2586490B1/fr
Anticipated expiration legal-status Critical
Expired - Fee Related legal-status Critical Current

Links

Classifications

    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F9/00Arrangements for program control, e.g. control units
    • G06F9/06Arrangements for program control, e.g. control units using stored programs, i.e. using an internal store of processing equipment to receive or retain programs
    • G06F9/30Arrangements for executing machine instructions, e.g. instruction decode
    • G06F9/32Address formation of the next instruction, e.g. by incrementing the instruction counter
    • G06F9/322Address formation of the next instruction, e.g. by incrementing the instruction counter for non-sequential address
    • G06F9/325Address formation of the next instruction, e.g. by incrementing the instruction counter for non-sequential address for loops, e.g. loop detection or loop counter
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F9/00Arrangements for program control, e.g. control units
    • G06F9/06Arrangements for program control, e.g. control units using stored programs, i.e. using an internal store of processing equipment to receive or retain programs
    • G06F9/30Arrangements for executing machine instructions, e.g. instruction decode
    • G06F9/38Concurrent instruction execution, e.g. pipeline or look ahead
    • G06F9/3836Instruction issuing, e.g. dynamic instruction scheduling or out of order instruction execution
    • G06F9/3842Speculative instruction execution
    • G06F9/3846Speculative instruction execution using static prediction, e.g. branch taken strategy

Landscapes

  • Engineering & Computer Science (AREA)
  • Software Systems (AREA)
  • Theoretical Computer Science (AREA)
  • Physics & Mathematics (AREA)
  • General Engineering & Computer Science (AREA)
  • General Physics & Mathematics (AREA)
  • Advance Control (AREA)

Abstract

L'UNITE DE TRAITEMENT COMPREND UNE MEMOIRE CENTRALE 1, UNE UNITE D'ACCES DE MEMOIRE 2, UNE UNITE DE COMMANDE AVANCEE 3, UN TAMPON D'OPERANDES 4, UN GROUPE DE REGISTRES 5, DES SELECTEURS 6 ET 7, UN GENERATEUR DE CONSTANTES 8 ET DES REGISTRES D'OPERANDE 9 ET 10. UNE UNITE ARITHMETIQUE ET LOGIQUE 11 EXECUTE UN CALCUL FONDE SUR LES VALEURS DES REGISTRES 9 ET 10. LE RESULTAT DE CE CALCUL EST STOCKE DANS UN REGISTRE 12. UN CIRCUIT DE DETECTION 13 DETECTE SI LE CONTENU DE L'UN DES REGISTRES DU GROUPE 5 CORRESPOND AU NIVEAU "1". UN BASCULEUR 14 EST POSITIONNE EN REPONSE A LA DETECTION DU NIVEAU "1" PAR LE CIRCUIT 13. L'INFORMATION DE COMMANDE POUR INSTRUCTIONS DE BRANCHEMENT ENVOYEE PAR L'UNITE DE COMMANDE AVANCEE 3 EST STOCKEE DANS UN REGISTRE 22. UN ADDITIONNEUR 21 AJOUTE LA VALEUR "1" AU CONTENU D'UN REGISTRE D'ADRESSES D'INSTRUCTIONS 20 ET UN SELECTEUR 19 SELECTIONNE DES DONNEES A PARTIR D'UN REGISTRE D'ADRESSES 18 ET DE L'ADDITIONNEUR 21. UN CIRCUIT DE DISCERNEMENT DE BRANCHEMENT 15 DISCERNE SI LE BRANCHEMENT EST, OU N'EST PAS, EFFECTUE. ON PEUT AINSI AUGMENTER LA VITESSE D'EXECUTION DES INSTRUCTIONS DE BRANCHEMENT SANS ACCROITRE DE MANIERE INDESIRABLE LE MATERIEL NECESSAIRE.

Description

1.
La présente invention concerne un unité de trai-
tement d'instruction de branchement capable d'exécuter des instructions de branchement commandé par comptage pour la
commande des boucles dans un programme.
Dans un programme de calculs scientifique et technique, tel que les boucles DO, dans un programme FORTRAN, le même traitement est souvent répété un certain nombre, limité, de fois. Dans ce cas, on utilise fréquemment, en tant qu'instruction de branchement, des instructions de
branchement commandé par comptage (que l'on désignera, ci-
dessous par le terme de "instructions BCT"). Avec une instruction BCT, le contenu d'un registre désigné est lu, on lui soustrait la valeur "1", puis on le stocke à nouveau dans le registre initial. Si le résultat de la soustraction est "0", on juge que le branchement n'a pas réussi, alors que si ce résultat est différent de "0", on juge que le branchementa réussi. Une telle instructions BCT est placée à la fin d'un groupe d'instructions devant être envoyées dans des boucles et l'emplacement du branchement est indiqué par l'adresse de l'instruction qui se trouve tout en haut du groupe. Après chargement du nombre de répétitions des boucles dans un registre spécifique, les instructions du groupe sont successivement exécutées à partir de l'instruction de faite et ce
groupe d'instructions est répété un nombre de fois détermi-
né. Conformément à l'art antérieur, deux opérations 2.
de traitement doivent être effectuées en série pour l'exé-
cution de l'instruction BCT; à savoir: (1) l'opération de soustraction de la valeur "ln d'un registre spécifique, (2) l'opération consistant à discerner si le branchement est, ou n'est pas,effectué, en se fondant sur
le résultat de la soustraction.
Du fait qu'une unité de traitement d'instruc-
tion de branchement de type usuel ne peut pas exécuteren parallèle les deux opérations de traitement susmentionnées, chaque instruction BCT prend, de manière indésirable, un
temps plus long pour son exécution que les autres instruc-
tions de branchement qui ne nécessitent pas l'opération de
soustraction (1) mentionnée ci-dessus.
En vu de surmonter cette difficulté, une techni-
que a été proposée par la société Itachi, Ltd. dans la deman-
de de brevet japonais publiéeNo. 20385/1984. Conformément à
la technique ainsi proposée, on utilise un registre d'affi-
chage 8 qui correspond à un registre non spécialisé (regis-
tre à buts multiples) 3 qui stocke le nombre de répétition des boucles en vu d'afficher si le contenu du registre 3 est, ou n'est pas,"1". Le registre d'affichage 8 est réglé en réponse à l'écriture de la valeur "1" dans le registre non spécialisé 3. Avant l'exécution d'une instruction BCT, le contenu du registre d'affichage 8 est lu et on discerne, en fonction du contenu de la lecture, si le branchement est,
ou n'est pas, réussi.
Cette technique permet de discerner immédiate-
ment si le branchement doit, ou ne doit pas être effectué, selon le contenu du registre d'affichage 8 au commencement de l'exécution de chaque instruction BCT et, en conséquence, elle peut améliorer la vitesse d'exécution. Toutefois, si l'on utilise pour le traitement d'une instruction BCT, une pluralité de registres non spécialisés (désignés cidessous par les initiales "GP>) pour stocker le nombre de répétition 3. des boucles, il faut utiliser un nombre correspondant de registresd'affichage pour détecter le registre GP qui doit être utilisé pour l'instruction BCT, ce qui augmente de
manière indésirable le matériel nécessaire.
En conséquence, l'invention a pour objet de
fournir une unité de traitement d'instruction de branche-
ment capable d'exécuter des instructions BCT à vitesse plus élevée, en vu de pallier aux inconvénients susmentionnés
de l'art antérieur.
A cet effet, l'unité de traitement d'instruc-
tion de branchement selon l'invention, qui permet l'exécu-
tion d'instruction BCT pour la commande de boucles d'un programme, sous commande de pipeline, est caractérisée en ce qu'elle comprend un moyen de mémorisation pour stocker le nombre de répétition de boucles de chaque instruction BCT, un premier moyen de stockage pour stocker le signal de sortie du moyen de mémorisation, un moyen de détection pour détecter si le signal de sortie du moyen de mémorisation a, ou n'a pas, la valeur "1" alors que le signal de sortie du moyen de mémorisation est stocké dans le premier moyen de stockage, un second moyen de stockage pour stocker le signal de sortie du premier moyen de stockage, et un moyen de discernement de branchement qui discerne si chaque instruction de branchement est, ou n'est pas, donnée avec succès en réponse à la détection de la valeur "1" par le moyen de détection, alors que le signal de sortie du premier moyen de stockage est en cours de stockage dans le second
moyen de stockage.
L'invention sera mieux comprise grâce à la
description détaillée qui va suivre, d'exemples non limita-
tifs de la mise en oeuvre de l'invention, en se référant au dessin annexé, dans lequel: La figure 1 est un schéma bloc d'une forme d'exécution de l'unité de traitement selon l'invention; La figure 2 est un schéma bloc d'une unité d'accès de mémoire 2, représentées la figure 1; 4. La figure 3 est un schéma explicatif pour la
description de chaque étape de commande de pipeline;
La figure 4 est un schéma bloc d'une unité de commande avancée 3, représentée à la figure 1; La figure 5 est un schéma de circuit d'un circuit de détection 13 et d'un circuit de discernement de branchement 15, représenté à la figure 1; La figure 6 est un diagramme chronologique permettant d'illustrer un mode opératoire d'un dispositif de commande dans la forme d'exécution représentée; et
La figure 7 est un diagramme chronologique per-
mettant d'illustrer un mode opératoire d'un dispositif de traitement de données faisant partie de cette forme d'exécution. Des chiffres de référence identiques désignent
les mêmes éléments de structure.
On va maintenant décrire plus en détail une forme d'exécution de l'unité de traitement selon l'invention,
en se référant au dessin.
En se référant à la figure 1, on voit que la forme d'exécution de l'unité de traitement selon l'invention
comprend une unité de mémoire principale (désignée,ci-
dessous, par le terme de "MMU") 1 qui stocke les programmes ou les données, une unité d'accès de mémoire 2, permettant d'accéder à la MMU 1, une unité de commande avancée 3 pour le décodage d'une instruction provenant de la MMU 1, par l'intermédiaire de l'unité d'accès de mémoire 2 et dirigeant l'unité 2 pour l'exécution d'un opérande tel qu'un résultat de lecture, un tampon d'opérande 4 pour stocker un opérande
qui a été lu à partir de la MMU 1, en réponse à une instruc-
tion de lecture d'opérande provenant de l'unité 2, un groupe de registres non spécialisés (GP) 5 qui comprend un fichier à registres contenant 16 registres GP et qui stocke les opérandes d'instruction et les résultats de calcul, un sélecteur 6 pour sélectionner un opérande ou résultat de 5. calcul à partir soit du tampon d'opérande 4 soit du groupe de registres GP, un sélecteur 7 pour sélectionner un opérande, un résultat de calculs ou une constante à partir du tampon d'opérande 4, du groupe de registres GP 5, ou d'un générateur de constante 8, un registre d'opérande 9 pour stocker le résultat de la sélection effectuée par le
sélecteur 6, un registre d'opérande 10 pour stocker le ré-
sultat de la sélection effectuée par le sélecteur 7. La forme d'exécution de l'unité de traitement d'instruction de branchement comprend en outre une unité arithmétique et
logique (ALU) 11 permettant l'exécution d'un calcul arithmé-
tique comme spécifié, en se fondant sur les valeurs desdits registres d'opérande 9 et 10, un registre de résultat 12 pour stocker le résultat de calcul de l'unité ALU 11,un circuit de détection 13 pour détecter si le contenu de l'un des registres GP sélectionné dans le groupe de registres GP correspond ou ne correspond pas au niveau logique "1"
("00.... 01", en chiffres binaires), un basculeur 14 posi-
tionné en réponse à la détection du niveau logique "1" par le circuit de détection 13, un registre 22 pour stocker l'information de commande pour instructions de branchement
envoyée à partir de l'unité de commande avancée 3, un cir-
cuit de discernement de branchement 15, réagissant à un genre d'instructions données par le registre 22, par l'intermédiaire d'une ligne de signal 107 et d'un signal de rythme de branchement donné à partir de celui-ci par l'intermédiaire d'une ligne de signal 108, pour discerner si le branchement doit, ou ne doit pas, être effectué, lorsque la valeur du basculeur 14 correspond au niveau logique "1" ainsi que pour discerner si le branchement doit, ou ne doit pas, être effectué lorsque cette valeur correspond au niveau logique "0" et lorsque le type de branchement donné indique une instruction BCT, un basculeur 16 positionné en réponse au discernement effectué par le circuit de discernement de branchement 15, des registres 17 et 18 pour stocker les 6. adresses de destination de branchement des instructions de branchement envoyées lorsque l'unité de commande avancée prévoit la réussite d'un branchement, un registre d'adresses
d'instructions 20 pour la rétention de l'adresse d'instruc-
tion en cours d'exécution, et un additionneur 21 pour ajou-
ter la valeur "1" au contenu du registre d'adresses d'ins-
tructions 20, et un sélecteur 19, agissant en réponse au
signal de sortie du basculeur 16 pour sélectionner des don-
nées à partir du contenu du registre 18 et à partir de
l'additionneur 21.
On va maintenant décrire le fonctionnement de l'unité de traitement d'instruction de branchement selon l'invention. Une instruction BCT est lue selon les étapes
suivantes. En se référant à la figure 2, une adresse virtuel-
le pour la lecture de l'instruction BCT à partir de l'unité de commande avancée 3 représentée à la figure 1, est stockée dans un registre d'adresses virtuelles 200. Les bits de poids fort de l'adresse stockée dans le registre 200 sont, si nécessaire, traités par un circuit de traitement de mise
en page 201 et, en même temps, l'adresse virtuelle est con-
vertie en une adresse réelle par l'alignement d'adresses TLB (translation lookaside buffer = tampon d'observation latérale de: traduction) 202 et l'alignement de données TLB 203. L'adresse réelle convertie est stockée dans la zone de bit de poids fort d'un registre de pré-adresses 211 par l'intermédiaire des sélecteurs 206 et 209.Dans la zone de bit de poids faible du registre 211, on stocke le contenu de la zone de bit de poids faible du registre d'adresses virtuelles 200. Si l'adresse stockée dans le registre de
pré-adresses 211 a été stocké,dans l'alignement de pré-
adresses 214, l'instruction BCT stockée dans l'alignement de pré-données 215 est lue et envoyée à l'unité de commande
avancée 3 par l'intermédiaire du sélecteur 220. Si l'adres-
se réelle désirée n'a pas été stockée dans l'alignement de pré-adresses 214, l'adresse réelle est fournie à partir du 7. registre de pré-adresses 211 à l'unité MMU 1 représentée à la figure 1, par l'intermédiaire du tampon de stockage 207. L'instruction, BCT lue à partir de l'unité MMU 1, en correspondance avec l'adresse réelle, est temporairement stockée dans l'alignement de pré-donnée 215, par l'inter-
médiaire du registre de données de mémoire 208, du sélec-
teur 212 et du registre de pré-inscription 213. L'instruc-
tion BCT stockée dans l'alignement 215 est donnée à l'unité
de commande avancée 3 par l'intermédiaire du sélecteur 220.
On va maintenant décrire la commande de pipeli-
ne de cette forme d'exécution.
En se référant à la figure 3, on voit que cha-
que instruction comprend 7 étages, à savoir: un étage de décodage d'instructions D, un étage de calcul d'adresses A, un étage d'accès au TLB (conversion d'adresse) P, un étage d'accès à l'antémémoire C, un étage T de lecture du registre général 5 ou du tampon d'opérande 4, un étage d'exécution d'instruction E et un étage d'écriture W. On va décrire plus en détail le fonctionnement du dispositif de commande dans cette forme d'exécution, en
se référant à la figure 6 dans laquelle les 7 étages sus-
mentionnés sont portés sur l'axe des X, ainsi qu'aux fi-
gures 1, 4 et 5.
En se référant aux figures 4 et 6, on voit que l'instruction BCT provenant de l'unité d'acces de mémoire 2
est stockée dans le registre d'instructions 302 par l'inter-
médiaire d'une ligne 100 et d'un tampon d'instructions 301.
Le contenu de la zone d'adresses BCT alimentée par l'inter-
médiaire du sélecteur 311, et le contenu du fichier à
registres d'index 312 sont ajoutés au moyen d'un addition-
neur d'adresses effectives 314. Le résultat de l'addition effectué par l'additionneur 314, c'est-à-dire l'adresse effective de l'instruction de branchement, est stocké dans un registre d'adresses effectives 315. L'adresse effective du registre 315 est stockée dans une pile d'adresses 8. effectives 307. D'autre part, les codes OP (opération) du registre d'instructions 302 sont décodés par un décodeur
d'instruction 303 et positionné dans un registre d'instruc-
tions décodées 305. Le résultat du décodage est stocké dans une pile d'instructio rsdécodées306. Le traitement susmention-
né est exécuté par l'unité de commande avancée 3.
En se référant aux figures 1, 4 et 6, on voit que les données sous forme de 36 bits lues à partir du groupe de registres GP 5 sont détectées par le circuit de détection 13 afin de discerner si elles sont, ou ne sont
pas, au niveau logique "1" dans l'étage T. L'adresse ef-
fective et le résultat du décodage sont lus à partir de
la pile d'adresses effectives 307 et de la pile d'instruc-
tions décodées 306 pour les lignes 104 et 103.
En se référant aux figures 1 et 6, on voit que les opérandes sont lus à partir du groupe de registre GP 5,
dans le dispositif de données.
Dans l'étage E, l'opérande de lecture est sto-
cké dans le registre d'opérande 9 et soustrait par l'unité
ALU 11 si le contenu du reaistre d'opérande 10 est "1".
Dans le dispositif de commande, le résultat de décodage don-
né par l'intermédiaire de la ligne 103 est stocké dans le registre 22 et, en même temps, l'adresse effective donnée par l'intermédiaire de la ligne 104 est stockée dans le
registre 17. Si le résultat détecté par le circuit de dé-
tection 13 est de "1", le basculeur 14 est positionné, Le circuit de discernement de branchement 15 discerne si le branchement indiqué par l'instruction BCT est, ou n'est pas, effectué, en se fondant sur le signal de sortie du - -bascu!eur 14, le type d'instruction de branchement provenant du registre 22 par la ligne 107, et le signal de rythme de
branchement provenant du registre 22 par la ligne 108.
On va maintenant décrire plus en détail, en se référant à la figure 5, le mode opératoire du discernement
de l'instruction de branchement.
A la figure 5, on voit qu'un type d'instruction 9. de branchement donné par l'intermédiaire de la ligne 107 est décodé par un décodeur 450 et que diverses conditions de branchement sont sélectionnées pour chaque instruction de branchement. Les conditions de branchement pour les instructions de branchement IR0-IRn autres que les instructions BCT sont stockées dans un registre indicateur (non représenté). Dans le cas des instructions BCT, la ligne de signal 458 faisant partie des sorties du décodeur
450 prend le niveau logique "1" pour être soumiseà une opé-
ration logique ET avec le signal de sortie négatif du
basculeur 14, au moyen d'une porte logique ET 454. Le si-
gnal de sortie de cette dernière est fourni à la porte logique ET 456, par l'intermédiaire d'une porte logique OU 455 et soumis à une opération logique ET- avec le signal de rythme de branchement fourni par la ligne 108 et transmis aux lignes 105 et 106 en tant que signaux d'établissement
de branchement. En d'autres termes, dans le cas o l'ins-
truction de branchement est une instruction BCT, et quand-le contenu du basculeur 14 est "0", le chiffre "1" sur les
lignes 105 et 106 indique que le branchement est effectué.
Lorsque le contenu du basculeur 14 est "1", le signal "0" sur les lignes 105 et 106 signifie que le branchement n'est
pas effectué.
Dans l'étage W, l'adresse effective est stockée à partir du registre 17, dans le registre 18. Les signaux d'établissement du branchement fournispar la ligne 106 sont appliqués au basculeur 16. Le signal d'établissement de branchement est donné à l'unité de commande avancée 3 par
la ligne 105 pour actionner le circuit de commande de tam-
pon d'instruction 300, représenté à la figure 4, et pour
stocker l'instruction suivante à partir du tampon d'instruc-
tion 301 dans le registre d'instruction 302. Quand le con-
tenu du basculeur 16 est "1", ou lorsque le branchement est effectué, l'adresse de branchement qui a été transférée par l'intermédiaire des registres 17 et 18 est sélectionnée de 10. façon à être appliquée au registre d'adresses d'instruction 20. D'autre part, lorsque le signal de sortie du basculeur
16 est "0" ou que le branchement n'est pas effectué ou en-
core lorsqu'il ne correspond pas au rythme de branchement, on ajoute la valeur "1" au contenu du compteur d'instruc- tion 20 en raison du fait que le sélecteur 19 choisit
l'additionneur 21.
On va expliquer l'amélioration obtenue grâce à l'invention dans le rendement d'exécution de chaque instruction BCT, en se référant à une forme d'exécution de l'unité de traitement d'instruction de branchement selon
l'invention, comparée avec une unité de traitement d'instruc-
tion de branchement conforme à l'état de la technique antérieure. En se référant à la figure 7, on voit que, dans
la forme d'exécution de l'unité de traitement selon l'inven-
tion, on détecte le contenu de l'un des registre GP, dans le groupe de registres GP 5, afin de savoir s'il est, ou non, de "1" dans l'étage T, et on positionne le basculeur 14. On discerne si le branchement est, ou n'est pas,effectué
selon le contenu du basculeur 14. L'opération correspondan-
te est effectuée à l'étage E, selon l'invention, afin
d'améliorer le rendement lors de l'exécution des instruc-
tions de branchement.
Il est bien entendu que la description qui
précède d'une forme d'exécution de l'unité de traitement d'instruction branchement selon l'invention n'est faite qu'à titre d'exemple non limitatif et que de nombreuses variations pourraient lui être apportées sans sortir du
cadre de l'invention.
11.

Claims (1)

REVENDICATION
1 - Unité de traitement d'instruction de bran-
chement pour i execution d'instructions de branchement com-
mandé par comiptage pOu --ia coi2annde de boucles duun program-
me sous commande de pipeline, caractérisée en ce qu'elle comprend un moyen de mémorisation pour stocker le nombre de répétition de boucle de ces instructions de branchement commandé par comptage; un premier moyen de stockage pour stocker le signal de sortie dudi-n mioyen de mémorisation
un îm Oyei.n de dtec tion pour détecter si un si-
gnal de sortie ducit iolYen de memorisation a0 ou n'a pas, la valeur "1"111, alors que le signal de sortie du moyen de mémorisation est stocké dans le premier moyen de stockageî un second moyen de stockage pour stocker un signal de sortie dudit premier moyen de stockage; et un moyen de discernement de branchement qui discerne si l'inst.-uction de branchement commandé par comptage est donnée avec succes en réponse à la détection de la valeur "1" par ledit moyen de détection alors qu'un signal de sortie dudit premier moyen de stockage est stocké dans ledit second moyen de stockageo
FR8611998A 1985-08-22 1986-08-22 Unite de traitement d'instruction de branchement Expired - Fee Related FR2586490B1 (fr)

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
JP18532885 1985-08-22

Publications (2)

Publication Number Publication Date
FR2586490A1 true FR2586490A1 (fr) 1987-02-27
FR2586490B1 FR2586490B1 (fr) 1993-11-05

Family

ID=16168900

Family Applications (1)

Application Number Title Priority Date Filing Date
FR8611998A Expired - Fee Related FR2586490B1 (fr) 1985-08-22 1986-08-22 Unite de traitement d'instruction de branchement

Country Status (3)

Country Link
US (1) US4882701A (fr)
JP (1) JPS6341932A (fr)
FR (1) FR2586490B1 (fr)

Families Citing this family (33)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JPS62180427A (ja) * 1986-02-03 1987-08-07 Nec Corp プログラム制御回路
US5101484A (en) * 1989-02-14 1992-03-31 Intel Corporation Method and apparatus for implementing an iterative program loop by comparing the loop decrement with the loop value
JPH0460720A (ja) * 1990-06-29 1992-02-26 Hitachi Ltd 条件分岐命令制御方式
US5313606A (en) * 1991-01-17 1994-05-17 Chips And Technologies, Inc. System for detecting boundary cross-over of instruction memory space using reduced number of address bits
US5303355A (en) * 1991-03-27 1994-04-12 Motorola, Inc. Pipelined data processor which conditionally executes a predetermined looping instruction in hardware
JPH07200292A (ja) * 1993-12-28 1995-08-04 Mitsubishi Electric Corp パイプライン式プロセッサ
US5404473A (en) * 1994-03-01 1995-04-04 Intel Corporation Apparatus and method for handling string operations in a pipelined processor
US5802346A (en) * 1995-06-02 1998-09-01 International Business Machines Corporation Method and system for minimizing the delay in executing branch-on-register instructions
US5909573A (en) * 1996-03-28 1999-06-01 Intel Corporation Method of branch prediction using loop counters
US5822602A (en) * 1996-07-23 1998-10-13 S3 Incorporated Pipelined processor for executing repeated string instructions by halting dispatch after comparision to pipeline capacity
US6505295B1 (en) 1997-02-17 2003-01-07 Hitachi, Ltd. Data processor
US7020788B2 (en) 2001-06-01 2006-03-28 Microchip Technology Incorporated Reduced power option
US6985986B2 (en) 2001-06-01 2006-01-10 Microchip Technology Incorporated Variable cycle interrupt disabling
US6601160B2 (en) 2001-06-01 2003-07-29 Microchip Technology Incorporated Dynamically reconfigurable data space
US6728856B2 (en) 2001-06-01 2004-04-27 Microchip Technology Incorporated Modified Harvard architecture processor having program memory space mapped to data memory space
US6975679B2 (en) 2001-06-01 2005-12-13 Microchip Technology Incorporated Configuration fuses for setting PWM options
US6952711B2 (en) 2001-06-01 2005-10-04 Microchip Technology Incorporated Maximally negative signed fractional number multiplication
US7467178B2 (en) 2001-06-01 2008-12-16 Microchip Technology Incorporated Dual mode arithmetic saturation processing
US6552625B2 (en) 2001-06-01 2003-04-22 Microchip Technology Inc. Processor with pulse width modulation generator with fault input prioritization
US6934728B2 (en) 2001-06-01 2005-08-23 Microchip Technology Incorporated Euclidean distance instructions
US7007172B2 (en) 2001-06-01 2006-02-28 Microchip Technology Incorporated Modified Harvard architecture processor having data memory space mapped to program memory space with erroneous execution protection
US20020184566A1 (en) 2001-06-01 2002-12-05 Michael Catherwood Register pointer trap
US7003543B2 (en) 2001-06-01 2006-02-21 Microchip Technology Incorporated Sticky z bit
US6976158B2 (en) 2001-06-01 2005-12-13 Microchip Technology Incorporated Repeat instruction with interrupt
US6604169B2 (en) 2001-06-01 2003-08-05 Microchip Technology Incorporated Modulo addressing based on absolute offset
US6937084B2 (en) 2001-06-01 2005-08-30 Microchip Technology Incorporated Processor with dual-deadtime pulse width modulation generator
US6552567B1 (en) 2001-09-28 2003-04-22 Microchip Technology Incorporated Functional pathway configuration at a system/IC interface
US20040021483A1 (en) * 2001-09-28 2004-02-05 Brian Boles Functional pathway configuration at a system/IC interface
US7721073B2 (en) * 2006-01-23 2010-05-18 Mips Technologies, Inc. Conditional branch execution in a processor having a data mover engine that associates register addresses with memory addresses
US7721074B2 (en) * 2006-01-23 2010-05-18 Mips Technologies, Inc. Conditional branch execution in a processor having a read-tie instruction and a data mover engine that associates register addresses with memory addresses
US7721075B2 (en) * 2006-01-23 2010-05-18 Mips Technologies, Inc. Conditional branch execution in a processor having a write-tie instruction and a data mover engine that associates register addresses with memory addresses
US8464030B2 (en) * 2010-04-09 2013-06-11 International Business Machines Corporation Instruction cracking and issue shortening based on instruction base fields, index fields, operand fields, and various other instruction text bits
US8489865B1 (en) * 2010-04-15 2013-07-16 Lockheed Martin Corporation Device, system, and method for single thread command chaining instructions from multiple processor elements

Citations (2)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JPS58117050A (ja) * 1981-12-30 1983-07-12 Fujitsu Ltd デ−タシヨリソウチ
JPS59146342A (ja) * 1983-02-09 1984-08-22 Nec Corp ル−プ制御方式

Family Cites Families (31)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US3573854A (en) * 1968-12-04 1971-04-06 Texas Instruments Inc Look-ahead control for operation of program loops
US3593306A (en) * 1969-07-25 1971-07-13 Bell Telephone Labor Inc Apparatus for reducing memory fetches in program loops
BE789583A (fr) * 1971-10-01 1973-02-01 Sanders Associates Inc Appareil de controle de programme pour machine de traitement del'information
US4031521A (en) * 1971-10-15 1977-06-21 International Business Machines Corporation Multimode programmable machines
JPS549456B2 (fr) * 1972-07-05 1979-04-24
IT1000638B (it) * 1973-12-28 1976-04-10 Olivetti & Co Spa Calcolatore elettronico con dispo sitivo di deviazione dei micropro grammi
JPS522140A (en) * 1975-06-24 1977-01-08 Hitachi Ltd Information processing apparatus
US4097920A (en) * 1976-12-13 1978-06-27 Rca Corporation Hardware control for repeating program loops in electronic computers
JPS5420385A (en) * 1977-07-15 1979-02-15 Mitsubishi Electric Corp Time switch
US4200927A (en) * 1978-01-03 1980-04-29 International Business Machines Corporation Multi-instruction stream branch processing mechanism
US4181942A (en) * 1978-03-31 1980-01-01 International Business Machines Corporation Program branching method and apparatus
JPS55146550A (en) * 1979-04-27 1980-11-14 Hitachi Ltd High speed branch controlling system
JPS5621239A (en) * 1979-07-27 1981-02-27 Fujitsu Ltd Processing system for branch instruction
JPS56129950A (en) * 1980-03-07 1981-10-12 Hitachi Ltd Information processor
JPS56149646A (en) * 1980-04-21 1981-11-19 Toshiba Corp Operation controller
JPS5734253A (en) * 1980-08-09 1982-02-24 Fujitsu Ltd Brunch instruction controlling circuit
US4370711A (en) * 1980-10-21 1983-01-25 Control Data Corporation Branch predictor using random access memory
US4430706A (en) * 1980-10-27 1984-02-07 Burroughs Corporation Branch prediction apparatus and method for a data processing system
US4462074A (en) * 1981-11-19 1984-07-24 Codex Corporation Do loop circuit
US4435756A (en) * 1981-12-03 1984-03-06 Burroughs Corporation Branch predicting computer
US4477872A (en) * 1982-01-15 1984-10-16 International Business Machines Corporation Decode history table for conditional branch instructions
US4463422A (en) * 1982-07-12 1984-07-31 Csp, Inc. Method of processing an iterative program loop
US4604691A (en) * 1982-09-07 1986-08-05 Nippon Electric Co., Ltd. Data processing system having branch instruction prefetching performance
US4626988A (en) * 1983-03-07 1986-12-02 International Business Machines Corporation Instruction fetch look-aside buffer with loop mode control
JPS603750A (ja) * 1983-06-22 1985-01-10 Hitachi Ltd 計数分岐命令の制御方式
JPS6043751A (ja) * 1983-08-18 1985-03-08 Hitachi Ltd 情報処理装置
US4764861A (en) * 1984-02-08 1988-08-16 Nec Corporation Instruction fpefetching device with prediction of a branch destination for each branch count instruction
JPS60198640A (ja) * 1984-03-21 1985-10-08 Nec Corp パイプライン型情報処理装置
US4727483A (en) * 1984-08-15 1988-02-23 Tektronix, Inc. Loop control system for digital processing apparatus
JPS61273637A (ja) * 1985-05-30 1986-12-03 Nec Corp 情報処理装置
CA1285657C (fr) * 1986-01-29 1991-07-02 Douglas W. Clark Dispositif et methode d'execution d'instructions de branchement

Patent Citations (2)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JPS58117050A (ja) * 1981-12-30 1983-07-12 Fujitsu Ltd デ−タシヨリソウチ
JPS59146342A (ja) * 1983-02-09 1984-08-22 Nec Corp ル−プ制御方式

Non-Patent Citations (3)

* Cited by examiner, † Cited by third party
Title
IBM TECHNICAL DISCLOSURE BULLETIN, vol. 25, no. 9, février 1983, pages 4569-4571, New York, US; J. GONZALEZ et al.: "Branch mechanism for program loops" *
PATENT ABSTRACTS OF JAPAN, vol. 7, no. 228 (P-228)[1373], 8 octobre 1983; & JP-A-58 117 050 (TOSHITAKA TSUDA) 12-07-1983 *
PATENT ABSTRACTS OF JAPAN, vol. 8, no. 282 (P-323)[1719], 22 décembre 1984; & JP-A-59 146 342 (NIPPON DENKI K.K.) 22-08-1984 *

Also Published As

Publication number Publication date
JPS6341932A (ja) 1988-02-23
US4882701A (en) 1989-11-21
FR2586490B1 (fr) 1993-11-05

Similar Documents

Publication Publication Date Title
FR2586490A1 (fr) Unite de traitement d'instruction de branchement
FR2489021A1 (fr) Agencement d'antememoires comprenant une antememoire tampon en combinaison avec une paire d'antememoires
EP0407911B1 (fr) Dispositif et méthode de traitement en parallèle
JP2949857B2 (ja) パイプライン型データプロセッサにおける命令キューを満たす方法
US5408626A (en) One clock address pipelining in segmentation unit
KR100346515B1 (ko) 수퍼파이프라인된수퍼스칼라프로세서를위한임시파이프라인레지스터파일
IE990754A1 (en) An apparatus for software initiated prefetch and method therefor
JPS6217252B2 (fr)
CH629319A5 (fr) Installation de traitement de donnees.
EP0491693A1 (fr) Pipeline d'unite centrale ameliore a contournement de fichier de registres lors d'une comparaison d'adresse de mise a jour/d'acces.
FR2558613A1 (fr) Appareil de traitement de donnees du type pipeline
US6516410B1 (en) Method and apparatus for manipulation of MMX registers for use during computer boot-up procedures
AU629007B2 (en) Apparatus for accelerating store operations in a risc computer
JPS6049340B2 (ja) 分岐命令先取り方式
US6654872B1 (en) Variable length instruction alignment device and method
FR2475763A1 (fr) Processeur numerique a structure pipeline
EP0411679A2 (fr) Calculateur ajoutant de façon dynamique un champ aux instructions, ledit champ contenant l'adresse de l'instruction lui succédant.
EP1952235A2 (fr) Systeme et procede permettant de gerer des erreurs de transfert d'informations entre des dispositifs
US5938762A (en) Method and apparatus for performing exception processing routine in pipeline processing
EP0006485B1 (fr) Dispositif d'adressage de pages dans un système de traitement de données
FR2824154A1 (fr) Procede et dispositif pour generer des mots d'instruction pour la commande d'unites fonctionnelles dans un processeur
JP2794782B2 (ja) 命令取出装置
EP0190484A2 (fr) Ordinateur numérique à vitesse augmentée et méthode d'augmentation de vitesse
JPS6125166B2 (fr)
JPH0512110A (ja) 情報処理装置

Legal Events

Date Code Title Description
ST Notification of lapse