PREVIEW
Instruction Register

Instruction Register

Advanced signal_cellular_alt Advanced schedule 25 min

Interactive Circuit

Registre d'instruction (IR)

Vue d'ensemble

  • Objectif : le registre d'instruction (IR) est un registre spécialisé au sein d'un CPU qui contient temporairement l'instruction en code machine lue depuis la mémoire pendant qu'elle est décodée et exécutée par l'unité de commande.
  • Symbole : le registre d'instruction est représenté par un bloc rectangulaire avec des entrées pour les données provenant de la mémoire, l'horloge et l'autorisation de chargement, avec des sorties fournissant les bits d'instruction au décodeur.
  • Rôle dans DigiSim.io : sert de composant critique dans les conceptions de CPU, reliant les étapes de lecture et de décodage du cycle d'instruction et fournissant un accès stable au code opération et aux opérandes de l'instruction.

composant registre d'instruction

Description fonctionnelle

Comportement logique

Le registre d'instruction capture et conserve les données d'instruction provenant de la mémoire pendant le cycle de lecture, en les rendant disponibles au décodeur d'instructions tout au long des cycles de décodage et d'exécution. Il fonctionne principalement comme un élément de stockage avec contrôle de chargement.

Table de fonctionnement :

LD CLK A_OE Action Opcode (OP0-OP3) Adresse (A0-A3)
1 X Charger nouvelle instruction Données chargées[3:0] Données chargées[7:4] ou Hi-Z
0 X Maintien valeur actuelle Valeur actuelle Valeur actuelle ou Hi-Z
X 0 X Pas de changement Valeur actuelle Valeur actuelle ou Hi-Z
X X 1 Autorisation sortie d'adresse Valeur actuelle Valeur actuelle
X X 0 Adresse Hi-Z Valeur actuelle Hi-Z

Note : ↑ représente un front montant d'horloge, X représente une condition « peu importe »

Entrées et sorties

  • Entrées :

    • I0-I7 : entrées de données 8 bits connectées au bus de données mémoire pour recevoir les instructions lues.
    • LD : entrée d'autorisation de chargement 1 bit qui autorise le chargement d'une nouvelle instruction lorsqu'elle est active.
    • CLK : entrée d'horloge 1 bit qui synchronise l'opération de chargement.
    • A_OE : autorisation de sortie d'adresse 1 bit qui contrôle si les bits d'adresse sont pilotés sur les sorties.
  • Sorties :

    • OP0-OP3 : sorties de code opération 4 bits fournissant le code opération à l'unité de commande (toujours actives).
    • A0-A3 : sorties d'adresse 4 bits fournissant les informations d'adressage (contrôlées par A_OE).
    • Les sorties d'opcode sont toujours disponibles une fois chargées, car l'unité de commande a besoin d'un accès immédiat.
    • Les sorties d'adresse peuvent être en trois états via A_OE pour le partage de bus pendant les opérations mémoire.

Paramètres configurables

  • Largeur du registre : le nombre de bits que l'IR peut stocker, correspondant à la taille du mot d'instruction du CPU.
  • Sensibilité au front d'horloge : si le registre réagit aux fronts montants ou descendants de l'horloge.
  • Comportement du chargement : la manière dont le signal de contrôle de chargement interagit avec l'horloge.
  • Délai de propagation : le temps nécessaire pour que les sorties changent après un événement déclencheur.

Représentation visuelle dans DigiSim.io

Le registre d'instruction est affiché sous la forme d'un bloc rectangulaire avec des entrées étiquetées sur le côté gauche (DATA[n:0], CLK, LOAD) et des sorties (IR_OUT[n:0]) sur le côté droit. L'entrée d'horloge est typiquement marquée d'un symbole triangulaire indiquant la sensibilité au front. Lorsqu'il est connecté dans un circuit, le composant indique visuellement son état actuel via la valeur d'instruction affichée sur ses sorties et les changements de couleur sur les fils de connexion.

Valeur pédagogique

Concepts clés

  • Cycle d'instruction : démontre une étape clé du cycle lecture-décodage-exécution d'un CPU.
  • Décodage d'instruction : illustre comment les instructions en code machine sont préparées pour interprétation.
  • Architecture de CPU : introduit un composant fondamental des unités de commande de CPU.
  • Traitement séquentiel : montre comment les données circulent à travers un CPU en étapes discrètes.
  • Architecture du jeu d'instructions : aide à visualiser comment les instructions en code machine sont gérées.

Objectifs d'apprentissage

  • Comprendre le rôle du registre d'instruction dans le cycle d'exécution du CPU.
  • Apprendre comment les instructions sont capturées et maintenues stables pendant le fonctionnement du CPU.
  • Reconnaître comment l'IR s'interface avec la mémoire et le décodeur d'instructions.
  • Appliquer les concepts d'IR dans la conception d'architectures de CPU simples.
  • Comprendre la relation entre les formats d'instruction et l'organisation du CPU.

Exemples d'utilisation / scénarios

  • Conception de CPU de base : composant central dans une implémentation du cycle lecture-décodage-exécution.
  • Décodage d'instruction : fournit des données d'instruction stables au circuit décodeur.
  • Architecture pipelinée : sépare les étapes de lecture et de décodage dans un pipeline de CPU.
  • Implémentation de microcode : conserve les instructions pendant que l'unité de commande parcourt les micro-opérations.
  • Modèles de CPU pédagogiques : démontre les principes fondamentaux du fonctionnement du CPU.
  • Unités de commande câblées : fournit les bits d'instruction directement à la logique de contrôle combinatoire.

Notes techniques

  • La largeur du registre d'instruction correspond à la taille d'instruction de l'architecture du processeur.
  • L'IR est typiquement chargé pendant la phase de lecture du cycle d'instruction.
  • Dans un CPU simple non pipeliné, l'IR conserve chaque instruction pendant toute sa durée d'exécution.
  • Dans les architectures pipelinées, plusieurs IR peuvent exister à différentes étapes du pipeline.
  • Les sorties de l'IR sont souvent divisées en champs qui ont des significations spécifiques selon le format d'instruction.
  • Certains jeux d'instructions complexes nécessitent une logique supplémentaire pour gérer les instructions de longueur variable.
  • L'IR isole l'unité de commande du bus de données, permettant à la mémoire d'être utilisée pour d'autres opérations pendant que l'instruction actuelle est en cours d'exécution.
graph LR
    DATA[Data Bus<br/>from Memory] --> IR[Instruction Register]
    CLK[Clock] --> IR
    LOAD[Load Enable] --> IR
    IR --> OUT[Output to Decoder<br/>Opcode & Operands]

Note : la taille de l'IR correspond à la taille d'instruction de l'architecture. Les sorties sont acheminées vers la logique du décodeur d'instructions.

Table de vérité / table de fonctionnement

L'IR fonctionne principalement comme un élément de stockage :

LOAD CLK Action prise sur le front d'horloge Sortie IR (état suivant)
1 Charger les données d'entrée Données d'entrée
0 Maintenir la valeur actuelle Sortie IR (actuelle)
X 0/↓ Pas de changement Sortie IR (actuelle)

La sortie est typiquement stable entre les opérations de chargement et continuellement disponible au décodeur d'instructions.

Caractéristiques

  • Configuration des entrées :

    • Entrées de données (I0-I7) : entrées parallèles 8 bits connectées au bus de données mémoire pour recevoir les instructions lues.
    • Autorisation de chargement (LD) : signal de contrôle activé pendant le cycle de lecture pour verrouiller l'instruction.
    • Entrée d'horloge (CLK) : synchronise l'opération de chargement sur le front montant.
    • Autorisation de sortie d'adresse (A_OE) : contrôle le comportement trois états des sorties d'adresse pour le partage de bus.
  • Configuration des sorties :

    • Sorties d'opcode (OP0-OP3) : sorties 4 bits fournissant le code opération, toujours actives pour un accès immédiat par l'unité de commande.
    • Sorties d'adresse (A0-A3) : sorties 4 bits fournissant les informations d'adressage, peuvent être mises en trois états via A_OE.
    • Les bits d'opcode sont typiquement acheminés directement vers l'unité de commande pour le décodage d'instructions.
    • Les bits d'adresse sont utilisés pour l'adressage mémoire et les opérations de saut lorsqu'ils sont activés.
  • Fonctionnalités :

    • Stocke temporairement l'instruction actuellement lue.
    • Maintient l'instruction stable pendant qu'elle est décodée et exécutée.
    • Isole l'unité de commande des changements sur le bus de données après le cycle de lecture.
    • Fournit les bits bruts d'instruction nécessaires au décodeur d'instructions.
  • Délai de propagation :

    • Délai horloge-vers-sortie : temps pour que l'instruction soit disponible aux sorties après le front d'horloge lors d'une opération de chargement.
    • Exigences de temps de mise en place/maintien pour les entrées de données par rapport à l'horloge et au signal de chargement.
  • Complexité du circuit :

    • Cœur : un registre parallèle-entrée, parallèle-sortie composé de bascules D (une par bit de la largeur d'instruction).
    • Logique de contrôle pour le signal LOAD.

Méthodes d'implémentation

  1. Tableau de bascules D : la méthode la plus courante, utilisant une bascule D pour chaque bit du mot d'instruction, cadencées simultanément avec un signal LOAD commun.
  2. CI registre standard : utilisation de circuits intégrés de registre standard (par exemple, 74HC374, 74HC574 pour les instructions 8 bits).
  3. Implémentation FPGA/ASIC : synthétisée à partir de code HDL au sein d'une conception de CPU plus large.

Applications

  • Cycle de décodage et exécution d'instruction : composant central dans le cycle lecture-décodage-exécution d'un CPU.
  • Unité de commande du CPU : fournit l'entrée à la logique du décodeur d'instructions, qui à son tour génère les signaux de contrôle pour le reste du CPU.
  • Étapes de pipeline : dans les processeurs pipelinés, l'IR existe souvent à l'étape du pipeline de décodage d'instruction (ID).

Limitations

  • Largeur fixe : la taille de l'IR dicte la taille maximale d'instruction que le CPU peut gérer directement.
  • Goulot d'étranglement : dans certaines architectures plus anciennes, la lecture vers l'IR pouvait être un goulot d'étranglement de performance, traitée par des techniques comme le préchargement d'instructions et le pipelining.

Détail de l'implémentation du circuit

Un IR 8 bits implémenté avec des bascules D :

graph LR
    D0[Data_In 0] --> FF0[D Flip-Flop 0]
    D1[Data_In 1] --> FF1[D Flip-Flop 1]
    D2[Data_In 2] --> FF2[D Flip-Flop 2]
    D7[Data_In 7] --> FF7[D Flip-Flop 7]
    
    CLK[Clock] --> FF0
    CLK --> FF1
    CLK --> FF2
    CLK --> FF7
    
    LOAD[Load Enable] --> FF0
    LOAD --> FF1
    LOAD --> FF2
    LOAD --> FF7
    
    FF0 --> OUT0[IR_Out 0]
    FF1 --> OUT1[IR_Out 1]
    FF2 --> OUT2[IR_Out 2]
    FF7 --> OUT7[IR_Out 7]

Toutes les bascules partagent les mêmes signaux d'horloge (CLK) et d'autorisation de chargement (LOAD).

Composants associés

  • Compteur de programme (PC) : fournit l'adresse pour lire l'instruction qui sera chargée dans l'IR.
  • Mémoire (RAM/ROM) : stocke les instructions.
  • Bus de données : transporte l'instruction de la mémoire vers l'IR.
  • Unité de commande : contient l'IR et le décodeur d'instructions.
  • Décodeur d'instructions : lit la sortie de l'IR pour interpréter l'instruction.
  • ALU : exécute l'opération spécifiée par l'instruction décodée.
  • Registres : peuvent contenir des opérandes spécifiés par des champs au sein de l'instruction stockée dans l'IR.

school Parcours d'apprentissage

arrow_back Prérequis

arrow_forward Prochaines étapes

help_outline Foire aux questions

Qu'est-ce que le registre d'instructions ?

L'IR contient l'instruction récupérée de la mémoire. Son contenu est décodé par l'unité de contrôle pour déterminer quelle opération effectuer.

Quelles informations l'IR contient-il ?

L'IR contient généralement l'opcode (code d'opération) et l'adresse de l'opérande ou la valeur immédiate, selon le format d'instruction.

play_arrow Exécuter le circuit en direct

Voir d'autres composants