Vous êtes sur la page 1sur 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


zCours

: 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

Prsentation TD
z 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

Prsentation TP
z 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

z
z
z
z

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


z 1 processeur : quelques millimtres carrs
z

Universit de Savoie

Larchitecture interne
Unit commande/traitement

Un microprocesseur est construit autour


de deux lments principaux :
z

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

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.

3.

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.

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).

Universit de Savoie

12

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 :
z
z
z
z

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

B
8

OV =Overflow Flag
Slection de
lopration

C = Carry Flag

C0
C1
C2
C3

Z = Zero Flag

UAL

S = Sign Flag
P = Parity Flag

Flag = drapeau
Registre dtat

R
Rsultat

Universit de Savoie

14

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

Mmoire
4
3

z
z
z
z

(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
z

Un seul chemin d'accs la mmoire


z
z

z
z

BUS

Mmoire
Programme
&
donnes

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

CPU
z

Mmoire
donne

Sparation des mmoires programme et donnes


z
z
z
z

Mmoire
programme

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 :


z

Chargement du programme et des donnes en parallle

19

Larchitecture
Harvard : Cas des microcontrleurs PIC
z

Seul les bus de donne (data ou instructions) sont


reprsentes

Universit de Savoie

20

Chapitre 1 : Rappel gnraux sur les


processeurs
z
z
z
z

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 :
z

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
z

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
z

La valeur du PC est place sur le bus d'adresse par l'unit de


commande qui met un ordre de lecture.
z Aprs le temps d'accs la mmoire, le contenu de la case
mmoire slectionne est disponible sur le bus des donnes.
z 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
z

L'unit de commande transforme l'instruction en une suite de


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

Universit de Savoie

25

Le traitement des instructions


Phase 3 : Excution de linstruction
z

Le squenceur ralise l'instruction.


z Les drapeaux sont positionns (registre d'tat).
z 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 :

z L

architecture CISC
(Complex Instruction Set Computer)

z 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
z
z
z
z

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


z

Ce sont les diverses manires de dfinir la


localisation d un oprande. Les trois modes
dadressage les plus courant sont :
z
z
z

Adressage immdiat
Adressage direct
Adressage indirect

Universit de Savoie

30

Les modes dadressages


Immdiat
Exemple : ADDA

#4
ALU

Mmoire
M
Contenu

0x00

0..
110 1101

0x01

0..
100 0101
0..
010 1111

Compteur Ordinal
adrs+1
PC

adrs

110
1 0101
ADDA

adrs + 1

0 1 1 0#41 0 0 1

adrs + 2

Accumulateur

Adresses

1..
010 1101

0011 1000
1
100 0101
1
010 1001
.
0111 1010

Universit de Savoie

31

Les modes dadressages


Direct
Exemple : ADDA

adresseX
ALU

Mmoire
Contenu

0x00

0..
110 1101

0x01

0..
100 0101
0..
010 1111

Compteur Ordinal
adrs+1
PC

adrs

110
1 0101
ADDA

adrs + 1

0 adresseX
110 1001

adrs + 2

Accumulateur

Adresses

1010 1101

adresseX

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

Universit de Savoie

32

Les modes dadressages


Indirect
Exemple : ADDA

@adresseX
ALU

Mmoire
Contenu

0x00

0..
110 1101

0x01

0..
100 0101
0..
010 1111

Compteur Ordinal
adrs+1
PC

adrs

110
1 0101
ADDA

adrs + 1

0@adresseX
110 1001

adrs + 2

Accumulateur

Adresses

1010 1101

@adresseX

0 adresseX
011 1000
1
100 0101

adresseX

1 0 1 0 xxxxxx
1001
xxxxx
.
0111 1010

Universit de Savoie

33

Les modes dadressages


z

Pourquoi existe-t-il plusieurs modes dadressage ?

Universit de Savoie

34

Chapitre 1 : Rappel gnraux sur les


processeurs
z
z
z
z

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

.TITLE
.PROC
.START

Bruit_HP
I8085
OSCIL

; Titre du programme
; Processeur utilis
; Adresse dbut programme

HP
HPOFF
HPON

=
=
=

; Adresse du Haut-Parleur (40 Hexa)


; Constante, membrane relache
; Constante, membrane attire

000000

.LOC 0

000000

OSCIL:

000000
000002
000004
000006
000008
00000B

Adresses

3E
D3
3E
D3
C3

00
40
01
40
00 00

MOVE
MOVE
MOVE
MOVE
JUMP

Code des .END


instructions

1064
0
1

Mnmoniques
des instructions
#HPOFF, A
A, $HP
#HPON, A
A, $HP
OSCIL

; Adresse dassemblage du programme

; 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

; Fin de lassemblage

Commentaires
36

Exemple dexcution
Programme:
instructions
Adresses

.00

3E

.01

00

.02

D3

.03

40

.04

3E

Vue symbolique

MOVE

,A
MOVE #HPOFF,A

#HPOFF
MOVE A,
MOVE A,$HP

$HP
MOVE

,A
MOVE #HPON,A

.05

01

.06

D3

.07

40

.08

C3

.09

00

0A

00

#HPON
MOVE A,
MOVE A,$HP

$HP
JUMP
JUMP OSCIL

OSCIL
37

Exemple dexcution
Continue.

re

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

Universit de Savoie

38

Chapitre 2 : Le pipeline

z
z
z

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


z

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.

Universit de Savoie

43

Chapitre 2 : Le pipeline

z
z
z

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

z
z

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

Partie hardware utilise

Generate program address


Get Opcode
Decode instruction
Generate read address
Read Operand
Generate write address

PC
Program memory
Decoder
ARs, ARAU
Data memory
ARs, ARAU

Execute instruction
Write result

MAC, ALU
Data Memory

ARAU = Auxiliary Register Arithmetic Unit


47
7

Les tages dun pipeline


Les retards
z
z

Le pipeline atteint son plein rendement une


fois quil est rempli
Un retard peut se produire
z

Sil existe un conflit de ressources (retard ponctuel)


z
z

accs la mmoire
utilisation des bus

En cas de rupture de squence (vidange du


pipeline)
z
z
z

branchement non prvu


appel de sous-programme
interruption

Universit de Savoie

48

Les tages dun pipeline


Exemple de rupture
Program

54x

&
Donnes

P1

F1

D1

A1

R1

X1

P2

F2

D2

A2

R2

X2

P3

F3

D3

A3

R3

X3

P4

--

--

--

F4

D4

A4

R4

X4

--

--

--

P5

F5

D5

A5

R5

X5

--

--

--

P6

F6

D6

A6

R6

Universit de Savoie

49

Les tages dun pipeline


Solution par lorganisation du code
54x
D
P1

or

54x
D

F1

D1

A1

R1

X1

P2

F2

D2

A2

R2

X2

P3

F3

D3

A3

R3

X3

P4

F4

D4

A4

R4

X4

P5

F5

D5

A5

R5

X5

P6

F6

D6

A6

R6

NO CONFLICT

X6

50

Types de pipelining
Squentiel :
Pas de pipeline
(ex: Motorola 56000)

Pipeline simple
(plupart des DSP)

t
Double pipeline
(ex: Pentium)

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

t
Universit de Savoie

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

Profondeur du pipeline

Intel Pentium 4 Prescott

31

Intel Pentium 4

20

AMD K10

16

Intel Pentium III

10

AMD Athlon

12

PowerPC G4 (PPC 7450)

IBM POWER5

16

IBM PowerPC 970

16

Intel Itanium

10

Universit de Savoie

53

Chapitre 2 : Le pipeline

z
z
z

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
z

La prsence d'un pipeline (et donc le partage de l'excution


d'une instruction en plusieurs tages) introduit des alas :
z

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

D1

A1

R1

X1

P2

F2

D2

A2

R2

X2

P3

F3

D3

A3

R3

X3

P4

--

--

--

F4

D4

A4

R4

X4

--

--

--

P5

F5

D5

A5

R5

-Universit-de Savoie--

P6

F6

D6

A6

Donnes

X5
56

R6

Les alas dans le pipeline


Alas de donnes (1)
z

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)
z

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)
z

Si ncessaire, les instructions intercales peuvent tre des NOP.


1.
2.
3.
4.

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

Remarques :
z

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.

Chargement
Chargement
(instruction)
(instruction)
Dcodage
Dcodage
Chargement
Chargement
(oprandes)
(oprandes)

Ci contre un pipeline pouvant raliser cette solution.

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)
z

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.
z
z

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 :


z
z

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 :
z 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:
z
z

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
z 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.
z Par rapport la prdiction statique, la prdiction dynamique est plus
performante, mais ncessite une quantit trs importante de logique de
contrle.

PRIS

NON 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

Universit de Savoie

INTERRUPTION

X
65

Les alas dans le pipeline


Rsum
z

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

z
z
z
z
z

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


z Les

mmoires doivent rpondre deux


contraintes contradictoires :
Taille importante
z Temps daccs court
z

z Principe
z

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)
z volution

Anne

Temps de cycle
processeur

Temps de cycle
mmoire

1990

~100ns

~140ns

1998
2002

~4ns
~0.6ns

~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)
z

Localit spatiale :
z

Tendance accder aux donnes qui sont


proches de celles rcemment utilises

Localit temporelle :
z

Tendance rutiliser des donnes


rcemment utilises

Universit de Savoie

71

Objectifs et principes du cache

Adresses en mmoire

Principe de localit (2)


Localit temporelle = prendre les mme
donnes dans un court instant

Localit spatiale = Prendre


les donnes adjacentes dans
un court instant

Temps

72

Objectifs et principes du cache


Principe de localit (3)
z

Les donnes

for (i=0; i<N; i++) {


for (j=0; j<N; j++) {
y[i] = y[i] + a[i][j] * x[j]
}
}

Le programme

05 LOOP
06
07
08
09
0A

y[i]: proprits de localits temporelle

...
LDR
ADD
STR
ADD
ADD
BRn
...

R1, R0,
R1, R1,
R1, R0,
R0, R0,
R3, R0,
LOOP

#3
#5
#30
#1
R2

et spatiale.
a[i][j]: proprit de localit spatiale.

Boucle : rutilisation des instructions :


localit temporelle

x[j]: proprit de localit temporelle et


spatiale.

Instructions conscutives en mmoire :


localit spatiale

Universit de Savoie

73

Objectifs et principes du cache


Analogie
z
z
z

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

Universit de Savoie

Mmoire
Mmoire
Centrale
Centrale

75

Objectifs et principes du cache


Organisation mmoire

Processeur

Adresses
Mme packaging

X blocs

Contrleur

La mmoire cache possde x blocs


La mmoire centrale possde y blocs
y >> x

cache

Mmoire
centrale

y blocs

76

Objectifs et principes du cache


Placement des donnes dans le cache
z

Le placement des donnes dans le cache est gr par


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

Universit de Savoie

77

Objectifs et principes du cache


Principe gnral (1)
z

LUC veut faire rfrence un bloc X2 dans le cache


z
z

Recherche de X2 dans le cache


=> Dfaut de cache
X4
X7

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

X1

Mmoire
Mmoire
Centrale
Centrale

X8
X3
78

Objectifs et principes du cache


Principe gnral (2)
z

LUC veut faire rfrence un bloc X2 dans le cache


z

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)
z

Il y a eu transfert dun nouveau bloc (X2) de la


mmoire centrale, dans la mmoire cache.

Avant

X4
X7

X4
X7

X1

X1
X2
X8
X3

X8
X3

Universit de Savoie

Aprs

80

Objectifs et principes du cache


Bloc ou ligne de cache (1)
z

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)
z

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

Bits 31 5

0
8 octets

1 bloc
Numro de bloc

Emplacement de
loctet dans le bloc
Universit de Savoie

X8
X3
83

Objectifs et principes du cache


tiquettes
z

chaque bloc on associe


z

Une tiquette :
z

La valeur de cette tiquette permettra de dcider si un


bloc donn est effectivement dans le cache ou non.

Un bit de validit :
z

Il permet de savoir si les donnes du bloc sont obsoltes


ou pas.

Universit de Savoie

84

Chapitre 4 : Les mmoires caches

z
z

z
z
z

4.1 Objectif et principe dune mmoire cache


4.2 O placer un bloc?
z Caches totalement associatifs
z 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
z

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

Numro de bloc

00

Adresse dans le bloc


87

Cache associatif

@ dun octet

000000100000110000100000000000 00
00

tiquette

01

10

11

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.
z

@ dun octet

tiquette

Index

Adresse
dans le bloc

Numro de bloc

Universit de Savoie

89

Cache correspondance directe


z

Lindex donne directement la position dans le cache

Nbr ligne de cache = 2


tiquette

Nbre bits d'index

index

00000010000011000010 0000000100 00
00

tiquette

01

10

11

Donnes

000

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.
z

@ 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)
z Par contre lindex indique la ligne laquelle on stocke
la donne (correspondance directe)
z

tiquette

@ dun octet
tiquette Donnes

0000000001000000100000

Index
01000010 00

tiquette Donnes

tiquette Donnes

tiquette Donnes

00000000
00000001

.
.
.
01000010

.
.
11111111

92

Les tiquettes en fonction du type de caches


z Cache

associatif
Adresse doctet

Etiquette

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

z Cache

correspondance directe

Etiquette

Index

31 ... ... ... ... 12

z Cache

10

Adresse doctet

11 2

10

associatif par ensemble de bloc

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

Index
10

Adresse doctet

9 2

10
93

Chapitre 4 : Les mmoires caches

z
z
z

z
z

4.1 Objectif et principe dune mmoire cache


4.2 O placer un bloc?
4.3 Comment un bloc est-il trouv?
z Caches totalement associatifs
z 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
z

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
z

Comparaison entre ltiquette de ladresse et celle rang en


mmoire cache. Succs est valide que si V=1.
@ de loctet demand par le processeur

Comparateurs
de 30 bits

000000100000110000100000000000 00
00

tiquette

succs

01

10

11

Donnes

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.
z

tiquette

index

00000010000011000010 0000000100 00
00
000

tiquette

01

10

11

Donnes

Comparateur
20 bits
004

3FF

succs
Universit de Savoie

Bus de donnes

97

Chapitre 4 : Les mmoires caches

z
z
z
z
z

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 ?


z

Remplacement alatoire :
z

FIFO (First In First Out)


z

Simplicit de l'algorithme

Simplicit de conception

LRU (Least Recently Used)


z

Doit mmoriser la liste des derniers lments


accds, circuits complexes.

Universit de Savoie

99

Chapitre 4 : Les mmoires caches

z
z
z
z
z

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)


z

Quand une donne se situe dans le cache, le


systme en possde deux copies :
z
z

une dans la mmoire principale


une dans la mmoire cache

Comment grer les mises jour lorsque la donne


est modifie localement?
Mmoire cache

X2

Mmoire centrale

X2

101

Gestion des critures (2)


z

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

z 3.1

Problmatique & dfinition


z 3.2 Rle de la pile
z 3.3 Organisation logicielle

Universit de Savoie

103

Les interruptions
Problmatique & dfinition
z

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 :


z

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
z

Scrutation (polling)
z

Coteux en temps (multiplier par le nombre de priphrique


interroger)
Implmentation : Appel classique une fonction dans le
programme

Interruption
z
z
z

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
z

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
z

Interruption masquable
z

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


z

Elles s excutent quoi quil arrive, souvent avec une priorit


lev (ex : Reset)

Universit de Savoie

107

Les interruptions
Configuration
z

Un systme peut accepter plusieurs sources


dinterruption. Chacune est configurable par registre
(registre dinterruption).

Mthode de configuration des interruptions


z
z
z
z

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
z

Dans le sous programme dinterruption


z
z

z
z
z

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
z Autorisation

des interruptions

Lautorisation globale des interruptions

Dmasquage des interruptions

Universit de Savoie

111

Les interruptions
Les flags dinterruption
z Visualisation

des flags dinterruption

Universit de Savoie

112

Les interruptions
Le rle de la pile
z

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
z

Elle va servir :
z

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

Pile

xx

Programme
dinterruption
115

Les interruptions
Arrive dune interruption
SP ( Addr Pile +1)

PC ( Addr Prog IT )

Programme
principal

Registres
x
Addr Prog

Pile

xx

Programme
dinterruption
116

Les interruptions
Arrive dune interruption : Sauvegarde contexte
PC ( Addr Prog )

SP ( Addr Pile + 3)
Programme
principal

Registres
x

x
xx
Addr Prog

Pile

xx

Programme
dinterruption
117

Les interruptions
Fin dune interruption : Restitution contexte
SP ( Addr Pile + 1)

PC ( Addr fin Prog IT)

Programme
principal

Registres
x

xx

Addr Prog

Pile

xx

Programme
dinterruption
118

Les interruptions
Fin dune interruption
PC ( Addr Prog )

SP ( Addr Pile)
Programme
principal

Registres
x

Addr Prog

Pile

xx

Programme
dinterruption
119

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

SP ( Addr Pile)
Programme
principal

Registres
x

Pile

xx

Programme
dinterruption
120

Chapitre 4 : Les accs DMA

z 4.1

Dfinitions et problmatiques
z 4.2 Les interfaces des disques de stockages
z 4.3 Les mthodes daccs directs
z 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 :
z

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
z

Carte graphique

Carte son

Disque dur

Lecteur CD

Et beaucoup dautres priphriques internes

Universit de Savoie

124

Chapitre 4 : Les accs DMA

z 4.1

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

Universit de Savoie

125

Les interfaces des disques


Les interfaces ATA
z

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)
z 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
z

Les interfaces SATA (Serial ATA), permettent


de transfrer les donnes en srie.
z
z
z

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

Universit de Savoie

127

Chapitre 4 : Les accs DMA

z 4.1

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

Universit de Savoie

129

Les mthodes daccs directs


Les modes de transfert
z

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

Dbit (Mo/s)

Mode 0

3.3

Mode 1

5.2

Mode 2

8.3

Mode 3

11.1

Mode 4

16.7

Universit de Savoie

131

Les mthodes daccs directs


Mode DMA
z

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:
z

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

Dbit (Mo/s)

0 (Single word)

2.1

1 (Single word)

4.2

2 (Single word)

8.3

0 (Multiword)

4.2

1 (Multiword)

13.3

2 (Multiword)

16.7

Universit de Savoie

132

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 :
z

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)
z

Fonctionnement :
z

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

Dbit (Mo/s)

UDMA 0

16.7

UDMA 1

25.0

UDMA 2 (Ultra-ATA/33)

33.3

UDMA 3

44.4

UDMA 4 (Ultra-ATA/66)

66.7

UDMA 5 (Ultra-ATA/100)

100

UDMA 6 (Ultra-ATA/133)

133

Universit de Savoie

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
z

Un ordinateur de type PC possde 8 canaux DMA.


Les canaux DMA sont gnralement assigns comme suit :
DMA0 -

System Use : Memory (DRAM) Refresh

DMA1 DMA2 DMA3 DMA4 DMA5 DMA6 DMA7 -

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

z 4.1

Dfinitions et problmatiques
z 4.2 Les interfaces des disques de stockages
z 4.3 Les mthodes daccs directs
z 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)
z

Nous avons toujours les trois possibilits pour le


transfert dinformation de lextrieur vers lintrieur du
systme.
z
z
z

Polling (scrutation)
Interruption
DMA

Pour la programmation des systmes embarqus, on


utilise des librairies :
z
z

BSL : Board Support Library


CSL : Chip Support Library

Universit de Savoie

141

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
z

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)

z
z

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

Universit de Savoie

143

Etude dun systme


Programmation logicielle (4)

DMA
1.

Dclaration et rservation buffers ping pong

2.

Configuration des canaux DMA 0 et 1et


Configuration interruption (DMA0)

3.

Cration des fonctions dinterruption pour traitement

Universit de Savoie

144

Etude dun systme


Programmation logicielle (5)

DMA

1
2

3
Universit de Savoie

145

Vous aimerez peut-être aussi