Enseignements en DEUG2
Informatique

 

I. Concepts généraux


1. Introduction
Depuis l'apparition du premier microprocesseur (Intel 4004, 1971), l'architecture des microprocesseurs n'a cessé d'évoluer et nous vivons actuellement une course à la recherche de performances accrues.

Aujourd'hui un certain nombre de constructeurs produisent des microprocesseurs, ils sont qualifiés de fondeurs :

La recherche de performance si elle ne semble pas nécessaire pour les machines destinées aux particuliers est en revanche primordiale pour les industries ou les domaines de recherche à la pointe du progrès, comme par exemple :

  • la prédiction météorologique
  • la simulation nucléaire
  • la conception automobile, aéronautique
  • l'analyse du génome, bioinformatique
  • les films d'animation en images de synthèse
  • ...


2. Architecture de Von Neuman
On doit beaucoup à John Von Neuman pour ses travaux concernant notamment l'architecture des ordinateurs. Il participa à la conception de l'ENIAC et dans son "First Draft of a Report on the EDVAC" en 1945, il décrit le concept de programme stocké en m%G�%@moire et donne naissance à l'architecture de nos machines actuelles.


Un microprocesseur est composé de deux unités :
  • l'UC (Control Unit) ou unité de contrôle, chargée de lire et décoder les instructions (front end).
  • l'UAL (Arithmetic and Logic Unit) ou Unité Arithmétique et Logique chargée de réaliser les calculs (+,-,/,*,AND,OR,NOT)

Afin de pouvoir stocker les opérandes et les résultats des calculs en sortie de l'UAL, le microprocesseur est doté de registres.


Définition : Définition - Registre
Un registre est un espace mémoire à l'intérieur du processeur chargé de stocker des données temporaires qui sont généralement les opérandes ou le résultat d'un calcul de l'UAL.
Par exemple sur le 8086 d'Intel on trouve :
  • 8 registres principaux (généraux) : AX, BX, CX, DX, BP, SP, SI, DI
  • 4 registres de segment : CS, DS, ES, SS
  • 1 registre (compteur de programme) : IP
  • 1 registre d'état : FLAGS

3. Caractéristiques
3 paramètres principaux permettent de caractériser un microprocesseur :
  • son architecture (RISC ou CISC)
  • sa fréquence
  • ses performances (ou sa puissance) mesurée en :
    • MIPS (million of instructions per second)
    • MFLOPS (million of floating point operations per second)
    • ou par l'intermédiaire d'applications spécifiques (bureautique, jeux, multimédia, ...)

Remarque : deux processeurs ayant la même fréquence de fonctionnement ne possèdent pas forcément les mêmes performances (cf suite du cours).


4. Architectures
Il existe deux architectures différentes :
  • RISC = Reduced Instruction Set Computer
  • CISC = Complex Instruction Set Computer
4.1 RISC (SPARC, Power PC, Alpha)

Des études réalisées en 1974 par John Cocke d'IBM (NY) et David Patterson 1975montrèrent que seules 20 % des instructions d'un processeur réalisent 80 % des traitements d'un programme.

Le concept RISC consiste à créer un jeu d'instructions simples mais très rapides. L'accès à la mémoire est simplifié grâce à l'utilisation de deux instructions (LOAD et STORE).
On peut ainsi :

  • développer et tester un microprocesseur plus rapidement
  • monter plus haut en fréquence de fonctionnement
  • utiliser moins de transistors pour les décodeurs et obtenir des circuits plus petits.
  • la place libérée est utilisée pour augmenter le nombre de registres et la taille des caches.
4.2 CISC (Intel, AMD)

Par opposition au RISC l'architecture CISC désigne des microprocesseurs disposant d'un jeu d'instructions autorisant différents types d'accès aux données. Le but est ici de "coller" au plus près à la syntaxe des langages de programmation de haut niveau en fournissant des instructions proches de celles de ces langages.

Sur le tableau ci-contre, on propose grosso-modo une comparaison CISC/RISC concernant le langage assembleur de l'Intel 8086.
On déplace sur cet exemple 100 octets de l'adresse mémoire src vers l'adresse mémoire dst. A gauche on utilise une macro-instruction (CISC) REP MOVSB équivalent à la partie figurée en vert à droite.

CISC RISC Pascal
MOV CX,100
MOV DI,dst
MOV SI,src
REP MOVSB






MOV CX,100
MOV DI,dst
MOV SI,src
boucle:
MOV AL,[DI]
MOV [SI],AL
INC SI
INC DI
DEC CX
JNZ boucle
Var
  i : integer;
  src, dst : array[1..100] of byte;

for i:=1 to 100 do
  dst[i]=src[i];


4.3 Comparaison RISC / CISC

Chaque architecture possède ses avantages et ses inconvénients :
  • pour le RISC, la complexité est reportée au niveau du compilateur
  • pour le CISC le décodage est plus pénalisant.

En fait les machines CISC se sont orientées vers une architecture RISC. Les instructions CISC sont traduites en micro-instructions RISC traitées par le coeur du processeur.


5. Langage machine, langage assembleur
Le langage machine est le langage compris par le microprocesseur. Ce langage est difficile à maitriser puisque chaque instruction est codée par une séquence propre de bits. Afin de faciliter la tâche du programmeur, on a créé le langage assembleur qui utilise des mnémoniques pour le codage des instructions :




Langage
machine
Langage
assembleur
Pascal
A1 00 01
8B 1E 02 01
01 D8
A3 04 01
MOV AX,[100h]
MOV BX,[102h]
ADD AX,BX
MOV [104h],AX
var a,b,c : integer;

c:=a+b;



6. Fonctionnement

Le traitement des instructions passe par 5 étapes :

FETCH Il s'agit de l'étape de chargment depuis la mémoire de la prochaine instruction à exécuter
DECODE L'instruction est ensuite décodée et traduite pour être interprétée
LOAD OPERAND si l'instruction nécessite des données en provenance de la mémoire ou de registres, elles sont intégrées à l'instruction dans cette étape
EXECUTE L'instruction est ensuite exécutée par l'UAL s'il s'agit d'un calcul
RESULT
WRITE BACK
Le résultat est mis à jour dans un registre ou en mémoire





  Sommaire Suivant

marqueur eStat\'Perso