Objectifs : - PowerPoint PPT Presentation

1 / 38
About This Presentation
Title:

Objectifs :

Description:

Augmenter la bande passante du bus Les processeurs modernes ont des bus de donn es de plus en plus larges, ce qui augmente la quantit d informations ... – PowerPoint PPT presentation

Number of Views:62
Avg rating:3.0/5.0
Slides: 39
Provided by: PierreM92
Category:

less

Transcript and Presenter's Notes

Title: Objectifs :


1
Unité 5a Architecture du Pentium
  • Objectifs
  • À la fin de cette unité vous connaîtrez
    l'architecture du Pentium du point de vue du
    programmeur. Pour y arriver, vous devrez avoir
    atteint les objectifs suivants
  • - énumérer les registres du Pentium accessibles
    au programmeur.
  • - énumérer les indicateurs usuels et décrire leur
    rôle.

2
Unité 5a Architecture du Pentium
  • Pourquoi lassembleur ?
  • Rapide
  • Compact
  • Puissant
  • Pour mieux comprendre et utiliser
  • les langages de haut niveau
  • - variables globales
  • - variables locales et allocation dynamique
  • - passage de paramètres et variables registres
  • - déboguage

3
Unité 5a Architecture du Pentium
  • Pourquoi lassembleur ?
  • Pour mieux comprendre et utiliser
  • les compilateurs
  • - édition de liens
  • - génération de code
  • La structure interne des processeurs
  • La virgule flottante
  • Les interruptions
  • Pour mieux accéder aux périphériques

4
Unité 5a Architecture du Pentium
  • Pourquoi lassembleur ?
  • Universellement utilisé
  • Indispensable dans la programmation des
    microcontrôleurs ou des systèmes embarqués
  • Finalement, parce que cest amusant!!

5
Unité 5a Architecture du Pentium
  • Inconvénients de lassembleur ?
  • Plus long à programmer que les langages de haut
    niveau
  • Pas de vérification de types
  • Pas de structures de contrôle (if, while, etc.)
  • Dépend du processeur

6
Unité 5a Architecture du Pentium
  • Architecture de von Neumann

7
Unité 5a Architecture du Pentium
  • Architecture de von Neumann
  • Exécution séquentielle des instructions
  • Chargement (fetch) de linstruction dans IR
  • Décodage de linstruction
  • Chargement des opérandes sil y a lieu
  • Exécution
  • Écriture du résultat
  • Même avec une horloge de 500 MHz,
  • un tel processeur serait plus lent que
  • les processeurs daujourdhui.
  • Pourquoi ?

8
Unité 5a Architecture du Pentium
  • Architecture de von Neumann
  • Les registres nont que 8 bits
  • Bus dadresses de 16 bits -gt 64 Ko max de RAM
  • Même si on mettait tous les registres à 32 bits
    et des bus de données et dadresses de 32 bits,
    on naurait pas encore une performance élevée.
  • Les accès mémoire prennent de lordre de 100
    ns. Le processeur a un temps de cycle de 2 ns à
    500 MHz.
  • Il faudrait donc ajouter un cache de niveau 1
    sur la puce et un cache de niveau 2.
  • Il manque encore la virgule flottante et la
    mémoire virtuelle.

9
Unité 5a Architecture du Pentium
  • Architecture de von Neumann
  • Même en ajoutant des instructions de virgule
    flottante et la mémoire virtuelle, on naurait
    pas encore une performance comparable à celle des
    processeurs actuels.
  • En effet, il ny a quune unité dexécution.
    Chaque instruction prend au moins quatre à six
    cycles
  • - Chargement de linstruction
  • - Décodage de linstruction
  • - Exécution de linstruction
  • - Écriture du résultat.
  • Et, le cas échéant,
  • - Chargement dun ou deux opérandes

10
Unité 5a Architecture du Pentium
  • Architecture de von Neumann
  • Or les processeurs actuels effectuent en moyenne
    plus dune instruction par cycle.
  • Comment y parviennent-ils ?

11
Unité 5a Architecture du Pentium
  • Amélioration de la performance
  • Examinons différentes façons daméliorer la
    performance dun proces-seur
  • 1. Augmenter la vitesse de lhorloge.
  • Ceci implique généralement la réduction de la
    géométrie sur la puce pour minimiser les délais
    de propagation et la consommation de puissance.
    La technologie en est aujourdhui à 0,15
    microns (µm). Les vitesses dhorloge atteignent
    présentement 1000 MHz.

12
Unité 5a Architecture du Pentium
  • Amélioration de la performance
  • 2. Exécuter les différentes instructions de façon
    combinatoire plutôt que séquentielle.
  • Multiplicateurs combinatoires, décaleurs à
    barillet, retenue anticipée.
  • Viser à ce que la plupart des instructions
    sexécutent en 1 cycle dhorloge.
  • 3. Introduire du parallélisme
  • Pipeline.
  • Plusieurs unités dexécution travaillant
    simultanément
  • Processeurs superscalaires (plus dune
    instruction par cycle dhorloge).
  • Prédiction de branchements.

13
Unité 5a Architecture du Pentium
  • Amélioration de la performance
  • 4. Minimiser les accès à la mémoire
  • Mémoire cache pour les données et les
    instructions sur la puce du processeur lui-même.
  • Plus grand nombre de registres.
  • 5. Augmenter la bande passante du bus
  • Les processeurs modernes ont des bus de données
    de plus en plus larges, ce qui augmente la
    quantité dinformations (données et instructions)
    lues lors de chaque accès à la mémoire. Par
    exemple, le bus de données du Pentium est de 64
    bits.

14
Unité 5a Architecture du Pentium
  • Le Pentium II

15
Unité 5a Architecture du Pentium
  • Le Pentium II
  • Le Pentium est un processeur CISC
  • Nombre élevé dinstructions
  • La plupart des instructions peuvent accéder à
    la mémoire
  • Instructions de longueur très variable (8 à 108
    bits)
  • Faible nombre de registres (4 registres
    généraux)
  • On ne vise pas lexécution de chaque
    instruction en 1 cycle
  • Il adopte cependant plusieurs des principes de la
    technologie RISC
  • Pipeline
  • Multiples unités dexécution

16
Unité 5a Architecture du Pentium
  • Le Pentium II

17
Unité 5a Architecture du Pentium
  • Registres de base

7
31
15
0
EAX AX
A
H
A
L
B
H
B
L
EBX BX
Registres généraux
ECX CX
C
H
C
L
D
H
D
L
EDX DX
Source index
ESI
SI
Destination index
DI
EDI
Base pointer
BP
EBP
Stack pointer
SP
ESP
Registres de Segment
Registres fantômes
15
0
Descriptor
CS
C
o
d
e

Descriptor
DS
D
a
t
a

Descriptor
S
t
a
c
k

SS
Descriptor
E
x
t
r
a

ES
Descriptor
FS
F

Descriptor
G

GS
Registres d'état et de contrôle
31
0
EFLAGS
FLAGS
31
0
EIP
IP
18
Unité 5a Architecture du Pentium
  • Registres généraux
  • Accumulateur eax, ax, ah, al
  • Registre de Base ebx, bx, bh, bl
  • Registre de Comptage ecx, cx, ch, cl
  • Registre de Données edx, dx, dh, dl
  • Indice source esi,si
  • Indice destination edi,di
  • Pointeur de base ebp,bp
  • Pointeur de pile (stack) esp, sp

19
Unité 5a Architecture du Pentium
  • Registres de segment
  • Segment code CS
  • Segment pile SS
  • Segment données DS
  • Segment extra ES
  • Segment F FS
  • Segment G GS
  • Autres
  • Compteur ordinal EIP
  • Registre détat et de contrôle EFlags

20
Unité 5a Architecture du Pentium
  • Registres de virgule flottante

Registres de données
64 63
79 78
0
Signe
R0
Exposant
Mantisse
R1
R2
R3
R4
R5
R6
R7
15
47
0
0
Registre de
Pointeur d'instruction de FPU
contrôle
Registre
Pointeur d'opérande de FPU
d'état
10
0
Registre
Étiquette
Opcode
21
Unité 5a Architecture du Pentium
  • Registres MMX
  • Il est à noter que ces 8 registres sont
    physiquement les mêmes que les registres de
    virgule flottante.

63
0
MM0
MM1
MM2
MM3
MM4
MM5
MM6
MM7
22
Unité 5a Architecture du Pentium
  • Registres SIMD
  • Il est à noter que ces 8 registres sont
    physiquement les mêmes que les registres de
    virgule flottante.

127
0
XMM0
XMM1
XMM2
XMM3
XMM4
XMM5
XMM6
XMM7
23
Unité 5a Architecture du Pentium
  • Le registre EFLAGS

3
1
1
6
1
5
8
7
0
V
V
I
C
P
A
Z
S
T
I
D
O
N
R
I
O
V
A
I
I
0
1
0
0
0
0
0
0
0
0
0
0
0
0
0
F
F
F
F
F
F
F
F
F
T
F
P
L
M
C
D
F
P
CF Carry Flag PF Parity Flag AF Auxiliary
Carry Flag ZF Zero Flag SF Sign Flag TF
Trap Flag IF Interrupt Enable Flag DF
Direction Flag OF Overflow Flag IOPL I/O
Privilege Level
NT Nested Task Flag RF Resume Flag VM
Virtual 386 Mode AC Alignment Check VIF
Virtual Interrupt Flag VIP Virtual Interrupt
Pending ID Identification Flag
24
Unité 5a Architecture du Pentium
  • Autres registres
  • CR0 à CR4 (mémoire virtuelle)
  • Global Descriptor Table Register GDTR
  • Interrupt Descriptor Table Register IDTR
  • Local Descriptor Table Register LDTR
  • Task Register TR
  • Debug Registers DR0 à DR7
  • Test Registers TR6 et TR7
  • Time Stamp Counter TSC

25
Unité 5a Architecture du Pentium
  • Historique
  • Lhistoire de la famille 80x86 dIntel commence
    dans les années 70 avec le 8080, un processeur de
    8 bits avec un bus dadresses de 16 bits, qui
    pouvait adresser un total de 64 Ko.
  • Vers 1980, le 8086 et le 8088 font leur
    apparition, ce dernier avec le premier PC dIBM.
    Ce sont des processeurs de 16 bits avec un bus
    d adresses de 20 bits, qui avaient une capacité
    d adressage de 1 Mo. Le 8088 diffère du 8086 par
    la largeur du bus de données externe qui est de 8
    bits.

26
Unité 5a Architecture du Pentium
  • Historique
  • Toutefois, même si le bus dadresses était de
    20 bits, les registres internes dadresses
    étaient toujours de 16 bits pour assurer la
    compatibilité avec le 8080. Comment donc accéder
    au reste de la mémoire?
  • Toute la complexité des processeurs Intel vient
    de la solution adoptée à cette époque pour régler
    ce problème.

27
Unité 5a Architecture du Pentium
  • Historique
  • On décida que ladresse serait constituée des 16
    bits des registres internes ajoutée à 16 fois le
    contenu dun de quatre registres appelés
    registres de segment.

Segment
0000

Offset 16 bits
Adresse 20 bits
Ces quatre registres étaient CS (Code Segment),
DS (Data Segment), SS (Stack Segment) et ES
(Extra Segment).
28
Unité 5a Architecture du Pentium
  • Historique
  • On remarque que chaque segment a une taille de
    64 Ko (offset 16 bits), et que la distance entre
    chaque segment peut aller de 16 octets à 64 Ko.
  • La capacité totale d adressage est
  • FFFF0 FFFF 10FFEF,
  • qui dépasse légèrement 1 Mo (FFFFF).
  • Le 80286 fait son apparition quelques années
    plus tard avec un bus dadresses de 24 bits
    (capacité de 16 Mo). Cest là que les choses se
    compliquent.

29
Unité 5a Architecture du Pentium
  • Historique
  • Jusqualors, les processeurs fonctionnaient en
    ce quIntel appelle le  mode réel . Les
    systèmes dexploitation utilisés avec ces
    processeurs étaient mono-tâches et mono-usagers.
    Les registres de segment contenaient de vraies
    adresses, et lutilisateur pouvait accéder sans
    limite à toutes les ressources du système les
    périphériques, les interruptions, etc.
  • Toutefois, les registres de segment demeuraient
    de 16 bits. Comment donc accéder aux 16 Mo que
    permettait le bus dadresses de 24 bits du 80286?

30
Unité 5a Architecture du Pentium
  • Historique
  • Pour permettre lavènement de systèmes
    dexploitation plus performants et une plus
    grande capacité de mémoire, Intel introduisit
    avec le 80286 le  mode protégé .
  • Mais comme la plupart des applications roulant
    sous MS-DOS, qui dominait le marché, étaient
    incompatibles avec le mode protégé, on continua
    pendant des années à fonctionner en mode réel
    avec une capacité de mémoire de 1 Mo.

31
Unité 5a Architecture du Pentium
  • Historique
  • Le 80286 fut donc longtemps considéré comme un
    8086 rapide parce que personne ne savait comment
    utiliser le mode protégé. Pourtant, ce processeur
    offrait la mémoire virtuelle, des droits daccès
    pour la sécurité, des niveaux de privilège
    dexécution, etc.
  • Pendant ce temps, Motorola mettait en marché la
    famille 68000, qui offrait des registres de 32
    bits et, à partir de 1985 avec le 68020, une
    capacité d adressage de 4 Go.

32
Unité 5a Architecture du Pentium
  • Historique
  • En 1987, Intel met au point le 80386, puis le
    80486, ensuite le Pentium, le Pentium II en 1997,
    le Pentium III en 1999 et finalement le Pentium 4
    en 2001. Les ordinateurs que nous utilisons pour
    ce cours sont munis de Pentium III.

33
Unité 5a Architecture du Pentium
  • Historique
  • Sélecteur
  • Index index dans une table de descripteurs,
    possibilité de 8 K segments (13 bits).
  • TI indice de table 0 GDT, 1 LDT
  • RPL niveau de privilège demandé 0 à 3

34
Unité 5a Architecture du Pentium
  • Historique
  • Descripteur de segment
  • Base adresse de départ du segment
  • Limit taille du segment 0 à 1 méga-unités
  • G granularité unité 1 octet si G 0 ou 4
    Ko si G 1

3
1
1
6
1
5
0
l
i
m
i
t


0
-
1
5
b
a
s
e

0
-
1
5
6
3
4
8
4
7
3
2
3
9
5
6
D
A
S
l
i
m
i
t
b
a
s
e

1
6
-
2
3
b
a
s
e

2
4
-
3
1
P
G
D
O
V
P

T
y
p
e
A
1
6
-
1
9
L
L
0
D
r
o
i
t
s
d
'
a
c
c
è
s
35
Unité 5a Architecture du Pentium
  • Environnement
  • Les ordinateurs de nos laboratoires fonctionnent
    tous sous Windows 2000.
  • Ceci crée des difficultés pour la programmation
    en assembleur
  • Les accès aux interruptions logicielles et
    matérielles (accès au BIOS) ainsi quaux
    entrées/sorties sont interdits sauf si on exécute
    le programme à partie de la fenêtre DOS.
  • Pour que les programmes fonctionnent normalement
    sous Windows 2000, il faut utiliser un assembleur
    32 bits et effectuer des appels système pour
    accéder aux fonctions système et aux
    périphériques.

36
Unité 5a Architecture du Pentium
  • Exemple
  • En C
  • void main()
  • short i, j, k
  • i 4
  • j 6
  • k i j 5

37
Unité 5a Architecture du Pentium
  • Exemple
  • En assembleur
  • .586 Pentium
  • .model flat, stdcall mémoire 4 Go, appel de
    fonctions normal
  • option casemapnone respecte la casse
  • include \masm32\include\kernel32.inc librairie
    pour ExitProcess
  • includelib \masm32\lib\kernel32.lib
  • .data? variables globales non initialisées
  • i dw ? word 16 bits short
  • j dw ?
  • k dw ?

38
Unité 5a Architecture du Pentium
  • Exemple
  • En assembleur
  • .code
  • start début du programme principal
  • mov ax, 4
  • mov i, ax i 4
  • mov bx, 6
  • mov j, bx j 6
  • add ax, bx
  • add ax, 5 i j 5
  • mov k, ax résultat dans k
  • invoke ExitProcess, 0 retourner à Windows
  • end start fin du programme
Write a Comment
User Comments (0)
About PowerShow.com