Documenti di Didattica
Documenti di Professioni
Documenti di Cultura
Sistema de Memoria (1 de 2)
ndice
1. 2. 3. 4.
Introduccin a la Jerarqua de Memorias (JM) Memoria cache Memoria principal Memoria virtual
03/11/2009
Bibliografa
[MIG] M Isabel Garca Clemente, Sistema de Memoria, Ed. Fundacin Gral. de la UPM, Serv. de Publicaciones de la FI-UPM. [P&H] J. Hennessy & D. Patterson, Computer Architecture: A Quantitative Approach, 4th Edition (Paperback), Ed. Morgan Kaufmann
Introduccin
Objetivo:
Almacenamiento de instrucciones y datos factor determinante en la velocidad de ejecucin:
velocidad +
capacidad, pero
coste
Jerarqua de Memorias
Mltiples dispositivos de almacenamiento de diferente velocidad, capacidad y coste organizados de forma jerrquica.
AC 96: Sistema de Memoria 4
03/11/2009
Jerarqua de memorias
CP U
Ve locid ad y C o ste
.............
niv el n
Jerarqua de memorias
C a pac id ad y T ie m po de ac ce so 0,5 n s < 1K B 0,5 - 20 n s KB o M B 50 - 70 n s GB ms TB R e gistr os G e stion C o m pilad or CP U H a rd w ar e
M e m oria (s ) c ac he
M e m oria pr in cipa l
S .O .
M. Virtual:
S .O .
D isc os
S.O. + ayuda Hw
03/11/2009
M. Virtual:
S.O. + ayuda Hw
Mp Disco
Dj-1 Dj Dj+1
03/11/2009
JM: Funcionamiento
La CPU solicita acceso a una posicin de memoria (load/store). Se comprueba si la informacin est en el nivel 1 Si est Se sirve el acceso desde el nivel 1 (el ms rpido) Si no est Se comprueba si est la informacin en el nivel 2 Si est Se transfiere la informacin desde el nivel 2 al nivel 1 El nivel 1 transfiere la informacin a la CPU Si no est Se comprueba si est la informacin en el nivel 3 ...
Nota: se copia siempre un conjunto de dirs. consecutivas: bloques de cache (unos cuantos bytes) o pginas (de orden de KB)
AC 96: Sistema de Memoria 9
JM: Funcionamiento
CPU
nivel 1 Informacion menos util nivel 2 nivel 3 ............. nivel n Informacion mas util
Decisiones: Polticas de extraccin Polticas de ubicacin Polticas de reemplazo Polticas de escritura Traduccin de direcciones
10
03/11/2009
JM: Motivacin
Proximidad [locality] de Referencias
Los programas tienden a hacer referencia a datos e instrucciones prximos a los recientemente utilizados. Temporal: Mismas direcciones a las que se ha accedido en un pasado reciente: [P&H] Regla 90/50 de saltos efectuados: 90% patras/50% palante Espacial: Direcciones prximas a las que se ha accedido recientemente S i t t Secuencial: di i l dirs. consecutivas ti
Ejemplo:
ORG 0 LD .R3, #0 LD .R1, #10000 LD .R2, #1000 , bucle: ADD .R3, [.R2] ADD .R2, #4 DEC .R1 BNZ $bucle Traza: 0, 4, 8, 12, 1000, 16, 20, 24, 12, 1004, 16,
AC 96: Sistema de Memoria 12
03/11/2009
Proximidad de referencias
Patterson & Hennessy [P&H]: Regla 90/10 de proximidad:
13
Proximidad de Referencias
La proximidad temporal aconseja: Copiar el contenido de la direccin referenciada al nivel ms prximo a la CPU La proximidad secuencial: Copiar tambin el contenido de las direcciones cercanas.
Bloque:
Nmero de palabras consecutivas en memoria memoria. Unidad de informacin que puede estar presente o no en un nivel de la jerarqua. Unidad de informacin que se transfiere entre dos niveles consecutivos de la jerarqua.
AC 96: Sistema de Memoria 14
03/11/2009
JM: Terminologa
Para un determinado nivel de la j jerarqua: Acierto: La informacin se encuentra en dicho nivel nivel. Tasa de aciertos [hit ratio] (Hrj): Fraccin de los accesos a memoria encontrados en dicho nivel. Tiempo de acierto (Tj): Tiempo de acceso al nivel. Fallo: La informacin no se encuentra en dicho nivel, hay que buscarla en el siguiente. Tasa de fallos [miss ratio] = 1-Hrj
15
JM: Rendimiento
Tiempo medio de acceso o Tiempo efectivo: tiempo medio que se tarda en satisfacer el acceso a una direccin por parte de la CPU: ser el valor fundamental para evaluar el rendimiento de una JM (no el Hr!) Tef = Hr x Tj + (1 Hr) x Tfallo
Ejemplo:
2 niveles: Mca (TMca = 1ns) y Mp (TMp = 40ns) Bloques de 4 palabras Tiempo de fallo = 160 ns HrMca = 0,95 Tiempo medio de acceso = ??
AC 96: Sistema de Memoria 16
03/11/2009
17
M e mo ria C a ch e
Direc ciones
a0 a1 a2 a3
CP U
D atos
i1
i2
i3
i4
L2
Bm -1
18
03/11/2009
MC: Componentes
Mca: 1. almacenamiento (lneas): donde se albergan fsicamente los bloques* se suben del nivel i f i bl * b d l i l inferior 2. directorio: de alguna forma (depender de la pol. de ubicacin), qu bloque de Mp est almacenado en cada lnea 3. controlador (el duendecillo) : implementa todas las polticas y realiza el servicio a los fallos: est minuciosamente diseado para ser muy rpido en sus acciones
(*) El almacenamiento se estructura en lneas, y cada una contiene un conjunto de dirs. consecutivas de Mp: bloque de cache: entre 4 y 64 bytes el espacio de dirs. de Mp se considera dividido en bloques de igual tamao
AC 96: Sistema de Memoria 19
M . c ac h e
D ir ec to rio
Etiq u e ta 0 Etiq u e ta 1
A c ie rto
L in e a 1 . . . .
. . . .
Eti q ue ta m -1
L in e a m -1
+ Bit de validez
F allo
20
10
03/11/2009
21
2.
3.
11
03/11/2009
asociatividad
HrMca
[Directa] de capacidad C es el mismo que el de una 2-asociativa [2 lneas/set] de capacidad C/2 Muy til para la Prctica 2!!!
AC 96: Sistema de Memoria 23
12
03/11/2009
Ejemplo:
1 9 bi ts Etiq u e ta Etiq u e ta Etiq u e ta q . . . . Etiq u e ta
b lo q u e 0 b lo q u e 1 b lo q u e 2 . . . b lo q u e 5 11 b lo q u e 5 1 2 b lo q u e 5 1 3 b lo.q u e 5 1 4 . . . 28 b lo q u e 2 -1
25
M . cache
lin e a 0 lin e a 1 lin e a 2 . . . lin e a 5 11
F al lo
Ventajas: Sencillez y poco coste y VELOCIDAD!!!... Inconvenientes: Dependiendo de la traza del programa puede producir una tasa de fallos elevada
AC 96: Sistema de Memoria 26
13
03/11/2009
Ejemplo:
M . cac he 2 8 bi ts Etiq u e ta Etiq u e ta . . . Etiq u e ta lin e a 0 lin e a 1 . . . . lin e a 5 11
M . prin cip a l Bl oq u e 0 Bl oq u e 1 . . . Bl oq u e 5 11 Bl oq u e 5 1 2 . . . Bl oq u e 2
28
-1
27
M . cache
L in e a 0 L in e a 1 L in e a 2
=? =? =?
Aci erto
. . . L in e a 5 11
=?
F al lo
Ventajas: el mejor HrMca con una pol. de reemplazo ptima (factible?); la mayor flexibilidad de todas Inconvenientes: Complejidad y coste elevado, LENTITUD!!!
AC 96: Sistema de Memoria 28
14
03/11/2009
Ejemplo:
C0 C1
L in e a 0 L in e a 1 Li ea 2 in L in e a 3 . . L in e a 5 1 0 L in e a 5 11
C255
-1
29
M . cache
C0 C1
L in e a 0 L in e a 1 L in e a 2 L in e a 3 . . L in e a 5 1 0 L in e a 5 11 Aci erto L in e a L in e a
C2 5 5
=? =?
Ventajas: solucin de compromiso: casi tan rpida como la directa y flexible como la asociativa
AC 96: Sistema de Memoria 30
F al lo
15
03/11/2009
31
16
03/11/2009
Defectos
El prefetch puede resultar en vano. Presupone una cache no-bloqueante (de lo contrario, no no bloqueante contrario slo no se gana, sino que incluso se pierde si prefetch en vano). Cierta sobrecarga para comprobar que el bloque que se anticipa no est ya en Mca.
33
17
03/11/2009
Escritura inmediata (write-through): WT Se escribe en Mca y en el siguiente nivel de la jerarqua Se asegura en todo momento la coherencia entre
niveles adyacentes.
35
Escritura inmediata sin copia: WTWNA Escritura aplazada con copia: CBWA
36
18
03/11/2009
37
Caches separadas: Arquitectura Harvard - imprescindible para el pipeline de instrucciones [vase Tema de Aumento de prestaciones] p - experimentalmente , HrMcaI > HrMcaD
D
AC 96: Sistema de Memoria 38
19
03/11/2009
L1 L2
D
Ancho Bq
I+D
39
Unificada no si si
40
20
03/11/2009
TMca
Tiempo transcurrido desde que el SM sirve una peticin hasta que puede servir la siguiente. T entre peticiones de la CPU Tef + Tactualizacin Mca
AC 96: Sistema de Memoria 41
Hr Global = n aciertos en McaL2 n accesos de la CPU n acc a Hr Global = % de accesos que van finalmente a Mp: Ms
interesante!!!
42
21
03/11/2009
X X X X X X X X X
AC 96: Sistema de Memoria 43
X X
44
22
03/11/2009
Mp
b lo q u e
Escritura aplazada
bloque m odificado
CP U
b u ffer
M ca
A/F
m ux
Mp
bloque
45
46
23
03/11/2009
Sistema de Memoria (y 2 de 2)
V (bit de validez)/lnea
V se utiliza para invalidar/borrar un bloque se resetea automticamente con el RESET de la CPU Instruccin de la Arquitectura para invalidar la cache entera:
Flush_cache
Es necesario invalidar la Mca en los cambios de contexto? y la TLB?
48
24
03/11/2009
Vase la Prctica 2
49
25
03/11/2009
Sistema de Memoria (y 2 de 2)
V (bit de validez)/lnea
V se utiliza para invalidar/borrar un bloque se resetea automticamente con el RESET de la CPU Instruccin de la Arquitectura para invalidar la cache entera:
Flush_cache
Es necesario invalidar la Mca en los cambios de contexto? y la TLB?
48
03/11/2009
Vase la Prctica 2
49
tacceso (tMp) o latencia: t. que tarda en completar una L/E ancho de banda: n de bytes/s que se puede transmitir a/desde Mp
Ej. tMp = 100 ns; W [ancho de palabra] = 4 bytes [B] 4*10 MB/s ( truqui: 100 ns/X 10 MX/s)
Objetivo: ancho de banda para un W dado, usar entrelazado utilidad en la JM: tbloque entre Mp y Mca: Sin entrelazado: tsubir/bajar bloque Bq x tMp + tMca Con entrelazado: tsubir/bajar bloque tMp + tMca
50
03/11/2009
Mp: Entrelazado
M entrelazada [interleaved] : idea: organizar la Mp como K [potencia de 2] mdulos (de orden K) a los que se puede acceder simultneamente Tipos: 1. Segn la distribucin de la dirs.: 1. de orden inferior 2. de orden superior 2. Segn cmo se realiza el acceso: 1. simple p 2. complejo
Ej.: K = 4 = 22 Mp:= 2n
51
52
03/11/2009
53
(+ orden inferior)
54
03/11/2009
(+ orden inferior)
(+ orden inferior)
56
03/11/2009
(+ orden inferior)
58
03/11/2009
EDLi
0 A
EDF
Ejemplo:
Direccionamiento [ri] Registros de 32 bits Mp de 1GB EDL: 0..232 -1 EDF: 0..230-1 Direcciones distintas para la misma informacin
2
32
C A E B
2 3 0-1
-1
59
CPU D irecc ion v irtual Ins truc cion es y d atos T ra du ccio n (M M U ) Di irecc i ion fi i fisica M em oria p rin cipal B loq ue s (F A LL O ) FA LLO
60
03/11/2009
MV: Implementacin
Paginacin bloques del mismo tamao: pginas Segmentacin bloques de tamao variable: segmentos Segmentacin paginada segmentos que a su vez estn compuestos por pginas
61
03/11/2009
MV: Paginacin
Correspondencia entre pginas [pages] virtuales y marcos de pgina [page frames] Tamao de pginas 2k bytes
EDL
p v0
i
m p0
EDF
Direcci n virtu al
PV
p
d e sp
m p2
-1
pv2
-1
MP
d e sp
Direcci n fsica
63
MV: Paginacin
Implementacin de la traduccin: Tabla de pginas: TPi Una tabla por proceso, TPi, + RBTP, reg. de la Arquitectura y modo Supervisor
tip o d e a cc e so RW X
Dv
PV d e sp
R BT P +
TP
. . .
va lid a ci n
Df MP
d e sp
de
a cc e so R a cc e so v lid o RW X M P U C MP o DMs
entrada de la TP
64
03/11/2009
Ejemplo: Ej l
EDL = 4GB Pginas de 4KB N entradas de la TP = 232/212 = 220 Tamao de cada entrada de la TP = 4B Espacio necesario para la TP de cada proceso = 222B = 4 MB!!! Pero, afortunadamente:
no se utiliza todo EDLi: zonas o franjas, subconjunto pequeo en cada intervalo de tiempo no es un espacio contiguo y vara dinmicamente
AC 96: Sistema de Memoria 65
Ejemplo:
Dv zo na 10 pv 10 de sp
12
R B TP TP niv el 1
+
T P -1 n ivel 2
. . .
. . .
. . . .
. . . .
. . . .
T P -1 024 nive l 2 Df
. . .
MP
de sp
66
10
03/11/2009
MV: Segmentacin
Es pa c io vir tua l Se g m e nto Se g m e nto Se g m e nto Se g m e nto Se g m e nto 3 1 2 4 0 Es pa c io fs ic o
1 .4 00 se g m. 0 2 .3 99
Tab la de s e gm e nto s R 1 1 1 1 0 RWX M R R R R R 0 0 0 0 0 P 0 0 0 0 0 Long 1000 400 400 11 00 500 DM p 1400 6100 4300 3200 DM s
3 .2 00 se g m. 3 4 .2 99 4 .3 00 se g m. 2 4 .6 99 6
6 .1 00 se g m. 1 6 .4 99
11
03/11/2009
MV: Segmentacin
Traduccin de direcciones.
Dv s d e sp
R B TS +
TS
. . . va lid a ci n de a cce so
+ Df
a cce so vl id o
RWX M
L o n g.
D M p o D Ms
e n tra d a d e la T S
69
R B TS +
TS TP . . . + . . . Df MP d e sp
70
12
03/11/2009
Ejemplo:
ld r1, 0(r2) 2 niveles de TP, Tacc(Mp) = 60 ns Tiempo empleado en accesos a memoria sin Mv? 60+60 = 120 ns Tiempo empleado en accesos a memoria con Mv? 2x60+60 + 2x60+60 = 360 ns
AC 96: Sistema de Memoria 71
Ejemplo:
T(TLB) = 2 ns Tiempo mnimo empleado en accesos a memoria con Mv? 2+60 + 2+60 = 124 ns frente a 360 ns
AC 96: Sistema de Memoria 72
13
03/11/2009
MMU
Actu a liza ci n T LB
. . .
Mp
Va lid a ci n
FAL L O T LB
Df MP d e sp la zam ie n to
T R AD U C TO R F al lo de p g in a
D ire cci n e n T P In fo rm a ci n de la p g in a . . .
TP
Pa la b ra a /d es de la C PU
73
Hw: mquina de estados: ha sido tradicionalmente as: rpido, pero poco fl ibl cierta id flexible: i t programabilidad bilid d Sw: la moda: trap de fallo de TLB: rutina con unas pocas instrucciones, un poco ms lento que por Hw, pero ms flexibilidad: google: nov. 09: 263.000 de tlb fault exception 40.800 de tlb fault trap
Cuestin Cuestin: invalidacin de la TLB en los cambios de contexto?: aadir el PID: modernamente, ASID,
74
14
03/11/2009
JM: Mca + MV
Dv
Tipo de acc eso
PV
d esp .
Acce so n o v li do
e tiq u eta
MMU
b lo q u e M ca
b yte
M ca
Fa llo d e p g in a
TP
Nota: habitualmente, acceso a Mca con la Df no es necesario flush_cache en los cambios de contexto
Pa la b ra a /d esd e la C PU
75
15