Systèmes Numériques
Architecture des ordinateurs, microcontrôleurs, logique combinatoire et mémoires
Objectifs pédagogiques
- Comprendre l'architecture de Von Neumann et ses composants
- Maîtriser les bases de la numération binaire et hexadécimale
- Analyser les fonctions logiques combinatoires (ET, OU, NON, XOR)
- Identifier les différents types de mémoires (RAM, ROM, Flash)
- Configurer un microcontrôleur pour des applications embarquées
1. Numération et codage
Les systèmes numériques ne connaissent que deux états : 0 et 1. Cette représentation binaire est la base de toute l'informatique. En électronique, le 0 correspond généralement à une tension basse (0V) et le 1 à une tension haute (3.3V ou 5V).
Système binaire (base 2)
Chaque chiffre binaire est appelé bit (binary digit). Un groupe de 8 bits forme un octet (byte en anglais). La valeur d'un nombre binaire se calcule en sommant les puissances de 2 correspondant aux bits à 1.
Exemple : Convertir 1011₂ en décimal
1011₂ = 1×2³ + 0×2² + 1×2¹ + 1×2⁰
= 8 + 0 + 2 + 1
= 11₁₀
Système hexadécimal (base 16)
L'hexadécimal utilise 16 symboles : 0-9 et A-F (où A=10, B=11, ..., F=15). Il est très utilisé car chaque chiffre hexadécimal représente exactement 4 bits, ce qui simplifie la lecture des adresses mémoire et des couleurs en informatique.
| Décimal | Binaire | Hexadécimal |
|---|---|---|
| 0 | 0000 | 0 |
| 5 | 0101 | 5 |
| 10 | 1010 | A |
| 15 | 1111 | F |
| 255 | 11111111 | FF |
Les couleurs en informatique sont codées en hexadécimal : #FF5733= Rouge: FF (255), Vert: 57 (87), Bleu: 33 (51). Les adresses MAC utilisent aussi l'hexadécimal : A4:5E:60:B7:C3:21.
2. Logique combinatoire
La logique combinatoire étudie les circuits dont la sortie dépend uniquement des entrées actuelles (pas de mémoire). Ces circuits sont construits à partir de portes logiques fondamentales qui réalisent des opérations booléennes.
Portes logiques fondamentales
Porte ET (AND)
Sortie = 1 si TOUTES les entrées = 1
0 ET 1 = 0
1 ET 0 = 0
1 ET 1 = 1
Porte OU (OR)
Sortie = 1 si AU MOINS une entrée = 1
0 OU 1 = 1
1 OU 0 = 1
1 OU 1 = 1
Porte NON (NOT)
Inverse l'entrée
NON 1 = 0
Porte XOR (OU exclusif)
Sortie = 1 si les entrées sont différentes
0 XOR 1 = 1
1 XOR 0 = 1
1 XOR 1 = 0
Exemple : Additionneur 1 bit
Un demi-additionneur additionne deux bits A et B. Il produit une Somme (S) et une Retenue (C pour Carry). La somme est obtenue par un XOR, la retenue par un ET.
S = A XOR B (somme sans retenue)
C = A ET B (retenue)
| A | B | S | C |
|---|---|---|---|
| 0 | 0 | 0 | 0 |
| 0 | 1 | 1 | 0 |
| 1 | 0 | 1 | 0 |
| 1 | 1 | 0 | 1 |
3. Architecture de Von Neumann
L'architecture de Von Neumann (1945) est le modèle de base de tous les ordinateurs modernes. Elle définit une organisation où les données et les programmes sont stockés dans la même mémoire, et où un processeur unique exécute les instructions séquentiellement.
Composants principaux
Unité Centrale (CPU)
- • UAL : Unité Arithmétique et Logique (calculs)
- • UC : Unité de Commande (séquencement)
- • Registres : mémoires ultra-rapides
Mémoire centrale
- • Stocke programmes et données
- • Organisée en cellules adressables
- • Accès par le bus d'adresses
Bus système
- • Bus de données : transporte les données
- • Bus d'adresses : identifie les cellules
- • Bus de contrôle : signaux de commande
Entrées/Sorties
- • Interface avec le monde extérieur
- • Clavier, écran, capteurs, actionneurs
- • Gérées par des contrôleurs d'E/S
Cycle d'exécution
Le processeur exécute les instructions selon un cycle répétitif appelé cycle fetch-decode-execute :
Lecture de l'instruction en mémoire
Décodage de l'opération à effectuer
Exécution par l'UAL ou l'UC
4. Types de mémoires
Les systèmes numériques utilisent différents types de mémoires, chacune avec ses caractéristiques de vitesse, capacité et persistance. On distingue les mémoires volatiles (qui perdent leur contenu sans alimentation) des mémoires non-volatiles.
| Type | Caractéristiques | Usage |
|---|---|---|
| RAM | Volatile, rapide, lecture/écriture | Mémoire de travail, programmes en cours |
| ROM | Non-volatile, lecture seule | BIOS, firmware d'amorçage |
| Flash | Non-volatile, réinscriptible | SSD, clés USB, microcontrôleurs |
| EEPROM | Non-volatile, effaçable électriquement | Paramètres de configuration, calibration |
| Cache | Volatile, très rapide, petite capacité | Accélération accès CPU-RAM |
Plus une mémoire est rapide, plus elle est coûteuse et de faible capacité. La hiérarchie va des registres (quelques octets, ultra-rapides) au stockage de masse (téraoctets, lent) en passant par le cache, la RAM et le SSD.
5. Microcontrôleurs
Un microcontrôleur (MCU) est un circuit intégré qui contient un processeur, de la mémoire et des périphériques d'entrée/sortie sur une seule puce. Contrairement à un microprocesseur qui nécessite des composants externes, le microcontrôleur est autonome et optimisé pour les systèmes embarqués.
Composants intégrés
- • CPU : processeur 8, 16 ou 32 bits
- • Flash : stockage du programme (16 KB à 2 MB)
- • RAM : données temporaires (2 KB à 512 KB)
- • GPIO : entrées/sorties numériques
- • ADC : convertisseur analogique-numérique
- • Timers : gestion du temps, PWM
- • UART/SPI/I2C : communication série
Microcontrôleurs courants
- ATmega328P (Arduino Uno) : 8 bits, 16 MHz
- ESP32 : 32 bits dual-core, WiFi/Bluetooth
- STM32 : famille ARM Cortex-M, industriel
- RP2040 (Raspberry Pi Pico) : dual-core ARM
- PIC : famille Microchip, très répandue
Exemple : Configuration d'une sortie (Arduino)
// Configuration d'une LED sur la broche 13
const int LED_PIN = 13;
void setup() {
pinMode(LED_PIN, OUTPUT); // Configure en sortie
}
void loop() {
digitalWrite(LED_PIN, HIGH); // Allume (5V)
delay(1000); // Attend 1 seconde
digitalWrite(LED_PIN, LOW); // Éteint (0V)
delay(1000);
}Registres de configuration
Derrière les fonctions Arduino, le microcontrôleur utilise des registrespour configurer ses périphériques. Par exemple, sur ATmega328P :
DDRB : Data Direction Register B (définit entrée/sortie)
PORTB : Port B Data Register (état des sorties)
PINB : Port B Input Pins (lecture des entrées)
// Équivalent bas niveau de pinMode(13, OUTPUT)
DDRB |= (1 << PB5); // Met le bit 5 de DDRB à 1À retenir
•Binaire : base 2, fondement de l'électronique numérique
•Hexadécimal : base 16, 1 chiffre = 4 bits
•Portes logiques : ET, OU, NON, XOR - briques de base
•Von Neumann : CPU + Mémoire + Bus + E/S
•Mémoires : RAM (volatile), Flash/ROM (persistante)
•Microcontrôleur : CPU + mémoire + périphériques intégrés
