Title: Prsentation PowerPoint
1(No Transcript)
2Plan de l'exposé
3Parallélisme dans le code source
n calculs indépendants. 2 lectures, puis 1
produit, puis 1 somme puis 1 écriture, le tout n
fois.
4Code machine d'architecture RISC
5(No Transcript)
6Quelles différences entre source et assembleur?
7La dépendance sur i séquentialise le
lancement des itérations au rythme du délai de
l'additionneur.
8La dépendance sur les registres séquentialise
les opérations au rythme des délais des
opérateurs.
9La dépendance sur les registres séquentialise
les opérations au rythme des délais des
opérateurs.
10(1) e FLD F2, R1(R8) (2)
FMUL F3, F2, F1 (3) FLD F4,
R2(R8) (4) FADD F5, F4, F3 (5)
FST F5, R2(R8) (6) ADD R8,
R8, 1 (7) CMP R9, R8, R3 (8)
BNE R9, e
11L'effet des registres
12(No Transcript)
13La parade le renommage
14(1) e FLD F2, R1(R8) (2)
FMUL F3, F2, F1 (3) FLD F4,
R2(R8) (4) FADD F5, F4, F3 (5)
FST F5, R2(R8) (6) ADD R8,
R8, 1 (7) CMP R9, R8, R3 (8)
BNE R9, e
15Le renommage est matériel
16Le renommage augmente la surface du banc de
registre
17L'effet du renommage
18(No Transcript)
19(No Transcript)
20Le chemin des données
21(No Transcript)
22(No Transcript)
23(No Transcript)
24Réponse n2 c'est un intermédiaire
intéressant qui simplifie l'expression du code
exécutable. Ce qui est vraiment nécessaire,
c'est de pouvoir désigner de façon concise les
sources et destinations des opérations. La
concision des noms peut être obtenue en
ne laissant dans le code qu'un préfixe (partie
statique), le matériel ajoutant le suffixe.
25Supprimer les registres?
Remplacer les architectures registre/registre par
une architecture mémoire/mémoire,
c'est transgresser un tabou vieux de 25 ans! Si
on tente en plus d'imposer un nouveau langage
machine, il y a peu de chances qu'on puisse avoir
du succès auprès des constructeurs!
26(No Transcript)
27(No Transcript)
28(No Transcript)
29Que représente le nom Rx?
Rx est un ensemble de variables en
mémoire (l'ensemble des exemplaires de
Rx). Chaque exemplaire a une adresse unique qui
le place dans la hiérarchie mémoire. Les
exemplaires d'un processus sont distincts de ceux
d'un autre processus (adresses différentes).
30(No Transcript)
31(No Transcript)
32(No Transcript)
33La lecture des sources
La latence des accès n'est plus constante.
Elle dépend de la hiérarchie mémoire. Pour un
degré superscalaire d, plutôt que de lire 2d
sources et d'écrire d destinations par cycle
d'une structure centralisée (lancement d'au plus
d instructions prêtes par cycle), on effectue des
accès en lecture et en écriture dans L0.
34Combien de ports d'accès à L0?
Cela dépend du nombre moyen de lectures et
d'écritures par instruction. Avec simplescalar,
on peut mesurer, pour un degré superscalaire d,
le nombre de ports p en dessous duquel l'IPC est
sérieusement dégradé. Des mesures préliminaires
ont montré qu'en moyenne, pour un degré d, on
effectue 0,8d écritures et 1,2d lectures.
35(No Transcript)
36(No Transcript)
37(No Transcript)
38(No Transcript)
39Le compilateur peut attribuer les registres
en appliquant une stratégie qui distribue les
accès en lecture et en écriture. Le cache L0
peut être réparti en bancs, chaque banc étant une
mémoire simple port. Les accès à deux bancs sont
indépendants. En multipliant les bancs, on
multiplie les ports et le degré d'ILP.
40(No Transcript)
41(No Transcript)