FR2804522A1 - Procede et appareil de test de particularites microarchitecturales en utilisant des tests ecrits en microcode - Google Patents

Procede et appareil de test de particularites microarchitecturales en utilisant des tests ecrits en microcode Download PDF

Info

Publication number
FR2804522A1
FR2804522A1 FR0012078A FR0012078A FR2804522A1 FR 2804522 A1 FR2804522 A1 FR 2804522A1 FR 0012078 A FR0012078 A FR 0012078A FR 0012078 A FR0012078 A FR 0012078A FR 2804522 A1 FR2804522 A1 FR 2804522A1
Authority
FR
France
Prior art keywords
microinstructions
microcode
test
computer
sequence
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
FR0012078A
Other languages
English (en)
Other versions
FR2804522B1 (fr
Inventor
Kevin David Safford
Patrick Knebel
Russel C Brockmann
Karl P Brummel
Ma Susith Rohana Fernando
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.)
HP Inc
Original Assignee
Hewlett Packard Co
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 Hewlett Packard Co filed Critical Hewlett Packard Co
Publication of FR2804522A1 publication Critical patent/FR2804522A1/fr
Application granted granted Critical
Publication of FR2804522B1 publication Critical patent/FR2804522B1/fr
Anticipated expiration legal-status Critical
Expired - Fee Related legal-status Critical Current

Links

Classifications

    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F9/00Arrangements for program control, e.g. control units
    • G06F9/06Arrangements for program control, e.g. control units using stored programs, i.e. using an internal store of processing equipment to receive or retain programs
    • G06F9/30Arrangements for executing machine instructions, e.g. instruction decode
    • G06F9/3017Runtime instruction translation, e.g. macros
    • G06F9/30174Runtime instruction translation, e.g. macros for non-native instruction set, e.g. Javabyte, legacy code

Landscapes

  • Engineering & Computer Science (AREA)
  • Software Systems (AREA)
  • Theoretical Computer Science (AREA)
  • Physics & Mathematics (AREA)
  • General Engineering & Computer Science (AREA)
  • General Physics & Mathematics (AREA)
  • Test And Diagnosis Of Digital Computers (AREA)

Abstract

L'invention concerne un appareil (10) de test d'une microarchitecture informatique comprenant une mémoire reprogrammable (40) de microcode, qui comprend : un microcode lié à une ou plusieurs macroinstructions (11), et un microcode reprogrammé de test pour tester la microarchitecture informatique. IL est caractérisé en ce que le microcode reprogrammé de test comprend une séquence de microinstructions (41i ) exécutées pour tester la microarchitecture informatique. Il peut comprendre en outre un répartiteur (50) qui reçoit la séquence de microinstructions et envoie des sorties (51i ); et des unités d'exécution (61i ) qui reçoivent les sorties et exécutent des microinstructions. La microarchitecture informatique est de préférence susceptible de prendre en charge de multiples ensembles d'instructions. L'invention concerne aussi un procédé correspondant et un tel procédé de test dans lequel une macroinstruction est appliquée à une séquence particulière de microinstructions; et la séquence particulière de microinstructions est remplacée par un ensemble arbitraire de microinstructions qui comprend le test.

Description

Le domaine technique de la présente invention concerne des mécanismes et des procédés de test de microarchitectures informatiques ou, en d'autres termes, de microarchitectures d'ordinateurs.
Le procédé préféré d'émulation d'un ensemble d'instructions sur un microprocesseur consiste â convertir chaque instruction émulée, c'est-à-dire chacune des macroinstructions, en une série d'instructions de l'ensemble natif d'instructions, c'est-à-dire de microinstructions. Ces séquences de micro- instructions sont mémorisées dans une mémoire de microcode. De plus, te microprocesseur peut envoyer des microinstructions qui ne sont disponibles pour utilisation que par des éléments matériels d'émulation et non pour un code fonctionnant dans le mode natif.
Dans le cas des techniques classiques de test de l'ensemble d'instructions émulé, les rédacteurs de tests préparent des séquences de macroinstructions visibles par l'utilisateur. Les éléments matériels d'émulation traduisent les macroinstructions en microinstructions, qui sont ensuite exécutées. Afin de tester certaines particularités de microarchitectures, le rédacteur de test doit déterminer des séquences de macroinstructions nécessaires pour produire une séquence souhaitée de microinstructions. Les séquences de microinstructions peuvent être difficiles, ou même impossibles, à construire en n'utilisant que des macroinstructions. II peut de plus falloir une longue séquence de macro- instructions pour produire les opérandes ou l'état de machine souhaités, ce qui conduit à des tests excessivement longs.
C'est donc le but de la présente invention que de fournir un appareil et un procédé de test d'une microarchitecture informatique où le rédacteur de test crée directement une séquence de test en micro! nstructions, tant en mode natif que du type destiné à l'émulation seulement.
De façon générale, selon le procédé perfectionné de test de microarchitectures informatiques de la présente invention , un rédacteur de tests crée une séquence de tests écrite directement en microinstructions, qui sont à la fois des microinstructions en mode natif et des microinstructions destinées uniquement à l'émulation. Cette séquence spécifiée par l'utilisateur est ensuite insérée dans une mémoire reprogrammable de microcode, et remplace la séquence normale de microinstructions pour une macroinstruction donnée. Afin d'exécuter les microinstructions, le rédacteur de tests peut émettre la macroinstruction donnée. Le procédé peut être mis en application dans un modèle de simulation dans lequel un ensemble quelconque de micro- instructions contenues dans la mémoire reprogrammable de microinstructions peut être facilement remplacé. Le procédé peut également être appliqué à une mise en application réelle de microprocesseur.
De façon plus spécifique, l'invention réalise selon un premier aspect, un appareil de test d'une microarchitecture informatique, comprenant - une mémoire reprogrammable de microcode, qui comprend - un microcode lié à une ou plusieurs macroinstructions, et - un microcode reprogrammé de test pour tester la microarchitecture informatique, caractérisé en ce que le microcode reprogrammé de test comprend une séquence de microinstructions exécutées pour tester la microarchitecture informatique.
L'appareil peut comprendre en outre - un répartiteur qui reçoit la séquence de microinstructions et envoie des sorties ; et - des unités d'exécution qui reçoivent les sorties et exécutent des microinstructions.
On peut prévoir que la microarchitecture informatique prenne en charge de multiples ensembles d'instructions.
Selon un deuxième aspect, l'invention fournit un procédé de test d'une microarchitecture informatique caractérisé en ce qu'il comprend les étapes consistant à - reprogrammer un microcode pour le mémoriser dans une mémoire de microcode ; et - désigner une macroinstruction à exécuter, l'exécution lançant une séquence de test qui comprend le microcode reprogrammé.
Le procédé peut comprendre en outre les étapes consistant à - envoyer le microcode reprogrammé à un répartiteur ; et - répartir le microcode reprogrammé à des unités spécifiées d'exécution pour l'exécution de la microinstruction.
On peut prévoir, dans ce procédé aussi, que la microarchitecture informatique prenne en charge de multiples ensembles d'instructions.
Selon un troisième aspect, l'invention fournit un procédé de test d'une microarchitecture informatique, caractérisé en ce qu'il comprend les étapes consistant à - appliquer une macroinstruction à une séquence particulière de micro! nstructions ; et - remplacer la séquence particulière de microinstructions par un ensemble arbitraire de microinstructions, l'ensemble arbitraire de microinstructions comprenant le test.
Pour ce procédé également, on peut prévoir que la microarchitecture informatique prenne en charge de multiples ensembles d'instructions.
Le procédé peut comprendre en outre l'étape consistant à émettre la macroinstruction pour exécuter les microinstructions de test.
Par rapport à des procédés actuels de test de microarchitectures informatiques, le procédé offre les avantages suivants :.
1. le procédé permet une commande beaucoup plus précise de particu larités microarchitecturales, par exemple des opérandes, une synchronisation et un parallélisme, qui peuvent être très difficiles à atteindre au moyen de macroinstructions ; 2. le procédé permet d'écrire des tests plus efficacement ; 3. le procédé protège le rédacteur de tests contre des modifications du microcode ; et 4. le procédé permet au rédacteur de tests de tester des séquences d'événements qui ne sont pas possibles dans une conception ou structure mais qui peuvent être requises à des étapes ultérieures du processus de conception.
Les buts, particularités et avantages de la présente invention exposés ci- dessus ainsi que d'autres ressortiront davantage de la description qui suit de modes de réalisation préférés en conjonction avec les dessins où des références numériques semblables désignent des particularités semblables et dans lesquels - la Figure 1 est un schéma fonctionnel d'un appareil utilisé pour tester des particularités microarchitecturaies ; - la Figure 2 est un schéma logique d'une mémoire reprogrammable de microcode ; et - la Figure 3 est un schéma logique du processus de conversion entre des macroinstructions et des microinstructions.
Des architectures informatiques ou architectures d'ordinateurs à jeu complexe d'instructions, ou CISC selon les initiales du terme anglo-saxon complex instruction set computer, peuvent être extrêmement puissantes en ce que l'architecture d'ordinateur à jeu complexe d'instructions permet des méthodes compliquées et flexibles de calcul d'éléments, par exemple des adresses de mémoire. Les instructions de CISC, ou macroinstructions, peuvent inclure une ou plusieurs instructions de microcode. Au cours du développe ment d'un microprocesseur, un rédacteur de tests doit vérifier que les macro- instructions exécutées par le microprocesseur permettent d'obtenir le résultat souhaité. Mais, puisque les macroinstructions peuvent inclure de nombreuses microinstructions, il est possible que le rédacteur de tests ne puisse pas tester l'effet de chacune des instructions du microcode ou d'une séquence particu lière de microinstructions, en écrivant simplement un test en utilisant les macroinstructions.
Le processus de rédaction d'une séquence appropriée de tests et de vérification du fonctionnement d'une structure de microprocesseur peut être compliqué lorsque le microprocesseur est conçu pour exécuter plus d'un ensemble d'instructions. Par exemple, un microprocesseur peut être conçu pour exécuter tant des instructions d'ordinateur à ensemble complexe d'instructions ou CISC, par exemple, IA-32, que des instructions d'ordinateur à ensemble réduit d'instructions ou RISC selon les initiales du terme anglo- saxon reduced instruction set computer, par exemple 1A-64. Dans cet exemple, le rédacteur de tests doit s'assurer que les instructions CISC sont correctement émulées au moyen de séquences souhaitées de microinstructions. Le rédacteur de tests doit en outre effectuer, pour la séquence de macroinstructions, une ingénierie inverse qui donne la séquence souhaitée de microinstructions qui est nécessaire pour tester un microprocesseur. Ceci peut être très difficile et exiger beaucoup de temps. Si le concepteur modifie ensuite le microcode du processeur, il est possible que le rédacteur de tests doive réviser le test pour récupérer le comportement d'origine prévu. Il est possible aussi que les comportements qui étaient possibles à l'origine dans le micro processeur soient rendus impossibles par des modifications de microcode ou vice versa. En rédigeant les tests directement en microcode, le rédacteur résout ces deux problèmes.
De plus, lors des premières étapes de conception d'un microprocesseur, le concepteur doit réviser constamment le microcode utilisé pour émuler les macroinstructions. Ce faisant, le concepteur peut introduire de nouvelles séquences de microinstructions qui n'ont jamais été exécutées par le microprocesseur. Ceci peut conduire à la découverte de bogues latents. En utilisant des tests rédigés en microcode, des séquences de microcode qui sont impossibles dans le fonctionnement normal du microprocesseur peuvent être testées. Ceci permet aux concepteurs de créer une structure plus robuste qui tolère des modifications des séquences de microcode utilisées pour émuler les macroinstructions.
Finalement, d'autres structures de commande d'éléments matériels de la microplaquette peuvent varier pendant les étapes de conception d'un micro processeur. Le concepteur doit ensuite déterminer si les modifications introdui sent des erreurs dans le comportement du microprocesseur. Cette tâche peut être facilitée pour le concepteur si la conception d'un microprocesseur peut être testée avec rapidité et précision. Utiliser des séquences de micro- instructions peut être une méthode efficace de test des nouvelles conceptions de microprocesseur.
De plus, lors des premières étapes de conception d'un microprocesseur, le concepteur peut être en train de réviser constamment le microcode de base qui intervient sur le microprocesseur. Le concepteur doit ensuite déterminer si les modifications introduisent des erreurs dans le comportement du micro processeur. Cette tâche peut être facilitée pour le concepteur si la conception d'un microprocesseur peut être testée avec rapidité et précision. Utiliser des séquences de microinstructions peut être une méthode efficace de test des nouvelles conceptions de microprocesseur.
La Figure 1 est un schéma fonctionnel d'un ensemble d'un appareil de test de microarchitectures informatiques qui utilise des tests rédigés en micro- code. Un appareil de test 1 inclut un applicateur 20 de macroinstruction en microinstructions. Cet applicateur 20 de macroinstruction en micro! nstructions reçoit une ou plusieurs macroinstructions 1 1 et envoie une sortie <B>31</B> à un séquenceur 30 de microinstructions. Le séquenceur 30 de micro! nstructions reçoit des entrées qui correspondent à des points d'entrée pour des événements différents 30 et une information d'état 32 provenant de la micro- architecture informatique ou du microprocesseur à tester. Le séquenceur 30 de microinstructions envoie une séquence 35 d'adresses de microcode à une mémoire 40 de microcode, qui est reprogrammable en totalité ou en partie par des moyens connus de l'homme de l'art.
La séquence 30 de microinstructions peut être mise en application sous forme de machine d'état pour commander le fonctionnement de la mémoire reprogrammable 40 de microcode et commander ainsi la séquence de microinstructions qui sont ainsi exécutées.
La mémoire reprogrammable 40 de microcode mémorise des instructions de microcode qui peuvent être émises pour émuler fa microinstruction particulière 11 entrée dans l'applicateur 20 de macroinstruction en micro- instructions. La mémoire reprogrammable 40 de microcode peut mémoriser un grand nombre de microinstructions. La mémoire reprogrammable 40 de microcode envoie une ou plusieurs microinstructions 4]i à un répartiteur 50 de microinstructions.
Le répartiteur 50 de microinstructions envoie des microinstructions particulières 511 à des unités correspondantes d'exécution 611, pour l'exécu tion des microinstructions. Les unités d'exécution 61i sont des unités d'exécution en nombres entiers, des unités d'exécution à virgule flottante et des unités de dérivation, par exemple.
Un reprogrammeur 70 de microcode est utilisé pour reprogrammer un microcode dans la mémoire reprogrammable 40 de microcode. Le repro- grammeur 70 de microcode peut être utilisé pour reprogrammer toute micro- instruction ou séquence de micro! nstructions. La séquence reprogrammée de microinstructions qui peut être toute séquence arbitraire de microinstructions constitue ensuite le test qui doit être mis en oeuvre sur la microarchitecture informatique.
Le test peut être tancé en envoyant une macroinstruction à l'applicateur 20 de macroinstruction en microinstructions. La sortie résultante 35 du séquenceur 30 de microinstructions est utilisée dans la mémoire repro- grammable 40 de microcode pour exécuter la séquence reprogrammée de microinstructions.
La Figure 2 est un schéma logique de la mémoire reprogrammable 40 de microcode. La mémoire reprogrammable 40 de microcode est représentée comme contenant un microcode pour un certain nombre de macro- instructions. Par exemple, la mémoire reprogrammable 40 de microcode inclut une séquence de microcode pour une macroinstruction ADDITIONNER 42, une séquence de microcode pour une macroinstruction DIVISER 43 et une séquence de microcode pour une macroinstruction SOUSTRAIRE 44. Comme noté ci-dessus, la mémoire reprogrammable 40 de microcode peut contenir des lignes de microcode beaucoup plus nombreuses que dans cet exemple. Déterminer quelles lignes particulières de microcode sont lues dans la mémoire reprogrammable 40 de microcode peut résulter de la sortie 35 du séquenceur 30 de microinstructions représenté à la Figure 1.
La Figure 3 est un schéma logique qui représente la relation entre la macroinstruction et ses microinstructions correspondantes. À la Figure 3, une variante particulière d'une instruction ADDITIONNER 21, inclut des opérandes MEM, c'est-à-dire mémoire, et REG, c'est-à-dire registre. Dans ce cas, "mémoire" désigne tant l'opérande 1 que la destination et "registre" désigne un deuxième opérande ou opérande 2. La microinstruction 21 ADDI TIONNER s'applique à une ou plusieurs microinstructions. Comme représenté à la Figure 3, les microinstructions incluent une microinstruction 22 engendrer adresse, une microinstruction 23 charger opérande à partir de mémoire, une microinstruction 24 ADDITIONNER opérande 2 à données chargées et une microinstruction 25 mémoriser résultat dans mémoire. Par conséquent, les microinstructions 22 à 25 sont exécutées réellement pour émuler la macro- instruction ADDITIONNER 21. Le but de la macroinstruction ADDITION NER 21 est d'additionner, aux données spécifiées dans l'emplacement de mémoire, des données qui sont spécifiées dans le registre, et de récrire en retour les données dans la mémoire au même emplacement de mémoire.
En revenant à la Figure 1, en supposant qu'un test a été rédigé en termes de macroinstruction, comme la macroinstruction ADDITIONNER 21, la macroinstruction est lue dans l'applicateur 20 de macroinstruction en micro- instructions, ce qui produit ensuite un point d'entrée au séquenceur 30 de microinstructions. Dès lors que le séquenceur 30 de microinstructions a identifié une séquence particulière de microinstructions à exécuter, l'informa tion 35 est envoyée à la mémoire reprogrammable 40 de microcode et le test de conception est exécuté au moyen du répartiteur 50 de microinstructions et des unités 61 1 d'exécution.
Comme représenté à la Figure 3, un rédacteur de test peut souhaiter tester la réponse du microprocesseur à une macroinstruction ADDITIONNER en spécifiant que fa macroinstruction ADDITIONNER soit exécutée. De plus, le rédacteur de test peut souhaiter tester une réponse du microprocesseur aux microinstructions dans une séquence autre que celle qui est spécifiée par la macroinstruction particulière, il peut souhaiter tester la réponse du micro processeur à une série de microinstructions identiques ou similaires, il peut souhaiter tester le microprocesseur après une modification ou plusieurs modifications de conception apportées au microcode utilisé afin d'émuler la macroinstruction. Par exemple, le rédacteur de tests peut souhaiter tester la réponse du microprocesseur à dix microinstructions de génération d'adresses en séquence. Mais il se peut que le rédacteur de tests ne puisse pas atteindre ces buts en utilisant ou spécifiant une macroinstruction particulière ou une séquence particulière de macroinstruction.
En utilisant l'appareil 10 représenté à la Figure 1, le rédacteur de tests peut spécifier une séquence quelconque de microinstructions à exécuter sur le microprocesseur. Par exemple, si le rédacteur de tests souhaite tester le microprocesseur en spécifiant dix instructions de microcode de génération d'adresses exécutées en séquence, le rédacteur de test pourrait utiliser l'instruction ADDITIONNER 21 représentée à la Figure 3, enlever les microinstructions 23 à 25 et n'utiliser la microinstruction 22 de génération d'adresses mais répéter cette opération dix fois. La mémoire reprogrammable 40 de microcode pourrait ensuite être reprogrammée au moyen d'éléments matériels 70 de reprogrammation pour contenir les dix microinstructions 22 de génération d'adresse et être mise en oeuvre en séquence au moyen du microprocesseur pour être testée. Le rédacteur de tests pourrait ensuite tester facilement le microprocesseur, comme il fonctionne lorsqu'il doit exécuter d'affilée dix instructions de génération d'adresses.
La possibilité de tester un microprocesseur ou une microplaquette en utilisant l'appareil 10 représenté à la Figure 1 peut être mise en application sous forme de modèle mis en oeuvre sur une station de travail informatique. En d'autres termes, les fonctions représentées par les modules représentés à la Figure 1 peuvent être mises en application sous forme de modèle fonctionnel qui peut être utilisé pour tester les premières étapes et les étapes ultérieures de la conception du microprocesseur ou de la microplaquette. Spécifiquement, l'appareil 10 peut être considéré comme un modèle d'un ou plusieurs disposi tifs d'éléments matériels programmés selon une fonctionnalité spécifique. Par conséquent, l'appareil 10 peut être un modèle d'une conception d'un disposi tif électronique, et il n'est pas associé nécessairement à un dispositif physique. L'appareil 10 peut intervenir de la même manière lorsque l'appareil 10 est remplacé par un programme quelconque.
Mais les composants représentés à la Figure 1 peuvent aussi être inclus sous forme de dispositifs discrets constitués d'éléments matériels sur un micro processeur ou une microplaquette. Dans ce cas, la mémoire reprogrammable 40 de microcode peut exiger une reprogrammation pour traiter des modifications de conceptions de test.
En outre, dans le cas où l'appareil 10 consiste en microprogrammes ou en un programme pour éléments matériels incorporé sur un dispositif physique, les connexions aux sources de macroinstructions et à d'autres sources de données peuvent être des connexions par éléments matériels ou par logiciel, selon ce qui est approprié. Dans son cadre général, l'invention prévoit aussi que les autres composants illustrés à la Figure 1 peuvent être des modules de microprogrammes ou d'éléments matériels, au lieu d'être des modules de logiciel.
Si les modules ou programmes, termes qui sont utilisés ici de façon interchangeable, de la Figure 1 sont mis en application sous forme de modèles de logiciel, lis peuvent être mémorisés ou incorporés sur un support lisible par informatique dans divers formats, par exemple un code source ou un code exécutable. Des supports lisibles par informatique incluent tant des dispositifs de mémoire que des signaux. Des exemples de dispositifs de mémoire lisibles par informatique incluent des mémoires vives ou RAM, des mémoires mortes ou ROM, des mémoires mortes programmables effaçables ou EPROM, des mémoires mortes électriquement effaçables et programmables ou EEPROM, des disques ou bandes magnétiques ou optiques. Des exemples de signaux, modulés en utilisant une porteuse ou non, qui sont lisibles par informatique sont des signaux tels qu'il est possible de configurer un système informatique, intervenant comme hôte pour l'appareil 10 ou le mettant en oeuvre, pour qu'il puisse accéder à ces signaux, y compris des signaux téléchargés par l'intermédiaire de l'Internet ou d'autres réseaux.
Les termes et descriptions utilisés ici sont exposés à titre d'illustration seulement et ne doivent pas être considérés comme des limitations. L'homme de l'art comprend que de nombreuses variantes sont possibles à l'intérieur de l'esprit et du cadre des revendications qui suivent et de leurs équivalents, où tous les termes doivent être compris dans leur sens le plus large possible, sauf indications contraires.

Claims (9)

<B><U>REVENDICATIONS</U></B>
1. Appareil (10) de test d'une microarchitecture informatique, comprenant - une mémoire reprogrammable (40) de microcode, qui comprend - un microcode lié à une ou plusieurs macroinstructions <B>(11),</B> et - un microcode reprogrammé de test pour tester la microarchitecture informatique, caractérisé en ce que le microcode reprogrammé de test comprend une séquence de microinstructions (411) exécutées pour tester la microarchitecture informatique.
2. Appareil selon la revendication 1, caractérisé en ce qu'il comprend en outre - un répartiteur (50) qui reçoit la séquence de microinstructions et envoie des sorties (51 1) ; et - des unités d'exécution (611) qui reçoivent les sorties et exécutent des microinstructions.
3. Appareil selon la revendication 1, caractérisé en ce que la micro- architecture informatique prend en charge de multiples ensembles d'instructions.
4. Procédé de test d'une microarchitecture informatique caractérisé en ce qu'il comprend les étapes consistant à - reprogrammer un microcode pour le mémoriser dans une mémoire (40) de microcode ; et - désigner une macrolnstruction <B>(11)</B> à exécuter, l'exécution lançant une séquence de test qui comprend le microcode reprogrammé.
5. Procédé selon l'une quelconque des revendications 1 à 4, caractérisé en ce qu'il comprend en outre les étapes consistant à - envoyer le microcode reprogrammé à un répartiteur (50) ; et - répartir le microcode reprogrammé à des unités spécifiées d'exécution <B>(61</B>1) pour l'exécution de la microinstruction (41 i).
6. Procédé selon la revendication 4, caractérisé en ce que la micro- architecture informatique prend en charge de multiples ensembles d'instructions.
7. Procédé de test d'une microarchitecture informatique, caractérisé en ce qu'il comprend les étapes consistant à - appliquer une macroinstruction (21) à une séquence particulière de micro! nstructions (22 à 25) ; et - remplacer la séquence particulière de microinstructions (22 à 25) par un ensemble arbitraire de microinstructions, l'ensemble arbitraire de microinstructions comprenant le test.
8. Procédé selon la revendication 7, caractérisé en ce que la microarchitecture informatique prend en charge de multiples ensembles d'instructions.
9. Procédé selon la revendication 7, caractérisé en ce qu'il comprend en outre l'étape consistant à émettre la macroinstruction (21) pour exécuter les microinstructions (22 à 25) de test.
FR0012078A 2000-02-02 2000-09-22 Procede et appareil de test de particularites microarchitecturales en utilisant des tests ecrits en microcode Expired - Fee Related FR2804522B1 (fr)

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
US09/496,367 US6643800B1 (en) 2000-02-02 2000-02-02 Method and apparatus for testing microarchitectural features by using tests written in microcode

Publications (2)

Publication Number Publication Date
FR2804522A1 true FR2804522A1 (fr) 2001-08-03
FR2804522B1 FR2804522B1 (fr) 2005-05-06

Family

ID=23972315

Family Applications (1)

Application Number Title Priority Date Filing Date
FR0012078A Expired - Fee Related FR2804522B1 (fr) 2000-02-02 2000-09-22 Procede et appareil de test de particularites microarchitecturales en utilisant des tests ecrits en microcode

Country Status (2)

Country Link
US (2) US6643800B1 (fr)
FR (1) FR2804522B1 (fr)

Families Citing this family (11)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US6625759B1 (en) * 2000-02-18 2003-09-23 Hewlett-Packard Development Company, L.P. Method and apparatus for verifying the fine-grained correctness of a behavioral model of a central processor unit
US7162612B2 (en) * 2000-08-16 2007-01-09 Ip-First, Llc Mechanism in a microprocessor for executing native instructions directly from memory
GB2374950B (en) * 2001-04-23 2005-11-16 Imagination Tech Ltd Expanded functionality of processor operations within a fixed width instruction encoding
EP1387253B1 (fr) * 2002-07-31 2017-09-20 Texas Instruments Incorporated Traduction dynamique et exécution d'instructions dans un processeur
EP1489491A1 (fr) * 2003-06-19 2004-12-22 Texas Instruments Incorporated Changement dynamique de la sémantique d'une commande
US7613950B2 (en) * 2004-02-27 2009-11-03 Hewlett-Packard Development Company, L.P. Detecting floating point hardware failures
US20060267958A1 (en) * 2005-04-22 2006-11-30 Microsoft Corporation Touch Input Programmatical Interfaces
US7734873B2 (en) * 2007-05-29 2010-06-08 Advanced Micro Devices, Inc. Caching of microcode emulation memory
US8423968B2 (en) * 2008-02-11 2013-04-16 International Business Machines Corporation Template-based vertical microcode instruction trace generation
US9482718B2 (en) * 2014-01-13 2016-11-01 Texas Instruments Incorporated Integrated circuit
US10884751B2 (en) 2018-07-13 2021-01-05 Advanced Micro Devices, Inc. Method and apparatus for virtualizing the micro-op cache

Citations (3)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US5481684A (en) * 1994-01-11 1996-01-02 Exponential Technology, Inc. Emulating operating system calls in an alternate instruction set using a modified code segment descriptor
US5748981A (en) * 1992-10-20 1998-05-05 National Semiconductor Corporation Microcontroller with in-circuit user programmable microcode
WO1998055932A2 (fr) * 1997-06-04 1998-12-10 Richard Rubinstein Processeur assurant l'interface a un moteur de calcul memo-centrique

Family Cites Families (36)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US4482953A (en) * 1980-05-30 1984-11-13 Fairchild Camera & Instrument Corporation Computer with console addressable PLA storing control microcode and microinstructions for self-test of internal registers and ALU
US4651275A (en) * 1981-07-02 1987-03-17 Texas Instruments Incorporated Microcomputer having read/write memory for combined macrocode and microcode storage
US4471426A (en) * 1981-07-02 1984-09-11 Texas Instruments Incorporated Microcomputer which fetches two sets of microcode bits at one time
US4443865A (en) * 1981-10-26 1984-04-17 Allen-Bradley Co. Processor module for a programmable controller
US4641308A (en) * 1984-01-03 1987-02-03 Texas Instruments Incorporated Method of internal self-test of microprocessor using microcode
US4841434A (en) * 1984-05-11 1989-06-20 Raytheon Company Control sequencer with dual microprogram counters for microdiagnostics
US4887203A (en) * 1984-10-15 1989-12-12 Motorola, Inc. Microcoded processor executing microroutines with a user specified starting microaddress
US4825363A (en) * 1984-12-05 1989-04-25 Honeywell Inc. Apparatus for modifying microinstructions of a microprogrammed processor
US4677586A (en) * 1985-06-04 1987-06-30 Texas Instruments Incorporated Microcomputer device having test mode substituting external RAM for internal RAM
EP0312764A3 (fr) * 1987-10-19 1991-04-10 International Business Machines Corporation Processeur de données comportant plusieurs unités d'exécution pour traiter plusieurs classes d'instructions en parallèle
US5155819A (en) * 1987-11-03 1992-10-13 Lsi Logic Corporation Flexible ASIC microcomputer permitting the modular modification of dedicated functions and macroinstructions
JP2541248B2 (ja) * 1987-11-20 1996-10-09 三菱電機株式会社 プログラマブル・ロジック・アレイ
CA1324447C (fr) * 1988-05-03 1993-11-16 Raymond Y. Lee Microprocesseur a memoire microprogrammable externe
JPH01320544A (ja) * 1988-06-22 1989-12-26 Toshiba Corp テスト容易化回路
US5511211A (en) * 1988-08-31 1996-04-23 Hitachi, Ltd. Method for flexibly developing a data processing system comprising rewriting instructions in non-volatile memory elements after function check indicates failure of required functions
JPH0719215B2 (ja) * 1989-06-01 1995-03-06 三菱電機株式会社 マイクロプロセッサ
US5072447A (en) * 1989-11-08 1991-12-10 National Semiconductor Corporation Pattern injector
JPH0682325B2 (ja) * 1990-05-29 1994-10-19 株式会社東芝 情報処理装置のテスト容易化回路
US5212693A (en) * 1990-08-02 1993-05-18 Ibm Corporation Small programmable array to the on-chip control store for microcode correction
US5276863A (en) * 1991-06-28 1994-01-04 Digital Equipment Corporation Computer system console
JPH05233352A (ja) * 1992-02-19 1993-09-10 Nec Corp マイクロプロセッサ
GB2266606B (en) * 1992-04-27 1996-02-14 Intel Corp A microprocessor with an external command mode
US5687350A (en) * 1995-02-10 1997-11-11 International Business Machines Corporation Protocol and system for performing line-fill address during copy-back operation
US5572666A (en) * 1995-03-28 1996-11-05 Sun Microsystems, Inc. System and method for generating pseudo-random instructions for design verification
US5864660A (en) * 1996-03-12 1999-01-26 Electronic Data Systems Corporation Testing the integration of a plurality of elements in a computer system using a plurality of tests codes, each corresponding to an alternate product configuration for an associated element
US5860017A (en) 1996-06-28 1999-01-12 Intel Corporation Processor and method for speculatively executing instructions from multiple instruction streams indicated by a branch instruction
US6199152B1 (en) * 1996-08-22 2001-03-06 Transmeta Corporation Translated memory protection apparatus for an advanced microprocessor
US5859999A (en) 1996-10-03 1999-01-12 Idea Corporation System for restoring predicate registers via a mask having at least a single bit corresponding to a plurality of registers
US5909567A (en) * 1997-02-28 1999-06-01 Advanced Micro Devices, Inc. Apparatus and method for native mode processing in a RISC-based CISC processor
US6088690A (en) * 1997-06-27 2000-07-11 Microsoft Method and apparatus for adaptively solving sequential problems in a target system utilizing evolutionary computation techniques
US6230290B1 (en) * 1997-07-02 2001-05-08 International Business Machines Corporation Method of self programmed built in self test
US6112312A (en) * 1998-03-10 2000-08-29 Advanced Micro Devices, Inc. Method for generating functional tests for a microprocessor having several operating modes and features
US6385740B1 (en) * 1998-08-21 2002-05-07 Advanced Micro Devices, Inc. Method to dynamically change microprocessor test software to reflect different silicon revision levels
US6263429B1 (en) * 1998-09-30 2001-07-17 Conexant Systems, Inc. Dynamic microcode for embedded processors
US6571359B1 (en) * 1999-12-13 2003-05-27 Intel Corporation Systems and methods for testing processors
US6542981B1 (en) * 1999-12-28 2003-04-01 Intel Corporation Microcode upgrade and special function support by executing RISC instruction to invoke resident microcode

Patent Citations (3)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US5748981A (en) * 1992-10-20 1998-05-05 National Semiconductor Corporation Microcontroller with in-circuit user programmable microcode
US5481684A (en) * 1994-01-11 1996-01-02 Exponential Technology, Inc. Emulating operating system calls in an alternate instruction set using a modified code segment descriptor
WO1998055932A2 (fr) * 1997-06-04 1998-12-10 Richard Rubinstein Processeur assurant l'interface a un moteur de calcul memo-centrique

Also Published As

Publication number Publication date
FR2804522B1 (fr) 2005-05-06
US6643800B1 (en) 2003-11-04
US20040064267A1 (en) 2004-04-01

Similar Documents

Publication Publication Date Title
US10747652B2 (en) Automatic risk analysis of software
CN108027722B (zh) 在编译和部署中动态更新应用
US11010283B2 (en) Mock-based unit test(s) for an end-to-end test of a code snippet
US9740585B2 (en) Flexible configuration and control of a testing system
US20100146340A1 (en) Analyzing Coverage of Code Changes
CN110531962B (zh) 小程序的开发处理方法、设备及计算机可读存储介质
CN112100954A (zh) 验证芯片的方法、装置和计算机存储介质
TWI454925B (zh) 使用極速掃描捕捉之週期系統管理中斷
FR2804522A1 (fr) Procede et appareil de test de particularites microarchitecturales en utilisant des tests ecrits en microcode
US20100162217A1 (en) Debugging System Using Static Analysis
US10489543B1 (en) Productivity platform using system-on-chip with programmable circuitry
CN112114789B (zh) 一种业务开发方法及设备
US20110265050A1 (en) Representing binary code as a circuit
US8745587B2 (en) System and method for testing computer programs
TW201327211A (zh) 代碼智慧生成系統及方法
JP5550578B2 (ja) エントリ書換装置及びエントリ書換プログラム
Aitel MSRPC fuzzing with SPIKE 2006
US11361136B2 (en) Creating multiple use test case
CN113326184B (zh) 接口测试方法、装置、存储介质及电子设备
US20150261508A1 (en) Automated creation of shim programs and interfaces
Ascate et al. Mobile App Testing: Tools, Frameworks, and Challenges
US20230185699A1 (en) Operational multipliers for heterogeneous build architectures
de Andrade Freitas et al. Mobile App Testing
US10430311B2 (en) Measuring execution time of benchmark programs in a simulated environment
Lodi Testing Code Based on Indirect Inputs

Legal Events

Date Code Title Description
ST Notification of lapse

Effective date: 20080531