Fondamentaux des architectures des systèmes informatiques

Les appareils électroniques omniprésents, tels que les téléphones intelligents et les ordinateurs portables, reposent sur une architecture matérielle composée de microprocesseurs, de mémoires et de circuits d'entrée/sortie. Cet ensemble forme ce que l'on appelle un système informatique. Une compréhension approfondie de ces systèmes nécessite la maîtrise de leurs concepts de base.

Représentation des données numériques

Les systèmes informatiques manipulent l'information sous forme de données numériques. Plusieurs systèmes de numération sont fondamentaux.

Le système décimal (base 10) est courant dans la vie quotidienne. Une valeur comme 274.35 s'exprime ainsi :
\( 2 \times 10^2 + 7 \times 10^1 + 4 \times 10^0 + 3 \times 10^{-1} + 5 \times 10^{-2} \)

Le système binaire (base 2), utilisant uniquement les chiffres 0 et 1, est le langage natif des composants logiques. Par exemple, le nombre binaire 1101.101 vaut :
\( 1 \times 2^3 + 1 \times 2^2 + 0 \times 2^1 + 1 \times 2^0 + 1 \times 2^{-1} + 0 \times 2^{-2} + 1 \times 2^{-3} = 13.625_{10} \)

Le système hexadécimal (base 16), avec les symboles 0-9 et A-F, offre une notation compacte des valeurs binaires. Ainsi, 1C_{16} équivaut à :
\( 1 \times 16^1 + 12 \times 16^0 = 28_{10} \)

Le code BCD (Binary-Coded Decimal) représente chaque chiffre décimal par un groupe de 4 bits. Le nombre 92 en BCD s'écrit : 1001 0010.

Le code ASCII standardise la représentation des caractères alphanumériques et de contrôle, couvrant les plages 0-31 (non imprimables), 32-127 et 128-255 (étendue).

Techniques de conversion entre bases

La conversion d'un nombre d'une base vers une autre est une opération essentielle. Pour convertir une valeur de base \(b\) en décimal, on calcule la somme pondérée de ses chiffres par les puissances successives de \(b\).
Pour passer du décimal au binaire, on applique des divisions successives par 2 et on récupère les restes. Par exemple, 100_{10} en binaire s'obtient ainsi :
100 ÷ 2 = 50, reste 0 (bit de poids faible)
50 ÷ 2 = 25, reste 0
25 ÷ 2 = 12, reste 1
12 ÷ 2 = 6, reste 0
6 ÷ 2 = 3, reste 0
3 ÷ 2 = 1, reste 1
1 ÷ 2 = 0, reste 1 (bit de poids fort)
Le résultat est donc 01100100₂.
Le principe est identique pour la conversion décimale-hexadécimale (divisions par 16).

Pour convertir un nombre binaire en BCD, on le transforme d'abord en décimal, puis chaque chiffre décimal est codé en 4 bits. L'opération inverse (BCD vers binaire) procède de la même manière en deux étapes.

Unités de mémoire

La mémoire sert à stocker des données et des programmes sous forme binaire. On distingue deux catégories principales.

Les mémoires non volatiles conservent leur contenu sans alimentation électrique. Elles incluent la ROM masquée (MPROM), la PROM (programmable une fois), l'EPROM (effaçable par rayonnement UV), l'EEPROM (effaçable électriquement) et la mémoire Flash (type EEPROM à effacement par blocs).

Les mémoires volatiles perdent leur contenu à la coupure de courant. La SRAM (basée sur des bascules) est rapide mais plus volumineuse. La DRAM (basée sur des condensateurs) nécessite un rafraîchissement périodique mais offre une densité plus élevée.

L'accès à une mémoire s'effectue via trois bus : le bus d'adresse (sélection de la cellule), le bus de données (transport des bits) et le bus de contrôle (signaux de lecture/écriture).

Organisation d'un système informatique

Un oscillateur interne (ou horloge) génère un signal de synchronisation qui rythme l'ensemble des opérations, définissant ainsi la fréquence d'horloge du système.

Le circuit de réinitialisation (reset) place le système dans un état initial connu au démarrage, généralement en combinant un bouton poussoir et un circuit RC.

Périphériques d'entrée

Les dispositifs d'entrée permettent au système d'acquérir des informations du monde extérieur. Exemples :
- Interrupteurs mécaniques.
- Claviers matriciels, qui minimisent le nombre de broches d'E/S nécessaires grâce à un balayage des lignes et colonnes.
- Capteurs analogiques (température, luminosité) couplés à un convertisseur analogique-numérique (CAN).
- Encodeurs, boutons rotatifs, etc.

Périphériques de sortie

Les dispositifs de sortie permettent au système d'agir sur son environnement ou d'afficher des informations.
- Afficheurs : DEL simples, DELs en barregraph, afficheurs 7 segments, écrans LCD.
- Actionneurs : commandés via des techniques de modulation de largeur d'impulsion (MLI/PWM) pour un contrôle précis (vitesse de moteur, luminosité).
- Convertisseurs numérique-analogique (CNA) pour générer des signaux continus.

Microprocesseur et microcontrôleur

Le microprocesseur est l'unité centrael de traitement (CPU). Il comprend une unité arithmétique et logique (UAL), des registres et une unité de commande. Il exécute une séquence d'instructions (programme) stockées en mémoire.

Un microcontrôleur intègre sur une même puce un CPU, une mémoire (ROM/RAM) et des périphériques d'entrée/sortie. Il est conçu pour des applications embarquées spécifiques, offrant une solution compacte et économique. Ses domaines d'application sont vastes : automobile (injection, ABS), électroménager, automatisation industrielle (API), instrumentation médicale.

La firmware est un logiciel fortement lié au matériel, souvent stocké en mémoire non volatile, qui initialise et pilote directement les composants.

Représentation algorithmique

Les organigrammes (flowcharts) sont des outils graphiques standardisés pour décrire un processus ou un algorithme. Les symboles de base sont : l'ellipse (début/fin), le rectangle (traitement), le losange (décision) et la flèche (flux).

Exemple d'un organigramme de décision simple :

La programmation séquentielle exécute les instructions les unes après les autres. C'est la structure de base. Exemple en langage assembleur (syntaxe typique) :

; Calcul A + B et stockage en C
LOAD  R1, [A]  ; Charger la valeur de A dans R1
LOAD  R2, [B]  ; Charger la valeur de B dans R2
ADD   R3, R1, R2 ; R3 = R1 + R2
STORE [C], R3  ; Stocker R3 à l'adresse C

La boucle permet de répéter un bloc d'instructions. Exemple d'une boucle comptant à rebours :

        MOV  R0, #10    ; Initialiser le compteur à 10
LOOP:   DEC  R0         ; Décrémenter le compteur
        JNZ  LOOP       ; Sauter à LOOP si R0 n'est pas zéro
        ; Suite du programme...

La programmation structurée combine séquences, conditions et boucles de manière organisée et modulaire pour créer des programmes plus clairs et maintenables.

Étiquettes: architecture des ordinateurs systèmes numériques binaire hexadécimal mémoire

Publié le 14 juillet à 04h55