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 PDFInfo
- 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
Links
- 238000000034 method Methods 0.000 title claims description 25
- 238000013467 fragmentation Methods 0.000 claims description 34
- 238000006062 fragmentation reaction Methods 0.000 claims description 34
- 230000008520 organization Effects 0.000 claims description 23
- 230000008569 process Effects 0.000 claims description 7
- 230000004044 response Effects 0.000 claims description 7
- 238000010586 diagram Methods 0.000 description 3
- 238000001514 detection method Methods 0.000 description 2
- 230000005540 biological transmission Effects 0.000 description 1
- 230000009849 deactivation Effects 0.000 description 1
- 230000000694 effects Effects 0.000 description 1
- 230000007246 mechanism Effects 0.000 description 1
- 230000000644 propagated effect Effects 0.000 description 1
- 230000008929 regeneration Effects 0.000 description 1
- 238000011069 regeneration method Methods 0.000 description 1
- 230000000717 retained effect Effects 0.000 description 1
- 230000000630 rising effect Effects 0.000 description 1
Classifications
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F9/00—Arrangements for program control, e.g. control units
- G06F9/06—Arrangements for program control, e.g. control units using stored programs, i.e. using an internal store of processing equipment to receive or retain programs
- G06F9/30—Arrangements for executing machine instructions, e.g. instruction decode
- G06F9/38—Concurrent instruction execution, e.g. pipeline, look ahead
- G06F9/3818—Decoding for concurrent execution
- G06F9/382—Pipelined decoding, e.g. using predecoding
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F9/00—Arrangements for program control, e.g. control units
- G06F9/06—Arrangements for program control, e.g. control units using stored programs, i.e. using an internal store of processing equipment to receive or retain programs
- G06F9/30—Arrangements for executing machine instructions, e.g. instruction decode
- G06F9/38—Concurrent instruction execution, e.g. pipeline, look ahead
- G06F9/3836—Instruction issuing, e.g. dynamic instruction scheduling or out of order instruction execution
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F9/00—Arrangements for program control, e.g. control units
- G06F9/06—Arrangements for program control, e.g. control units using stored programs, i.e. using an internal store of processing equipment to receive or retain programs
- G06F9/30—Arrangements for executing machine instructions, e.g. instruction decode
- G06F9/38—Concurrent instruction execution, e.g. pipeline, look ahead
- G06F9/3836—Instruction issuing, e.g. dynamic instruction scheduling or out of order instruction execution
- G06F9/3838—Dependency mechanisms, e.g. register scoreboarding
- G06F9/384—Register renaming
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F9/00—Arrangements for program control, e.g. control units
- G06F9/06—Arrangements for program control, e.g. control units using stored programs, i.e. using an internal store of processing equipment to receive or retain programs
- G06F9/30—Arrangements for executing machine instructions, e.g. instruction decode
- G06F9/38—Concurrent instruction execution, e.g. pipeline, look ahead
- G06F9/3836—Instruction issuing, e.g. dynamic instruction scheduling or out of order instruction execution
- G06F9/3853—Instruction issuing, e.g. dynamic instruction scheduling or out of order instruction execution of compound instructions
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F9/00—Arrangements for program control, e.g. control units
- G06F9/06—Arrangements for program control, e.g. control units using stored programs, i.e. using an internal store of processing equipment to receive or retain programs
- G06F9/30—Arrangements for executing machine instructions, e.g. instruction decode
- G06F9/38—Concurrent instruction execution, e.g. pipeline, look ahead
- G06F9/3854—Instruction completion, e.g. retiring, committing or graduating
- G06F9/3856—Reordering of instructions, e.g. using queues or age tags
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F9/00—Arrangements for program control, e.g. control units
- G06F9/06—Arrangements for program control, e.g. control units using stored programs, i.e. using an internal store of processing equipment to receive or retain programs
- G06F9/30—Arrangements for executing machine instructions, e.g. instruction decode
- G06F9/38—Concurrent instruction execution, e.g. pipeline, look ahead
- G06F9/3854—Instruction completion, e.g. retiring, committing or graduating
- G06F9/3858—Result writeback, i.e. updating the architectural state or memory
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F9/00—Arrangements for program control, e.g. control units
- G06F9/06—Arrangements for program control, e.g. control units using stored programs, i.e. using an internal store of processing equipment to receive or retain programs
- G06F9/30—Arrangements for executing machine instructions, e.g. instruction decode
- G06F9/38—Concurrent instruction execution, e.g. pipeline, look ahead
- G06F9/3861—Recovery, 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)
- 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>
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)
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)
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)
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 |
-
1999
- 1999-10-28 US US09/428,399 patent/US6654869B1/en not_active Expired - Fee Related
-
2000
- 2000-09-12 FR FR0011605A patent/FR2800482B1/fr not_active Expired - Fee Related
Patent Citations (4)
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'ordres d'effacement dans un dispositif de memoire. | |
US9740553B2 (en) | Managing potentially invalid results during runahead | |
EP0637798B1 (fr) | Procédé d'analyse d'interblocage dans un système d'exploitation | |
WO2010105889A1 (fr) | Unité d'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'exécution d'un programme d'ordinateur comportant une fonction paramétrée | |
FR2805368A1 (fr) | Systeme et procede utilisant l'acces speculatif a l'antememoire pour des performances ameliorees | |
US8490098B2 (en) | Concomitance scheduling commensal threads in a multi-threading computer system | |
CA2874115A1 (fr) | Procede de gestion d'une execution de taches dans un systeme informatique | |
EP1175122A1 (fr) | Dispositif de gestion de mémoire permettant l'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'image | |
FR2850179A1 (fr) | Dispositif d'antememoire pour un processeur de signal numerique et procede de commande | |
FR2821449A1 (fr) | Procede de gestion d'instructions au sein d'un processeur a architecture decouplee, en particulier un processeur de traitement numerique du signal, et processeur correspondant | |
EP1436694B1 (fr) | Microprocesseur disposant d'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'accéleration de l'exécution d'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 |