FR2730075A1 - Circuit de commande pour traduction d'adresse et methode de commande de ce circuit - Google Patents

Circuit de commande pour traduction d'adresse et methode de commande de ce circuit Download PDF

Info

Publication number
FR2730075A1
FR2730075A1 FR9600920A FR9600920A FR2730075A1 FR 2730075 A1 FR2730075 A1 FR 2730075A1 FR 9600920 A FR9600920 A FR 9600920A FR 9600920 A FR9600920 A FR 9600920A FR 2730075 A1 FR2730075 A1 FR 2730075A1
Authority
FR
France
Prior art keywords
address
register
address translation
control circuit
logical
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
FR9600920A
Other languages
English (en)
Other versions
FR2730075B1 (fr
Inventor
Hisashi Saito
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 FR2730075A1 publication Critical patent/FR2730075A1/fr
Application granted granted Critical
Publication of FR2730075B1 publication Critical patent/FR2730075B1/fr
Anticipated expiration legal-status Critical
Expired - Fee Related legal-status Critical Current

Links

Classifications

    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F12/00Accessing, addressing or allocating within memory systems or architectures
    • G06F12/02Addressing or allocation; Relocation
    • G06F12/08Addressing or allocation; Relocation in hierarchically structured memory systems, e.g. virtual memory systems
    • G06F12/10Address translation

Landscapes

  • Engineering & Computer Science (AREA)
  • Theoretical Computer Science (AREA)
  • Physics & Mathematics (AREA)
  • General Engineering & Computer Science (AREA)
  • General Physics & Mathematics (AREA)
  • Memory System Of A Hierarchy Structure (AREA)
  • Advance Control (AREA)

Abstract

La présente invention concerne un circuit de commande de traduction d'adresse comprenant un additionneur unique à la fois pour une génération d'adresse logique et pour une traduction d'adresse. Des sélecteurs sont prévus à chaque entrée de l'additionneur pour sélectionner une des valeurs pour une génération d'adresse logique et des valeurs pour la génération d'adresse, rendant ainsi superflu un deuxième additionneur affecté uniquement à la traduction d'adresse.

Description

CIRCUIT DE COMMANDE POUR TRADUCTION D'ADRESSE
ET
METHODE DE COMMANDE DE CE CIRCUIT
CONTEXTE DE L'INVENTION
La présente invention concerne un circuit de commande de traduction d'adresse, et plus particulièrement un circuit de commande de traduction d'adresse utilisant une méthode de "segments organisés en pages". Dans une méthode de segments organisés en pages, qui est typiquement utilisée dans un système à mémoire cache ou à mémoire virtuelle, chaque segment est divisé en pages. Ainsi, un mot possède une adresse logique (par exemple une adresse virtuelle) comprenant trois composantes : une adresse de segment, une adresse de page et un déplacement. La configuration mémoire possède une table de segment et un jeu de tables de page, une pour chaque segment. La table de segment contient, pour chaque adresse de segment, un pointeur dirigé vers la base de la table de page correspondante.
La table de page est utilisée d'une façon bien connue pour déterminer l'adresse physique requise (voir par exemple J. Hayes : Computer Architecture and
Organization, McGraw Hill, 1988) et un schéma général de l'opération requise est présenté sur la figure 4 de la présente demande.
La figure 1 présente un circuit de commande de traduction d'adresse classique utilisant la méthode de segments organisés en pages, qui comprend un registre d'instruction 110 pour sortir un numéro spécifié (par exemple un 1 spécifié) d'un registre de base d'une pluralité de registres de base 121 et un numéro spécifié (par exemple un 1 spécifié) d'un registre d'index d'une pluralité de registres d'index 122. Le registre de base spécifié des registres de base 121 sort une adresse de base selon la spécification du registre d'instruction 110. Le registre d'index spécifié des registres d'index 122 sort également une adresse d'index selon la spécification du registre d'instruction 110. Le registre d'instruction 110 sort également le déplacement.
Un additionneur d'adresses 130 additionne l'adresse de base, l'adresse d'index et le déplacement et la somme est stockée sous forme d'adresse logique dans un registre d'adresse logique 140.
Un système d'alignement 150 aligne l'adresse stockée dans le registre d'adresse logique 140 pour en faire une adresse alignée sur multiplet (byte) . Cela signifie que l'adresse de segment et l'adresse de page sont décalées vers la gauche par le système d'alignement 150 pour sortir une adresse alignée sur multiplet vers un additionneur de traduction d'adresse 230.
Un registre d'état 210, couplé à une mémoire principale, conserve un état d'un traitement en cours (ou tâche). Comme l'état, le registre d'état 210 stocke une adresse de départ dans la table de segment en cours, une adresse de départ dans la table de page en cours et une adresse de page physique. Un système d'alignement 220 aligne une des adresses dans le registre d'état 210 pour fournir une adresse alignée sur multiplet à l'additionneur de traduction d'adresse 230.
L'additionneur de traduction d'adresse 230 additionne l'adresse alignée provenant du système d'alignement 150 et l'adresse alignée provenant du système d'alignement 220. La somme provenant de l'additionneur 230 est sortie sous la forme d'une adresse physique et stockée dans un registre d'adresse physique 240.
Un comparateur 250 compare l'adresse dans le registre d'adresse logique 140 avec les adresses dans un tampon de consultation de table (TLB) 200. Si l'adresse dans le registre d'adresse logique 140 coïncide avec l'une des adresses dans le TLB 200 (par ex. une "COINCIDENCE"), le TLB 200 sort une adresse physique correspondante (par exemple une adresse physique correspondant à l'adresse logique).
Un sélecteur 260 sort l'adresse depuis le registre d'adresse physique 240 si les adresses ne coïncident pas, mais sort l'adresse physique depuis le TLB 200 si les adresses coïncident.
Dans le schéma classique, deux additionneurs sont nécessaires. Cela signifie que l'additionneur d'adresses 130 et l'additionneur de traduction d'adresse 230 sont exigés. L'additionneur d'adresses 130 est utilisé exclusivement pour des générations d'adresse logique tandis que l'additionneur de traduction d'adresse 230 est utilisé exclusivement pour les traductions d'adresse. Ainsi, dans le système cidessus, les additionneurs sont utilisés de façon exclusive l'un de l'autre et par conséquent le schéma classique comporte un additionneur redondant, augmentant ainsi la complexité du circuit et les coûts de fabrication.
RESUME DE L'INVENTION
Au regard du problème précédent du circuit classique, un objet de la présente invention est de simplifier le circuit de commande pour la traduction d'adresse.
Dans un circuit de commande de traduction d'adresse selon la présente invention, un additionneur unique est utilisé à la fois pour les générations d'adresse logique et pour les traductions d'adresse. Des sélecteurs sont prévus à chaque entrée de l'additionneur unique pour sélectionner une valeur parmi une série de valeurs pour des générations d'adresse logique et parmi une série de valeurs pour des traductions d'adresse.
Avec la structure originale et non évidente de la présente invention, une deuxième additionneur, affecté uniquement à la traduction d'adresse, est superflu.
L'additionneur unique peut être utilisé pour effectuer à la fois la génération d'adresse logique et la traduction d'adresse. I1 en résulte ainsi des coûts de fabrication réduits et une complexité de circuit réduite.
BREVE DESCRIPTION DES DESSINS
Les objets, caractéristiques et avantages de cette invention mentionnés ci-dessus ainsi que d'autres apparaîtront mieux en se référant à la description détaillée suivante de l'invention en conjonction avec les dessins annexés.
La figure 1 est un schéma de principe d'un circuit de commande de traduction d'adresse classique;
La figure 2 est un schéma de principe d'un mode de réalisation d'un circuit de commande de traduction d'adresse selon la présente invention;
La figure 3 illustre une correspondance entre une adresse logique et une adresse physique d'une configuration mémoire pour une mémoire principale;
La figure 4 illustre le matériel et les opérations d'accès aux tables de traduction d'adresse;
La figure 5 est un organigramme indiquant l'opération de génération d'une adresse physique avec le mode de réalisation de la présente invention; et
La figure 6 est un chronogramme montrant la synchronisation des opérations par le circuit de commande de traduction d'adresse du mode de réalisation de la présente invention.
DESCRIPTION DETAILLEE DU MODE DE REALISATION PREFERE
Un circuit de commande pour la génération d'adresse conforme à un mode de réalisation de la présente invention va être décrit en détail en référence aux dessins annexés.
En référence à la figure 2, un registre d'instruction 110 sort un numéro spécifié (par exemple un 1 spécifié) d'un registre de base d'une pluralité de registres de base 121 et un numéro spécifié (par exemple un 1 spécifié) d'un registre d'index d'une pluralité de registres d'index 122. Le registre de base spécifié des registres de base 121 sort une adresse de base telle qu'elle est spécifiée par le registre d'instruction 110. Le registre d'index spécifié des registres d'index 122 sort également une adresse d'index telle qu'elle est spécifiée par le registre d'instruction 110. Le registre d'instruction 110 sort également un déplacement. L'adresse logique est générée par l'addition de l'adresse de base, de l'adresse d'index et du déplacement.
Un registre d'état 210 conserve un état d'un traitement en cours. Comme l'état, le registre d'état 210 stocke une adresse de départ dans la table de segment en cours dans la mémoire principale, une adresse de départ dans la table de page en cours dans la mémoire principale, et une adresse de page physique.
Un système d'alignement 220 aligne une des adresses dans le registre d'état 210 sorti à cette occasion, pour fournir à un sélecteur 126 une adresse alignée sur multiplet.
Des sélecteurs 125, 126 et 127 reçoivent un signal de commande depuis un contrôleur 270 qui identifie soit une opération de génération d'adresse logique soit une opération de traduction d'adresse. Les sélecteurs 125, 126 et 127 sortent chacun une adresse dans un additionneur d'adresses 130.
L'additionneur d'adresses 130 additionne les adresses venant des sélecteurs 125, 126 et 127 afin de produire une somme. La somme est stockée soit dans un registre d'adresse logique 140 soit dans un registre d'adresse physique 240 selon la phase d'opération (par exemple une génération d'adresse logique ou une traduction d'adresse).
Un système d'alignement 150 aligne une adresse stockée dans le registre d'adresse logique 140 pour en faire une adresse alignée sur multiplet. Cela signifie que l'adresse de segment et l'adresse de page sont décalées vers la gauche par le système d'alignement 150 pour fournir une adresse alignée sur multiplet.
Un tampon de consultation de tables (TLB) 200 stocke une pluralité de paires d'adresses logiques et d'adresses physiques. L'accès au TLB 200 se fait de façon associative. Cela signifie qu'un comparateur 250 compare l'adresse dans le registre d'adresse logique 140 avec les adresses dans le TLB 200. Si les adresses coïncident (par exemple l'adresse logique dans le registre d'adresse logique 140 est trouvée dans le TLB et une "COINCIDENCE" survient), le TLB 200 sort une adresse physique correspondante.
Un sélecteur 260 sort l'adresse depuis le registre d'adresse physique 240 si les adresses ne coïncident pas (par exemple un "DEFAUT DE COINCIDENCE "), et l'adresse depuis le TLB 200 si les adresses coïncident (par exemple une " COINCIDENCE ").
Le contrôleur 270 génère un signal de commande à destination des sélecteurs 125, 126 et 127 selon que l'adresse coïncide ou non selon la détermination du comparateur 250. En cas de "DEFAUT DE COINCIDENCE ", on suppose qu'une opération de phase de traduction d'adresse est en cours. Dans la phase de traduction d'adresse, le sélecteur 125 sélectionne une adresse depuis le système d'alignement 150, le sélecteur 126 sélectionne une adresse depuis le système d'alignement 220 et le sélecteur 127 sélectionne un modèle nul (par exemple, tous "0").Dans une autre phase (par exemple la phase de génération d'adresse logique), le sélecteur 125 sélectionne une adresse depuis le registre de base spécifié des registres de base 121, le sélecteur 126 sélectionne une adresse depuis le registre d'index spécifié des registres d'adresse 122, et le sélecteur 127 sélectionne un déplacement depuis le registre d'instruction 110.
En référence à la figure 3, une adresse logique (par exemple une adresse virtuelle) est divisée en une adresse de segment (SA), une adresse de page logique (LPA) et une adresse relative (RA). L'adresse de segment est utilisée pour accéder à une table de segment dans la mémoire principale. L'adresse de page logique est utilisée pour accéder à une table de page dans la mémoire principale. L'adresse relative est utilisée pour accéder à une mémoire (par exemple la mémoire principale) . L'adresse relative est également appelée un déplacement.
Une adresse physique est divisée en une adresse de page physique (PPA) et en adresse relative. L'adresse de page physique correspond à l'adresse de segment combinée à l'adresse de page logique. L'adresse relative de l'adresse logique est la même que l'adresse relative de l'adresse physique.
En référence à la figure 4 qui illustre une opération d'accès des tables de traduction d'adresse, le registre d'état 210 sort une adresse de départ (STA) dans la table de segment 300. La table de segment 300 sort un descripteur de segment (SD) dans une adresse de "STA + SA = SDA". Le descripteur de segment sort une adresse de départ (PTA) dans la table de page 400.
La table de page 400 a un descripteur de page (PD) dans une adresse de "PTA + LPA = PDA". Le descripteur de page (PD) a l'adresse de page physique (PPA).
L'adresse physique dans la mémoire principale 500 est obtenue par "PPA + RA".
Ci-dessous et en référence aux figures 2 à 6, l'opération du circuit de commande de traduction d'adresse selon le mode de réalisation, mentionné cidessus, de la présente invention est décrite.
Dans l'étape 910, l'adresse logique est générée en additionnant ensemble l'adresse de base, l'adresse d'index et le déplacement. Dans l'étape 920, le TLB 200 est consulté pour déterminer s'il contient l'adresse logique (par exemple une "COINCIDENCE" ou un "DEFAUT DE
COINCIDENCE"). Si le TLB 200 a l'adresse (une "COINCIDENCE"), l'adresse de page physique est obtenue directement depuis le TLB 200 (dans l'étape 950) étant donné qu'une telle opération exige moins de temps en terme de cycles machine qu'une opération de traduction d'adresse.
Si le TLB 200 ne contient pas l'adresse logique (un "DEFAUT DE COINCIDENCE"), une traduction d'adresse est requise (dans les étapes 930 et 940). Dans l'étape 930, le descripteur de segment est généré depuis la table de segment en mémoire. Dans l'étape 940, le descripteur de page est généré depuis la table de page. Dans ce cas, l'adresse de page physique est obtenue depuis le descripteur de page.
Dans l'étape 960, l'adresse physique est générée en additionnant l'adresse de page physique et le déplacement (par exemple l'adresse relative (RA)).
Ensuite, la synchronisation détaillée de l'opération est décrite ci-dessous.
Quand l'instruction "INST a" est réglée dans le registre d'instruction 110 en T1, un décodeur (non présenté) décode le mot d'instruction en utilisant un code d'instruction. Si l'instruction "INST a" est une instruction qui donne accès à la mémoire (par exemple la mémoire principale), le registre d'instruction 110 sort le numéro de registre de base, ie numéro de registre d'index et le déplacement "a2".Le registre de base 121 sort "aO" et le registre d'index 122 sort
Du fait que le signal de commande venant du contrôleur 270 est un "0", le sélecteur 125 scrt l'adresse de base "aO" sous la forme d'un signal d'entrée gauche dans l'additionneur d'adresses 130, le sélecteur 126 sort l'adresse d'index "al" sous la forme d'un signal d'entrée centrale dans l'additionneur d'adresses 130, et le sélecteur 127 sort le déplacement "a2" sous la forme d'un signal d'entrée droite dans l'additionneur d'adresses 130.
L'additionneur d'adresses 130 additionne les signaux d'entrée d'additionneur d'adresses et sort la somme "a" de l'addition d'adresses. La somme de l'addition d'adresses est une adresse logique. Par conséquent, la somme de l'addition d'adresses est stockée dans le registre d'adresse logique 140.
L'opération de traduction d'adresse depuis une adresse logique conservée dans le registre d'adresse logique 140 dans une adresse physique est décrite cidessous. Cette opération n'est nécessaire que lorsque le comparateur 250 détecte un "DEFAUT DE COINCIDENCE" et quand l'accès à la mémoire principale est effectué.
Comme cela a été mentionné plus haut, cette opération est bien plus lente comparée à ce qui se passe quand l'adresse logique est conservée dans le TLB 200.
Le système d'alignement 150 génère une adresse "a SA" dans la table de segment en décalant l'adresse logique en T2.
L'adresse de départ pour la table de segment en cours est lue depuis le registre d'état 210. Le système d'alignement 220 aligne l'adresse de départ pour la table de segment pour en faire une adresse "STA" alignée sur multiplet.
Etant donné que le signal de commande depuis le contrôleur 270 est un "1", le sélecteur 125 sort l'adresse "a~SA" depuis le système d'alignement 150 sous la forme d'un signal d'entrée gauche dans l'additionneur d'adresses 130, le sélecteur 126 sort l'adresse "STA" depuis le système d'alignement 220 sous la forme d'un signal d'entrée centrale dans l'additionneur d'adresses 130 et le sélecteur 127 sort la valeur de TOUS "0" sous la forme d'un signal d'entrée droite dans l'additionneur d'adresses 130.
L'additionneur d'adresses 130 additionne les signaux d'entrée d'additionneur d'adresses et sort la somme "a SDA" de l'addition d'adresse en T3. Le résultat de l'addition d'adresses est une adresse physique pour la table de segment.
Le registre d'adresse physique 240 reçoit la somme (par exemple l'adresse) "a~SDA" de l'addition d'adresses. L'accès à la mémoire principale se fait avec cette adresse "a~SDA". Les données de mémoire de lecture "SD", qui contiennent une adresse de table de page, sont stockées dans une partie du registre d'état 210 en T5.
Le système d'alignement 150 génère une adresse "a LPA" pour la table de page en décalant l'adresse logique.
Les données "SD", contenant l'adresse de départ de la table de page, sont lues depuis le registre d'état 210. Le système d'alignement 220 aligne l'adresse de départ pour la table de page pour en faire une adresse "a~PTA" alignée sur multiplet en T6.
Le sélecteur 125 sort l'adresse "a LPA" sous la forme d'une entrée gauche dans l'additionneur d'adresses 130, le sélecteur 126 sort l'adresse "a PTA" sous la forme d'une entrée centrale dans l'additionneur d'adresses 130 et le sélecteur 127 sort la valeur de
TOUS "0" sous la forme d'une entrée droite dans l'additionneur d'adresses 130.
L'additionneur d'adresses 130 additionne les entrées d'additionneur d'adresses et sort la somme "a~PDA" de l'addition d'adresses en T6. La somme de l'addition d'adresses est une adresse physique pour une adresse de table de page.
Le registre d'adresse physique 240 reçoit la somme (par exemple l'adresse) de l'addition d'adresses.
L'accès à la mémoire principale se fait avec cette adresse "a PDA". Les données de mémoire de lecture "PD", qui contiennent une adresse de page, sont stockées dans une partie du registre d'état 210 en T9.
Les données "PD", qui contiennent une adresse de page, sont lues depuis le registre d'état 210. Le système d'alignement 220 aligne l'adresse de page pour en faire une adresse "a PPA" alignée sur multiplet.
Des parties de l'adresse logique (par exemple "a SA + a~LPA") et de l'adresse de page physique "a PPA" sont enregistrées dans le TLB 200 pour les accès suivants.
Par conséquent, l'adresse de page physique peut être obtenue soit depuis le TLB 200 soit depuis la traduction d'adresse dans la mémoire principale.
Après obtention de l'adresse de page physique, le système d'alignement 150 obtient l'adresse relative depuis le champ de déplacement de l'instruction (non présenté sur la figure 6).
Le sélecteur 125 sort le déplacement "a2" sous la forme d'une entrée gauche dans l'additionneur d'adresses 130, le sélecteur 126 sort l'adresse de page physique "a PPA" sous la forme d'une entrée centrale dans l'additionneur d'adresses 130 et le sélecteur 127 sort la valeur de TOUS "0" sous la forme d'une entrée droite dans l'additionneur d'adresses 130.
L'additionneur d'adresses 130 additionne les entrées d'additionneur d'adresses et sort la somme "A" de l'addition d'adresses (non présentée sur la figure 6). La somme "A" de l'addition d'adresses est une adresse physique correspondant à l'adresse logique "a".
Le registre d'adresse physique 240 reçoit la somme "A" de l'addition d'adresses. L'accès à la mémoire est réalisé par l'adresse physique.
Alors que deux tables d'index (par exemple la table de segment et la table de page) sont utilisées pour la traduction d'adresse dans ce mode de réalisation comme cela est montré sur la figure 4, la présente invention peut s'appliquer à un circuit de commande de traduction d'adresse qui utilise trois tables d'index ou plus. Par exemple, d'autres tables ayant une pluralité d'adresses de départ des tables de segment peuvent être comprises.
Ainsi qu'il ressort de la description ci-dessus, selon la présente invention, étant donné que l'additionneur unique d'adresses sert à la fois à la génération d'adresse logique et à la traduction d'adresse, un deuxième additionneur affecté uniquement à la traduction d'adresse comme dans le circuit classique est superflu.
Bien que l'invention ait été décrite en terme de mode de réalisation préféré, le spécialiste dans l'art comprendra que l'invention peut être mise en pratique de façon modifiée tout en restant dans l'esprit et le domaine des revendications jointes.

Claims (20)

REVENDICATIONS
1. Circuit de commande de traduction d'adresse pour un appareil de traitement de l'information, comprenant
un additionneur unique à la fois pour la génération d'adresse logique et pour la traduction d'adresse;
une pluralité de sélecteurs situés à chaque entrée dudit additionneur pour sélectionner une valeur parmi une série de valeurs pour une génération d'adresse logique et parmi une série de valeurs pour une traduction d'adresse.
2. Circuit de commande de traduction d'adresse pour un appareil de traitement de l'information, comprenant
des premiers registres, chacun pour stocker une valeur pour une génération d'adresse logique;
des deuxièmes registres, chacun pour stocker une valeur pour une traduction d'adresse;
des premiers sélecteurs, chacun pour sélectionner une des sorties venant desdits premiers registres dans une génération d'adresse logique et des sorties venant desdits deuxièmes registres dans une traduction d'adresse;
un additionneur unique pour additionner des sorties desdits premiers sélecteurs.
3. Circuit de commande de traduction d'adresse selon la revendication 2, caractérisé en ce que lesdits premiers registres comprennent un registre d'instruction (110) pour stocker une instruction à traiter.
4. Circuit de commande de traduction d'adresse selon la revendication 3, caractérisé en ce que lesdits premiers registres comprennent en outre un registre de base (121) pour stocker une adresse de base et un registre d'index (122) pour stocker une adresse d'index.
5. Circuit de commande de traduction d'adresse selon la revendication 2, caractérisé en ce que lesdits deuxièmes registres comprennent un registre d'adresse logique (140) pour stocker une adresse logique à traduire.
6. Circuit de commande de traduction d'adresse selon la revendication 5, caractérisé en ce que lesdits deuxièmes registres comprennent en outre un registre d'état (210), couplé à une mémoire principale dudit appareil de traitement de l'information, pour stocker un état d'un traitement en cours, ledit état comprenant une adresse de départ pour une table de segment dudit système de traitement de l'information.
7. Circuit de commande de traduction d'adresse selon la revendication 6, caractérisé en ce que ledit registre d'état (210) stocke en outre une adresse de départ pour une table de page dudit système de traitement de l'information.
8. Circuit de commande de traduction d'adresse selon la revendication 7, caractérisé en ce que ledit registre d'état (210) stocke en outre une adresse de page physique.
9. Circuit de commande de traduction d'adresse selon la revendication 8, caractérisé en ce que ledit registre d'état (210) stocke en outre un modèle nul.
10. Circuit de commande de traduction d'adresse selon la revendication 2, comprenant en outre
un tampon de consultation de tables (TLB) (200) pour stocker une pluralité de paires d'adresses logiques et d'adresses physiques;
un comparateur pour comparer l'adresse logique stockée dans ledit registre d'adresse logique (140) avec des adresses logiques stockées dans ledit TLB (200), et pour indiquer une coïncidence d'adresse logique quand ladite adresse logique stockée dans ledit registre d'adresse logique (140) coïncide avec une adresse logique stockée dans ledit TLB (200), et pour indiquer un défaut de coïncidence d'adresse logique quand ladite adresse logique stockée dans ledit registre d'adresse logique (140) ne coïncide avec aucune des adresses logiques stockées dans ledit TLB (200);;
un deuxième sélecteur pour sélectionner une des adresses physiques depuis ledit TLB quand la coïncidence d'adresse est indiquée par ledit comparateur, et la sortie depuis ledit additionneur (130) quand le défaut de coïncidence d'adresse est indiquée par ledit comparateur; et
un contrôleur pour produire un signal indiquant une phase de traduction d'adresse quand le défaut de coïncidence d'adresse est indiqué par ledit comparateur.
11. Circuit de commande de traduction d'adresse selon la revendication 10, caractérisé en ce que lesdits premiers registres comprennent un registre d'instruction (110) pour stocker une instruction à traiter.
12. Circuit de commande de traduction d'adresse selon la revendication 11, caractérisé en ce que lesdits premiers registres comprennent en outre un registre de base (121) pour stocker une adresse de base et un registre d'index (122) pour stocker une adresse d'index.
13. Circuit de commande de traduction d'adresse selon la revendication 10, caractérisé en ce que lesdits deuxièmes registres comprennent un registre d'adresse logique (140) pour stocker une adresse logique à traduire.
14. Circuit de commande de traduction d'adresse selon la revendication 13, caractérisé en ce que lesdits deuxièmes registres comprennent en outre un registre d'état (210), couplé à une mémoire principale dudit appareil de traitement de l'information, pour stocker un état d'un traitement en cours, ledit état comprenant une adresse de départ pour une table de segment dudit système de traitement de l'information.
15. Circuit de commande de traduction d'adresse selon la revendication 14, caractérisé en ce que ledit registre d'état (210) stocke en outre une adresse de départ pour une table de page dudit système de traitement de l'information.
16. Circuit de commande de traduction d'adresse selon la revendication 15, caractérisé en ce que ledit registre d'état (210) stocke en outre une adresse de page physique.
17. Circuit de commande de traduction d'adresse selon la revendication 16, caractérisé en ce que ledit registre d'état (210) stocke en outre un modèle nul.
18. Méthode de commande d'une traduction d'adresse pour un appareil de traitement de l'information, ladite méthode étant caractérisée en ce qu'elle comprend des étapes consistant à
fournir audit appareil de traitement de l'information un additionneur unique à la fois pour une génération d'adresse logique et une traduction d'adresse;
sélectionner des valeurs pour la génération d'adresse logique;
additionner des valeurs pour la génération d'adresse logique;
sélectionner des valeurs pour la traduction d'adresse; et
additionner des valeurs pour la traduction d'adresse pour générer une adresse physique.
19. Méthode selon la revendication 18, caractérisée en ce qu'elle compend en outre les étapes consistant à:
comparer une adresse - logique générée avec des adresses logiques stockées dans un tampon de consultation de table (TLB) (200) et déterminer s'il existe une coïncidence d'adresse; et
quand il existe une coïncidence d'adresse, à sélectionner une adresse physique depuis ledit TLB (200) à la place desdites étapes de sélection de valeurs pour ladite traduction d'adresse et à additionner des valeurs pour ladite traduction d'adresse.
20. Méthode selon la revendication 19, caractérisée en ce qu'elle comprend en outre une étape de répétition de l'étape de sélection de valeurs pour ladite traduction d'adresse et l'étape d'addition des valeurs pour ladite traduction d'adresse, jusqu'à ce qu'une adresse physique soit générée.
FR9600920A 1995-01-27 1996-01-26 Circuit de commande pour traduction d'adresse et methode de commande de ce circuit Expired - Fee Related FR2730075B1 (fr)

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
JP7011367A JPH08202624A (ja) 1995-01-27 1995-01-27 アドレス変換制御回路

Publications (2)

Publication Number Publication Date
FR2730075A1 true FR2730075A1 (fr) 1996-08-02
FR2730075B1 FR2730075B1 (fr) 1998-09-04

Family

ID=11776061

Family Applications (1)

Application Number Title Priority Date Filing Date
FR9600920A Expired - Fee Related FR2730075B1 (fr) 1995-01-27 1996-01-26 Circuit de commande pour traduction d'adresse et methode de commande de ce circuit

Country Status (2)

Country Link
JP (1) JPH08202624A (fr)
FR (1) FR2730075B1 (fr)

Citations (3)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
EP0044924A2 (fr) * 1980-06-06 1982-02-03 Nec Corporation Appareil et méthode de développement d'une adresse physique
EP0175997A1 (fr) * 1984-09-13 1986-04-02 Siemens Aktiengesellschaft Disposition de circuit pour calculer en fonction du type d'instruction les adresses d'opérandes et pour vérifier le franchissement des frontières de pages aux opérandes pour des instructions mémoire-mémoire logiques ou décimales
US4876646A (en) * 1984-12-24 1989-10-24 Hitachi, Ltd. Data processor having multilevel address translation tables

Family Cites Families (2)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JPH03175548A (ja) * 1989-12-04 1991-07-30 Fujitsu Ltd マイクロプロセッサ及びアドレス制御方式
JPH0573424A (ja) * 1991-09-11 1993-03-26 Shikoku Nippon Denki Software Kk 高速アドレス変換方式

Patent Citations (3)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
EP0044924A2 (fr) * 1980-06-06 1982-02-03 Nec Corporation Appareil et méthode de développement d'une adresse physique
EP0175997A1 (fr) * 1984-09-13 1986-04-02 Siemens Aktiengesellschaft Disposition de circuit pour calculer en fonction du type d'instruction les adresses d'opérandes et pour vérifier le franchissement des frontières de pages aux opérandes pour des instructions mémoire-mémoire logiques ou décimales
US4876646A (en) * 1984-12-24 1989-10-24 Hitachi, Ltd. Data processor having multilevel address translation tables

Also Published As

Publication number Publication date
FR2730075B1 (fr) 1998-09-04
JPH08202624A (ja) 1996-08-09

Similar Documents

Publication Publication Date Title
JP2002288038A (ja) アドレス変換装置および方法
EP0610618B1 (fr) Procédé et dispositif de traduction d'adresses
JPH10254718A (ja) キャッシュ効果オブジェクトローダ
FR2624994A1 (fr) Systeme de commande de registre intermediaire de traduction
JPH05113930A (ja) フレキシブルなn−ウエイ・メモリ・インターリーブ方式
EP1617335A1 (fr) Procédé de programmation d'un contrôleur de DMA dans un système sur puce et système sur puce associé
EP1607878B1 (fr) Procédé de traitement d'une adresse virtuelle pour la programmation d'un contrôleur de DMA, système sur puce et programme d'ordinateur associés
US7035986B2 (en) System and method for simultaneous access of the same line in cache storage
JPH0454541A (ja) ファイル名生成処理方式
JP2002313086A (ja) 情報検索装置
FR2642194A1 (fr) Appareil de traitement de l'information
JP3190700B2 (ja) アドレス変換装置
FR2730075A1 (fr) Circuit de commande pour traduction d'adresse et methode de commande de ce circuit
US5386521A (en) Instruction prefetching circuit with a next physical address precalculating circuit
KR20060014043A (ko) 음성 응답 시스템, 음성 응답 방법, 음성 서버, 음성 파일처리 방법, 프로그램 및 기록 매체
US6990556B2 (en) System and method for simultaneous access of the same doubleword in cache storage
JPH0567001A (ja) キヤツシユメモリ回路
JP2684752B2 (ja) 拡張記憶制御方式
JPH0218638A (ja) データ制御システム
JP3471657B2 (ja) アドレス変換装置および方法
FR2733066A1 (fr) Dispositif de controle de memoire cache
JP2853736B2 (ja) クラスタ番号変換回路
JPH0322053A (ja) ムーブ・イン・バッファ制御方式
JPH02285440A (ja) プリフェッチ制御方式
JPH04101272A (ja) データエレメント検索方法

Legal Events

Date Code Title Description
ST Notification of lapse