Registre des indicateurs
Vue d'ensemble
- Objectif : le registre des indicateurs (Flags Register) est un registre à usage spécial qui stocke les bits d'état (indicateurs) reflétant le résultat des opérations arithmétiques ou logiques. Chaque bit correspond à une condition spécifique, comme le fait qu'un résultat soit nul, négatif, qu'il ait produit une retenue ou provoqué un dépassement.
- Symbole : représenté par un bloc rectangulaire de registre avec 7 entrées (4 entrées de bus de données d'indicateur + CLK + LD + entrée d'indicateur) et 4 sorties d'indicateur (Z, C, N, V).
- Rôle dans DigiSim.io : sert de composant essentiel dans la simulation d'architecture d'ordinateur, permettant les opérations conditionnelles et la prise de décision basée sur les résultats de calculs précédents.

Description fonctionnelle
Comportement logique
Le registre des indicateurs capture et stocke les informations d'état générées par l'ALU ou d'autres unités de calcul. Chaque bit du registre représente une condition ou un état spécifique.
Indicateurs :
| Indicateur | Condition de mise à 1 | Condition de mise à 0 |
|---|---|---|
| Zéro (Z) | Le résultat de l'opération est nul | Résultat non nul |
| Retenue (C) | Dépassement d'addition non signée / emprunt en soustraction | Pas de dépassement non signé / pas d'emprunt |
| Négatif (N) | Le bit de poids fort (MSB) du résultat vaut 1 | Le MSB du résultat vaut 0 |
| Dépassement (V) | Dépassement d'une opération arithmétique signée | Pas de dépassement signé |
Entrées et sorties
Entrées (7 au total) :
- Zéro (Z) : broche 0. Entrée d'indicateur Zéro depuis l'ALU (entrée bus).
- Retenue (C) : broche 1. Entrée d'indicateur de retenue depuis l'ALU (entrée bus).
- Négatif (N) : broche 2. Entrée d'indicateur Négatif depuis l'ALU (entrée bus).
- Dépassement (V) : broche 3. Entrée d'indicateur de dépassement depuis l'ALU (entrée bus).
- Flag In : broche 4. Entrée d'indicateur supplémentaire (entrée bus).
- CLK : broche 5. Entrée d'horloge — les indicateurs sont capturés sur le front montant.
- LD (Load) : broche 6. Autorisation de chargement — les indicateurs ne sont mis à jour que lorsque LD est HIGH au front montant de l'horloge.
Sorties (4 au total) :
- Z : broche 0. Sortie de l'indicateur Zéro.
- C : broche 1. Sortie de l'indicateur de retenue.
- N : broche 2. Sortie de l'indicateur Négatif.
- V : broche 3. Sortie de l'indicateur de dépassement.
Paramètres configurables
- Indicateurs inclus : quels indicateurs d'état spécifiques sont implémentés (dépend de l'architecture).
- Comportement des indicateurs : la manière dont chaque indicateur réagit à des opérations spécifiques.
- Sensibilité au front d'horloge : si le registre se met à jour sur les fronts montants ou descendants de l'horloge.
- Contrôle du chargement : si les indicateurs sont mis à jour individuellement ou en groupe.
- Délai de propagation : le temps nécessaire pour que les sorties d'indicateur reflètent les changements d'entrée.
Représentation visuelle dans DigiSim.io
Le registre des indicateurs est affiché sous la forme d'un bloc rectangulaire avec des entrées étiquetées sur le côté gauche (bits d'état, CLK, Load) et des sorties d'indicateur individuelles sur le côté droit (Z, C, N, V, etc.). Lorsqu'il est connecté dans un circuit, le composant indique visuellement l'état de chaque indicateur via les valeurs de sortie et les changements de couleur sur les fils de connexion.
Valeur pédagogique
Concepts clés
- Exécution conditionnelle : démontre comment les ordinateurs prennent des décisions basées sur les résultats des opérations.
- Suivi d'état : montre comment les systèmes numériques gardent une trace des résultats de calcul.
- Architecture des ordinateurs : illustre un composant fondamental de la conception de CPU.
- Information d'état : introduit le concept de maintien d'informations d'état pour utilisation lors des opérations ultérieures.
- Rétroaction numérique : montre comment les résultats des opérations influencent les chemins de traitement futurs.
Objectifs d'apprentissage
- Comprendre comment les indicateurs d'état capturent les résultats des opérations arithmétiques et logiques.
- Apprendre comment les indicateurs permettent les branchements conditionnels et la prise de décision dans les programmes informatiques.
- Reconnaître le rôle du registre des indicateurs dans l'architecture du CPU et l'exécution des instructions.
- Appliquer la connaissance des indicateurs pour prédire le flux d'un programme dans les opérations conditionnelles.
- Comprendre comment l'arithmétique multi-précision repose sur les indicateurs de retenue et de dépassement.
Exemples d'utilisation / scénarios
- Branchement conditionnel : les instructions Jump if Zero (JZ), Jump if Carry (JC) ou Jump if Not Zero (JNZ) utilisent les indicateurs pour modifier le flux du programme.
- Arithmétique multi-précision : utilisation de l'indicateur de retenue pour relier les opérations entre plusieurs mots (par exemple, additionner des nombres 64 bits sur une ALU 32 bits).
- Détection d'erreurs : surveillance de l'indicateur de dépassement pour détecter les erreurs arithmétiques dans les opérations signées.
- Contrôle de boucle : vérification de l'indicateur Zéro pour déterminer quand les compteurs de boucle atteignent leurs valeurs terminales.
- Gestion des interruptions : positionner ou effacer l'indicateur d'interruption pour contrôler la réactivité du système aux événements externes.
- Compte rendu d'état : utilisation des indicateurs pour communiquer les résultats des opérations aux logiciels de niveau supérieur.
Notes techniques
- Le registre des indicateurs est généralement implémenté comme une collection de bascules, une pour chaque bit d'indicateur.
- Différentes architectures de CPU incluent différents ensembles d'indicateurs et peuvent les interpréter différemment.
- Le comportement des indicateurs peut varier selon l'instruction ; certaines instructions peuvent affecter tous les indicateurs, tandis que d'autres n'affectent que des indicateurs spécifiques.
- Dans de nombreuses conceptions de CPU, le registre des indicateurs fait partie d'un Program Status Word (PSW) ou registre d'état plus large.
- Sauvegarder et restaurer le registre des indicateurs est souvent nécessaire lors des changements de contexte, des interruptions et des appels de sous-programmes.
- Dans DigiSim.io, le comportement du registre des indicateurs modélise les architectures de CPU courantes avec une mise à 1 et une mise à 0 correctes des indicateurs en fonction des conditions d'entrée.