Architecture des
ordinateurs
Chapitre 4 : Ordinateur et processeur A.U : 2020/2021
Filière : 2ITE
Semestre : I
Cours présenté par:
Pr. BAIDAD Chafik 1
PLAN
1. Programmes et instructions de processeur
2. UAL et registres
3. Mémoire et Microprocesseur
2
Programmes et instructions / cycle de programme (1)
• Un programme est une suites d’instructions pouvant s’exécuter sur un Processeur
• Les premiers programmes étaient écrits directement en code machine ( des 0 et
des 1 )
• Le langage assembleur est apparu. dans ce langage les expressions symboliques,
appelées «mnémoniques », remplaçaient les codes numériques :
(5ef4 )16 est remplacé par instruction ADD A,B.
• programme d’assemblage pour transformer ces instructions en code
binaire 3
Programmes et instructions / cycle de programme (2)
• La programmation en assembleur présente des inconvénients considérables
• Un grand nombre d’instructions pour faire de simple calculs
• les instructions sont spécifiques à un modèle de processeur donnée
• Création de langages plus évolués indépendants de type de processeur
• Le compilateur est un programme pour traduire la totalité le code écrit dans
des langages évolués en code objet proche du code binaire pour être exécutable
sur la machine
• La compilation d’un code avec des milliers de lignes de code peut prendre un
temps considérable 4
Programmes et instructions / cycle de programme (3)
• L’interpréteur est un programme qui, au lieu de traduire les instructions d’un
langage évolué , il les exécute au fur et à mesure ( instruction par instruction )
• PHP, Perl ou Basic sont des langages qui utilisent un interpréteur
• Le langage Java utilise à la fois un interpréteur et un compilateur.
• Le compilateur traduit un fichier source en java en code spécifique nommé
(Bytecode)
• Le Bytecode est interprété ensuite par un machine virtuelle (JVM)
5
Programmes et instructions / cycle de programme (4)
• le compilateur génère ce que l’on appelle un fichier objet, qui n’est pas
immédiatement Exécutable
• Ces fichiers constitué majoritairement de code machine est découpé en modules
séparés, chacun sous la forme de code source.
• L’éditeur de lien est un programme qui fait le lien entre tous les fichiers objet,
et les diverses bibliothèques standard (parties de programme déjà écrites en
langage machine) et regroupe le tout en gérant les dépendances (références inter
modules) pour fournir au final un code exécutable 6
18/12/2020 7
18/12/2020 8
Programmes et instructions / Instructions
• Chaque processeur est capable d’exécuter des instructions se trouvant en
mémoire principale.
• Une instruction se caractérise par son code numérique correspondant à
l’opération requise.
• Les codes sont stockés en mémoire à la suite les uns des autres dans des cases
mémoire successive
• L’ensemble des instructions qu’un processeur peut exécuter, autrement dit son
jeu d’instructions (Instruction Set), 9
Programmes et instructions / Type d’instruction (1)
1. Transfert de données :
• Le programmeur a la possibilité de demander explicitement le transfert de données entre
la mémoire et un registre
• L’instruction spécifie la case mémoire cible, le registre, ainsi que la taille de la donnée à
transférer
10
Programmes et instructions / Type d’instruction (2)
2. Opérations arithmétiques et logiques, décalages et rotations:
• Les instructions arithmétiques et logiques permettent d’effectuer les calculs sur des
données se trouvant dans les registres (addition, une soustraction, une multiplication ou
une division.
• L’UAL est également capable de réaliser les opérations booléennes de base (NON, ET,
OU, XOR) sur des données se trouvant dans les registres.
11
Programmes et instructions / Type d’instruction (3)
• Les instructions de décalage ou de rotation des bits de la donnée d’un registre :
• La rotation consiste à remplacer chaque bit par celui situé directement à gauche ou à
droite. Le bit qui n’a pas de voisin « fait le tour » et prend la place du bit opposé
• le décalage est identique à la rotation, à ceci près qu’un bit disparaît et un
0(éventuellement un 1) est mis dans le premier bit.
12
Programmes et instructions / Type d’instruction (4)
3. Tests et comparaisons:
• Les instructions de tests permettent de comparer deux données (égalité, inégalité) afin
de définir un comportement différent suivant le résultat de la comparaison
4. Ruptures de séquence :
• Il s’agit d’instructions qui permet de stopper l’enchainement du code et de sauter
l’instruction suivante pour indiquer l’adresse d’une autre instruction à exécuter.
• les sauts appelés aussi « branchements » inconditionnels, qui transfèrent
systématiquement l’exécution à une autre adresse
• les sauts conditionnels, qui s’effectuent uniquement si une condition est13vérifiée
Programmes et instructions / Type d’instruction (5)
exemple de ruptures de séquence ( équation AX +B =0 )
14
Programmes et instructions / Type d’instruction (6)
3. Instructions divers:
• concernent les entrées/sorties(possibilité d’envoyer directement une commande à un
périphérique)
• le contrôle du processeur (arrêter ou redémarrer un processeur)
• La gestion des interruptions ( voir section interruption )
15
Programmes et instructions / Format des instructions
• Une instruction peut être découpée en deux parties : l’opération elle-même «
code opération » et les données sur lesquelles elle porte « opérandes ».
• Le code opération (ADD, MOV, SUB…) indique au processeur quelle opération
effectuer parmi toutes celles autorisées.
• La plupart des opérations arithmétiques nécessite de spécifier trois données:
• les deux opérandes sur lesquelles portent l’opération (addition, soustraction…)
• l’emplacement où ranger le résultat
• Exemple : ADD r1,r2,r3
16
Programmes et instructions / Taille des instructions
• Le nombre de données dans une instruction est variable
• les données ne nécessitent pas le même nombre de bits (il en faut beaucoup plus
pour indiquer des adresses mémoire que des registres
• Le désir d’accélérer les processeurs a conduit à une simplification radicale
du jeu d’instructions de la plupart des processeurs sous la forme d’instructions de
taille fixe, souvent 32 bits
17
PLAN
1. Programmes et instructions du processeur
2. UAL et registres
3. Mémoire et Microprocesseur
18
UAL et Registres / Construction d’une UAL (1)
• L’UAL est un circuit logique combinatoire formé de portes logiques prenant
deux nombres en entrée et générant un nombre en sortie en fonction de signaux
de commande indiquant l’opération.
• Une UAL peut être caractérisée par sa taille et ses possibilités.
• La taille correspond au nombre maximum de bits que peuvent occuper les entrées ( 32,
64 bit … etc).
• Les possibilités différentes commandes qu’elle reconnaît (addition, multiplication,
fonctions logiques …..)
19
• l’UAL est caractérisée par sa vitesse en Hrz de fonctionnement
UAL et Registres / Construction d’une UAL (2)
• un exemple d’UAL 1 bit simplifiée
• capable de calculer le ET et le OU de 2 bits, le NON du second bit,
et la somme des 2 bits avec une retenue d’entrée
• Le choix parmi ces quatre opérations se fait via les deux lignes de
commandes f0 et f1
• Exemple précédent concerne une UAL pour les nombres entiers
• Il faut des nouveaux circuits pour le calcul des nombres flottants
• Nécessité d’avoir deux UAL
Avantage :
accélérer les traitements en effectuant deux calculs simultanés
20
UAL et Registres / Registres (1)
• Les registres sont une zone de stockage temporaire et rapide des données située dans le
processeur.
• Ils sont construits à l’aide de circuits logiques séquentiels afin de pouvoir mémoriser des bits
• Plusieurs types de registre existent:
• Registres généraux
• Registre d’instruction
• Compteur ordinal
• Registre d’état
• Registre pointeur de pile
• Registre d’adresse RAD
• Registre de donnée RDO 21
UAL et Registres / Registres (2)
• Registres généraux:
• Utilisés par le programmeur en assembleur (ou du compilateur pour un langage évolué) pour les instructions
et pour manipuler des données
• Registre d’instruction (RI)
• Utilisé par le séquenceur (voir section après) pour stocker l’instruction récupérée en mémoire pour être
exécutée dans le processeur
• Le programmeur n’a pas accès à ce registre
• Compteur ordinal ( PC ou IP)
• Utilisé pour stocké l’adresse mémoire de la prochaine instruction à exécuter par le processeur
• Le programmeur n’a pas accès à ce registre
22
UAL et Registres / Registres (3)
• Compteur ordinal ( PC ou IP)
• Utilisé pour stocké l’adresse mémoire de la prochaine instruction à exécuter par le processeur
• Registre d’état ( state registre)
• Registre avec bits ne forment pas de valeur numérique mais servent d’indicateurs (aussi appelés «
drapeaux » ou flags) sur l’état du processeur.
• La « condition » liée à un branchement conditionnel consiste toujours en un test d’une valeur particulière
23
d’un ou plusieurs bits conditions, positionnés par l’instruction précédente :
UAL et Registres / Registres (4)
• Le bit Z (Zero). Il est mis à 1 si le résultat de l’instruction est nul, sinon il est mis à 0.
• Le bit C (Carry). Il est mis à 1 si l’instruction génère une retenue finale, sinon il est mis à 0.
• Le bit N (Negative). Il est mis à 1 si le résultat de l’instruction est négatif, sinon il est mis à 0 ; c’est la
recopie du bit de poids fort du résultat.
• Le bit V (oVerflow). Il est mis à 1 si l’instruction génère un débordement arithmétique, sinon il est mis à 0.
• Registre pointeur de pile (SP)
• registre spécial du processeur (appelé « pointeur de pile » ou SP, Stack Pointer) pointe sur le haut de la
pile dans la quelle est stockée la valeur de PC avant d’exécuter la fonction pour pouvoir reprendre le
programme après l’appel.
• les informations sont empiler dépiler soit automatiquement par le séquenceur, soit à la demande du
programmeur.
24
UAL et Registres / Registres (5)
• Registre pointeur de pile (SP):
25
UAL et Registres / Registres (6)
• Registre RAD
• Il est connecté au bus d’adresses et permet la sélection d’un mot mémoire via le circuit de sélection.
• L’adresse contenue dans le registre RAD est placée sur le bus d’adresses et devient la valeur d’entrée
du circuit de sélection de la mémoire centrale qui va à partir de cette entrée sélectionner le mot mémoire
correspondant
• Registre RDO
• Il permet l’échange d’informations (contenu d’un mot mémoire) entre la mémoire centrale et le
processeur (registre)
26
PLAN
1. Programmes et instructions du processeur
2. UAL et registres
3. Mémoire et Microprocesseur
27
Mémoire et Microproc / mémoire (1)
• La mémoire centrale assure la fonction de stockage de l’information ( instruction + donnée ) manipulée
par le microprocesseur.
• Pour stocker l’information la mémoire est découpée en cellules mémoires : les mots mémoires.
• Un mot mémoire est repéré dans la mémoire par une adresse
• La mémoire est lié au proc par trois types de bus :
• Bus de données : achemine les données vers les registres du proc
• Bus d’adresses : achemine les adresse des instructions ou données de la mémoire au proc
• Bus de commande : indique au microproc la nature des opérations qu’on veut effectuer ( lecture, écriture
…)
28
Mémoire et Microprocesseur / mémoire (2)
• Illustration de mémoire simplifiée à 8 mots
mémoire.
• Le mot mémoire est de taille 16 bits
29
Mémoire et Microproc / Microproc (1)
• Le microprocesseur (unité centrale) exécuter les instructions machines placées en mémoire centrale.
• Le décodeur est ensemble de circuits dont la
fonction est d’identifier l’instruction à exécuter
qui se trouve dans le registre RI
• Le séquenceur est d’un ensemble de circuits
permettant l’exécution effective de l’instruction
placée dans le registre RI sous forme de
microcommandes réalisant le travail associé à
cette instruction machine
30
Mémoire et Microproc / Fonctionnement du Microproc (1)
lorsque le processeur doit exécuter une instruction il :
1. place le contenu du registre CO dans le registre RAD via le bus
d’adresses et le circuit de sélection;
2. déclenche une commande de lecture mémoire via le bus de
commandes;
3. reçoit dans le registre de données RDO, via le bus de données,
l’instruction;
4. place le contenu du registre de données RDO dans le registre
instruction RI via le bus interne du microprocesseur.
Pour lire une donnée le processeur :
1. – place l’adresse de la donnée dans le registre d’adresses RAD;
2. – déclenche une commande de lecture mémoire;
3. – reçoit la donnée dans le registre de données RDO;
4. – place le contenu de RDO dans un des registres du microprocesseur
(registres généraux ou registres d’entrée de l’UAL).
31
Mémoire et Microproc / Fonctionnement du Microproc (exemple )
On veut réaliser la somme de deux nombres C = A + B
Cette opération est réalisée par le microproc en trois étapes :
1. Charger le contenu du mot d’adresse B dans le registre R. (R) = (B) load D, R, @B
2. Contenu de R + contenu de A dans R add D, R, @A (R) = (R) + (A)
3. Placer le contenu de R à l’adresse C store D, R, @C (C) = (R)
Notre machine a les caractéristiques suivantes :
– la fréquence du processeur est égale à 1 GHz, soit un cycle égal à 1 ns;
– la fréquence du bus est égale à 66 MHz, soit un cycle égal à 15 ns;
– le temps d’accès à la mémoire centrale est égal à 20 ns
Le bus de communication est de type synchrone. Ainsi lorsque le
microprocesseur fait une demande de lecture mémoire il obtiendra sa donnée 32
30 nanosecondes plus tard (après deux cycles du bus).
33
Étape 1.
34
Étape 2.
35
Étape 3.
36
Étape 4.
37
Étape 5.
38
Étape 6.
39
Étape 7.