Академический Документы
Профессиональный Документы
Культура Документы
MEMORIAS
Memorias
Introduccin
Una memoria es un dispositivo capaz de almacenar informacin.
Operaciones:
Escritura: Introducir informacin en una posicin determinada de la memoria
Lectura: Obtener informacin existente en una posicin determinada de la
memoria
Palabra de memoria
Unidad de almacenamiento tpica. Contienen nmeros binarios.
La capacidad es el nmero de palabras: C
El tamao el nmero de bytes.
Direcciones de memoria
Cada palabra se identifica por un nmero que llamamos direccin.
El tamao de las direcciones el nmero de bits de las direcciones:B
El espacio direccionable es D=2B. Se ha de cumplir D>=C.
Memorias
Parmetros bsicos de las memorias
Capacidad
Velocidad
Tiempo de acceso: tiempo que pasa desde que empieza un operacin de
lectura o de escritura hasta que concluye.
Tiempo de ciclo: tiempo que pasa desde que comienza una operacin de
lectura o de escritura hasta que se pueda empezar con la siguiente.
Velocidad de ciclo: nmero de palabras que se pueden leer o escribir por
unidad de tiempo
Coste
Medido en euros/bit o euros/byte
Memorias
Tipos de memoria
Memorias
La memoria en un PC ( JERARQUA )
El PC utiliza la memoria para acceder rpido a la
informacin.
El disco es ms lento, pero es necesario porque la
informacin en la RAM del sistema no es permanente.
Los datos vienen de los dispositivos de
entrada (ej. teclado), o del disco.
Siempre van a parar a la RAM del sistema.
La CPU almacena en la cach los
fragmentos de informacin a los que
accede.
La CPU mantiene en los registros
informacin para las instrucciones que
ejecuta.
Memorias
La memoria en un PC ( USO )
Al arrancar la CPU lee una ROM con instrucciones para hacer un test de memoria y
asegurarse de que funciona correctamente.
En la ROM est tambin la BIOS (basic input/output system) que contiene informacin bsica
sobre los discos, la secuencia de arranque, seguridad, Plug and Play (reconocimiento
automtico de dispositivos) etc...
A continuacin la CPU carga el sistema operativo en la RAM desde el disco.
Cuando se ejecuta una aplicacin, sta se carga en memoria RAM.
Los ficheros que se abran desde la aplicacin, se cargan en memoria.
Cuando se graba un fichero o cuando se cierra una aplicacin, se libera espacio de la
memoria.
Cada vez que algo en el ordenador es abierto, se carga en memoria. Esto significa que
el ordenador lo pone en un rea de almacenamiento temporal para que la CPU
acceda a ello ms rpido.
La CPU pide los datos a la RAM, los procesa, y escribe nuevos datos en la RAM en un ciclo
continuo. (millones de veces por segundo)
Si los cambios no se guardan en un rea de almacenamiento persistente antes de ser
liberados, se pierden.
Memorias
La memoria en un PC ( TIPOS )
Memorias
La memoria en un PC
Necesidades de un procesador:
El tamao en bits de la CPU indica a cuantos bytes de informacin puede acceder
desde la RAM simultneamente. Por ejemplo, una CPU de 16-bits puede procesar
2 bytes a la vez y una CPU de 64-bits puede procesar 8 bytes a la vez.
Megahertz (MHz) es una medida de la velocidad de procesamiento de la CPU's o
ciclo de reloj, en millones por segundo. As, un 32-bit 800-MHz Pentium III podra
procesar 4 bytes simultneamente, 800 millones de veces por segundo
Memorias
La memoria en un PC
Memorias
La memoria en un PC
CACHE:
Incluso con un bus muy ancho y muy rpido, la CPU procesa los datos ms rpido
que lo que tardan en llegar desde memoria a CPU.
Las cachs alivian este problema haciendo que los datos que se utilizan con mayor
frecuencia sean accesibles inmediatamente por la CPU.
Esto se consigue porque una pequea cantidad de memoria llamada cach
primaria o de nivel 1, est dentro de la CPU.
La cach de nivel 1 es muy pequea, normalmente entre 2 kilobytes (KB) y 64 KB.
La cach secundaria o de nivel 2 est en un chip fuera de la CPU, con conexin
directa con la CPU.
El tamao de la cach de nivel 2 est entre 256 KB to 2 megabytes (MB).
En la mayora de los sistemas, los datos necesarios por la CPU estn en la cach
(95%), lo que recude mucho el tiempo perdido por la CPU.
SRAM (static random access memory) es el tipo de chips empleados para las
cachs. Son peculiares porque no necesitan refresco.
10
Memoria Virtual
Memoria Virtual es la tcnica que permite que un
programa (y sus datos) no necesite estar completo en
memoria para ejecutarse.
Esto es necesario por dos motivos:
Los programas suelen ser muy grandes y no caben enteros
en memoria fsica.
Memoria Virtual
Solucin:
Todos los programas que estn ejecutndose en un
momento determinado del tiempo, estn en disco.
Slo sus partes actualmente accedidas estn en
memoria principal.
La memoria principal acta como una cach del disco
donde estn los programas completos que se estn
ejecutando.
La tcnica de memoria virtual ofrece adems, un
mecanismo de proteccin entre programas: asegura
que ningn programa lee/escribe los datos de otro
programa
Espacios de Direcciones
La memoria fsica tiene un espacio de direcciones igual a
2n bytes, siendo n el nmero de bits (seales) que el
procesador tiene para direccionar memoria. La memoria
fsica (DRAM) se accede con direcciones fsicas.
La memoria virtual tiene un espacio de direcciones igual a
2m, siendo m la cantidad de bits que los programas utilizan
para especificar una direccin (de una instruccin o de un
dato). Estas direcciones se llaman direcciones virtuales.
direccin
virtual
Memoria
virtual
direccin
fsica
Memoria
fsica
(DRAM)
Espacios de Direcciones
Cuando un programa es compilado, sus direcciones son
direcciones del espacio virtual.
Cuando un programa es ejecutado, las direcciones con las
que se accede a memoria son direcciones del espacio
fsico.
En el medio, debe haber un proceso que traduzca una
direccin virtual a una direccin fsica.
El proceso de traduccin permite que un programa cambie
muchas veces su mapeo entre direccin virtual y direccin
fsica durante su ejecucin.
La tcnica de memoria virtual la implementa:
El sistema operativo con soporte de hardware
La traduccin de direcciones virtuales a fsicas, la realiza el
hardware (en casi todos los procesadores actuales)
Memoria Virtual
V irt u a l a d d re s s e s
P h y s ic a l a d d re s s e s
A d d re s s tra n s la tio n
D is k a d d re s s e s
La unidad (bloque)
de transferencia se
llama pgina.
Fallo: Fallo de
pgina (Page Fault)
El mapeo se realiza
entre las pginas
de memoria virtual
y las pginas de
memoria fsica.
Traduccin
Una direccin de memoria virtual se compone de:
Nmero de pgina
Offset dentro de la pgina
15 14 13 12
11 10 9 8
3210
Page offset
Translation
29 28 27
15 14 13 12
11 10 9 8
Page offset
3210
Pginas
Cuando la funcin de traduccin encuentra que
no hay mapeo para una direccin virtualfallo
de pgina
El fallo de pgina tiene una penalizacin
enorme: acceder al disco cuesta millones de
ciclos de proceso
Los sistemas de memoria virtual se disean de
forma de reducir esta penalizacin.
Pginas
Las pginas deben ser lo suficientemente grandes para
amortizar el tiempo de acceso: de 4KB, 16KB, 32KB y 64
KB.
Se usa un esquema totalmente asociativo para colocar las
pginas en memoria.
El software gestiona los fallos de pgina: el hardware avisa
que hay fallo, el SO toma el control, transfiere la pgina y
utiliza algn algoritmo para decidir a quien reemplaza.
Cuando se escribe en memoria principal, no se actualiza el
disco: se utiliza la poltica de escritura diferida. El disco se
actualiza cuando la pgina se elimina de memoria.
Tablas de Pgina
Virtual page
number
Page table
Physical page or
disk address
Valid
1
1
1
1
0
1
1
0
1
1
0
1
Physical memory
Disk storage
Tabla de Pginas
reside en Memoria
Se indexa con el
nmero de pgina
virtual.
Contiene el nmero
de pgina fsica o
bien una indicacin
de que no est.
Cada programa tiene
su propia Tabla de
Pginas.
Tabla de Pginas
Virtual address
31 30 29 28 27
15 14 13 12 11 10 9 8
Virtual page number
Page offset
20
Valid
3 2 1 0
12
Physical page number
Page table
18
15 14 13 12 11 10 9 8
Physical page number
Physical address
Page offset
3 2 1 0
Programas y Procesos
La Tabla de Pginas, junto con el PC y los registros
representan el estado del programa que se est
ejecutando.
La Tabla de Pginas define el estado de la
memoria del programa.
Si se quiere compartir la CPU, se deber salvar el
estado del programa.
El programa y su estado se denomina proceso.
Un proceso est activo si est en posesin de la
CPU : de lo contrario est inactivo.
El S.O es el que pasa los procesos del estado
inactivo a activo y viceversa
Physical memory
Disk storage
Un fallo de pgina
provoca una excepcin
que le da control al S.O
Este debe localizar el lugar
del disco donde se
encuentra la pgina que
fall.
Utiliza una estructura
similar a la Tabla de
Pginas, o bien la misma
Tabla de Pginas para
almacenar la ubicacinde
la pgina en disco.
Problema
Calcular el tamao de la Tabla de Pginas necesaria
para soportar un sistema con pginas de 4KB, 4 bytes
por entrada en la TP y direcciones virtuales de 32 bits.
Respuesta: 4MB!!!!!!!!!!
Soluciones
1.
2.
3.
4.
5.
Escrituras
Escritura diferida: adems solo se escribe si la
pgina fue modificada. Bit de sucio. (dirty).
El bit de dirty se activa cuando se realiza una
escritura en la pgina
Traduccin de direcciones
Virtual page
number
TLB
Valid
Tag
1
1
1
1
0
1
Physical page
address
Physical memory
Page table
Physical page
Valid or disk address
1
1
1
1
0
1
1
0
1
1
0
1
Disk storage
TLB
Algunos valores normales para la TLB:
Tamao: 32 a 4096 entradas
Bloque: 1 o 2 entradas de Tabla de Pgina de 4-8 bytes
cada una.
Tiempo de acierto: 0,5-1 ciclo
Penalizacin por fallo: 10-30 ciclos
Tasa de fallos: 0,01%-1%
Asociatividad:
totalmente asociativa difcil el reemplazo. Pocas entradas.
Poca asociatividad (2,4)
Pginas de 4KB
Espacio de direcciones de 32 bits
Espacio de direcciones virtuales de 32 bits
TLB:
de 64 entradas
totalmente asociativo
compartido entre referencias a instrucciones y a datos.
TLBs y caches
(DECStation 3100)
Virtual address
TLB access
TLB miss
exception
No
Yes
TLB hit?
Physical address
No
Yes
Write?
No
Write protection
exception
Cache miss stall
No
Cache hit?
Yes
Deliver data
to the CPU
Write access
bit on?
Yes
TLB
acierto
acierto
fallo
fallo
fallo
acierto
acierto
fallo
M.Virtual
acierto
acierto
acierto
acierto
fallo
fallo
fallo
fallo
Posible?
SI. Situacin Ideal!
SI. Si hay hit en TLB, no se comprueba la Tabla de Pginas
SI. La entrada se busca de la TP y luego se accede a la cach
SI. La entrada se busca de la TP y luego se falla en la cach
SI. Fallo de TLB y Fallo de Pgina: despues de reintentar la cach tiene que fallar
NO. No puede haber una traduccin para una pgina que no est en memoria
NO. No puede haber una traduccin ni dato para una pgina que no est en memoria
NO. No puede haber datos en cach que no estn en memoria
Integracin
Sistemas con direcciones fsicas traducidas ANTES de acceder a la
cach:
Cachs indexadas fsicamente y etiquetadas fsicamente
El tiempo necesario para acceder al dato es la suma de los
tiempos de acceso a la TLB y a la Cach.
Sistemas con direcciones fsicas traducidas DESPUES de acceder a la
cach:
Cachs indexadas virtualmente y etiquetadas virtualmente
Se accede en paralelo a la TLB y a la Cach
Solo en caso de miss en cach se usa la direccin fsica obtenida
en la TLB
Problema: una misma direccin fsica puede tener varias
direcciones virtuales estar contenida en varias lneas de la
cach. (pginas compartidas entre programas)
Integracin
Sistemas mixtos:
Las cachs se indexan con la direccin virtual (se
pueden usar los bits de desplazamiento de pgina
que no se cambian en la traduccin), pero se
comparan con la direccin fsica.
La cach y la TLB se acceden en paralelo. La TLB
suministra la etiqueta para los comparadores
Proteccin
Es una de las funciones del sistema de memoria
virtual: permitir la comparticin de la memoria nica
entre mltiples procesos: proteccin entre procesos y
con el SO.
En la TLB, el bit de escritura protege contra accesos
de escritura no deseados.
Lecturas:
El SO debe garantizar que las pginas virtuales de dos
procesos independientes se asignen a pginas fsicas
disjuntas.
Tambin debe garantizar que un proceso no pueda cambiar
su Tabla de Pginas, sin embargo el SO si debe poder
cambiar las Tablas de Pginas.
Proteccin
El hardware debe proporcionar:
Al menos dos modos de ejecucin: proceso usuario y
proceso kernel (supervisor, ejecutivo)
Instrucciones que solo puedan ser usadas por el
proceso kernel (para actualizar las estructuras de
datos)
Mecanismos para pasar de un modo a otro
De usario a kernel excepciones, llamadas al sistema (syscall)
De kernel a usuarioretorno de excepcin: restaura el estado
del proceso.
Jerarqua de Menoria
Caracterstica
Tamao en bloques
Tamao en Kbytes
Tamao de bloque
Penalizacin por fallo
Tasa de fallos
Cachs
1000-100000
8-8000
16-256
10-100 ciclos
0,1%- 1%
M.Virtual
2000-250000
8000-8000000
4000-64000
1 millon-10 millones
0,00001%-0,0001%
TLB
32-4000
0.25-32
4-32
10-100
0,01%- 2%
Ideas Comunes
Ideas Comunes
qu bloque se debe reemplazar?
dnde se encuentra un bloque?
cualquiera
En una nica posicin
El menos recientemente utilizado
En unas cuantas
qu ocurre con las escrituras?
En cualquiera
Escritura a travs (write through)
cmo se encuentra un bloque?
Escritura diferida (write back)
Indexando
Bsqueda limitada (al conjunto)
Bsqueda total
Tabla de bsqueda
Capacidad
Ocurren cuando los bloques reemplazados se acceden mas
tarde: no hay lugar para todos los bloques accedidos del
programa
Conflicto
Solo ocurren en las asociativas por conjuntos o de mapeo
directo
Coherencia
Bloques desplazados de la cach para mantener coherencia
con memoria principal.
Compromiso de Diseo
Cambio de Diseo
Incrementar Tamao
Incrementar Asociatividad
incrementar tamao de bloque
Modern Systems
Characteristic
Virtual address
Physical address
Page size
TLB organization
PowerPC 604
32 bits
32 bits
4 KB, 4 MB
A TLB for instructions and a TLB for data
Both four-way set associative
Pseudo-LRU replacement
Instruction TLB: 32 entries
Data TLB: 64 entries
TLB misses handled in hardware
52 bits
32 bits
4 KB, selectable, and 256 MB
A TLB for instructions and a TLB for data
Both two-way set associative
LRU replacement
Instruction TLB: 128 entries
Data TLB: 128 entries
TLB misses handled in hardware
Characteristic
Cache organization
Cache size
Cache associativity
Replacement
Block size
Write policy
PowerPC 604
Split intruction and data caches
16 KB each for instructions/data
Four-way set associative
LRU replacement
32 bytes
Write-back or write-through
TLB
D/R
I-Cache
RF
ALU/
EA
operacin
EA TLB
Memoria
D-Cache
WB
WB
WB
IDEC
IA
Cada Etapa est dividida en dos fases. El reloj es de 60 nseg. Cada fase de 30 nseg.
TLB: TLB read
I-Cache: Fetch Instruccin
RF: Lectura de Registros (segunda fase)
IDEC: Decodificacin de Instruccin
IA: Clculo de la direccin de la Instruccin
EA: Clculo de la Direccin Efectiva del dato
TLB: Bsqueda en el TLB de datos
operacin: operacin
D-Cache: Acceso al dato
WB: Escritura de Registros (primera fase)
43
Ejemplo: R3000
IF
TLB
RD
I-Cache
RF
ALU/
EA
operacin
EA
TLB
Memoria
D-Cache
WB
WB
WB
IDEC
IA
Etapa
Fase
Funcin
IF
F1
IF
F2
RD
F1
RD
F2
Decodifica instruccin
Lee el Banco de Registros
Si es un salto, calcula la direccin de salto
ALU
F1+ F2
ALU
F1
ALU
F2
MEM
F1
MEM
F2
WB
F1
44
Diferencias
El salto se ejecuta en la etapa ALU
La direccin de salto se calcula en RD
La penalizacin del salto es de 2 ciclos.