FR2636748A1 - Dispositif de prelecture d'instruction capable de traiter les changements de page sans perte de temps - Google Patents

Dispositif de prelecture d'instruction capable de traiter les changements de page sans perte de temps Download PDF

Info

Publication number
FR2636748A1
FR2636748A1 FR8912407A FR8912407A FR2636748A1 FR 2636748 A1 FR2636748 A1 FR 2636748A1 FR 8912407 A FR8912407 A FR 8912407A FR 8912407 A FR8912407 A FR 8912407A FR 2636748 A1 FR2636748 A1 FR 2636748A1
Authority
FR
France
Prior art keywords
instruction
address
page
signal
actual
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
FR8912407A
Other languages
English (en)
Other versions
FR2636748B1 (fr
Inventor
Toshiteru Shibuya
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 FR2636748A1 publication Critical patent/FR2636748A1/fr
Application granted granted Critical
Publication of FR2636748B1 publication Critical patent/FR2636748B1/fr
Anticipated expiration legal-status Critical
Expired - Fee Related legal-status Critical Current

Links

Classifications

    • G—PHYSICS
    • G06—COMPUTING OR CALCULATING; 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
    • G06F9/3804—Instruction prefetching for branches, e.g. hedging, branch folding
    • G—PHYSICS
    • G06—COMPUTING OR CALCULATING; 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/3836—Instruction issuing, e.g. dynamic instruction scheduling or out of order instruction execution
    • G06F9/3842—Speculative instruction execution
    • G06F9/3844—Speculative instruction execution using dynamic branch prediction, e.g. using branch history tables

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)
  • Memory System Of A Hierarchy Structure (AREA)

Abstract

Dans un dispositif de prélecture d'instruction une table d'histoire 26 sert de table d'histoire des branchements pour mémoriser les prédictions de branchements et de table d'histoire de changements de page pour mémoriser les informations de changements de page. Même lorsqu'une adresse d'instruction réelle préchargée concide, dans un registre d'adresse d'instruction 23 avec l'une des adresses d'instructions réelles de fin de page, la table d'histoire produit un signal de succès et une adresse d'instruction réelle de changement de page qui correspond à l'adresse d'instruction réelle préchargée contenue dans les informations de changement de page conservées dans la table. En réponse à ce signal, un circuit de commande de préchargement d'instruction 28 fournit, en coopération avec un sélecteur d'adresse demandée 24 au registre d'adresse, l'adresse d'instruction réelle de changement de page, en tant qu'adresse d'instruction réelle immédiatement consécutive à l'adresse d'instruction réelle préchargée de sorte qu'un circuit mémoire d'instruction 21 produise une instruction de changement de page adressée par l'adresse d'instruction réelle de changement de page.

Description

DISPOSITIF DE PRELECTURE D'INSTRUCTION CAPABLE DE
TRAITER LES CHANGEMENTS DE PAGE SANS PERTE DE TEMPS.
DESCRIPTION
-La présente invention concerne un dispositif de prélecture d'instruction destiné à être utilisé dans
un système de traitement des données.
Un système de traitement des données comporte
généralement un dispositif de préfecture d'instruction.
o Divers dispositifs de préfecture d'instruction sont déjà connus. A titre d'exemple, un dispositif de prétecture d'instruction est révélé dans la demande de brevet des Etats-Unis d'Amérique n 552 223 déposée le 16 novembre 1983 par Syuichi Hanatani et ses collaborateurs incluant Toshiteru Shibuya, présent demandeur, pourvu d'une cession au présent cessionnaire. La demande ci-dessus mentionnée a été déposée en tant que demande de continuation partielle
Le 19 décembre 1988, de la demande de brevet des Etats-
Unis d'Amérique n0286 021. Conformément à La demande Hanatani et aL., le dispositif de préfecture d'instruction sert à précharger chacune des instructions d'un programme en tant qu'instruction préchargée avant qu'un circuit d'exécution ' des instructions du système de traitement des données n'exécute une instruction courante préchargée
préalabLement à L'instruction venant d'être préchargée.
Le dispositif de prétlecture d'instruction comprend un. circuit de mémoire d'instruction auquel sont affectées des adresses d'instructions réeLLes et divisé en une pluralité de trames de pages pour mémoriser Les instructions de programme -en tant qu'instructions mémorisées. Les instructions de programme comportent généralement des instructions de branchement. Les adresses d'instructions réelles sont stockées dans un registre d'adresses d'instructions une à la fois, en tant qu'adresse d'instruction réelle préchargée qui appartient à l'une des trames de pages,
qui est utilisée en tant que trame de page préchargée.
Le registre d'adresses d'instructions accède au circuit des mémoires d'instructions pour produire l'une des instructions mémorisées à partir de l'adresse d'instruction réelle préchargée en tant qu'instruction préchargée. Le dispositif de prélecture d'instruction effectue une prédiction de branchements par utilisation d'une table d'histoire des branchements (BHT). La table d'histoire des branchements mémorise des signaux spécifiant les adresses de branchement qui indiquent les adresses d'instructions réeLLes des instructions de branchement en tant qu'adresses d'instructions de branchement, et des adresses de destination de branchement prédites par les résultats antérieurs de L'exécution des instructions de branchement respectives. Lorsque l'adresse d'instruction réelle préchargée coïncide avec l'une particulière des adresses d'instructions de branchement ayant été spécifiée par l'un des signaux indicateurs d'adresses de branchement, la table d'histoire des branchements produit un signal de succès de consultation de la BHT (table d'histoire des branchements), et l'une particulière des adresses de destination de branchement qui correspond à l'adresse d'instruction de branchement particulière, en tant qu'adresse de destination de branchement prédite. En réponse au signal de succès de consultation de la BHT, un circuit de commande de prélecture d'instruction commande un sélecteur d'adresse demandée ayant pour effet que le sélecteur d'adresse demandée fournit au registre d'adresses d'instructions l'adresse de destination de branchement prédite qui suit immédiatement l'adresse d'instruction réelle préchargée. 'Dans les autres cas, Le circuit de commande de préfecture d'instruction commande Le séLecteur d'addresse demandée de façon à ce que ce sélecteur d'adresse demandée fournisse au registre d'adresses d'instructions une adresse d'instruction réelle suivante qui est égale à une somme de l'adresse d'instruction- réeLLe préchargée et d'une largeur de
zone de Lecture.
Comme cela est connu de la technique, Les instructions de programme sont stockées dans une mémoire virtuelle à des adresses d'instructions virtuelles sucessives, c'est-à-dire dans des' pages successives auxquelles sont affectés des numéros de page successifs. -Cependant, les instructions de programme sont stockées dans une mémoire réeLLe (le circuit de mémoire d'instruction) à des adresses d'instructions réelles discontinues, c'est-à-dire seLon des trames de pages discontinues auxquelles sont affectés des numéros de trame de page discontinus. Plus précisément, Les instructions des programmes comportent des instructions de fin de page, chacune située à la fin d'une trame de page. L'instruction de fin de page est suivie d'une instruction de changement de page sitée au début d'une autre trame de page,,qui ne suit pas toujours la trame de page correspondant à L'instruction de fin de page en question.-En d'autres termes, L'autre trame de page correspondant à L'instruction de changement de page possède un numéro de trame de page qui n'est-pas toujours égaL à ceLui que L'on obtient en ajoutant 1 à un autre numéro de trame de page désignant La trame de page correspondant
à L'instruction de fin de page en question.
En effet,. une- instruction de fin de page particuLière est indiquée par une adresse d'instruction réelle de fin de page particulière qui appartient à une trame de page particulière à laquelle est affecté un numéro de trame de page particulier. L'instruction de trame de page particulière est suivie d'une instruction de changement de page immédiatement consécutive indiquée par une adresse d'instruction réelle de changement de page appartenant à une trame de page spécifique à laquelle est affecté un numéro de trame de page spécifique qui ne suit pas toujours le numéro de
trame de page particulier.
Lorsque L'adresse d'instruction réelle préchargée coïncide avec l'instruction de fin de page particulière sans que l'adresse d'instruction réelle courante ne coïncide avec les adresses d'instructions de branchement, le numéro de trame de page spécifique doit être calculé de façon à précharger l'instruction de changement de page immédiatement consécutive. En d'autres termes, la préfecture de L'instruction n'est par poursuivie lorsque l'adresse d'instruction réelle préchargée coïncide avec l'une des instructions de fin de page sans que l'adresse d'instruction réelle préchargée ne coïncide avec l'une quelconque des adressses d'instructions de branchement. Cela est dû au fait qu'une modification est apportée au numéro de trame de page désignant une page de trame à laquelle appartient une adresse d'instruction réelle de l'instruction immédiatement suivante, ce résultat étant obtenu par addition de l'adresse d'instruction réelle précharbée et de La Largeur de la zone lue. Cette modification du numéro de trame de page est appelée un changement de page. Lors de La survenue de ce changement de page, la préfecture de l'instruction doit être effectuée par l'adresse d'instruction réelle qui appartient à la trame de page à laquelle est affecté Le numéro de trame de page correspondant au numéro de page -5 obtenu en ajoutant 1 au numéro de page correspondant à la trame de page à laquelle appartient L'adresse de
l'instruction réelle préchargée.
Pour traiter ce changement de page, un dispositif de préfecture d'instruction classique, tel que celui décrit par Hanatani et aL., précharge L'instruction de fin de page en tant qu'instruction préchargée à partir du circuit de mémoire d'instruction, à L'adresse d'instruction réelle de fin de page stockée dans le registre d'adresse d'instruction. L'instruction de fin de.page est décodée pour donner un signal décodé par un circuit de décodage d'instruction. En réponse au signal décodé, un circuit générateur d'adresse d'instruction produit une adresse d'instruction virtuelle correspondant à l'instruction de changement de page immédiatement consécutive devant être préchargée à la suite. L'adresse d'instruction virtuelle est traduite en une adresse d'instruction réelle désignant l'instruction de changement de page immédiatement consécutive, par un circuit de traduction d'adresse d'instruction. L'adresse d'instruction réelle est stockée dans le registre d'adresse d'instruction sous le contr8le du circuit de commande de préfecture d'instruction pour faire en sorte que le circuit de mémoire d'instruction produise l'instruction de changement de page immédiatement consécutive. Par conséquent, te dispositif de préfecture d'instructions cLassique perd beaucoup de temps Lors du traitement du changement de page. PLus précisément, Le dispositif de prélecture d'instruction classique produit une dégradation des performances du système-de traitement
des données..
La présente invention a pour but de fournir un dispositif de prélecture d'instruction capable de
traiter Les changements de page sans perte 'de temps.
D'autres buts de l'invention apparaîtront au
fur et à mesure de la description qui suit.
Un dispositif de préfecture d'instruction auquel la présente invention peut s'appliquer, est destiné à être utilisé dans un système de traitement des données comportant un circuit d'exécution d'instruction. Le dispositif de prélecture d'instruction sert à précharger successivement chacune des instructions d'un programme en tant qu'instruction préchargée avant l'exécution, par le circuit d'exécution des instructions, d'une instruction courante préchargée avant l'instruction venant d'être préchargée. Le dispositif de prélecture d'instruction comprend un circuit de mémoire d'instruction auquel sont affectées des adresses d'instructions réelles, et divisé en une pluralité de trames de pages permettant la mémorisation des instructions du programme en tant qu'instructions mémorisées. Les instructions de programme comportent des instructions de fin de page qui sont situées aux extrémités des trames de pages respectives et des instructions de changement de page qui suivent les instructions de fin de page respectives. Le dispositif de prélecture d'instruction comprend en outre un registre d'adresse d'instruction permettant le stockage des adresses d'instructions réelles, une par une, en tant qu'adresse d'instruction réelle préchargée qui appartient à l'une des trames de page, utilisée en tant que trame de page préchargée. Le registre d'adresse d'instruction accède au circuit de mémoire d'instruction pour produire L'une des instructions mémorisées à partir de l'adresse d'instruction réelle préchargée, en tant qu'instruction préchargée. Conformément à la présente invention, le dispositif de préfecture d'instruction comprend une table d'histoire connectée au registre d'adresse
7 2636748
d'instruction pour mémoriser les signaux indiquant les adresses de fin de page, qui indiquent les adresses d'instructions réelles des instructions de fin de page, en tant qu'adresses d'instructions réelles de fin de page, et les adresses d'instructions réelles des instructions de changement de page en tant qu'adresses d'instructions réelles de changement de page en correspondance avec les adresses respectives des instructions réelles de fin de page. La table d'histoire produit un signal de succès de consultation de la table et une adresse d'instruction réelle de changement de page particulière lorsque L'adresse d"instruction réelle préchargée coïncide avec l'une des
adresses d'instructions réelles de fin de page.
L'adresse d'instruction réelle de fin de page particulière désigne l'une des instructions de changement de page suivant immédiatement Les instructions de fin de page indiquées par celle qui a été mentionnée cidessus des adresses d'instructions réelles de fin de page. Le dispositif de préfecture d'instruction comprend en outre un moyen générateur d'adresse connecté à la table d'histoire et au registre d'adresse d'instruction pour fournir au registre d'adresse d'instruction, L'adresse d'instruction réelle de changement de page particulière en réponse au signaL de succès de consultation de la table, en tant qu'adresse d'instruction réelle immédiatement consécutive qui suit immédiatement l'adresse d'instruction réelle préchargëe, de façon à ce que le circuit de mémoire d'instruction produise celle qui a été mentionnée ci-dessus des instructions de
changement de page.
- La figure 1 est un schéma fonctionnel d'un système de traitement des données qui comporte un dispositif de prélecture d'instruction conforme à un premier mode de réalisation de la présente invention; - les figures 2(a) et (b) sont des représentations servant à décrire un tampon d'information d'adresse, un premier et un second registres d'informations d'adresses inclus dans le système de traitement des données illustré sur La figure 1; - la figure 3 est un schéma fonctionnel d'un circuit d'addition d'adresses d'instructions utilisé dans le système de traitement des données représenté figure 1; - la figure 4 est un schéma fonctionnel d'un circuit générateur d'adresse d'instruction utilisé dans le système de traitement des données représenté figure 1; - la figure 5 est un schéma fonctionnel d'un circuit d'alignement d'instruction utilisé dans le système de traitement des données représenté figure 1; - la figure 6 représente un exemple de mots d'instruction permettant de décrire le fonctionnement du circuit d'alignement d'instruction illustré figure ; la figure 7 est un chronogramme servant à
la description du fonctionnement du circuit
d'alignement d'instruction illustré figure 5 dans te cas de l'exemple des mots-d'instructions représentés sur la figure 6; - La figure 8 représente un autre exemple de mots d'instructions servant à décrire le fonctionnement du circuit d'alignement d'instruction illustré figure ; la figure 9 est un chronogramme servant à décrire un autre fonctionnement du circuit d'alignement d'instruction illustré figure 5, dans un autre cas correspondant à l'autre exemple de mots d'instructions
9 2636748
représenté figure8; - la figure 10 est un schéma fonctionnel d'un circuit de confirmation de prédiction utilisé dans le système de traitement des données représenté figure 1; - la figure 11 est un schéma fonctionnel d'un circuit de commande de prélecture d'instruction utilisé dans le système de traitement des données représenté figure I; - la figure 12 représente un tableau d'instructions servant à décrire le fonctionnement du système de traitement des données représenté figure 1; 1 0 - les figures 13(a) et (b) représentent ensemble un chronogramme servant à décrire le fonctionnement du système de traitement des données représenté 1; - la figure 14 est un chronogramme d'un système de traitement des données qui comporte -un dispositif de prélecture d'instruction conforme à un second mode de réalisation de la présente invention; - - la figure 15 est un schéma fonctionnel d'un circuit d'alignement d'instruction utilisé dans le 20. système de traitement des données représenté figure 14; - la figure 16 est une vue servant à décrire
le fonctionnement du circuit d'alignement d'instruction -
illustré figure 15; - la figure 17 est un schéma fonctionnel d'un circuit de commande de changement de page utilisé dans le système de traitement des données représenté figure 14; - les figures 18(a) et (b) représentent ensemble un chronogramme servant à décrire le fonctionnement du système de traitement des données représenté figure 14, et - les figures 19(a) et (b) représentent collectivement un chronogramme servant à décrire un autre fonctionnement du système de traitement des
données représenté figure 14.
Si l'on se réfère à La figure 1, celLe-ci représente un système de traitement de données ou d'informations comprenant. un dispositif de préfecture d'instruction conforme à un premier mode de réalisation
de la présente invention.
Le système de traitement des données comporte un circuit d'exécution d'instruction (EX) 20. Le dispositif de préfecture d'instruction sert à précharger successivement chacune des instructions d'un programme en tant qu'instruction préchargée avant que le circuit d'exécution-d'instruction 20 n'exécute une instruction courante préchargée avant l'instruction
venant d'être préchargée.
Le dispositif de prélecture d'instruction
comprend un circuit de mémoire d'instruction (IC) 21.
Le système de traitement des données comporte un circuit de Lecture d'opérande (OC) 22. Le circuit de lecture d'opérande 22 comporte un circuit de mémoire d'opérande (non représenté). Le circuit de mémoire d'instruction 21 et le circuit de mémoire d'opérande du circuit de lecture d'opérande 22 peuvent constituer les parties d'une mémoire centrale (non représentée). Le circuit de mémoire d'instruction 21 et Le circuit de mémoire d'opérande peuvent comprendre des anté-mémoires d'instructions et d'opérandes. Chaque anté-mémoire sert à conserver une copie d'une partie des valeurs qui sont conservées en mémoire central. On supposera dans tout ce qui suit que chaquevaleur est un mot ou un opérande d'instruction à 8 octets. Chaque mot d'instruction consiste généralement en une pluralité d'instructions qui peuvent avoir des longueurs d'instructions
différentes.
"1 52636748
On supposera en outre que Le système de traitement des données peut fonctionner seLon un mode pipeline à 6 étages d'une manière qui sera décrite ultérieurement. Les 6 étages du mode pipeline sont un étage générateur d'adresse (étage AG), un étage de traduction d'adresse (étage AT), un étage d'accès à L'anté-mémoire d'opérande (étage OC), un étage
d'exécution (étage EX), un étage d'accès à L'anté-
mémoire d'instruction (étage IC), et un étage de décodage d'instruction (étage ID). L'étage de production d'adresse se transforme en- L'un d'un étage 1-0 de production d'adresse d'opérande (étage OA) et d'un étage de production d'adresse d'instruction (étage IA)
à un instant donné.
Le circuit de mémoire d'instruction 21 reçoit des adresses d'instructions réelles et est divisé en une pluralité de trames de pages auxquelles sont affectés des numéros de pages de trames. Le circuit de mémoire d'instruction 21 sert à mémoriser les instructions de programme en tant que mots d'instruction mémorisés. On supposera que chaque page de trame possède une taille de page de 4 K (4096) octets. Le dispositif -de préfecture d'instruction comprend un registre d'adresses d'instructions (IAR) 23 dans lequel des adresses d'instructions réelles sont
stockées une par une en tant qu'adresse. d'instruction-
réeLle préchargée courante par L'intermediaire d4un selecteur d'adresse demandée 24 qui -sera décrit ultérieurement plus en détail. L'adresse d'instruction réelle préchargée courante appartient à L'une des trames de pages, qui est utilisée en tant que trame de page préchargée courante. Le registre d'adresse d'instruction 23 accède au circui.t de mémoire d'instruction 21 pour produire l'un des mots d'instructions mémorisés à partir de l'adresse d'instruction réelle préchargée courante, en tant que
mot d'instruction préchargé courant.
L'adresse d'instruction réelle préchargée.
courante est délivrée, non seulement au circuit de mémoire d'instruction 21, mais également à un circuit d'addition d'adresse d'instruction (AA) 25 et à une table d'histoire (HT) 26. Le circuit d'addition d'adresse d'instruction 25 sert à calculer l'adresse d'instruction réelle suivante, d'un mot d'instruction immédiatement consécutif, qui suit immédiatement Le mot d'instruction préchargé. L'adresse d'instruction réelle suivante est fournie au sélecteur d'adresse demandée 24. Lorsque l'adresse d'instruction réelle suivante devient supérieure ou dépasse la trame de page préchargée, le circuit d'addition d'adresse d'instruction 25 produit un signal de changement de page PO. Plus précisément, le circuit d'addition d'adresse d'instruction 25 produit le signal de changement de page PO Lorsque le circuit de mémoire d'instruction 21 produit, en tant que mot d'instruction
préchargé, l'un des mots d'instruction de fin de page.
Dans tous les cas, le circuit d'addition d'adresse d'instruction 25 sert de dispositif de détection de
changement de page pour détecter un changement de page.
Le mot d'instruction préchargé courant et Le signal de changement de page courant sont tous deux fournis à un tampon d'instruction (IB) 27. Le tampon d'instruction 27 est divisé en un champ d'instruction
préchargé 27-1 et un champ de changement de page 27-2.
Le mot d'instruction préchargé courant est' momentanément positionné ou stocké dans le champ d'instruction préchargé 27-1 du tampon d'instruction 27 pour former une queue d'instructions préchargées commençant au mot d'instruction préchargé le plus ancien et se terminant au mot d'instruction préchargé' le plus récent. De même, le signal de changement de page courant est momentanément positionné ou stocké dans le champ de changement de page 27-2 du tampon d'instruction 27 pour former une autre queue de signaux de changement de page commençant au signal de changement de page Le plus ancien et se terminant au
signal de changement de page le plus récent.
La table -d'histoire 26 sert non seulement de table d'histoire-des branchements mais égatement de table d'histoire de changement de page, comme cela
apparaîtra ci-après.
Comme une table d'histoire des branchements du dispositif de prélecture classique, tel qu'il est décrit par Hanatani et al., la table d'histoire 26 mémorise L'adresse de branchement désignant les signaux qui indiquent Les adresses d'instructions réelles des instructions de branchement, en tant qu'adresses d'instructions de branchement, et -qu'adresses de destination de branchement prédites par Les résultats antérieurs de l'exécution des instructions de branchement respectives. La table d'histoire 26 mémorise en outre des bits de validité de branchement qui indiquent soit La validité, soit l'invalidité des signaux indicateurs des adresses de branchement. Les signaux indicateurs des adresses de branchement, Les adresses de destination de branchement et les bits de validité de branchement sont coltectivement appelés information de branchement. Dans tous tes cas, la tabLe d'histoire 26 joue te rôle de la table d'histoire des branchements en mémorisant l'information de branchement.
Lorsque L'adresse d'instruction réelLe-
préchargée coïncide avec L'une des adresses d'instructions de-branchement qui est désignée par L'un des signaux indicateurs d'adresse de branchement, la table d'histoire 26.produit un signal de succès de consultation de la table TH. Simultanément, la table d'histoire 26 produit le bit de validité de branchement indiquant la validité du signal désignant l'adresse de branchement en question et l'adresse de destination de branchement correspondante, en tant qu'adresse de destination de branchement prédite courante. Le signal de succès de consultation de la table TH est délivré à un circuit de commande de préchargement d'instruction (IPC) 28. Le bit de validité de branchement et l'adresse de destination de branchement prédite sont
envoyés à un tampon d'information d'adresse (AIB) 29.
En tant que table d'histoire de changements de pages, la table d'histoire 26 mémorise en outre les signaux désignant l'adresse de fin de page qui spécifie Les adresses d'instructions réelles des mots d'instructions de fin de page, en tant qu'adresses d'instructions réelles de fin de page, et Les adresses d'instructions réelles des instructions de changement de page qui suivent les instructions de fin de page respective, en tant qu'adresses d'instructions réelles de changement de page correspondant aux adresses d'instructions réelles de fin de page respectives. La table d'histoire 26 mémorise en outre des bits- de validité de changement de page qui indiquent soit la validité, soit l'invalidité des signaux indicateurs des adresses de fin de page. Les signaux indicateurs- des adresses de fin de page, Les adresses d'instructions réelles de changement de page, et les bits de vaLidité de changement de page,sont collectivement appelés information de changement de page. Dans tous Les cas,
La table d'histoire 26 joue en outre Le r6Le de table.
d'histoire des changements de pages en mémorisant
l'information de changement de page.
Même lorsque L'adresse d'instruction réelle préchargée courante coincide avec l'une des adresses d'instructions réelles de fin de page, qui est spécifiée par l'un des signaux indicateurs d'adresses de fin de page, La table d'histoire 26 produit Le
signal de succès de consultation de la table TH.
Simultanément, la table d'histoire 26 produit un bit de validité de changement de page courant indiquant la validité du signal indicateur d'adresses de fin de page en question, et l'adresse d'instruction réelle de changement de page correspondante, en tant qu'adresse d'instruction réelle de changement de page prédite courante. Le bit de validité de changement de page courant et L'adresse d'instruction réelle de changement de page prédite courante sont également fournis au
tampon d'information d'adresse 29.
Lors de la production du signal de succès de consultation de la table TH, L'adresse de destination de branchement prédite courante ou L'adresse d'instruction réelle de changement de page prédite courante est envoyée au sélecteur d'adresse demandée 24 en tant qu'adresse d'instruction réelle prédite. La table d'histoire 26 peut être telle que décrite dans La demande de brevet des Etats-Unis d'Amérique mentionnée
précédemment, n 552 223.
Dans la figure 2(a), le tampon d'information d'adresse 29 est divisé en un champ d'adresse préchargée 29-1, un champ d'indicateur de validité 29- 2 et un champ d'adresse prédite 29-3 qui sont également représentés sur La figure 1. En même temps que L'accumulation des mots d'instruction préchargée' successifs dans le tampon d'instruction 27 en réponse -aux adresses d'instructions réelLes préchargées successives, Les adresses d'instructions de branchement et Les adresses d'instructions réeLLes de changement de page incluses dans les adresses d'instructions réelles préchargées successives sont collectivement accumulées dans le champ d'adresse préchargée 29-1 du tampon d'information d'adresse 29, en tant qu'adresses d'instructions préchargées accumulées AFI (figure 2(a)) commençant à l'adresse d'instruction préchargée la plus ancienne et se terminant à l'adresse d'instruction préchargée la plus récente. Les bits de validité de branchement correspondants et les bits de validité de changement de page correspondants, fournis par la table d'histoire 26, sont collectivement accumulés dans le champ d'indicateurs de validité 292 du tampon d'information d'adresse 29, en tant que bits de validité accumulés AV commençant au bit de validité le plus ancien et se terminant au bit de validité le plus récent. Les adresses de destination de branchement prédites correspondantes et les adresses d'instructions réelles de changement de page prédites correspondantes sont collectivement accumulées dans le champ d'adresses prédites 29-3 du tampon d'information d'adresse 29, en tant qu'adresses d'instructions de prédiction accumulées ADI commençant à l'adresse d'instruction prédite la plus ancienne et se terminant à l'adresse
d'instruction prédite la plus récente.
Le tampon d'instruction 27 est connecté à-un circuit d'alignement d'instruction 30 alors que le tampon d'information d'adresse 29 est connecté à un
commutateur d'information d'adresse 31. Le circuit d'alignement d'instruction 30 reçoit le mot d'instruction
préchargé courant produit par le circuit de mémoire d'instruction 21, le mot d'instruction préchargé le plus ancien stocké dans le tampon d'instruction 27, le signal de changement de page courant produit par le circuit d'addition d'adresse d'instruction 25 et le signal de changement de page Le plus ancien stocké- dans le tampon d'instruction 27. Le circuit d'alignement d'instruction sert à sélectionner, en tant que mot d'instruction séLectionné, L'un des mots d'instruction préchargé courants produits par Le circuit de mémoire d'instruction 21 et le mot d'instruction préchargé le plus ancien stocké dans Le tampon d'instruction 27. Ce n'est que lorsque le tampon d'instruction 27 est vide, que le circuit d'aLignement d'instruction 30 sélectionne le mot d'instruction préchargé courant en tant que mot d'instruction sélectionné. Dans le cas contraire, le circuit d'alignement d'instruction 30 sélectionne te mot d'instruction préchargé te plus ancien comme mot d'instruction sélectionné. Le circuit d'alignement d'instruction 30 sert en outre à sélectionner, en tant que signal de changement de page sélectionné SPO, l'un des signaux de changement de page courants produits par Le circuit d'addition d'adresse d'instruction 25 et le signal de changement de page le plus ancien stocké dans le tampon d'instruction 27. De même, le circuit d'alignement d'instruction 30 ne sélectionne Le signal de changement de page courant en tant que signal de changement de page sélectionné SPO, que Lorsque Le tampon d'instruction 2? est vide. Dans
le cas contraire, Le circuit d'alignement d'instruction-
sélectionne Le signal de changement de page le plus ancien en tant que signal de changement de page sélectionné-SPO. Le circuit d'alignement d'instruction extrait une instruction des mots d'instruction
sélectionnés en tant qu'instruction courante.
L'instruction courante est fournie au circuit de
décodage d'instruction (ID) 32.
Le commutateur d'information d'adresse 31 reçoit l'adresse d'instruction préchargée courante produite par te registre d'adresse d'instruction 24, l'adresse d'instruction préchargée la plus ancienne accumulée dans le champ d'adresse préchargée 29-1 du tampon d'information d'adresse 29, le bit de validité courant et l'adresse d'instruction prédite courante qui sont produits par la table d'histoire 26 et le bit de validité le plus ancien et l'adresse d'instruction prédite qui sont respectivement accumulés dans le champ d'indicateur de validité 29-2 et le champ d'adresse prédite 29-3 du tampon d'information d'adresse 29. Le commutateur d'information 31 sert à sélectionner, en tant qu'adresse d'instruction préchargée sélectionnée, l'une des adresses d'instructions préchargées courantes
et l'adresse d'instruction préchargée la plus ancienne.
Ce n'est que lorsque le tampon d'information d'adresse 29 est vide que le commutateur d'information d'adresse 31 sélectionne l'adresse d'instruction préchargée courante en tant qu'adresse d'instruction préchargée sélectionnée. Dans le cas contraire, le commutateur d'information d'adresse 31 sélectionne l'adresse d'instruction préchargée la plus ancienne en tant
qu'adresse d'instruction préchargée sélectionnée.
L'adresse d'instruction préchargée est fournie à un premier registre d'information d'adresse 33. Le commutateur d'information d'adresse 31 sert également à sélectionner, en tant que bit de validité sélectionné, l'un des bits de validité courants et le bit de validité le plus ancien. Le commutateur d'information d'adresse 31 ne sélectionne le bit de validité courant en tant que bit de validité sélectionné, que lorsque le tampon d'information d'adresse 29 est vide. Dans le cas contraire, le commutateur d'information d'adresse 31 sélectionne le bit de validité le plus ancien en tant que bit de validité sélectionné. Le bit de validité sélectionné est également envoyé au premier registre d'information d'adresse 33. Le commutateur
263674E
d'information d'adresse 31 sert en outre à sélectionner, en tant qu'adresse d'instruction prédite sélectionnée, l'une des adresses d'instructions prédites courantes et l'adresse d'instruction prédite la plus ancienne. Ce n'est que lorsque le tampon d'information d'adresse 29 est vide, que le commutateur d'information d'adresse 31 sélectionne l'adresse d'instruction prédite courante, en tant qu'adresse d'instruction prédite sélectionnée., Dans le cas contraire, le commutateur d'information d'adresse 31 sélectionne l'adresse d'instruction prédite la plus ancienne en tant qu'adresse d'instruction prédite sélectionnée. L'adresse d'instruction prédite sélectionnée est fournie au premier registre
d'information 33.
Le circuit de décodage d'instruction 32 sert à décoder l'instruction courante envoyée par le circuit d'alignement 30 en un signal décodé. Le signal décodé comporte un signal de longueur d'instruction indiquant la longueur d'instruction de l'instruction courante et L'information d'adresse d'opérande utilisée pour
produire une adresse d'opérande virtuelle ou logique.
L'information d'adresse d'opérande est fournie à un circuit générateur d'adresse d'opérande (OA) 34. Le signal de longueur d'instruction est envoyé à un circuit générateur d'adresse d'instruction (IA) 35 et à un second registre d'information d'adresse (second AIR) 36. Le premier registre d'information d'adresse 33 est divisé en une première zone d'adresses préchargees 33-1, une première zone d'indicateurs de validité 33-2 et une première zone d'adresses prédites 33-3. Au stade du décodage de l'instruction, l'adresse d'instruction préchargée sélectionnée, le bit de validité sélectionné et l'adresse d'instruction de 263 74e prédiction sélectionnée produits par le commutateur d'information d'adresse 31- sont stockés dans la première zone d'adresse préchargée 33-1, la première zone d'indicateurs de validité 33-2 et la première zone d'adresses prédites 333 du premier registre d'information d'adresse 33, respectivement en tant que première adresse d'instruction préchargée stockée HFI1, que premier bit de validité stocké HV1, et que première adresse d'instruction de prédiction stockée HDI1. La première adresse d'instruction préchargée stockée HFI1, le premier bit de validité stocké HV1 et la première adresse d'instruction de prédiction stockée HDI1 sont
envoyés au second registre d'information 36.
Le circuit générateur d'adresse d'opérande 34 sert à élaborer l'adresse d'opérande virtuelle en réponse à l'information d'adresse d'opérande produite par le circuit de décodage d'instruction 32. L'adresse d'opérande virtuelle est fournie à un circuit de sélection d'adresse virtuelle 37. Le circuit générateur d'adresse d'instruction 35 sert à élaborer une adresse d'instruction virtuelle ou logique en réponse au signal de longueur d'instruction envoyé par le circuit de décodage d'instruction 32. L'adresse d'instruction virtuelle est également envoyée au circuit de sélection
d'adresse 37.
Dans la figure 2(b), le deuxième registre d'information d'adresse 36 est divisé en une première zone de longueur d'instruction 36-1, une première. zone de changement de page 36-2, une seconde zone d'adresse préchargée 363, une seconde zone d'indicateurs de validité 36-4 et une seconde zone d'adresses prédites 36-5. Au stade de-l'élaboration de l'adresse, le signal de longueur d'instruction produit par le circuit de décodage d'instruction 32 est stocké dans la première zone de longueur d'instruction 36-1 du deuxième registre d'information d'adresse 36, en tant que
premier signal de longueur d'instruction HIL1.
Simultanément, le signal de changement de page sélectionné SPO produit par Le circuit d'alignement d'instruction 31 est stocké dans la première zone de changement de page 36-2 du second registre d'information d'adresse 36, en tant que premier signal de changement de page HP01. La première adresse d'instruction préchargée stockée HFI1, Le premier bit de validité stocké HV1 et la première adresse d'instruction de prédiction stockée HDI1 préalablement stockés dans le premier registre d'information d'adresse 33 sont stockés dans La seconde zone d'adresse préchargée 36-3, la seconde zone d'indicateurs de validité 36-4 et La seconde zone d'adresses prédites 36-5 du second registre d'information d'adresse 36, respectivement en tant que seconde adresse d'instruction préchargée stockée HFI2, second bit de validité stocké HV2 et seconde adresse d'instruction de prédiction stockée HDI2. Le premier signal de longueur d'instruction stocké HIL1, Le premier signal de changement de page stocké HP01, La seconde adresse d'instruction préchargée stockée HFI2, Le second bit de validité stocké HV2 et la seconde adresse d'instruction de prédiction stockée HDI2 sont envoyés à un troisième registre d'information d'adresse (troisième AIR) 38. En outre, le premier signal de changement de page stocké HP01' est fourni au circuit de
sélection d'adresse virtuelle 37.
En réponse au premier signal de changement de page HP01, le circuit de sélection d'adresse virtuelle 37 sélectionne, en tant qu'adresse virtuelLe sélectionnée, L'une des adresses d'opérande virtuelles produites par Le circuit générateur d'adresse d'opérande 34 et L'adresse d'instruction virtuelle produite par le circuit générateur d'adresse d'instruction 35. Le circuit de sélection d'adresse virtuelle 37 sélectionne l'adresse d'instruction virtuelLe en tant qu'adresse virtuelLe sélectionnée lorsque le premier signal de changement de page stocké
HP01 est présent ou passe au niveau Logique "1".
Lorsque le premier signal de changement de page stocké HP01 est absent ou passe au niveau logique "0", le circuit de sélection d'adresse virtuelLe 37 sélectionne L'adresse d'opérande virtuelle en tant qu'adresse virtuelle sélectionnée. L'adresse virtuelle sélectionnée est envoyée à un circuit de traduction
d'adresse (AT) 39.
Le circuit de traduction d'adresse 39 sert à traduire l'adresse virtueLLe sélectionnée en une adresse réelle ou physique. L'adresse réelle effective est envoyée au circuit de lecture d'opérande 22, à un circuit de confirmation de prédiction (PC) 40 et à un
registre d'information d'adresse effective (AAIR) 41.
Le troisième registre d'information d'adresse 38 est divisé en une seconde zone de longueur d'instruction 38-1, une seconde zone de changement de page 38, une troisième zone d'adresse préchargée 38-3, une troisième zone d'indicateurs de validité 38-4 et une troisième zone d'adresse prédite 38-5 comme le second registre d'information 36. Au stade de la traduction d'adresse, le premier signal de Longueur d'instruction stocké HIL1, te premier signal de changement de page stocké HP01, la seconde adresse d'instruction préchargée stockée HFI2, le second bit de validité stocké HV2 et la seconde adresse d'instruction de prédiction stockée HDI2 préalablement stockés dans le second registre d'information 36, sont stockés dans la seconde zone de longueur d'instruction 38-1, la seconde zone de changement de page 38-2, ta troisième zone d'adresse préchargée 38-3, La troisième zone d'indicateurs de validité 38-4 et La troisième zone d'adresse prédite 38-5 du troisième registre d'information d'adresse 38, respectivement en tant que second signal de Longueur d'instruction stocké HIL2, second signal de changement de page stocké HP02, troisième adresse d'instruction préchargée' HFI3, troisième bit de validité stocké HV3 et troisième adresse d'instruction de prédiction stockée HDI3. Le second signal de longueur d'instruction stocké HIL2, Le second signal de changement de page stocké HP02, ta troisième adresse d'instruction préchargée stockée HFI3 sont envoyés au registre d'information d'adresse effective 41. Le second signal de changement de page HP02, le troisième bit de vaLidité stocké HV3 et La troisième adresse d'instruction de prédiction stockée HDI3 sont fournis au circuit de confirmation de
prédiction 40.
Le registre d'information d'adresse effective 41 est divisé en une zone de longueur d'instruction effective 41-1, une zone de changement de page effectif 41-2, une-zone d'adresse préchargée effective 41-3, une zone d'indicateurs de validité effectifs 41-4 et une zone d'adresse prédite effective 41-5, comme le second et Le troisième registres d'information d'adresse 36 et 38. Le second signal de longueur d'instruction stocké HIL2, Le second signal de changement de page stocké HP02 et La troisième adresse-d'instruction préchargée stockée HFI3 préaLablement stockés dans te troisième registre d'information d'adresse 38 sont stockés dans La zone de Longueur d'instruction effective 41-1, la zone de changement de page effectif 41-2, la zone d'adresse préchargée effective 41-3, respectivement en tant que signaL- de Longueur d'instruction effective AIL, signal de changement de page effectif APO et adresse d'instruction préchargée effective AFI. Par aiLleurs, l'adresse réelle effective produite par le circuit de traduction d'adresse 39 est stockée dans la zone d'adresse prédite effective 41-5 en tant qu'adresse prédite effective. Le signal de Longueur d'instruction effectif AIL et l'adresse d'instruction préchargée effective AFI sont envoyés à un circuit générateur d'adresse réelle (CRAG) 42. L'adresse prédite effective est fournie à un circuit de sélection d'adresse 43. En outre, L'adresse d'instruction préchargée effective AFI est envoyée au sélecteur d'adresse demandée 24. Dans le registre d'information d'adresse effective 41, La zone de changement de page effectif 41-2 et la zone d'indicateur de validité
effectif 41-4 ne sont pas utilisés.
Le circuit générateur d'adresse réelle 42 sert à additionner Le signal de longueur d'instruction effectif AIL à l'adresse d'instruction préchargée effective AFI pour produire une adresse additionnée, en tant qu'adresse d'instruction réelle suivante désignant
une instruction qui suit l'instruction courante.
L'adresse d'instruction réelle suivante est fournie au
circuit de sélection d'adresse réeLLe 43.
En réponse à l'adresse réeLLe effective désignant l'opérande qui est produit par le circuit traducteur d'adresse 39, le circuit de Lecture d'opérande 22 Lit L'opérande dans le circuit de mémoire d'opérande pour fournir l'opérande au circuit
d'exécution d'instruction 20.
Recevant cet opérande, le circuit d'exécution d'instruction 20 exécute L'instruction courante en utilisant L'opérande pour produire un résuLtat
d'exécution. Lorsque L'instruction courante est une'.
instruction de branchement, Le circuit d'exécution
d'instruction 20 produit un signal de direction de-
branchement représentatif soit d'un "branchement-
réussi", soit d'un "branchement non réussi", en tant que résultat. Le signal de direction de branchement effectif passe au niveau logique "1" lorsque le signal de direction de branchement effectif indique un "branchement réussi". Dans Le cas contraire, le signal de direction de branchement effectif passe au niveau Logique "0". Le signal de direction de branchement effectif est fourni au circuit de confirmation de prédiction 40 et au circuit de sélection d'adresse réelle 43. Si L'instruction courante n'est pas une instruction de branchement, Le circuit- d'exécution d'instruction 20 produit le signal_ de direction de branchement effectif représentatif d'un "branchement
réussi".
En réponse au signal de direction de branchement effectif, Le circuit de sélection d'adresse réelle 43 sert à sélectionner, en tant qu'adresse d'instruction réelle sélectionnée, L'une des adresses d'instructions réeLLes suivantes produites par Le circuit générateur d'adresse réeLLe 42 et L'adresse prédite effective produite par le registre d'information d'adresse effective 41. Lorsque le signal de direction de branchement effectif indique un "branchement réussi", Le circuit de sélection d'adresse réelle 43 produit t'adresse prédite effective en tant qu'adresse d'instruction réelle sélectionnée. Dans le cas contraire, le circuit de sélection d'adresse réelle 43 produit l'adresse d'instruction réelle suivante en
tant qu'adresse d'instruction réelle sélectionnée.
L'adressé d'instruction réeLLe sélectionnée est envoyée
à un registre d'adresse de prédiction (PAR) 44.
Le registre d'adresse de prédiction 44 stocke L'adresse d'instruction réeLLe sélectionnée en tant
qu'adresse d'instruction réelLe de prédiction.
L'adresse d'instruction réelle de prédiction est fournie à La table d'histoire 26 et au sélecteur
d'adresse demandée 24.
En réponse au signal de direction de branchement effectif, au second signal de changement de page stocké HP02 et au troisième bit de validité stocké HV3, le circuit de confirmation de prédiction 40 confirme que la troisième adresse d'instruction de prédiction HDI3, produite par le troisième registre d'information d'adresse 38, coincide ou non avec l'adresse réelle effective produite par Le circuit de traduction d'adresse 39. Lorsque la troisième adresse d'instruction de prédiction stockée HDI3 ne coïncide pas avec L'adresse réelle effective, le circuit de confirmation de prédiction 40 produit un signal d'échec de prédiction PF représentatif d'un échec de la prédiction. Le signal d'échec de prédiction passe au niveau logique "1" lorsque le signal d'échec de prédiction indique un échec de la prédiction. Dans le cas contraire, le signal d'échec de prédiction passe au niveau logique "0". Le signal d'échec de prédiction PF est envoyé au circuit de commande de préchargement d'instruction 28 et à une bascule à impulsion
d'écriture 45..
En réponse au signal d'échec de prédiction, la bascule à impulsion d'écriture 45 fournit à La table
d'histoire 26 une impulsion d'écriture.
En réponse au signal d'échec de prédiction et au signal de succès de consultation de la table, Le circuit de commande de préchargement d'instruction 28 commande le sélecteur d'adresse demandée 24 de façon à ce que ce sélecteur d'adresse demandée 24 fournisse au registre d'adresse d'instruction 23, en tant que nouvelle adresse d'instruction réeLtle préchargée courante, l'une des adresses d'instruction prédite produite par la table d'histoire 26, l'adresse d'instruction préchargée effective AFI produite par le registre d'information d'adresse effective 41, l'adresse d'instruction réelLe de prédiction produite S par le registre d'adresse de prédiction 44 et l'adresse d'instruction réelle suivante produite par le circuit d'addition d'adresse d'instruction 25. Dans tous Les cas, La combinaison du circuit de commande de préchargement d'instruction 28 et du séLecteur d'adresse demandée 24, joue le rôle de dispositif générateur d'adresse permettant de fournir au registre d'adresse d'instruction 23, L'adresse d'instruction
réelle préchargée courante.
En réponse à L'impulsion d'écriture produite par La bascule à impulsion d'écriture 45, la table d'histoire 26 stocke un signat indicateur d'adresse spécifiant l'adresse d'instruction préchargée courante produite par le registre d'adresse demandée 23, un bit de validité représentatif de sa validité, et une adresse d'instruction réelle de prédiction produite par le registre d'adresse-de prédiction 44, en tant que L'un des signaux spécificateurs d'adresses, L'un des bits de validité et L'une des adresses d'instructions prédites. Dans tous Les cas, la bascute à impulsion
d'écriture 45 joue Le rôle, en association avec Le-
registre d'adresse de prédiction 44, de dispositif de renouvellement permettant de renouveler l'adresse d'instruction prédite adressée par L'adresse d'instruction préchargée courante, à L'adresse d'instruction réelle de prédiction, en tant que
nouvelle adresse d'instruction prédite.
Dans La figure 3, Le circuit d'addition d'adresse d'instruction 25 comprend- un additionneur d'adresse 46 pour additionner l'adresse d'instruction réelle préchargée courante stockée dans Le registre d'adresse d'instruction 23, à une largeur de zone de lecture correspondant à un "8" décimal pour produire, en tant qu'adresse d'instruction réelle suivante, un résultat de l'addition dont les trois bits inférieurs sont omis. L'adresse d'instruction réelle suivante
produite est donc un multiple d'un "8" décimal.
L'additionneur d'adresse 46 produit en outre le signal de changement de page PO Lorsque le résultat de l'addition est égal ou supérieur au nombre décimal 4096, c'est-à-dire qu'une retenue est produite tous les 12 bits inférieurs, au treizième bit compté à partir du
bit de poids le plus faible.
Dans la figure 4, on supposera que chaque longueur d'instruction indiquée par te signal de longueur d'instruction a une longueur de 2 octets, de 4 octets, de 6 octets ou de 8 octets. Le circuit générateur d'adresse d'instruction 35 comprend un premier et un second registres 51 et 52. Recevant le signal de longueur d'instruction produit par le circuit de décodage d'instruction 32, le premier registre 51 stocke le signal de longueur d'instruction en tant que signal de longueur d'instruction stocké. Le signal de Longueur d'instruction stocké est fourni à un premier additionneur d'adresse 56. Le second registre 52 stocke une adresse d'instruction virtuelle correspondant à l'instruction courante en tant qu'adresse virtuelle stockée. L'adresse virtuelle stockée est envoyée au premier additionneur d'adresse 56. Recevant le signal de longueur d'instruction stocké et l'adresse virtuelle stockée, le premier additionneur d'adresse 56 additionne l'adresse virtuelle stockée au signal de longueur d'instruction stocké pour produire, en tant qu'adresse d'instruction virtuelle suivante, une adresse d'instruction virtuelle désignant une instruction qui suit immédiatement l'instruction courante. L'adresse d'instruction virtuelle suivante est renvoyée au second registre 52 et fournie à un second additionneur d'adresse 57. Le second additionneur d'adresse 57 sert à additionner l'adresse d'instruction virtuelle suivante au nombre décimal sept pour produire, en tant qu'adresse d'instruction virtuelle, un résultat d'addition dont on omet les
trois bits inférieurs.
Lorsqu'une adresse d'instruction virtuelle de fin de page est stockée dans le deuxième registre 52 en tant qu'adresse virtuelle stockée, le second registre d'adresse 57 produit l'adresse d'instruction virtuelle appartenant à une page suivante qui suit immédiatement une page préchargée courante correspondant à la trame de.page préchargée courante à laquelle appartient l'instruction courante. Plus précisément, l'adresse d'instruction virtuelle de fin de page est identique à l'une des adresses d'instructions virtuelles qui ne sont pas inférieures au nombre décimal (4096p-8) et qui sont inférieures à 4096p, o p représente un nombre entier naturel. Dans ces circonstances, le second additionneur d'adresse 57 produit le nombre décimal
4096p en tant qu'adresse d'instruction virtuelle.
Dans la figure 5, le circuit d'alignement d'instruction 30 comprend un premier et un second registres de mots d'instructions (premier IWR et second IWR) 61 et 62. Le premier registre de mot d'instruction 61 contient un premier mot d'instruction stocké qui sera décrit ci-dessous. Le second registre 'de mot d'instruction 62 contient, en tant que second mot d'instruction stocké, l'un des mots d'instruction préchargés courants produits par le circuit de mémoire d'instruction 21 et le mot d'instruction préchargé le plus ancien stocké dans le champ d'instruction préchargée 27-1 du tampon d'instruction- 27. Ce n'est que lorsque le tampon d'instruction 27 est vide, que Le second registre de mot d'instruction 62 stocke le mot d'instruction préchargé courant en tant que second mot d'instruction stocké. Dans le cas contraire, le second registre de mot d'instruction 62 stocke Le mot d'instruction préchargé le plus ancien en tant que second mot d'instruction stocké. Le premier mot d'instruction stocké est soit le mot d'instruction préchargé courant produit par le circuit de mémoire d'instruction 21, soit te second mot d'instruction stocké, contenu dans le second registre de mot d'instruction 62. Ce n'est que lorsque le tampon d'instruction 27 est vide que le premier registre de mot d'instruction 61 stocke le mot d'instruction préchargé courant en tant que premier mot d'instruction stocké. Dans le cas contraire, le premier registre de mot d'instruction 61 stocke le second mot d'instruction stocké en tant que premier mot d'instruction stocké.. Le premier mot d'instruction stocké et le second mot d'instruction stocké sont tous deux fournis à un
circuit d'alignement d'instruction 63.
Le circuit d'alignement d'instruction 30 comprend un registre d'adresse intra-mot ou intérieure au mot (IWAR) 64 destiné à stocké une adresse intra-mot correspondant à l'instruction courante devant être alignée en tant qu'adresse intra-mot stockée. L'adresse intra-mot stockée est envoyée au circuit d'alignement d'instruction 63 et à un additionneur 65. En réponse à l'adresse intra-mot stockée, Le circuit d'alignement d'instruction 63 extrait l'instruction courante du premier et du second mots d'instruction stockés. Une partie de l'instruction courante est fournie à un décodeur de longueur d'instruction (ILD) 66 en tant que partie d'instruction courante. Le décodeur de Longueur d'instruction 66 décode la partie d'instruction courante pour produire un signal de longueur d'instruction courante représentative d'une longueur d'instruction de L'instruction courante. Le signal de
longueur d'instruction est fourni à l'additionneur 65.
Recevant le signal de Longueur d'instruction et l'adresse intra-mot stockée, l'additionneur 65 additionne le signal de longueur d'instruction à l'adresse intra-mot stockée pour produire une adresse intra-mot suivante- désignant une instruction suivante
qui suit immédiatement l'instruction courante.
L'adresse intra-mot suivante est égale aux trois bits inférieurs d'un résultat de l'addition fournie par l'additionneur 65. L'adressé intra-mot suivante est renvoyée au registre d'adresse intra-mot 64. Lorsque Le résultat de L'addition est égal au nombre décimal huit, L'additionneur 65 produit un signal de Limite de mot WB. Lorsque le résultat de l'addition est supérieur au nombre decimal huit, l'additionneur 65 produit un signal de changement de mot WO. Le signal de changement de mot WO est envoyé à une première porte OU 67 et à une première porte ET 68. Le signal de limite de mot WB est fourni à la première porte OU 67 et à une seconde
porte ET 69.
Le circuit d'alignement d'instruction 30 *25 comprend en outre une première et une seconde bascules de changement de page (première POF/F et deuxième POF/F) 71 et 72 qui correspondent respectivement au premier et au second registres de mots d'instructions 61 et 61. La première bascule de changement de page 72 positionne un premier signal de changement de page positionné qui sera décrit plus loin. La seconde bascule de changement de page 72 positionne, en tant que second signal de changement de page positionné, soit le signal de changement de page- courant produit par le circuit d'addition d'adresse d'instruction 25, soit Le signal de changement de page le plus ancien stocké dans le champ de changement de page 27-2 du tampon d'instruction 27. Ce n'est que Lorsque Le tampon d'instruction 27 est vide que la seconde bascule de changement de page 72 positionne le signal de changement de page courant en tant que second signal de changement de page positionné. Dans Le cas contraire, la secondebascule de changement de page 72 positionne te signal de changement de page Le plus ancien en tant que second signaL de changement de page. Le premier signal de changement de page positionné est soit le signal de changement de page courant produit par.Le circuit d'addition d'adresse d'instruction 25, soit Le second signal de changement de page positionné par La seconde bascule de changement de page 72. Ce n'est que lorsque le tampon d'instruction 27 est vide que La première bascule de changement de page 71 positionne le signal de changement de page courant en tant que premier signal de changement de page positionné. Dans le cas contraire, la première bascule de changement de page 71 positionne le second signal de changement de page positionné en tant que premier signal de changement de page positionné. Le premier signal de changement de page positionné est fourni à la première
25.et à la seconde portes ET 68 et 69.
La première porte OU 67 calcute un OU du second signal de changement de mot WO et du signal de Limite de mot WB qui-sont fournis par L'additionneur , pour produire un premier signal soumis à un OU. Le premier signal soumis à un OU est fourni. à une troisième porte ET 73. La première porte ET 68 calcule un ET du signal de changement de mot WO et du premier signal de changement de page positionné pour produire un premier signal soumis à un ET. Le premier signal soumis à un ET est fourni à une première bascule 74 et à une quatrième porte ET 75. La seconde porte ET 69 calcule un ET du signal de limite de mot WB et du premier signal de changement de page positionné pour produire un second signal soumis à un ET. La troisième porte ET 73 produit un troisième signal soumis à un ET qui sera décrit ci-après. Le second signal soumis à un ET est envoyé à une seconde bascule 76. La première bascule 74 reçoit le premier signal soumis à un ET pour produire un premier signal positionné inversé qui est inversé par rapport au premier signal positionné. Le premier signal positionné inversé est fourni à la quatrième porte ET 75. La quatrième porte ET 75 calcule un ET entre le premier signal positionné et le premier signal-soumis à un ET pour produire un quatrième signal soumis à un ET. Le quatrième signal soumis à un ET est envoyé à une seconde porte OU 77. La seconde bascule 76 reçoit le second signal soumis à un ET pour produire un second signal positionné. Le second signal positionné est fourni à la seconde porte OU 77. La seconde porte OU 77 calcule un OU entre le quatrième signal soumis à un ET et Le second signal positionné pour produire un second signal soumis à un OU et un second signal soumis à un OU inversé. Le second signal soumis à un OU est, fourni en tant que signal de changement de page sélectionné SPO à la première zone de changement de page 33-1 du premier registre d'information d'adresse 33 (figure 1). Le second signal soumis à un OU inversé est fourni à la-troisième porte ET 73 et au registre d'adresse intra-mot 64. En réponse au second signal soumis à un OU inverse, le registre d'adresse intra-mot 64 stocke l'adresse intra-mot suivant produite par
L'additionneur 65 en tant que nouvelle adresse intra-
mot stockée. Le second signal soumis à un OU inversé est également fourni au circuit de décodage
d'instruction 32 (figure 1) en -tant que signalt-
2636748)
d'indication valide représenté en VI et représentatif de la validité de l'instruction courante. Le troisième signal soumis à un ET est obtenu par un ET du signal soumis à un OU et le second signal soumis à un OU inversé. Le troisième signal soumis à un ET est envoyé au premier et au second registres de mots d'instructions 61 et 62 ainsi qu'à la première et à la seconde bascules de changement de page 71 et 72. En réponse au troisième signal soumis à un ET, chacun des premier et second registres de mots d'instructions 61 et 62 et des première et seconde bascules de changement
de page 71 et 72 effectue une opération de maintien.
Dans la pratique, le circuit d'alignement d'instruction 30 comporte un circuit de commande (non représenté) pour commander une prédiction de branchement. L'illustration du circuit de commande est omise du circuit d'alignement d'instruction 30 dans la figure 5, car ce circuit de commande n'entre pas dans
le cadre de la présente invention.
On décrira ci-après en référence aux figures 6, 7, 8 et 9 le fonctionnement du circuit d'alignement
d'instruction 30. -
Se référant aux figures 6 et 7 en plus de la figure 5, on décrira tout d'abord le fonctionnement du circuit d'alignement d'instruction 30 dans un premier cas o le premier registre de mot d'instruction 61 contient un mot d'instruction de fin de page I appartenant à une trame de page et o le second registre de mot d'instruction 62 contient un mot d'instruction de changement de page II qui suit immédiatement le mot d'instruction de fin de page I et appartient à une autre trame de page, différente de la trame de page correspondant au mot d'instruction de fin de page I, sans instruction interposée à un instant donné entre le premier et le second registres de mots d'instructions 61 et 62. Dans le premier cas, le mot d'instruction de fin de page I comprend une instruction Y de 4 octets et une instruction de fin de page Z qui suit immédiatement l'instruction Y et a une longueur de 4 octets. Le mot d'instruction de changement page II comprend une instruction de changement de page A qui suit immédiatement l'instruction de fin de page Z et a une longueur de 6 octets et une instruction B qui suit immédiatement l'instruction A et a une Longueur de 2
octets.
Dans la figure 6, La ligne en trait plein désigne une limite de page. Le mot d'instruction de changement de page II est suivi d'un mot d'instruction III. Les premier à troisième cycles de machine sont indiqués Le long d'une première ligne ou ligne
supérieure dans La figure 7 par les numéros I à 3.
Lors du premier cycle machine, le mot d'instruction de fin de page I et le mot d'instruction de changement de page II sont envoyés dans Les premier et second registres de mots d'instructions (IWR) 61 et 62 de la manière représentée sur La deuxième et la troisième Ligne à partir du haut. Simultanément, Le signal de changement de page au niveau logique "1" est stocké dans La première bascule de changement de page
(POF/F) 71 de la manière représentée sur la quatrième-
Ligne à partir du haut. De plus, le signal de.
changement de page au niveau Logique "O" est stoc-ké dans la seconde bascule de changement-de page 72. Le registre d'adresse intra-mot (IWAR) 64 stocke L'adresse intra-mot de l'instruction de fin de page Z qui devrait être extraite et a Lignée de la manière représentée sur
la cinquième Ligne à partir du haut.
En réponse à l'adresse intra-mot de l'instruction Z, l'instruction de fin de page Z est extraite par le circuit d'alignement d'instruction 63 en tant qu'instruction courante CI de la manière représentée sur la sixième ligne à partir du haut. Au même instant, le décodeur de longueur d'instruction 66 décode l'instruction de-fin de page Z pour produire le signal de longueur d'instruction représentatif de la longueur de l'instruction de fin de page Z. L'additionneur 65 additionne le signal de longueur d'instruction à l'adresse intra-mot pour produire l'adresse intra-mot suivante correspondant à l'instruction de changement de page A. Dans la mesure o le résultat de l'addition effectuée par l'additionneur 65 est égal au nombre décimal huit, l'additionneur 65 produit le signal de limite de mot WB de la manière représentée sur la septième Ligne à partir du haut. Il en résulte que la-deuxième porte ET 69 produit le second signal calculé par un ET au niveau logique "1". En outre, la première porte OU 67 produit le premier signal calculé par un OU, au niveau logique "1". La seconde porte OU 77 produit le second signal calculé par un OU inversé au niveau logique "1" en tant que signal d'indication de validité VI et le second signal calculé par un OU au niveau logique "O" en tant que signal de changement de page sélectionné SPO de la manière illustrée sur les huitième et neuvième lignes à partir du ha-ut. La troisième porte ET 73 produit le troisième signal calculé par un ET au niveau logique "1", de la manière représentée sur la dixième ligne à
partir du haut.
Lors du second cycle machine, le mot d'instruction de changement de page II est stocké dans le -premier registre d'instruction de mot 61 et Le signal de changement de page au niveau logique "0" est positionné dans la première bascule de changement de page 71. Cela est dO au fait que la troisième porte ET 73 produit le troisième signal calculé par un Et au niveau logique "1" lors du premier cycle machine. Au même instant, le registre d'adresse intra-mot 64 reçoit l'adresse intra-mot suivante correspondant à l'instruction de changement de page A, c'est-à-dire un niveau logique "0". Cela est dû au fait que la seconde porte OU 77 produit le second signal calculé par un OU inversé au niveau logique "1" lors du premier cycle machine. Dans la mesure o la seconde porte ET 69 produit le second signal calculé par un ET au niveau logique "1", ce niveau logique "1" est positionné dans La seconde bascule 76 de la manière illustrée sur la onzième ligne à partir du haut. L'instruction de changement de page A est alignée par le registre d'adresse intra-mot 64 et par le circuit d'alignement d'instruction 63. Une adresse intra-mot suivante correspondant à l'instruction suivante B est calculé par le décodeur de -longueur d'instruction 66 et l'additionneur 65. Dans la mesure o la seconde bascule 76 produit le second signal positionné au niveau logique "1", la seconde porte OU 77 fait passer le signal de changement de page sélectionné SPO au niveau logique "'1" et produit le signal d'indication de validité VI au niveau logique "0". En outre, La troisième porte ET 73 produit le troisième signal
calculé par un ET au niveau logique "0".
Lors du troisième cycle machine,.les premier et second registres de mots d'instructions 61 et 62 ainsi que tes première et seconde bascules de changement de page 71 et 72 conservent de façon permanente Leurs contenus qui sont maintenus jusqu'au deuxième cycle machine. Cela est dû au fait que La troisième porte ET 73 produit le troisième signal calculé par un ET au niveau logique "0" lors du second
cycle machine. En outre, Le registre d'adresse intra-
mot 64 conserve de façon permanente.son contenu qui est maintenu jusqu'au second cycle machine. Cela est dû au fait que la deuxième porte OU 77 produit le second signal calculé par un OU inversé au niveau logique '"0" lors du second cycle machine. Il en résulte que l'instruction de changement de page A est alignée et est produite en tant qu'instruction courante CI une
fois supplémentaire comme lors du second cycle machine.
Le niveau logique "0" est positionné dans la seconde bascule 76. Par conséquent, la seconde porte OU 77 fait de nouveau passer le signal de changement de page sélectionné SPO au niveau logique "O" et le signal d'indication de validité VI au niveau logique "1". Par conséquent, l'instruction de changement de page A est fourni au circuit de décodage d'instruction 32 (figure 1) en tant qu'instruction courante CI accompagnée du signal d'indication de validité VI représentatif de La
validité de l'instruction courant CI.
Se référant aux figures 8 et 9 en plus de la figure 5, on décrira à présent le fonctionnement du circuit d'alignement d'instruction 30 dans un second cas o le premier registre de mot d'instruction 61 contient un mot d'instruction de fin de page I appartenant à une trame de page et o le second registre de mot d'instruction 62 contient un mot d'instruction de changement de page II qui suit immédiatement le mot d'instruction de fin de page I et appartient à une autre page de trame, différente de celle du mot d'instruction de fin de page I, une instruction de changement de page A étant interposée entre les premier et second registres de mots d'instructions 61, 62 à un instant donné. Dans le second cas, le mot d'instruction de fin de page I comprend une instruction de fin de page Z de 6 octets et une partie de L'instruction de changement de page A qui suit immédiatement l'instruction Z et a- une longueur de 4 octets. Plus précisément, le mot d'instruction de fin de page I ne comporte que la partie de l'instruction de changement de page A qui a une longueur de 2 octets. Le mot d'instruction de changement de page II comprend une autre partie de l'instruction de changement de page A qui a une longueur de-2 octets et une instruction B qui suit immédiatement l'instruction de changement de page A et a une longueur de 6 octets. Dans la figure 8, la ligne
épaisse en trait discontinu indique une limite de page.
Le mot d'instruction de changemen' de page II est suivi - d'un mot d'instruction III. Les premier à troisième cycles machine sont indiqués sur la première ligne ou ligne du haut dans la figure 9, par les références
numériques 1 à 3.
Lors du premier cycle machine, le mot d'instruction de fin de page I et le mot d'instruction de changement de page II sont positionnés dans les premier et second registres de mots d'instructions 61 et 62 de la manière illustrée sur les seconde et troisième Lignes à partir du haut. Simultanément, le signal de changement de page au niveau logique "1" est positionné dans la première bascule de changement de page 71 de la manière illustrée sur la quatrième ligne à partir du haut. En outre, le signal de changement de page au niveau logique "1" est positionné dans la seconde bascule de changement de page 72.'Le registre d'adresse intra-mot 64 contient L'adresse intra-mot de l'instruction de changement de page A qui est interposée entre le premier et le second registres de
mots d'instructions 61 et 62 de la manière illustrée-
sur la cinquième ligne à partir du haut.
En réponse à t'adresse intra-mot de l'instruction de changement de page A, t'instruction de changement de page A est extraite par le circuit d'alignement d'instruction 63 en tant qu'instruction courante CI de- la manière illustrée sur la sixième ligne à partir du haut. Au même instant, le décodeur de longueur d'instruction 66 décode l'instruction de fin de page Z pour produire le signal de longueur d'instruction représentatif de La longueur de l'instruction de changement de page A. L'additionneur additionne le signal de longueur d'instruction à l'adresse intra-mot pour produire l'adresse intra-mot suivante de l'instruction B suivante. Dans la mesure o le résultat de l'addition fournit par l'additionneur 65 est supérieur au nombre décimal huit, l'additionneur 65 produit le signal de changement de mot WO de la manière illustrée sur la septième ligne à partir du haut. Cela a pour résultat que la première porte OU 67 produit le premier signal calculé par un OU au niveau logique "1" et que la première porte ET 68 produit le premier signal calculé par un ET au niveau logique "1", de La manière représentée sur la huitième ligne à partir du haut. Lorsqu'un niveau logique "0" est positionné dans la première bascule 74 de la manière 'représentée sur la neuvième ligne à partir du haut, c'est-à-dire lorsque la première bascule 74 produit le premier signal positionné inversé au niveau Logique "1" de la manière représenté sur la dixième ligne à partir du haut, la quatrième porte ET 75 produit le quatrième signal calculé par un ET au niveau logique "1" de la manière illustrée sur la onzième ligne à partir du haut. Par conséquent, la seconde porte OU 77 produit le second signal calculé par un OU inversé au niveau logique "O" en tant que signal d'indication de validité VI et le second signal calculé par un OUd au niveau logique "1" en tant que signal de changement de page sélectionné SPO de La manière illustrée sur la douzième et la treizième lignes à partir du haut. Par conséquent, la troisième porte ET 73 produit le troisième signal calculé par un ET au niveau logique "0"' de la manière
illustrée sur la quatorzième ligne à partir du haut.
* Lors du second cycle machine, le premier et le second registres de mots d'instructions 61 et 62 et la première et la seconde bascules de changement de page 71 et 72 conservent de façon permanente leurs contenus qui sont stockés lors du premier cycle machine. Cela est dO au fait que la troisième porte ET 73 produit le troisième signal calculé par un ET au niveau logique "0" lors du premier cycle machine. En outre, le registre d'adresse intra-mot 64 conserve en permanence La valeur qui y est stockée lors du premier cycle machine. Cela est dû au fait que la seconde porte OU 77 produit le second signal calculé par un OU inversé au niveau logique "0" lors du premier cycle machine. Il en résulte que l'instruction de changement de page A est alignée et est produite en tant qu'instruction courante CI, de nouveau comme lors du second cycle machine. L'additionneur 65 calcule l'adresse intra-mot de l'instruction suivante B qui suit immédiatement l'instruction de changement de page A et produit te signal de changement WO. Comme lors du premier cycle machine, La première porte OU 67 produit
le premier signal caLculé par un OU au niveau logique-
"1" et La première porte ET 68 produit le premier signal calculé par un ET au niveau logique "t". Dans La mesure o te premier signal caLtculé par un ET au niveau logique "1" est positionné dans La première bascuLe 74, c'est-à-dire o la première bascule 74 produit Le premier signal positionné inversé au niveau logique "0", la quatrième porte ET 75 produit te quatrième signal calculé par un ET au niveau logique "0". IL en résulte que la seconde porte OU 77 produit Le second signal calculé par un OU inversé au niveau logique "1" en tant que signal d'indication de validité VI, et le second signal calculé par un OU au niveau logique "0'" en tant que signal de changement de page sélectionné SPO. Par conséquent, la troisième porte ET 73 produit le troisième signal calculé par un ET au niveau logique "1". De ce fait, l'instruction A est fournie au circuit de décodage d'instruction 32 (figure 1) en tant qu'instruction courante CI accompagnée du signal d'indication de validité VI représentatif de la
validité de l'instruction courante CI.
Lors du troisième cycle machine, le premier et le second registres de mots d'instructions 61 et 62 contiennent le mot d'instruction de changement de page II et le mot d'instruction III. La première et la seconde bascules de changement de page 71 contiennent
le signal de changement de page au niveau logique "0".
L'adresse intra-mot de l'instruction B est stockée dans le registre d'adresse intra-mot 64. En réponse à l'adresse intra-mot de l'instruction B, le circuit d'alignement d'instruction 63 extrait l'instruction B du mot d'instruction de changement de page II et fournit au circuit de décodage d'instruction 32 (figure 1) l'instruction B.
Comme le montre la description ci-dessus, le
circuit d'alignement d'instruction 30 reçoit le mot d'instruction de fin de page I et fournit au circuit de décodage d'instruction 32 l'instruction de fin de page Z qui est incluse dans le mot d'instruction de fin de page I. Le circuit d'alignement d'instruction 30 produit le signal de changement de page sélectionné SPO sans fournir d'instruction de changement de page A au cours d'un cycle machine. Le circuit d'alignement d'instruction 30 fournit ensuite au circuit de décodage d'instruction 32 l'instruction de changement de page A. Dans la figure 10, le circuit de confirmation de prédiction 40 comprend un comparateur d'adresse 80 qui reçoit l'adresse réelle effective produite par le circuit de traduction d'adresse 39 (figure 1) et'la troisième adresse d'instruction de prédiction stockée HDI3 produite par la troisième zone d'adresse prédite 38-5 du troisième registre d'information d'adresse (figure 1). Le comparateur d'adresse 80 compare l'adresse réelle effective à la troisième adresse d'instruction de - prédiction stockée HDI3. Le comparateur d'adresse 80 produit un signal de non coïncidence au niveau logique "1"' lorsque l'adresse réelle effective ne coincide pas avec la troisième adresse d'instruction de prédiction stockée HDI3. Le signal de non coïncidence est fourni a une cinquième porte ET 81 qui reçoit le troisième bit de validité stocké HV3 en provenance de la troisième zone d'indicateur de validité 38-4 du troisième registre d'information d'adresse 38 (figure 1). La cinquième porte ET 81 calcule un ET entre le signal de non coincidence et le troisième bit de validité stocké HV3
pour produire un cinquième signal calculé par un ET.
Le circuit de confirmation de prédiction 40 comprend en outre une troisième, une quatrième et une cinquième bascules 83, 84 et 85. Recevant le second signal de changement de page stocké HP02 en provenance de la seconde zone de changement de page 38-2 du troisième registre d'information d'adresse 38 (figure 1), la troisième bascule 83 stocke le second signal de changement de page stocké HP02 en tant que signal de changement de page stocké final. La troisième bascule 83 est donc également désignée sous le nom de bascule de changement de page final. Le signal de changement de page stocké final est fourni à une troisièmeporte OU 86. Recevant le cinquième signal calculé par un ET de la cinquième porte ET 81, la quatrième bascule 84 stocke le cinquième signal calculé par un ET en tant que signal de non coïncidence stocké. La quatrième bascule 84 est donc également désignée sous le nom de bascule de non coincidence. Le signal de non coïncidence stocké est envoyé à une sixième porte ET 87. Recevant le troisième bit de validité stocké HV3 en provenance de la troisième zone d'indicateur de validité 38-4 du troisième registre d'information d'adresse 38 (figure 1), la cinquième bascule 85 stocke le troisième bit de validité stocké HV3 en tant que bit de validité stocké final. La cinquième bascule 85 est donc également désignée Sous le nom de bascule de bit de validité final. Le bit de validité stocké final est
fourni à une porte OU EXCLUSIF 88.
Recevant le signal de changement de page stocké final et le signal de direction de branchement effectif en provenance du circuit d'exécution d'instruction 20, la troisième porte OU 86 calcule un OU entre le signal de direction de branchement effectif et le signal de changement de page stocké final pour produire un troisième signal calculé par un OU. Le troisième signal calculé par un OU est fourni à la sixième porte ET 87 qui reçoit le signal de non coïncidence et à la porte OU EXCLUSIF 88 qui reçoit le bit de validité stocké final. La sixième porte ET -87 calcule un ET entre le troisième signal calculé par un OU et le signal de non coïncidence stocké pour produire un sixième signal calculé par un ET. Le sixième signal calculé par un ET est fourni à une quatrième porte OU 89. La porte OU EXCLUSIF 88 calcule un OU EXCLUSIF entre le troisième signal calculé par un OU et le bit de validité stocké final pour produire un signal calculé par un OU EXCLUSIF. Le signal calculé par un OU EXCLUSIF est également fourni à la quatrième porte OU 89. Recevant le sixième signal calculé par un ET et le signal calculé par un OU EXCLUSIF, la quatrième porte OU 89 calcule un OU entre le sixième signal calculé par un ET et le signal calculé par un OU EXCLUSIF pour produire un quatrième signal calculé par un OU, en tant que signal d'échec de prédiction. La combinaison de la troisième porte OU 86 et de la-sixième porte ET 87 sert à détecter une non coïncidence entre l'adresse réelle effective fournie par le circuit de traduction d'adresse 39 et la troisième adresse d'instruction de prédiction stockée HDI3 fournie par la troisième zone d'adresse prédite 38-5 du troisième registre d'information d'adresse 38, même si la prédiction est effectuée en ce qui concerne l'instruction de fin de page ou l'instruction de branchement. La porte OU EXCLUSIF 88 sert à détecter le cas o la prédiction est effectuée bien que l'instruction courante ne soit ni l'instruction de fin de page, ni l'instruction de branchement, et un autre cas o la prédiction n'est pas effectuée malgré le fait que l'instruction courante est soit l'instruction de
fin de page, soit l'instruction de branchement. -
Dans la figure 11, le circuit de commande de préfecture d'instruction 28 comprend une sixième bascule 90, une première, une seconde et une troisième portes tampons 91, 92 et 93, dont chacune comporte une
borne de sortie inverseuse et une borne de sortie non-
inverseuse, et une septième porte ET 94. Recevant le signal d'échec de prédiction en provenance du circuit de confirmation de prédiction 40 (figure 1), la sixième bascule 90 stocke le signal d'échec de prédiction en tant que signal d'échec de prédiction stocké pendant un cycle machine. Le signal d'échec de prédiction stocke
est fourni à la troisième porte tampon 93.
- En réponse au signal de succès de consultation de la table fourni par la table d'histoire 26 (figure 1), la première porte tampon 91 produit respectivement un premier signal de sortie non inversé et un premier signal de sortie inversé à partir de ses bornes de sortie non inverseuse et inverseuse. Le premier signal de sortie non inversé est fourni au sélecteur d'adresse demandée 24 en tant que premier signal d'indication de sélection représentatif de la sélection de l'adresse d'instruction prédite courante fournie par la table d'histoire 26. Le premier signal
de sortie inversé est envoyé à la septième porte ET 94.
En réponse au signal d'échec de prédiction fourni par le circuit de confirmation de prédiction 40, la seconde porte tampon 92 produit respectivement un second signal de sortie non inversé et un second signal de sortie inversé sur ses bornes de sortie non inverseuse et inverseuse. Le second signal de sortie non inversé est fourni au sélecteur d'adresse demandée 24 en tant que second signal d'indication de sélection représentatif de la sélection de l'adresse d'instruction préchargée effective AFI fournie par la zone d'adresse préchargée effective 41-3 du registre d'information d'adresse effective 41 (figure 1). Lorsqu'elle est sélectionnée par le sélecteur d'adresse demandée 24, l'adresse d'instruction préchargée effectife AFI est soit l'adresse d'instruction de fin de page, soit l'adresse d'instruction de branchement, et est utilisée en tant qu'adresse de renouvellement pour le renouvellement de la table d'histoire 26. Le second signal de sortie inversé est envoyé à la septième porte ET 94. En réponse au signal d'échec de prédiction stocké fourni par la sixième bascule 90, La troisième porte tampon 93 produit respectivement un troisième signal de sortie non inversé et un troisième signal de sortie inversé sur ses bornes non inverseuses et inverseuse. Le troisième signal de sortie non inversé est fourni a.u sélecteur d'adresse demandée 24 en tant que troisième signal d'indication de sélection représentatif de la sélection de l'adresse d'instruction réelle de prédiction fournie par le registre d'adresse de prédiction 44 (figure 1). Lorsqu'elle est sélectionnée par le sélecteur d'adresse demandée 24, l'adresse d'instruction réelle de prédiction est soit l'adresse d'instruction de changement de page, soit l'adresse de destination de branchement. Le troisième signal de
sortie inversé est envoyé à la septième porte ET 94.
Recevant les premier à troisième signaux de sortie inversés, la septième porte ET 94 calcule un ET entre les premier à troisième signaux de sortie inversés pour produire un septième signal calculé par un ET en tant quequatrième signal d'indication de sélection représentatif de la sélection de L'adresse d'instruction réelle suivante fournie par le circuit d'addition d'adresse d'instruction 25 (figure 1). Plus précisément, l'adresse d'instruction réelle suivant est sélectionnée par le sélecteur d'adresse demandée 24 lorsque l'un quelconque du signal de succès de consultation de la table, du signal d'échec de prédiction et du signal d'échec de- prédiction stocké,
ne se produit pas.
Se référant à la figure 12, on s'intéressera à présent à un tableau d'instructions qui sont représentées en Y, Z, A, B, C, etc. dans un espace
d'adressage virtuel. L'instruction A se prolonge au-
deLà de La limite de page. Par conséquent, L'instruction A constitue L'instruction de changement de page. L'instruction de changement de page A suit L'instruction de fin de page Z et est suivie par l'instruction B. Plus précisément, l'instruction de changement de page A est divisée sur la Limite de page en une partie avant et une partie arrière qui suit La partie avant. La partie avant de l'instruction de changement de page A est incorporée à un mot d'instruction de fin de page adressé par une adresse d'instruction réelle de fin de page correspondant aU nombre décimal "4096n-8" o n représente un premier entier positif. La partie arrière de l'instruction de changement de page A fait partie d'un mot d'instruction de changement de page adressé par une adresse d'instruction réelle de changement de page correspondant au nombre décimal "4096m" o m représente un second entier positif différent du premier entier positif. On supposera que l'adresse d'instruction réelle de changement de page égale au nombre décimal "4096m" correspond à l'adresse virtuelle de changement de page représentée par <A>' et que l'instruction Z est
adressée par une adresse virtuelle représentée en <Z>.
Se référant aux Figures 13(a) et (b)
en plus de la Fig. 1, on décrira à présent le fonc-
tionnement du système de traitement des données
qui comporte le dispositif de préfecture d'instruc-
tion de la présente invention, dans le cas o l'exé-
cution s'effectue à partir du tableau d'instructions illustré Fig. 12. Les cycles machine numéros zéro à huit sont indiqués sur une première ligne ou ligne supérieure dans chacune des Fig. i3(a) et (b) par les références numériques O à 8. La Fig. 13(a) est un chronogramme servant à décrire le fonctionnement du système de traitement des données
illustré figure 1. La Fig. 13(b) est un autre chro-
nogrammme servant à décrire la circulation du
tableau d'instructions illustré Fig. 12.
Lors du cycle machine numéro zéro, l'adresse d'instruction réelle de fin de page "4096-8" est chargée dans le registre d'adresse d'instruction 23 de la manière illustrée sur la
deuxième ligne à partir du haut de la Fig. 13(a).
La table d'histoire 26 est adressée par l'adresse d'instruction réelle de fin de page pour produire l'adresse d'instruction réelle de changement de page prédite courante "4096m", le bit de validité de changement de page courant et le signaL de succès
de consultation de la table TH de la manière illus-
trée sur la troisième ligne à partir du haut de la Fig. 13(a). Simultanément, le circuit d'addition d'adresse d'instruction 25 additionne l'adresse d'instruction réelle de fin de page "4096n-8" à la largeur de lecture "8" pour produire le signal de changement de page PO de la manière illustrée sur la quatrième ligne à partir du haut de La Fig.
13(a).
Lors du premier cycle machine, l'adresse d'instruction réelle de changement de page prédite "4096m" est chargée dans le registre d'adresse d'instruction 23. Au même instant, l'instruction de fin de page Z est fournie au circuit d'alignement
d'instruction 30 par Le circuit de mémoire d'ins-
truction 21 par l'intermédiaire du tampon d'instruc-
tion 27, de la manière illustrée sur la deuxième
ligne à partir du haut de la Fig. 13(b).
Lors du second cycle machine, une opéra--
tion d'alignement et de décodage de l'instruction
de fin de page Z est effectuée par le circuit d'ali-
gnement d'instruction 30 et par- le circuit de déco-
dage d'instruction 32 de La manière illustrée sur la cinquième Ligne à partir du haut de la Fig.
13(a) et sur la deuxième ligne de la Fig. 13(b).
Lors du troisième cycle machine, le circuit générateur d'adresse d'opérande 34 éLabore une adresse d'opérande virtueLLe correspondant à 35'instruction de fin de page Z de a manière àL'instruction de fin de page Z de la manière illustrée sur la sixième ligne à partir du haut de la Fig. 13(a) et sur la seconde ligne de la Fig. 13(b). La fourniture de l'instruction de changement de page A par le circuit d'alignement d'instruction 30 au circuit de décodage d'instruc-
tion 32 est suspendue. La fourniture de l'instruc-
tion de changement de page A est remplacée par celle du signal de changement de page sélectionné SPO à la première zone de changement de page 33-1 du second registre d'information d'adresse 36 de la manière illustrée sur la septième ligne à partir du haut de la Fig. 13(a). Simultanément, l'adresse d'instruction réelle de fin de page "4096n-8" et l'adresse d'instruction réelle de changement de base prédite "4096m" sont stockées dans la première zone d'adresse préchargée 33-1 et dans la première zone d'adresse prédite 33-3 du premier registre d'information d'adresse, en tant que première adresse d'instruction préchargée stockée HFI1 et que première adresse d'instruction de prédiction stockée HDI1, respectivement, de la manière illustrée sur la huitième et la neuvième lignes à partir du haut de la Fig. 13(a) et sur la
troisième ligne à partir du haut de la Fig. 13(b).
L'instruction de changement de page A est fournie au circuit de décodage d'instruction 32 de la manière illustrée le long de la quatrième ligne
à partir du haut de la Fig. 13(b).
Lors du quatrième cycle machine, le signal de changement de page sélectionné SPO est stocké dans la première zone de changement de page 362 du second registre d'information d'adresse 36 en tant que premir signal de changement de page stocké HP01 de la manière illustrée sur la dizième ligne à partir du haut de La Fig. 13(a). En outre, La première adresse d'instruction préchargée stockée
HFI1 et la première adresse d'instruction de pré-
diction stockée HDI1 sont respectivement stockées dans la seconde zone d'adresse préchargée 36-3 et dans La seconde zone d'adresse prédite 36-5 du second registre d'information d'adresse 33, en tant que seconde adresse d'instruction préchargée HFI2 et que seconde instruction de prédiction
stockée HDI2. Le circuit générateur d'adresse d'ins-
truction 35 élabore l'adresse virtuelLe de change-
ment de page <A>' de La manière représentée sur
la septième ligne à partir du haut de la Fig. 13(a).
Le circuit de traduction d'adresse 39 effectue une opération de traduction d'adresse sur l'adresse virtuele de l'opérande de l'instruction de fin de page Z pour donner une adresse d'opérande réelle Z' de la manière illustrée sur la douzième ligne à partir du haut de la Fig. 13(a). L'opération 2 de décodage de l'instruction de changement de page O
A est effectuée par le circuit de décodage d'ins-
truction 32 de la manière illustrée sur la quatrième
ligne de la Fig. 13(b).
Lors du cinquième cycle machine, Le circuit de Lecture d'opérande 22 lit un opérande dans le circuit à mémoire d'opérande, en réponse à l'adresse réelle d'opérande Z' de la manière
illustrée sur la deuxième ligne de la Fig. 13(b).
Le premier signal de changement de page stocké HP01, la deuxième adresse d'instruction préchargée stockée HFI2 et la deuxième adresse d'instruction de prédiction stockée HDI2 sont stockées dans la seconde zone de changement de page 38-2, dans La troisième zone d'adresse préchargée 38-3 et dans la troisième zone d'adresse prédite 38-5 du troisième registre d'information d'adresse 38, troisième registre7 d'information d'.adresse, 38,
respectivement en tant que second signal de change-
ment de page stocké HP03, troisième adresse d'ins-
truction préchargée stockée HFI3 et troisième adresse d'instruction de prédiction stockée HDI3, de la manière illustrée sur les treizième à
quinzième lignes à partir du haut de la Fig. 13(a).
L'adresse virtuelle de changement de page <A>' est traduite en une adresse réelle de changement de page effective a' par le circuit traducteur
d'adresse 39 de la manière illustrée sur la douzième.
ligne de la Fig. 13(a) et sur la seconde ligne de la Fig. 13(b). Le circuit générateur d'adresse d'opérande 34 élabore une adresse d'opérande
virtuelle correspondant à l'instruction de change-
ment de page A de la manière illustrée
sur la quatrième ligne de la Fig. 13(b).
Lors du sixième cycle machine, le circuit d'exécution d'instruction 20 exécute l'instruction de fin de page Z en utilisant l'opérande de la manière illustrée sur la seconde ligne de la Fig. 13(b). La troisième adresse d'instruction préchargée stockée HFI3 et l'adresse réelle de changement de page effective a' sont stockées dans la zone d'adresse de préchargement effective 41-3 et dans la zone d'adresse prédite effective 41-5 du registre d'information d'adresse effectif 41, respectivement
en tant -qu'adresse d'instruction préchargée effec-
tive AFI et qu'adresse prédite effective, de la manière illustrée sur les seizième et dix-septième
lignes à partir du haut de la Fig. 13(a). Une con-
firmation de la prédiction (PC) est effectuée par le circuit de confirmation de prédiction 40 de la manière illustrée sur la troisième Ligne de la Fig. 13(b). Plus précisément, le circuit de confirmation de prédiction 40 confirme si la troisième adresse d'instruction de prédiction stockée, à savoir "4096m",- coïncide ou non avec l'adresse réelle de changement de page effective a'. Si la troisième adresse d'instruction de predic- tion stockée "4096m" coïncide avec l'adresse réelle de changement de page effective a', l'instruction de changement de page A et les instructions B, C etc. sont successivement exécutées par Le circuit d'exécution d'instruction 20 lors du huitième cycle machine et lors des cycles machine qui suivent
le huitième cycle machine.
Dans le cas contraire, le circuit de confirmation de prédiction 40 produit le signal d'échec de prédiction PF de la manière illustrée sur la dix-huitième ligne à partir du haut de la Fig. 13(a). Dans ces circonstances, l'instruction de changement de page A et les instructions B, C, etc. sont annulées lors du cycle machine suivant,
c'est-à-dire lors du septième cycle machine.
Lors du septième cycle machine, L'adresse prédite effective, c'est-à-dire l'adresse réelle de changement de page effective a' est stockée dans le registre d'adresse de prédiction 44 de la manière illustrée sur la dixneuvième ligne à partir du haut de La Fig. 13(a). En réponse au signal d'échec de prédiction PF, le circuit de commande de préchargement d'instruction 28 commande le selecteur d'adresse demandée 24 de façon à ce que ce -sélecteur d'adresse demandé 24 fournisse au registre d'adresse d'instruction 23 l'adresse d'instruction préchargée effective AFI, c'està-dire "4096n-8". Lorsque La table d'histoire 26 fait l'objet d'un accès par l'adresse d'instruction
préchargée effective, l'impulsion d'écriture renou-
velle l'adresse d'instruction réelle.de changement-
de page "4096m" dans la table d'histoire 26 pour la transformer en l'adresse prédite effective, c'est-à-dire en l'adresse réelle de changement de page effective a', de la manière illustrée sur
la troisième ligne de la Fig. 13(b).
Lors du huitième cycle machine, le circuit de commande de préchargement d'instruction 28 commande le sélecteur d'adresse demandée 24 de façon à ce que ce sélecteur d'adresse demandée 24 fournisse au registre d'adresse d'instruction
23 l'adresse prédite effective a'.
Comme le montre la description faite
ci-dessus, on effectue successivement l'exécution de l'instruction de fin de page Z, le traitement de changement de page et l'instruction de changement de page A qui est prédite par un résultat antérieur
de l'exécution du traitement de changement de page.
Il en résulte que l'annulation porte sur les ins-
tructions qui font suite au traitement du changement de page lorsqu'un échec de prédiction est détecté par le circuit de confirmation de prediction 40 au cours de l'exécution du traitement du changement de page. Par conséquent, il n'arrive jamais qu'une instruction nécessaire quelconque soit annulée ou que des instructions devant être annulées ne soient pas annulées. De ce fait, un nombre minimum
d'instructions est toujours annulé.
La perte de temps est d'un cycle machine pour exécuter le traitement de changement de page lorsque la prédiction du changement de page est validée. Dans le cas contraire, on perd six autres
cycles machine pour exécuter le traitement de chan-
gement de page. Il s'est avéré expérimentalement que la prédiction du traitement de changement de
page présente un taux de réussite d'environ 0,9.
Le taux de réussite indique La probabilité de
réussite de la prédiction. Pour exécuter le traite-
ment de changement de page, la perte de temps moyenne en cycle machine est donnée par:
1 x 0,9 + 6 x 0,1 = 1,5.
Au contraire, La perte de temps est de quatre cycles machine, ce qui correspond à l'-étage IC, à l'étage ID, à l'étage IA et à l'étage AT, pour exécuter le traitement de changement de page dans un dispositif de préfecture d'instruction classique tel que celui qui est décrit par Hanatani et al. Par conséquent, le dispositif de préfecture d'instruction du premier mode de réalisation est capable d'exécuter le traitement de changement de page avec une perte de temps moyenne inférieure
de 2,5 cycles machine à celle du dispositif de.
préLecture d'instruction classique.
En se référant à la Fig. 14, on décrira un système de traitement des données comportant un dispositif de préLecture d'instruction conforme
à un second mode- de réalisation de l'invention.
Le système de traitement des données illustré est semblable à celui qui est illustré Fig. 1, excepté que le circuit d'alignement d'instruction et que le circuit de décodage d'instruction sont modifiés par rapport à ceux qui sont illustrés sur la Fig. 1 par l'addition d'un circuit de commande de 3 changement de page (POC) 95, comme cela apparaîtra plus Loin. Le circuit d'alignement d'instruction et le circuit de décodage d'instruction sont par conséquent représentés en 30a et 32a. Dans le système de traitement des données illustré, les *parties analogues sont représentées par des références numériques identiques à celles de la
Fig. 1. La description de ces parties sera omise
pour simplifier la description.
Chaque instruction peut ou non être une
instruction nécessitant un transcodage d'adresse.
Une telle instruction est appelée instruction de traduction d'adresse. La traduction d'adresse est soit une traduction d'adresse en vue d'une lecture d'un opérande, soit une traduction d'adresse pour
l'adresse de destination d'une instruction de bran-
chement. Recevant une instruction courante en prove-
nance du circuit d'alignement d'instructions 30a, le circuit de décodage d'instruction 32a produit un signal d'instruction de traduction d'adresse ATI au niveau logique "1" lorsque l'instruction i5 courante est l'instruction de traduction d'adresse.
Dans Le cas contraire, le circuit de décodage d'ins-
truction 32a produit le signal d'instruction de traduction d'adresse au niveau logique "0". Le signaL d'instruction de traduction d'adresse est fourni au circuit de commande de changement de page 95. En réponse au signal d'instruction de traduction d'adresse, le circuit de commande de
changement de page 95 commande le signal de change-
ment de page sélectionné PRO fourni par le circuit de décodage d'instruction 32a pour produire un signal de changement de page commandé CPO. Le signal de changement de page commandé CPO est fourni l la première zone de changement de page 36-2 du second registre d'information d'adresse 36. Le circuit de commande de changement de page 95 fournit au circuit de décodage d'instruction 32a un signal
de suspension de la production d'instructions ISS.
Passant à la Fig. 15, le circuit d'ali-
gnement d'instructions 30a est modifié par rapport au circuit d'alignement d'instructions 30 illustré
sur la Fig. 5, comme cela apparaîtra ci-après.
Dans le circuit d'alignement d'instrz: ions illustré a, les parties analogues sont représentées par
les mêmes références numériques que sans la Fig. 5.
La description de ces parties sera omise pour sim-
plifier la description.
Dans la mesure o chaqe instruction présente une longueur d'instruction d'un octet, de deux octets, de quatre octets, de six octets ou de h uit octets et o elle fait Dar conséquent l'objet d'un accès par une adresse d'instruction ayant un numéro d'adresse égal à un nombre pair, chaoue mot d'instruction de huit octets comporte au moins une partie d'une instruction ayant un octet le plus à gauche, à savoir un code d'opération d'une longueur d'un octet qui est sitjé sur l'octet numéro zéro, le second octet, le qatrième octet ou le sixième octet dans le mot d'instruction, Lorsque ceux-ci sont comptés à partir du bit le
plus à gauche du mot d'instruction considéré.
Le premier registre d'instruction 61 est connecté à un premier circuit d'alignement de code d'opération 96. Le premier et le second registres d'instructions 61 et 62 sont tous deux connectés à un second circuit d'alignement de code d'opération 97. Le premier circuit d'a ignement de code d'opération 96 reçoit les octets numéros
zéro, deux, quatre et six du premier mot d'instruc-
tion stocké produit par le premier registre d'ins-
truction 61. Le premier circuit d'alignement de code d'opération 96 extrait, en tant que premier code d'opération extrait, le code d'opération du premier mot d'instruction stocké en réponse aux deux bits supérieurs de l'adresse intra-mot stockée
produite par le registre d'adresse intra-mot 64.
Le premier code d'opération extrait est identique au bit numéro zéro de l'instruction courante
produite par le circuit d'alignement courant 63.
Le premier code d'opération extrait est fourni à un premier décodeur de longueur d'instruction
66a. Le second circuit d'alignement de code d'opéra-
tion 97 reçoit les octets numéros zéro, deux, quatre et six des premier et second mots d'instructions stockés qui sont produits par Le premier et le second registres d'instructions 61 et 62. Le second circuit d'alignement de code d'opération 97 extrait, en tant que second code d'opération extrait, le
code d'opération du premier et du second mots d'ins-
tructions stockés, en réponse à une adresse
intra-mot suivante produite par un premier addi-
tionneur 65a. Le second code d'opération extrait
est fourni à un second décodeur de longueur d'ins-
truction 66b.
En réponse au premier code d'opération extrait, le premier décodeur de longueur d'instruction 66a décode le premier code d'opération
extrait pour produire le signal de longueur d'ins-
truction courant fI(WA) représentatif de la longueur d'instruction de l'instruction courante. Le signal de longueur d'instruction courante fI(WA) est fourni au premier additionneur 65a. Recevant le signal de longueur d'instruction courant fl(WA) et l'adresse intra-mot stockée WA produite par le
registre d'adresse intra-mot 64, le premier addi-
tionneur 65a additionne le signal de longueur d'ins-
truction courante fI(WA) à l'adresse intra-mot stockée WA pour produire l'adresse intra-mot suivante qui est égale aux trois bits d'un premier résultat de l'addition (WA + fi(WA)) calculée 'par le premier additionneur 65a. L'adresse intra-mot Z636Z 4f
64, au second circuit d'alignement de code d'opéra-
tion 97 et à un second additionneur 65b. Lorsque le premier résultat de l'addition (WA + fI(WA))
est égal au nombre décimal 8, le premier addition-
neur 65a produit un premier signal de limite de mots WB1. Lorsque le premier résultat de l'addition (WA + fI(WA)) est supérieur au nombre décimal 8, le premier additionneur 65a produit un premier signal de changement de mot W01. Le premier signal de limite de mot WB1 est fourni à la première porte OU représentée en 67a et à la seconde porte ET représentée-en 69a. Le premier signal de changement de mot W01 est envoyé à la première porte OU 67a
et à une huitième porte ET 98.
En réponse au second code d'opération extrait fourni par le second circuit d'alignement de code d'opération 97, le second décodeur de longueur d'instruction 66a décode le - second code d'opération extrait pour produire un signal de longueur d'instruction suivant fI(WA + fI(WA)) représentatif d'une longueur d'instruction suivante
de l'instruction qui -suit -immédiatement l'instruc-
tion courante. Le signal de longueur d'instruction
suivante fI(WA + fi(WA)) est fourni au second addi-
tionneur 65b. Recevant le signal de longueur d'ins-
truction suivante fI(WA + fI(WA)) et le résultat de l'addition (WA + fI(WA)) produit par le premier additionneur 65a, le second additionneur 65b additionne le signal de longueur d'instruction suivante fI(WA + fI(WA) au premier résultat d'addition (WA + fl(WA)) afin de produire une adresse intra-mot consécutive correspondant à une instruction qui suit immédiatement l'instruction suivante. L'adresse intra-mot consécutive est égale (WA + fl(WA) + fl(WA + fi(WA))) obten- par Le second additionneur 65b. Lorsque le second résultat
d'addition (WA + fI(WA)) + (WA + fl(WA))) est supé-
rieur au nombre décimal 8, le second additionneur b produit un second signal de changement de mot W02. Le second signal de changement de mot W02 est envoyé à une neuvième porte ET 99. Lorsque le second résultat d'addition (WA + fI(WA) + fI(WA + fI(WA))) est supérieur au nombre décimal seize, Le second additionneur 65D produit un troisième signal de changement de mot W03. Le troisième signal de changement de mot W03 est fourni
à la huitième porte ET 98.
Recevant Le premier signal de limite de mot WB1 et le premier signal de changement de mot W01 produit par Le premier acoitionneur 65a, La première porte OU 67a calcule un OU entre Le premier signal de Limite de mot WB1 et le premier signal de changement de mot W01 pour produire le premier signal calcuLé par un OU. Le premier signal calcuLé par un OU est fourni au premier et au second registres d'instructions 61 et 62 et à La première et à la seconde bascules de changement de page 71 et 72 pour faire en sorte que le premier et le second registres d'instructions 61 et 62 et que la première et la seconde bascules de changement
de page 71 et 72 effectuent l'opération de maintien.
Recevant le premier signal de limite de mot WB1 produit par le premier additionneur 65a et le premier signal de changement de page positionné
qui est produit par la première bascule de change-
ment de page 71 et est désigné en PU, la seconde porte ET 69a calcule un ET entre le premier signal
de limite de mot WB1 et le premier signal de change-
ment de page positionné PU pour produire le second
263674 S
signal calculé par un ET. Le second signal calculé
par un ET est fourni à la seconde porte OU représen-
tée en 77a. Recevant le second signal de changement de page positionné produit par La seconde bascule de changement de page 72 et représenté en PL, le premier signal de changement de mot W01 produit par le premier additionneur 65a, et le troisième signal de changement de mot W03 produit par le second additionneur 65b, la huitième porte ET 98 calcule un ET entre le second signal de changement
de page positionné PL, le premier signal de change-
ment de mot W01 et le troisième signal de changement de mot W03 pour produire un huitième signal calculé par un ET. Le huitième signaL calculé par un ET est envoyé à la seconde porte OU 77a. Recevant le premier signal de changement de format de page positionné PU produit par la première bascule de
changement de page 71 et le second signal de change-
ment -de mot W02 produit par le second additionneur b, la neuvième porte ET 99 calcule un ET entre le premier signal de changement de page positionné PU et le second signal de changement de mot W02 pour produire un -neuvième signal calculé par un ET. Le neuvième signal caLculé par un ET est fourni à la seconde porte OU 77a. La seconde porte OU 77a calcule un OU entre le second signal calculé par un -ET, le neuvième signal calculé par un ET et le huitième signal calculé par un ET, pour produire le second signal calculé par un OU. Le second signal calculé par.un OU est fourni en tant que signal de changement de page sélectionné SPO au circuit de commande de changement de page.95
(Fig. 14). --
Se référant à la Fig. 16, on décrira
le fonctionnement du circuit d'alignement d'in-s-
r'.i truction 30a. Une première ligne ou ligne supérieure de la Fig. 16 illustre le premier et le second registres de mots d'instructions 61 et 62 permettant de stocker les premier et second mots d'instructions stockés collectivement en tant que mot d'instruction composé constitué de 16 octets qui sont agencés -de l'octet numéro zéro à l'octet numéro quinze lorsqu'on les compte à partir de l'octet le plus à gauche. Un premier et un seizième exemples du mot d'instruction composé sont représentés sur les seconde à dix-septième lignes à partir du haut, respectivement en (a) à (p). Dans la Fig. 16, chacune des lignes épaisses en trait plein verticales et longues supérieure et inférieure désignent une limite depage telle qu'elle est indiquée. Par conséquent, le signal de changement de page au niveau logique "1" est chargé dans l'une
de la première et de la seconde bascules de change-
ment de page 71 et 72. - Celle qui a été mentionnée ci-dessus de la première et de la seconde bascules de changement de page 71 et 72 correspond à l'un
du premier et du second registres de mots d'instruc-
tions 61 et 62 qui est situé immédiatement à gauche 2 5 des droites verticales épaisses et longues en trait plein. Chaque mot d'instruction composé comporte l'instruction de fin de page indiquée par un rectangle en trait plein épais. Un numéro porté à l'intérieur du rectangle en trait plein épais indique une longueur d'instruction de l'instruction de fin de page. D'autres numéros sont indiqués à droite de l'instruction de fin de page. Chacun
des autres numéros désigne une autre longueur d'ins-
truction de l'instruction de changement de page qui suit immédiatement l'instruction de fin de oage. A titre d'exemple, le premier exemDLe (a) est le mot d'instruction composé comportant l'instruction de fin de page constituée de huit octets agencés de l'octet numéro six à l'octet numéro treize, l'instr-uction de fin de page étant accompagnée par l'instruction de changement de page qui peut avo-ir une Longueur de 4 octets, six octetsou huit octets. Chacun des septième à dixième exemples (g) à (j) constitue le mot d'instruction composé comportant L'instruction de fin de page accompagnée de l'instruction de changement de page
ayant une longueur d'un nombre quelconque d'octets.
On décrira ci-après les première à troi-
sième conditions dans lesquelles l'instruction
courante alignée par le circuit d'alignement d'ins-
truction 63, est l'instruction de fin de page.
On s'intéressera tout d'abord. à la première condition qui concerne les premier à sixième exemples (a) à (f). Dan.s chacun des premier à sixième exemples (a) à (f), la seconde bascule de changement de page 72 produit le second signal de- changement de page positionné PL au niveau logique "1"..En outre, le - premier résultat d'addition (WA + fI(WA)), c'est-àdire La premi.ère somme de l'adresse intra-mot stockée WA'et du signal de longueur d'instruction courante fI(WA), est supérieur au nombre décimal huit. Plus précisément, le premier additionneur 65a produit le premier ' signal de changement de mot W01. au niveau logique "1". De plus, le second résultat d'addition (WA + fI(WA) + fl(WA + fI(WA))), à savoir une seconde somme de l'adresse intra-mot- stockée WA du signal de longueur d'instruction courante fI(WA) et du signal de longueur d'instruction suivante fI(WA + fI(WA)) est supérieur au nombre décimal
26367 48
seize. En d'autres termes, le second additionneur b produit le troisième signal de changement de mot W03 au niveau logique "1". Par conséquent, la première condition indique que le second signal de changement de page positionné PL, le premier signal de changement de mot W01 et le troisième signal de changement de mot W03 sont tous au niveau logique "1". La huitième porte ET 98 sert à mettre
en évidence cette première condition.
On s'jntéressera à présent à la seconde condition qui concerne les septième à dixième exemples (g) à (j). Dans chacun des septième à dixième exemples (g) à (j), la première bascule de changement de page 71 produit le premier signal de changement de page positionné PU au niveau logique "1". De plus, la première somme
(WA + fI(WA)) est égale au nombre décimal huit.
Plus précisément, le premier. additionneur 65a-
produit le premier signal de limite de mot WB1 au niveau logique "1". Il en résulte que la seconde
condition indique que le premier signal de change-
ment de page positionné PU et que le premier signal de limite de mot sont tous deux au niveau logique s"1". La seconde porte ET 69a sert à mettre en
évidence cette seconde condition.
On s'intéressera ci-dessous à la troisième condition qui concerne les onzième à seizième exemples (k) à (p). Dans chacun des onzième à seizième exemples (g) à (j) la première bascule de changement de page 71 produit le premier signal de changement de page positionné PU au niveau logique "1". En outre, la seconde somme (WA + fI(WA) + fi(WA + fI(WA))) est supérieure au nombre décimal 8. Plus précisément, le second
additionneur 65b oroduit le second signal de change-
ment de mot W02 au niveau logique "1". Par consé-
quent, La troisième condition indique que le premier signal de changement de page positionné PU et que - 5 le second signal de changement de mot W02 sont tous deux au niveau logique "1". La neuvième porte ET 99 sert à mettre en évidence cette troisième condition. La seconde porte OU 77a produit le signal de changement de page sélectionné SPO lorsque l'une
des première à troisième conditions est satisfaite.
En d'autres termes, le signal de changement de page sélectionné SPO est produit en synchronisme avec la production de l'instruction de fin de page en tant qu'instruction courante, par le circuit
d'alignement d'instruction 63.
Passant à la Fig. 17, le circuit de commande de changement de page 95 comprend une quatrième porte tampon 103, une -dixième et une onzième portes ET 104 et 105, une septième bascule
106 et une troisième porte OU 107.
En répons'e au signal d'instruction de traduction d'adresse ATI fourni par le circuit de décodage d'instruction 32a, la quatrième porte tampon 103 produit un quatrième. signal de sortie non inversé et un quatrième signal de sortie inversé, respectivement sur ses bornes de sortie non inverseuse et inverseuse.. Le quatrième signal de sortie non inversé et le quatrième signal de sortie inversé sont fournis respectivement à la - dixième et à la onzième portes OU 104 et 105. La dixième porte ET 104 calcule un ET entre le quatrième signal de sortie non inversé et Le signal de changement de page sélectionné SPO fourni par le circuit d'alignement. d'instuction 30a (Fig. ) pour produire un dixième signal calculé par
un ET. Le dixième signal calculé par un ET est.
envoyé à La septième bascule 106. La onzième porte ET,105 calcuLe un ET entre le quatrième signal de sortie inversé et Le signal de changement de page sélectionné SPO pour produire un onzième signal calculé par un ET. Le onzième signal résultant
d'un ET est fourni à la troisième porte OU 107.
La septième bascule 102 maintient le dixième signal résultant d'un ET en tant que signal de changement de page retardé pendant un cycle machine. Le signal de changement de page retardé est envoyé à la troisième porte OU 107. Le signal de changement de page retardé est également fourni au circuit de décodage d'instruction 32a (Fig. 14) en tant
que signal de suspension de la fourniture d'instruc-
tion ISS. La troisième porte OU 107 calcule un OU entre le signal de changement de page retardé et le onzième signal calculé par un ET pour produire un troisième signal résultant d'un OU. Le troisième signal résultant d'un OU est fourni en tant que signal de changement de page commandé CPO à la première zone de changement de page 36-2 du second
registre d'information d'adresse 36 (Fig. 14).
* Avec cette structure, le signal de change-
ment de page sélectionné SPO au niveau logique "1" est produit en tant que signal de changement de page commandé CPO au niveau logique "1" lorsque le signal d'instruction de traduction d'adresse ATI passe au niveau logique "0". Lorsque le signal d'instruction de traduction d'adresse ATI passe au niveau logique "1", Le signal de changement de page sélectionné SPO au niveau logique "1" est retardé d'un cycle machine par la septième bascule
106, puis est produit en tant que signal de change-
ment de page commandé. CPO de niveau logique "1".
Simultanément, le signal de suspension de fourniture d'instruction ISS au niveau logique "1" est produit et dure un cycle machine. En réponse au signal de suspension de fourniture d'instruction ISS au niveau logique "1"', Le circuit de décodage d'ins- truction 32a (Fig. 14) retarde la fourniture de
l'instruction de changement de page suivant l'ins-
truction de fin de page, d'un cycle machine. Par conséquent, le circuit de commande de changement de page 95 joue le rôle, en association avec le circuit de décodage d'instruction 32a, de dispositif
de suspension de la fourniture d'instruction permet-
tant de suspendre la fourniture de l'instruction de changement de page pendant un cycle machine
en réponse au signal de changement de page séLec-
tionné SPO, lorsque l'instruction de fin de page est constituée par l'instruction de traduction d'adresse.
Comme le -montre la description ci-dessus,
la fourniture de l'instruction de fin de page par le circuit de décodage d'instruction 32a au circuit générateur d'adresse d'opérande 34 et La fourniture du signal de changement de page commandé CPO par le circuit de commande de changement de page 95' au second registre d'information d'adresse 36 sont simultanément effectuées lorsque l'instruction
de fin de page n'est pas l'instruction de traduc-
tion d'adresse. Lorsque l'instruction de fin de page est L'instruction de traduction -d'adresse, le circuit de décodage d'instruction 32a fournit au circuit générateur d'adresse d'opérande 34 l'instruction de fin de page, suspend la fourniture de l'instruction de changement de page pendant un cycle machine, le signal de changement de page
commandé étant fourni au second registre d'informa-
tion d'adresse 36, puis fournit au circuit généra- -
teur d'adresse d'opérande 34 l'instruction de
changement de page.
Se référant aux Fig. 18(a) et (b) en
pLus de la Fig. 14, on décrira à présent le fonc-
tionnement du système de traitement des données
qui comporte un dispositif de préfecture d'ins-
truction conforme au second mode de réalisation
de la présente invention, dans un cas o 'l'exécu-
tion porte sur le tableau d'instructions illustré Fig. 12. Les cycles machines numéros zéro à huit sont indiqués le long d'une première ligne ou ligne supérieure dans chacune des Fig. 18 (a) et (b) par les numéros zéro à huit. La Fig. 18(a)
est un chronogramme servant à décrire le fonction-
nement du système de traitement des données
illustré Fig. 14. La Fig. 18(b) est un autre chro-
nogramme servant à décrire l'évolution du tableau d'instructions illustré Fig. 12; On supposera
que l'instruction de fin de page nr'est pas l'ins-
truction de traduction d'adresse.
Au cours du cycle machine numéro zéro, l'adresse d'instruction réelle de fin de page "4096n-8" est chargée dans le registre d'adresse d'instruction (IAR) 23 de la manière illustrée sur la deuxième ligne à partir du haut de la Fig. 18(a). La table d'histoire 26 est adressée par l'adresse d'instruction réelle de fin de page pour produire l'adresse d'instruction réelle de changement de page prédite courante "4096m", le bit de validité de changement de page courant, et le signal de succès de consultation de la table TH de la manière illustrée, sur une troisième ligne à partir du haut de la Fig. 18(a). Simultanément, le circuit d'addition d'adresse d'instruction additionne l'adresse d'instruction réelLe de fin de page "4096n-8" à La largeur de lecture égale à "8" pour produire le signal de changement de page PO de la façon illustrée sur une quatrième
ligne à partir du haut dans la Fig. 18(a).
Lors du premier cycle machine, l'adresse d'instruction réelle de changement de page prédite "4096m" est chargée dans le registre d'adresse d'instruction 23. Au même instant, L'instruction
de fin de page Z est fournie au circuit d'aligne-
ment d"instruction 30a par le circuit de mémoire d'instruction 21 par l'intermédiaire du tampon d'instruction 27 de la façon illustrée sur la
deuxième ligne à partir du haut de la-Fig. 18(b).
15. Lors du second cycle machine, l'instruc--
tion de changement de page A est fournie au circuit d'alignement d'instruction 30a de la façon illustrée sur la quatrième ligne à partir du haut de la Fig. 18(b). Simultanément, une opération d'alignement.et de décodage de l'instruction de
fin de page Z est effectuée par le circuit d'ali-
gnement d'instruction 30a et le circuit de décodage d'instruction 32a;, de la façon illustrée sur La cinquième ligne à partir du haut de La Fig. 18(a) et sur la seconde ligne de la Fig. 18(b). Dans
la mesure o l'instruction courante est l'instruc-
tion de fin de page Z, le signal de changement de page sélectionné SPO est fourni au circuit de commande de changement de page 95 de la façon illustrée sur la sixième ligne 3 partir du haut de la Fig. 18(a). Lorsque L'instruction de- fin de page Z n'est pas l'instruction de traduction d'adresse, le signal d'instruction de traduction d'adresse ATI passe au niveau logique "0" et le circuit de commande de changement de page 95 oroduit le- signal de changement de Dage commandé CPO au niveau logique "1" comme ilLustré sur Les septième et huitième Lignes à partir du haut de
la Fig. 18(a).
Lors du troisième cycle machine, une adresse d'opérande correspondant à l'instruction de fin de page Z est ensuite élaborée de la façon illustrée sur la neuvième ligne à partir du haut de la Fig. 18(a) et sur la seconde ligne de la Fig. 18(b). Simultanément, le signal de changement de page commandé CPO est stocké dans la seconde zone de changement de page 36-1 du second registre d'information d'adresse 36 en tant que second signal de changement de page -stocké HP02, comme i5 illustré sur la dixième ligne à partir du haut de la Fig. 18(a). Le circuit générateur d'adresse d'instruction 35 élabore l'adresse virtuelle de changement de page <A>' de la façon illustrée sur La onzième ligne à partir du haut de la Fig. 18(a) et sur la troisième ligne à partir du haut
de la Fig. 18(b). L'opération de décodage de l'ins-
truction de changement de page A est effectuée par le circuit de décodage d'instruction 32 comme
illustré sur la quatrième ligne de la Fig. 18(b).
Lors du quatrième cycle machine, le circuit de traduction d'adresse 39 n'effectue pas L'opération de traduction d'adresse de l'adresse d'opérande virtuelle correspondant à l'instruction de fin de page Z comme le montrent les droites en tiret représentées le long de la deuxième ligne de la Fig. 18(b). Cela est dO au fait que l'instruction de fin de page Z n'est pas l'instruction de traduction d'adresse. Au lieu de l'opération de traduction d'adresàe de l'instruction de changement de page Z, l'adresse virtuelle de chanqement de Dace <A>' est traduite en une adresse réelle de changement de page effective a' par le circuit de traduction d'adresse 39, comme illustré sur la douzième ligne à partir du haut de la Fig. 18(a) et sur la troisième Ligne de la Fig. 18(b). Le circuit générateur d'adresse d'opérande 34 élabore une adresse d'opérande virtuelle correspondant à l'instruction de changement de page- A comme illustré sur la quatrième Ligne de la Fig. 13(b). Le second signal
de changement de page stocké HP02, l'adresse d'ins-
truction réelle de fin de page "4096n-8", et L'adresse d'instruction réelle de changement de page prédite "4096m" sont respectivement stockés dans la troisième zone de changement de page 38-2, dans la troisième zone d'adresse préchargée 38-3 et dans la troisième zone d'adresse prédite 385 du troisième registre -d'information d'adresse 38, comme illustré sur les treizième à quinzième
lignes à partir du haut de la Fig. 18(a).
Lors du cinquième cycle machine, l.e circuit de lecture d'opérande 22 lit un opérande correspondant à l'instruction de fin de page Z dans le circuit à mémoire d'opérande comme illustré sur la seconde ligne de la Fig. 18(b). L'adresse
d'instruction réelle de fin de page "4096n-8"-
et l'adresse réelle de changement de page effective -a' sont respectivement stockées dans la zone d'adresse préchargée effective 41-3 et la zone
d'adresse prédite effective 41-5 du registre d'in-
formation d'adresse effective 41, comme ilustré sur les seizième et dixseptième lignes à partir du haut de la Fig. 18(a). Une confirmation de la prédiction (PC) est effectuée par Le circuit de confirmation de prédiction 40, comme illustré sur la troisième liane de la Fig. 18(c). Plus
précisément, Le circuit de confirmation de prédic-
tion 40 confirme si l'adresse d'instruction réeLLe de changement de page prédite "4096m" coïncide ou non avec L'adresse réeLle de changement de page effective a'. Si l'adresse d'instruction
réelle de changement de page prédite "4096n" coin-
cide avec l'adresse réelle de changement de page effective a', l'instruction de changement de page A, les instructions B, C etc., sont successivement exécutées par 'le circuit d'exécution d'instruction lors du septième cycle machine et lors des cycles machines qui suivent Le septième cycle machine. Dans le cas contraire, 'e circuit de confirmation de prédiction 40 produit le signal d'échec de prédiction PF de la façon illustrée sur La dix-huitième ligne à partir du haut de la Fig. 18(a). Dans ces circonstances,
l'instruction de changement de page A et les ins-
tructions B, C, etc., sont annulées Lors du cycle
machine suivant ou du sixième cycle machine.
Lors du sixième cycle machine, l'adresse réelle de changement de page effective a' est "25 stockée dans le registre d'adresse de prédiction 44, comme illustré sur la dix-neuvième ligne à partir du haut de la Fig. 18(a) . En réponse au signal d'échec de prédiction PF, le circuit de commande de prélecture d'instruction 28 commande le sélecteur d'adresse demandée 24 pour faire en sorte que ce sélecteur d'adresse demandée 24 fournisse au registre d'adresse d'instruction 23 l'adresse d'instruction réelle de' fin de page "4096n-8". Lorsque la table d'histoire 26 fait l'objet d'un accès par l'adresse d'instruction réelle de fin de page, L'impulsion d'écriture
renouvelle L'adresse d'instruction réelle de chan-
gement de page "4096m" dans cette table d'histoire
26 pour qu'elle devienne l'adresse réelle de chan-
gement de page effective a', comme L'illustre
la troisième ligne de la Fig. 18(b).
Lors du septième cycle machine, le circuit de commande de préfecture d'instruction 28 commande le sélecteur d'adresse demandée 24 de façon à ce que ce dernier fournisse au registre d'adresse d'instruction 23 l'adresse réelle de
changement de page effective a'.
Comme le montre la description ci-dessus,
l'exécution du traitement de changement de page ne conduit à aucune perte de temps lorsque la
prédiction du changement de page devient vraie.
Dans le cas contraire, la perte de temps est de cycles machines pour exécuter le traitement
de changement de page.
Se référant aux Fig. 19(a) et (b) en
plus de la Fig. 14, on décrira un autre fonctionne-
ment du système de traitement des données compor-
tant le dispositif de préfecture d'instruction conforme au second mode de réalisation de la présente invention, dans le cas o. l'exécution porte sur le tableau d'instruction. illustré Fig. 12. Cet autre fonctionnement est semblable à celui qui est illustré sur les Fig. 18(a) et (b), excepté
que l'instruction de fin de page Z est L'instruc-
tion de traduction d'adresse. Par conséquent,
la description ne portera que sur les différences
entre ces deux opérations.
Lors du second cycle machine, le circuit de décodage d'instruction. 32a produit le signal d'instruction de traduction d'adresse ATI au niveau
L ogique "1 Lorsque Le cir cuit de-décodage- dins-.
logique "1" lorsque le circuit de-décodage d'ins' truction 32a décode l'instruction de fin de page Z, comme l'illustre la septième ligne à partir du haut de la Fig. 19a. Cela est dO au fait que l'instruction de fin de page est l'instruction de traduction d'adresse. Il en résulte que la fourniture de l'instruction de changement de page A est suspendue: pendant un cycle machine et que le signal de changement de page commandé CPO est produit lors du troisième cycle machine, comme l'illustre La huitième Ligne à partir du haut
de la Fig. 19(a).
Lors d'un quatrième cycle de machine, le signaL de changement de page commandé CPO est stocké dans La première zone de changement de page 36-1 du second registre d'information
d'adresse 36 en tant que premier signal de change-
ment de page stocké HP01 comme l'illustre la
dixième ligne à partir du haut de la Fig. 18(a).
Le circuit générateur d'adresse d'ins-
truction 35 élabore l'adresse virtuelle de change-
ment de page <A>' de la façon illustrée sur la onzième ligne à partir du haut de la Fig. 18(a) et sur la troisième ligne à partir du haut de la Fig. 18(b). Le circuit de traduction d'adresse 39 effectue une opération de traduction d'adresse d'une adresse d'opérande virtueLLe correspondant à l'instruction de fin de page Z en une adresse d'opérande réelle Z', comme l'illustre la douzième
ligne à partir du haut de La Fig. 19(a). L'opéra-
tion de décodage de l'instruction de changement de page A est effectuée par le circuit de décodage d'instruction 32 de La façon illustrée sur la
quatrième ligne de la Fig. i9(b).
Lors d'un cinquième cycle machine, le premier signal de changement de page stocké HP'01, l'adresse d'instruction réelle de fin de page "4096n- 8" et l'adresse d'instruction réette de changement de page "4096m" sont respectivement stockés dans la seconde zonè de changement de page 38-2, la troisième zone d'adresse préchargée 38-3 et la troisième zone d'adresse prédite 38-5 du troisième registre 'd'information d'adresse 38, comme l'illustrent les treizième à quinzième lignes à partir du haut de la Fig. 19(a). L'adresse virtueLLe de changement de-page <A>' est traduite en une adresse réelle de changement de page effectif a' par le circuit de traduction d'adresse 39, comme l'illustrent La douzième ligne de la
Fig. 19(a) et la seconde ligne de la Fig. 19(b).
Lors d'un sixième cycle - machine, L'adresse d'instruction réeLle de fin de page "4096n-8" et l'adresse réelle de changement de - page effectivea' sont respectivement stockées dans la zone d'adresse préchargée effective 41-3 et dans la zone d'adresse prédite effective 41-5 du registre d'information d'adresse effective 41, comme l'illustrent la seizième et la dix-septième lignes à partir du haut de la Fig. 19(a). Une confirmation de la prédiction (PC-) est effectuée par le circuit de confirmation de prédiction 40 comme Le montre la troisième Ligne de la Fig. 19(b). Si La prédiction est correcte,
l'instruction de changement de page A et Les ins-
tructions B, C, etc. sont exécutées successivement par Le circuit d'exécution d'instruction 20 lors du huitième;cycLe machine et des cycles qui suivent Le huitième cycle machine. Dans le cas contraire, le circuit de confirmation de prédiction 40 produit Le- signal d'échec de prédiction PF, comme ittustré sur la dix-huitième Ligne à partir du haut de
La Fig. 19(a). Dans ces circonstances, l'instruc-
tion de changement de page A et les instructions B, C, etc. sont annulées lors du cycle machine
suivant ou du septième cycle machine.
Au cours d'un septième cycle machine, L'adresse réelle de changement de page effective
a' est stockée dans le registre d'adresse de pré-
diction 44, comme indiqué sur une dix-neuvième ligne à partir du haut de la Fig. 19(a). En réponse au signal d'échec de prédiction PF, le circuit de commande de préfecture d'instruction 28 commande le sélecteur d'adresse demandée 24 de façon à ce que ce dernier fournisse au registre d'adresse d'instruction 23 l'adresse d'instruction réelle de fin de page "4096n-8". Lorsque la table d'histoire 26 fait l'objet d'un accès par l'adresse d'instruction réelle de fin de page "4096n-8",
l'impulsion d'écriture renouvelle l'adresse d'ins-
truction réelle - de changement de page "4096m" dans la table d'histoire 26 pour la transformer en l'adresse réelle de changement de page effective a', comme indiqué sur la troisième ligne de la
Fig. 19(b).
Au cours du huitième cycle machine, le circuit de commande de prélecture d'instruction 28 commande le sélecteur d'adresse demandée 24 pour que ce dernier fournisse au registre d'adresse d'instruction 23 l'adresse réelle de changement
de page effective a'.
Comme il ressort de la description
fournie ci-dessus, le temps perdu pour exécuter le traitement de changement de page est d'un cycle machine lorsque la prédiction du changement de page devient vraie. Dans le cas contraire, la Derte de temps est de six autres cycles machines
pour exécuter le traitement de changement de page.
Comme le montre -la description faite
ci-dessus, l'instruction de changement de page A est traitée Immédiatement après. le traitement du changement de page que l'instruction de fin de page soit ou non L'instruction de traduction d'adresse. Il en résulte -qu'une annulation des
instructions qui font suite au traitement de chan-
gement de page est effectuée lorsqu'un défaut
de prédiction est détecté par le circuit de confir-
mation de prédiction 40. Par conséquent, il n 'arrive jamais qu'une instruction nécessaire quelconque soit annulée ou que des instructions i5 devant être annulées ne soient pas annulées. De ce fait, un nombre minimum d'instructions est
toujours annulé.
Il a été expérimentalement prouvé que le taux de résussite de prédiction du traitement
de changement de page est d'environ 90 % et que -
le taux d'apparition de l'instruction de traduction d'adresse est d'environ 25 %. Le taux d'apparition
représente la probabilité d'apparition de l'ins-
truction de traduction d'adresse. La perte de temps.moyenne en cycle machine due à l'exécution *du traitement de changement de page dans le second mode de réalisation est donné par: (0 x 0,9 + 5 x 0,1) x 0,25 + (1 x 0,9 + 6 x 0,1) x 0,75
- 1,25
Par contre, la perte de temps due à l'exécution du traitement de changement de page dans le dispositif de prélecture 'd'instruction classique tel que celui qui est décrit par Hanatani et aI, - est de quatre cycles machines. Par
cbnséouent, le -disoositif de préfecture d'instruc-
26367 48
tion du second mode de réalisation permet d'exécu-
ter Le traitement de changement de page avec une perte de temps moyenne inférieure de 2,75 cycles machine à ceLLe du dispositif de préfecture d'ins-
truction classique.

Claims (3)

REVENDICATIONS
1. Dispositif de-prélecture d'instruction
destiné à être utilisé dans un système de traite-
ment des données comportant un circuit d'exécution d'instruction (20), Ledit dispositif de préfecture
d'instruction permettant de précharger successive-
ment chacune des instructions d'un programme en tant qu'instruction préchargée avant exécution, par Ledit circuit d'exécution d'instruction, d'une instruction courante préchargée antérieurement à ladite instruction -préchargée et comprenant un circuit de mémoire d'instruction (21) auquel est fournie *une adresse d'instruction réelle et i5 divisé en une pluralité de trames de pages pour mémoriser lesdites instructions de programme en
tant qu'instructions mémorisées, lesdites instruc-
tions de programme comportant des instructions de fin de page (2) qui sont situées aux extrémités des trames de pages respectives, et des instructions de changement de pages (A) qui suivent les instructions de fin de page respectives, un registre d'adresse d'instruction (23) pour stocker Lesdites adresses d'instructions réelles une par
une en tant qu'adresse d'instruction réelle pré-
chargée appartenant à -l'une desdites trames de
pages, utilisées en tant que trames de pages pré-
chargées, Ledit registre d'adresse d'instruction accédant audit circuit de mémoire d'instruction pour produire l'une desdites instructions mémorisées à partir de ladite adresse d'instruction réelle-préchargée, en tant que ladite instruction préchargée, caractérisé par l'amélioration qui comprend: une table d'histoire (26) connectée audit registre d'adresse d'instruction pour mémoriser les signaux indicateurs d'adresse de fin de page qui indiquent les adresses d'instructions réelles desdites instructions de fin de page, en tant qu'adresses d'instructions réelles de fin de page, et les adresses d'instructions réelles desdites instructions de changement de page, en tant qu'adresses d'instructions réelles de changement de page, en correspondance avec les adresses d'instructions réelles de fin de page respectives, ladite table d'histoire produisant un signal de succès de
consultation de la table et une adresse d'instruc-
tion réelle de changement de page particulière
lorsque ladite adresse d'instruction réelle pré-
chargée coïncide avec l'une desdites adresses d'instructions réelles de fin de page, ladite adresse d'instruction réelle de changement de
page particulière indiquant l'une desdites instruc-
tions de changement de page qui suit immédiatement l'une desdites instructions de fin de page indiquée par ladite adresse d'instruction réelle de fin de page; et un moyen générateur d'adresse connecté à ladite table d'histoire et audit registre d'adresse d'instruction pour fournir audit registre d'adresse d'instruction ladite adresse
d'instruction réeLle de changement de page particu-
lière en réponse audit signal de succès de consul-
tation de la table en tant qu'adresse d'instruction
réelle immédiatement consécutive qui suit immédia-
temént l'adresse d'instruction réelle préchargée pour faire en sorte que, ledit circuit à mémoire
d'instruction produise ladite instruction de chan-
gement de page.
2. Dispositif de prélecture d'instruction
selon la revendication 1, ledit système de traite-
ment des données comportant un circuit générateur d'adresse d'instruction (35) pour élaborer une adresse d'instruction virtuelle correspondant à une instruction immédiatement consécutive à
ladite instruction préchargée, et un circuit -tra-
- ducteur d'adresse (39) pour traduire ladite adresse d'instruction virtuelLe en une adresse réelle -10 effective, caractérisé en ce que ledit dispositif de préfecture d'instruction comprend en outre: un moyen de détection de changement de page (25) connecté audit registre- d'adresse d'instruction pour détecter si ladite instruction
suivante se prolonge ou non sur ladite trame de-
page préchargée en réponse à ladite instruction
réelle préchargée, ledit moyen détecteur de change-
ment de page produisant un signal de changement de page lorsque ladite instruction suivante se prolonge sur ladite trame de page préchargée; un moyen de maintien de changement de page (71, 72) connecté au moyen de détection de changement de page pour stocker ledit signal de changement de page en tant que signal de changement ' de page stocké; un moyen de stockage d'adresse prédite effective connecté audit circuit de traduction
d'adresse pour stocker ladite adresse-réelle effec-
tive en tant qu'adresse prédite effective;
un moyen de stockage d'adresse d'instruc-
tion de changement de page connecté à ladite table d'histoire pour stocker ladite adresse
d'instruction réelle de changement de page particu-
lière en tant qu'adresse d'instruction de
prédiction stockée;-- -
un moyen de confirmation de prédiction (40) connecté audit moyen de stockage d'adresse d'instruction de changement de page, audit circuit de traduction d'adresse, et audit moyen de maintien de changement de page pour confirmer si l'adresse d'instruction de prédiction stockée coincide ou non avec ladite adresse réelle effective en réponse audit signal de changement de page stocke, ledit moyen de confirmation de prédiction produisant un signal d'éc'hec de prédiction lorsque ladite adresse d'instruction de prédiction stockée ne coincide-pas avec ladite adresse réelle effective; et un moyen de renouvellement (45, 44) connecté audit moyen de stockage d'adresse prédite effective, à ladite table d'histoire et audit moyen de confirmation de prédiction pour renouveler ladite adresse d'instruction réelle de changement de page particulière en ladite adresse prédite
effective en réponse audit signal d'échec de pré-
diction, en tant que nouvelle adresse d'instruction
réelle de changement de page.
3. Dispositif de préfecture d!instruction selon la revendication 2, lesdites instructions
de programme comprenant des instructions de traduc-
tion d'adresse nécessitant une traduction d'adresse, caractérisé en ce que le dispositif de préfecture d'instruction comprend en outre un moyen de suspension de la fourniture d'instruction (95, 32a) connecté audit circuit de mémoire d'instruction et audit moyen de détection de changement de page pour suspendre la fourniture de ladite instruction suivante pendant un cycle machine en réponse audit signal
de changement de page lorsque ladite instruction.
préchargée est l'une desdites instructions de fin de page et en outre, lorsque ladite instruction préchargée est l'une desdites instructions de
traduction d'adresse.
FR8912407A 1988-09-21 1989-09-21 Dispositif de prelecture d'instruction capable de traiter les changements de page sans perte de temps Expired - Fee Related FR2636748B1 (fr)

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
JP63234903A JP2722523B2 (ja) 1988-09-21 1988-09-21 命令先取り装置

Publications (2)

Publication Number Publication Date
FR2636748A1 true FR2636748A1 (fr) 1990-03-23
FR2636748B1 FR2636748B1 (fr) 1994-04-29

Family

ID=16978106

Family Applications (1)

Application Number Title Priority Date Filing Date
FR8912407A Expired - Fee Related FR2636748B1 (fr) 1988-09-21 1989-09-21 Dispositif de prelecture d'instruction capable de traiter les changements de page sans perte de temps

Country Status (3)

Country Link
US (1) US5168557A (fr)
JP (1) JP2722523B2 (fr)
FR (1) FR2636748B1 (fr)

Families Citing this family (38)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JP2508280B2 (ja) * 1989-07-28 1996-06-19 日本電気株式会社 分岐ヒストリテ―ブル制御方式
US5375213A (en) * 1989-08-29 1994-12-20 Hitachi, Ltd. Address translation device and method for managing address information using the device
JPH04340145A (ja) * 1991-05-17 1992-11-26 Nec Corp キャッシュメモリ装置
JP2682264B2 (ja) * 1991-05-21 1997-11-26 日本電気株式会社 プログラムカウンタ装置
AU665368B2 (en) * 1992-02-27 1996-01-04 Samsung Electronics Co., Ltd. CPU having pipelined instruction unit and effective address calculation unit with retained virtual address capability
US5507028A (en) * 1992-03-30 1996-04-09 International Business Machines Corporation History based branch prediction accessed via a history based earlier instruction address
US5392410A (en) * 1992-04-30 1995-02-21 International Business Machines Corporation History table for prediction of virtual address translation for cache access
US5404471A (en) * 1992-11-20 1995-04-04 International Business Machines Corp. Method and apparatus for switching address generation modes in CPU having plural address generation modes
JP3254019B2 (ja) * 1992-11-30 2002-02-04 富士通株式会社 データ先読み制御装置
US5588128A (en) * 1993-04-02 1996-12-24 Vlsi Technology, Inc. Dynamic direction look ahead read buffer
AU6701794A (en) * 1993-05-14 1994-12-12 Intel Corporation Speculative history mechanism in a branch target buffer
US5388247A (en) * 1993-05-14 1995-02-07 Digital Equipment Corporation History buffer control to reduce unnecessary allocations in a memory stream buffer
JPH09500989A (ja) * 1993-05-14 1997-01-28 インテル・コーポレーション 分岐ターゲット・バッファにおける推論履歴
US5925125A (en) * 1993-06-24 1999-07-20 International Business Machines Corporation Apparatus and method for pre-verifying a computer instruction set to prevent the initiation of the execution of undefined instructions
JP2596712B2 (ja) * 1993-07-01 1997-04-02 インターナショナル・ビジネス・マシーンズ・コーポレイション 近接した分岐命令を含む命令の実行を管理するシステム及び方法
US5887174A (en) * 1996-06-18 1999-03-23 International Business Machines Corporation System, method, and program product for instruction scheduling in the presence of hardware lookahead accomplished by the rescheduling of idle slots
US5813045A (en) * 1996-07-24 1998-09-22 Advanced Micro Devices, Inc. Conditional early data address generation mechanism for a microprocessor
US6044222A (en) * 1997-06-23 2000-03-28 International Business Machines Corporation System, method, and program product for loop instruction scheduling hardware lookahead
US8127121B2 (en) 1999-01-28 2012-02-28 Ati Technologies Ulc Apparatus for executing programs for a first computer architechture on a computer of a second architechture
US6954923B1 (en) 1999-01-28 2005-10-11 Ati International Srl Recording classification of instructions executed by a computer
US6763452B1 (en) 1999-01-28 2004-07-13 Ati International Srl Modifying program execution based on profiling
US7111290B1 (en) 1999-01-28 2006-09-19 Ati International Srl Profiling program execution to identify frequently-executed portions and to assist binary translation
US7013456B1 (en) 1999-01-28 2006-03-14 Ati International Srl Profiling execution of computer programs
US7065633B1 (en) 1999-01-28 2006-06-20 Ati International Srl System for delivering exception raised in first architecture to operating system coded in second architecture in dual architecture CPU
US7941647B2 (en) 1999-01-28 2011-05-10 Ati Technologies Ulc Computer for executing two instruction sets and adds a macroinstruction end marker for performing iterations after loop termination
US6978462B1 (en) 1999-01-28 2005-12-20 Ati International Srl Profiling execution of a sequence of events occuring during a profiled execution interval that matches time-independent selection criteria of events to be profiled
US8074055B1 (en) 1999-01-28 2011-12-06 Ati Technologies Ulc Altering data storage conventions of a processor when execution flows from first architecture code to second architecture code
US8065504B2 (en) 1999-01-28 2011-11-22 Ati International Srl Using on-chip and off-chip look-up tables indexed by instruction address to control instruction execution in a processor
US7275246B1 (en) 1999-01-28 2007-09-25 Ati International Srl Executing programs for a first computer architecture on a computer of a second architecture
US6779107B1 (en) 1999-05-28 2004-08-17 Ati International Srl Computer execution by opportunistic adaptation
US6549959B1 (en) 1999-08-30 2003-04-15 Ati International Srl Detecting modification to computer memory by a DMA device
US6651162B1 (en) 1999-11-04 2003-11-18 International Business Machines Corporation Recursively accessing a branch target address cache using a target address previously accessed from the branch target address cache
US6934832B1 (en) 2000-01-18 2005-08-23 Ati International Srl Exception mechanism for a computer
US7085915B1 (en) 2000-02-29 2006-08-01 International Business Machines Corporation Programmable prefetching of instructions for a processor executing a non-procedural program
JP2003196156A (ja) * 2001-12-28 2003-07-11 Fujitsu Ltd 情報処理装置および情報処理方法
US6983356B2 (en) * 2002-12-19 2006-01-03 Intel Corporation High performance memory device-state aware chipset prefetcher
US6925928B2 (en) * 2003-09-18 2005-08-09 Anthony Fox Trash compactor for fast food restaurant waste
CN102662690B (zh) * 2012-03-14 2014-06-11 腾讯科技(深圳)有限公司 应用程序启动方法和装置

Family Cites Families (7)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US4218743A (en) * 1978-07-17 1980-08-19 International Business Machines Corporation Address translation apparatus
US4498146A (en) * 1982-07-30 1985-02-05 At&T Bell Laboratories Management of defects in storage media
US4594659A (en) * 1982-10-13 1986-06-10 Honeywell Information Systems Inc. Method and apparatus for prefetching instructions for a central execution pipeline unit
US4680700A (en) * 1983-12-07 1987-07-14 International Business Machines Corporation Virtual memory address translation mechanism with combined hash address table and inverted page table
US4757438A (en) * 1984-07-12 1988-07-12 Texas Instruments Incorporated Computer system enabling automatic memory management operations
US4691277A (en) * 1984-10-24 1987-09-01 International Business Machines Corp. Small instruction cache using branch target table to effect instruction prefetch
US4797810A (en) * 1986-06-26 1989-01-10 Texas Instruments Incorporated Incremental, multi-area, generational, copying garbage collector for use in a virtual address space

Non-Patent Citations (2)

* Cited by examiner, † Cited by third party
Title
IBM TECHNICAL DISCLOSURE BULLETIN. vol. 27, no. 10B, Mars 1985, NEW YORK US pages 6267 - 6268 'Overlapping instrcution unit delay with instruction prefetching' *
IBM TECHNICAL DISCLOSURE BULLETIN. vol. 29, no. 10, Mars 1987, NEW YORK US pages 4524 - 4526 'Mechanism for recording prefetching history in BHT' *

Also Published As

Publication number Publication date
FR2636748B1 (fr) 1994-04-29
JP2722523B2 (ja) 1998-03-04
JPH0283735A (ja) 1990-03-23
US5168557A (en) 1992-12-01

Similar Documents

Publication Publication Date Title
US5168557A (en) Instruction prefetching device having a history table for memorizing page last real instruction addresses and page-over all real instruction addresses providing for quicker page-over processing time
US5742802A (en) Method and system for efficiently mapping guest instruction in an emulation assist unit
US4827402A (en) Branch advanced control apparatus for advanced control of a branch instruction in a data processing system
US5446849A (en) Electronic computer which executes squash branching
US6189090B1 (en) Digital signal processor with variable width instructions
US9753730B2 (en) Decoding instructions from multiple instructions sets
CN114116016B (zh) 基于处理器的指令预取方法及装置
US6684319B1 (en) System for efficient operation of a very long instruction word digital signal processor
US6499100B1 (en) Enhanced instruction decoding
JP3768473B2 (ja) データ処理装置における命令の予測
US5740418A (en) Pipelined processor carrying out branch prediction by BTB
JPH08221324A (ja) キャッシュメモリへのアクセス
JPH0773104A (ja) キャッシュ・システム
JP3499135B2 (ja) 情報処理装置
JPH02287626A (ja) パイプライン方式の分岐命令制御装置
US6237087B1 (en) Method and apparatus for speeding sequential access of a set-associative cache
US10558462B2 (en) Apparatus and method for storing source operands for operations
EP1607878B1 (fr) Procédé de traitement d&#39;une adresse virtuelle pour la programmation d&#39;un contrôleur de DMA, système sur puce et programme d&#39;ordinateur associés
AU613232B2 (en) Wide branch instruction acceleration
US7075462B2 (en) Speeding up variable length code decoding on general purpose processors
US6735689B1 (en) Method and system for reducing taken branch penalty
US6928587B2 (en) Device for analyzing digital data
JPH04205448A (ja) 情報処理装置
JPH04348430A (ja) データ処理装置
JPH0348535B2 (fr)

Legal Events

Date Code Title Description
ST Notification of lapse