FR2800482A1 - Procede de traitement des instructions dans un processeur et processeur le mettant en oeuvre - Google Patents

Procede de traitement des instructions dans un processeur et processeur le mettant en oeuvre Download PDF

Info

Publication number
FR2800482A1
FR2800482A1 FR0011605A FR0011605A FR2800482A1 FR 2800482 A1 FR2800482 A1 FR 2800482A1 FR 0011605 A FR0011605 A FR 0011605A FR 0011605 A FR0011605 A FR 0011605A FR 2800482 A1 FR2800482 A1 FR 2800482A1
Authority
FR
France
Prior art keywords
instruction
instructions
group
execution
statement
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
FR0011605A
Other languages
English (en)
Other versions
FR2800482B1 (fr
Inventor
James Allan Kahle
Hung Qui Le
Charles Roberts Moore
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.)
International Business Machines Corp
Original Assignee
International Business Machines 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 International Business Machines Corp filed Critical International Business Machines Corp
Publication of FR2800482A1 publication Critical patent/FR2800482A1/fr
Application granted granted Critical
Publication of FR2800482B1 publication Critical patent/FR2800482B1/fr
Anticipated expiration legal-status Critical
Expired - Fee Related legal-status Critical Current

Links

Classifications

    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F9/00Arrangements for program control, e.g. control units
    • G06F9/06Arrangements for program control, e.g. control units using stored programs, i.e. using an internal store of processing equipment to receive or retain programs
    • G06F9/30Arrangements for executing machine instructions, e.g. instruction decode
    • G06F9/38Concurrent instruction execution, e.g. pipeline, look ahead
    • G06F9/3818Decoding for concurrent execution
    • G06F9/382Pipelined decoding, e.g. using predecoding
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F9/00Arrangements for program control, e.g. control units
    • G06F9/06Arrangements for program control, e.g. control units using stored programs, i.e. using an internal store of processing equipment to receive or retain programs
    • G06F9/30Arrangements for executing machine instructions, e.g. instruction decode
    • G06F9/38Concurrent instruction execution, e.g. pipeline, look ahead
    • G06F9/3836Instruction issuing, e.g. dynamic instruction scheduling or out of order instruction execution
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F9/00Arrangements for program control, e.g. control units
    • G06F9/06Arrangements for program control, e.g. control units using stored programs, i.e. using an internal store of processing equipment to receive or retain programs
    • G06F9/30Arrangements for executing machine instructions, e.g. instruction decode
    • G06F9/38Concurrent instruction execution, e.g. pipeline, look ahead
    • G06F9/3836Instruction issuing, e.g. dynamic instruction scheduling or out of order instruction execution
    • G06F9/3838Dependency mechanisms, e.g. register scoreboarding
    • G06F9/384Register renaming
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F9/00Arrangements for program control, e.g. control units
    • G06F9/06Arrangements for program control, e.g. control units using stored programs, i.e. using an internal store of processing equipment to receive or retain programs
    • G06F9/30Arrangements for executing machine instructions, e.g. instruction decode
    • G06F9/38Concurrent instruction execution, e.g. pipeline, look ahead
    • G06F9/3836Instruction issuing, e.g. dynamic instruction scheduling or out of order instruction execution
    • G06F9/3853Instruction issuing, e.g. dynamic instruction scheduling or out of order instruction execution of compound instructions
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F9/00Arrangements for program control, e.g. control units
    • G06F9/06Arrangements for program control, e.g. control units using stored programs, i.e. using an internal store of processing equipment to receive or retain programs
    • G06F9/30Arrangements for executing machine instructions, e.g. instruction decode
    • G06F9/38Concurrent instruction execution, e.g. pipeline, look ahead
    • G06F9/3854Instruction completion, e.g. retiring, committing or graduating
    • G06F9/3856Reordering of instructions, e.g. using queues or age tags
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F9/00Arrangements for program control, e.g. control units
    • G06F9/06Arrangements for program control, e.g. control units using stored programs, i.e. using an internal store of processing equipment to receive or retain programs
    • G06F9/30Arrangements for executing machine instructions, e.g. instruction decode
    • G06F9/38Concurrent instruction execution, e.g. pipeline, look ahead
    • G06F9/3854Instruction completion, e.g. retiring, committing or graduating
    • G06F9/3858Result writeback, i.e. updating the architectural state or memory
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F9/00Arrangements for program control, e.g. control units
    • G06F9/06Arrangements for program control, e.g. control units using stored programs, i.e. using an internal store of processing equipment to receive or retain programs
    • G06F9/30Arrangements for executing machine instructions, e.g. instruction decode
    • G06F9/38Concurrent instruction execution, e.g. pipeline, look ahead
    • G06F9/3861Recovery, e.g. branch miss-prediction, exception handling

Landscapes

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

Abstract

Le processeur inclut une unité de lecture, une unité de fragmentation d'instruction, et une logique de commande de répartition et d'exécution. L'unité de lecture est configurée pour rechercher un ensemble d'instructions dans une mémoire cache d'instructions. L'unité de fragmentation d'instructions est configurée pour recevoir l'ensemble d'instructions lues et adaptée pour organiser l'ensemble d'instructions en un groupe d'instructions. La logique de commande de répartition et d'exécution est adaptée pour attribuer une étiquette de groupe au groupe d'instructions et enregistrer l'étiquette de groupe dans une entrée du tableau d'exécution pour suivre l'état d'exécution des instructions composant le groupe d'instructions. Dans un mode de réalisation particulier, le processeur est configuré pour abandonner le groupe d'instructions en réponse à la détection d'une exception générée par une instruction du groupe d'instructions. De préférence, le processeur est en outre configuré pour désactiver la disposition d'organisation de groupe de l'unité de fragmentation avant d'exécuter à nouveau les instructions abandonnées en réponse à la détermination que l'exception était générée par une instruction occupant une case intérieure du groupe d'instructions.

Description

DOMAINE<B>TECHNIQUE DE</B> L'INVENTION La présente invention se rapporte au domaine des processeurs superscalaires, et plus particulièrement<B>à</B> un processeur qui utilise des groupes d'instructions afin d'en améliorer les performances, ce processeur incluant des dispositifs pour traiter les exceptions générées par des instructions<B>à</B> l'intérieur des groupes.
ETAT <B>DE LA TECHNIQUE</B> Dans les processeurs superscalaires supportant l'exécution désordonnée d'instructions, chaque instruction est identifiée par une etiquette d'instruction. Les étiquettes d'instructions sont utilisées pour coder les informations séquence, ou d'ordre, nécessaires pour exécuter les instructions dans l'ordre. Pour augmenter les performances du processeur, il est souhaitable d'augmenter le nombre d'instructions qui peuvent être "lancées"<B>à</B> tout instant. Dans cette description, les instructions lancées font référence<B>à</B> des instructions qui ont été réparties mais non encore exécutées. Pour conserver l'ordre 'exécution dans un processeur supportant l'exécution désordonnée d'instructions, les informations étiquettes d'instruction sont généralement consignées dans tableau tel Qu'un tableau d'exécution lorsque les instructions son, lancées. Après qu'une instruction se soit pleinement propagée par l'intermédiaire de son pipeline approprié, résultats de l'instruction sont écrits dans un registre architectural et conservés dans un registre de renommage jusqu'à ce que l'instruction soit exécutée ou abandonnée. Si une instruction est abandonnée avant son execution <B>à</B> cause d'une exception générée par une instruction intermédiaire, le processus de renommage est utilisé pour diriger le registre architectural vers un registre de renommage précédant (et toujours valide)<B>.</B> Au fur et<B>à</B> mesure que nombre d'instructions lancées augmente, il conviendra d'apprécier que la complexité du mécanisme de renommage la complexité du tableau d'exécution, ainsi que la logique nécessaire pour suivre l'état de toutes les instructions lancées, augmentent également. La complexité augmentée qu'implique un nombre augmenté d'instructions lancees peut avoir un effet négatif sur les performances maximales du processeur. Ainsi, le niveau de complexité ou le nombre de niveaux logiques dans le processus de renommage et dans le tableau d'exécution limitent les performances maximales processeur. De ce fait, il est souhaitable de mettre en #uvre un processeur dans lequel le nombre d'instructions lancées peut être augmenté de façon significative sans augmenter proportionnellement la complexité du matériel utilisé pour utiliser le processus de renommage et suivre l'état et l'ordre d'exécution.
<B>OBJET DE</B> L'INVENTION Un objet de l'invention est de fournir un processeur et un procédé d'opération associe palliant les inconvénients ci-dessus. Le processeur inclut une unité de lecture d'instructions, une unité de fragmentation d'instructions, et une logique de commande de répartition et d'exécution. L'unité de lecture est configurée pour retrouver un ensemble d'instructions<B>à</B> partir<B>d'</B> mémoire cache d'instructions. L'unité de fragmentation d'instructions est configurée pour recevoir l'ensemble des instructions lues, et adaptée pour organiser l'ensemble d'instructions en un groupe d'instructions. La logique répartition et d'exécution est adaptée pour attribuer étiquette de groupe au groupe d'instructions et enregistrer l'étiquette de groupe dans une entrée du tableau d'exécution pour suivre l'état d'exécution des instructions composant le groupe d'instructions Dans un mode de réalisation particulier, l'ensemble des instructions lues est formaté conformément<B>à</B> un premier format d'instructions et dans lequel le procédé comprend outre la modification du format des instructions lues en un deuxième format avant exécution, la largeur du deuxième format d'instructions étant plus grande que la largeur du premier format d'instructions. Dans un mode de realisation particulier,<B>1</B> unité de fragmentation est adaptée pour décomposer les instructions complexes de l'ensemble des instructions lues en instructions simples multiples dans un groupe d'instructions. Dans un mode de realisation particulier,<B>1</B> unité de fragmentation est adaptée pour décomposer une instruction de chargement multiple en un ensemble d'instructions simples couvrant des groupes d'instructions multiples. Dans un mode de realisation particulier,<B>1</B> unité de fragmentation est adaptée pour réserver la dernière entrée dans le groupe d'instructions<B>à</B> des instructions comportant une probabilité d'exception élevée, telles qu'une instruction de branchement. Dans un mode de réalisation particulier, la logique de répartition et d'exécution est adaptée pour enregistrer une adresse d'instruction unique dans l'entrée du tableau d'exécution correspondant<B>à</B> chacun des groupes d'instructions. De préférence, l'adresse d'instruction unique est l'adresse d'instruction de la première instruction du groupe d'instructions. Dans un mode de réalisation particulier, le processeur est configuré pour abandonner groupe d'instructions en réponse<B>à</B> la détection d'une exception générée par une instruction du groupe d'instructions. De préférence, le processeur est en outre configuré pour désactiver la disposition d'organisation de groupe l'unité de fragmentation avant d'exécuter<B>à</B> nouveau les instructions abandonnées en réponse<B>à</B> la détermination de ce que l'exception était générée par une instruction occupant une position intérieure du groupe d'instructions, i.e. une position différente de la première.
BREVE DESCRIPTION<B>DES</B> FIGURES Les objectifs et avantages de l'invention deviendront apparents<B>'</B> la lecture de la description détaillee suivante et en se référant aux figures annexées sur lesquelles: La<B>f</B> igure est un schéma synoptique simplifié sous forme de blocs<B>d'</B> processeur conformément<B>à</B> un mode réalisation particulier de l'invention; La figure 2 décrit des exemples du fonctionnement d'une disposition d'organisation de groupe de l'unité de fragmentation du processeur de la figure<B>1;</B> La figure est une représentation simplifiée d'un tableau d'exécution conformément<B>à</B> un mode particulier réalisation de l'invention; La<B>f</B> igure illustre le fonctionnement du processeur de la figure<B>1</B> lorsqu'une instruction dans un groupe instructions génère une exception; et La figure est une représentation simplifiée d'un tableau d'exécution conformément<B>à</B> un autre mode de réalisation de la présente invention.
Bien que invention soit susceptible de variantes diverses, des modes de réalisation spécifiques de celle-ci sont représentés<B>à</B> titre d'exemples sur les figures et seront décrits ici en détail. Il convient de comprendre, toutefois, que les figures et la description détaillée présentées ici ne sont pas destinees <B>à</B> limiter l'invention au mode de réalisation particulier décrit. DESCRIPTION<B>DE</B> T'INVENTION La figure<B>1</B> est schéma synoptique simplifié sous forme de blocs d'un processeur<B>100</B> conformément<B>à</B> un mode de réalisation particulier de la présente invention. Le processeur<B>100</B> que décrit sur la figure<B>1</B> inclut une unité de lecture d'instructions 102 adaptée<B>à</B> générer une adresse de l'instruction suivante<B>à</B> lire. L'adresse de l'instruction lue par l'unité de lecture 102 est chargée dans une bascule<B>à</B> verrouillage tch) 104 d'adresse d'instruction suivante et délivrée<B>à</B> mémoire cache d'instruction<B>110.</B> L'unité de lecture 102 inclut en outre une logique de prediction de branchement<B>106.</B> Ainsi que son nom le suggère, la logique de prédiction de branchement<B>106</B> est adaptée pour faire une prédiction du résultat d'une décision affectant le flux d'exécution du programme. La possibilité prédire correctement les décisions de branchement est facteur significatif dans la capacité globale du processeur<B>100</B> d'atteindre des performances améliorées en exécutant des instructions de façon spéculative et désordonnée. L'adresse produite par l'unité de lecture 102 est délivrée<B>à</B> mémoire cache d'instructions<B>110,</B> qui contient un sous-ensemble du contenu de la mémoire du système dans un dispositif de mémorisation<B>à</B> haute vitesse. Si l'adresse de l'instruction générée par l'unité de lecture 102 correspond<B>à</B> un emplacement dans la mémoire système qui est dupliqué dans la mémoire cache d'instructions<B>110,</B> la mémoire cache d'instructions<B>110</B> réachemine l'instruction correspondante<B>à</B> la logique de fragmentation 112. Si l'instruction correspondant<B>à</B> l'adresse d'instruction génerée par l'unité de lecture 102 ne réside pas dans la mémoire cache d'instructions<B>110,</B> le contenu de la mémoire cache d'instructions<B>110</B> doit être mis<B>à</B> jour avec le contenu des emplacements appropriés de la mémoire du système avant que<B>1</B> instruction puisse être réacheminée vers la logique de fragmentation 112.
La logique de fragmentation 112 est adaptée pour modifier un flot d'instructions entrantes afin de produire un ensemble d'instructions optimisées pour l'exécution dans un pipeline d'exécution sous-jacent<B>à</B> des fréquences de fonctionnement extrêmement élevées (c'est<B>à</B> dire par exemple<B>à</B> des fréquences de fonctionnement d'environ<B>1</B> GHz). Par exemple, la logique de fragmentation 112 reçoit des instructions en un format de<B>32</B> bits de large, tel que le jeu d'instructions supporté par le processeur PowerPC(D. Des informations détaillees concernant le jeu d'instructions PowerPC@ sont disponibles dans le PowerPC <B>620</B> RISC Microprocessor User's Manual disponible chez Motorola, Inc. (Numéro de commande MPC620UM/AD). Dans un mode de réalisation particulier, le format instructions générées par logique de fragmentation 112 inclut des champs explicites pour les informations qui sont simplement impliquées dans le format des instructions mises en place de telle façon que le format des instructions genérées par la logique de fragmentation 112 est plus large que le format des instructions. Par exemple, les instructions mises en place sont codées conformément<B>à</B> un format d'instructions de<B>32</B> bits et le format des instructions générées par la logique de fragmentation 112 est de 64 bits de large ou plus. La logique de fragmentation 112 est conçue pour générer ces instructions larges conformément a un Jeu prédéfini de règles de fragmentation Les instructions larges générées par la logique de fragmentation 112 facilitent l'exécution<B>à</B> haute vitesse en incluant références explicites<B>à</B> des opérandes d'instructions. Dans un mode de réalisation particulier, la logique de fragmentation 112 telle qu'envisagée ici est conçue pour organiser ensemble d'instructions lues en Yy groupes<B>"</B> <B>à'</B> instructions 202, dont des exemples sont décrits sur la figure 2. Chaque groupe d'instruction 202 inclut ensemble de cases d'instructions, ou position d'instruction, 204a, 204b, etc. (auxquelles il est fait référence, collectivement ou de façon générique, en tant que cases d'instructions 204). L'organisation d'un ensemble d'instructions groupes d'instructions facilite l'exécution<B>à</B> haute vitesse en simplifiant, entre autres, la logique nécessaire pour maintenir les tableaux d'exécution pour un grand nombre d'instructions lancées. Dans un mode de réalisation particulier, l'adresse d'une seule instruction du groupe d'instructions 202 est maintenue pendant que le groupe d'instructions est en instance (c'est<B>à</B> dire pendant le temps durant lequel les instructions dans le groupe d'instructions 202 sont lancées). Dans le mode de réalisation préféré, l'adresse de l'instruction unique qui est retenue est l'adresse l'instruction mémorisée dans la première case ou position 204a du groupe d'instructions 202. Dans ce mode de réalisation la régénération d'une adresse pour toute instruction autre que les instructions mémorisées dans la première case 204a nécessitera un effort supplémentaire parce que les adresses pour toutes les autres instructions dans le groupe d'instructions 202 ont été supprimées. Sur la figure 2, trois exemples de groupements d'instructions qui peuvent être réalisés la logique de fragmentation 112 sont décrits. Dans l'exemple<B>1,</B> un ensemble d'instructions indiqué par la référence numérique 201 est transformé en un groupe d'instructions unique 202 par la logique de fragmentation 112. Dans le mode de réalisation de l'invention décrit, chaque groupe d'instructions 202 inclut cinq cases indiquees par les références numériques 204a, 204b, 204c, 204d et 204e. Chaque case 204 peut contenir une instruction simple. Dans ce mode de réalisation, chaque groupe d'instructions peut inclure un maximum de cinq instructions. L'utilisation groupes d'instructions simplifie le processus de renommage et la loqique du tableau d'exécution en réduisant le nombre d'instructions qui doivent être individuellement étiquetées et suivies. L'utilisation de groupe d'instructions projette ainsi de sacrifier quelques informations au sujet de chaque instruction dans un effort de simplification du processus de suivi d'instructions en instance dans un processeur supportant l'exécution désordonnée d'instructions. Une conséquence de cette disposition est qu'il n'est pas toujours possible de déterminer l'adresse d'une instruction dans un groupe d'instructions 202. Plus spécifiquement, dans le mode de réalisation préféré, la seule adresse d'instruction qui soit maintenue est l'adresse de la première instruction dans le groupe d'instructions. Aussi longtemps que les instructions s'exécutent sans générer d'exception, les informations d'adresses d'instructions ne sont pas nécessaires pour l'execution correcte du programme, et de ce fait le sacrifice de informations est généralement acceptable si la "probabilité d'exception" de chaque instruction est relativement faible. Des instructions arithmétiques telles que les instructions ADD (additionner) présentent une probabilité d'exception qui est essentiellement égale<B>à</B> zéro. Des instructions de référence<B>à</B> la mémoire telles que des instructions de chargement et de mémorisation peuvent causer des exceptions dans une diversité de circonstances, telles que par exemple si une référence demandée de mémoire n'est pas disponible dans la mémoire cache de données du processeur. Un certain nombre de techniques sont bien connues, toutefois pour reduire les probabilités de telles exceptions de manque de mémoire cache, exceptions de translation d'adresse, autres types d'exceptions que les instructions de référence de mémoire peuvent générer. Les instructions de branchement, par ailleurs, tendent<B>à</B> présenter une probabilité d'exception relativement élevée<B>à</B> cause de leur nature spéculative. Afin de viser la probabilité d'exception relativement élevée des instructions de branchement, un mode de réalisation particulier du processeur<B>100</B> ordonne que la dernière case dans le groupe d'instructions 202 (case 204e dans le mode de réalisation décrit) soit réservée aux instructions de branchement seulement. Cette exigence est satisfaite dans l'exemple décrit sur la figure 2 en insérant une instruction NOP (No Operat-ion) dans la case 204d entre l'instruction ADD et l'instruction de branchement. En plaçant ces instructions comportant une probabilité d'exception élevée, telles que des instructions de branchement, dans la dernière case disponible 204 du groupe 202, la logique de fragmentation 112 garantit que l'adresse d'instruction d'une instruction suit une instruction de branchement se trouvera dans la première case d'un groupe d'instructions suivant, ce qui a pour effet de garantir que l'adresse d'une instruction suivant un branchement est facilement disponible dans cas où le branchement aurait été mal prédit.
Un deuxième exemple de groupement préformé par la logique de fragmentation 112 conformément<B>à</B> un mode de réalisation particulier de l'invention est décrit sur l'exemple 2 de la figure 2. Cet exemple démontre la capacité de la logique de fragmentation 112<B>à</B> décomposer des instructions complexes en un groupe d'instructions simples pour obtenir une vitesse d'exécution plus élevée. Dans l'exemple décrit, une séquence de deux instructions de chargement avec mise<B>à</B> jour (LDU, Load-with-Upclate) est décomposée en un groupe d'instructions incluant paire d'instructions de chargement dans les cases 204a et 204c respectivement et une paire d'instructions ADD dans les cases 204b et 204d respectivement. Dans cet exemple, puisque groupe 202 ne contient aucune instruction de branchement, la dernière case 204e du groupe d'instructions 202 ne contient aucune instruction. L'instruction de chargement avec mise<B>à</B> jour PowerPC@, ainsi que des instructions analogues dans d'autres jeux d'instructions, est une instruction complexe en ce que l'instruction affecte le contenu de multiples registres<B>à</B> usage généraux (GPR, General Purpose Register). Spécifiquement, l'instruction de chargement avec mise<B>à</B> jour peut être décomposée en une instruction de chargement qui affecte le contenu d'un premier GPR et une instruction ADD qui affecte le contenu d'un deuxième GPR. Ainsi, dans le groupe d'instructions 202 de l'exemple 2 de la figure 2, les instructions contenues dans deux ou plusieurs cases d'instructions 204 correspondent<B>à</B> une instruction unique reçue par l'unité de fragmentation 112. Dans l'exemple <B>3,</B> une instruction unique entrant dans l'unité de fragmentation 112 est brisée en un jeu d'instructions occupant des groupes multiples 202. Pl-us spécifiquement,<B>1</B> exemple .3 illustre une instruction de chargement multiple (LM, Load Multiple). L'instruction de chargement multiple (conformément au jeu d'instructions PowerPC(D) charge le contenu d'emplacements consécutifs en mémoire dans des GPR numérotés de façon consécutive. Dans l'exemple décrit, un chargement multiple six emplacements consécutifs en mémoire est décomposé six instructions de chargement. Puisque chaque groupe 202 conformément au mode de réalisation décrit du processeur<B>100,</B> inclut au plus cinq instructions, puisque la cinquième case 204e est réservée aux instructions de branchement, un chargement multiple de six registres est décomposé en deux groupes 202a et<B>202b</B> respectivement. Quatre des instructions de chargement sont mémorisées dans premier groupe 202a alors que les deux instructions de chargement restantes sont mémorisées dans le deuxième groupe<B>202b.</B> Ainsi, dans l'exemple<B>3,</B> une instruction unique est décomposée en un ensemble instructions qui couvre de multiples groupes d'instructions 202.
Se référant de nouveau<B>à</B> la figure<B>1,</B> les instructions larges aénérées dans le mode de réalisation préféré de 'unité de fragmentation 112 sont réacheminées vers l'unité de répartition 114. L'unité de répartition 114 est chargée de déterminer quelles instructions peuvent être capables d'être exécutées de réacheminer ces instructions exécutables aux files d'attente 120. De plus, l'unité de répartition 114 communique avec la logique de commande de répartition et d'exécution<B>116</B> afin de garder la trace de l'ordre dans lequel instructions ont été délivrées et<B>1 1</B> état d'exécution de instructions pour faciliter l'exécution désordonnée. Dans le mode de réalisation du processeur<B>100</B> dans lequel l'unité de fragmentation 112 organise les instructions entrantes en groupes d'instructions comme décrit ci-dessus, une étiquette de groupe (GTAG, Group TAG) est attribuée<B>à</B> chaque groupe d'instructions 202 par la logique de commande et d'exécution <B>116</B> qui achemine l'ordre des groupes d'instructions délivrés. En tant qu'exemple, l'unité de répartition 114 peut attribuer des valeurs croissantes de façon monotone<B>à</B> des groupes instructions consécutifs. Avec cette disposition, des groupes d'instructions présentant des valeurs de GTAG inférieures sont reconnus comme étant exécutés avant (c'est<B>à</B> dire, plus jeunes que) des groupes d'instructions présentant valeurs de GTAG supérieures. En association avec la logique de commande de répartition et d'exécution<B>116,</B> un tableau d'exécution<B>118</B> est utilisé dans un mode de réalisation particulier de la présente invention afin suivre l'état des groupes d'instructions délivrés. En tournant vers les figures<B>3</B> et<B>5,</B> des schémas synoptiques simplifiés sous forme de blocs du tableau d'exécution<B>118</B> sont présentés<B>à</B> titre d'exemples. Dans le mode de réalisation décrit sur la figure<B>3,</B> le tableau d'exécution<B>118</B> inclut ensemble d'entrées 302a<B>à</B> 302n (auxquelles il est fait référence ici, collectivement ou de façon générique, en tant qu'entrées de tableau d'exécution<B>302).</B> Dans ce mode réalisation, chaque entrée<B>302</B> du tableau d'exécution inclut un champ de GTAG <B>308,</B> un champ d'adresse d'instruction (IA) 304 et un champ de bit d'état<B>306.</B> Chaque champ de GTAG contient la valeur de GTAG d'un groupe d'instructions correspondant 202. Dans un autre mode de réalisation tableau d'accomplissement<B>118</B> (décrit sur la figure<B>5),</B> le champ de GTAG <B>308</B> est éliminé. Dans ce mode de réalisation, -eur de GTAG est restreinte<B>à</B> un entier inférieur ou égal nombre d'entrées<B>302</B> du tableau d'exécution<B>118.</B> La valeur de GTAG elle-même identifie l'entrée<B>302</B> dans laquelle réside le groupe d'instructions correspondant. Ainsi, le groupe d'instructions mémorisé dans l'entrée<B>1</B> du tableau exécution <B>118</B> présentera une valeur de GTAG de<B>1.</B> Dans mode de réalisation du tableau d'exécution<B>118,</B> le tableau d'exécution <B>118</B> peut en outre inclure un bit "d'enveloppement"<B>303</B> pour indiquer qu'un groupe d'instructions présentant une valeur de GTAG inférieure est en réalité plus jeune qu'un groupe instructions présentant une valeur de GTAG supérieure. Dans mode de réalisation particulier, le champ d'adresse d'instructions 304 inclut l'adresse de l'instruction de la première case 204a du groupe d'instructions correspondant 202. Le champ d'état<B>306</B> peut contenir un ou plusieurs bits d'état qui indiquent par exemple si l'entrée correspondante<B>302</B> dans le tableau d'exécution<B>118</B> est disponible ou si l'entrée a été attribuée<B>à</B> un groupe d'instructions en instance. Dans le mode de réalisation du processeur<B>100</B> décrit sur la figure<B>1,</B> les instructions sont délivrées<B>à</B> partir de l'unité de répartition 114 aux files d'attente 120 où elles attendent l'exécution dans les canaux d'exécution correspondants 122. Le processeur<B>100</B> peut inclure une diversité de types de canaux exécution, chacun conçu pour exécuter un sous-ensemble du d'instructions du processeur. Dans un mode de réalisation particulier, les canaux d'exécution 122 peuvent inclure un pipeline d'unité de branchement 124, un pipeline de mémorisation et de chargement<B>126,</B> une unité arithmétique<B>à</B> virgule fixe<B>128</B> et une unité<B>à</B> virgule flottante<B>.</B> Chaque canal d'exécution 122 peut comprendre deux ou plusieurs étages de pipelines. Les instructions mémorisées dans les files d'attente 120 peuvent être délivrées aux canaux exécution 122 en utilisant un algorithme quelconque parmi diversité d'algorithmes de priorité d'émission. Par exemple la plus ancienne instruction en instance dans une file d'attente 120 est la prochaine instruction délivrée aux canaux fexécution 1122. Dans ce mode de réalisation, les valeurs de GTAG attribuées par l'unité de répartition 114 sont utilisées pour déterminer l'âge relatif des instructions en instance dans les files d'attente 120. Lorsqu'une instruction est réacheminées <B>à</B> partir des files d'attente 120 vers le canal d'exécution correspondant le canal d'exécution exécute l'opération appropriée indiquée par le code opérationnel de l'instructions et écrit le résultat de l'instruction dans le GPR de renommage de l'instruction lorsque l'instruction atteint un étage final (indiqué par la référence numérique<B>132)</B> du pipeline. Une table de correspondance est maintenue entre les GPRs de renommage et les registres architecturaux correspondants. Lorsque toutes les instructions d'un groupe d'instruction (et toutes les instructions des groupes d'instructions les plus jeunes) sont exécutées sans générer d'exception, un pointeur d'exécution la table d'exécution est incrémenté pour pointer vers le prochain groupe d'instructions. Lorsque le pointeur d'exécution pointe sur un nouveau groupe d'instruction, les registres de renommage associés aux instructions de l'ancien groupe d'instructions sont libérés validant ainsi les résultats des instructions de l'ancien groupe d'instruction. S'il est déterminé qu'une ou plusieurs instructions plus vieilles qu'une instruction exécutée (mais pas encore validée) génèrent une exception, l'instruction ayant cénérée cette exception et les instructions<B>plus</B> récentes sont abandonnées, une routine du processus renommage est invoquée pour restituer des valeurs valides GPRs.
La figure 4 est une représentation conceptuelle illustrant fonctionnement du processeur<B>100</B> lorsqu'une instruction dans l'un des groupes d'instructions 202 génère une exception. figure<B>4</B> décrit un groupe d'instructions 202 qui inclut première instruction de chargement (LD1) dans la première case 204a, u-e instruction ADD dans la deuxième case 204b, une deuxième instruction de chargement (LD2) dans la troisième case 204c, et une instruction ADD dans la quatrième case 204d.
Un GTA'G <B>208</B> et une adresse d'instruction 210 relatifs au groupe instructions 202 sont également représentes. Le GTAG <B>208</B> est attribué par la logique de commande de répartition et d'exécution<B>118</B> et mémorisé dans le champ de GTAG <B>302</B> du tableau d'exécution<B>118.</B> L'adresse d'instruction 210 est mémorisée dans le champ d'IA 304 du tableau d'exécution<B>118</B> pour faciliter le suivi du groupe d'instruction 202 pendant que les instructions le composant sont lancées. L'adresse d'instruction 210 du groupe 202 correspond<B>à</B> l'adresse de l'instruction de la première case 204a du groupe Ainsi, l'adresse d'instruction 210 correspond<B>à</B> l'instruction LD1 de la première case 204a dans l'exemple décrit Pendant l'exécution suivante, une instruction autre que l'instruction LD1 de la première case 204a peut générer une exception. Dans l'exemple décrit sur la figure 4, l'instruction mémorisée dans case 204c peut générer n'importe quelle exception parmi variété d'exceptions,<B>y</B> compris des exceptions de translation d'adresse, des exceptions de manque mémoire cache, et une diversité d'autres conditions exception. Lorsqu' instruction génère une exception, le processeur<B>100</B> doit enregistrer l'adresse de l'instruction qui a généré l'exception (l'instruction d'exception), de telle façon que le pointeur 'instruction puisse être positionné sur 'adresse de l'instruction d'exception après que l'instruction ait été traitée. Comme toutefois les informations d'adresse pour toutes les instructions dans le groupe d'instructions 202 autres que l'instruction de la première case 204a ont été écartées dans une tentative de simplifier la gestion de la répartition et de l'exécution dans le processeur<B>100,</B> l'adresse de l'instruction LD2 est indisponible. Le mode de réalisation du processeur<B>100</B> projeté ici est conçu pour aborder ce problème en abandonnant le groupe d'instructions 202 (et tout groupe d'instructions avec une valeur de GTAG supérieure au GTAG <B>208</B> du groupe d'instructions 202) en réponse<B>à</B> la détection d'une exception générée par toute instruction présentant une valeur de GTAG égale GTAG <B>208.</B> Ensuite, la séquence de code est démarrée<B>à</B> nouveau en positionnant le pointeur d'instruction sur l'adresse indiquée par l'adresse d'instruction 210. Avant d'exécuter<B>à</B> nouveau les instructions abandonnées, le processeur<B>100</B> désactive le mode d'organisation de groupe de la logique de fragmentation 112 qui assemble les instructions multiples groupes d'instructions 202 ainsi que décrit précédemment. Le mode d'organisation de groupe étant désactivé, il sera attribué<B>à</B> chaque instruction mise en place sa propre entrée dans le tableau d'exécution<B>118.</B> De cette manière, l'adresse de chaque instruction mise en place est conservée pendant que les instructions sont lancées. La figure 4 décrit une représentation de l'ensemble des instructions généré par la logique de fragmentation 112 après que le mode d'organisation de groupe ait été désactivé suite<B>à</B> une exception prise par l'instruction de chargement mémorisée dans la case 204c du groupe d'instructions 202. Le mode d'organisation de groupe étant désactivé l'unité de fragmentation 112 génère un ensemble de quatre "groupes" d'instructions<B>à</B> partir de l'ensemble des instructions du groupe d'instructions 202 de la figure 4 organisé avant la désactivation du mode d'organisation de groupe. Les quatre groupes d'instructions 202a<B>à 202d</B> générés par l'unité de fragmentation 112 après désactivation mode d'organisation de groupe comprennent chacun une instruction unique dans la case 204a et aucune instruction dans les cases restantes 204b<B>à</B> 204d. Chaque groupe 202a<B>à 202d</B> produit avec le mode d'organisation de groupe désactive possède ses propres valeurs de GTAG et d'adresse d'instruction correspondantes. Ainsi, l'instruction LD2, qui était attribuée<B>à</B> la case 204c du groupe d'instructions 202 lorsaue le mode d'organisation de groupe était activé, est réexécutée <B>à</B> nouveau, comme étant son propre groupe d'instructions 202c, après que le mode d'organisation de groupe a été désactivé. Lorsque l'instruction LD2 est exécutée, elle générera soit la même exception qui avait été générée lorsqu'elle avait été exécutée la première fois, auquel cas l'adresse correspondant<B>à</B> l'instruction LD2 est mémorisée dans le champ d'adresse d'instruction du groupe 202 soit l'instruction s'achèvera sans exception, auquel cas aucun dommage n'aura été commis en exécutant avec le mode d'organisation de groupe désactivé, autre que la légère pénalité sur les performances qui résulte de l'exécution avec le mode d'organisation de groupe désactivé. Si l'instruction LD2 génère réellement la même exception qui avait été générée la première fois qu'elle a été exécutée, l'adresse d'instruction correspondant<B>à</B> l'instruction LD2 est facilement disponible et le traitement d'exception normal est effectué Après que l'exception ait été traitée, le mode d'organisation de groupe peut être activé pour revenir<B>à</B> une instruction a hautes performances. Ainsi, dans le mode de réalisation préféré, l'unité de fragmentation 112 inclut des dispositifs pour désactiver (et activer) l'organisation de multiples instructions en un groupe d'instruction unique. Dans un mode de réalisation particulier, le mode d'organisation de groupe est désactivé en réponse<B>à</B> la détection d'une interruption générée par une instruction qui occupait une case intérieure d'un groupe d'instructions. Pour les besoins de cette description, une case d'instruction intérieure fait référence <B>à</B> toute case 204 d'un groupe d'instructions 202 autre que la premiere case d'instruction 204a.
On appréciera de ce fait que le mode de réalisation décrit processeur<B>100</B> inclut des dispositifs pour organiser ensemble d'instructions en un groupe d'instructions avec une étiquette de groupe commune afin de simplifier la logique répartition et d'exécution. Cette simplification permet processeur<B>100</B> de suivre un nombre augmenté d'instructions lancées sans augmenter de façon significative la complexité matériel nécessaire pour suivre l'état des instructions instance. Le processeur<B>100</B> inclut en outre la capacité désactiver ce mode d'organisation de groupe lorsqu' exception correspondant<B>à</B> une instruction provenant d'une case d'instruction intérieure est détectée. Après désactivation du mode d'organisation groupe, l'instruction qui résultait de l'exception est exécutée<B>à</B> nouveau avec le mode d'organisation de groupe désactivé de telle façon que l'adresse de l'instruction ayant généré l'exception est conservée pendant que l'instruction en instance pour faciliter le traitement classique d'exception. Il conviendra de comprendre que la forme de l'invention représentée et décrite dans la description détaillée et sur les dessins doit être considérée simplement en tant qu'exemples.

Claims (1)

  1. REVENDICATIONS Procédé de traitement des instructions dans un processeur, comprenant: <B>-</B> la lecture d'un ensemble d'instructions, <B>-</B> l'organisation de l'ensemble d'instructions en un groupe d'instructions dans lequel chaque instruction partage étiquette commune de groupe, indicative rangement du groupe d'instructions par rapport aux autres groupes instructions; et <B>-</B> l'attribution au groupe d'instructions d'une entrée dans un tableau d'exécution pour suivre l'état T exécution du groupe d'instructions au fur et<B>à</B> mesure que les instructions groupe d'instructions sont exécutées et l'enregistrement de l'étiquette du groupe d'instruction dans le tableau d'exécution. 2. Procédé selon la revendication<B>1</B> comprenant en outre la maintenance de l'entrée de la table d'exécution correspondant au groupe d'instructions jusqu'à ce que chaque instruction du groupe d'instruction ait été exécutée et, ensuite, la libération de cette entrée de la table d'exécution. <B>3.</B> Procédé selon la revendication<B>1,</B> dans lequel l'ensemble des instructions lues est formaté selon un premier format d'instruction et dans lequel le procédé comprend en outre la modification du format des instructions en un deuxième format d'instruction avant exécution. 4. Procédé selon la revendication<B>3,</B> dans lequel la largeur du deuxième format d'instruction est plus grande que la largeur du premier format d'instruction. <B>5.</B> Procédé selon la revendication<B>1,</B> dans lequel l'ensemble des instructions lues inclut une instruction complexe et dans lequel en outre l'organisation de l'ensemble des instructions inclut la décomposition de l'instruction complexe en instructions simples et multiples dans le groupe d'instructions, d'où il résulte qu'une instruction unique lue correspond<B>à</B> des instructions multiples du groupe d'instructions. <B>6.</B> Procédé selon la revendication<B>5,</B> dans lequel l'instruction complexe comprend une instruction de chargement multiple et dans lequel en outre l'instruction chargement multiple est décomposée en de multiples instructions simples couvrant des groupes d'instructions multiples. <B>7.</B> Procedé selon la revendication<B>1,</B> comprenant en outre la réservation de la dernière position d'instruction du groupe d'instructions pour les instructions de branchement <B>8.</B> Procedé selon la revendication<B>1,</B> comprenant en outre l'enregistrement d'une adresse d'instruction unique pour le groupe d'instructions dans le tableau d'exécution. <B>9.</B> Procedé selon la revendication<B>8</B> dans lequel l'adresse d'instruction unique est l'adresse d'instruction de l'instruction de la première position d'instruction du groupe d'instructions. <B>10.</B> Procédé selon la revendication<B>1,</B> comprenant outre, en réponse<B>à</B> la détection d'une exception générée par une instruction du groupe d'instructions pendant l'exécution des instructions, l'abandon du groupe d'instructions. <B>11.</B> Procédé selon la revendication<B>10,</B> comprenant en outre, en réponse<B>à</B> la détection d'une exception générée par une instruction du groupe d'instructions pendant l'exécution des instructions, l'abandon de tous les autres groupes d'instructions plus jeunes. 12. Procédé selon l'une des revendications<B>10</B> et<B>il,</B> comprenant en outre, en réponse<B>à</B> l'abandon du groupe d'instructions, la désactivation du mode d'organisation de groupe avant l'exécution de l'ensemble d'instructions suivant l'exception, dans lequel une étiquette d'instruction et une adresse d'instruction sont enregistrées dans le tableau d'exécution pour chaque instruction. <B>13.</B> Procédé selon le revendication<B>10,</B> comprenant en outre, en réponse<B>à</B> une exception générée par une instruction occupant une position d'instruction autre que la première position d'instruction groupe d'instruction, la désactivation mode d'organisation de groupe. 14. Processeur comprenant: <B>-</B> une unité de lecture configurée pour retrouver instructions<B>à</B> partir d'une mémoire cache d'instructions; une unité de fragmentation configurée pour recevoir l'ensemble des instructions lues et incluant un dispositif d'organisation groupe adaptée pour organiser l'ensemble instructions en groupe d'instructions; et <B>-</B> une logique de répartition et d'exécution adaptée pour attribuer une étiquette de groupe au groupe d'instructions et enregistrer l'étiquette de groupe dans une entrée d'un tableau d'exécution pour suivre l'état d'exécution des instructions composant le groupe d'instructions. <B>15.</B> Processeur selon la revendication 14 dont les moyens de lecture, de fragmentation, de répartition et d'exécution sont adaptés pour mettre en #uvre le procédé de l'une des revendications 2<B>à 13.</B>
FR0011605A 1999-10-28 2000-09-12 Procede de traitement des instructions dans un processeur et processeur le mettant en oeuvre Expired - Fee Related FR2800482B1 (fr)

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
US09/428,399 US6654869B1 (en) 1999-10-28 1999-10-28 Assigning a group tag to an instruction group wherein the group tag is recorded in the completion table along with a single instruction address for the group to facilitate in exception handling

Publications (2)

Publication Number Publication Date
FR2800482A1 true FR2800482A1 (fr) 2001-05-04
FR2800482B1 FR2800482B1 (fr) 2003-06-13

Family

ID=23698735

Family Applications (1)

Application Number Title Priority Date Filing Date
FR0011605A Expired - Fee Related FR2800482B1 (fr) 1999-10-28 2000-09-12 Procede de traitement des instructions dans un processeur et processeur le mettant en oeuvre

Country Status (2)

Country Link
US (1) US6654869B1 (fr)
FR (1) FR2800482B1 (fr)

Families Citing this family (21)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US20050102494A1 (en) * 2003-11-12 2005-05-12 Grochowski Edward T. Method and apparatus for register stack implementation using micro-operations
US7278011B2 (en) * 2004-04-08 2007-10-02 International Business Machines Corporation Completion table configured to track a larger number of outstanding instructions without increasing the size of the completion table
US7475223B2 (en) * 2005-02-03 2009-01-06 International Business Machines Corporation Fetch-side instruction dispatch group formation
US7269715B2 (en) * 2005-02-03 2007-09-11 International Business Machines Corporation Instruction grouping history on fetch-side dispatch group formation
US20070198812A1 (en) * 2005-09-27 2007-08-23 Ibm Corporation Method and apparatus for issuing instructions from an issue queue including a main issue queue array and an auxiliary issue queue array in an information handling system
US7350056B2 (en) * 2005-09-27 2008-03-25 International Business Machines Corporation Method and apparatus for issuing instructions from an issue queue in an information handling system
US8219784B2 (en) * 2008-12-09 2012-07-10 International Business Machines Corporation Assigning and pre-decoding group ID and tag ID prior to dispatching instructions in out-of-order processor
US8082467B2 (en) * 2009-12-23 2011-12-20 International Business Machines Corporation Triggering workaround capabilities based on events active in a processor pipeline
US9104399B2 (en) * 2009-12-23 2015-08-11 International Business Machines Corporation Dual issuing of complex instruction set instructions
US9135005B2 (en) * 2010-01-28 2015-09-15 International Business Machines Corporation History and alignment based cracking for store multiple instructions for optimizing operand store compare penalties
US8495341B2 (en) * 2010-02-17 2013-07-23 International Business Machines Corporation Instruction length based cracking for instruction of variable length storage operands
US8938605B2 (en) * 2010-03-05 2015-01-20 International Business Machines Corporation Instruction cracking based on machine state
US8464030B2 (en) 2010-04-09 2013-06-11 International Business Machines Corporation Instruction cracking and issue shortening based on instruction base fields, index fields, operand fields, and various other instruction text bits
US8645669B2 (en) 2010-05-05 2014-02-04 International Business Machines Corporation Cracking destructively overlapping operands in variable length instructions
CN102789377B (zh) 2011-05-18 2015-09-30 国际商业机器公司 处理指令分组信息的方法和装置
GB2514618B (en) * 2013-05-31 2020-11-11 Advanced Risc Mach Ltd Data processing systems
US9513805B2 (en) * 2014-04-15 2016-12-06 International Business Machines Corporation Page table including data fetch width indicator
US10108423B2 (en) 2015-03-25 2018-10-23 International Business Machines Corporation History buffer with single snoop tag for multiple-field registers
US9367322B1 (en) 2015-07-27 2016-06-14 International Business Machines Corporation Age based fast instruction issue
US10983797B2 (en) * 2019-05-28 2021-04-20 International Business Machines Corporation Program instruction scheduling
US11249757B1 (en) * 2020-08-14 2022-02-15 International Business Machines Corporation Handling and fusing load instructions in a processor

Citations (4)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US5404557A (en) * 1991-11-22 1995-04-04 Matsushita Electric Industrial Co., Ltd. Data processor with plural instruction execution parts for synchronized parallel processing and exception handling
WO1998006042A1 (fr) * 1996-08-07 1998-02-12 Sun Microsystems, Inc. Procede et appareil permettant de decondenser des instructions longues
US5826055A (en) * 1991-07-08 1998-10-20 Seiko Epson Corporation System and method for retiring instructions in a superscalar microprocessor
US5930491A (en) * 1997-06-18 1999-07-27 International Business Machines Corporation Identification of related instructions resulting from external to internal translation by use of common ID field for each group

Family Cites Families (7)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US5075844A (en) * 1989-05-24 1991-12-24 Tandem Computers Incorporated Paired instruction processor precise exception handling mechanism
US5333280A (en) * 1990-04-06 1994-07-26 Nec Corporation Parallel pipelined instruction processing system for very long instruction word
EP0454985B1 (fr) * 1990-05-04 1996-12-18 International Business Machines Corporation Architecture de machine pour un jeu échelonnable d'instructions combinées
US5896519A (en) * 1996-06-10 1999-04-20 Lsi Logic Corporation Apparatus for detecting instructions from a variable-length compressed instruction set having extended and non-extended instructions
US5925124A (en) * 1997-02-27 1999-07-20 International Business Machines Corporation Dynamic conversion between different instruction codes by recombination of instruction elements
US6108768A (en) * 1998-04-22 2000-08-22 Sun Microsystems, Inc. Reissue logic for individually reissuing instructions trapped in a multiissue stack based computing system
US6324640B1 (en) * 1998-06-30 2001-11-27 International Business Machines Corporation System and method for dispatching groups of instructions using pipelined register renaming

Patent Citations (4)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US5826055A (en) * 1991-07-08 1998-10-20 Seiko Epson Corporation System and method for retiring instructions in a superscalar microprocessor
US5404557A (en) * 1991-11-22 1995-04-04 Matsushita Electric Industrial Co., Ltd. Data processor with plural instruction execution parts for synchronized parallel processing and exception handling
WO1998006042A1 (fr) * 1996-08-07 1998-02-12 Sun Microsystems, Inc. Procede et appareil permettant de decondenser des instructions longues
US5930491A (en) * 1997-06-18 1999-07-27 International Business Machines Corporation Identification of related instructions resulting from external to internal translation by use of common ID field for each group

Also Published As

Publication number Publication date
FR2800482B1 (fr) 2003-06-13
US6654869B1 (en) 2003-11-25

Similar Documents

Publication Publication Date Title
FR2800482A1 (fr) Procede de traitement des instructions dans un processeur et processeur le mettant en oeuvre
US6931639B1 (en) Method for implementing a variable-partitioned queue for simultaneous multithreaded processors
US7908456B2 (en) System and method for allocating and deallocating memory within transactional code
BE1007932A7 (fr) Procede et circuit de memorisation et de hierarchisation d&#39;ordres d&#39;effacement dans un dispositif de memoire.
US9740553B2 (en) Managing potentially invalid results during runahead
EP0637798B1 (fr) Procédé d&#39;analyse d&#39;interblocage dans un système d&#39;exploitation
WO2010105889A1 (fr) Unité d&#39;allocation et de contrôle
US8977837B2 (en) Apparatus and method for early issue and recovery for a conditional load instruction having multiple outcomes
JP4005724B2 (ja) マルチプルリターンサイトを実現するための方法及び装置
EP3314420B1 (fr) Procédé d&#39;exécution d&#39;un programme d&#39;ordinateur comportant une fonction paramétrée
FR2805368A1 (fr) Systeme et procede utilisant l&#39;acces speculatif a l&#39;antememoire pour des performances ameliorees
US8490098B2 (en) Concomitance scheduling commensal threads in a multi-threading computer system
CA2874115A1 (fr) Procede de gestion d&#39;une execution de taches dans un systeme informatique
EP1175122A1 (fr) Dispositif de gestion de mémoire permettant l&#39;inscription de blocs de données par substitution
EP2081114A1 (fr) Dispositif informatique à mémoire réservée pour des applications prioritaires
CN104156196B (zh) 重命名预处理方法
FR2782820A1 (fr) Procede et dispositif de traitement d&#39;image
FR2850179A1 (fr) Dispositif d&#39;antememoire pour un processeur de signal numerique et procede de commande
FR2821449A1 (fr) Procede de gestion d&#39;instructions au sein d&#39;un processeur a architecture decouplee, en particulier un processeur de traitement numerique du signal, et processeur correspondant
EP1436694B1 (fr) Microprocesseur disposant d&#39;un espace adressable etendu
US20140189313A1 (en) Queued instruction re-dispatch after runahead
FR2991071A1 (fr) Procede et dispositif de traitement de donnees
CN107633090A (zh) 一种基于分布式文件系统客户端锁拆分的方法
WO2020002783A1 (fr) Architecture de processeur asynchrone
WO2020016511A1 (fr) Procédé d&#39;accéleration de l&#39;exécution d&#39;un programme à chemin unique par exécution en parallèle de séquences conditionnellement concurrentes

Legal Events

Date Code Title Description
ST Notification of lapse

Effective date: 20060531

D3 Ip right revived
ST Notification of lapse

Effective date: 20140530