UAL 8 bits (Unité Arithmétique et Logique)
Vue d'ensemble
- Objectif : L'UAL 8 bits effectue des opérations arithmétiques et logiques sur des nombres binaires 8 bits. Elle sert de cœur de calcul des systèmes numériques, exécutant diverses opérations en fonction des signaux de contrôle.
- Symbole : L'UAL est représentée par un bloc rectangulaire avec des entrées pour deux opérandes 8 bits (A et B) et la sélection d'opération, et des sorties pour le résultat 8 bits et les drapeaux d'état.
- Rôle dans DigiSim.io : L'UAL 8 bits permet le calcul dans les circuits numériques, ce qui la rend essentielle pour l'implémentation de processeurs, de calculatrices et d'autres systèmes de calcul.

Description fonctionnelle
Comportement logique
L'UAL 8 bits prend deux entrées 8 bits, effectue une opération sélectionnée par les entrées de contrôle d'opération et produit un résultat 8 bits ainsi que des drapeaux d'état. Ces drapeaux indiquent des propriétés telles que si le résultat est zéro, négatif, ou s'il y a eu une retenue ou un débordement.
Sélection d'opération :
| OP2 | OP1 | OP0 | Opération | Description |
|---|---|---|---|---|
| 0 | 0 | 0 | Y = A + B | Addition |
| 0 | 0 | 1 | Y = A - B | Soustraction |
| 0 | 1 | 0 | Y = A & B | AND bit à bit |
| 0 | 1 | 1 | Y = A | B | OR bit à bit |
| 1 | 0 | 0 | Y = A ^ B | XOR bit à bit |
| 1 | 0 | 1 | Y = ~A | NOT bit à bit (complément de A) |
| 1 | 1 | 0 | Y = A << 1 | Décalage logique à gauche |
| 1 | 1 | 1 | Y = A >> 1 | Décalage logique à droite |
Entrées et sorties
Entrées :
- A0-A7 : premier opérande 8 bits.
- B0-B7 : deuxième opérande 8 bits.
- OP0-OP2 : sélection d'opération 3 bits pour déterminer la fonction à effectuer.
- SubIn : signal de contrôle d'entrée de soustraction.
Sorties :
- Y0-Y7 : résultat 8 bits de l'opération.
- Drapeau de zéro (Z) : activé lorsque le résultat est zéro (tous les bits sont à 0).
- Drapeau de retenue (C) : activé lorsqu'une opération produit une retenue de sortie (pour l'addition) ou un emprunt (pour la soustraction).
- Drapeau négatif (N) : activé lorsque le bit le plus significatif du résultat est 1 (négatif en complément à deux).
- Drapeau de débordement (V) : activé lorsqu'une opération arithmétique signée entraîne un débordement.
Paramètres configurables
- Délai de propagation : le décalage temporel entre les changements d'entrée et les changements de sortie correspondants. Ceci est simulé dans DigiSim.io.
Représentation visuelle dans DigiSim.io
L'UAL 8 bits est affichée sous la forme d'un bloc rectangulaire avec les entrées sur le côté gauche et les sorties sur le côté droit. Elle est clairement étiquetée « ALU-8BIT » pour identifier sa fonction. Les broches d'entrée (A0-A7, B0-B7, OP0-OP2) et de sortie (Y0-Y7, Z, C, N, V) sont disposées en groupes logiques. Le composant indique visuellement l'état actuel de toutes les entrées et sorties.
Valeur pédagogique
Concepts clés
- Arithmétique binaire : illustre comment les ordinateurs effectuent des opérations arithmétiques de base sur des nombres binaires.
- Logique booléenne : montre l'implémentation d'opérations logiques sur des valeurs multi-bits.
- Drapeaux d'état : introduit le concept de codes de condition qui fournissent des informations sur les résultats des opérations.
- Blocs de calcul : illustre comment des opérations complexes peuvent être implémentées à l'aide de la logique numérique.
Objectifs d'apprentissage
- Comprendre comment les systèmes numériques effectuent des calculs arithmétiques et logiques.
- Apprendre la relation entre les opérations binaires et leurs résultats.
- Reconnaître comment les drapeaux d'état fournissent des informations essentielles sur les résultats des opérations.
- Appliquer les concepts d'UAL à la conception de systèmes de calcul simples.
- Comprendre comment l'UAL s'intègre dans l'architecture plus large d'un système informatique.
Exemples d'utilisation / Scénarios
- Conception simple de CPU : l'UAL forme le cœur de calcul d'un CPU, exécutant les opérations arithmétiques et logiques.
- Circuits de calculatrice : implémentation de calculatrices binaires effectuant des opérations mathématiques de base.
- Manipulation de données : traitement des données par des opérations bit à bit pour le masquage, le filtrage ou la transformation des valeurs.
- Test de condition : utilisation de l'UAL et de ses drapeaux pour tester des conditions spécifiques dans les valeurs de données.
- Traitement du signal : opérations de traitement numérique du signal de base comme la mise à l'échelle, l'ajustement de décalage et la détection de seuil.
Notes techniques
- Opérations arithmétiques : l'addition et la soustraction sont implémentées à l'aide d'additionneurs complets avec propagation de retenue.
- Génération de drapeaux : les drapeaux d'état sont dérivés du résultat de l'opération et de la chaîne de retenue.
- Latence opérationnelle : différentes opérations peuvent avoir des délais de propagation légèrement différents, l'addition et la soustraction prenant généralement le plus de temps en raison de la propagation de retenue.
- Mise en cascade : plusieurs UAL 8 bits peuvent être connectées entre elles pour effectuer des opérations sur des données plus larges (16 bits, 32 bits, etc.).
Caractéristiques
Configuration des entrées :
- Deux entrées de données 8 bits (A[7:0] et B[7:0])
- Entrées de sélection d'opération 3 bits (OP[2:0])
- Entrée d'horloge optionnelle pour les opérations séquentielles
- Retenue d'entrée optionnelle pour les opérations arithmétiques chaînées
- Peut inclure des signaux de contrôle supplémentaires pour des fonctions spécialisées
- Charge d'entrée cohérente avec la famille logique utilisée
- Toutes les entrées utilisent généralement des niveaux logiques standard
Configuration des sorties :
- Sortie de résultat 8 bits (Y[7:0])
- Sorties de drapeaux d'état :
- Drapeau de zéro (Z) : activé lorsque le résultat est zéro (tous les bits à 0)
- Drapeau de retenue (C) : activé lorsque l'opération produit une retenue de sortie
- Drapeau de débordement (V) : activé lorsqu'une opération arithmétique signée déborde
- Drapeau négatif (N) : activé lorsque le résultat a MSB=1 (négatif en complément à deux)
- Retenue de sortie optionnelle pour la mise en cascade de plusieurs UAL
- Sorties à niveau logique standard
- Sorties capables de piloter des charges numériques typiques
- Peut inclure une capacité de sortie tri-state
Fonctionnalité :
- Opérations arithmétiques : addition, soustraction, incrémentation, décrémentation
- Opérations logiques : AND, OR, XOR, NOT
- Opérations de décalage : décalage logique à gauche/droite, rotation à gauche/droite
- Opérations de transfert : passage de A, passage de B, effacement, mise à 1
- Sélection d'opération via les entrées de contrôle
- Génération de drapeaux pour l'état du résultat
- Fonctionnement combinatoire (sauf si en registre)
- Peut prendre en charge à la fois des opérations non signées et signées
- Mise en cascade possible pour des largeurs de mots plus grandes
Délai de propagation :
- Varie selon l'opération :
- Addition/Soustraction : 30-50 ns (chemins les plus complexes)
- Opérations logiques : 15-25 ns (généralement plus rapides)
- Opérations de décalage : 20-35 ns (complexité modérée)
- Le chemin critique passe généralement par la propagation de retenue
- La génération de drapeaux ajoute un délai supplémentaire
- Dépendant de la technologie (TTL, CMOS, etc.)
- Sensible à la température et à la tension
- Variations entre le délai maximal et typique
- Le délai augmente lorsqu'elle est mise en cascade pour des opérations plus larges
- Varie selon l'opération :
Fan-Out :
- Les sorties de données pilotent généralement 10-20 charges standard
- Les sorties de drapeaux peuvent avoir une capacité de pilotage inférieure
- La charge de sortie affecte le délai de propagation
- Peut nécessiter un tampon pour les situations à fan-out élevé
- Cohérent avec les spécifications de la famille logique
- Les signaux critiques peuvent nécessiter une attention particulière
Consommation électrique :
- Modérée à élevée selon la complexité
- Dépend de la technologie (CMOS, TTL, etc.)
- La puissance dynamique augmente avec la fréquence d'horloge
- Dépend de l'opération (l'arithmétique est généralement plus élevée)
- L'activité de commutation des entrées affecte la consommation
- La puissance statique est significative dans les anciennes technologies
- La consommation augmente avec le nombre de portes actives
Complexité du circuit :
- Complexité élevée en raison de multiples fonctions
- Nécessite des ressources logiques importantes
- Chemins de données internes étendus
- Logique complexe de sélection de fonction
- La génération de drapeaux ajoute une complexité supplémentaire
- Plusieurs étages internes
- Les conceptions intégrées réduisent le nombre de composants externes
- L'intégration de registres augmente encore la complexité
Méthodes d'implémentation
Implémentation en logique discrète
- Construite à partir de portes de base et de composants MSI
- Circuits séparés pour chaque type d'opération
- Multiplexeurs pour sélectionner le résultat de l'opération
- Logique de génération de drapeaux pour chaque résultat
- Implémentation pédagogique pour démontrer les principes de l'UAL
- Nombre de composants significatif
- Limité à des vitesses plus faibles
- Précieuse pour comprendre l'architecture d'une UAL
Implémentation par circuit intégré
- Circuits intégrés UAL dédiés
- Exemples : 74181 (UAL 4 bits, mise en cascade possible), 74382
- Diverses fonctionnalités et ensembles d'opérations
- Disponibles dans différentes familles logiques
- Réduction du nombre de composants externes
- Fiabilité améliorée par rapport aux conceptions discrètes
- Caractéristiques de timing et de charge bien définies
- Souvent utilisés dans les conceptions informatiques anciennes ou pédagogiques
Conception à anticipation de retenue
- Techniques avancées de propagation de retenue
- Réduit le délai du chemin critique
- Structures d'additionneurs à préfixe parallèle
- Opérations arithmétiques plus rapides
- Structure de portes plus complexe
- Nombre accru de portes pour les performances
- Courante dans les implémentations à hautes performances
- Divers schémas d'anticipation de retenue possibles
Implémentation en cascade
- Plusieurs UAL plus petites combinées
- Chaînage de retenue entre les unités
- Logique de combinaison de drapeaux
- Approche modulaire pour des tailles de mots plus larges
- Utilise efficacement les composants standard
- Équilibre entre performances et complexité
- Peut avoir un délai de propagation accru
- Économique pour des implémentations plus larges
Implémentation FPGA/ASIC
- Conception basée sur HDL (VHDL, Verilog)
- Optimisée pour la technologie cible
- Tire parti des structures arithmétiques dédiées
- Ensemble d'opérations configurable
- Évolutive vers différentes largeurs de bits
- Peut tirer parti des chaînes de retenue rapides dans les FPGA
- Personnalisable pour des exigences spécifiques
- Implémentation économe en ressources
UAL contrôlée par microcode
- Opérations contrôlées par microcode
- Ensemble d'opérations plus flexible
- Exécution potentiellement plus lente
- Opérations complexes décomposées en micro-opérations
- Courante dans les conceptions de processeurs CISC
- Plus facile à étendre avec de nouvelles opérations
- Surcoût de contrôle plus élevé
- Mieux adaptée aux jeux d'instructions complexes
Implémentation en tranches de bits (bit-slice)
- Construite à partir de composants processeurs en tranches de bits
- Conception modulaire pour différentes largeurs de mots
- Approche classique pour les processeurs personnalisés
- Exemples : AMD 2901, 74LS181
- Interfaces standardisées entre tranches
- Options de configuration flexibles
- Bien adaptée à des fins pédagogiques
- Architecture historiquement importante
Applications
Unités centrales de traitement (CPU)
- Élément de calcul central
- Exécution d'instructions
- Calcul d'adresses
- Manipulation du compteur de programme
- Opérations conditionnelles
- Contrôle de boucles
- Génération de drapeaux pour le branchement
Microcontrôleurs
- Calcul embarqué
- Traitement d'E/S
- Conversion de données
- Implémentation de protocoles
- Traitement de données de capteurs
- Algorithmes de contrôle
- Opérations en temps réel
Traitement numérique du signal
- Filtrage du signal
- Transformations (FFT, DCT)
- Opérations de convolution
- Manipulation d'échantillons
- Multiplication de coefficients
- Opérations d'accumulation
- Génération de signaux
Traitement graphique
- Transformation de coordonnées
- Manipulation de pixels
- Calculs de géométrie
- Opérations de mélange
- Mappage de texture
- Conversion d'espaces de couleurs
- Opérations vectorielles
Machines de calcul personnalisées
- Processeurs spécifiques à l'application
- Accélérateurs matériels
- Calcul basé sur FPGA
- Algorithmes spécialisés
- Architectures de flux de données
- Éléments de traitement parallèle
- Calcul haute performance
Systèmes pédagogiques
- Apprentissage de l'architecture des ordinateurs
- Enseignement de la conception numérique
- Conception pratique de processeurs
- Implémentation d'algorithmes
- Analyse des performances
- Compréhension de l'interface matériel/logiciel
- Fondamentaux du calcul
Test et vérification
- Test de circuits
- Détection de pannes
- Comparaison logique
- Analyse de signature
- Auto-test intégré
- Test de fabrication
- Vérification fonctionnelle
Limitations
Contraintes de performances
- Le délai de propagation de retenue limite la vitesse arithmétique
- Exécution séquentielle des opérations (une à la fois)
- La taille de mot fixe nécessite plusieurs cycles pour des opérations plus grandes
- Surcoût de sélection d'opération
- Chemin critique à travers les opérations arithmétiques
- La génération de drapeaux ajoute du délai
- La vitesse d'opération varie selon la fonction
Limitations architecturales
- Ensemble d'opérations limité
- La largeur de bits fixe nécessite la mise en cascade
- Les opérations de base nécessitent un séquencement d'instructions pour les tâches complexes
- Dépendances de drapeaux entre les opérations
- Parallélisme limité au sein de l'unité
- Granularité d'opération au niveau du mot
- La nature généraliste sacrifie l'optimisation spécialisée
Défis d'implémentation
- Logique de contrôle complexe requise
- Ressources de routage importantes nécessaires
- Le nombre élevé de portes augmente la consommation
- Complexité des tests due aux multiples opérations
- Vérification du timing pour toutes les opérations
- Compromis performances vs surface
- Chemins de timing critiques à travers les chaînes de retenue
Contraintes opérationnelles
- Pas de support direct pour la virgule flottante
- Précision limitée (8 bits)
- L'arithmétique multi-précision nécessite des algorithmes logiciels
- Pas de support direct pour la division ou la multiplication
- Les opérations complexes nécessitent plusieurs étapes
- Support limité des types de données
- Les drapeaux de résultat peuvent ne pas être exhaustifs
Problèmes de mise à l'échelle
- Les performances se dégradent avec la mise en cascade
- La consommation augmente avec la largeur
- La complexité de conception croît de manière non linéaire
- La complexité des tests augmente exponentiellement
- Augmentation des défis de placement
- Les interconnexions deviennent critiques
- La distribution d'horloge devient plus difficile
Détail d'implémentation du circuit
Schéma fonctionnel de base de l'UAL
graph LR
A[A Operand<br/>8-bit] --> ARITH[Arithmetic Section<br/>Add/Sub]
A --> LOGIC[Logic Section<br/>AND/OR/XOR]
A --> SHIFT[Shift Section<br/>Left/Right]
B[B Operand<br/>8-bit] --> LOGIC
ARITH --> MUX[Multiplexer]
LOGIC --> MUX
SHIFT --> MUX
OP[Operation Select<br/>OP2:0] --> CTRL[Control Logic]
CTRL --> MUX
MUX --> Y[Result<br/>Y 8-bit]
CTRL --> FLAGS[Status Flags<br/>Z,C,N,V]
Logique de génération de drapeaux
graph LR
ResultY[Y 7:0] --> NorGate[NOR Gate] --> ZeroFlag[Zero Flag Z]
ResultY7[Y bit 7] --> BufGate1[Buffer] --> NegFlag[Negative Flag N]
CinPin[Carry In] --> XorGate[XOR Gate] --> OverFlag[Overflow Flag V]
CoutPin[Carry Out] --> XorGate
CoutPin --> BufGate2[Buffer] --> CarryFlag[Carry Flag C]
Tranche d'UAL 1 bit (bloc de construction de base)
Chaque tranche de bits contient :
- Unité arithmétique : additionneur complet pour l'addition/soustraction
- Unité logique : portes AND, OR, XOR pour les opérations logiques
- Unité de décalage : connexion au bit adjacent pour les opérations de décalage
- Multiplexeur : sélectionne le résultat en fonction du code d'opération
Sélection d'opération :
| OP2:0 | Sortie sélectionnée |
|---|---|
| 000 | Résultat d'addition |
| 001 | Résultat de soustraction |
| 010 | Résultat AND |
| 011 | Résultat OR |
| 100 | Résultat XOR |
| 101 | Résultat NOT A |
| 110 | Résultat de décalage à gauche |
| 111 | Résultat de décalage à droite |
Composants associés
- UAL 4 bits : version plus petite pour les opérations à l'échelle du quartet
- UAL 16 bits : version étendue pour les opérations à l'échelle du mot
- UAL 32/64 bits : versions plus grandes pour les processeurs modernes
- Décaleur en barillet (barrel shifter) : composant spécialisé pour les décalages multi-bits
- Additionneur binaire : composant focalisé sur l'addition uniquement
- Unité logique : dédiée aux opérations logiques uniquement
- Multiplicateur : spécialisé pour les opérations de multiplication
- Diviseur : spécialisé pour les opérations de division
- Unité à virgule flottante (FPU) : gère l'arithmétique à virgule flottante
- UAL SIMD : effectue la même opération sur plusieurs éléments de données en parallèle