PREVIEW
Program Counter (8-bit)

Program Counter (8-bit)

Counters signal_cellular_alt Advanced schedule 28 min

Interactive Circuit

Compteur de programme 8 bits (PC)

Vue d'ensemble

  • Objectif : le compteur de programme 8 bits (PC) est un registre spécialisé qui contient l'adresse mémoire de la prochaine instruction à lire et exécuter dans un CPU. Il s'incrémente automatiquement après chaque lecture d'instruction pour pointer vers l'instruction suivante, ou peut être chargé avec une nouvelle adresse lors des sauts et branchements.
  • Symbole : le compteur de programme est représenté par un bloc rectangulaire avec des entrées pour l'horloge, les données de chargement, l'incrémentation, l'autorisation de chargement, la réinitialisation et l'autorisation de sortie, avec une sortie d'adresse 8 bits.
  • Rôle dans DigiSim.io : sert de composant essentiel dans les conceptions de CPU, en contrôlant le flux d'exécution du programme en fournissant l'adresse pour les lectures d'instructions et en permettant des schémas d'exécution séquentiels et non séquentiels.

composant compteur de programme 8 bits

Description fonctionnelle

Comportement logique

Le compteur de programme maintient et met à jour l'adresse de la prochaine instruction à exécuter. Il peut s'incrémenter séquentiellement, charger une nouvelle adresse pour les sauts et branchements, ou maintenir sa valeur actuelle selon les signaux de contrôle.

Table de fonctionnement :

RST LD INC CLK OE Opération Sortie A0-A7
1 X X X X Réinitialisation à zéro High-Z
0 1 X 1 Charger nouvelle adresse Données D0-D7
0 1 X 0 Charger nouvelle adresse High-Z
0 0 1 1 Incrémenter Adresse + 1
0 0 1 0 Incrémenter High-Z
0 0 0 1 Maintien Adresse actuelle
0 0 0 0 Maintien High-Z
X X X 0 X Pas de changement État précédent

Note : ↑ représente un front montant d'horloge, X représente une condition « peu importe » RST est asynchrone — lorsqu'il est actif, il réinitialise immédiatement le compteur quels que soient les autres signaux OE contrôle les sorties trois états — lorsqu'il est inactif (0), toutes les sorties passent à l'état High-Z

Entrées et sorties

  • Entrées :

    • D0-D7[7:0] : entrées de données 8 bits pour charger une nouvelle adresse lors de sauts ou branchements.
    • CLK : entrée d'horloge 1 bit qui synchronise les opérations du compteur.
    • LD : entrée d'autorisation de chargement 1 bit qui autorise le chargement depuis les entrées de données lorsqu'elle est active.
    • RST : entrée de réinitialisation 1 bit qui réinitialise le compteur à 0x00 lorsqu'elle est active.
    • INC : entrée d'autorisation d'incrémentation 1 bit qui déclenche une opération d'incrémentation lorsqu'elle est active.
    • OE : entrée d'autorisation de sortie 1 bit qui contrôle les sorties trois états.
  • Sorties :

    • A0-A7[7:0] : sorties d'adresse 8 bits qui se connectent au bus d'adresses mémoire (trois états contrôlées par OE).

Disposition des broches

Broches d'entrée (côté gauche) :

  • Broches 0-7 : D0-D7 (entrées de données pour chargement parallèle)
  • Broche 8 : CLK (horloge — synchronise toutes les opérations)
  • Broche 9 : LD (autorisation de chargement — autorise le chargement parallèle des données)
  • Broche 10 : RST (réinitialisation — réinitialise le compteur de manière asynchrone à 0x00)
  • Broche 11 : INC (autorisation d'incrémentation — autorise l'incrémentation du compteur)
  • Broche 12 : OE (autorisation de sortie — contrôle les sorties trois états)

Broches de sortie (côté droit) :

  • Broches 0-7 : A0-A7 (sorties d'adresse vers le bus mémoire)

Paramètres configurables

  • Valeur de réinitialisation : la valeur à laquelle le PC se réinitialise (typiquement 0x00).
  • Sensibilité au front d'horloge : si le PC fonctionne sur les fronts montants ou descendants de l'horloge.
  • Contrôle trois états : la manière dont le signal d'autorisation de sortie contrôle les pilotes de sortie.
  • 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 compteur de programme 8 bits est affiché sous la forme d'un bloc rectangulaire avec des entrées étiquetées sur le côté gauche (D0-D7, CLK, LD, RST, INC, OE) et des sorties (A0-A7) 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'adresse affichée sur ses sorties et les changements de couleur sur les fils de connexion.

Valeur pédagogique

Concepts clés

  • Contrôle du flux du programme : démontre comment les ordinateurs gèrent la séquence d'exécution des instructions.
  • Adressage : illustre le concept d'adressage mémoire dans les systèmes informatiques.
  • Signaux de contrôle : montre comment les signaux numériques contrôlent le comportement des circuits séquentiels.
  • Architecture de Von Neumann : introduit un composant fondamental des ordinateurs à programme enregistré.
  • Logique séquentielle : démontre l'application pratique des registres et compteurs.

Objectifs d'apprentissage

  • Comprendre le rôle du compteur de programme dans le cycle d'instruction d'un CPU.
  • Apprendre comment le flux de programme séquentiel et non séquentiel (sauts, branchements) est implémenté.
  • Reconnaître comment les signaux de contrôle coordonnent le fonctionnement du compteur de programme avec les autres composants du CPU.
  • Appliquer les concepts du compteur de programme dans la conception d'architectures de CPU simples.
  • Comprendre les limites de l'espace d'adressage en fonction de la largeur en bits (PC 8 bits = 256 emplacements adressables).

Exemples d'utilisation / scénarios

  • Conception de CPU de base : composant central dans une architecture de processeur minimale.
  • Séquencement d'instructions : contrôle de l'ordre d'exécution des instructions.
  • Implémentation de sauts : modification du flux du programme pour exécuter des instructions hors séquence.
  • Appels de sous-programmes : sauvegarde de l'adresse actuelle avant un saut vers un sous-programme.
  • Implémentation de boucles : exécution répétée d'une séquence d'instructions.
  • Gestion d'interruptions : redirection temporaire du flux du programme pour servir les interruptions.

Notes techniques

  • Un PC 8 bits limite la mémoire directement adressable à 256 octets (2^8 emplacements).
  • Le PC est généralement implémenté à l'aide d'un registre 8 bits combiné à un circuit incrémenteur.
  • Dans la plupart des conceptions de CPU, le PC s'incrémente automatiquement pendant la phase de lecture d'instruction.
  • Les instructions de saut et de branchement modifient le flux séquentiel normal en chargeant de nouvelles valeurs dans le PC.
  • La valeur du PC est typiquement placée sur le bus d'adresses pendant la phase de lecture du cycle d'instruction.
  • Les implémentations plus avancées peuvent inclure des fonctionnalités comme la prédiction de branchement ou le pipelining pour améliorer les performances.
  • Dans les architectures de CPU plus larges, des PC avec des largeurs en bits plus grandes (16, 32, 64) sont utilisés pour adresser des espaces mémoire plus grands.

Composants associés

  • Mémoire (RAM/ROM) : stocke les instructions que le PC adresse.
  • Bus d'adresses : le bus piloté par la sortie du PC.
  • Registre d'instruction (IR) : stocke l'instruction lue à l'adresse pointée par le PC.
  • Unité de commande : génère les signaux INC, LOAD, ENABLE, RESET pour le PC en fonction des instructions décodées.
  • ALU : peut calculer les adresses cibles de branchement qui sont chargées dans le PC.
  • Registres : les registres généraux peuvent contenir des adresses pour les sauts indirects.

school Parcours d'apprentissage

arrow_forward Prochaines étapes

help_outline Foire aux questions

Qu'est-ce qu'un compteur de programme ?

Le PC contient l'adresse mémoire de la prochaine instruction à récupérer. Il s'incrémente après chaque récupération et peut être chargé avec des cibles de saut.

Comment le PC permet-il les sauts ?

Les instructions de saut chargent une nouvelle adresse dans le PC, changeant le flux d'exécution de séquentiel vers la cible de saut.

play_arrow Exécuter le circuit en direct

Voir d'autres composants