Sei sulla pagina 1di 40

03/11/2009

Sistema de Memoria (1 de 2)

ndice

1. 2. 3. 4.

Introduccin a la Jerarqua de Memorias (JM) Memoria cache Memoria principal Memoria virtual

AC 96: Sistema de Memoria

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

AC 96: Sistema de Memoria

Introduccin
Objetivo:
Almacenamiento de instrucciones y datos factor determinante en la velocidad de ejecucin:

p.ej., 1 GHz 1 ns/ciclo!!!


Necesidad:

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

niv el 0 niv el 1 C a pac id ad niv el 2

Ve locid ad y C o ste

.............

niv el n

AC 96: Sistema de Memoria

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

AC 96: Sistema de Memoria

03/11/2009

JM: ubicacin automtica de dir. Dir_d


CPU LD .Rx, /Dir_d ST .Ry, /Dir_d

Mca: L1 +L2 M. Cache:


Hw

M. Virtual:
S.O. + ayuda Hw

Mp Disco

AC 96: Sistema de Memoria

JM: Principio de Inclusin


Dj: conjunto de dirs. almacenadas en el nivel j de la JM

Se cumple entonces el Principio de Inclusin:

Dj-1 Dj Dj+1

AC 96: Sistema de Memoria

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

AC 96: Sistema de Memoria

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:

sum = 0; for (i=0; i<10000; i++) sum = sum + v[i];


AC 96: Sistema de Memoria 11

Proximidad de referencias: traza: ejemplo


Traza de un programa: secuencia (que no conjunto!) de dirs. a las accede durante su ejecucin. Ej. anterior: una posible compilacin: 4 bytes/instr., 4 bytes/v[i] V[i] desde dir 1000

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:

Un programa ejecuta aproximadamente el 90% de sus instrucciones en el 10% de su cdigo


La JM funciona gracias al fenmeno de proximidad de referencias!!! Ejemplos reales: Visualizing Working Sets, E Evangelos P M k t l P. Markatos, Institute I tit t
of Computer Science (ICS), Foundation for Research & Technology - Hellas (FORTH) ;P.O.Box 1385, Heraklio, Crete, GR-711-10 GREECE

AC 96: Sistema de Memoria

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

AC 96: Sistema de Memoria

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

Memoria cache (MC)


Memoria rpida de pequea capacidad, situada entre la CPU y la Memoria principal: TMcaL1 = Tciclo del procesador p ej 0 5 ns procesador, p.ej, 0,5 Capacidad de L1: del orden de KB Capacidad de L2: hasta 16 MB Contiene parte de la informacin residente en la Memoria principal:

DMca DMp La Mca se gestiona por Hw: es transparente al transparente

cdigo (todo, sea de usuario o del S.O.)

AC 96: Sistema de Memoria

17

Memoria cache (MC)

M e mo ria C a ch e
Direc ciones

M e mo ria Prin cip a l L0 L1 i1 i2 i3 i4 B0 B1 B2 B3 B4 L n -1 a0 a1 a2 a3

a0 a1 a2 a3

CP U

D atos

i1

i2

i3

i4

L2

Bm -1

AC 96: Sistema de Memoria

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

MC: Bsqueda de bloques


Cmo se sabe si la informacin buscada est en la Mca?: la Mca considera las dirs. de la CPU como: n de bloque + posicin dentro del bloque: b bl bsqueda asociativa en el directorio: vanse P l de ubicacin d i ti l di t i Pols. d bi i
D ir ec c i n d e Mp id e n tif_b lo q u e p o sici n infor m ac i n a l p r oc e s a do r B lo qu e s
L in e a 0

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

AC 96: Sistema de Memoria

20

10

03/11/2009

MC: Decisiones de diseo


Poltica de ubicacin Dnde se puede almacenar un bloque procedente de Mp Cmo encontrar la informacin en Mca Poltica de extraccin Cundo y qu bloque se lleva la informacin a la Mp a Mca Poltica de reemplazo Cuando la pol. de ubicacin permite elegir, qu bloque se desaloja de Mca para albergar al que se sube de Mp Poltica de escritura Cundo se actualiza en Mp una escritura en Mca Tamao de la Mca y de sus bloques Cul es su influencia en la tasa de aciertos y en el tiempo medio de acceso. AC 96: Sistema de Memoria

21

MC: Poltica de ubicacin


Establece la correspondencia: bloque Bi de Mp lnea Lj de Mca
1. Directa Cada bloque de Mp slo puede ubicarse en una nica lnea de Mca. Asociativa Cada bloque de Mp puede ubicarse en cualquier lnea de Mca. q pp q Asociativa por conjuntos. Cada bloque de Mp puede ubicarse en cualquier de las lneas dentro de un nico conjunto de Mca: cada conjunto contiene 2, 4, 8? lneas
AC 96: Sistema de Memoria 22

2.

3.

11

03/11/2009

MC: Poltica de ubicacin


En [P&H] se propone que todas las polticas son asociativas, con diferentes grados de asociatividad:
1. 2. 3. Directa: (Completamente) Asociativa: Asociativa por conjuntos: Asociatividad As i ti id d 1 c [n total de lneas] S [n de lneas/set: 2, 4, 8?]

Cmo afecta el grado asociatividad al HrMca? En general, g ,

asociatividad

HrMca

[P&H] rule-of-thumb Cache 2:1: El HrMca de una Mca 1-asociativa

[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

MC: Poltica de ubicacin


Nomenclatura y caso: Mca: C = capacidad total de la Mca: 8 KB [213 bytes] Bq = tamao de los bloques: 16 bytes [24 bytes] c = n de lneas c = C/Bq: 512 lneas [29 lneas] Mp: M = capacidad: 4 GB [232 bytes] m = n de bloques de Mp m = M/Bq: 228 bloques de Mp Poltica de ubicacin: Mp Bloquei Mca Lneaj
AC 96: Sistema de Memoria 24

12

03/11/2009

MC: Ubicacin Directa


Cada bloque de Mp puede ubicarse en una nica lnea predefinida de Mca: j := i mod c 1 1 [1 asociativa] [1-asociativa]
M . prin cip a l

Ejemplo:
1 9 bi ts Etiq u e ta Etiq u e ta Etiq u e ta q . . . . Etiq u e ta

M . cac he lin e a 0 lin e a 1 lin e a 2 . . . . lin e a 5 11

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

AC 96: Sistema de Memoria

25

MC: Ubicacin Directa


D ire c c i n d e M p
19 e tiq u eta 9 b lo q ue d e M ca 4 b yte se le cci n by te e n bl oq u e Etiq u e ta se le cci n de la e n tra d a d e M ca Etiq u e ta Etiq u e ta . . . Etiq u e ta co m pa ra ci n Aci erto In fo rm a ci n a l p ro ce sa d o r

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

MC: Ubicacin (completamente) Asociativa


Cada bloque de Mp puede albergarse en cualquier lnea de Mca: j := x, donde x: 0..c-1 1 c [c-asociativa]

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

AC 96: Sistema de Memoria

27

MC: Ubicacin (completamente) Asociativa


D ire c c i n d e M p
28 e tiq u eta 4 b yte se le cci n p osi ci n e n bl oq u e Etiq u e ta Etiq u e ta Etiq u e ta . . . Etiq u e ta In fo rm a ci n a l p ro ce sa d o r

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

MC: Ubicacin Asociativa por conjuntos


Cada bloque de Mp puede ubicarse en cualquiera de las lnea de un conjunto predefinido de Mca: sea S = n de lneas/set s = n de sets s = c/S n n j := de las S lneas en el set i mod s 1 S [S-asociativa] M . prin cip a l
M . cach e Bl oq u e 0 Bl oq u e 1 . . . Bl oq u e 2 55 Bl oq u e 2 56 Bl oq u e 2 57 . . . Bl oq u e 2
28

Ejemplo:

2 0 bi ts Etiq u e ta Etiq u e ta Etiq u e ta Etiq u e ta . . Etiq u e ta Etiq u e ta

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

AC 96: Sistema de Memoria

29

MC: Ubicacin Asociativa por conjuntos


D ire c c i n d e M p
20 e tiq u eta 8 co n ju n to 4 b yte se le cci n p osi ci n e n bl oq u e In fo rm a ci n a l p ro ce sa d o r

M . cache

2 0 bi ts Etiq u e ta Etiq u e ta se le cci n d el co n ju n to d e M ca Etiq u e ta Etiq u e ta . . Etiq u e ta Etiq u e ta Etiq u e ta Etiq u e ta

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

MC: Poltica de Extraccin


Decide cundo y qu bloque se lleva desde Mp a Mca:
1. 1 Bajo demanda B j d m nd Se lleva a Mca (se sube) el bloque que produce el fallo: es la pol. por defecto 2. Con anticipacin [prefetching] Se llevan a Mca bloques que previsiblemente se van a necesitar en un futuro prximo se fundamenta en el fenmeno de proximidad espacial HrMca

AC 96: Sistema de Memoria

31

MC: Poltica de Extraccin


2.

Con anticipacin [prefetching] (cont. 1): tipos:


1. Siempre [always prefetch] Si referencia a Bloquei subir Bloquei+1 2. Ante un fallo [on a miss] Si referencia y fallo en Bloquei subir {Bloquei, Bloquei+1} 3. 3 Etiquetada [tagged]: especie de mix entre 1 y 2 mix Si referencia y fallo en Bloquei subir {Bloquei, Bloquei+1*} Si referencia a un Bloquej* {subir Bloquej+1* desmarcar Bloquej}
AC 96: Sistema de Memoria 32

16

03/11/2009

MC: Poltica de Extraccin


2.

Con anticipacin [prefetching] (cont. 2): Virtudes

Tiende a mejorar el Hr al actuar el pro de la proximidad espacial

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.

AC 96: Sistema de Memoria

33

MC: Poltica de Reemplazo


Qu bloque se desaloja de Mca para albergar a uno que se sube de Mp:
Implementacin (por Hw, como todo en Mca) muy astuta para que sea rpida Slo necesarias en caches no directas: elegir entre 2,4, 8?/c Tipos: [los mismos estudiados en paginacin en S.O.] 1. Aleatoria 2. FIFO Se S reemplaza el bloque ms antiguo de los elegibles l l bl ti d l l ibl 3. LRU [least recently used] Se reemplaza el bloque al que no se ha accedido desde hace ms tiempo 2 y 3 requieren almacenar informacin adicional en Mca y coste en tiempo de la actualizacin de contadores!!!
AC 96: Sistema de Memoria 34

17

03/11/2009

MC: Poltica de Escritura


Si hay acierto en escritura en Mca, cundo se

actualiza la informacin en el siguiente nivel?

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.

Escritura aplazada (copy-back): CB Se escribe slo en Mca.


El bloque de Mca modificado se actualiza en el siguiente nivel slo cuando es reemplazado. Bit de modificacin/bloque de Mca Posible problema por no coherencia: Multiprocesadores (MP)

AC 96: Sistema de Memoria

35

MC: Poltica de Escritura


Cuando hay fallo (en escritura) en Mca: Sin copia en Mca (with no allocation): WNA El bloque NO se sube a Mca Con copia en Mca (with allocation): WA El bloque se sube a Mca (como en los fallos de lectura) L normal Lo n rma es utilizar: ut zar

Escritura inmediata sin copia: WTWNA Escritura aplazada con copia: CBWA
36

AC 96: Sistema de Memoria

18

03/11/2009

MC: Tamao de la Mca y de sus bloques


Tamao de la Mca (C) y de sus bloques (Bq): ambos influyen en la tasa de aciertos y en el tiempo medio de d acceso (T f) (Tef):
En general, hasta un cierto tamao(*), Bq HrMca, pero tfallo [los bloques son mayores]

HrMca vs. Tef


(*) Llega un momento en que el Hr empeora (pollution point, segn [P&G]): Idea: Bq va en contra de la diversidad de zonas de memoria: extremo Bq = C

AC 96: Sistema de Memoria

37

MC: M Caches separadas I vs. D


Los accesos a direcciones datos (D) y las instrucciones (I) presentan un comportamiento diferente: p.ej., I:

75% de accesos ( %d (RISC) ) No se modifica Ms tendencia a proximidad secuencial

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

MC: M Cache multinivel


Idea: jerarqua de memorias cache: L1 y L2 (chip CPU): y + L3 en multicores

L1 L2

D
Ancho Bq

I+D

BqL1 = BqL2 normalmente se cumple el principio de inclusin: DL1 DL2

AC 96: Sistema de Memoria

39

MC: Memoria cache multinivel


Consideraciones de diseo diferentes: McaL1: Reduccin del tiempo de acierto McaL2: Reduccin de la tasa de fallos para reducir el Tpenalizacin Algunos parmetros caractersticos: Tamao
L1 L2 L3 16-64KB 256KB-2MB 2MB-8MB

Tacierto 1-3 ciclos 7-15 ciclos 20-30 ciclos

Asoc. 1-2 8-16 16-32

Unificada no si si

AC 96: Sistema de Memoria

40

20

03/11/2009

MC: Medidas de rendimiento


Tasa de aciertos (HrMca) N accesos con acierto en Mca N N total de accesos Tiempo medio de acceso (Tef)
Tiempo transcurrido desde que la CPU realiza una peticin al SM hasta que la CPU puede continuar. Objetivo: 100%

Tacierto + (1-Hr) x Tpenalizacin Tiempo medio de ocupacin (Tocup)

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

MC: Medidas de rendimiento


En Caches multinivel: Para McaL2 (y, en su caso, L3) Si fallo McaL1 y acierto en McaL2 Tacc << TMp Hr Local = n aciertos en McaL2 n accesos a McaL2

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

AC 96: Sistema de Memoria

42

21

03/11/2009

MC: Resumen decisiones vs. rendimiento


Tasa de fallos T. penalizacin Poltica de ubicacin Capacidad de la Mca Tamao de los bloques T. ocupacin

X X X X X X X X X
AC 96: Sistema de Memoria 43

X X

Victim cache Prefetching


Caches separads Caches multinivel Buffer de escritura Polticas de lectura Caches no bloqueantes

MC: Algunas mejoras


1. Victim cache:
Idea: almacena temporalmente bloques desalojados de Mca si se demanda y se encuentra en la VC no hace falta traerlo de Mp: especialmente til en fallos por conflicto 2. Lectura fuera de orden:
caso en que se distingue: tespera vs. tocupacin fuera de orden : out of order: [habitual en problemas del tema!]: 1 sube primero la dir. demandada a Mca y CPU 2 luego el resto del bloque

AC 96: Sistema de Memoria

44

22

03/11/2009

MC: Algunas mejoras


3. Buffer de escritura [write buffer]
Escritura inmediata E it i di t
buffer CPU M ca
p a la b ra

Mp
b lo q u e

Escritura aplazada
bloque m odificado

CP U

b u ffer

M ca

A/F
m ux

Mp

bloque

AC 96: Sistema de Memoria

45

MC: Algunas mejoras


4. Caches no bloqueantes
Idea: deja seguir ejecutando CPU (la desbloquea) una vez que se ha servido a dir. que ha producido el fallo y mientras sigue la actividad entre la Mca y el nivel inferior debidas al servicio del fallo: p.ej. en: - prefetching - lectura fuera de orden

AC 96: Sistema de Memoria

46

23

03/11/2009

Sistema de Memoria (y 2 de 2)

MC: Inicializacin y borrado


La etiquetas de las entradas del directorio siempre tendrn un valor: en cada una se aade un bit de validez:

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?

AC 96: Sistema de Memoria

48

24

03/11/2009

MC: Tipos de fallos


Fallos de primera referencia (o inevitables o fros o de calentamiento ) calentamiento) Fallos por conflicto Fallos de capacidad

Vase la Prctica 2

AC 96: Sistema de Memoria

49

25

03/11/2009

Sistema de Memoria (y 2 de 2)

MC: Inicializacin y borrado


La etiquetas de las entradas del directorio siempre tendrn un valor: en cada una se aade un bit de validez:

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?

AC 96: Sistema de Memoria

48

03/11/2009

MC: Tipos de fallos


Fallos de primera referencia (o inevitables o fros o de calentamiento ) calentamiento) Fallos por conflicto Fallos de capacidad

Vase la Prctica 2

AC 96: Sistema de Memoria

49

Memoria principal (Mp)


Mp: la de siempre: DRAM, SDRAM: DDR2, DDR3, Parmetros:
1. 2.

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

AC 96: Sistema de Memoria

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

AC 96: Sistema de Memoria

Mp: Entrelazado de orden inferior


Idea: mdulos consecutivos, direcciones consecutivas

AC 96: Sistema de Memoria

52

03/11/2009

Mp: Entrelazado de orden superior


Idea: dirs. consecutivas en el mismo mdulo, con 2n/K dirs. en cada mdulo

AC 96: Sistema de Memoria

53

Mp: Entrelazado simple

(+ orden inferior)

Idea: regs. R0.RK-1 hacen de k regs. de Datos, D0..DK-1

AC 96: Sistema de Memoria

54

03/11/2009

Mp: Entrelazado simple

(+ orden inferior)

Entrelazado simple de orden inferior habitual en los problemas del tema!!!


AC 96: Sistema de Memoria 55

Mp: Entrelazado complejo

(+ orden inferior)

Idea: regs. R0..Rk-1 hacen de k regs. de Dirs., A0..Ak-1

AC 96: Sistema de Memoria

56

03/11/2009

Mp: Entrelazado complejo

(+ orden inferior)

Mucho ms complejos + requieren buses de ciclo partido (que no acabaron de triunfar)


AC 96: Sistema de Memoria 57

Memoria virtual (MV)


Motivaciones: Mp: recurso escaso Capacidad aparente >> C C id d t Capacidad d l M id d de la Mp Mp: recurso nico: en entornos multiprogramacin: - Proteccin y comparticin - Reubicacin Soporte fsico: JM Mp p M. Secundaria (Disco) Capacidad aparente ilimitada ilimitada En Mp slo la informacin til en cada momento

AC 96: Sistema de Memoria

58

03/11/2009

MV: Espacio de dirs. lgicas vs. fsicas


EDLi: Espacio de dirs. lgicas o virtuales del Proceso Pi
Depende de la Arquitectura (juego de instrucciones)

EDF: Espacio de dirs fsicas dirs.


Depende de la Mp
0

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

AC 96: Sistema de Memoria

59

MV: Aspectos que se deben tratar


1. 2. 3. 3

Traduccin de direcciones Sw (S.O.) + Hw Gestin de los fallos Asignacin d M a l s procesos A i i de Mp los s s

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

AC 96: Sistema de Memoria

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

AC 96: Sistema de Memoria

61

MV: Gestin de fallos


Excepcin gestionada por el S.O.: trap de fallo de pgina [page fault trap: google: nov. 09: 3.280.000 de page fault trap !!! + 1.320.000 de page fault exception !!! ] Acciones a realizar: Suspender el proceso Pi en el que se produjo Ordenar la op. de E/S de transf. del bloque en el que se encuentra la informacin desde Disco a Mp (DMA). Actualizar la funcin de traduccin. Dar control a otro proceso Pj: cambio de contexto Una vez finalizada la transferencia del bloque, y cuando as lo decida el S.O.: Continuar la ejecucin de Pi: Reiniciar Continuar
AC 96: Sistema de Memoria 62

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

k b its F allo Tra du cci n

pv2

-1

MP

d e sp

Direcci n fsica

AC 96: Sistema de Memoria

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

AC 96: Sistema de Memoria

64

03/11/2009

MV: Tabla de pginas


TP habitualmente ubicada en Mp. Problema: Espacio necesario para su almacenamiento.

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

MV: TPs multinivel


Solucin habitual: paginar la TPi: Tablas multinivel: 3 niveles o ms, habitualmente

Ejemplo:
Dv zo na 10 pv 10 de sp

12

R B TP TP niv el 1
+

T P -1 n ivel 2

. . .

. . .

Nota: la TP1i debe estar siempre residente en Mp

. . . .

. . . .

. . . .

T P -1 024 nive l 2 Df
. . .

MP

de sp

AC 96: Sistema de Memoria

66

10

03/11/2009

MV: Aspectos de diseo


Eleccin del tamao de las pginas (P)
Utilizacin de los marcos de pginas (fragmentacin interna) Utilizacin del dispositivo de memoria secundaria secundaria. Tiempo de transferencia: Tacceso + (tamao pgina/Vtransf) Tamao de las tablas de pginas: forzar a n entero de marcos Tamao habitual: del orden de KB hasta superpages Algunos sistemas soportan distintos tamaos Vase http://en.wikipedia.org/wiki/Page_size#Page_size_trade-off p p g g g

Poltica de Poltica de Poltica de Poltica de

ubicacin escritura extraccin reemplazo


AC 96: Sistema de Memoria 67

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

Problema: Fragmentacin externa


AC 96: Sistema de Memoria 68

11

03/11/2009

MV: Segmentacin
Traduccin de direcciones.
Dv s d e sp

tip o de a cce so RWX

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

AC 96: Sistema de Memoria

69

MV: Segmentacin paginada


Ubicacin en Mp de slo las partes del segmento utilizadas. Asignacin de bloques de Mp de tamao fijo (pginas). Proteccin y comparticin a nivel d segmento. P t i ti i i l de t
Dv s p d e sp

R B TS +

TS TP . . . + . . . Df MP d e sp

AC 96: Sistema de Memoria

70

12

03/11/2009

MV: Necesidad de trad. por Hw


Inconveniente de la Mv: Tiempo empleado en la traduccin de direcciones. Todas las instrucciones requieren al menos 1 acceso a memoria (fetch) y algunas uno o ms accesos adicionales.

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

MV: Aceleracin de la traduccin


Mecanismo basado en la propiedad de proximidad de referencias.

TLB (t nsl ti n l k sid b ff ) translation lookaside buffer


Acta como una cache de las tablas de traduccin:
si acierto en TLB traduccin finalizada si no acceso a las tablas de traduccin en Mp y actualizacin de la TLB

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

MV: Aceleracin de la traduccin: MMU


Dv Tip o a cce so PV d e sp la zam ie n to

MMU

Actu a liza ci n T LB

. . .

Mp

Acc eso no v lid o

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

AC 96: Sistema de Memoria

73

MV: Aceleracin de la traduccin: MMU


Gestin de fallos de TLB:
1. 2.

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,

Address Space Identifier

AC 96: Sistema de Memoria

74

14

03/11/2009

JM: Mca + MV
Dv
Tipo de acc eso

PV

d esp .

Df MP d esp . A ctu a liza ci n

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

A cce so a l a T.P. F a llo M ca In fo rm a ci n d e tra d ucc in


Mp

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

AC 96: Sistema de Memoria

75

15

Potrebbero piacerti anche