Conception de circuits numériques et architecture

Transcription

Conception de circuits numériques et architecture
Conception de circuits numériques
et architecture des ordinateurs
Frédéric Pétrot
Année universitaire 2016-2017
Conception de circuits numériques et architecture des ordinateurs
Structure du cours
C1
C2
C3
C4
C5
C6
C7
C8
C9
C10
C11
Codage des nombres en base 2, logique booléenne,
portes logiques, circuits combinatoires
Circuits séquentiels
Construction circuits complexes
Micro-architecture et fonctionnement des mémoires
Machines à état
Synthèse de circuits PC/PO
Optimisation de circuits PC/PO
Interprétation d'instructions
Interprétation d'instructions
Interprétation d'instructions
Introduction aux caches
2 / 15
Conception de circuits numériques et architecture des ordinateurs
Plan
Plan détaillé du cours d'aujourd'hui
1
2
Introduction aux caches Machine
Quelques chires
Caches
Principes
3 / 15
Conception de circuits numériques et architecture des ordinateurs
Introduction aux caches Plan
1
2
Introduction aux caches Machine
Quelques chires
Caches
Principes
4 / 15
Conception de circuits numériques et architecture des ordinateurs
Introduction aux caches Machine
Structure d'une machine
CPU (circuit intégré)
Banc de registres
ALU
Bus mémoire
Controleur
mémoire
Pont
E/S
Interface
Mémoire
centrale
Bus système
Bus périphérique
Controleur
USB
Souris
Carte
graphique
Controleur
de disque
Extensions
(réseau, son, ...)
Clavier Moniteur
Disque
5 / 15
Conception de circuits numériques et architecture des ordinateurs
Introduction aux caches Machine
Structure d'une machine
Accès mémoire centrale
Processeur émet requête activant :
Interface processeur
contrôleur mémoire
→ bus système →
→ mémoire
pont
→
bus mémoire
→
Purement électronique, symétrique
Processeur en attente du résultat
Accès disque
Processeur émet (commande, numéro de secteur, adresse) :
Interface E/S
→
bus système
→
pont
→
bus périphérique
→
contrôleur
de disque
Contrôleur disque
→
→
disque
contrôleur mémoire
Contrôleur disque
→
→
→
bus périphérique
→
pont
→
bus mémoire
mémoire (DMA)
processeur (interruption).
Électronique et mécanique
Transfert asymétrique
Processeur en attente ou passe à une autre tâche
6 / 15
Conception de circuits numériques et architecture des ordinateurs
Introduction aux caches Quelques chires
À propos du stockage des données
Évolution de la taille et du temps d'accès
Mémoire statique
Metrique
$/MB
Tacc (ns)
1980
19,200
300
1985
2,900
150
1990
320
35
1995
256
15
2000
100
3
2005
75
2
2010
60
1.5
2010÷1980
320
200
1980
8,000
375
0.064
1985
880
200
0.256
1990
100
100
4
1995
30
70
16
2000
1
60
64
2005
0.1
50
2,000
2010
0.06
40
8,000
2010÷1980
130,000
9
125,000
1980
500
87
1
1985
100
75
10
1990
8
28
160
1995
0.30
10
1,000
2000
0.01
8
20,000
2005
0.005
4
160,000
2010
0.0003
3
1,500,000
2010÷1980
1,600,000
29
1,500,000
Mémoire dynamique
Metrique
$/MB
Tacc (ns)
Taille typ.(MB)
Disque
Metrique
$/MB
Tacc (ms)
Taille typ.(MB)
7 / 15
Conception de circuits numériques et architecture des ordinateurs
Introduction aux caches Quelques chires
À propos de la fréquence des CPU INTEL
CPU
MHz
(ns)
C÷urs
Teff (ns)
Tcycle
1980
8080
1
1000
1
1000
1990
386
20
50
1
50
1995
Pentium
150
6
1
6
2003
P-III
600
1.6
1
1.6
2004
P-4
3300
0.3
1
0.3
2005
Core 2
2000
0.50
2
0.25
Tendance similaire chez les autres constructeurs
2010
Core i7
2500
0.4
4
0.1
2010 :1980
2500
2500
4
10,000
8 / 15
Conception de circuits numériques et architecture des ordinateurs
Introduction aux caches Quelques chires
Tendance
Écart grandissant entre temps cycle CPU et temps accès mémoire
100,000,000.0
Disk
10,000,000.0
1,000,000.0
SSD
100,000.0
Disk seek time
Flash SSD access time
DRAM access time
SRAM access time
CPU cycle time
Effective CPU cycle time
ns
10,000.0
1,000.0
DRAM
100.0
10.0
1.0
0.1
CPU
0.0
1980
1985
1990
1995 2000
Année
2003
2005
2010
9 / 15
Conception de circuits numériques et architecture des ordinateurs
Caches
Plan
1
2
Introduction aux caches Machine
Quelques chires
Caches
Principes
10 / 15
Conception de circuits numériques et architecture des ordinateurs
Caches
Principes
Principe de la hiérarchie mémoire
Constat
Larges espaces de stockage lents et lointains
Petits espaces de stockage proches et rapides
Idée
Copier les zones utiles de la grosse mémoire dans la petite
Et le faire automatiquement sans intervention du programme
Problème
Collisions !
Comment faire tenir des données d'adresses très variées
dans le cache ?
11 / 15
Conception de circuits numériques et architecture des ordinateurs
Caches
Principes
Pourquoi cela marche-t-il ?
Repose sur une propriété fondamentale des programmes : la localité
Principe de localité
Les programmes tendent à utiliser des instructions et des données
dont les adresses sont identiques ou proches de celles qu'ils ont
utilisé récemment
Localité temporelle
Des variables accédées récemment ont de fortes chances d'être
accédées de nouveau dans le futur proche
Localité spatiale
Des variables qui ont des adresses proches ont de fortes chances
d'être accédés à des temps proches
12 / 15
Conception de circuits numériques et architecture des ordinateurs
Caches
Principes
Utilisation de la localité
Spatiale et temporelle
Lecture d'un mot
1 recopie le mot et ses n voisins (une ligne) de la mémoire
centrale dans le cache s'il n'y est pas
2 retourne le mot qui est dans le cache
déplacement
adresse ligne
numéro de ligne
CPU
CPU émet @18.
Que se passe-t-il ?
Cache
0
1
2
3
0
1
2
3
t
nn
l
ff
s
mm
k
ee
r
ll
j
dd
q
kk
i
cc
0
1
2
3
t
nn
l
ff
s
mm
k
ee
r
ll
j
dd
q
kk
i
cc
Mémoire
0
4
8
C
10
14
18
1C
20
24
28
2C
d
h
l
p
t
x
bb
ff
jj
nn
rr
ww
3
c
g
k
o
s
w
aa
ee
ii
mm
qq
uu
2
b
f
j
n
r
v
z
dd
hh
ll
pp
tt
1
a
e
i
m
q
u
y
cc
gg
kk
oo
ss
0
0
4
8
C
10
14
18
1C
20
24
28
2C
d
h
l
p
t
x
bb
ff
jj
nn
rr
ww
3
c
g
k
o
s
w
aa
ee
ii
mm
qq
uu
2
b
f
j
n
r
v
z
dd
hh
ll
pp
tt
1
a
e
i
m
q
u
y
cc
gg
kk
oo
ss
0
0
4
8
C
10
14
18
1C
20
24
28
2C
d
h
l
p
t
x
bb
ff
jj
nn
rr
ww
3
c
g
k
o
s
w
aa
ee
ii
mm
qq
uu
2
b
f
j
n
r
v
z
dd
hh
ll
pp
tt
1
a
e
i
m
q
u
y
cc
gg
kk
oo
ss
0
13 / 15
Conception de circuits numériques et architecture des ordinateurs
Caches
Principes
Architecture d'un cache à correspondance directe
Principe
Structure : l = 2n lignes de m = 2p mots
on ignore les octets dans le mot :
les adresses considérés nissent par 00
adresse d'une ligne en mémoire :
alignée sur la taille de la ligne, i.e. multiple de m × 4
numéro de ligne de cache index dans le cache d'une donnée
placée en am :
index = amn+p+1..p+1
adresse offset de la donnée dans la ligne :
offset = amp+1..2
comment diérencier les diérentes lignes ?
nécessaire de conserver am31..n+p+2 pour comparaison
14 / 15
Conception de circuits numériques et architecture des ordinateurs
Caches
Principes
Architecture d'un cache à correspondance directe
ADDR[31:0]
tag
31
n+p+2 n+p+1
OE WE CE
DATA[u-2:v]
==
index
offset
p+2 p+1
DOUT[31:0]
DIN[31:0]
2 10
SDx
SD0
WEDx
WED0
ADDR[m-1:0]
DATA[u-1]
DATA[v-1:0]
HIT
15 / 15

Documents pareils