Chapitre 3 - Micro
Chapitre 3 - Micro
Chapitre 3 - Micro
I. Introduction
L'Unité Centrale de Traitement (UCT, ou CPU Central Processing Unit), encore
dénommée processeur ou microprocesseur, est le cerveau de l'ordinateur.
C'est l'élément de l'ordinateur qui interprète et exécute les instructions
d'un programme. Il doit aussi prendre en compte les informations extérieures
au système et assurer le traitement correspondant.
Ces trois éléments sont reliés entre eux par des bus interne permettant
les échanges d’informations. Un processeur possède trois types de bus :
un bus de données, un bus d'adresse et un bus de contrôle.
Registre d’état (RE, PSW = Program Status World)(appelé aussi registre condition) :
Remarque :
Suivant le type du processeur, le nombre de registre peut varier entre une dizaine
et plusieurs centaines. Les registres les plus importants sont détaillés dans ce qui suit :
Accumulateur (ACC)
Registre Temporaire (RT) : C’est un registre qui peut être utilisé comme registre
intermédiaire. Il sert surtout, comme espace de rangement d’opérandes.
Dans un processeur on peut trouver plusieurs registres temporaires.
De plus, on trouve :
IV.3. Codage
Les instructions et leurs opérandes (paramètres) sont stockés en mémoire
principale. La taille totale d’une instruction (nombre de bits nécessaires pour
la représenter en mémoire) dépend du type d’instruction et aussi du type d’opérande.
Le format d’une instruction peut ne pas être le même pour toutes les instructions.
Le champ opérande peut être découpé à son tour en plusieurs champs.
Il existe trois types de machines selon le nombre d’adresse indiquée dans l’instruction :
• Adressage immédiat :
Si le registre accumulateur contient la valeur 200 (ACC = 200) alors après l’exécution
son contenu sera égal à 350 (ACC = 350).
• Adressage direct
Exemple :
Exemple :
• Adressage relatif
• Adressage indexé
Par la suite, pour faciliter le travail, les programmes ont été écrits en donnant
directement les noms (abrégés) des opérations. On les a appelés les codes mnémoniques,
car on pouvait facilement les mémoriser (par exemple ADD, DIV, SUB, MOV, etc.).
Les adresses des instructions et des variables pouvaient aussi être données sous forme
symbolique. Pour pouvoir utiliser ce genre de langage dit d’assemblage, il fallait
trouver le moyen de les convertir en langage machine. Le programme qui assure la
traduction d’un programme en langage machine, s’appelle assembleur.
Code Instruction
Signification
L. assembleur L. machine
Charge la valeur de la variable id_var dans le registre
LOAD id_var 0E
accumulateur
Additionne le contenu de l’accumulateur à la valeur de la
ADD id_var 1E
variable id_var
Réalise l’opération (contenu accumulateur –
SUB id_var 2E
valeur(id_var))
Réalise l’opération (contenu accumulateur *
MUL id_var 3E
valeur(id_var))
NOT id_var 4E Effectue le complément logique de valeur(id_var)
Stocke le contenu de l’accumulateur dans la variable
STORE id_var 5E
id_var
Effectue un saut inconditionnel à l’emplacement de
JMP Etiquette 3F
l’étiquette
Compare le contenu de l’accumulateur à la variable id_var
et met à un l’un des indicateurs du registre d’état :
• Z est mis à un si la comparaison mène à l’égalité.
CMP id_var FE • G est mis à un, si le contenu de l’accumulateur est
strictement supérieur au contenu de la variable.
• B est mis à un, si le contenu de l’accumulateur est
strictement inférieur au contenu de la variable.
Effectue un saut à l’emplacement de l’étiquette, si le bit Z
JZ Etiquette EF
du registre d’état est égal à 1
Effectue un saut à l’emplacement de l’étiquette, si le bit G
JG Etiquette EE
(Greater than) du registre d’état est égal à 1
Effectue un saut à l’emplacement de l’étiquette, si le bit B
JB Etiquette FF
(Below) du registre d’état est égal à 1
Les architectures CISC (Complex Instruction Set Computer), qui sont basées sur
des jeux d’instructions très riches de taille variable offrant aussi des instructions
composées, la racine carrée ou la multiplication en virgule flottante double précision.
L'architecture CISC est utilisée en particulier par les processeurs de type 80x86.
Ce type d'architecture possède un coût élevé dû aux fonctions évoluées imprimées sur le
silicium.
Les programmes doivent ainsi être traduits en instructions simples, ce qui entraîne
un développement plus difficile et/ou un compilateur plus puissant. Une telle
architecture possède un coût de fabrication réduit par rapport aux processeurs CISC.
De plus, les instructions, simples par nature, sont exécutées en un seul cycle d'horloge,
ce qui rend l'exécution des programmes plus rapide qu'avec des processeurs basés sur
une architecture CISC. Enfin, de tels processeurs sont capables de traîter plusieurs
instructions simultanément en les traitant en parallèle.
La première idée qui vient à l’esprit est d’augmenter tout simplement la fréquence
de l’horloge du microprocesseur. Mais l’accélération des fréquences provoque un
surcroît de consommation ce qui entraîne une élévation de température. On est alors
amené à équiper les processeurs de systèmes de refroidissement ou à diminuer la
tension d’alimentation.
Modèle classique :
• k cycles d’horloge pour exécuter la première instruction puis n-1 cycles pour les
n-1 instructions suivantes si on utilise un pipeline de k étages
Remarque :
Le temps de traitement dans chaque unité doit être à peu près égal sinon les unités
rapides doivent attendre les unités lentes.
Exemples :
Architecture scalaire :
Architecture superscalaire :
Remarque :
C'est le type d'architecture mise en œuvre dans les premiers Pentium d'Intel apparus
en 1993.
Caractéristiques :
Plusieurs unités de traitement mais au 5 instructions exécutées en même temps sur 5 ports :
o Port 0 : ALU, FPU, AGU MMX et SSE
o Port 1 : ALU, SSE, MMX
o Port 2 : AGU (load)
o Port 3 : AGU (store)
o Port 4 : Store Data Unit
Il est adapté pour répondre au mieux aux besoins des applications embarquées
(appareil électroménagers, chaîne d’acquisition, lecteur carte à puce, etc...). Il est par
contre généralement moins puissant en termes de rapidité, de taille de données
traitables ou de taille de mémoire adressable qu’un microprocesseur.