Vous êtes sur la page 1sur 13

Année académique 2022/2023

Spécialités : Génie Logiciel (GLO) - Réseau et sécurité (RES) – Télécommunications (TEL)


Niveau : 1
Cours : Architecture des ordinateurs

Chapitre I :
Architecture d’un processeur de traitement

I. Qu’est-ce qu’un processeur ?

Un processeur (ou unité centrale de traitement, UCT ou en anglais central


processing unit, CPU) est un composant électronique chargé de traiter les
informations et d’exécuter les instructions machine (langage
binaire) des programmes informatiques.

Le processeur est le cerveau de l'ordinateur. Son rôle est d’organiser les échanges
de données entre les différents composants (disque dur, mémoire RAM, carte
graphique) et de faire les calculs qui permettent à l’ordinateur interagir avec
l’utilisateur et d’afficher le système d’exploitation à l’écran.

Jusqu'à aujourd'hui, tous les micro-processeurs conçus s'organisent globalement


de même façon. Ils peuvent être décomposés en quatre composants décrits par le
modèle de Von Neumann.

II. Description d’un processeur

On trouve au sein d’un processeur :

a. Des unités de mémorisation

Cette unité est constituée de registres et de mémoires caches.

1|Page
Un registre est une zone mémoire rapide, servant au stockage temporaire des
données en cours de traitement par l'unité centrale. Un plus grand nombre de
registres permettra au processeur d'être plus indépendant de la mémoire.

Les mémoires caches quant à elle permettent d'accélérer les traitements des
instructions en diminuant les accès à la mémoire vive. Il existe :

- le cache d'instructions : reçoit les prochaines instructions à exécuter ;

- le cache de données : manipule les données ;

- le cache unifié : utilisé pour les instructions et les données.

b. Des unités de calcul

L’unité de calcul est constituée de plusieurs sous-ensemble :

- l’unité Arithmétique et Logique (UAL, ALU), qui gère les calculs sur les entiers
et opérations booléennes ;

- l’unité de calcul flottant : (FPU - Floating Point Unit), qui effectue les calculs
les flottants : sqr, sin, ...

- l’unité multimédia, qui gère le calcul vectoriel (même instruction sur


plusieurs donnée en parallèle).

Figure 1 : Schéma d’une unité de traitement

c. Des unités de contrôle/commande

Cette unité est responsable de la recherche des instructions à partir de la


mémoire centrale et du décodage de leur type. Elle est aussi appelé séquenceur
et fait office d’outil de communication entre les périphériques et la mémoire.

Cette unité est constituée :

- d’une horloge qui permet la synchronisation des éléments et des


évènements ;

2|Page
- d’un décodeur qui détermine les opérations à exécuter en fonction du
code de l’instruction ;

- d’un séquenceur qui déclenche et coordonne les différentes opérations


pour réaliser l’instruction.

Figure 2 : Schéma théorique de fonctionnement de l’unité de contrôle

d. Des unités d'entrées/sorties

Ils permettent à l'ordinateur de communiquer avec l'extérieur. Les périphériques


d’entrées sont des composants électroniques qui se chargent de traduire des
informations venant de l’extérieur en binaire (le clavier, la souris, etc). Les
périphériques de sortie sont de composant électroniques qui transforme une suite
binaire en une information compréhensible par les utilisateurs (imprimante, écran
ordinateur, etc).

III. Registres internes

Les registres internes font partie des unités de mémorisation d’un CPU. Un registre
est une zone mémoire rapide, servant au stockage temporaire des données en
cours de traitement par l'unité centrale. Un plus grand nombre de registres
permettra au processeur d'être plus indépendant de la mémoire centrale. Il existe
plusieurs registres :

- le registre d’instruction RI : permet de stocker l’instruction qui doit être


exécutée ;

- le compteur programme PC : stocke l’adresse de la prochaine instruction à


exécuter ;

3|Page
- le registre d’états RE : permet de stocker des indicateurs sur l’état du système
après l’exécution d’une instruction ;

- le registre d’adresse RA : contient l’adresse de la donnée à lire ou à écrire en


mémoire ;

- le registres de données RD : contient temporairement la donnée lue ou à


écrire en mémoire ;

- le registre d’index XR (utilisé dans le mode d’adressage indexé) : l’adresse est


obtenue en ajoutant son contenu à l’adresse contenue dans l’instruction ;
peut-être incrémenter/décrémenter automatiquement après son utilisation ;

- le registre de base RB : contient l’adresse (le numéro de segment) à ajouter


aux adresses (relatives) contenues dans les instructions.

IV. Compteur ordinal

Le compteur ordinal (en anglais : program counter) est le registre du processeur


qui contient l'adresse mémoire de l'instruction en cours d'exécution. Une fois
l'instruction chargée, il est automatiquement incrémenté pour pointer vers
l'instruction suivante. Le compteur ordinal est souvent appelé pointeur d'instruction
(en anglais : instruction pointer).

Les instructions de branchement ou d'appel et retour de sous-programmes


permettent de choisir une autre adresse pour influer sur le déroulement du
programme informatique. Elles permettent ainsi de charger (écrire) des valeurs
arbitraires dans le compteur ordinal.

V. Bus

Dans un ordinateur, le bus désigne l'ensemble des lignes de communication


connectant les différents composants. Il s’agit d’un groupement de conducteurs
électriques permettant une connexion physique et le transport de signaux entre les
différents composants de l’ordinateur.

Les bus sont situés à l'intérieur d'un même ordinateur et permettent de connecter
les différentes parties fonctionnelles de cet ordinateur entre elles. Lorsqu'un bus peut
transmettre plus d'un bit d'information simultanément on parlera d'un bus parallèle,
sinon d'un bus série.

4|Page
En réalité on distingue trois (03) principaux sous-ensembles fonctionnels :

- Le bus d'adresses (appelé parfois bus d'adressage ou bus mémoire). Il


transporte les adresses mémoire auxquelles le processeur souhaite accéder
pour lire ou écrire une donnée. Il s'agit d'un bus unidirectionnel.

- Le bus de données véhicule les instructions en provenance ou à destination


du processeur. Il s'agit d'un bus bidirectionnel.

- Le bus de contrôle (parfois bus de commandes) transporte les ordres et les


signaux de synchronisation en provenance de l'unité de commande et à
destination de l'ensemble des composants matériels. Il s'agit d'un bus
directionnel dans la mesure où il transmet également les signaux de réponse
des éléments matériels.

On distingue généralement sur un ordinateur deux principaux bus :

- le bus système ou bus interne : il relie le microprocesseur à la mémoire vive ;

- le bus d’extension ou bus d’entrées/sorties : il relie le microprocesseur aux


connecteurs d’entrées/sorties et aux connecteurs d’extension.

Exemple de cas d'utilisation

Deux bus distincts sont utilisés lors de la lecture/écriture de la mémoire vive par un
processeur : un bus de données et un bus d'adresse. Le bus d'adresse est utilisé pour
sélectionner les cellules mémoires qui doivent être lues ou écrites, le bus de données
servant à transmettre le contenu de la mémoire elle-même.

VI. Cycles d’instruction

L'exécution d'une instruction par l'unité centrale s'effectue selon les étapes
suivantes :

1- Récupérer (en mémoire) l’instruction à exécuter : RI ← Mémoire [PC].

L’instruction à exécuter est présente en mémoire à l’adresse contenue dans


le compteur de programme PC et est placée dans le registre d’instruction
RI.

2- Le compteur de programme est incrémenté : PC ← PC + 4

5|Page
Par défaut, la prochaine instruction à exécuter sera la suivante en mémoire
(sauf si l’instruction est un saut). Pour cet exemple nous avons choisi PC + 4,
on suppose donc que les instructions sont codées sur 4 octets.

L’instruction est décodée : On identifie les opérations qui vont devoir être
réalisées pour exécuter l’instruction

L’instruction est exécutée : elle peut modifier les registres (opérations


arithmétiques - lecture en mémoire), la mémoire (écriture), le registre PC
(instructions de saut)

De manière générale, on distingue :

Le cycle de recherche :

- On récupère dans RI l’instruction à exécuter (celle à l’adresse contenue


dans PC) ;

- On incrémente de compteur ordinal PC.

Plus finement, on utilise les registres d’adresses et de données.

Le cycle d’exécution :

- On décode l’instruction ;

- On lit les adresses et les registres nécessaires à l’instruction ;

- On détermine que faire pour cette instruction ;

- Le faire (ou le faire faire) (utilisation d’une unité de calcul).

VII. Code opération

Le code opération (en anglais, opcode ou operation code) est la partie d'une
instruction en langage machine qui spécifie l'opération à effectuer. Chaque
instruction est composée d'un ou plusieurs champs :

Code operation Operandes

- Le premier est appelé « opcode » : il désigne le type d'opération réalisée par


l'instruction

Opération arithmétique, branchement, etc.

6|Page
- Les autres champs, optionnels : ils spécifient les opérandes de l'instruction

Registres source et destination des données à traiter, Adresse mémoire des


données à lire ou écrire, etc.

VIII. Modes d’adressage

Dans une architecture d’ordinateur, les modes d'adressage régissent la façon


dont les instructions en langage machine identifient leurs opérandes. Un mode
d'adressage spécifie la façon dont est calculée l'adresse mémoire effective d'un
opérande à partir des valeurs contenues dans des registres et de constantes
contenues dans l'instruction.

Comment interpréter Operandes pour trouver les données de l’instruction Code


operation ?

- adressage implicite : l’instruction opère sur une donnée qui se trouve à un


emplacement précis et déterminé du processeur (par exemple
l’accumulateur). Dans ce cas, il n’est pas nécessaire de spécifier l’adresse du
registre en question.

- adressage par registres : Operandes contient le(s) numéro(s) du (des)


registre(s) où se trouvent les données manipulées par l’instruction.

- adressage direct (ou direct restreint) : Operandes est l’adresse (ou un


fragment de l’adresse) où se trouve la donnée en mémoire.

- adressage relatif : Operandes contient un déplacement relatif par rapport à


une adresse qui se trouve dans un registre précis (par exemple, le compteur
ordinal P C).

- adressage indirect : Operandes contient le numéro d’un registre dont le


contenu est l’adresse où se trouve la donnée en mémoire.

- adressage (indirect) indexé : Operandes contient le numéro d’un registre


contenant une adresse a. La donnée est en mémoire à l’adresse a+i, o`u i est
le contenu d’un autre registre dans Operandes ou d’un registre spécifique,
appellé registre d’index

- adressage immédiat : Operandes est la valeur utilisée par l’instruction.

7|Page
IX. Chemin des données

Le chemin de donnée est l'ensemble des composants dans lesquels circulent les
données dans le processeur. Il comprend l'unité de calcul/traitement, les registres,
l'unité de communication avec la mémoire, et le ou les bus.

La plupart des processeurs sont composés d'un chemin de données et d'un


séquenceur. Le séquenceur a pour rôle de commander le chemin de données et
réguler ses interactions avec la mémoire vive.

X. Mémoire centrale

C’est quoi une mémoire ?

Tout d’abord, une mémoire est un dispositif capable d'enregistrer une


information, de la conserver (mémoriser), et de la restituer (possible de la lire ou la
récupérer par la suite). elle peut être située dans le processeur (des registres) , en
interne à l’UC (Mémoire centrale ou principale) ou
externe (Mémoire secondaire). Exemple de mémoire : La mémoire centrale, Un
disque dur, Une disquette, Un flash disque.

Une mémoire est caractérisée par :

- sa capacité (taille) : c’est la quantité d’informations qu’on peut mémoriser


dans cette mémoire. Elle peut s’exprimer en bit ou en octet ;

- sa volatilité : perte de son contenu (les informations) lorsque la sources


d’alimentation est coupée (mémoire volatile). Dans le cas contraire elle est
dite non volatile (mémoire permanente ou stable).

- son mode d’accès à l’information : possibilité d’effectuer les opérations de


lecture et/ou écriture). Les mémoires qui offrent les deux modes
lecture/écriture sont appelées mémoires vives. Celle qui offrent uniquement la
possibilité de la lecture sont appelées mémoires mortes.

- son temps d’accès : c’est le temps nécessaire pour effectuer une opération
de lecture ou d’écriture.

8|Page
C’est quoi une mémoire centrale ?

La mémoire centrale représente l’espace de travail de l’ordinateur. Les


programmes y sont chargés par le processeur pour être exécutées. C’est aussi
l’organe principal de rangement des informations utilisées par le processeur.

Le temps d’accès à la mémoire centrale et sa capacité sont deux éléments qui


influent sur le temps d’exécution d’un programme (performance d’une machine).

Caractéristiques de la mémoire centrale

- La mémoire centrale est réalisé à base de semi-conducteurs.

- La mémoire centrale est une mémoire vive : accès en lecture et écriture.

- La mémoire centrale est dite à accès aléatoire (RAM : Random Acces


Memory) c'est-à-dire que le temps d'accès à l'information est indépendant de
sa place en mémoire.

- La mémoire centrale est volatile : la conservation de son contenu nécessite la


permanence de son alimentation électrique.

- Un temps d’accès à une mémoire centrale est moyen mais plus rapide que
les mémoires magnétiques.

- La capacité d’une mémoire centrale est limitée mais il y a toujours une


possibilité d’une extension.

- Pour la communication avec les autres composants de l’ordinateur, la


mémoire centrale utilise les bus (bus d’adresses et bus de données)

Types des mémoires centrales

Il existe deux grandes familles des mémoires centrales : les mémoires statiques
(SRAM) et les mémoires dynamiques (DRAM).

- Les mémoires statiques : elle est beaucoup plus rapide et est utilisée
notamment dans les processeurs comme mémoire cache, ce qui permet
d'augmenter les performances du processeur en réduisant les temps d'accès
aux données.

9|Page
- Les mémoires dynamiques : elle est utilisée comme mémoire centrale de
l'ordinateur pour y stocker les programmes en cours d'exécution. Le temps
d’accès plus long.

XI. L’architecture de Von Neumann et l'architecture de Harvard

Selon l'organisation de la mémoire, vous pouvez distinguer les deux familles de


processeurs suivants :

- L’architecture de von Neumann est un modèle pour un ordinateur qui utilise


une structure de stockage unique pour conserver à la fois les instructions et les
données demandées ou produites par le calcul. De telles machines sont aussi
connues sous le nom d’ordinateur à programme enregistré. La séparation
entre le stockage et le processeur est implicite dans ce modèle.

Figure 3 : Schéma de l'architecture de Von Neumann.

- Avec l'architecture de Harvard, où les données et les instructions se trouvent


dans deux mémoires séparées. C’est une conception des processeurs qui
sépare physiquement la mémoire de données et la mémoire programme.
L’accès à chacune des deux mémoires s’effectue via deux bus distincts. Cette
architecture peut offrir de meilleures performances car les deux mémoires
peuvent fonctionner en parallèle, mais il est évidemment beaucoup plus
complexe à gérer.

10 | P a g e
Figure 4 : Schéma de l'architecture Harvard

XII. Architecture CISC et l'architecture RISC

12.1. Architecture CISC

CISC signifie Complex Instruction Set Computer (En français, ordinateur avec jeu
d'instructions complexes). Cette architecture est utilisée par tous les processeurs de
type x86, c'est-à-dire les processeurs fabriqués par Intel, AMD, Cyrix, ...

Les processeurs basés sur l'architecture CISC peuvent traiter des instructions
complexes, qui sont directement câblées sur leurs circuits électroniques, c'est-à-dire
que certaines instructions difficiles à créer à partir des instructions de base sont
directement imprimées sur le silicium de la puce afin de gagner en rapidité
d'exécution sur ces commandes.

L'inconvénient de ce type d'architecture provient justement du fait que des


fonctions supplémentaires sont imprimées sur le silicium, d'où un coût élevé. D'autre
part, les instructions sont de longueurs variables et peuvent parfois prendre plus d'un
cycle d'horloge ce qui les rend lentes à l'exécution étant donné qu'un processeur
basé sur l'architecture CISC ne peut traiter qu'une instruction à la fois.

12.2. Architecture RISC

RISC signifie Reduced Instruction Set Computer, dont la traduction en français est
« Ordinateur à jeu d'instructions réduit ».

Contrairement à l'architecture CISC, un processeur utilisant la technologie RISC


n'a pas de fonctions supplémentaires câblées. Cela impose donc des programmes
ayant des instructions simples interprétables par le processeur. Cela se traduit par
une programmation plus difficile et un compilateur plus puissant.

11 | P a g e
Cependant vous vous dîtes qu'il peut exister des instructions qui ne peuvent pas
être décrites à partir des instructions simples... En fait ces instructions sont tellement
peu nombreuses qu'il est possible de les câbler directement sur le circuit imprimé
sans alourdir de manière dramatique leur fabrication.

L'avantage d'une telle architecture est bien évidemment le coût réduit au niveau
de la fabrication des processeurs l'utilisant.

De plus, les instructions, étant simples, sont exécutées en un cycle d'horloge, ce


qui rend l'exécution des programmes plus rapides. De plus, de tels processeurs sont
capables de traiter plusieurs instructions simultanément.

XIII. Le coprocesseur

13.1. Qu’est-ce qu’un coprocesseur ?

Le coprocesseur est un type de processeur qui se distingue comme auxiliaire à


un autre processeur. La fonction du coprocesseur est d'alléger la charge de travail
du processeur.

Le coprocesseur est souvent un processeur optimisé et formé à l'utilisation d'un


traitement spécial afin d'être plus efficace dans les tâches qui lui sont confiées. Par
exemple, dans les ordinateurs moderne, la CPU est souvent accompagné de
processeurs auxiliaires tels que le GPU et FPU.

Les opérations effectuées par le coprocesseur peuvent être des calculs virgule
flottante, fonctions graphiques, gestion signaux, le traitement des données ou des
fonctions cryptographiques. En soulageant le processeur principal des tâches les
plus exigeantes, les coprocesseurs peuvent accélérer les performances d'un
système. Alors que le processeur principal est conçu pour exécuter tout type de
programme, un coprocesseur est spécialisé dans l’exécution rapide d'un type de
calcul particulier.

Un coprocesseur ne peut pas fonctionner comme un processeur. Par exemple,


il ne peut pas exécuter des instructions dans la mémoire, ou exécuter les instructions
de commande de flux de programme ou des opérations d'entrée/sortie, ou gérer
la mémoire. Dans certaines architectures, le coprocesseur est un ordinateur à usage
général, mais mis à s'engager que dans certaines fonctions limitées sous le contrôle
direct du processeur qui supervisent les tâches.
12 | P a g e
Exemples de coprocesseurs :

- Intel (8087, 80287, 8086, etc) ;

- Motorola (68000, 68881, 68882, etc) ;

- FPGA (Réseaux de portes programmables par champ) sont coprocesseurs


personnalisable, qui peuvent être programmés pour effectuer une tâche ;

- Les accélérateurs TLS/SSL Ils sont utilisés sur serveur pour les connexions
cryptées.

13.2. Types de coprocesseur

13.2.1. Coprocesseur mathématique

Le coprocesseur mathématique est optimisé et spécialisé


dans les calculs mathématiques. Les premiers coprocesseurs
mathématiques de l'histoire sont des composants séparés de la
centrale. Aujourd'hui, normalement, le coprocesseur
mathématique et l'unité centrale de traitement sont intégrés
Coprocesseur Motorola
dans le même microprocesseur. Actuellement, le type le plus
répandu de coprocesseur mathématique est l 'unité à virgule
flottante (FPU), spécialisée dans le calcul des nombres à virgule
flottante.

13.2.2. Graphics Processing Unit

L'unité de traitement graphique (Mieux connu sous l'acronyme


emprunté à la langue anglaise « GPU ») est un coprocesseur
optimisé et spécialisé dans interprétation graphiques.

GPU NVIDIA
Exemples : Matrox, PowerVR, 3dfx, nVIDIA, etc.

13.2.3. Contrôleur de périphérique

Le contrôleur de dispositif ou entrée/sortie du processeur est un coprocesseur


utilisé pour la gestion d'un ou plusieurs périphériques. La présence du contrôleur de
dispositif évite ainsi que l'unité centrale de traitement connaisse un ralentissement.

13 | P a g e

Vous aimerez peut-être aussi