Compu
Tema 5. Jerarquía de memoria
Departamento de Informática
Grupo de Arquitectura de Computadores, Comunicaciones y Sistemas
UNIVERSIDAD CARLOS III DE MADRID
Contenido
!
!
!
!
Tipos de memoria
Jerarquía de memoria
Memoria caché
Memoria virtual
ARCOS
Estructura de Computadores
2
Una visión general (hasta ahora)
3
Procesador
Prog.y
datos en
ejecución
Memoria Principal
Bus
Valores
frecuentes e
instrucción
actual
Módulo
E/S
Periférico
ARCOS
Módulo
E/S
Periférico
Estructura de Computadores
Módulo
E/S
Disco
Prog. y
datos NO en
ejecución
3
Una visión general (hasta ahora)
4
Procesador
Prog. y
datos en
ejecución
Memoria Principal
Bus
Valores
frecuentes einstrucción
actual
Módulo
E/S
Periférico
ARCOS
Módulo
E/S
Periférico
Estructura de Computadores
Módulo
E/S
Disco
Prog. y
datos NO en
ejecución
4
Tipos de memoria (hasta el momento)
5
Procesador
Banco de
registros
Memoria principal
Disco
ARCOS
• Almacena pocos datos
• Tiempo de acceso a un registro: orden de ns.
• Más capacidad (GB).• Tiempo de acceso: 50-100 ns.
• 1 acceso a memoria = cientos de ciclos de
reloj
• Capacidad de almacenamiento casi ilimitada.
• Tiempo de acceso lento: orden de milisegundos
Estructura de Computadores
5
Tipos de memoria
6
! Memorias semiconductoras.
" RAM y ROM.
" Memorias de estado sólido
! Memorias magnéticas.
" Discos y cintas.
! Memorias ópticas.
" CD, DVD, HD-DVD,ARCOS
Estructura de Computadores
6
Unidades de tamaño
! Normalmente se expresa en octetos o bytes:
byte
" kilobyte
" megabyte
" gigabyte
" terabyte
" petabyte
" exabyte
" zettabyte
" yottabyte
"
ARCOS
1 byte = 8 bits
1 KB = 1.024 bytes
1 MB = 1.024 KB
1 GB = 1.024 MB
1 TB = 1.024 GB
1 PB = 1.024 TB
1 EB = 1.024 PB
1 ZB = 1.024 EB
1 YB = 1.024 ZBEstructura de Computadores
210 bytes
220 bytes
230 bytes
240 bytes
250 bytes
260 bytes
270 bytes
280 bytes
7
Evolución del rendimiento
8
! Procesadores
" 1980-2000: Incremento medio del 60% anual.
! Memorias DRAM
" 1980-2000: Incremento medio del 7% anual.
! La distancia entre memoria y procesador es mayor cada año
ARCOS
Estructura de Computadores
8¿Número de accesos a memoria?
int i;
int s = 0;
for (i=0; i < 1000; i++)
s = s + i;
ARCOS
Estructura de Computadores
9
¿Número de accesos a memoria?
int i;
int s = 0;
for (i=0; i < 1000; i++)
s = s + i;
ARCOS
li
li
li
bucle: bgt
add
addi
b
Estructura de Computadores
$t0, 0
$t1, 0
$t2, 1000
$t1, $t2,
$t0, $t0,
$t1, $t1,
bucle
// s
// i
fin
$t1
110
¿Número de accesos a memoria?
int i;
int s = 0;
for (i=0; i < 1000; i++)
s = s + i;
li
li
li
bucle: bgt
add
addi
b
$t0, 0
$t1, 0
$t2, 1000
$t1, $t2,
$t0, $t0,
$t1, $t1,
bucle
// s
// i
fin
$t1
1
Solución: 3 + 4 × 1000 + 1 = 4004
ARCOS
Estructura de Computadores
11
¿Número de accesos a memoria?
int i;
int s = 0;
for (i=0; i < 1000; i++)
s= s + i;
li
li
li
bucle: bgt
add
addi
b
$t0, 0
$t1, 0
$t2, 1000
$t1, $t2,
$t0, $t0,
$t1, $t1,
bucle
// s
// i
fin
$t1
1
Solución: 3 + 4 × 1000 + 1 = 4004
! Con una memoria de 60 ns el tiempo total sería 240240 ns
! Un procesador dedicaría más del 90% de su tiempo a esperar
datos de memoria
ARCOS
Estructura de Computadores
12
¿Número de accesos a memoria?int v[1000];
// global
int i;
for (i=0; i < 1000; i++)
v[i] = 0;
ARCOS
Estructura de Computadores
13
¿Número de accesos a memoria?
int v[1000];
// global
.data:
int i;
for (i=0; i < 1000; i++)
v[i] = 0;
ARCOS
v: .space 4000
.text:
li
li
li
bucle: bgt
sw
addi
addi
b
Estructura de Computadores
$t0, 0
// i
$t1, 0
// i de v
$t2, 1000...
Regístrate para leer el documento completo.