Sie sind auf Seite 1von 89

Universidad Nacional de Ingeniera

Facultad de Ciencias

Arquitectura de computadores




Prof.: Lic. Csar Martn Cruz S.
ccruz@uni.edu.pe

2012 I


1
Introduccin
Lic. Martn Cruz Arquitectura de computadores - CC212
1. Conceptos importantes.
2. Memorias cachs.
3. Medicin del rendimiento de los cachs.
4. Memoria virtual.

2
Locality
Lic. Martn Cruz Arquitectura de computadores - CC212
Locality. Principio que establece que en un instante dado un
programa accesa un espacio pequeo de su espacio de
direcciones.
Locality en tiempo. Si se accede a una direccin de memoria, es
posible que vuelva a ser usado pronto.
Locality en espacio. Si se accede a una direccin de memoria,
es posible que las direcciones de memoria que se encuentran
prximas a ella sean usadas pronto.
Para tomar ventaja del principio de locality, se establece una
jerarqua de memoria.
3
Jerarqua de memoria
Lic. Martn Cruz Arquitectura de computadores - CC212
Una jerarqua de memoria consiste de mltiples niveles de
memoria con diferentes velocidades y tamaos.
Las memorias mas rpidas son mas pequeas y viceversa.





SRAM (RAM esttica) se utiliza para el cach.
DRAM (RAM dinmica) se utiliza para la memoria principal.
4
Jerarqua de la memoria
Lic. Martn Cruz Arquitectura de computadores - CC212
En la jerarqua, la memoria mas rpida y pequea est mas
cerca de la CPU que la memoria mas lenta y grande.
5
Jerarqua de la memoria
Lic. Martn Cruz Arquitectura de computadores - CC212
Una jerarqua multinivel se ve como una jerarqua de 2 niveles
porque en un instante dado los datos se copian solo entre
niveles adyacentes.
La memoria en el nivel superior es la mas cercana a la CPU y
ms pequea y rpida que la memoria en el nivel inferior.
6
Bloques
Lic. Martn Cruz Arquitectura de computadores - CC212
Bloque es la unidad mnima de informacin que puede estar o
no estar presente en una jerarqua de 2 niveles.

7
xitos y fallas
Lic. Martn Cruz Arquitectura de computadores - CC212
Un xito (hit) se produce cuando los datos que busca la CPU
estn en el nivel superior.
Si los datos no estn, se produce una falla (miss) y se buscan
en el nivel inferior.
8
Medidas de rendimiento
Lic. Martn Cruz Arquitectura de computadores - CC212
Tasa de xito (hit rate). Fraccin de accesos de memoria
encontrados en el nivel superior.
Tasa de falla (miss rate) = (1 tasa de xito). Fraccin de los
accesos a memoria no encontrados en el nivel superior.
Tiempo de xito (hit time). Tiempo necesario para determinar si
el acceso es un xito o una falla.
Castigo por falla (miss penalty). Tiempo para reemplazar un
bloque en el nivel superior con el correspondiente bloque del
nivel inferior, mas el tiempo para entregar el bloque al
procesador.
9
Memoria cach
Lic. Martn Cruz Arquitectura de computadores - CC212
Cach, un lugar seguro para esconder o guardar cosas.
Nuevo diccionario Mundial del Lenguaje Americano
Memoria Cach es el nivel de memoria situada entre el
procesador y la memoria principal.
Se comenzaron a usar a fines de los aos 60s.
Hoy en da, todas la computadoras incluyen cachs.
10
Usos de las memorias cachs
Lic. Martn Cruz Arquitectura de computadores - CC212
Cachs de datos. Guardan los ltimos datos referenciados.
Cachs de instrucciones. Guardan las ltimas instrucciones
ejecutadas.
Cachs de trazas (trace caches). Guardan secuencias de
instrucciones para ejecutar que no son necesariamente
adyacentes.
11
Ejemplo
Lic. Martn Cruz Arquitectura de computadores - CC212
El tamao del bloque es 1 palabra (4 bytes).
Las peticiones de la CPU son de 1 palabra.
La memoria cach ya tiene los siguientes datos:
Se pide X
n
, que no se
encuentra en el cach.

Se produce una falla.
Se trae X
n
de la memoria
principal.
Se inserta en el cach.
12
2 Preguntas
Lic. Martn Cruz Arquitectura de computadores - CC212
1. Cmo se sabe si un dato est en el cach?
2. Si est, Cmo se encuentra?
Estrategias que se usan:
a) Cach de mapeo directo (direct mapped cache).
b) Cach asociativo total (fully associative cache).
c) Cach asociativo por conjunto (n-way set associative
cache).

13
Cach de mapeo directo
Lic. Martn Cruz Arquitectura de computadores - CC212
A cada dato se le asigna un lugar en el cach de acuerdo a su
direccin en la memoria principal.
b = d mod n
b es el bloque que le corresponde en el cach.
d es la direccin de bloque.
n es el nmero de bloques del cach.
Si n es 2
m
, el cache se puede indexar con los m bits mas bajos
de su direccin de bloque.

14
Cach de mapeo directo
Lic. Martn Cruz Arquitectura de computadores - CC212
d = a div k
d es la direccin de bloque.
a es la direccin en bytes del dato en memoria.
k es el nmero de bytes por bloque.

15
Ejemplo
Lic. Martn Cruz Arquitectura de computadores - CC212
Si n es 8, la direccin en el cache se encuentra con los 3 bits
mas bajos de la direccin:
16
Etiquetas y bit vlido
Lic. Martn Cruz Arquitectura de computadores - CC212
Se necesita saber si el dato en el cach corresponde con el dato
buscado.
Cada bloque en el cach tiene una etiqueta.
La etiqueta tiene la informacin necesaria para identificar si el
dato en el cach es el dato buscado.
En mapeo directo, la etiqueta tiene los bits altos de la direccin
del dato.
Adems se necesita saber si el bloque tiene informacin vlida
o no.
Cada bloque tiene un bit llamado bit vlido.
17
Ejemplo
Lic. Martn Cruz Arquitectura de computadores - CC212
Tamao de la memoria cach: 8 bloques.
Tamao del bloque: 1 palabra.
Inicialmente la memoria cach est vaca (para todas las
entradas bit vlido = falso).
Se reciben las siguientes peticiones de direcciones de palabra:
22, 26, 22, 26, 16, 3, 16 y 18
18
Estado inicial
Lic. Martn Cruz Arquitectura de computadores - CC212
Estado inicial de la memoria cach despus de
encender el computador:
19
Se pide la direccin 22
10

Lic. Martn Cruz Arquitectura de computadores - CC212
22
10
= 10110
2
.
Se busca en el bloque 110 y se produce una falla.
Se carga el dato en el bloque 110.
20
Se pide la direccin 26
10

Lic. Martn Cruz Arquitectura de computadores - CC212
26
10
= 11010
2
.
Se busca en el bloque 010 y se produce una falla.
Se carga el dato en el bloque 010.
21
Se pide la direccin 22
10

Lic. Martn Cruz Arquitectura de computadores - CC212
22
10
= 10110
2
.
Se busca en el bloque 110.
Se compara la etiqueta con 10 (la parte alta de la direccin).
Se produce un xito.
22
Se pide la direccin 26
10

Lic. Martn Cruz Arquitectura de computadores - CC212
26
10
= 11010
2
.
Se busca en el bloque 010.
Se compara la etiqueta con 11 (la parte alta de la direccin).
Se produce un xito.
23
Se pide la direccin 16
10

Lic. Martn Cruz Arquitectura de computadores - CC212
16
10
= 10000
2
.
Se busca en el bloque 000 y se produce una falla.
Se carga el dato en el bloque 000.
24
Se pide la direccin 3
10

Lic. Martn Cruz Arquitectura de computadores - CC212
3
10
= 00011
2
.
Se busca en el bloque 011 y se produce una falla.
Se carga el dato en el bloque 011.
25
Se pide la direccin 16
10

Lic. Martn Cruz Arquitectura de computadores - CC212
16
10
= 10000
2
.
Se busca en el bloque 000.
Se compara la etiqueta con 10 (la parte alta de la direccin).
Se produce un xito.
26
Se pide la direccin 18
10

Lic. Martn Cruz Arquitectura de computadores - CC212
18
10
= 10010
2
.
Se busca en el bloque 010 y se produce una falla.
Se carga el dato en el bloque 010.
27
Cach de 4 kb de mapeo directo
Lic. Martn Cruz Arquitectura de computadores - CC212
28
Explicacin
Lic. Martn Cruz Arquitectura de computadores - CC212
1K = 1024 = 2
10
palabras.
Direcciones de 32 bits.
La direccin se divide en:
ndice del cache (bits 2:11) selecciona el bloque.
Etiqueta (bits 12:31) se compara con la etiqueta del bloque
del cach.
xito = vlido AND (etiqueta == direccin[12:31])
Como en MIPS las palabras estn alineadas en mltiplos de 4,
los bits 0:1 direccionan bytes y se ignoran para seleccionar el
bloque.
29
Overhead de un cach
Lic. Martn Cruz Arquitectura de computadores - CC212
Overhead es el espacio extra requerido para guardar los datos
en un cach.
En un cach de mapeo directo, el overhead incluye las
etiquetas y los bits vlidos.
t = 2
n
x (2
m
x 32 + (p 1) n m)
t es el tamao en bits del cache.
n es el nmero de bits usados para indexar el cach.
m es el logaritmo base 2 del tamao en palabras del bloque.
p es el nmero de bits de la direccin.
30
Ejemplo
Lic. Martn Cruz Arquitectura de computadores - CC212
Cul es el overhead de un cach de 16 KB de datos en bloques
de 4 palabras? La direccin es de 32 bits.
p = 32.
m = 2 porque log
2
(4) = 2 (porque 2
2
= 4).
16 KB = 4 K palabras (porque 1 palabra = 4 bytes).
Nmero de bloques = 4 / 4 = 1 K = 1024 bloques.
n = log
2
(1024) = 10 (porque 2
10
= 1024).
t = 1024 x (2
2
x 32 + 31 10 2) = 150,528 bits.
31
Ejemplo
Lic. Martn Cruz Arquitectura de computadores - CC212
16 KB = 16 x 1024 bytes = 16,384 bytes =
131,072 bits
Overhead = 150,528 / 131,072 = 1.148.
El overhead es alrededor del 15%.

32
Ejemplo
Lic. Martn Cruz Arquitectura de computadores - CC212
Considerar un cach de 64 bloques y un tamao de bloque de
16 bytes. Qu nmero de bloque le toca a la direccin del byte
1200?
Se usan las frmulas:
b = d mod n
b es el bloque que le corresponde en el cach.
d es la direccin de bloque.
n es el nmero de bloques del cach.

33
Ejemplo
Lic. Martn Cruz Arquitectura de computadores - CC212
d = a div k
d es la direccin de bloque.
a es la direccin en bytes del dato en memoria.
k es el nmero de bytes por bloque.

Solucin:
a = 1200
k = 16
d = 1200 div 16 = 75
34
Ejemplo
Lic. Martn Cruz Arquitectura de computadores - CC212
n = 64
d = 75
b = 75 mod 64 = 11

La direccin 1200 se busca en el bloque 11 del cach.
35
Tamao del bloque
Lic. Martn Cruz Arquitectura de computadores - CC212
Incrementar el tamao del bloque generalmente reduce la tasa
de fallas.
La tasa de fallas aumenta si el bloque es demasiado grande
comparado con el tamao del cache.

36
Falla del cach
Lic. Martn Cruz Arquitectura de computadores - CC212
Una peticin por datos (o instrucciones) que no se cumple
porque el dato no est en el cach.
Si el cach reporta xito, la computadora usa el dato o
instruccin y contina como si nada.
Si el cach reporta falla, el control debe obtener el dato del
siguiente nivel de la jerarqua y posiblemente detener
(stall) el pipeline.
Los superescalares, con ejecucin fuera de orden, pueden
ejecutar otras instrucciones y ocultar la falla.
37
Falla de cach
Lic. Martn Cruz Arquitectura de computadores - CC212
En un cach de instrucciones:
1. Se enva el valor original del PC (PC actual 4) a la
memoria.
2. Ordenar una lectura a la memoria y esperar a que se
complete.
3. Guardar la instruccin en el cach, escribiendo los bits altos
de la direccin en la etiqueta y prendiendo el bit vlido.
4. Recomenzar la ejecucin de la instruccin desde el primer
paso.
38
Mapeo de escrituras
Lic. Martn Cruz Arquitectura de computadores - CC212
Una escritura (write) es el resultado de un store.
El store debe escribir en el cach y en la memoria.
De otro modo el cach y la memoria seran inconsistentes.
Dos estrategias se utilizan para el manejo de escrituras:

Write-through. Escribir cada vez en el cach y en la
memoria.
Write-back. Escribir solo en el cach y copiar el dato a la
memoria cuando la entrada en el cach va a ser remplazada.
39
Write-through
Lic. Martn Cruz Arquitectura de computadores - CC212
Escribir en la memoria es lento.
Una escritura puede tomar 100 ciclos de reloj.
Segn SPECInt2000, 10% de las instrucciones son escrituras.
Si el CPI es 1, gastar 100 ciclos en cada escritura aumenta el
CPI a 1 + 100 * 0.1 = 11.
Escribir en el cach y la memoria puede reducir el rendimiento
en un factor de 10.
Una solucin es usar un buffer de escritura.
40
Write-through
Lic. Martn Cruz Arquitectura de computadores - CC212
El buffer de escritura es una cola que guarda datos que esperan
ser escritos en la memoria principal.
El programa escribe en el cach y en el buffer y contina
ejecutando instrucciones.
Si el buffer est lleno, el siguiente store se detiene.
Un procesador superescalar puede continuar ejecutando alguna
otra instruccin.
Ningn buffer es suficiente si el procesador produce escrituras
mas rpido de lo que la memoria puede aceptarlas.
41
Write-back
Lic. Martn Cruz Arquitectura de computadores - CC212
El bloque del cach se escribe en la memoria solo si es
necesario.
El bloque tiene un bit llamado bit inconsistente.
Si el bit inconsistente est apagado, el bloque no fue
modificado y puede ser remplazado sin peligro.
Si el bit inconsistente est prendido, hay una inconsistencia
entre el cach y la memoria. Antes de ser remplazado, el bloque
debe escribirse en la memoria.

42
Comparacin
Lic. Martn Cruz Arquitectura de computadores - CC212
Write-through necesita un ciclo de reloj para escribir porque el
dato simplemente se sobrescribe.
Write-back necesita dos ciclos de reloj para escribir:
Un ciclo para ver si el dato est en el cach.
Otro ciclo para escribir el dato.
Una solucin es usar un buffer de store.
El procesador busca en el cach y coloca el dato en el buffer
durante el ciclo normal de acceso al cach.
Suponiendo xito, el dato se escribe en el cach durante el
siguiente ciclo sin usar.
43
Organizacin de la memoria
Lic. Martn Cruz Arquitectura de computadores - CC212
Objetivo: reducir el castigo por falla.
La CPU est conectada a la memoria por un bus.
El reloj del bus puede ser hasta 10 veces mas lento que el reloj
del procesador.
La velocidad del bus afecta al castigo por falla.
Suponer los siguientes tiempos:
1 ciclo de reloj del bus para enviar la direccin.
15 ciclos por cada acceso a memoria.
1 ciclo para enviar una palabra.
Suponer un tamao de bloque de 4 palabras.
44
Organizacin de la memoria
Lic. Martn Cruz Arquitectura de computadores - CC212
45
Organizacin de la memoria
Lic. Martn Cruz Arquitectura de computadores - CC212
En la organizacin ancho de 1 palabra:
Ancho del bus y de la memoria es de 1 palabra.
El acceso a la memoria es secuencial.
Castigo por falla: 1 + 4 x 15 + 4 x 1 = 65 ciclos de reloj del
bus.
Nmero de bytes transferidos por ciclo de reloj del bus por
cada falla: (4 x 4) / 65 = 0.25
46
Organizacin de la memoria
Lic. Martn Cruz Arquitectura de computadores - CC212
En la organizacin memoria ancha:
Ancho del bus y de la memoria es de 4 palabras.
El acceso a la memoria es en paralelo.
Castigo por falla: 1 + 1 x 15 + 1 x 1 = 17 ciclos de reloj del
bus.
Nmero de bytes transferidos por ciclo de reloj del bus por
cada falla: (4 x 4) / 17 = 0.94

47
Organizacin de la memoria
Lic. Martn Cruz Arquitectura de computadores - CC212
En la organizacin interleaved:
Ancho del bus es de 1 palabra.
Ancho de la memoria es de 4 palabras repartidas en 4
bancos de memoria independientes.
El acceso a la memoria es en paralelo.
La transferencia es secuencial.
Castigo por falla: 1 + 1 x 15 + 1 x 4 = 20 ciclos de reloj del
bus.
Nmero de bytes transferidos por ciclo de reloj del bus por
cada falla: (4 x 4) / 20 = 0.8
48
Organizacin de la memoria
Lic. Martn Cruz Arquitectura de computadores - CC212
La organizacin interleaved es la preferida:
El castigo por falla es aceptable.
Un bus y memoria de 4 palabras es mas caro que un bus y 4
bancos de 1 palabra cada uno.
Cada banco puede escribir en forma independiente,
cuadruplicando el ancho de banda al escribir y provocando
menos detenciones (stalls) en un cach write-through.

49
Resumen
Lic. Martn Cruz Arquitectura de computadores - CC212
Cach de mapeo directo.
Una palabra puede ir en un solo bloque y hay una etiqueta para
cada bloque.
Estrategias para mantener el cach y la memoria consistentes:
write-through y write-back.
Para tomar ventaja de la locality espacial el bloque del cach
debe ser mayor a una palabra.
Bloques grandes reducen la tasa de fallas y mejora la eficiencia
al requerir menos espacio para las etiquetas.
50
Resumen
Lic. Martn Cruz Arquitectura de computadores - CC212
Bloques grandes incrementan el castigo por falla.
Para evitar el incremento se incrementa el ancho de banda de la
memoria para transferir bloques mas eficientemente.
Los dos mtodos mas comunes para lograr el incremento son
hacer la memoria mas ancha e interleaving.
Interleaving tiene ventajas adicionales.
51
Memoria Virtual
Lic. Martn Cruz Arquitectura de computadores - CC212
Memoria virtual es un mecanismo que permite que la memoria
principal parezca mas grande que su tamao fsico.

Permite ejecutar programas mas grandes que la memoria fsica
disponible.

La memoria principal acta como cach de la memoria
secundaria (disco duro).
52
Definiciones
Lic. Martn Cruz Arquitectura de computadores - CC212
Espacio de direcciones. Rango de localidades de memoria
accesibles solo por un programa.
Direccin fsica. Direccin en la memoria principal.
La memoria virtual incluye mecanismos para traducir del
espacio de direcciones a direcciones fsicas.
Proteccin. Mecanismos para asegurar que mltiples procesos
que compartan la CPU, memoria o dispositivos de I/O no
interfieran uno con otro.
La proteccin tambin asla los procesos del usuario de los
procesos del sistema operativo.
53
Memoria y cachs
Lic. Martn Cruz Arquitectura de computadores - CC212
Los conceptos en memoria virtual y cachs son los mismos
pero con nombres diferentes.
Un bloque en memoria virtual se llama pgina.
Una falla en memoria virtual se llama falta de pgina o
fallo de pgina.
En memoria virtual la CPU produce una direccin virtual
que es traducida por hardware y software a una direccin fsica
que se usa para acceder a la memoria principal.

54
Mapeo de direcciones
Lic. Martn Cruz Arquitectura de computadores - CC212
Esta traduccin se le llama mapeo de direcciones o
traduccin de direcciones.

55
Explicacin
Lic. Martn Cruz Arquitectura de computadores - CC212
Hoy en da, los dos niveles de la jerarqua de la memoria
controlados por la memoria virtual corresponden a las DRAMs
y a los discos magnticos.

Segn la analoga con la biblioteca, podemos pensar que una
direccin virtual se corresponde con el ttulo del libro; y que
una direccin fsica se corresponde con su ubicacin en la
biblioteca donde se encuentra el libro, que le fue asignada
segn el cdigo de identificacin de la biblioteca.
56
Relocalizacin
Lic. Martn Cruz Arquitectura de computadores - CC212
La memoria virtual ofrece un mecanismo de relocalizacin de
programas.
Las direcciones virtuales usadas por un programa se mapean a
direcciones fsicas.
Los programas se componen de una o mas pginas de tamao
fijo.
El sistema operativo carga en memoria principal solo un
nmero suficiente de pginas por programa.
57

Direcciones virtuales y fsicas
Lic. Martn Cruz Arquitectura de computadores - CC212
En memoria virtual, una direccin se compone de un nmero
de pgina virtual y un offset.
El nmero de pgina virtual se traduce a un nmero de pgina
fsica.
58
Direcciones virtuales y fsicas
Lic. Martn Cruz Arquitectura de computadores - CC212
El nmero de bits del offset determina el tamao de la pgina.

El nmero de bits del nmero de pgina virtual es mayor o
igual al nmero de bits del nmero de pgina fsica.

La idea es que la memoria virtual sea mas grande que la
memoria fsica.

59
Consideraciones de diseo
Lic. Martn Cruz Arquitectura de computadores - CC212
La falta de pgina es muy costosa.
La memoria principal es 100,000 veces ms rpida que el disco
duro.

60
Consideraciones de diseo
Lic. Martn Cruz Arquitectura de computadores - CC212
Las pginas deben ser suficientemente grandes para amortizar
el costo de acceso. Los tamaos que se encuentran hoy en da
van desde 4KB hasta los 16KB. Se estn desarrollando nuevos
sistemas que soportan pginas de 32KB y 64KB.
Para reducir la tasa de faltas, los bloques pueden ir en
cualquier parte de la memoria principal (i.e. la memoria es fully
associative(totalmente asociativa)).
Las faltas de pgina se manejan en el software para permitir
algoritmos inteligentes.
Cualquier reduccin en la tasa de faltas vale la pena el
esfuerzo de implementacin.
61
Consideraciones de diseo
Lic. Martn Cruz Arquitectura de computadores - CC212
Write-through no funciona para memoria virtual. Los sistemas
de memoria virtual usan write-back.

62
Buscando una pgina
Lic. Martn Cruz Arquitectura de computadores - CC212
Una pgina puede estar en cualquier lugar de la memoria.

Se usa una tabla para acceder a la memoria llamada tabla de
pginas.

La tabla de pginas se indexa con el nmero de pgina virtual y
regresa el nmero de pgina fsica.

La CPU incluye un registro para apuntar a la tabla de pginas
del programa que est corriendo.
63
Tabla de pginas
Lic. Martn Cruz Arquitectura de computadores - CC212
64
Explicacin
Lic. Martn Cruz Arquitectura de computadores - CC212
El registro de tabla de pginas apunta al comienzo de la tabla
de pginas.
El tamao de pgina es 2
12
= 4 KB.
El espacio de direcciones virtuales es 2
32
= 4 GB.
El espacio de direcciones fsicas es 2
30
= 1 GB.
El nmero de entradas en la tabla de pginas es 2
20
=
1,048,576.
Cada entrada tiene un bit vlido para indicar si el mapeo es
legal.
Si el bit es falso, se genera una falta de pgina.
65
Tabla de Pginas
Lic. Martn Cruz Arquitectura de computadores - CC212
Cada programa tiene su propia tabla de pginas.

Varios programas pueden tener el mismo espacio de
direcciones virtuales.

El sistema operativo se encarga de:
Asignar la memoria fsica.
Actualizar las tablas de pginas para que los espacios de
direcciones virtuales de los distintos programas no
colisionen.

66
Falta de pgina
Lic. Martn Cruz Arquitectura de computadores - CC212
Ocurre cuando el bit vlido es falso.
El sistema operativo:
Toma el control.
Interrumpe el proceso y guarda su estado.
Busca la pgina en el rea de swap del disco duro y la carga
en la memoria principal.
Si la memoria est llena, se necesita reemplazar una pgina.
Tpicamente, la estrategia de reemplazo es LRU(Least
Recently Used)(Menos recientemente usado) (o una
aproximacin).
67
rea de swap
Lic. Martn Cruz Arquitectura de computadores - CC212
rea del disco reservada para todo el espacio de memoria
virtual de un proceso.
Incluye un registro de donde se guarda en disco cada pgina
virtual.
68
Tamao de la tabla de pginas
Lic. Martn Cruz Arquitectura de computadores - CC212
Suponer lo siguiente:
Direcciones virtuales de 32 bits.
Nmero de pgina virtual ocupa 20 bits y el offset los otros
12 bits.
El nmero de entradas en la tabla de pginas es 2
20
=
1,048,576.
Si cada entrada ocupa 4 bytes, la tabla ocupa 4 MB.
Si hay cientos de procesos, la memoria puede ser insuficiente.
Es deseable reducir el tamao de la tabla.
69
Tamao de la tabla de pginas
Lic. Martn Cruz Arquitectura de computadores - CC212
Estrategias:
1. La tabla crece segn el proceso consume memoria (tabla
dinmica).
No es prctico en los esquemas modernos usar una rea
dinmica de pila y otra de heap.
2. Usar dos tablas dinmicas, una para la pila y otra para el
heap.
Las tablas crecen en direcciones opuestas.
Usado en varias arquitecturas incluyendo MIPS.
70
Tamao de la tabla de pginas
Lic. Martn Cruz Arquitectura de computadores - CC212
3. Hacer la tabla de pginas virtual.
La tabla se pgina y reside en el espacio de direcciones
virtuales.
Desventaja: se generan nuevos problemas, como posibles
cadenas sin fin de faltas de pgina.
Solucin general:
Las tablas residen en el espacio de direcciones del sistema
operativo.
Algunas de las tablas del sistema se colocan en memoria
principal y nunca en disco.
71
TLB
Lic. Martn Cruz Arquitectura de computadores - CC212
Aunque las tablas de pginas residan en memoria principal,
cada acceso toma el doble de tiempo:
Un acceso para obtener la direccin fsica.
Un segundo acceso para obtener los datos.
Para mejorar el rendimiento se aprovecha el concepto de
locality.
Si una traduccin de una direccin virtual se acaba de usar, es
posible que se vuelva a usar.
Se usa un cach especial de traducciones llamado TLB
(translation-lookaside buffer)(bfer de traduccin lateral).
72
TLB
Lic. Martn Cruz Arquitectura de computadores - CC212
73
Explicacin
Lic. Martn Cruz Arquitectura de computadores - CC212
La TLB acta como cach para las entradas que mapean solo a
pginas fsicas.

La TLB contiene un subconjunto de los mapeos de pgina
virtual a pgina fsica que estn en la tabla de pginas.

Como el TLB es un cach tiene campo de etiqueta.

Si la pgina no est en el TLB se busca en la tabla de pginas.
74
Explicacin
Lic. Martn Cruz Arquitectura de computadores - CC212
Se busca la pgina virtual en la tabla de pginas y sucede una
de dos cosas:
a) Regresa el nmero de pgina fsica de la pgina (que se
usa para construir una entrada en la TLB).
b) Indica que la pgina reside en disco, en cuyo caso se
genera una falta de pgina.
La tabla de pginas no tiene campo de etiqueta porque no es
un cache.
75
Valores tpicos del TLB
Lic. Martn Cruz Arquitectura de computadores - CC212
Tamao: 16 512 entradas.
Tamao de bloque: 1 2 entradas de la tabla de pginas (4 8
bytes cada una).
Hit time: 0.5 1 ciclo de reloj.
Miss penalty: 10 100 ciclos de reloj.
Miss rate: 0.01% 1%.
Estategia de escritura: write-back.
Organizacin tpica: fully associative con reemplazo aleatorio
de bloques.
76
TLB del FastMath de Intrinsity
Lic. Martn Cruz Arquitectura de computadores - CC212
Tamao de pgina: 4 KB.
Tamao de la direccin: 32 bits, 20 bits para el nmero de
pgina virtual y 12 bits para el offset.
La direccin fsica tambin es de 32 bits.
El TLB tiene 16 entradas, es fully associative y se comparte
entre referencias a datos y a instrucciones.
Cada entrada del TLB es de 64 bits.
Etiqueta de 20 bits (nmero de pgina virtual).
Nmero de pgina fsica, tambin de 20 bits.
Bit vlido, bit inconsistente y otros bits de referencia.
77
Lic. Martn Cruz Arquitectura de computadores - CC212
Procesando una peticin de lectura y escritura
78
TLB del FastMath de Intrinsity
Lic. Martn Cruz Arquitectura de computadores - CC212
Cuando ocurre una falla de TLB:
Se interrumpe el proceso actual.
Entra el sistema operativo a manejar la falla.
Accede a la tabla de pginas.
Si la direccin fsica es vlida, la guarda en el TLB.
Si no es vlida, se genera una falta de pgina.
La entrada a reemplazar se escoge aleatoriamente.
79
Jerarqua de la memoria
Lic. Martn Cruz Arquitectura de computadores - CC212
La Memoria virtual, el TLB y los cachs forman una jerarqua.
Un dato no puede estar en el cach sin estar en la memoria
principal.
El sistema operativo mantiene la jerarqua borrando una pgina
del cach si decide migrar la pgina de la memoria principal al
disco duro.
Al mismo tiempo, modifica el TLB y la tabla de pgina de
modo que una referencia a un dato en la pgina produce una
falta de pgina.
80
Combinaciones
Lic. Martn Cruz Arquitectura de computadores - CC212
Posibles combinaciones de eventos en el TLB, memoria virtual
y cach.

81
Proteccin
Lic. Martn Cruz Arquitectura de computadores - CC212
El sistema operativo debe asegurar que un proceso no escriba en
el espacio de direcciones de otro proceso.
El bit de acceso de escritura en la TLB protege una pgina de
ser escrita.
El hardware debe ofrecer al menos tres capacidades:
1. Soportar dos modos para distinguir entre un proceso de usuario
(modo usuario) y un proceso del sistema operativo (modo
kernel o supervisor).
82
Proteccin
Lic. Martn Cruz Arquitectura de computadores - CC212
2. Proveer una parte del estado del procesador de solo lectura.
Esto incluye el bit de modo usuario/supervisor, el apuntador a
la tabla de pginas y el TLB.
3. Proveer un mecanismo para que el procesador vaya de modo
usuario a modo supervisor y viceversa.
Modo usuario supervisor: excepcin de llamada al
sistema (system call exception).
Modo supervisor usuario: regreso de excepcin.
83
Proteccin
Lic. Martn Cruz Arquitectura de computadores - CC212
Un proceso no debe accesar los datos de otro.
Un proceso de usuario no puede cambiar su propia tabla de
pginas.
El sistema operativo es el nico que puede hacerlo.
Si un proceso P
2
desea compartir una pgina con P
1
, debe
pedirle al sistema operativo que cree una entrada en la tabla de
pginas de P
1
que apunte a dicha pgina fsica de P
2
.
84
Proteccin
Lic. Martn Cruz Arquitectura de computadores - CC212
Cambio de contexto (context switch). Cuando el sistema
operativo decide dejar de correr un proceso P
1
para
correr otro proceso P
2
.
El sistema operativo debe asegurarse que P
2
no pueda
accesar las pginas de P
1
.
Hay dos opciones:
a) Limpiar el TLB en cada cambio de contexto.
Problema: serie de fallas cuando P
1
regrese y encuentre el
TLB vaco.
85
Proteccin
Lic. Martn Cruz Arquitectura de computadores - CC212
b) Agregar el nmero de proceso (pid process id) al TLB.
Intrinsity FastMATH usa un campo de 8 bits con el pid.
Un xito en el TLB ocurre solo si el nmero de pgina y el
pid coinciden.

86
Conclusin
Lic. Martn Cruz Arquitectura de computadores - CC212
Memoria virtual es el nivel de memoria que acta como cach
entre la memoria principal y el disco.
Permite a un programa expander su espacio de direcciones mas
all de los lmites de la memoria principal.
Permite compartir la memoria principal entre varios procesos
activos.
Para apoyar la comparticin, la memoria virtual debe ofrecer
mecanismos para proteccin de la memoria.
87
Conclusin
Lic. Martn Cruz Arquitectura de computadores - CC212
El principal problema es el alto costo de las faltas de pgina.
Tcnicas para reducir la tasa de faltas:
Usar pginas grandes para tomar ventaja del locality
espacial.
El mapeo entre direcciones virtuales y fsicas es fully
associative. Una pgina virtual puede estar donde sea en la
memoria principal.
El sistema operativo usa tcnicas, como LRU(Least
Recently Used)(menos recientemente usado) (o su
aproximacin) para escoger la pgina a reemplazar.
88
Conclusin
Lic. Martn Cruz Arquitectura de computadores - CC212
Las escrituras son caras. Se usa writeback y un bit inconsistente
para evitar escribir pginas que no cambiaron.
Para asegurar que los procesos estn protegidos unos de otros,
el sistema operativo es el nico que puede alterar las tablas de
pginas.
La tabla de pginas incluye un bit de acceso de escritura para
permitir que otro proceso escriba en alguna pgina.
El TLB acta como cach de la tabla de pginas.

Das könnte Ihnen auch gefallen