Cours 2IT

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écimalBinaireHexadécimal
000000
501015
101010A
151111F
25511111111FF
Application concrète

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 0 = 0
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 0 = 0
0 OU 1 = 1
1 OU 0 = 1
1 OU 1 = 1

Porte NON (NOT)

Inverse l'entrée

NON 0 = 1
NON 1 = 0

Porte XOR (OU exclusif)

Sortie = 1 si les entrées sont différentes

0 XOR 0 = 0
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)

ABSC
0000
0110
1010
1101

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 :

1. Fetch

Lecture de l'instruction en mémoire

2. Decode

Décodage de l'opération à effectuer

3. Execute

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.

TypeCaractéristiquesUsage
RAMVolatile, rapide, lecture/écritureMémoire de travail, programmes en cours
ROMNon-volatile, lecture seuleBIOS, firmware d'amorçage
FlashNon-volatile, réinscriptibleSSD, clés USB, microcontrôleurs
EEPROMNon-volatile, effaçable électriquementParamètres de configuration, calibration
CacheVolatile, très rapide, petite capacitéAccélération accès CPU-RAM
Hiérarchie des mémoires

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

Scientia