0% ont trouvé ce document utile (0 vote)
19 vues18 pages

Resumé Architecture Des Ordinateurs

Le document décrit les types de bus de données (séries et parallèles) et leur rôle dans la communication entre composants d'un ordinateur. Il aborde également les registres, leur classification, et la mémoire informatique, en détaillant la mémoire centrale, la mémoire vive (RAM), la mémoire morte (ROM) et la mémoire cache. Enfin, il explique les caractéristiques de la mémoire, les modes d'accès, et les opérations de lecture et d'écriture.

Transféré par

amani amani
Copyright
© © All Rights Reserved
Nous prenons très au sérieux les droits relatifs au contenu. Si vous pensez qu’il s’agit de votre contenu, signalez une atteinte au droit d’auteur ici.
Formats disponibles
Téléchargez aux formats DOCX, PDF, TXT ou lisez en ligne sur Scribd
0% ont trouvé ce document utile (0 vote)
19 vues18 pages

Resumé Architecture Des Ordinateurs

Le document décrit les types de bus de données (séries et parallèles) et leur rôle dans la communication entre composants d'un ordinateur. Il aborde également les registres, leur classification, et la mémoire informatique, en détaillant la mémoire centrale, la mémoire vive (RAM), la mémoire morte (ROM) et la mémoire cache. Enfin, il explique les caractéristiques de la mémoire, les modes d'accès, et les opérations de lecture et d'écriture.

Transféré par

amani amani
Copyright
© © All Rights Reserved
Nous prenons très au sérieux les droits relatifs au contenu. Si vous pensez qu’il s’agit de votre contenu, signalez une atteinte au droit d’auteur ici.
Formats disponibles
Téléchargez aux formats DOCX, PDF, TXT ou lisez en ligne sur Scribd

2.4.

3 Types de bus de données

1. Bus séries :
o Transmettent les bits séquentiellement sur une seule ligne, ce qui est utile pour
les longues distances. Exemples : USB, SATA.
2. Bus parallèles :
o Transmettent plusieurs bits simultanément sur plusieurs lignes, adaptés aux
courtes distances comme entre le processeur et la mémoire. Exemple : PATA.

2.4.4 Principaux bus dans un ordinateur

1. Bus système (Front-Side Bus, FSB) :


o Ce bus interne relie le processeur à la mémoire centrale (RAM), permettant le
transfert rapide des données entre le processeur et la mémoire.
2. Bus d'extension :
o Permet aux composants connectés à la carte mère (ex. : périphériques USB,
cartes PCI) de communiquer entre eux et d’ajouter de nouveaux périphériques
grâce aux connecteurs d'extension (slots).

Remarque

La performance d'un bus dépend de sa largeur (nombre de bits transportés simultanément) et


de l'électronique (chipset) qui le pilote.

Les Registres

Les registres sont de petites mémoires rapides (de 8, 16, 32, ou 64 bits) dans le processeur, où
les données en cours de traitement sont temporairement stockées. Leur nombre peut varier de
quelques dizaines à plusieurs centaines selon le type de processeur.

Il existe deux catégories principales de registres :

a. Registres visibles par l’utilisateur

Ces registres sont accessibles et manipulables par le programmeur pour diverses opérations.
Ils se divisent en plusieurs types :

1. Registres de données : stockent les données pour les opérations en cours, mais ne
sont pas utilisés pour les calculs d’adresses.
2. Registres d’adresses : contiennent des adresses ou des valeurs de base pour des
calculs d’adressage particulier (comme les index).
3. Registres de condition (ou flags) : composés de bits qui indiquent l’état des
opérations (par exemple, résultat nul, signe, etc.).
4. Autres registres : sans fonction spécifique particulière.

Certains registres particuliers incluent :

 Registre accumulateur (ACC) : stocke les résultats des opérations arithmétiques et


logiques.
 Registres arithmétiques : dédiés aux opérations arithmétiques (addition, soustraction)
et logiques (AND, OR).
 Registres d’index : stockent l'index d’un tableau pour calculer des adresses.
 Registre pointeur : pointe vers une pile ou son sommet.
 Registres spécialisés : pour des opérations spécifiques comme le décalage ou les
calculs en virgule flottante.

b. Registres de contrôle et de statut

Ces registres ne sont pas directement visibles par le programmeur. Ils sont utilisés par l’unité
de commande pour gérer le fonctionnement interne du processeur et l’échange de données
avec la mémoire principale. Les principaux registres de contrôle incluent :

1. Compteur ordinal (CO ou PC) : contient l’adresse de la prochaine instruction à


exécuter.
2. Registre d’instruction (RI ou IR) : stocke l’instruction en cours de traitement.
3. Registre d’adresse mémoire (MAR) : contient l’adresse mémoire à laquelle le
processeur souhaite accéder.
4. Registre tampon mémoire (MBR) : stocke temporairement les données lues ou à
écrire en mémoire, connecté au bus de données.

Registre de statut (PSW - Processor Status Word)

Le registre d'état contient des indicateurs sur l'état du système, notamment des informations
de statut en fonction des résultats des opérations (comme les indicateurs de retenue et de
dépassement). Ces indicateurs sont utilisés pour adapter les opérations futures selon les
résultats obtenus.

Mémoire informatique
Un ordinateur a deux caractéristiques essentielles qui sont la vitesse à laquelle il peut traiter
un grand nombre d’informations et la capacité de mémoriser ces informations. Onappelle «
mémoire » tout dispositif capable d’enregistrer, de conserver aussi longtemps que possible et
de les restituer à la demande. Il existe deux types de mémoire dans un système informatique :
La mémoire d'un ordinateur est essentielle pour traiter et stocker des informations. Elle se
divise en deux types principaux :

1. Mémoire centrale (ou interne) : Utilisée pour le stockage temporaire de données et


de programmes durant l'exécution. Elle est rapide, compacte mais coûteuse et
constitue la mémoire de travail de l’ordinateur.
2. Mémoire de masse (ou externe) : Permet le stockage à long terme même lorsque
l’ordinateur est éteint. Elle est plus lente, volumineuse, mais abordable et sert de
mémoire de sauvegarde.

Caractéristiques de la mémoire

Les caractéristiques principales d’une mémoire incluent :

 Capacité : Quantité d’informations stockables (en bits ou octets).


 Format des données : Nombre de bits stockables par case mémoire (largeur du mot).
 Temps d'accès (Ta) : Intervalle entre la demande de lecture/écriture et la disponibilité
des données.
 Temps de cycle (Tc) : Temps minimal entre deux accès successifs, avec Tc > Ta.
 Débit (bande passante) : Quantité de données transférées par seconde.
 Non-volatilité : Capacité à conserver les données sans alimentation.

Modes d’accès à la mémoire

1. Accès direct ou aléatoire : Accès rapide via une adresse unique ; utilisé pour la
mémoire vive et les caches.
2. Accès associatif : Recherche par le contenu plutôt que par adresse, utilisé
principalement dans les mémoires caches.
3. Accès semi-direct (semi-séquentiel) : Combinaison de l'accès direct et séquentiel ;
fréquent pour les disques.

Remarques

 Accès direct : Similaire à l'accès à une case d'un tableau.


 Accès semi-séquentiel : Direct vers la piste, suivi d’un accès séquentiel au secteur
(ex. : disques magnétiques).
 Accès séquentiel : Le plus lent, comme pour les bandes magnétiques ; chaque donnée
précédente doit être parcourue avant d'atteindre la donnée cible.

Mémoire centrale (MC)

La mémoire centrale (ou mémoire vive) est l'espace de travail principal de l'ordinateur, où
sont stockées les informations nécessaires pour le processeur pendant l'exécution d’un
programme. La performance de l'ordinateur dépend en grande partie de la capacité de cette
mémoire et de son temps d'accès.

Types de mémoire

Les mémoires de la mémoire centrale sont des semi-conducteurs et utilisent un mode d'accès
aléatoire. Elles peuvent être :
 Volatiles : perdent leurs données lorsque l'ordinateur est éteint.
 Non volatiles : conservent les données même sans alimentation.

2.7.1 Organisation de la mémoire centrale

La mémoire centrale est composée de circuits élémentaires appelés bits (binary digits) qui
peuvent être dans deux états (0 ou 1). Les informations sont donc représentées en binaire, sous
forme de mots mémoire.

1. Structure :
o La mémoire est organisée en cellules appelées mots mémoire, chacune
pouvant stocker un élément. Chaque mot est constitué d'un certain nombre de
bits : 8 bits (octet), 16 bits, 32 bits, etc.
o Chaque mot est identifié par une adresse unique, qui permet au processeur d’y
accéder.
2. Capacité de stockage :
o La capacité de la mémoire dépend du nombre de mots qu’elle peut contenir et
de la taille des mots.
o Avec une adresse de nnn bits, il est possible de référencer 2n2^n2n cases
mémoire. Par exemple, une adresse de 16 bits permet de référencer
2162^{16}216 (ou 65 536) cases mémoire.
o Formule de capacité : Capaciteˊ=2n×m bits\text{Capacité} = 2^n \times m \
text{ bits} Capaciteˊ=2n×m bits où mmm est la taille du mot.
3. Exemple :
o Si une mémoire contient 8 mots de 16 bits, sa capacité est de 8×16=1288 \
times 16 = 1288×16=128 bits ou 16 octets.

Exercices

1. Exercice 1 : Calcul de capacité


o Pour une mémoire de 8 mots de 16 bits, la capacité est :
8×16=128 bits ou 16 octets8 \times 16 = 128 \text{ bits} \text{ ou } 16 \
text{ octets}8×16=128 bits ou 16 octets
2. Exercice 2 : Avec un bus d’adresses de 16 bits et un bus de données de 8 bits, la
capacité est :

216×8=219 bits=128 Ko2^{16} \times 8 = 2^{19} \text{ bits} = 128 \


text{ Ko}216×8=219 bits=128 Ko

Remarques

 Un mot de nnn bits peut avoir 2n2^n2n combinaisons différentes.


 Les unités de stockage sont souvent exprimées en puissances de 2 :
o Kilo : 1 K=2^{10}
o Méga : 1 M=2^{20}
o Giga : 1 G=2^{30}
o Téra : 1 T=2^{40}
o Péta : 1 P=2^{50}
Mémoire vive (RAM)

La mémoire vive (RAM, pour Random Access Memory) est une mémoire temporaire, volatile
et modifiable, utilisée pour stocker les données et programmes nécessaires au fonctionnement
de l’ordinateur. Elle est caractérisée par un temps de cycle très court pour ne pas ralentir le
processeur, mais perd toutes les informations en cas de coupure d’alimentation.

Types de mémoires RAM

Il existe deux principaux types de mémoires RAM :

a. Mémoire statique (SRAM)

 La SRAM (Static RAM) utilise des bascules de transistors (1 bit = 4 transistors) et ne


nécessite pas de rafraîchissement constant.
 Elle est très rapide (6 à 15 ns) et coûteuse, ce qui la rend idéale pour des mémoires de
faible capacité, comme la mémoire cache.
 Elle est également appelée mémoire adressable et est utilisée dans des applications
nécessitant une grande rapidité.

b. Mémoire dynamique (DRAM)

 La DRAM (Dynamic RAM) se base sur un condensateur et un transistor par bit (1 bit
= 1 transistor + 1 condensateur).
 Elle nécessite un rafraîchissement fréquent car les condensateurs se déchargent
progressivement, ce qui peut ralentir les performances.
 Moins coûteuse, elle est principalement utilisée comme mémoire centrale de
l'ordinateur.

Variantes de la DRAM

1. SDRAM (Synchronous DRAM) : fonctionne en synchronisation avec le bus


mémoire, à la même vitesse que le processeur.
2. DDR SDRAM (Double Data Rate SDRAM) : envoie et reçoit les données deux fois
par cycle d'horloge, augmentant le débit.
3. VRAM (Video RAM) : possède deux ports pour permettre un accès simultané en
lecture et en écriture, utilisée principalement pour le stockage graphique.
4. DIMM (Dual In-line Memory Module) : module de mémoire de 64 bits, monté sur
un circuit imprimé pour être installé sur la carte mère.
5. SIMM (Single In-line Memory Module) : similaire à DIMM mais en 32 bits.
6. Mémoire Flash : basée sur la technologie EEPROM, elle est couramment utilisée
pour les dispositifs de stockage comme les clés USB, appareils photos, et téléphones.
Remarque

Les performances des mémoires RAM continuent de s'améliorer, mais les mémoires les plus
rapides sont également les plus coûteuses. Pour comparer les performances, on utilise
l’indicateur du cycle mémoire.

Mémoire morte (ROM)

La mémoire morte (ROM, pour Read-Only Memory) est une mémoire non volatile, ce qui
signifie qu'elle conserve les informations même sans alimentation électrique. Elle est utilisée
pour stocker des informations permanentes, telles que les programmes système et la
microprogrammation, et ne peut être que lue, contrairement à la RAM. Il existe plusieurs
types de ROM :

1. ROM : La mémoire est programmée une fois lors de la conception du circuit.


2. PROM (Programmable ROM) : Programmable une seule fois avec un programmateur
spécifique.
3. EPROM (UV-EPROM) : Effaçable par exposition aux rayons ultraviolets, elle peut
être reprogrammée.
4. EEPROM (Electrically Erasable Programmable ROM) : Programmable et effaçable
électriquement.
5. Flash EPROM : Fonctionne comme une EEPROM mais est plus rapide et est
couramment utilisée dans les appareils numériques (ex : appareils photo, clés USB).

2.7.4 Structure physique d'une mémoire centrale

La structure physique d’une mémoire centrale comprend les composants suivants :

 RAM (Registre d’adresse Mémoire) : stocke l’adresse du mot mémoire à lire ou


écrire.
 RIM (Registre d’information Mémoire) : stocke les données à lire ou écrire.
 Décodeur : sélectionne le mot mémoire spécifique en fonction de l'adresse.
 Commande R/W : détermine si une opération de lecture (R/W=1) ou d'écriture doit
être effectuée.
 Bus d'adresses (de kkk bits) et Bus de données (de nnn bits) : facilitent le transfert
d’adresses et de données.

Lorsqu'une adresse est placée dans le registre RAM, le décodeur sélectionne l'unique mot
mémoire associé à cette adresse, permettant ainsi un accès précis aux données.

2.7.5 Lecture et écriture des informations

Les opérations possibles en mémoire sont :


1. Écriture : Le processeur place une adresse et une valeur, et la mémoire stocke la
valeur à l'emplacement spécifié.
2. Lecture : Le processeur indique une adresse, et la mémoire renvoie la valeur stockée
sans la modifier.

Algorithme de lecture

1. Charger l’adresse du mot mémoire à lire dans le registre RAM.


2. Lancer la commande de lecture (R/W=1).
3. Après un temps d'accès, la donnée est disponible dans le registre RIM.

Algorithme d’écriture

1. Placer l’adresse du mot mémoire dans le RAM.


2. Placer la donnée à écrire dans le RIM.
3. Lancer la commande d’écriture pour transférer le contenu du RIM en mémoire
centrale.

Remarques

 Lecture : pour récupérer des informations.


 Écriture : pour stocker de nouvelles informations.
 Les opérations de lecture et d’écriture peuvent être effectuées en parallèle car elles
utilisent des bus différents, permettant ainsi un gain de temps.

Mémoire cache

La mémoire cache est une mémoire très rapide utilisée pour stocker temporairement les
données et instructions les plus fréquemment utilisées par le processeur, permettant ainsi
d’accélérer les opérations. Elle agit comme un tampon entre le processeur et la mémoire
principale et utilise des cellules SRAM, plus rapides mais plus coûteuses que les DRAM. En
raison de son coût élevé, la capacité de la mémoire cache est relativement limitée.

Principe de fonctionnement

 Le processeur demande d’abord les données au cache :


o Succès de cache (Hit) : si la donnée est dans le cache, elle est envoyée
directement au processeur.
o Défaut de cache (Miss) : si la donnée n'est pas dans le cache, elle est
récupérée dans la mémoire principale, transférée au processeur et stockée dans
le cache pour une utilisation future.
 Le taux de succès du cache influe directement sur les performances, avec des taux de
succès typiques entre 80 et 90 %.

Niveaux de cache

 Cache L1 : intégré au processeur, généralement de petite taille (8-128 Ko), et contient


des caches séparés pour les instructions et les données.
 Cache L2 : plus grand (256 Ko - plusieurs Mo) et situé proche du processeur.
 Cache L3 : utilisé dans certains processeurs (ex. Intel Core i7) pour offrir un stockage
plus important.

Gestion du cache

1. Correspondance cache-mémoire (Mapping) :


o Directe : chaque bloc de la mémoire principale ne peut être stocké qu'à une
seule position du cache.
o Associatif : un bloc peut être stocké dans n'importe quel emplacement du
cache.
o Associatif par ensemble : le cache est divisé en groupes, et chaque bloc de la
mémoire peut être stocké dans n’importe quel bloc d’un groupe spécifique.
2. Stratégies de remplacement :
o Aléatoire : un bloc est choisi au hasard pour être remplacé.
o FIFO (First In First Out) : le bloc le plus ancien est remplacé.
o LRU (Least Recently Used) : le bloc le moins récemment utilisé est remplacé.
o LFU (Least Frequently Used) : le bloc le moins fréquemment utilisé est
remplacé.
3. Politiques de lecture et d’écriture :
o Lecture immédiate : la lecture se fait directement depuis la mémoire vers le
processeur.
o Écriture immédiate (Write Through) : l’information est écrite dans le cache
et la mémoire centrale en même temps.
o Écriture différée (Write Back) : l'information est écrite dans le cache et
seulement dans la mémoire centrale lorsqu’elle est remplacée.

Hiérarchie des mémoires

Les différents types de mémoire sont organisés selon une hiérarchie basée sur la vitesse, la
capacité et le coût par bit :

1. Registres : mémoires les plus rapides et intégrées dans le CPU, utilisées pour stocker
des opérandes et des résultats intermédiaires.
2. Mémoire cache : rapide, de faible capacité et utilisée comme tampon entre le CPU et
la mémoire centrale, permettant de réduire les accès à la mémoire principale.
3. Mémoire centrale (RAM) : utilisée pour stocker les instructions et les données en
cours d'exécution. Bien que rapide, elle est plus lente que les registres et le cache.
4. Mémoire d’appui : intermédiaire entre la mémoire centrale et la mémoire auxiliaire
dans certains ordinateurs pour améliorer les échanges.
5. Mémoire de masse (ou auxiliaire) : utilisée pour le stockage permanent et de grande
capacité (disques durs, USB), mais plus lente et moins coûteuse.

Classement par taille et vitesse

 Taille : Registre < Cache L1 < Cache L2 < ROM < CD-ROM < USB < Disque dur.
 Vitesse : Registre > Cache L1 > Cache L2 > ROM > Disque dur > USB > CD-ROM.
Cette hiérarchie permet d’optimiser les performances de l'ordinateur en équilibrant la rapidité
et la capacité de chaque type de mémoire.

Chapitre 3
Langages de Programmation

La programmation consiste à traduire un algorithme en un langage compréhensible par


l'ordinateur. On distingue plusieurs niveaux de langage :

1. Langage machine :
o C’est le seul langage directement exécutable par le processeur. Chaque
instruction est codée en binaire et se compose d’un code opération (définit
l’action) et d'opérandes (indiquent les données).
o Ce langage est difficile à utiliser pour les humains en raison de sa structure
binaire.
2. Langage assembleur :
o Langage de bas niveau proche du langage machine, utilisant des
mnémoniques pour représenter les opérations, par exemple, ADD pour addition,
SUB pour soustraction.
o Une instruction assembleur inclut des champs pour :
 une étiquette (optionnelle),
 le code opération,
 et les opérandes (ex : registres ou valeurs en mémoire).
3. Langage de haut niveau :
o Indépendant de la machine, ce langage est plus facile à comprendre et
manipuler. Il utilise des structures de contrôle et de données, facilitant
l’écriture d'algorithmes complexes.
o Types de langages de haut niveau :
 Langages procéduraux (ex : C, Pascal) : basés sur des procédures et
fonctions.
 Langages orientés objet (ex : Java, Eiffel) : basés sur des objets et
méthodes pour modéliser les entités d'un problème.

Instructions Machines

Une instruction machine est une commande binaire qui ordonne au processeur de réaliser un
traitement élémentaire, composée de :

 Code opération : indique le type de traitement (ex : addition, lecture).


 Opérandes : spécifient les données sur lesquelles le traitement s’applique.

Les instructions machines sont manipulées en assembleur via des mnémoniques, tels que ADD,
SUB, LOAD, STORE.
Classification des Machines par Nombre d'Opérandes

Les machines sont souvent classées selon le nombre d’opérandes qu’une instruction peut
contenir :

1. Machine à 4 adresses :
o Quatre champs : deux pour les opérandes, un pour le résultat, et un pour
l’instruction suivante.
o Exemple : ADD 19,13,100,110 exécute 100 ← (19) + (13) et continue à
l’adresse 110.
2. Machine à 3 adresses :
o Trois champs : deux pour les opérandes, et un pour le résultat. L’adresse de
l’instruction suivante est gérée par le compteur ordinal (CO).
o Exemple : ADD 19,13,100 exécute 100 ← (19) + (13).
3. Machine à 2 adresses :
o Deux champs : l'un pour un opérande et l’autre pour le résultat.
o Exemple : ADD 19,13 exécute 13 ← (19) + (13).
4. Machine à 1 adresse (Machine à Accumulateur) :
o Un seul champ pour l'opérande ; le second opérande est l'accumulateur.
o Exemple : ADD 19 effectue ACC ← ACC + 19.
5. Machine à 0 adresse (Machine à Pile) :
o Appelée machine à pile, elle fonctionne sans registre ; toutes les opérations
s’effectuent entre la mémoire et une pile.
o Exemple : ADD additionne les deux dernières valeurs de la pile.

Modes d’adressage des opérandes

Les modes d'adressage définissent comment l'ordinateur accède aux opérandes dans une
instruction, en spécifiant le chemin que le processeur doit suivre pour trouver les données
nécessaires.

1. Adressage Immédiat :
o L'opérande est directement dans l'instruction.
o Exemple : LOAD #nbr charge la valeur nbr directement dans le registre
d'accumulateur (ACC).
2. Adressage Direct :
o L'instruction contient l'adresse mémoire de l'opérande.
o Exemple : LOAD adr charge le contenu de l'adresse adr en mémoire dans
ACC.
3. Adressage Indirect :
o L'adresse mémoire contient une autre adresse où se trouve l'opérande.
o Exemple : LOAD [adr] charge dans ACC la valeur stockée à l'adresse
contenue dans adr.
4. Adressage par Registre :
o L’opérande est dans un registre spécifié dans l’instruction.
o Exemple : LOAD R1 charge la valeur du registre R1 dans ACC.
5. Adressage par Registre Indirect :
oLe registre contient l'adresse de l'opérande.
oExemple : LOAD (R1) charge dans ACC la valeur à l'adresse contenue dans R1.
6. Adressage Relatif :
o L’adresse effective est la somme de l’adresse de base et d'un déplacement
(offset).
o Exemple : LOAD 100(R1) charge dans ACC la valeur à l'adresse 100 + R1.
7. Adressage Indexé :
o L'adresse effective est obtenue en ajoutant un index à la partie adresse de
l'instruction.
o Exemple : LOAD (adr + R1) charge dans ACC la valeur à adr + R1.
8. Adressage Auto-incrémenté et Auto-décrémenté :
o Utilisé pour parcourir des séquences de données en mémoire, en incrémentant
ou décrémentant l'adresse après chaque accès.
o Exemple : LOAD (R2)+ charge la valeur à l’adresse de R2 puis incrémente R2.

Types d'instructions

Pour assurer une programmation complète, un ensemble d'instructions inclut généralement les
catégories suivantes :

1. Instructions arithmétiques et logiques :


o Effectuent des opérations avec l'UAL.
o Exemples : ADD, SUB, MUL, DIV, AND, OR, NOT, XOR.
o Ex : ADD 3 R1 additionne la valeur 3 au contenu de R1.
2. Instructions de déplacement de données :
o Permettent le transfert de données entre la mémoire et les registres ou entre
registres.
o Exemples : LOAD, MOVE, STORE.
o Ex : LOAD 3 charge la valeur à l'adresse 3 dans ACC.
3. Instructions de contrôle de programme :
o Utilisées pour gérer le flux de programme et effectuer des sauts conditionnels.
o Exemples : JMP (saut inconditionnel), JMP O (saut si dépassement de capacité).
o Ex : JMP 128 dirige l'exécution vers l'adresse 128.
4. Instructions d'entrées-sorties :
o Gèrent la lecture et l’écriture des données vers et depuis les périphériques.
o Ex : IN (lecture depuis le périphérique) et OUT (écriture vers un périphérique).
5. Instructions particulières :
o Assurent des opérations de contrôle spéciales.
o Exemples : HALT (arrêt du processeur), DI (désactiver les interruptions), EI
(activer les interruptions).

Ces modes d’adressage et types d'instructions permettent de structurer les données et


d'accéder aux informations en mémoire selon différents besoins, optimisant ainsi les
performances et l’organisation des programmes dans l'ordinateur.
Principe de compilation et d’assemblage

Pour qu’un programme écrit en langage d’assemblage soit exécutable par le processeur, il
doit être traduit en langage machine. Cette traduction est réalisée par un logiciel appelé
assembleur, qui convertit les instructions en instructions machine compréhensibles par le
processeur.

Dans le cas d’un langage de haut niveau, chaque instruction correspond à plusieurs
instructions en langage assembleur. Le processus de transformation comprend deux étapes :

1. Compilation : un compilateur traduit le code en assembleur.


2. Assemblage : un assembleur transforme ce code en code machine.

Unité de contrôle et de commande

L’unité de contrôle et de commande gère l’exécution des instructions en utilisant les registres
et l’UAL (Unité Arithmétique et Logique) du processeur. Elle assure la coordination entre les
différentes parties du processeur et synchronise les opérations grâce à une série de registres et
circuits.

Composants principaux de l’unité de contrôle et de commande

1. Compteur de programme (CO) :


o Contient l’adresse de la prochaine instruction à exécuter. Il est initialisé avec
l’adresse de la première instruction du programme.
2. Registre d'instruction (RI) :
o Stocke l'instruction à exécuter, qui sera ensuite décodée pour identifier
l’opération à effectuer.
3. Décodeur :
o Identifie l’instruction dans le RI et indique au séquenceur l’action nécessaire,
permettant d’orienter l’exécution de l’instruction.
4. Séquenceur (Bloc logique de commande) :
o Synchronise l’exécution des instructions avec l’horloge. Il produit les signaux
de commande nécessaires, soit de façon câblée (ancienne méthode), soit de
façon microprogrammée.
5. Registre d'adresses (RAD) :
o Connecté au bus d’adresses, il envoie l’adresse mémoire du mot à sélectionner
pour l’exécution de l’instruction.
6. Registre de données (RDO) :
o Permet l’échange de données entre la mémoire centrale et le processeur.

Processus de lecture et exécution d'une instruction

1. Exécution d'une instruction :


oLe contenu du CO est envoyé dans le RAD via le bus d’adresses.
oUne commande de lecture mémoire est activée.
oL’instruction est reçue dans le RDO via le bus de données.
oLe contenu du RDO est ensuite transféré dans le RI pour être décodé et
exécuté.
2. Lecture d'une donnée :
o L’adresse de la donnée est placée dans le RAD.
o Une commande de lecture mémoire est déclenchée.
o La donnée est reçue dans le RDO et transférée vers un registre du processeur.

Rôle de l'unité de contrôle et de commande

L’unité de contrôle et de commande coordonne le travail des autres unités (comme l’UAL et
la mémoire) en :

 Synchronisant les opérations à l’aide de l’horloge.


 Cherchant les instructions et données en mémoire.
 Décodant et exécutant l’instruction actuelle.
 Préparant l’instruction suivante à exécuter.

Le chemin de données, lors de l’acquisition d’une instruction, est de la mémoire centrale vers
le processeur via CO, RAD, commande de lecture, RDO, et enfin RI.

Ce processus permet au processeur d’interpréter et d’exécuter les instructions de manière


ordonnée et efficace, assurant ainsi le bon déroulement des programmes.

Phases d’exécution d’une instruction

Le déroulement de l'exécution d'une instruction peut être divisé en trois phases principales :

1. Phase de recherche de l’instruction


2. Phase de décodage de l’instruction et de recherche de l’opération et des
opérandes
3. Phase de traitement de l’instruction et préparation de l’instruction suivante

Chaque phase consiste en une série d’opérations élémentaires exécutées dans un ordre précis
par l’unité de commande.

1er Cas : Instruction arithmétique à un opérande (mode direct)

Phase 1 : Recherche de l'instruction


1. Le contenu du compteur ordinal (CO), qui contient l'adresse de l'instruction suivante,
est transféré dans le registre d'adresse mémoire (R@M).
2. Une commande de lecture est envoyée pour lire l'instruction.
3. L’instruction est transférée depuis l’adresse mémoire vers le registre de données
mémoire (RDM).
4. Le contenu du RDM est transféré dans le registre d’instruction (RI) du processeur.

Phase 2 : Décodage de l’instruction et recherche de l'opérande

1. Décodage du code opération de l’instruction dans le RI.


2. Transfert de l’adresse de l’opérande (ADOP) dans le R@M.
3. Commande de lecture pour accéder à l'opérande.
4. Transfert de l'opérande depuis l’adresse en mémoire vers le RDM.
5. Transfert du contenu du RDM vers l’UAL pour traitement.

Phase 3 : Exécution de l'instruction et passage à l’instruction suivante

1. Exécution de l’opération par l’UAL.


2. Positionnement des drapeaux (ou indicateurs) dans le registre d’état.
3. Le CO est incrémenté pour pointer vers l'instruction suivante.

2ème Cas : Instruction arithmétique à un opérande (mode immédiat)

Phase 2 : Décodage et recherche de l'opérande

1. Décodage du code opération dans le RI.


2. Transfert direct de l’opérande (contenue dans le RI) vers l’UAL pour exécution.

3ème Cas : Instruction arithmétique à un opérande (mode indirect)

Phase 2 : Décodage et recherche de l'opérande

1. Décodage du code opération.


2. Transfert de l’ADOP dans le R@M.
3. Commande de lecture pour récupérer l'adresse de l’opérande.
4. Transfert de l’adresse trouvée dans le RDM vers le R@M.
5. Nouvelle commande de lecture pour accéder à l’opérande finale.
6. Transfert de l’opérande trouvée dans le RDM.
7. Transfert de l'opérande dans l'UAL pour exécution.

Remarques

 La phase 1 reste identique pour toutes les instructions, tandis que les phases 2 et 3
peuvent varier selon le mode d’adressage utilisé.
 L'instruction suivante peut être préparée (CO incrémenté) en parallèle avec certaines
étapes, notamment la phase de recherche de l'instruction.

Ces phases permettent au processeur de récupérer, déchiffrer et exécuter des instructions de


manière séquentielle et coordonnée.

Pipeline

Le pipeline est une technique utilisée dans les processeurs pour améliorer leur efficacité en
permettant à plusieurs instructions de se chevaucher lors de leur exécution. Le pipeline divise
une instruction en plusieurs étages, permettant un traitement parallèle des instructions et
augmentant le débit global.

 Principe : Une instruction est fragmentée en plusieurs étapes (ou étages) dans le
pipeline, ce qui permet d'exécuter des parties d'instructions en parallèle.
 Objectif : Accélérer le débit des instructions plutôt que le temps d'exécution d'une
seule instruction.
 Avantage : Cette technique est invisible pour le programmeur et exploite le
parallélisme au sein du flot d'instructions.

3.7.1 Performance du pipeline

La performance du pipeline peut être calculée selon deux méthodes :

1. Première méthode (selon le nombre d'instructions) :


o Pour exécuter nnn instructions avec un pipeline de kkk étages :
 En exécution séquentielle, il faut n×kn \times kn×k cycles d’horloge.
 Avec un pipeline, il faut k+(n−1)k + (n - 1)k+(n−1) cycles.
o Le gain est donné par : G=n×kk+(n−1)G = \frac{n \times k}{k + (n - 1)}G=k+
(n−1)n×k
o Lorsque nnn est grand, le temps d'exécution est divisé par kkk.
2. Deuxième méthode (selon le temps d'exécution) :
o Si le pipeline a 6 étages avec des durées de 50 ns et 60 ns, le temps total pour
chaque étape du pipeline est fixé par l’étage le plus lent (60 ns) plus un temps
de stabilisation de 5 ns, soit 65 ns.
o Pour 100 instructions, le temps total est : 65×6+(99×65)=6,825 ns65 \times 6 +
(99 \times 65) = 6,825 \text{ ns}65×6+(99×65)=6,825 ns
o Accélération : Le temps moyen par instruction est divisé, ici passant de 320 ns
(sans pipeline) à environ 65 ns (avec pipeline).

Exemples de pipelines dans les processeurs

 AMD Athlon : 11 étages.


 Intel Pentium 2, 3 et 4 : respectivement 12, 10 et 20 étages.
3.7.2 Aléas dans le pipeline

Les aléas (ou problèmes) de pipeline peuvent ralentir les performances en bloquant
l’avancement des instructions. Les principaux types sont :

1. Aléas structurels : Deux instructions nécessitent la même ressource au même


moment, causant un conflit de dépendance.
2. Aléas de données : Une instruction dépend du résultat d’une instruction précédente
qui n’a pas encore terminé son exécution.
3. Aléas de contrôle : Lors d'une instruction de branchement, l'instruction suivante à
charger est incertaine, créant une incertitude dans le pipeline.

Lorsque des aléas surviennent, les instructions peuvent être temporairement bloquées, créant
des "bulles" dans le pipeline. Ces bulles sont des cycles d'inactivité où une instruction NOP
(No Operation) est insérée jusqu’à ce que l’aléa disparaisse.

Avantages et limites du pipeline

Avantages

 Maximisation de l’utilisation des ressources d'exécution.


 Augmentation possible de la fréquence d'horloge en divisant les instructions en étapes
plus petites.

Limites

 Les étapes doivent avoir des durées égales, ce qui n’est pas toujours réalisable.
 Les dépendances entre instructions et les conflits de ressources réduisent l’efficacité
du pipeline.
 La mise en œuvre du pipeline nécessite un matériel additionnel et des algorithmes
complexes pour gérer la communication entre les étages.

La technique de pipeline est donc une méthode puissante pour améliorer les performances des
processeurs, malgré les défis posés par les aléas et la complexité de sa gestion.

Horloge

L’horloge d’un processeur, aussi appelée base de temps, divise le temps en cycles réguliers
pour synchroniser les opérations. Elle envoie des impulsions périodiques qui permettent de
coordonner les étapes de chaque instruction.

 Cycle machine : Un cycle élémentaire (ou de base), dont la durée est l’inverse de la
fréquence de l’horloge. Il synchronise les étapes des cycles de recherche et
d'exécution.
 Cycle instruction : Combine le cycle de recherche et le cycle d'exécution, nécessitant
plusieurs cycles machine pour une seule instruction.
 Cycle CPU : Correspond au temps nécessaire pour exécuter l’instruction la plus
courte, incluant recherche et exécution.

3.8.2. Séquenceur

Le séquenceur est un automate qui gère la distribution des signaux de commande aux
différentes unités lors de l’exécution d’une instruction. Il suit un chronogramme précis et tient
compte des délais de réponse des circuits.

Deux types de séquenceurs existent :

1. Séquenceur câblé :
o C’est un circuit séquentiel synchrone où chaque sous-circuit correspond à une
instruction spécifique. Le décodeur active le sous-circuit pertinent pour
l’instruction en cours.
o Ce type de séquenceur est rapide.
2. Séquenceur microprogrammé :
o Utilise une séquence de micro-instructions, stockées dans une ROM, pour
générer les signaux de commande.
o Le code de l'instruction sert d'adresse pour la première micro-instruction du
microprogramme.
o Ce séquenceur est plus lent que le séquenceur câblé mais plus flexible.

Remarques

 La vitesse de l’ordinateur dépend non seulement de la fréquence de l'horloge mais


aussi du cycle mémoire et de la vitesse du bus.
 Un séquenceur microprogrammé est plus lent qu’un séquenceur câblé, car il doit
accéder aux micro-instructions en mémoire.

En résumé, l’horloge assure la synchronisation des opérations dans le processeur, tandis que
le séquenceur coordonne les étapes nécessaires pour exécuter les instructions en fonction d’un
chronogramme défini.

Vous aimerez peut-être aussi