FR2794259A1 - Dispositif materiel destine a l'execution d'instructions programmables basees sur des micro-instructions - Google Patents

Dispositif materiel destine a l'execution d'instructions programmables basees sur des micro-instructions Download PDF

Info

Publication number
FR2794259A1
FR2794259A1 FR0006085A FR0006085A FR2794259A1 FR 2794259 A1 FR2794259 A1 FR 2794259A1 FR 0006085 A FR0006085 A FR 0006085A FR 0006085 A FR0006085 A FR 0006085A FR 2794259 A1 FR2794259 A1 FR 2794259A1
Authority
FR
France
Prior art keywords
instructions
block
instruction
micro
microinstruction
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
FR0006085A
Other languages
English (en)
Other versions
FR2794259B1 (fr
Inventor
Alain Benayoun
Patrick Michel
Pennec Jean Francois Le
Claude Pin
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.)
Google LLC
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 FR2794259A1 publication Critical patent/FR2794259A1/fr
Application granted granted Critical
Publication of FR2794259B1 publication Critical patent/FR2794259B1/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
    • 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/22Microcontrol or microprogram arrangements
    • G06F9/223Execution means for microinstructions irrespective of the microinstruction function, e.g. decoding of microinstructions and nanoinstructions; timing of microinstructions; programmable logic arrays; delays and fan-out problems
    • 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/30145Instruction analysis, e.g. decoding, instruction word fields
    • 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/3017Runtime instruction translation, e.g. macros
    • G06F9/30174Runtime instruction translation, e.g. macros for non-native instruction set, e.g. Javabyte, legacy code
    • 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/30181Instruction operation extension or modification
    • G06F9/30185Instruction operation extension or modification according to one or more bits in the instruction, e.g. prefix, sub-opcode

Landscapes

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

Abstract

Dispositif matériel destiné au traitement parallèle d'une instruction déterminée d'un jeu d'instructions programmables ayant un même format avec un champ d'opérande définissant les étapes d'exécution de l'instruction correspondant à l'exécution des micro-instructions, comprenant des blocs de décision (12 à 20) chacun étant associé à une instruction spécifique du jeu d'instructions programmables, seul un bloc de décision étant sélectionné par l'instruction déterminée de manière à définir quelles sont les micro-instructions spécifiques devant être traitées en vue de l'exécution de l'instruction déterminée, des blocs d'activation (22 à 30) associés respectivement aux blocs de décision en vue de l'exécution d'une ou plusieurs micro-instructions spécifiques, seul le bloc d'activation associé au bloc de décision sélectionné étant activé pour exécuter les micro-instructions spécifiques, et un bloc de sélection de micro-instructions (46) relié à chaque bloc d'activation en vue de la sélection des micro-instructions spécifiques devant être exécutées.

Description

L'invention se rapporte, d'une façon générale,<B>à</B> l'exécution d'instructions basée sur le traitement d'une ou plusieurs micro-inst ruct ions dans un système de traitement de données, et concerne en particulier un dispositif matériel destiné<B>à</B> exécuter des instructions programmables en utilisant un jeu de micro-instructions déterminées.
Au début de l'informatique, les ordinateurs n'avaient que de petites quantités de mémoire. De ce fait et de manière<B>à</B> maximiser les performances des ordinateurs dans les années<B>1960,</B> un jeu d'instructions complexe (bien connu comme architecture d'ordinateur<B>à</B> jeu d'instructions complexe (CISC)) a été utilisé pour réduire la quantité de mémoire nécessaire. Il en est résulté une efficacité augmentée due au fait qu'un programme prenait moins de mémoire d'ordinateur, et pouvait donc récupérer davantage d'informations pour le traitement.
<B>A</B> cette époque, les unités de mémoire étaient plus lentes que l'unité centrale (UC). Si une instruction complexe encapsulait plusieurs instructions simples, le temps passé<B>à</B> la récupération de l'instruction depuis la mémoire était réduit. Ceci était très important dans la mesure<B>où</B> les ordinateurs fonctionnaient de manière séquentielle et l'instruction devait donc être achevée avant que l'ordinateur ne récupère une autre instruction<B>à</B> partir d'un traitement en mémoire.
Un autre point fort de l'architecture CISC était le microcode. Le microcode agissant essentiellement comme une couche de traduction entre les instructions et l'électronique de l'ordinateur. Le microcode était une bénédiction pour les architectes d'ordinateurs car il était plus facile d'ajouter de nouveaux types d'instructions machine sans avoir<B>à</B> concevoir de nouveaux circuits électroniques. Ils pouvaient concevoir une famille d'architecture, c'est-à-dire une gamme d'ordinateurs partageant le même jeu d'instructions.
Le résultat net de la microprogrammation, en dehors de ce qui précède, était qu'elle réduisait le trafic entre l'unité centrale et la mémoire. Elle diminuait le volume des instructions dans le cheminement des données en laissant ainsi plus de place aux données.
Mais l'inconvénient des systèmes de traitement de données<B>à</B> architecture CISC était qu'un très petit pourcentage d'instructions complexes était utilisé aussi bien par les programmeurs que par les compilateurs. Chacune de ces instructions complexes nécessite cependant un nombre beaucoup plus grand de transistors dans la puce que l'instruction simple, augmentant ainsi la taille de la puce de silicium.
<B>A</B> la fin des années<B>70,</B> les progrès dans la technologie des semiconducteurs commencèrent<B>à</B> réduire la différence de vitesse entre la mémoire centrale et les puces de processeurs.<B>A</B> mesure que la vitesse de la mémoire augmentait et que des langages de haut niveau supplantaient le langage assembleur, les avantages majeurs de l'architecture CISC commencèrent<B>à</B> disparaître, et les concepteurs d'ordinateurs commencèrent<B>à</B> étudier la manières permettant l'optimisation des performances des ordinateurs en plus de rendre le matériel plus rapide.
Une des réalisations essentielles a été qu'une séquence d'instructions simples produise les mêmes résultats qu'une séquence d'instructions complexes, mais puisse être mise en oeuvre <B>à</B> l'aide d'une conception matérielle plus simple (et plus rapide) L'architecture d'ordinateur<B>à</B> jeu d'instructions réduit (RISC) a été le résultat de ces études. Dans une machine<B>à</B> architecture RISC, le jeu d'instructions ne contient que des instructions fondamentales simples<B>à</B> partir desquelles davantage d'instructions complexes peuvent être composées. Chaque instruction a la même longueur, de sorte qu'elle peut être chargée en une seule opération. La plupart des instructions sont effectuées en un cycle machine, ce qui permet au processeur de traiter plusieurs instructions en même temps. Ce traitement en pipeline est une technique essentielle utilisée<B>'</B> pour accélérer les machines<B>à</B> architecture RISC.
Il en résulte que les compilateurs RISC doivent générer des programmes pour exécuter des instructions complexes, ce qui aurait été fait par le matériel dans les ordinateurs<B>à</B> architecture CISC. Du fait que l'architecture RISC ne comporte pas un jeu complet d'instructions comme dans l'architecture CISC, ceci exige que du code plus long soit écrit ainsi qu'un séquencement moins optimisé d'instructions par comparaison aux instructions optimisées de l'architecture CISC. En d'autres termes, l'architecture RISC n'est pas toujours adaptée<B>à</B> tous les programmes, en particulier lorsqu'un nombre réduit d'instructions complexes est la séquence d'instructions la<B>plus</B> fréquemment utilisée.
En conséquence, le but principal de l'invention est de fournir un dispositif matériel destiné<B>à</B> traiter un jeu d'instructions correspondant mieux au besoin de chaque programme, permettant l'utilisation d'instructions simples lorsque cela est nécessaire, et davantage d'instructions complexes correspondant<B>à</B> la séquence d'instructions de base la plus fréquemment utilisée.
Un autre but de l'invention est de fournir un dispositif matériel destiné au traitement d'instructions programmables capable d'exécuter des séquences sélectionnées de micro- instructions parmi un jeu limité de micro-instructions.
L'invention se rapporte de ce fait<B>à</B> un dispositif matériel pour le traitement parallèle d'une instruction déterminée d'un jeu d'instructions programmables présentant un même format, avec un champ d'opérande définissant les étapes d'exécution de l'instruction, chacune des étapes d'exécution correspondant<B>à</B> une micro-instruction sélectionnée parmi une pluralité de micro- inst ruct ions. Ce dispositif comprend des blocs de décision qui sont chacun associés<B>à</B> une instruction spécifique d'un jeu d'instructions programmables, un seul bloc de décision étant sélectionné par l'instruction déterminée pour définir quelles sont les micro-instructions qui doivent être traitées en vue de l'exécution de l'instruction déterminée, des blocs d'activation respectivement associés aux macroblocs de décision destinés<B>à</B> exécuter une ou plusieurs micro-instructions spécifiques, seul le bloc d'activation associé uniquement au bloc de décision sélectionné étant activé pour exécuter les micro-instructions spécifiques, et un bloc de sélection de micro-inst ruct ions relié<B>à</B> chaque bloc d'activation pour sélectionner les micro- instructions spécifiques parmi la pluralité de micro-instructions en réponse au contenu du champ d'opérande de l'instruction déterminée.
Ce qui précède et d'autres buts, caractéristiques et avantages de l'invention seront mieux compris en lisant la description plus particulière qui suit de l'invention en référence aux dessins annexés dans lesquels<B>:</B> La figure<B>1</B> est un bloc-diagramme représentant un mode de réalisation préféré du dispositif conforme<B>à</B> l'invention.
La figure 2 est un bloc-diagramme représentant un mode de réalisation préféré d'un bloc de décision du dispositif conforme<B>à</B> l'invention.
La figure<B>3</B> est un bloc-diagramme représentant principalement un mode de réalisation préféré d'un bloc d'activation du dispositif conforme<B>à</B> l'invention.
La figure 4 est un bloc-diagramme représentant principalement un mode de réalisation préféré du bloc de sélection de micro-instructions du dispositif conforme<B>à</B> l'invention.
L'idée principale de l'invention est de sélectionner, parmi un jeu d'instructions, un groupe d'instructions appropriées qui doivent être utilisées comme instructions programmables pour les programmes réalisant l'assemblage d'instructions et de séquences d'instructions les plus fréquemment utilisées. Une telle sélection peut être effectuée sur une plage spécifique d'instructions réservées <B>à</B> ce propos et/ou peut être un remplacement des instructions inutilisées, ou moins utilisées, par des instructions plus appropriées. Chacune des instructions programmables consiste en une séquence de micro-instructions prises dans un jeu réduit de micro-instructions.
On suppose que chaque construction considérée dans la présente invention comprend un champ d'opérande (opcode) de <B>8</B> bits. Ceci signifie que le jeu d'instructions comprend <B>256</B> instructions. Parmi ces instructions, il est préférable que seule une partie d'entre elles soit programmable alors que d'autres ne le sont pas. Ainsi, par exemple, on peut supposer que les instructions présentant un champ d'opérande dont la valeur se situe entre<B>00000000</B> et <B>11011111</B> sont prédéfinies alors que les instructions présentant un champ d'opérande dont la valeur se situe entre<B>11100000</B> et<B>11111111</B> sont programmables.
Dans le dispositif matériel conforme<B>à</B> l'invention illustré sur la figure<B>1,</B> un registre d'instruction<B>10</B> est utilisé pour charger l'instruction qui doit être exécutée. Chaque instruction parmi un groupe de n instructions est décodée par un premier bloc de décision 12, 14,<B>16, 18</B> ou 20 parmi n blocs de décision respectivement associés aux n instructions. La sortie de chaque bloc de décision 12<B>à</B> 20 est fournie<B>à</B> l'un des blocs d'activation correspondant parmi une pluralité de n blocs d'activation 22, 24,<B>26, 28,</B> <B>30.</B> Les sorties des blocs d'activation 22<B>à 30</B> sont toutes <B>à</B> la valeur<B>0 à</B> l'exception de la sortie du bloc d'activation correspondant au bloc de décision associé<B>à</B> l'instruction chargée dans le registre<B>10,</B> lequel est<B>à</B> la valeur<B>1,</B> Puis, le bloc d'activation recevant la valeur<B>1</B> de son bloc de décision correspondant active l'une ou plusieurs mi cro- inst ruct ions<B>32,</B> 34,<B>36, 38,</B> 40, 42, 44 qui doivent être exécutées dans le traitement de l'instruction décodée. Par exemple, le nombre de micro- ins t ruct ions est de<B>7</B> sur la figure<B>1.</B> D'une manière générale, le nombre de micro-instructions est réduit, par exemple 64 ou moins, dans la mesure ou un tel nombre réduit définit un nombre très important de combinaisons déterminées par le champ d'opérande de l'instruction.
Comme on le verra ci-après, un bloc de sélection de micro-instructions 46 est utilisé pour sélectionner les micro-instruct ions spécifiques qui doivent être exécutées en réponse au contenu du champ d'opérande. De même, un bloc de registres 48 est utilisé pour mémoriser les bits de commande définis par le champ d'opérande de l'instruction, et permettant qu'à la fois le bloc d'activation sélectionné et le bloc de sélection de micro-instructions 46 soient commandés conformément<B>à</B> l'instruction programmable comme décrit ci-après.
Chaque bloc de décision 12, 14,<B>16, 18</B> ou 20 est un dispositif matériel qui est configuré conformément<B>à</B> l'instruction associée comme décrit<B>à</B> présent en faisant référence<B>à</B> la figure 2. Une telle configuration est réalisée en utilisant un registre de masque<B>50</B> et un registre de valeur<B>52.</B> Le registre de masque<B>50</B> qui présente la même longueur que le registre d'instruction<B>10,</B> contient des bits utilisés pour masquer les bits qui n'ont pas d'intérêt pour l'exécution de l'invention. Ces bits sont tous des bits de données qui ne sont pas des bits d'opérande dans l'instruction, mais peuvent être également des bits du champ d'opérande qui sont inutiles pour cette instruction. Ainsi, les instructions pour une comparaison sur<B>8</B> bits et une comparaison sur<B>16</B> bits sont similaires mais<B>8</B> bits du code d'opération sont inutiles pour une comparaison sur<B>8</B> bits et peuvent être masqués. Dans un tel cas, le masque permet de réduire le nombre de blocs de décision du fait que plusieurs instructions sont présentées par un seul masque. On notera que dans le mode de réalisation préféré, les bits qui sont utilisés en tant que masque sont initialisés<B>à</B> la valeur<B>1</B> et que les autres bits correspondant aux bits pertinents du champ d'opérande sont initialisés<B>à</B> la valeur<B>0.</B> Chaque bit du registre de masque est combiné logiquement dans un circuit<B>OU</B> (OR) 54 (seul un circuit est référencé sur la figure 2), le bit correspondant de l'instruction étant chargé dans le registre d'instruction<B>10.</B> Ceci signifie que seul les bits utiles du champ d'opérande de l'instruction conservent leurs valeurs correctes alors que les autres bits correspondant aux bits de masquage du registre de masque<B>50</B> sont tous établis<B>à</B> la valeur<B>1.</B>
Le registre de valeur<B>52</B> qui a la même longueur que le registre d'instruction<B>10,</B> contient des bits identiques aux bits utiles du champ d'opérande dans l'instruction et des bits inutiles du champ d'opérande ou des bits des autres champs de données sont initialisés<B>à</B> la valeur<B>1.</B> Chaque bit du registre de valeur<B>52</B> est combiné logiquement dans un circuit<B>OU</B> EXCLUSIF (XOR) <B>56</B> (seul un circuit est référencé sur la figure 2), le bit correspondant fourni par le circuit logique<B>OU</B> étant associé au bit correspondant de l'instruction. Par suite, tous les bits fournis par le circuit logique<B>OU</B> EXCLUSIF sont combinés logiquement dans un circuit NON-OU (NOR) <B>58.</B> Ceci signifie que la ligne de sortie<B>60</B> du circuit NON-OU est établi<B>à</B> la valeur<B>1</B> uniquement si toutes les sorties des circuits<B>OU</B> EXCLUSIF sont établies<B>à 0,</B> c'est-à-dire lorsque la séquence de bits au niveau des sorties des circuits logiques<B>OU</B> est identique<B>à</B> la séquence des bits chargés dans le registre de valeur<B>52.</B> En d'autres termes, la ligne de sortie<B>60</B> du bloc de décision est<B>à</B> la valeur<B>1</B> uniquement si ce bloc est configuré conformément<B>à</B> l'instruction chargée dans le registred'instruction <B>10.</B>
Bien que la détermination de l'instruction impliquée soit de préférence mise en oeuvre en utilisant un bloc de décision tel que décrit en faisant référence<B>à</B> la figure 2, il est possible d'utiliser tout autre mécanisme de décodage quelconque. Ainsi, un décodage de base du code d'opérande de l'instruction serait suffisant pour identifier et sélectionner les micro-instructions devant être exécutées.
<B>A</B> titre d'exemple, si une plage est définie pour le jeu d'instructions programmable, un premier décodage identifiera cette plage. Il correspond<B>à</B> une ligne de sélection de circuit (CS) bien connue dans la conception des ordinateurs et de la logique. En outre, un décodage séparé des bits significatifs de cette plage est effectué afin de sélectionner chaque instruction. Ceci peut être réalisé en utilisant des décodeurs classiques<B>3 à 8</B> ou 4<B>à</B> <B>16.</B> Une conception équivalente en utilisant un<B>ET</B> logique, un<B>OU</B> logique et des portes d'inverseurs de circuits peut être utilisée. Alors, chaque bloc de décision représente un <B>ET</B> logique entre chaque sortie de ce décodeur et la ligne CS décodant la plage. Il n'y aura, s'il existe un code d'opération d'instruction programmable, qu'un bloc de décision qui identifiera et sélectionnera le code d'opération car il n'y aura qu'une sortie de décodeur valide. Si le code d'opération qui est décodé n'est pas compris dans la plage programmable, la ligne CS ne sera pas activée et aucun sélecteur de bloc ne sera activé.
Toujours avec cet exemple<B>déjà</B> mentionné ci-dessus, on suppose que<B>5</B> bits du code d'opérande sont programmables, résultant en un sous-ensemble de<B>32</B> instructions programmables. Ce sous-ensemble peut être divisé en<B>8</B> groupes d'instructions définis par<B>3</B> bits et chaque groupe peut inclure 4 instructions définies par 2 bits. Dans un tel exemple, un groupe détermine les micro-instructions qui peuvent être activées par les instructions du groupe, et une instruction détermine lesquelles de ces micro- inst ruct ions sont exécutées et dans quel ordre (en parallèle ou en séquence).
En supposant que les micro-instructions qui peuvent être utilisées dans un groupe sont prises<B>à</B> partir d'un jeu global de 64 micra-instructions, le procédé préféré consiste<B>à</B> prédéfinir des associations de micro-instructions. Avec un code de sélection de<B>8</B> bits, il est possible de définir<B>256</B> telles associations de micro-instructions. On notera que le nombre de ces associations peut être plus important en augmentant ainsi le nombre de bits du code de sélection.
En supposant qu'une association de<B>3</B> micro-instructions soit affectée<B>à</B> un groupe, il est nécessaire de définir un code d'exécution déterminant, pour chaque instruction du groupe, les micro- inst ruct ions parmi ces<B>3</B> micro-instructions devant être utilisées et dans quel ordre. Dans un tel cas, les possibilités d'exécution qui en découlent sont les suivantes<B>:</B> <B>1:</B> micro-instructions <B>1,</B> 2 et<B>3</B> exécutées en parallèle 2: mi cro- inst ruct ions<B>1,</B> 2 exécutées en parallèle,<B>3</B> non exécutée <B>3:</B> micro- inst ruct ions<B>1, 3</B> exécutées en parallèle, 2 non exécutée 4: micro- inst ruct ions 2,<B>3</B> exécutées en parallèle,<B>1</B> non exécutée <B>5:</B> micro-instructions <B>1</B> exécutée, 2 et<B>3</B> non exécutées <B>6:</B> micro-instructions 2 exécutée,<B>1</B> et<B>3</B> non exécutées <B>7:</B> micro-instructions <B>3</B> exécutée,<B>1</B> et 2 non exécutées <B>8:</B> micro-instructions <B>1,</B> 2 et<B>3</B> exécutées en séquence <B>9:</B> micro-instructions 2,<B>1</B> et<B>3</B> exécutées en séquence <B>10:</B> micro-instructions 2,<B>3</B> et<B>1</B> exécutées en séquence <B>11:</B> micro-instructions <B>3,</B> 2 et<B>1</B> exécutées en séquence 12; micro-instructions <B>3, 1</B> et 2 exécutées en séquence <B>13:</B> micro-instructions <B>1, 3</B> et 2 exécutées en séquence 14: micro- inst ruct ions<B>1,</B> 2 exécutées en séquence,<B>3</B> non exécutée <B>15</B> micro-inst ruct ions<B>1, 3</B> exécutées en séquence, 2 non exécutée <B>16:</B> micro- inst ruct ions 2,<B>3</B> exécutées en séquence,<B>1</B> non exécutée <B>17:</B> micro- instructions 2,<B>1</B> exécutées en séquence,<B>3</B> non exécutée <B>18:</B> micro- instructions<B>3, 1</B> exécutées en séquence, 2 non exécutée <B>19:</B> micro- inst ruct ions<B>3,</B> 2 exécutées en séquence,<B>1</B> non exécutée 20: micro-instructions <B>1,</B> 2 exécutées en parallèle,<B>3</B> après 21: micro-instructions <B>1, 3</B> exécutées en parallèle, 2 après 22: micro- instructions 2,<B>3</B> exécutées en parallèle,<B>1</B> après <B>23:</B> micro- inst ruct ions<B>3</B> en premier puis<B>1,</B> 2 exécutées en parallèle 24: mi cro- inst ruct ions 2 en premier puis<B>1, 3</B> exécutées en parallèle <B>25:</B> micro- ins t ruct ions<B>1</B> en premier, puis 2,<B>3</B> exécutées en parallèle En conséquence, un code d'exécution de<B>5</B> bits pour chaque instruction du groupe est suffisant. Naturellement, lorsque davantage de micro-inst ruct ions sont utilisées dans un groupe, le code d'exécution peut nécessiter plus de<B>5</B> bits.
Un mode de réalisation préféré d'un bloc d'activation 22<B>à 30</B> (par exemple le bloc d'activation 22) activant<B>3</B> micro-instructions parmi le jeu de micro-instructions est<B>à</B> présent décrit en faisant référence<B>à</B> la figure<B>3.</B>
On notera que dans le présent exemple, chaque groupe nécessite<B>8</B> bits (code de sélection) et 4 x<B>5</B> bits (code d'exécution), c"est-à-dire <B>28</B> bits. Ainsi, du fait qu'il existe 8-groupes définis par<B>3</B> bits du champ d'opérande de l'instruction, le bloc de registres doit avoir une capacité minimale de<B>28</B> x<B>8 =</B> 224 bits. Mais il est évident que la capacité du bloc de registres doit être adaptée au nombre de micro-instructions- qui sont utilisées, au nombre d'associations de micro-instructions, au nombre d'instructions programmables et au nombre de groupes d'instruction programmables.
On notera que, en plus de définir les instructions programmables par un sous-champ dans le code d'opérande de l'instruction, certaines instructions programmables peuvent être définies par un remplacement des instructions inutilisées ou moins utilisées. Un tel remplacement par des instructions programmables est obtenu en modifiant le contenu du registre de masque<B>50</B> et du registre de valeur <B>52</B> dans le bloc de décision (se reporter<B>à</B> la figure 2) en réponse<B>à</B> un code spécifique dans le bloc de registres 48.
En revenant<B>à</B> la figure<B>3,</B> le code d'exécution (de<B>5</B> bits) du bloc de registres 48 est utilisé par une logique de commande<B>62</B> dans le bloc d'activation pour établir les sorties Ml, M2, M3 et 1L2, 1L3, <B>2L3,</B> 2L1, 3L1, <B>3L2.</B> Les sorties Ml, M2, M3 définissent quelles micro- inst ruct ions doivent être activées,<B>mi</B> correspondant<B>à</B> la micro-instruction <B>1 (32),</B> M2 correspondant<B>à</B> la micro-instruction 2 (34) et M3 correspondant<B>à</B> la micro-instruction <B>3 (36).</B> Les sorties du bas mLn déterminent l'ordre selon lequel ces micro-instructions sont activées. Pour information, mLn avec m et n représentant<B>1,</B> 2 ou<B>3,</B> indique qu'une micro-instruction m sera exécutée seulement après qu'une micro-instruction n a été entièrement exécutée.
De manière<B>à</B> simplifier la figure, un bloc de sélection de micro-instructions 46 qui sera décrit ci-après, n'est représenté que par des lignes en pointillé. De la même manière, les lignes de liaison entre un bloc d'activation 22 et les micro-instructions sont représentées par des lignes en pointillé sans les détails des liaisons. Bien que dans l'exemple, seules trois micro-instruct ions sont exécutées, il est possible que le nombre de micro-instructions qui doivent être exécutées soit différent. D'une manière générale, si le nombre d'instructions est I, les sorties de la logique de commande <B>62</B> sont Ml, M2, MI, et le nombre de sorties inférieures mLn est égal<B>à</B> I x (I-1)<B>.</B> On notera que chacune des sorties M est un masque pour la micro-instruction correspondante<B>:</B> la valeur<B>1</B> sélectionne la micro-instruction et la valeur<B>0</B> la désactive.<B>-</B> Sur la base de la mise en oeuvre ci-dessus de la logique de commande<B>62,</B> il devient clair de comprendre comment mettre en oeuvre une combinaison de circuits logiques<B>ET</B> et<B>OU</B> représentés sur la figure<B>3.</B> Mais, il est également clair que de tels circuits pourraient être remplacés par l'homme du métier par une logique câblée différente pour obtenir le même résultat.
On notera que chaque bloc de micro- inst ruct ions<B>32,</B> 34 ou<B>36</B> comporte une ligne d'entrée qui est utilisée pour activer la micro-instruction lorsqu'elle est établie<B>à</B> la valeur<B>1</B> et une ligne de sortie qui n'est établie<B>à</B> la valeur<B>1</B> que lorsque l'exécution de la micro- inst ruct ion est achevée.
En supposant que seules les mi cro- instructions<B>1</B> et 2 doivent être exécutées, avec la micro-instruction 2 qui s'exécute après l'achèvement de l'exécution de la micro- instruction<B>1,</B> les valeurs binaires des sorties sont établies comme suit<B>:</B>
Figure img00120014
<B>mi <SEP> - <SEP> - <SEP> - <SEP> - <SEP> > <SEP> 1</B>
<tb> M2 <SEP> <B>---- <SEP> > <SEP> 1</B>
<tb> M3 <SEP> <B>---- <SEP> > <SEP> 0</B>
<tb> lL2 <SEP> <B>---- <SEP> > <SEP> 1</B>
<tb> <B>1L3 <SEP> ---- <SEP> > <SEP> 1</B>
<tb> <B>2L3 <SEP> ---- <SEP> > <SEP> 1</B>
<tb> 2L1 <SEP> <B>---- <SEP> > <SEP> 0</B>
Figure img00130000
<B>3L1 <SEP> -7 <SEP> --- <SEP> > <SEP> 1</B>
<tb> <B>3L2 <SEP> ---- <SEP> > <SEP> 1</B> En se référant<B>à</B> nouveau<B>à</B> la figure<B>3, à</B> la fois 1L3 et 1L2 étant établies<B>à</B> une valeur<B>1,</B> le circuit<B>ET (AND)</B> 64 a ses deux entrées (des cicuits <B>OU</B> (OR)<B>)</B> établies<B>à</B> une valeur<B>1</B> et le circuit<B>ET</B> produit une sortie<B>à</B> une valeur<B>1</B> vers un circuit<B>ET (AND) 66.</B> Du fait que le bloc d'activation 22 de la figure<B>3</B> est sélectionné, l'entrée depuis le bloc de décision 12 (se reporter<B>à</B> la figure 2) est établie<B>à</B> une valeur<B>1.</B> La troisième entrée Ml du circuit<B>ET 66</B> étant<B>à</B> la valeur<B>1,</B> le circuit<B>ET 66</B> produit un bit<B>à</B> la valeur<B>1</B> sur sa ligne de sortie<B>68</B> qui active la micro-instruction <B>1.</B>
Réciproquement, un circuit<B>ET 70</B> a sa première entrée établie<B>à</B> une valeur<B>1</B> (par<B>2L3) .</B> Mais sa seconde entrée est<B>à</B> une valeur<B>0</B> du fait que parmi ses deux entrées, 2L1 est établie<B>à</B> une valeur<B>0</B> et une micro-instruction <B>1</B> produit un bit<B>à</B> une valeur<B>0</B> sur sa ligne de sortie<B>72</B> tant que la micro-instruction <B>1</B> n'est pas achevée. Aussitôt que l'exécution de la micro-instruction <B>1</B> est achevée, elle produit un bit<B>à</B> une valeur<B>1</B> sur la ligne de sortie<B>72</B> et le circuit<B>ET 70</B> a ses deux entrées qui sont établies<B>à</B> une valeur<B>1.</B> De ce fait, le circuit<B>ET 70</B> établit sa sortie<B>à</B> une valeur<B>1.</B> Les trois entrées du circuit<B>ET</B> 74 étant établies<B>à</B> une valeur<B>1</B> du fait que la sortie M2 est<B>à</B> une valeur<B>1,</B> il produit un bit<B>à</B> une valeur<B>1</B> sur sa ligne de sortie<B>76</B> qui active une micro-instruction 2.
En ce qui concerne la micro-instruction <B>3,</B> elle ne sera jamais activée. En effet, le circuit<B>ET 78</B> a son entrée M3 qui est établie<B>à 0</B> par la logique de commande <B>62.</B> De ce fait, la ligne de sortie<B>80</B> (ligne d'activation de la micro-instruction <B>3)</B> du circuit<B>ET 78</B> est toujours<B>à</B> une valeur<B>0.</B>
Le bloc de sélection de micro-instructions 46 (se reporter<B>à</B> la figure<B>1)</B> relié<B>à</B> chacun des blocs d'activation en vue de la sélection de la micro-instruction spécifique devant être utilisée par l'instruction parmi la pluralité de micro-inst ruct ions, est décrit<B>à</B> présent en faisant référence<B>à</B> la figure 4.
Comme mentionné ci-dessus, le bloc de registres 48 est utilisé pour mémoriser les bits de commande définis par le champ dopérande de l'instruction, et en particulier, un code de sélection associé<B>à</B> chaque groupe d'instructions en vue de définir quelles sont les micro-instructions qui doivent être utilisées dans l'instruction. En supposant qu'il existe<B>256</B> associations de micro-instructions, chaque code de sélection comprend<B>8</B> bits. Si comme défini ci-dessus, il existe<B>8</B> groupes d'instructions (définis par trois bits dans le code d'opérande),<B>8</B> codes de sélection <B>82</B> ou 84 sont nécessaires pour commander le bloc de sélection de micro-instructions 46.
Le bloc de sélection de micro-instructions 46 est essentiellement composé de n sélecteurs<B>86, 88, 90</B> associés respectivement<B>à</B> chacun des blocs d'activation. Comme illustré sur la figure 4, le sélecteur<B>86</B> est associé au bloc d'activation 22, le sélecteur<B>88</B> est associé au bloc d'activation 24 et le sélecteur<B>90</B> est associé au bloc d'activation<B>30.</B>
Chaque sélecteur de micro-instructions <B>86, 88</B> ou<B>90</B> comprend autant de circuits combinatoires logiques que le nombre de sorties multiplié par le nombre d'entrées. Pour chaque couple entrée/sortie, ce circuit utilise le code de sélection et les liaisons des blocs d'activation associés en tant qu'entrées et comporte une seule sortie vers la micro- inst ruct ion appropriée par l'intermédiaire du circuit <B>OU 92.</B>
Le circuit combinatoire établit sa sortie<B>à</B> une valeur <B>1</B> chaque fois que l'entrée du code de sélection est activé, c'est-à-dire pour tous les codes de sélection qui commandent de mapper cette entrée vers cette sortie. Pour toutes les autres valeurs du code de sélection, la sortie est établie<B>à</B> une valeur<B>0.</B> Par exemple, avec un code de sélection de<B>8</B> bits définissant<B>256</B> cas possibles, seuls dix cas pourraient avoir défini la micro-instruction 4<B>(38)</B> devant être associée<B>à</B> une sortie<B>1</B> du bloc d'activation 2 (24)<B>.</B>
En supposant qu'il existe<B>8</B> groupes de 4 instructions, ceci signifie que n<B≥ 32</B> et qu'il existe<B>32</B> blocs d'activation respectivement associés aux<B>32</B> sélecteurs. En outre, un code de sélecteur commande 4 sélecteurs, comme le code de sélecteur<B>82</B> qui commande le sélecteur<B>86 (1),</B> le sélecteur<B>88</B> (2)<B>....</B>
Dans l'exemple illustré sur la figure 4,<B>3</B> micro-instructions parmi<B>7</B> micro-instructions sont activées! nécessitant ainsi trois lignes de liaisons bidirectionnelles entre un bloc d'activation et son sélecteur associé dans le bloc de sélection de micro-instructions 46. La ligne de sortie de chaque sélecteur n'est pas reliée directement<B>à</B> la micro-instruction sélectionnée par l'intermédiaire d'un circuit<B>OU</B> du fait que chaque sélecteur peut activer chaque micro-instruction en fonction du code de sélection dans le bloc de registres 48. Par conséquent, toutes les sorties des sélecteurs<B>1 à</B> n sont combinées dans un circuit<B>OU</B> tel que le circuit<B>OU</B> (OR)<B>92</B> pour chaque micro- inst ruct ion.
Dans l'autre sens, c'est-à-dire<B>à</B> partir de chaque bloc de micro-instruction vers le sélecteur, il n'existe aucun besoin de regrouper les lignes de connexion du fait que la ligne provenant du bloc de mi cro- instructions sera établie <B>à</B> une valeur<B>1</B> et reconnue directement par le sélecteur défini par le code de sélecteur et non pas par les autres sélecteurs du fait qu'un seul sélecteur est actif. Par conséquent, la sortie de chaque micro-instructions est reliée directement<B>à</B> tous les sélecteurs et réciproquement, chaque sélecteur est relié<B>à</B> chaque bloc de micro-instruction par deux lignes de liaison, une ligne de sortie (par l'intermédiaire d'un circuit<B>OU)</B> et une ligne d'entrée (directement).

Claims (1)

  1. <B>REVENDICATIONS</B> <B>1.</B> Dispositif matériel pour le traitement parallèle d'une instruction déterminée d'un jeu d'instructions programmables présentant un même format avec un champ d'opérande définissant les étapes d'exécution de l'instruction, chacune desdites étapes d'exécution correspondant<B>à</B> une micro-instruction sélectionnée parmi une pluralité de micro-instructions <B>(32 à</B> 44), ledit dispositif comprenant<B>:</B> <B>.</B> des blocs de décision (12<B>à</B> 20) qui sont chacun associé<B>à</B> une instruction spécifique dudit jeu d'instructions programmables, seul un bloc de décision étant sélectionné par ladite instruction déterminée de manière<B>à</B> définir quelles sont les micro-instructions qui doivent être traitées pour l'exécution de ladite instruction déterminée, <B>.</B> des blocs d'activation (22<B>à 30)</B> respectivement associés auxdits blocs de décision destinés<B>à</B> exécuter une ou plusieurs micro-instructions spécifiques, seul le bloc d'activation associé audit bloc de décision sélectionné étant activé pour exécuter lesdites micro-instructions spécifiques, et <B>.</B> un bloc de sélection de micro-inst ruct ions (46) relié<B>à</B> chacun desdits blocs d'activation destiné<B>à</B> sélectionner lesdites micro-instructions spécifiques parmi ladite pluralité de micro- instructions en réponse au contenu dudit champ d'opérande de ladite instruction déterminée. 2. Dispositif selon la revendication<B>1,</B> comprenant en outre un bloc de registres (48) destiné<B>à</B> mémoriser un code de sélection sélectionnant lesdites micro-instructions spécifiques et un code d'exécution définissant lesquelles desdites micro-instructions spécifiques doivent être exécutées et dans quel ordre. <B>3.</B> Dispositif selon la revendication 2, dans lequel chacun desdits blocs d'activation (22<B>à 30)</B> comprend une logique de commande sensible audit code d'exécution dans ledit bloc de registres (48), ledit bloc d'activation (22) associé audit bloc de décision sélectionné (12) qui est activé fournissant, en réponse audit code d'exécution et audit bloc de décision, des premiers signaux de commande <B>(Mi,</B> M2, M3) destinés<B>à</B> sélectionner quelles micro-instructions parmi lesdites micro-instructions spécifiques doivent être exécutées et des seconds signaux de commande<B>(3L2,</B> 3L1, 2L1, <B>2L3,</B> 1L3, 1L2) déterminant chaque micro-instruction devant être exécutée et quelle micro-instruction précédente doit être exécutée complètement auparavant. 4. Dispositif selon la revendication<B>3,</B> dans lequel ledit bloc d'activation (22) comprend en outre une logique combinatoire comprenant un circuit<B>ET (66,</B> 74 ou<B>78)</B> associé<B>à</B> chacune desdites micro-instructions spécifiques et aux circuits logiques (64 ou<B>70),</B> la sortie dudit circuit<B>ET</B> étant établie<B>à</B> une valeur<B>1</B> pour activer la micro-instruction associée lorsque ledit bloc de décision (12) et ledit bloc d'activation sont activés ensemble, ledit signal de commande destiné<B>à</B> sélectionner la micro-instruction est actif et ladite micro-instruction précédente a été exécutée. <B>5.</B> Dispositif selon l'une quelconque des revendications 2<B>à</B> 4, dans lequel ledit bloc de sélection de micro-instructions (46) comprend une pluralité de sélecteurs de micro-instructions <B>(86, 88, 90)</B> associés respectivement<B>à</B> chacun desdits blocs d'activation (22<B>à</B> <B>30),</B> chaque sélecteur de micro- ins t ruct ions connectant le bloc d'activation associé auxdites micro-instructions spécifiques en réponse audit code de sélection<B>(82</B> ou 84). <B>6.</B> Dispositif selon la revendication<B>5,</B> dans lequel chacun desdits sélecteurs de micro-instructions <B>(86, 88,</B> <B>90)</B> comprend des moyens de connexion destiné<B>à</B> relier ledit bloc d'activation associé (22<B>à 30) à</B> chaque micro-instruction <B>(32 à</B> 44), seules les connexions auxdites micro-instructions spécifiques étant activées en réponse audit code de sélection. <B>7.</B> Dispositif selon la revendication<B>6,</B> dans lequel lesdits moyens de connexion dans ledit sélecteur de micro-instructions <B>(86, 88, 90)</B> comprennent des moyens destinés<B>à</B> activer chaque micro-instruction qui a été sélectionnée en réponse audit code de sélection et un moyen pour connecter ladite micro- instruction sélectionnée audit bloc d'activation associé (22<B>à 30)</B> lorsque ladite micro-instruction sélectionnée a été exécutée. <B>8.</B> Dispositif selon l'une quelconque des revendications 2<B>à 7,</B> dans lequel ledit jeu d'instructions programmables est un premier jeu d'instructions parmi une pluralité d'instructions comprenant également un second jeu d'instructions non programmables, ledit jeu d'instructions programmables étant défini par un sous-champ dudit champ d'opérande. <B>9.</B> Dispositif selon la revendication<B>8,</B> dans lequel ledit sous-champ dudit champ d'opérande comprend une première partie définissant des groupes d'instructions associés respectivement<B>à</B> des groupes de micro- inst ruct ions spécifiques parmi ladite pluralité de micro-instructions <B>(32 à</B> 44), chaque groupe d'instructions étant associé respectivement<B>à</B> un code de sélection mémorisé dans ledit bloc de registres (48), et une seconde partie définissant ladite instruction déterminée parmi ledit groupe d'instructions, ladite instruction déterminée étant associée respectivement<B>à</B> un code d'exécution dans ledit bloc de registres pour définir quelles micro-inst ruct ions parmi le groupe de micro-instructions spécifiques sélectionnées par ledit code de sélection doivent être activées et dans quel ordre. <B>10.</B> Dispositif selon l'une quelconque des revendications<B>1 à 9,</B> dans lequel chacun desdits blocs de décision (12<B>à</B> 20) comprend un registre de masque<B>(50)</B> ayant la-même longueur que ladite instruction déterminée et contenant un masque destiné<B>à</B> masquer les bits des champs autres que le champ d'opérande et un registre de valeur <B>(52)</B> contenant une valeur présentant la même longueur que celle de ladite instruction déterminée et composée d'une partie définie correspondant audit champ d'opérande et identique<B>à</B> celui-ci, et des moyens de logique combinatoire (54,<B>56)</B> destinés<B>à</B> combiner logiquement ladite instruction déterminée au contenu dudit registre de masque et au contenu dudit registre de valeur de sorte que la sortie dudit bloc de décision n'est<B>à</B> la valeur<B>1</B> que lorsque ladite instruction déterminée est ladite instruction spécifique associée audit bloc de décision. <B>11.</B> Dispositif selon la revendication<B>10,</B> dans lequel certaines instructions programmables peuvent être définies par un remplacement d'instructions inutilisées ou moins utilisées, un tel remplacement étant obtenu en modifiant le contenu dudit registre de masque<B>(50)</B> et ledit registre de valeur<B>(52)</B> dans ledit bloc de décision en réponse<B>à</B> un code spécifique dans ledit bloc de registres (48).
FR0006085A 1999-05-31 2000-05-12 Dispositif materiel destine a l'execution d'instructions programmables basees sur des micro-instructions Expired - Fee Related FR2794259B1 (fr)

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
EP99480042 1999-05-31

Publications (2)

Publication Number Publication Date
FR2794259A1 true FR2794259A1 (fr) 2000-12-01
FR2794259B1 FR2794259B1 (fr) 2002-02-22

Family

ID=8242442

Family Applications (1)

Application Number Title Priority Date Filing Date
FR0006085A Expired - Fee Related FR2794259B1 (fr) 1999-05-31 2000-05-12 Dispositif materiel destine a l'execution d'instructions programmables basees sur des micro-instructions

Country Status (5)

Country Link
US (1) US6658561B1 (fr)
JP (1) JP3578267B2 (fr)
KR (1) KR100374401B1 (fr)
FR (1) FR2794259B1 (fr)
TW (1) TW482980B (fr)

Families Citing this family (9)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US6237101B1 (en) * 1998-08-03 2001-05-22 International Business Machines Corporation Microprocessor including controller for reduced power consumption and method therefor
US7162621B2 (en) 2001-02-21 2007-01-09 Mips Technologies, Inc. Virtual instruction expansion based on template and parameter selector information specifying sign-extension or concentration
US7181484B2 (en) 2001-02-21 2007-02-20 Mips Technologies, Inc. Extended-precision accumulation of multiplier output
US7711763B2 (en) 2001-02-21 2010-05-04 Mips Technologies, Inc. Microprocessor instructions for performing polynomial arithmetic operations
US20040193845A1 (en) * 2003-03-24 2004-09-30 Sun Microsystems, Inc. Stall technique to facilitate atomicity in processor execution of helper set
US20040193844A1 (en) * 2003-03-24 2004-09-30 Sun Microsystems, Inc. Load and/or store queue emptying technique to facilitate atomicity in processor execution of helper set
US7219218B2 (en) * 2003-03-31 2007-05-15 Sun Microsystems, Inc. Vector technique for addressing helper instruction groups associated with complex instructions
US9411593B2 (en) * 2013-03-15 2016-08-09 Intel Corporation Processors, methods, systems, and instructions to consolidate unmasked elements of operation masks
CN111679856B (zh) * 2020-06-15 2023-09-08 上海兆芯集成电路股份有限公司 高效能复杂指令译码的微处理器

Citations (2)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US3918030A (en) * 1973-08-31 1975-11-04 Richard L Walker General purpose digital computer
US5675777A (en) * 1990-01-29 1997-10-07 Hipercore, Inc. Architecture for minimal instruction set computing system

Family Cites Families (8)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US3972024A (en) * 1974-03-27 1976-07-27 Burroughs Corporation Programmable microprocessor
US4155120A (en) * 1977-12-01 1979-05-15 Burroughs Corporation Apparatus and method for controlling microinstruction sequencing by selectively inhibiting microinstruction execution
US5210833A (en) * 1985-11-08 1993-05-11 Nec Corporation System for selectively masking data in a branch address register and replacing the microinstruction address register by the masked data
JP2715782B2 (ja) * 1992-02-18 1998-02-18 日本電気株式会社 マイクロプログラムメモリ出力回路
JPH05265746A (ja) * 1992-02-18 1993-10-15 Nec Corp マイクロプロセッサ
US5537560A (en) * 1994-03-01 1996-07-16 Intel Corporation Method and apparatus for conditionally generating a microinstruction that selects one of two values based upon control states of a microprocessor
US6049672A (en) * 1996-03-08 2000-04-11 Texas Instruments Incorporated Microprocessor with circuits, systems, and methods for operating with patch micro-operation codes and patch microinstruction codes stored in multi-purpose memory structure
US6105125A (en) * 1997-11-12 2000-08-15 National Semiconductor Corporation High speed, scalable microcode based instruction decoder for processors using split microROM access, dynamic generic microinstructions, and microcode with predecoded instruction information

Patent Citations (2)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US3918030A (en) * 1973-08-31 1975-11-04 Richard L Walker General purpose digital computer
US5675777A (en) * 1990-01-29 1997-10-07 Hipercore, Inc. Architecture for minimal instruction set computing system

Non-Patent Citations (3)

* Cited by examiner, † Cited by third party
Title
"OPCODE COMPARE FACILITY", RESEARCH DISCLOSURE,INDUSTRIAL OPPORTUNITIES LTD. HAVANT,GB, no. 315, 1 July 1990 (1990-07-01), pages 577, XP000134174, ISSN: 0374-4353 *
JAIN R ET AL: "AN ALTERNATIVE APPROACH TOWARDS THE DESIGN OF CONTROL UNITS", MICROELECTRONICS AND RELIABILITY,ELSEVIER SCIENCE LTD,GB, vol. 24, no. 6, 1984, pages 1009 - 1012, XP000900879, ISSN: 0026-2714 *
WIRTHLIN M J ET AL: "A DYNAMIC INSTRUCTION SET COMPUTER", PROCEEDINGS IEEE SYMPOSIUM ON FPGAS FOR CUSTOM COMPUTING MACHINES, 1995, XP000573444 *

Also Published As

Publication number Publication date
US6658561B1 (en) 2003-12-02
FR2794259B1 (fr) 2002-02-22
KR20010007093A (ko) 2001-01-26
JP3578267B2 (ja) 2004-10-20
TW482980B (en) 2002-04-11
KR100374401B1 (ko) 2003-03-04
JP2000353089A (ja) 2000-12-19

Similar Documents

Publication Publication Date Title
EP0434483A1 (fr) Processeur à plusieurs unités de traitement microprogrammées
FR2978289A1 (fr) Dispositif ayant un mode de retention de donnees et un mode de traitement de donnees
FR2645293A1 (fr) Procede et dispositif pour convertir des formats de donnees par une instruction de microprocesseur
FR2794259A1 (fr) Dispositif materiel destine a l&#39;execution d&#39;instructions programmables basees sur des micro-instructions
EP1290554A1 (fr) Systeme informatique modulaire et procede associe
EP0006478A1 (fr) Dispositif programmable de verrouillage de signaux de commande dans un système de traitement de données
EP0684551B1 (fr) Circuit électronique et méthode pour l&#39;utilisation d&#39;un coprocesseur
FR3101980A1 (fr) Processeur
FR2804522A1 (fr) Procede et appareil de test de particularites microarchitecturales en utilisant des tests ecrits en microcode
FR3021432A1 (fr) Processeur a instructions conditionnelles
FR2656442A1 (fr) Processeur a plusieurs unites microprogrammees avec mecanisme d&#39;execution anticipee des instructions.
FR2538928A1 (fr) Unite de traitement de donnees pourvue d&#39;une section de commande qui comporte un generateur d&#39;adresses destine a produire des adresses composees de parties d&#39;adresses caracteristiques
WO2009071791A2 (fr) Verification de donnees lues en memoire
FR2973130A1 (fr) Mise a jour de signature par transformation de code
FR2871253A1 (fr) Dispositif de commande ayant des moyens de decodage
EP0081873B1 (fr) Système de traitement de données permettant d&#39;utiliser la même mémoire effaçable et programmable, pour les instructions et les données tant en lecture qu&#39;en écriture
WO2003027851A1 (fr) Procede et dispositif de verifieur de code optimise
EP0683455B1 (fr) Circuit intégré comprenant des moyens pour arrêter l&#39;exécution d&#39;un programme d&#39;instructions quand une combinaison de points d&#39;arrêt est vérifiée
FR2990533A1 (fr) Procede de suivi d&#39;execution d&#39;un logiciel et logiciel pour la mise en oeuvre du procede
EP3005107A1 (fr) Accelerateur materiel pour la manipulation d&#39;arbres rouges et noirs
FR3078439A1 (fr) Procede de gestion du routage de transactions entre des equipements sources, au moins un equipement cible, par exemple une memoire multiports, et systeme sur puce correspondant
EP4086801B1 (fr) Procédé d&#39;exécution d&#39;une fonction, sécurisé par désynchronisation temporelle
FR2931567A1 (fr) Methode de recherche de classe et de fonction basee basee sur une carte .net et carte .net correspondante.
EP3792771A1 (fr) Test de programme
FR2737027A1 (fr) Dispositif electronique de localisation et de controle de boucles dans un programme d&#39;un processeur, notamment un processeur de traitement d&#39;images, et procede correspondant

Legal Events

Date Code Title Description
TP Transmission of property

Owner name: GOOGLE INC., US

Effective date: 20120314

ST Notification of lapse

Effective date: 20160129