L'objectif de ce chapitre est de distinguer les rôles et les caractéristiques des différents constituants d'une machine et de dérouler l'exécution d'une séquence d'instructions simples en langage machine.

1. Architecture de Von Neumann

Le mathématicien a élaboré en 1944 la première description d'un ordinateur dont le programme est stocké dans sa mémoire. Son architecture comporte 4 éléments :

L'UAL ou unité de traitement effectue les opérations de base ; L'unité de contrôle est chargée du séquençage des opérations ; La mémoire contient les données et les instructions ; Les périphériques (entrées-sorties) communiquent avec l'extérieur.

2. Les constituants d'une tour d'ordinateur

Constituant et rôle Caractéristiques Photo
Le boitier d'alimentation convertit le 230 V alternatif en 12V ou 5V ou 3,3V ou 2,5V ou 1,8 V pour alimenter tous les composants de l'unité centrale.
  • Puissance (Watt)
image
La carte mère centralise tous les périphériques de l'unité centrale et la connectique. Le processeur y est directement rattaché.
  • Socket processeur
  • Format (ATX, mini-ITX, ...)
  • Connectique (SATA, USB, PCI, ...)
image
Le processeur est le cerveau de l'ordinateur. Il traite plusieurs milliards d'opérations par seconde.
  • Nombre de cœurs
  • Fréquence (GHz)
image
La mémoire RAM, très rapide mais volatile (provisoire), stocke les informations en cours de traitement par le processeur.
  • Capacité (Go)
  • Type (DDR, ...)
  • Fréquence (MHz)
image
Le disque dur stocke le système d'exploitation, les logiciels et les données de l'utilisateur.
  • Capacité (Go ou To)
  • Type (HDD, SSD, ...)
  • Fréquence (MHz)
image
La carte graphique (optionnelle) aide le processeur pour le calcul de l'image affichée à l'écran.
  • Mémoire (Mo ou Go)
image
Le lecteur ou graveur de disque (optionnel) peut lire ou écrire les données stockées sur un CD, un DVD ou un Blu-Ray.
  • Format supportés
  • Vitesse de lecture
  • Vitesse de gravure
image
Code source (modification) :
lot-105-1

lot-105-1

Mémorisation 0x - Réussite 0/0
Quels sont les éléments de l'architecture de Von Neumann ?
Cocher la ou toutes les bonnes réponses.

3. La carte mère

La carte mère est une carte de circuit imprimé qui est essentielle pour connecter tous les composants d'un ordinateur, aussi bien les composants internes que les périphériques externes via des ports .

3.1. Les connecteurs internes

  • Connecteurs d'alimentation : ces connecteurs permettent l'alimentation électrique de la carte mère et du processeurs depuis le boîtier d'alimentation.
  • Le socket CPU, également appelé emplacement processeur permet de connecter le processeur (CPU) à la carte mère.
  • Emplacements de mémoire RAM pour connecter des barrettes de mémoire vive à la carte mère.
  • Ports SATA pour connecter des disques durs et des lecteurs optiques internes.
  • Ports PCI pour brancher des cartes d'extension telles que des cartes son, vidéo, réseau, Wi-Fi, etc.
  • Connecteurs pour les boutons en façade : on/off et reset.
  • Connecteurs pour les LED en façade.
  • Connecteurs pour les ports USB en façade.
  • Emplacement pour la pile du BIOS (ou pile CMOS). Celle-ci permet de conserver les paramètres de configuration du BIOS, même lorsque l'ordinateur est éteint.
photo

3.2. Les connecteurs externes

Les périphériques permettent d'assurer la communication de l'ordinateur avec l'extérieur (clavier, écran, imprimante, réseau, carte d'acquisition, etc...).

photo
  • Ports USB : ces ports permettent de connecter différents périphériques USB, tels que des claviers, des souris, des disques durs externes, des imprimantes, des lecteurs de CD, etc.
  • Port Ethernet : ce port permet de connecter un ordinateur à un réseau local ou à Internet via un câble Ethernet.
  • Port audio (prise jack ou SPDIF) : ces ports permettent de connecter des haut-parleurs, des casques ou des microphones.
  • Port HDMI : ce port permet de connecter un moniteur ou un téléviseur.
  • Port VGA : ce port permet de connecter un moniteur ou un écran plus ancien.
  • Ports eSATA : ces ports sont utilisés pour connecter des disques durs externes.
  • Ports PCI et PCIe : ces ports sont des ports d'extension qui permettent d'ajouter des cartes d'extension, telles que des cartes graphiques, des cartes son, des cartes réseau, etc.

Il existe également d'autres ports moins courants que l'on peut trouver sur certaines cartes mères, tels que des ports FireWire, des ports PS/2 pour les claviers et souris plus anciens, des ports Thunderbolt, etc.

Code source (modification) :
521 522 520

521 522 520

Mémorisation 0x - Réussite 0/0/7
Repérer le port DVI ?
Cocher la ou toutes les bonnes réponses.

4. La mémoire

Une mémoire peut être vue comme une armoire où chaque tiroir contient une et une seule donnée.
Chaque tiroir est repéré par une adresse.
Elle contient les instructions du ou des programmes en cours d'exécution et les données associées à ce programme.

4.1. Les types de mémoires :

  • une mémoire morte (ROM = Read Only Memory) stocke un programme. C'est une mémoire à lecture seule.
  • une mémoire vive (RAM = Random Access Memory) stocke les données intermédiaires ou les résultats de calculs. On peut y lire et y écrire des données.
  • une mémoire volatile perd les informations lors de la mise hors tension au contraire d'une mémoire non-volatile.

4.2. Hiérarchie des mémoires

  • Les registres sont les mémoires les plus rapides car ils stockent les opérandes et les résultats des opérations effectuées par le processeur. Ils sont intégrés au processeur.
  • La mémoire cache est utilisée pour stocker temporairement les données les plus fréquemment utilisées par le processeur. Elle permet d'accélérer l'accès aux données en évitant de les récupérer à chaque fois depuis la mémoire principale. Elle est généralement intégrée directement sur le processeur.
  • La mémoire principale (mémoire vive) est l'espace principal de stockage du processeur. C'est une mémoire vive et volatile qui stocke les instructions des programmes et les données à utiliser. Elle est sur des barrettes de mémoire branchée sur la carte mère.
  • La mémoire de masse (mémoire de stockage) est une mémoire vive, non-volatile, périphérique et de grande capacité. Il s'agit des disques dur HDD ou SSD.
photo
Code source (modification) :
512 513 515

512 513 515

Mémorisation 0x - Réussite 0/0/3
Qu'est-ce qu'une mémoire morte ?
Cocher la bonne réponse.

5. Les bus

Les différents organes du système sont reliés par des voies de communication appelées bus.

Un bus est un ensemble de fils qui assure la transmission du même type d'information. Trois types de bus véhiculent des informations en parallèle dans un système de traitement programmé de l'information :

  • bus de données : il assure le transfert des informations entre le microprocesseur et son environnement ;
  • bus d'adresses : unidirectionnel qui permet la sélection des informations à traiter l'espace mémoire ;
  • bus de commande : il assure la synchronisation du système en étant le support du signal de l'horloge.
photo
Câble SATA
photo
nappe de connexion IDE
photo
Schéma d'un bus
Code source (modification) :
514

514

Mémorisation 0x - Réussite 0/0
Associer chaque bus à son rôle :
Le bus de données ...
Le bus de commande ...
Le bus d'adresses ...
Glisser-déposer pour former les bonnes paires.

6. Le processeur

6.1. Les composants d'un processeur

Le microprocesseur (Central Processing Unit : CPU) est chargé d'interpréter et d'exécuter les instructions d'un programme, de lire et de sauvegarder les résultats dans la mémoire. Il est composé par :

  • une horloge qui synchronise toutes les opérations ;
  • une unité de commande qui appelle les données et décode les instructions ;
  • une unité arithmétique et logique (UAL) qui effectue les calculs,
  • des registres qui stockent les opérandes et les résultats des calculs.

Chaque opération que peut effectuer un processeur est le résultat d'un circuit logique (circuit combinatoire) fait de portes logiques qui réalisent les fonctions élémentaires définies en algèbre de Boole : NON, ET et OU.

Les transistors sont des composants électroniques essentiels au fonctionnement d'un processeur. Plus un processeur possèdent de transistors, plus il sera capable d'effectuer des calculs.

Processeur (AMD)
Architecture CPU

6.2. Loi de Moore

La loi de Moore est une loi qui décrit que le nombre de transistors sur une puce électronique double environ tous les deux ans, ce qui entraîne une augmentation exponentielle de la performance et une diminution du coût des ordinateurs. Elle a été formulée par Gordon E. Moore, cofondateur d'Intel, en 1965.


photo

6.3. Exécution d'une instruction par le processeur

photo
Recherche de l'instruction à traiter dans la mémoire :
  1. Le PC (Program Counter) contient l'adresse de la première instruction du programme. Cette valeur est placée sur le bus d'adresses pour émettre un ordre de lecture.
  2. Au bout d'un certain temps (temps d'accès à la mémoire), le contenu de la case mémoire demandée est disponible sur le bus des données.
  3. L'instruction est stockée dans le RI (Registre Instruction) du processeur qui contient maintenant l'opération à effectuer (addition, ...) et les opérandes nécessaires.
photo
Décodage de l'instruction :
  1. L'instruction est découpée en une suite de commandes élémentaires par l'unité de commande qui les transmet à l'unité de calcul (UAL).
  2. Si l'instruction nécessite une donnée en provenance de la mémoire, sa valeur est ordonnée sur le bus d'adresses et récupérée sur le bus de données.
  3. L'opérande est stockée dans un registre.
photo
Exécution de l'instruction :
  1. L'instruction est exécutée par l'unité de calcul (UAL) et le résultat est stocké dans un registre.
  2. L'unité de commande inscrit l'adresse de la prochaine instruction à traiter dans le PC.

Un jeu d'instruction est un ensemble d'opérations élémentaires que le microprocesseur exécute. Il est capable de réaliser seulement trois types d'instruction :

  • Transfert de données depuis ou vers la mémoire ou entre deux registres.
  • Opérations arithmétiques : addition, soustraction, division, multiplication
  • Opérations logiques : ET, OU, NON, comparaison, test, etc...

Chaque instruction nécessite un certain nombre de cycles d'horloges pour s'effectuer : c'est le temps d'exécution. Il est dépendant de la complexité de l'instruction.

Code source (modification) :
519 524 516

519 524 516

Mémorisation 0x - Réussite 0/0
Que peut faire un processeur ?
Cocher la ou toutes les bonnes réponses.

6.4. Langage machine et langage assembleur

  • Le langage machine (binaire) est directement exécutable par le microprocesseur.
  • Le langage assembleur est le plus proche du langage machine. Il est une représentation symbolique du binaire en utilisant des mnémoniques. Sa traduction en langage machine par un assembleur est appelée l'assemblage.
  • Les autres langages (de plus ou moins haut niveau selon leur proximité avec le langage humain) sont plus compréhensibles mais ne peuvent pas être exécutés directement par le processeur.
    Ils peuvent être classés en deux catégories :
    • Les langages compilés : qui doivent être compilés (compilation) en langage machine avant de pouvoir être exécutés, comme C, C++, Rust ou Go.
    • Les langages interprétés : qui sont compilés à la volée en langage machine pendant leur exécution (interprétation) par un interpréteur comme Python, JavaScript, Ruby ou PHP.
Code source (modification) :
518 517

518 517

Mémorisation 0x - Réussite 0/0/3
Quel langage compréhensible est la traduction exacte du langage machine ?
Cocher la bonne réponse.

Pour comprendre le principe de l'exécution d'un programme par un processeur écrit en langage d'assemblage (Assembleur), nous allons utiliser un logiciel de simulation développé en JavaScript par Pierre Boudes : AMIL et modifié par nos soins.

Accéder au simulateur

Le code source du simulateur est disponible ici : AMIL.7z

  1. Ouvrir le simulateur.
  2. Décrire l'action de chacune des lignes d'instruction du programme suivant en vous aidant de l'aide mise à disposition et présentant toutes les mnémoniques :
    JMP 3      ; saute à la ligne 3
    7          ; donnée de l'utilisateur
    ?          ; espace réservé pour le résultat
    WR 5 r1    ; 1er instruction du programme
    MOV 1 r0   ; ...
    SUB r1 r0
    WR 1 r2
    JP r0 9
    WR 0 r2
    MOV r2 2   ; ...
    STOP       ; fin du programme
    JMP 3      ; saute à la ligne 3
    7          ; donnée de l'utilisateur
    ?          ; espace réservé pour le résultat
    WR 5 r1    ; écrit l'entier 5 dans le registre 1
    MOV 1 r0   ; déplace la valeur ligne 1 de la mémoire dans le registre 0
    SUB r1 r0  ; soustrait la valeur du registre 1 à celle du registre 0
    WR 1 r2    ; écrit l'entier 1 dans le registre 1
    JP r0 9    ; saute à la ligne 9 si la valeur du registre 0 est positive
    WR 0 r2    ; écrit l'entier 0 dans le registre 1
    MOV r2 2   ; déplace la valeur du registre 2 dans la ligne 2 de la mémoire
    STOP       ; fin du programme
  3. Modifier la valeur de la donnée de l'utilisateur (ligne 1) de la mémoire et trouver à quelle question répond ce programme sachant que le résultat 0 code pour FAUX et 1 code pour VRAI.
    Ce programme répond à la question : Est-ce plus grand ou égal à 5 ?
Code source (modification) :
565 lot-106-3

565 lot-106-3

Mémorisation 0x - Réussite 0/0/2
Quelle commande Assembleur permet d'implémenter une boucle ?
Cocher la bonne réponse.
Écrire un programme qui convertit des degrés Fahrenheit (c'est une donnée) en degré Celsius : °C = (°F-32)×5/9
Écrire un programme qui renvoie la valeur maximale parmi trois données.
Écrire un programme qui calcule le nième terme de la suite de Fibonacci : 1, 1, 2, 3, 5, 8, 5+8=13, etc …