You are on page 1of 145

Architecture des ordinateurs

Sylvain MONTAGNY sylvain.montagny@univ-savoie.fr Btiment chablais, bureau 13 04 79 75 86 86


Retrouver tous les documents de Cours/TD/TP sur le site www.master-electronique.com

Prsentation cours : Sommaire


Cours

: 12 h en 8 sances

Chapitre 1 : Rappels gnraux sur les processeurs Chapitre 2 : Le pipeline des microprocesseurs Chapitre 3 : Les mmoires caches Chapitre 4 : Les interruptions Chapitre 5 : Les accs DMA
Universit de Savoie 2

Prsentation TD
TD

: 15 h en 10 sances

TD 1 : Rappels sur les architectures microprocesseurs TD 2 : Pipeline TD 3 : Mmoires Caches TD 4 : Les interruptions TD 5 : Les transferts DMA
Universit de Savoie 3

Prsentation TP
TP

: 16 h en 4 sances

TP 1 : Simulation de mmoire cache et pipeline TP 2 : Programmation dapplications sur cible TP 3 : Programmation dapplications sur cible

Universit de Savoie

Chapitre 1 : Rappel gnraux sur les processeurs

1.1 Rappel sur larchitecture interne des microprocesseurs 1.2 Le traitement des instructions 1.3 Les modes dadressages 1.4 Exemple dexcution dun programme

Universit de Savoie

Larchitecture interne
Wafer
Un microprocesseur est constitu dun morceau de silicium dop. Cest donc un ensemble de millions de transistors.

Wafer : Galette de plusieurs processeurs 1 processeur : quelques millimtres carrs


Universit de Savoie

Larchitecture interne
Unit commande/traitement

Un microprocesseur est construit autour de deux lments principaux :


Une unit de commande Une unit de traitement

Universit de Savoie

Larchitecture interne
Schma

Universit de Savoie

Larchitecture interne
Lunit de commande (1)
Elle permet de squencer le droulement des instructions. Elle effectue la recherche en mmoire de l'instruction, le dcodage de linstruction code sous forme binaire. Enfin elle pilote lexcution de linstruction.

Les blocs de lunit de commande :


1.

Le compteur de programme (PC : Programme Counter) appel aussi Compteur Ordinal (CO) est constitu par un registre dont le contenu est initialis avec l'adresse de la premire instruction du programme. Il contient toujours ladresse de la prochaine instruction excuter.
Universit de Savoie 9

Larchitecture interne
Lunit de commande (2)
2.

Le registre d'instruction et le dcodeur d'instruction : Chacune des instructions excuter est transfr depuis la mmoire dans le registre instruction puis est dcode par le dcodeur dinstruction. Bloc logique de commande (ou squenceur) : Il organise l'excution des instructions au rythme dune horloge. Il labore tous les signaux de synchronisation internes ou externes (bus de commande) du microprocesseur en fonction de linstruction quil a a excuter. Il s'agit d'un automate ralis de faon microprogramme.

3.

Universit de Savoie

10

Larchitecture interne
Lunit de commande (3)

Universit de Savoie

11

Larchitecture interne
Lunit de traitement (1)
Elle regroupe les circuits qui assurent les traitements ncessaires l'excution des instructions

Les blocs de lunit de traitement :


1.

2.

Les accumulateurs sont des registres de travail qui servent stocker une oprande au dbut d'une opration arithmtique et le rsultat la fin de l'opration. LUnit Arithmtique et Logique (UAL) est un circuit complexe qui assure les fonctions logiques (ET, OU, Comparaison, Dcalage, etc) ou arithmtique (Addition, soustraction).
12

Universit de Savoie

Larchitecture interne
Lunit de traitement (2)
3.

Le registre d'tat est gnralement compos de 8 bits considrer individuellement. Chacun de ces bits est un indicateur dont l'tat dpend du rsultat de la dernire opration effectue par lUAL. On les appelle indicateur dtat ou flag ou drapeaux. Dans un programme le rsultat du test de leur tat conditionne souvent le droulement de la suite du programme. On peut citer par exemple les indicateurs de :

Retenue (carry : C) Dbordement (overflow : OV ou V) Zro (Z) ...


Universit de Savoie 13

Larchitecture interne
LUnit de traitement (3)

UAL : Unit Arithmtique et Logique)


A 8 8 B

OV =Overflow Flag Slection de lopration C0 C1 C2 C3 C = Carry Flag Z = Zero Flag

UAL

S = Sign Flag P = Parity Flag

Flag = drapeau Registre dtat

R Rsultat 14

Universit de Savoie

Larchitecture interne
Lunit de traitement (4)

Universit de Savoie

15

Larchitecture interne
Architecture complte

Universit de Savoie

16

Rappels: le fonctionnement basique dune opration de calcul


1 2

CPU
4 3

Mmoire

(1) Charger une instruction depuis la mmoire (2) Charger les oprandes depuis la mmoire (3) Effectuer les calculs (4) Stocker le rsultat en mmoire

Universit de Savoie

17

Larchitecture
Von Neuman

CPU

BUS

Mmoire Programme & donnes

Un seul chemin d'accs la mmoire


Un bus de donnes (programme et donnes), Un bus dadresse (programme et donnes)

Architecture des processeurs dusage gnral Goulot d'tranglement pour l'accs la mmoire
Universit de Savoie 18

Larchitecture
Harvard
Mmoire programme Mmoire donne

CPU

Sparation des mmoires programme et donnes


Un bus de donnes programme, Un bus de donnes pour les donnes, Un bus dadresse programme, Un bus dadresse pour les donnes.

Meilleure utilisation du CPU :


Chargement du programme et des donnes en parallle

19

Larchitecture
Harvard : Cas des microcontrleurs PIC

Seul les bus de donne (data ou instructions) sont reprsentes

Universit de Savoie

20

Chapitre 1 : Rappel gnraux sur les processeurs


1.1 Rappel sur larchitecture interne des microprocesseurs 1.2 Le traitement des instructions 1.3 Les modes dadressages 1.4 Exemple dexcution dun programme

Universit de Savoie

21

Le traitement des instructions


Organisation dune instruction
Le microprocesseur ne comprend quun certain nombre dinstructions qui sont codes en binaire. Une instruction est compose de deux lments :

Le code opration : Cest un code binaire qui correspond laction effectuer par le processeur Le champ oprande : Donne ou bien adresse de la donne.

La taille d'une instruction peut varier, elle est gnralement de quelques octets (1 8), elle dpend galement de l'architecture du processeur.

Universit de Savoie

22

Le traitement des instructions


Exemple dinstruction

Instruction Addition :
Accumulateur = Accumulateur + Oprande

Correspond linstruction ADD A,#2

Instruction (16 bits) Code opratoire (5 bits) Champ oprande (11 bits) ADD A #2 11001 000 0000 0010
Cette instruction est comprise par le processeur par le mot binaire :

11001

000 0000 0010 = code machine


Universit de Savoie 23

Le traitement des instructions


Phase 1 : Recherche de linstruction en mmoire

La valeur du PC est place sur le bus d'adresse par l'unit de commande qui met un ordre de lecture. Aprs le temps d'accs la mmoire, le contenu de la case mmoire slectionne est disponible sur le bus des donnes. L'instruction est stocke dans le registre dinstruction du processeur.

Universit de Savoie

24

Le traitement des instructions


Phase 2 : Dcodage et recherche de loprande

L'unit de commande transforme l'instruction en une suite de commandes lmentaires ncessaires au traitement de l'instruction. Si l'instruction ncessite une donne en provenance de la mmoire, l'unit de commande rcupre sa valeur sur le bus de donnes. Loprande est stock dans le registre de donnes.

Universit de Savoie

25

Le traitement des instructions


Phase 3 : Excution de linstruction

Le squenceur ralise l'instruction. Les drapeaux sont positionns (registre d'tat). L'unit de commande positionne le PC pour l'instruction suivante.

Universit de Savoie

26

Le traitement des instructions


Les architectures RISC et CISC (1)
Actuellement larchitecture des microprocesseurs se composent de deux grandes familles :

L

architecture CISC
(Complex Instruction Set Computer)

Larchitecture

RISC

(Reduced Instruction Set Computer)

Universit de Savoie

27

Le traitement des instructions


Les architectures RISC et CISC (2)

Universit de Savoie

28

Chapitre 1 : Rappels gnraux sur les processeurs


1.1 Rappel sur larchitecture interne des microprocesseurs 1.2 Le traitement des instructions 1.3 Les modes dadressages 1.4 Exemple dexcution dun programme

Universit de Savoie

29

Les modes dadressages


Ce sont les diverses manires de dfinir la localisation d un oprande. Les trois modes dadressage les plus courant sont :

Adressage immdiat Adressage direct Adressage indirect

Universit de Savoie

30

Les modes dadressages


Immdiat
Exemple : ADDA #4
ALU

Mmoire M
Adresses
0x00 0x01

Contenu
0 .. 100 0101 0 .. 010 1111

Compteur Ordinal adrs+1 PC

adrs adrs + 1 adrs + 2

110 1 0101 ADDA 0 1 1 0#4 1001 .. 1 010 1101 0011 1000 1 100 0101 1 010 1001 . 0111 1010

Universit de Savoie

Accumulateur
31

0 .. 110 1101

Les modes dadressages


Direct
Exemple : ADDA adresseX
ALU

Mmoire
Adresses
0x00 0x01

Contenu
0 .. 100 0101 0 .. 010 1111

Compteur Ordinal adrs+1 PC

adrs adrs + 1 adrs + 2

110 1 0101 ADDA 0 adresseX 110 1001 1010 1101

adresseX

0xxxx 0 1 1 xxxx 1000 1 100 0101 1 010 1001 . 0111 1010

Universit de Savoie

Accumulateur
32

0 .. 110 1101

Les modes dadressages


Indirect
Exemple : ADDA @adresseX
ALU

Mmoire
Adresses
0x00 0x01

Contenu
0 .. 100 0101 0 .. 010 1111

Compteur Ordinal adrs+1 PC

adrs adrs + 1 adrs + 2

110 1 0101 ADDA 0 110 1001 @adresseX 1010 1101

@adresseX adresseX

0 adresseX 011 1000 1 100 0101 1 0 1 0 xxxxxx 1001 xxxxx . 0111 1010

Universit de Savoie

Accumulateur
33

0 .. 110 1101

Les modes dadressages


Pourquoi existe-t-il plusieurs modes dadressage ?

Universit de Savoie

34

Chapitre 1 : Rappel gnraux sur les processeurs


1.1 Rappel sur larchitecture interne des microprocesseurs 1.2 Le traitement des instructions 1.3 Les modes dadressages 1.4 Exemple dexcution dun programme

Universit de Savoie

35

Exemple dexcution
Directives dassemblage Valeurs des symboles
00000040 00000000 00000001 000000 000000 000000 000002 000004 000006 000008 00000B 3E D3 3E D3 C3 00 40 01 40 00 00 .TITLE .PROC .START HP HPOFF HPON .LOC 0 OSCIL: MOVE MOVE MOVE MOVE JUMP Bruit_HP I8085 OSCIL = = = 1064 0 1 ; Titre du programme ; Processeur utilis ; Adresse dbut programme ; Adresse du Haut-Parleur (40 Hexa) ; Constante, membrane relache ; Constante, membrane attire ; Adresse dassemblage du programme

Mnmoniques des instructions


#HPOFF, A A, $HP #HPON, A A, $HP OSCIL

; Charge valeur HPOFF (0) dans laccumulateur A ; Charge A sur priphrique HP ; Charge valeur HPON (1) dans laccumulateur A ; Charge A sur priphrique HP ; Saute au dbut OSCIL

Adresses

Code des .END instructions

; Fin de lassemblage

Commentaires
36

Exemple dexcution
Programme: instructions
.00

Vue symbolique
,A
MOVE #HPOFF,A

3E 00 D3 40 3E 01 D3 40 C3 00 00

MOVE

Adresses

.01 .02 .03

#HPOFF MOVE A,
MOVE A,$HP

$HP MOVE ,A
MOVE #HPON,A

.04

.05 .06 .07 .08 .09 0A

#HPON MOVE A,
MOVE A,$HP

$HP JUMP
JUMP OSCIL

OSCIL 37

Exemple dexcution
Continue.
e le cle le l c c c u u u u bo e bo e bo e bo m m m i i i 2 4 3

re

Universit de Savoie

38

Chapitre 2 : Le pipeline

2.1 Dfinition dun pipeline 2.2 Les tages dun pipeline 2.3 Les alas dans le pipeline

Universit de Savoie

39

Dfinition dun pipeline


Comparaison (1)

1re tape de conception 2me tape de conception 3me tape de conception 4me tape de conception
Universit de Savoie 40

Dfinition dun pipeline


Comparaison (2)

Dfinition dun pipeline


Comparaison (3)

Dfinition dun pipeline


La technique du pipeline est une technique de mise en oeuvre qui permet plusieurs instructions de se chevaucher pendant l'excution. Une instruction est dcoupe dans un pipeline en petits morceaux appels tage de pipeline. La technique du pipeline amliore le dbit des instructions plutt que le temps d'excution de chaque instruction. La technique du pipeline exploite le paralllisme entre instructions dun flot squentiel dinstructions. Elle prsente lavantage de pouvoir, contrairement d'autres techniques d'acclration, tre rendue invisible du programmeur.
43

Universit de Savoie

Chapitre 2 : Le pipeline

2.1 Dfinition dun pipeline 2.2 Les tages dun pipeline 2.3 Les alas dans le pipeline

Universit de Savoie

44

Les tages dun pipeline


P (Prefecth) - Generate program address = Incrmentation du compteur ordinal F (Fetch) - Get Opcode = Lecture du code de linstruction en mmoire D (Decode) - Decode instruction = Dcodage de linstruction A (Access) - Generate read address = Calcul des adresses des oprandes = Calcul de ladresse du rsultat R (Read) - Read operands = Lecture des oprandes en mmoire X ( Execute) = Excution de linstruction = Ecriture du rsultat ladresse calcule P F D A R X P F D A R X P F D A R X P F D A R X P F D A R X P F D A R X
Full Pipeline : Toutes les units matrielles du DSP sont en activits

Les tages dun pipeline


Comparaison avec et sans pipeline

Moins de cycles par instruction Consommation rduite


Universit de Savoie 46

Les tages dun pipeline


Utilisation des ressources par le pipeline

Etage pipeline
P F D A R X

Description
Generate program address Get Opcode Decode instruction Generate read address Read Operand Generate write address Execute instruction Write result

Partie hardware utilise


PC Program memory Decoder ARs, ARAU Data memory ARs, ARAU MAC, ALU Data Memory

ARAU = Auxiliary Register Arithmetic Unit


47
7

Les tages dun pipeline


Les retards

Le pipeline atteint son plein rendement une fois quil est rempli Un retard peut se produire

Sil existe un conflit de ressources (retard ponctuel)


accs la mmoire utilisation des bus

En cas de rupture de squence (vidange du pipeline)


branchement non prvu appel de sous-programme interruption


48

Universit de Savoie

Les tages dun pipeline


Exemple de rupture
Program

54x
P1 F1 P2 D1 F2 P3 A1 D2 F3 P4 R1 A2 D3 --X1 R2 A3 ---X2 R3 ---X3 F4 P5 -D4 F5 P6 A4 D5 F6 R4 A5 D6

& Donnes

X4 R5 A6 X5 R6

Universit de Savoie

49

Les tages dun pipeline


Solution par lorganisation du code
54x D
P1 F1 P2 D1 F2 P3 A1 D2 F3 P4 R1 A2 D3 F4 P5

or

54x P D

X1 R2 A3 D4 F5 P6 X2 R3 A4 D5 F6 X3 R4 A5 D6 X4 R5 A6 X5 R6 X6

NO CONFLICT

50

Types de pipelining
Squentiel : Pas de pipeline (ex: Motorola 56000) Pipeline simple (plupart des DSP)

t Double pipeline (ex: Pentium)

t Superpipelin : Nombre d'tages plus lev (ex: TMS320C6000)

t
Universit de Savoie

t
51

Les tages dun pipeline


Remarques sur les performances

Certaines phases sont inutiles pour certaines instructions (p.ex. un LOAD ne ncessite pas d'excution), mais toutes les instructions doivent traverser tout le pipeline. Ce "gaspillage" est ncessaire pour simplifier le contrle.

Universit de Savoie

52

Les tages dun pipeline


Exemple de profondeur
Processeur
Intel Pentium 4 Prescott Intel Pentium 4 AMD K10 Intel Pentium III AMD Athlon PowerPC G4 (PPC 7450) IBM POWER5 IBM PowerPC 970 Intel Itanium

Profondeur du pipeline
31 20 16 10 12 7 16 16 10

Universit de Savoie

53

Chapitre 2 : Le pipeline

2.1 Dfinition dun pipeline 2.2 Les tages dun pipeline 2.3 Les alas dans le pipeline

Universit de Savoie

54

Alas d'un pipeline


Les types dalas

La prsence d'un pipeline (et donc le partage de l'excution d'une instruction en plusieurs tages) introduit des alas :

Alas de structure : L'implmentation empche une certaine combinaison d'oprations (lorsque des ressources matriels sont accdes par plusieurs tages). Alas de donnes : Le rsultat d'une opration dpend de celui d'une opration prcdente qui n'est pas encore termine. Alas de contrle : L'excution d'un saut conditionnel ne permet pas de savoir quelle instruction il faut charger dans le pipeline puisque deux choix sont possibles.

Universit de Savoie

55

Les alas dans le pipeline


Alas de structures
Les alas de structure peuvent tre limins en agissant sur l'architecture du processeur lors de sa conception.

Program

54x
P1 F1 P2 D1 F2 P3 A1 D2 F3 P4 R1 A2 D3 --X1 R2 A3 --X2 R3 --X3 F4 P5 D4 F5 P6 A4 D5 F6 R4 A5 D6

& Donnes

X4 R5 A6
56

X5 R6

-Universit-de Savoie--

Les alas dans le pipeline


Alas de donnes (1)

Une instruction ne peut rcuprer le rsultat de la prcdente car celui-ci n'est pas encore disponible.
Exemple : ADD R1, R2, R3 // R1 = R2 + R3 STORE R1, 1000 // C(1000) = R1

Cette squence ne stocke pas l'emplacement mmoire 1000 la valeur de R1 contenant la somme R2 + R3, mais la valeur de R1 contenue avant l'instruction ADD.

Universit de Savoie

57

Les alas dans le pipeline


Alas de donnes (2)

Prenons par exemple la squence suivante. Cette suite dinstruction possde une dpendance directe simple. En effet A ne peut pas tre disponible pour la partie droite de la seconde instruction, puisquelle nest pas encore excuter lorsque les oprandes de la seconde instruction sont chargs dans le pipeline.
1. 2. 3.

A=B+C D=A+C E=F+B

Une solution consiste rarranger les instructions. Dans cet exemple, l'opration de la ligne 3 n'a aucune interdpendance avec les deux prcdentes. Le code modifi sera :
1. 2. 3.

A=B+C E=F+B D=A+C


Universit de Savoie 58

Les alas dans le pipeline


Alas de donnes (3)

Si ncessaire, les instructions intercales peuvent tre des NOP.


1. 2. 3. 4.

A=B+C NOP D=A+C E=F+B

Remarques :

Le compilateur n'est pas toujours en mesure de dtecter les alas (par exemple, si les alas concernent des pointeurs). Le nombre d'instructions intercaler dpend de la structure (nombre d'tages) du pipeline. La complexit du compilateur en est fortement augmente.

59

Les alas dans le pipeline


Alas de donnes (4)
La frquence leve d'alas de donnes peut justifier l'introduction de matriel supplmentaire. On peut par exemple introduire une connexion directe entre la sortie de l'tage d'excution et l'tage de chargement des oprandes. Ceci permet au rsultat d'une instruction d'tre un oprande de l'instruction suivante. Ci contre un pipeline pouvant raliser cette solution.

Chargement Chargement (instruction) (instruction) Dcodage Dcodage Chargement Chargement (oprandes) (oprandes) Excution Excution Rangement Rangement (oprandes) (oprandes)

Universit de Savoie

Les alas dans le pipeline


Alas de contrle (1)
La prsence d'un pipeline introduit des complications lors de l'excution d'un saut ou dun saut conditionnel. L'tage de dcodage de l'instruction n'est pas en mesure de calculer l'adresse de l'instruction suivante avant de connatre le rsultat de linstruction prcdente.

Universit de Savoie

61

Les alas dans le pipeline


Alas de contrle (2)

Une solution possible est de faire en sorte que le processeur devine si le branchement sera pris ou pas pris (branch prediction) et commencer excuter les instructions correspondant cette dcision.

Si le choix se rvle correct, la pnalit de branchement est limine. Si le choix se rvle incorrect, il faudra vider le pipeline et charger l'instruction correcte.

Pour faire de la prdiction de branchement il y a deux possibilits :


Solution statique : La direction du branchement est fixe, dfinie en matriel au moment de la conception du processeur. Solution dynamique : La direction du branchement est dfinie au moment de l'excution du programme, sur la base d'une analyse du code.

Universit de Savoie

62

Les alas dans le pipeline


Alas de contrle (3)
Solution statique : Les sauts en arrire (boucles) sont plus souvent pris que pas pris. En effet, une boucle est souvent raliser avec plus que 2 itrations. =>On peut donc faire une prdiction selon la direction:

si le saut est en arrire, il est pris, s'il est en avant, il n'est pas pris.

Cette stratgie donne des trs bons rsultats (7080%) avec une augmentation relativement restreinte de la logique de contrle: elle est utilise dans plusieurs processeurs (p.ex., MicroSparc, HP-PA).

Universit de Savoie

63

Les alas dans le pipeline


Alas de contrle (4)
Solution dynamique Pour raliser une prdiction dynamique le processeur mmorise le comportement du programme lors de l'excution des sauts. chaque excution d'un branchement dans un programme, le processeur mmorise si le saut tait pris ou pas pris dans un tampon de prdiction de branchement. Sur la base du comportement pass du programme pour un branchement donn, le processeur prdit son comportement pour l'excution suivante du mme saut. Par rapport la prdiction statique, la prdiction dynamique est plus performante, mais ncessite une quantit trs importante de logique de contrle.
NON PRIS

PRIS

Prdiction Prdiction non non ralise ralise

PRIS

Prdiction Prdiction ralise ralise


NON PRIS

Machine dtat prsente dans le processeur pour la prdiction de branchement statistique

Les alas dans le pipeline


Gestion des interruptions
La prsence d'un pipeline complique le traitement des interruptions: lors du dclenchement d'une interruption nonmasquable, la routine de traitement doit parfois tre lance immdiatement. Le pipeline contiendra alors des instructions partiellement excutes.

CK INST 1 INST 2 INST 3 INST 4


P F P D F P A D F P R A D F X R A D X R A X R X
65

INTERRUPTION

Universit de Savoie

Les alas dans le pipeline


Rsum

Le pipeline amliore le dbit mais pas le temps par instruction : il faut toujours cinq cycles une instruction dun pipeline cinq tages pour sexcuter. Les dpendances de donnes et de contrle dans les programmes imposent une limite suprieure au gain que peut gnrer le pipeline car le processeur doit parfois attendre la fin dune instruction pour que les dpendances soit rsolues. On peut lever cette limite, mais pas lliminer, en rduisant les alas de contrle par des optimisations, et les alas de donnes par un ordonnancement des instructions par le compilateur.

Universit de Savoie

66

Chapitre 3 : Les mmoires caches

3.1 Objectif et principe dune mmoire cache 3.2 O placer un bloc? 3.3 Comment un bloc est-il trouv? 3.4 Quel bloc remplac lors dun dfaut? 3.5 Comment sont traites les critures?

Universit de Savoie

67

Objectifs et principes du cache


Les

mmoires doivent rpondre deux contraintes contradictoires :


Taille importante Temps daccs court

Principe

de base du cache :

Les mots mmoires les plus frquemment utiliss sont conservs dans une mmoire rapide (cache) plutt que dans une mmoire lente (mmoire centrale).
Universit de Savoie 68

Objectifs et principes du cache


Vitesse des mmoires et des processeurs (1) volution

Anne
1990 1998 2002

Temps de cycle processeur


~100ns ~4ns ~0.6ns

Temps de cycle mmoire


~140ns ~60ns ~50ns

Universit de Savoie

69

Objectifs et principes du cache


Vitesse des mmoires et des processeurs (2)

Universit de Savoie

70

Objectifs et principes du cache


Principe de localit (1)

Localit spatiale :

Tendance accder aux donnes qui sont proches de celles rcemment utilises

Localit temporelle :

Tendance rutiliser des donnes rcemment utilises

Universit de Savoie

71

Objectifs et principes du cache


Principe de localit (2)
Localit temporelle = prendre les mme donnes dans un court instant

Adresses en mmoire

Localit spatiale = Prendre les donnes adjacentes dans un court instant

Temps

72

Objectifs et principes du cache


Principe de localit (3)

Les donnes

Le programme
... LDR ADD STR ADD ADD BRn ... R1, R0, R1, R1, R1, R0, R0, R0, R3, R0, LOOP #3 #5 #30 #1 R2

for (i=0; i<N; i++) { for (j=0; j<N; j++) { y[i] = y[i] + a[i][j] * x[j] } } y[i]: proprits de localits temporelle
et spatiale. a[i][j]: proprit de localit spatiale. x[j]: proprit de localit temporelle et spatiale.

05 LOOP 06 07 08 09 0A

Boucle : rutilisation des instructions : localit temporelle Instructions conscutives en mmoire : localit spatiale
73

Universit de Savoie

Objectifs et principes du cache


Analogie

Homme = Unit de calcul Le bureau = Mmoire cache La bibliothque = Mmoire centrale

Universit de Savoie

74

Objectifs et principes du cache


Llment de base est le bloc 4 octets < Nbre doctet par blocs < 128 octets)

Unit Unit de de calcul calcul

Mmoire Mmoire Cache Cache

Mmoire Mmoire Centrale Centrale

Universit de Savoie

75

Objectifs et principes du cache


Organisation mmoire

La mmoire cache possde x blocs La mmoire centrale possde y blocs y >> x

cache

X blocs

Processeur

Adresses
Mme packaging

Contrleur

Mmoire centrale

y blocs

76

Objectifs et principes du cache


Placement des donnes dans le cache

Le placement des donnes dans le cache est gr par le matriel : le programmeur na pas se soucier du placement des donnes dans le cache En revanche le programmeur devra prendre en considration la prsence du cache pour optimiser les performances. le fonctionnement du cache est transparent pour le programmeur.

Universit de Savoie

77

Objectifs et principes du cache


Principe gnral (1)

LUC veut faire rfrence un bloc X2 dans le cache


Recherche de X2 dans le cache => Dfaut de cache X4 X7

Unit Unit de de Calcul Calcul (UC) (UC)

X1 X8 X3

Mmoire Mmoire Centrale Centrale

78

Objectifs et principes du cache


Principe gnral (2)

LUC veut faire rfrence un bloc X2 dans le cache


Extraction de X2 de la mmoire centrale

X4 X7

Unit Unit de de Calcul Calcul (UC) (UC)

X1 X2 X8 X3

Mmoire Mmoire Centrale Centrale

79

Objectifs et principes du cache


Principe gnral (3)

Il y a eu transfert dun nouveau bloc (X2) de la mmoire centrale, dans la mmoire cache.
X4 X7 X1 X8 X3 X4 X7 X1 X2 X8 X3
80

Avant

Aprs

Universit de Savoie

Objectifs et principes du cache


Bloc ou ligne de cache (1)

Lunit dinformation qui peut tre prsente ou non dans le cache est appele un bloc, qui constitue une ligne (ou range) du cache. Les blocs ont gnralement entre 4 et 128 octets et sont tous de mme taille dans un cache donn. La mmoire centrale et la mmoire cache ont imprativement les mme tailles de blocs.

Universit de Savoie

82

Objectifs et principes du cache


Bloc ou ligne de cache (2)

Ladresse fournie par le processeur peut tre scinde en deux parties : le n de bloc et ladresse dans le bloc. Exemple : @ sur 32 bits et blocs de 8 octets
4 3 2 1 0 1 bloc
Numro de bloc Emplacement de loctet dans le bloc
Universit de Savoie

Bits 31 5

8 octets

X8 X3
83

Objectifs et principes du cache


tiquettes

chaque bloc on associe


Une tiquette :

La valeur de cette tiquette permettra de dcider si un bloc donn est effectivement dans le cache ou non.

Un bit de validit :

Il permet de savoir si les donnes du bloc sont obsoltes ou pas.

Universit de Savoie

84

Chapitre 4 : Les mmoires caches

4.1 Objectif et principe dune mmoire cache 4.2 O placer un bloc? Caches totalement associatifs Caches correspondance directe 4.3 Comment un bloc est-il trouv? 4.4 Quel bloc remplac lors dun dfaut? 4.5 Comment sont traites les critures?

Universit de Savoie

85

O placer un bloc?
Diffrentes organisations de cache
O placer une ligne de la mmoire principale dans le cache?
Compltement associatif Bloc 0 1 2 3 4 5 6 7 no. Cache correspondance direct Bloc : 4 (12 mod 8) Bloc 0 1 2 3 4 5 6 7 no. Cache associatif par ensemble de bloc 0 (12 mod 2) Bloc 01 23 45 6 7 no.

Set Set Set Set 0 1 2 3 Block-frame address

Bloc no.

1111111111222222222233 01234567890123456789012345678901
86

Cache associatif

Le numro de bloc est utilis comme tiquette. Les tiquettes sont stockes dans un rpertoire en mme temps que les donnes Un bloc peut tre plac nimporte o dans la mmoire cache.
Etiquette

@ dun octet

000000100000110000100000000000

00

Numro de bloc

Adresse dans le bloc


87

Cache associatif

@ dun octet

000000100000110000100000000000 00 00 01 10 11

tiquette

Donnes

Rpertoire dtiquette
88

Cache correspondance directe


Dans le cache accs direct, le champ numro de bloc est scind en deux parties : ltiquette et lindex. Ltiquette et les donnes correspondantes sont toujours enregistres dans la range donne par le champ index.

@ dun octet

tiquette Numro de bloc

Index

Adresse dans le bloc

Universit de Savoie

89

Cache correspondance directe


Lindex donne directement la position dans le cache

Nbr ligne de cache = 2


tiquette index
00

Nbre bits d'index

00000010000011000010 0000000100 00 01 10 11

tiquette
000

Donnes

004 3FF 90

Cache associatif par ensemble de blocs


Le cache associatif par ensemble de blocs est un compromis entre le cache purement associatif et le cache correspondance directe. Le choix dun ensemble est associatif. Cependant, chaque ensemble est gr comme dans le cache correspondance direct.

@ dun octet

tiquette

Index

Adresse dans le bloc

Numro de bloc
Universit de Savoie 91

Cache associatif par ensemble de blocs


Les donnes peuvent tre ranges dans nimporte quelle ensemble (associatif) Par contre lindex indique la ligne laquelle on stocke la donne (correspondance directe)

tiquette Index
01000010 00

@ dun octet
tiquette Donnes
00000000 00000001

0000000001000000100000

tiquette Donnes

tiquette Donnes

tiquette Donnes

. . .
01000010

. .
11111111

92

Les tiquettes en fonction du type de caches


Cache

associatif
Adresse doctet 10

Etiquette

31 ... ... ... ... 2

Cache

correspondance directe
Index Adresse doctet 10 11 2

Etiquette 31 ... ... ... ... 12

Cache

associatif par ensemble de bloc


Index 10 Adresse doctet 10
93

Etiquette 31 ... ... ... ...

9 2

Chapitre 4 : Les mmoires caches

4.1 Objectif et principe dune mmoire cache 4.2 O placer un bloc? 4.3 Comment un bloc est-il trouv? Caches totalement associatifs Caches correspondance directe 4.4 Quel bloc remplac lors dun dfaut? 4.5 Comment sont traites les critures?

Universit de Savoie

94

Comment un bloc est-il trouv?


Recherche dun bloc dans le cache

Quand une donne est place dans le cache, le numro de bloc de ladresse fournie par le processeur est plac dans le champ tiquette de la range o la donne est place. chaque accs mmoire, les comparateurs comparent simultanment le n de bloc de ladresse demande avec toutes les tiquettes se trouvant dans le cache. Si galit => Succs Sinon => Dfaut
95

Comment un bloc est-il trouv?


Cas du Cache associatif

Comparaison entre ltiquette de ladresse et celle rang en mmoire cache. Succs est valide que si V=1.
@ de loctet demand par le processeur
000000100000110000100000000000 00 00 01 10 11

Comparateurs de 30 bits

tiquette

Donnes

succs

Bus de donnes

96

Comment un bloc est-il trouv?


Cas du Cache correspondance directe
Comparaison entre ltiquette de ladresse et celle range en mmoire cache. Succs est valide que si V=1.

tiquette

index
00 01 10 11

00000010000011000010 0000000100 00

000

tiquette

Donnes

Comparateur 20 bits
004

3FF

succs
Universit de Savoie

Bus de donnes

97

Chapitre 4 : Les mmoires caches

4.1 Objectif et principe dune mmoire cache 4.2 O placer un bloc? 4.3 Comment un bloc est-il trouv? 4.4 Quel bloc remplac lors dun dfaut? 4.5 Comment sont traites les critures?

Universit de Savoie

98

Quel bloc remplac lors dun dfaut ?


Remplacement alatoire :

Simplicit de l'algorithme

FIFO (First In First Out)


Simplicit de conception

LRU (Least Recently Used)


Doit mmoriser la liste des derniers lments accds, circuits complexes.

Universit de Savoie

99

Chapitre 4 : Les mmoires caches

4.1 Objectif et principe dune mmoire cache 4.2 O placer un bloc? 4.3 Comment un bloc est-il trouv? 4.4 Quel bloc remplac lors dun dfaut? 4.5 Comment sont traites les critures?

Universit de Savoie

100

Gestion des critures (1)


Quand une donne se situe dans le cache, le systme en possde deux copies :

une dans la mmoire principale une dans la mmoire cache

Comment grer les mises jour lorsque la donne est modifie localement?
Mmoire cache Mmoire centrale

X2

X2

101

Gestion des critures (2)


write-through : La donne est crite la fois dans le cache et dans la mmoire principale. La mmoire principale et le cache ont tout moment une valeur identique write-back : L'information n'est crite dans la mmoire principale que lorsque la ligne disparat du cache. Cette technique est la plus rpandue car elle permet d'viter de nombreuses critures mmoires inutiles. Pour ne pas avoir crire des informations qui n'ont pas t modifies (et ainsi viter d'encombrer inutilement le bus), chaque ligne de la mmoire cache est pourvue d'un bit dirty. Lorsque la ligne est modifie dans le cache, ce bit est positionn 1, indiquant qu'il faudra rcrire la donne dans la mmoire principale.
Universit de Savoie 102

Chapitre 3 : Les interruptions

3.1

Problmatique & dfinition 3.2 Rle de la pile 3.3 Organisation logicielle

Universit de Savoie

103

Les interruptions
Problmatique & dfinition

Un systme informatique nest utile que sil communique avec lextrieur. Lobjectif est de pouvoir prendre connaissance que le priphrique sollicite le processeur. Cette sollicitation arrive de faon totalement asynchrone.

Deux modes sont possibles :


Une mthode par scrutation (polling) permet dinterroger rgulirement les priphriques afin de savoir si une nouvelle donne est prsente. Une mthode par interruption permet au priphrique luimme de faire signe au processeur de sa prsence.

Universit de Savoie

104

Les interruptions
Scrutation Vs interruption

Scrutation (polling)

Coteux en temps (multiplier par le nombre de priphrique interroger) Implmentation : Appel classique une fonction dans le programme

Interruption

Demande linitiative du priphrique Prise en compte rapide de lvnement Implmentation : Interruption asynchrone dun programme puis retour au mme endroit la fin du traitement

Universit de Savoie

105

Les interruptions
Schma

Une interruption est un arrt temporaire de l'excution normale d'un programme informatique par le microprocesseur afin d'excuter un autre programme (appel routine d'interruption).

Universit de Savoie

106

Les interruptions
Types dinterruption

Interruption masquable

Un masque dinterruption est un mot binaire de configuration du microprocesseur qui permet de choisir (dmasquer) quels modules pourront interrompre le processeur parmi les interruptions disponibles.

Interruption non masquable


Elles s excutent quoi quil arrive, souvent avec une priorit lev (ex : Reset)

Universit de Savoie

107

Les interruptions
Configuration

Un systme peut accepter plusieurs sources dinterruption. Chacune est configurable par registre (registre dinterruption). Mthode de configuration des interruptions

Slectionner les interruptions qui nous intressent Valider les interruptions de faon globale Ecrire le/les sous programme dinterruption Dfinir les priorits entres interruptions

Universit de Savoie

108

Les interruptions
Configuration

Dans le sous programme dinterruption


Sauvegarder le contexte (fait automatique en langage C) Dfinir la source dinterruption (si le sous programme est commun entres plusieurs sources dinterruption) Rinitialiser les flags dinterruption Ecrire le code relatif lapplication Restituer le contexte (fait automatique en langage C)

Cas du 80C51 (intel)


Cas du PIC 16F877 (microchip)

Flag dinterruption

Bit de masquage

Universit de Savoie

110

Les interruptions
Dmasquage des interruptions Autorisation

des interruptions

Lautorisation globale des interruptions

Dmasquage des interruptions

Universit de Savoie

111

Les interruptions
Les flags dinterruption Visualisation

des flags dinterruption

Universit de Savoie

112

Les interruptions
Le rle de la pile

La pile est une mmoire LIFO (Last In First Out) dans laquelle on stoke des variable temporaire (donne ou adresse). Le haut de la pile est point par le registre SP (Stack Pointer).

113

Les interruptions
Rle de la pile

Elle va servir :

sauvegarder le contexte lenvironnement (adresse du programme et valeur des registres au moment de linterruption). restituer le contexte la fin de linterruption

Note 1 : La sauvegarde et la restitution est faite implicitement en langage C. Note 2 : Une fonction dinterruption est not spcifiquement. Exemple du PIC qui ne possde quun seul vecteur dinterruption :

Universit de Savoie

114

Les interruptions
Avant linterruption
PC ( Addr Prog ) SP ( Addr Pile)
Programme principal

Registres
x xx

Pile

Programme dinterruption
115

Les interruptions
Arrive dune interruption
PC ( Addr Prog IT )

SP ( Addr Pile +1)


Programme principal

Registres
x
Addr Prog xx

Pile

Programme dinterruption
116

Les interruptions
Arrive dune interruption : Sauvegarde contexte
PC ( Addr Prog ) SP ( Addr Pile + 3)
Programme principal

Registres
x xx
x
xx Addr Prog

Pile

Programme dinterruption
117

Les interruptions
Fin dune interruption : Restitution contexte
PC ( Addr fin Prog IT)

SP ( Addr Pile + 1)
Programme principal

Registres
x xx
x
Addr Prog

xx

Pile

Programme dinterruption
118

Les interruptions
Fin dune interruption
PC ( Addr Prog ) SP ( Addr Pile)
Programme principal

Registres
x xx
Addr Prog

Pile

Programme dinterruption
119

Les interruptions
Retour au programme principal
PC ( Addr Prog + 1 )

SP ( Addr Pile)
Programme principal

Registres
x xx

Pile

Programme dinterruption
120

Chapitre 4 : Les accs DMA

4.1

Dfinitions et problmatiques 4.2 Les interfaces des disques de stockages 4.3 Les mthodes daccs directs 4.4 Etude dun systme

Universit de Savoie

121

Dfinitions et problmatiques
Pourquoi les accs DMA?

Le systme doit rcuprer des donnes en provenance de ces priphriques externes. Plusieurs mthodes sont possibles :

Une mthode par scrutation (polling) permet dinterroger rgulirement les priphriques afin de savoir si une nouvelle donne est prsente. Une mthode par interruption permet au priphrique lui-mme de faire signe au processeur de sa prsence. Une mthode par Accs Direct la Mmoire (DMA) permet de grer le transfert de faon autonome.
Universit de Savoie 122

Dfinitions et problmatiques
L'accs direct la mmoire ou DMA est un procd o des donnes circulant de ou vers un priphrique (port de communication, disque dur) sont transfres directement par un contrleur adapt vers la mmoire centrale de la machine, sans intervention du microprocesseur. Le micro interviendra seulement pour initier et conclure le transfert. La conclusion du transfert ou la disponibilit du priphrique peuvent tre signals par interruption.
(Source : Wikipdia)

Universit de Savoie

123

Dfinitions et problmatiques
Utilisations

Carte graphique Carte son Disque dur Lecteur CD Et beaucoup dautres priphriques internes

Universit de Savoie

124

Chapitre 4 : Les accs DMA

4.1

Dfinitions et problmatiques 4.2 Les interfaces des disques de stockages 4.3 Les mthodes daccs directs 4.4 Etude dun systme

Universit de Savoie

125

Les interfaces des disques


Les interfaces ATA

Le standart ATA (Advanced Tecnology Attachment) est une interface permettant la connexion de priphrique de stockage sur les ordinateurs de type PC. Ce standard appararu en 1994 tend disparatre au profit du SATA. Il est aussi connu sous le nom IDE (Integrated Drive Elelectronics) ou E-IDE (Enhanced IDE) Initialement pour connecter les disques dur, il a t tendu pour pouvoir interfacer dautre priphriques de stockage (Interface ATAPI=ATA-Packet Interface)

Universit de Savoie

126

Les interfaces des disques


Les interfaces SATA

Les interfaces SATA (Serial ATA), permettent de transfrer les donnes en srie.

Gain de place Branchement chaud Rsolution de problme de CEM (compatibilit Electromagntique)

Universit de Savoie

127

Chapitre 4 : Les accs DMA

4.1

Dfinitions et problmatiques 4.2 Les interfaces des disques de stockages 4.3 Les mthodes daccs directs 4.4 Etude dun systme

Universit de Savoie

129

Les mthodes daccs directs


Les modes de transfert

Mode PIO
PIO : Programmed Input Output. Permet dchanger des donnes avec la mmoire vive. Ces transferts sont grs entirement par le processeur.

Mode DMA
La technique du DMA (Direct Memory Access) permet de dsengorger le processeur en permettant chacun des priphriques d'accder directement la mmoire.
Universit de Savoie 130

Les mthodes daccs directs


Mode PIO
Des commandes gres directement par le processeur permette la gestion du transfert. Toutefois, de gros transferts de donnes peuvent rapidement imposer une grosse charge de travail au processeur et ralentir l'ensemble du systme. Il existe 5 modes PIO dfinissant le taux de transfert maximal.

Mode PIO Mode 0 Mode 1 Mode 2 Mode 3 Mode 4

Dbit (Mo/s) 3.3 5.2 8.3 11.1 16.7

Universit de Savoie

131

Les mthodes daccs directs


Mode DMA

La technique du DMA (Direct Memory Access) permet de dsengorger le processeur en permettant chacun des priphriques d'accder directement la mmoire. Deux types de DMA existent:

Le DMA dit "single word" permet de transmettre un mot simple chaque session de transfert, Le DMA dit "multi-word" permet de transmettre successivement plusieurs mots chaque session de transfert.

Le tableau suivant liste les diffrents modes DMA et les taux de transfert associs :

Mode DMA 0 (Single word) 1 (Single word) 2 (Single word) 0 (Multiword) 1 (Multiword) 2 (Multiword)

Dbit (Mo/s) 2.1 4.2 8.3 4.2 13.3 16.7


132

Universit de Savoie

Les mthodes daccs directs


Mode Ultra DMA (1)
Lide est daugmenter la frquence du signal dhorloge pour augmenter la rapidit. Toutefois sur une interface o les donnes sont envoyes en parallle l'augmentation de la frquence pose des problmes d'interfrence lectromagntiques. Deux solutions ont t apport qui vont tre en troite relation :

Augmentation de la frquence : Utilisation des front montants et descendant. Amlioration du connecteur ATA ( a partir de l'Ultra DMA mode 4 un nouveau type de nappe a t introduit afin de limiter les interfrences ; il s'agit d'une nappe ajoutant 40 fils de masse entrelacs avec les fils de donnes. Apparition du CRC
Universit de Savoie 133

Les mthodes daccs directs


Mode Ultra DMA (2)

Fonctionnement :

La frquence de transfert augmente tant que les donnes transmises se font sans erreur. Lorsque quune erreur est rencontre, le transfert passe dans un mode Ultra DMA infrieur (voire sans Ultra DMA). Mode Ultra DMA UDMA 0 UDMA 1 UDMA 2 (Ultra-ATA/33) UDMA 3 UDMA 4 (Ultra-ATA/66) UDMA 5 (Ultra-ATA/100) UDMA 6 (Ultra-ATA/133)
Universit de Savoie

Dbit (Mo/s) 16.7 25.0 33.3 44.4 66.7 100 133


134

Les mthodes daccs directs


Les vitesses de transfert

Les vitesses de transfert (mode DMA ou Ultra DMA restent donc toujours en troite relation avec larchitecture utilise (ATA, Serial ATA, )
Universit de Savoie 135

Les mthodes daccs directs


Les canaux DMA

Un ordinateur de type PC possde 8 canaux DMA. Les canaux DMA sont gnralement assigns comme suit :
DMA0 DMA1 DMA2 DMA3 DMA4 DMA5 DMA6 DMA7 System Use : Memory (DRAM) Refresh Libre contrleur de disquettes port parallle contrleur d'accs direct la mmoire (renvoi vers DMA0) (carte son)/ libre (SCSI)/ libre disponible

Universit de Savoie

136

Dmarrer>Programmes>Accessoires>Outils Systme>informations Systme

Chapitre 4 : Les accs DMA

4.1

Dfinitions et problmatiques 4.2 Les interfaces des disques de stockages 4.3 Les mthodes daccs directs 4.4 Etude dun systme

Universit de Savoie

138

Etude dun systme (1)

139

Etude dun systme (2)

Universit de Savoie

140

Etude dun systme


Programmation logicielle (1)

Nous avons toujours les trois possibilits pour le transfert dinformation de lextrieur vers lintrieur du systme.

Polling (scrutation) Interruption DMA

Pour la programmation des systmes embarqus, on utilise des librairies :


BSL : Board Support Library CSL : Chip Support Library


141

Universit de Savoie

Etude dun systme


Programmation logicielle (2)

Polling (scrutation)
Cas du TP 2 sur DSP TMS320

Ces fonctions font parties des librairies de la carte (Board Support Library) >> Voir C:\CCStudio_v3.1\docs\hlp\C5416DSK.HLP

Universit de Savoie

142

Etude dun systme


Programmation logicielle (3)

Interruptions

On active les interruptions sur la rception et lmission dune donne.

IRQ_enable(IRQ_EVT_RINT0); //Enables Reception event (IMR register flag) IRQ_enable(IRQ_EVT_XINT0); //Enables Transmission event (IMR register flag) IRQ_globalEnable(); //Enables all Unmask Events IRQ_clear(IRQ_EVT_RINT0) // Clear the specified Interrupt Flag (IFR Register)

Ces fonctions font parties des librairies de la carte (Chip Support Library) >> Voir aide > IRQ functions
143

Universit de Savoie

Etude dun systme


Programmation logicielle (4)

DMA
1.

Dclaration et rservation buffers ping pong Configuration des canaux DMA 0 et 1et Configuration interruption (DMA0) Cration des fonctions dinterruption pour traitement

2.

3.

Universit de Savoie

144

Etude dun systme


Programmation logicielle (5)

DMA
2

3
Universit de Savoie 145

You might also like