You are on page 1of 29

Fundamentos de Ordenadores

y Sistemas Operativos
Mdulo Bsico de Telecomunicacin



Mario Martnez-Zarzuela (marmar@tel.uva.es)
Despacho 2D006
Francisco J. Daz-Pernas (pacper@tel.uva.es)
Despacho 2D080


Grado en Ingeniera de Tecnologas de Telecomunicacin
Grado en Ingeniera de Tecnologas Especficas de
Telecomunicacin
1er curso, 2do cuatrimestre
Fundamentos de Ordenadores
y Sistemas Operativos
Jerarqua de Memoria










Procesador
Principales Componentes de un
Ordenador
Ordenador 5 partes
principales:
Unidad de control
Camino de datos
Memoria
Entrada
Salida

Unidad de
Control
Camino de
datos
Memoria
Entrada
Salida
C
a
c
h


M
e
m
o
r
i
a

P
r
i
n
c
i
p
a
l

(
R
A
M
)

M
e
m
o
r
i
a

S
e
c
u
n
d
a
r
i
a

(
D
i
s
c
o
)

Tamao y ubicacin
Dispositivos
El Obstculo de la Memoria
La diferencia entre la velocidad del procesador y la
DRAM contina creciendo (The Memory Wall)
0,01
0,1
1
10
100
1000
VAX/1980 PPro/1996 2010+
Ncleo
Memoria
C
i
c
l
o
s

d
e

r
e
l
o
j

p
o
r

i
n
s
t
r
u
c
c
i

n

C
i
c
l
o
s

d
e

r
e
l
o
j

p
o
r

a
c
c
e
s
o

a

D
R
A
M

Un buen diseo de la jerarqua (cach) de memoria tiene cada vez
ms importancia en el rendimiento global del sistema
Memoria Cach
Para mantener a los microprocesadores funcionando a mxima velocidad se
inserta una pequea cantidad de memoria rpida entre la memoria principal
(lenta) y el microprocesador. El objetivo es albergar las instrucciones que se
repiten o los datos que se acceden ms frecuentemente.
El Objetivo de la Jerarqua de Memoria
Las memorias grandes son lentas y las memorias rpidas
son pequeas
Cmo se puede crear una memoria que d la sensacin de
ser grande, barata y rpida (durante la mayor parte del
tiempo)?
Utilizando jerarqua
Utilizando paralelismo
Localidad Temporal
Si una posicin de memoria es referenciada (usada) ser de
nuevo pronto referenciada
Habr que guardar los elementos de memoria accedidos ms
recientemente lo ms cerca posible del procesador
Localidad Espacial
Si una posicin de memoria es referenciada, las posiciones con
direcciones cercanas sern referenciadas pronto
Habr que mover bloques con palabras contiguas lo ms
cerca posible al procesador.
Cach de
Segundo
Nivel
(SRAM)
Jerarqua de Memoria Tpica
Control
Camino
de datos
Memoria
Secundaria
(Disco)
Componentes Integrados
F
i
c
h
R
e
g

Memoria
Principal
(DRAM)
C
a
c
h
e

D
a
t
o
s

C
a
c
h


I
n
s
t
r

I
T
L
B

D
T
L
B

Velocidad (%ciclos): s 1s 10s 100s 10,000s
Tamao (bytes): 100s 10Ks Ms Gs Ts
Precio: Mayor Menor
Aprovecha el principio de localidad para presentar al
usuario tanta memoria como se disponga en la memoria
de tecnologa ms barata, a la velocidad de acceso que
ofrece la tecnologa ms rpida.
palabra bloque pgina
Tecnologas en la Jerarqua de Memoria
La memoria principal usa tecnologa DRAM por el
tamao (densidad)
Tiempos tpicos de acceso de 50 a 70 ns
Alta densidad (1 transistor por celda->ms celdas en el mismo
espacio), menor potencia, ms baratas (de $20 a $75 por GB en
2008)
Dinmicas: necesitan ser refrescadas regularmente (~ cada 8 ms)
- consume del 1% al 2% de los ciclos activos de la DRAM
Las cachs usan tecnologa SRAM por la velocidad y
por la compatibilidad tecnolgica
Tiempos tpicos de acceso de 0.5 a 2.5 ns
De baja densidad (6 transistores por celda->menos celdas en el
mismo espacio), de alta potencia, caras (de $2000 a $5000 por
GB en 2008)
Estticas: su contenido no se pierde nunca (siempre que la
potencia se mantenga)


Caractersticas de la Jerarqua de Memoria
El tiempo de
acceso se
incrementa
con la
distancia al
procesador
L1
L2
Memoria Principal (MP)
Memoria Secundaria (MS)
Procesador
Tamao (relativo) de la memoria en cada
nivel
Contenido
inclusivo Lo
que hay en L1 es
un subconjunto de
lo que hay en L2,
que es un
subconjunto de lo
que est en MP
que es un
subconjunto de lo
que contiene la
MS
4-8 bytes (palabra)
1 to 4 blocks
1,024+ bytes (pgina)
8-32 bytes (bloque)
En los PCs actuales hay 3 niveles de cach:
L1 y L2 (dentro del ncleo) y L3 en la placa base
Terminologa en la Jerarqua de Memoria
Bloque (o lnea): mnima unidad de informacin presente (o
no) en una cach
Tasa de aciertos
Fraccin de accesos a memoria con xito en un nivel.
Tiempo de acierto:
Tiempo en acceder al bloque
+ Tiempo en determinar el fallo/acierto
Tasa de fallo
Fraccin de accesos a memoria sin xito en un nivel
Penalizacin por fallo
Tiempo en acceder al bloque de menor nivel
+ Tiempo en transmitir e insertar ese bloque al nivel en que se produjo el
fallo
+ Tiempo en pasar el bloque al elemento que lo solicit
Cmo se Gestiona la Jerarqua
de Memoria?
Registros Memoria
Por el compilador (a veces por el programador)
Cach Memoria Principal
Por la controladora de cach
Memoria Principal Discos
Por el sistema operativo (memoria virtual)
La traduccin de direcciones virtuales a
direcciones fsicas es apoyado por hardware (TLB)
Por el programador (ficheros)
Cach Memoria Principal
El tiempo de
acceso se
incrementa
con la
distancia al
procesador
L1
L2
Memoria Principal (MP)
Memoria Secundaria (MS)
Procesador
Tamao (relativo) de la memoria en cada
nivel
Contenido
inclusivo Lo
que hay en L1 es
un subconjunto de
lo que hay en L2,
que es un
subconjunto de lo
que est en MP
que es un
subconjunto de lo
que contiene la
MS
4-8 bytes (palabra)
1 to 4 blocks
1,024+ bytes (pgina)
8-32 bytes (bloque)
Dos cuestiones a resolver (a nivel hardware):
Q1: Dnde se ubicara el dato buscado en la cach?
Q2: Si ese banco de memoria est ocupado, contiene el dato
que busco?
Poltica de Ubicacin Directa
Cada bloque de memoria se ubica exactamente en un bloque
de memoria cach
Muchos bloques de los niveles bajos de la jerarqua deben
compartir bloques en la cach .
R1: Ubicacin de los datos en cach depende del ndice:
ndice son los bits de la direccin a continuacin de la
etiqueta
R2: Mirando una etiqueta asociada a cada bloque de cach y
un bit de validez por bloque para determinar la correccin del
dato almacenado acierto si dato en cach
Etiqueta son los bits ms significativos de la direccin de
memoria
Conceptos Bsicos de la Cach
Accediendo a Cach: Un primer ejemplo
00
01
10
11
Etiqueta
Datos
Q2: Es vlido el contenido?
Se compara la etiqueta de la
cach con los dos bits de mayor
peso de la direccin de memoria.
Si coinciden, y el bit de validez
est a 1, el bloque de memoria
est en cach
Bit de Validez
Q1: Dnde busco el
dato?
Se usa el ndice para
determinar qu bloque de
la cach contiene el dato
ndice = (direccin de bloque) modulo (n de bloques en la cach)
ndice
0000xx
0001xx
0010xx
0011xx
0100xx
0101xx
0110xx
0111xx
1000xx
1001xx
1010xx
1011xx
1100xx
1101xx
1110xx
1111xx
Etiqueta
ndice
Cach
Memoria Principal
OBSERVA
Bloques de una palabra
(4 bytes).
-Los dos bits de menor peso
de la direccin identifican
cada byte de la palabra en la
cache
-Cach de 4 bloques
ndice de 2 bits
-Resto bits es etiqueta
Cach con Poltica de Ubicacin Directa
Considera la siguiente secuencia de accesos a direcciones de palabras
(4bytes) de memoria principal: 0h 4h 8h Ch 10h 8h Ch 3Ch
Se comienza con una cach vaca todos los bloques inicialmente estn marcados
como no vlidos.
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0h (000000) 4h (000100) 8h (001000) Ch (001100)
10h (010000) 8h (001000) Ch (001100) 3Ch (111100)
00
01
10
11
00
01
10
11
00
01
10
11
00
01
10
11
00
01
10
11
00
01
10
11
00
01
10
11
00
01
10
11
Cach con Poltica de Ubicacin Directa
0h (000000)
Considera la siguiente secuencia de accesos a direcciones de palabras
(4bytes) de memoria principal: 0h 4h 8h Ch 10h 8h Ch 3Ch
8 accesos, 6 fallos (Tasa de fallos 75%)
0 00 Mem(0h) 1 00 Mem(0h) 1 00 Mem(0h) 1 00 Mem(0h)
1
fallo
0 00 Mem(4h) 1 00 Mem(4h) 1 00 Mem(4h)
1
1
0 00 Mem(8h) 1 00 Mem(8h)
0 00 Mem(Ch)
fallo
1
0
0
0
0
0 0
1 00 Mem(0h)
1 00 Mem(4h)
1 00 Mem(8h)
1 00 Mem(Ch)
01
10h
fallo
1 01 Mem(10h)
1 00 Mem(4h)
1 00 Mem(8h)
1 00 Mem(Ch)
1 01 Mem(10h)
1 00 Mem(4h)
1 00 Mem(8h)
1 00 Mem(Ch)
1 01 Mem(10h)
1 00 Mem(4h)
1 00 Mem(8h)
1 00 Mem(Ch)
11 3Ch
4h (000100) 8h (001000)
fallo fallo
Ch (001100)
10h (010000)
acierto
8h (001000)
acierto
Ch (001100)
fallo
3Ch (111100)
00
01
10
11
00
01
10
11
00
01
10
11
00
01
10
11
00
01
10
11
00
01
10
11
00
01
10
11
00
01
10
11
Bloques de 1 palabra, tamao de cach = 1K palabras
(o 4KB)

Ej. de Cach con Ubicacin Directa: MIPS
20
Etiqueta
10
ndice
Datos ndice Etiqueta Val
0
1
2
.
.
.
1021
1022
1023
31 30 . . . 13 12 11 . . . 2 1 0
Desplazamiento
de byte
A qu tipo de localidad estamos sacando ventaja?
20
Dato
32
Acierto
Cach con ubicacin directa y
bloques multipalabra
8
ndice
Datos
ndice Etiqueta Val.
0
1
2
.
.
.
253
254
255
31 30 . . . 13 12 11 . . . 4 3 2 1 0
Desplazamiento
de byte
20
20
Tag
Acierto Dato
32
Desplazamiento de bloque
Cuatro palabras/bloque, tamao de cach = 1K palabras

A qu tipo de localidad estamos sacando ventaja?
Sacando ventaja de la localidad espacial
Ahora los bloques de la cach contienen ms de una palabra (misma
secuencia de direcciones): 0h 4h 8h Ch 10h 8h Ch 3Ch
Se comienza con una cach vaca todos los bloques inicialmente estn marcados
como no vlidos.
0h (000000)
0
0
1
0
4h (000100)
0
0
1
0
8h (001000)
0
0
1
0
Ch (001100)
0
0
1
0
10h (010000)
0
0
1
0
8h (001000)
0
0
1
0
Ch (001100)
0
0
1
0
3Ch (011100)
0
0
1
0
Sacando ventaja de la localidad espacial
8 accesos, 4 fallos (Tasa de fallos del 50%)
0h (000000)
fallo
Ahora los bloques de la cach contienen ms de una palabra (misma
secuencia de direcciones): 0h 4h 8h Ch 10h 8h Ch 3Ch
0
0 00 Mem(4h) Mem(0h)
1
0
4h (000100)
acierto
0
1 00 Mem(4h) Mem(0h)
1
0
8h (001000)
fallo
0
0 00 Mem(4h) Mem(0h)
1
0 00 Mem(Ch) Mem(8h)
1
1
Ch (001100)
acierto
0
1 00 Mem(4h) Mem(0h)
1
1 00 Mem(Ch) Mem(8h)
10h (010000)
fallo
0
1 00 Mem(4h) Mem(0h)
1
1 00 Mem(Ch) Mem(8h)
8h (001000)
acierto
0
1 01 Mem(14h) Mem(10h)
1
1 00 Mem(Ch) Mem(8h)
01 10h 14h
Ch (001100)
acierto
0
1 01 Mem(14h) Mem(10h)
1
1 00 Mem(Ch) Mem(8h)
3Ch (011100)
fallo
0
1 01 Mem(14h) Mem(10h)
1
1 00 Mem(Ch) Mem(8h)
01 3Ch 38h
Tasa de Fallo vs Tamao de Bloque vs
Tamao de Cach
0
5
10
16 32 64 128 256
T
a
s
a

d
e

f
a
l
l
o

(
%
)

Tamao de bloque (bytes)
8 KB
16 KB
64 KB
256 KB
Tamao
Cach
Reducir tasa de fallo aumentar tamao bloque
Cuidado si el tamao del bloque llega a ser una parte importante del
tamao de la cach
Disminuye el nmero de bloques que pueden albergarse en el mismo
tamao de cach aumenta tasa de fallo
Memoria Principal Discos
El tiempo de
acceso se
incrementa
con la
distancia al
procesador
L1
L2
Memoria Principal (MP)
Memoria Secundaria (MS)
Procesador
Tamao (relativo) de la memoria en cada
nivel
Contenido
inclusivo Lo
que hay en L1 es
un subconjunto de
lo que hay en L2,
que es un
subconjunto de lo
que est en MP
que es un
subconjunto de lo
que contiene la
MS
4-8 bytes (palabra)
1 to 4 blocks
1,024+ bytes (pgina)
8-32 bytes (bloque)
Memoria Virtual
Permite al procesador trabajar con un rango de direcciones de
memoria mayor del que ofrece su Memoria Fsica (Memoria
Principal y Cach)
Da la posibilidad de ejecutar programas de mayor tamao que la
Memoria Fsica
Cada programa se compila en su propio espacio de direcciones un
espacio de direcciones virtual.
Durante la ejecucin del programa, cada direccin virtual debe ser
traducida a una direccin fsica (direccin en Memoria Principal)
Permite compartir memoria entre mltiples programas de forma
segura y eficaz
Simplifica la carga de los programas durante la ejecucin ya que
realiza reubicacin de cdigo (el cdigo del programa puede ser
cargado en cualquier lugar de la Memoria Principal)
Utiliza el principio de localidad
Generalmente un programa durante un intervalo de tiempo va a accede a
una porcin relativamente pequea de su espacio de direcciones
Los programas comparten Memoria Fsica
El espacio de direcciones de un programa se divide en pginas
(todas del mismo tamao) o en segmentos (de tamao variable)
Cada programa tiene una tabla de pginas que contiene la direccin
inicial de cada pgina
Programa 1
Espacio de direcciones virtuales
Memoria Principal
Programa 2
Espacio de direcciones virtuales
Memoria Secundaria
Traduccin de direcciones
Las direcciones virtuales se traducen en direcciones fsicas
mediante una combinacin de hardware y software
Direccin Virtual (DV)
Desplaz. de Pg Nmero de Pgina Virtual
31 30 . . . 12 11 . . . 0
Desplaz. de Pg. Nmero de Pgina Fsica
Direccin Fsica (DF)
29 . . . 12 11 0
Traduccin
Cada peticin de memoria requiere en primer lugar de una
traduccin del espacio virtual al fsico
Cuando la pgina no est en Memoria Fsica se produce un fallo de
pgina
Mecanismo de Traduccin de Direcciones
Dir. Base de
las Pg. Fsicas
Memoria Principal
Disco
Nm Pag Virtual
V
1
1
1
1
1
1
0
1
0
1
0
Tabla de Pginas
(en memoria principal)
Desplazamiento
Nm. Pg. Fsica
Desplazamiento
R
e
g
i
s
t
r
o

d
e

l
a

T
a
b
l
a

d
e

P

g
i
n
a
s

Direccionamiento Virtual con Cach
Se necesita de un acceso extra a memoria para traducir
direcciones virtuales (DV) a fsicas (DF)
La solucin hardware es la utilizacin de un Buffer de
Traduccin de Direcciones (Translation Lookaside
Buffer, TLB). Se trata de una pequea cach que
guarda las traducciones de direcciones realizadas
recientemente. Su uso evita tener que hacer una
bsqueda en la tabla de pginas (ms lenta)
CPU
Tradu-
ccin
Cache
Main
Memory
DV DF
fallo
acierto
datos
Traduccin rpida de direcciones
Dir. Base de
Pg Fsicas
Memoria Principal
Disco
Nm. de Pg. Virtual
Bit Val.
1
1
1
1
1
1
0
1
0
1
0
1
1
1
0
1
Etiqueta
Dir. Base de
Pg Fsicas
Bit Val.
TLB
Tabla de Pginas
(en memoria fsica)
R
e
g
i
s
t
r
o

d
e

l
a

T
a
b
l
a

d
e

P

g
i
n
a
s

Jerarqua de Memoria con TLB
Ante un fallo en la bsqueda de la direccin en el TLB
Si la pgina est en memoria principal: La informacin de
traduccin de la Tabla de Pginas se carga en el TLB. Se
necesitarn del orden de 10 ciclos para encontrar y cargar la
informacin de traduccin en la TLB.
Si la pgina no est en memoria principal: estamos ante un
fallo de pgina. Se necesitarn del orden del milln de ciclos
para realizar el servicio de fallo de pgina.
CPU
Bsqueda
TLB
Cach
Memoria
Principal
DV DF
fallo
acierto
datos
Tradu-
ccin
acierto
fallo
t t
10 t
10^6 t

You might also like