Módulo 2

Anuncio
Subsistemas de memoria
Departamento de Arquitectura de
Computadores
Índice
Introducción. Conceptos básicos
Memoria Principal
Características físicas
Organización
Memoria Caché
Características de los sistemas de memoria
Jerarquías de memoria
Organización
Políticas de ubicación
Políticas de sustitución
Políticas de escritura
Políticas de búsqueda
Memoria Virtual
Índice
Introducción. Conceptos básicos
Memoria Principal
Características físicas
Organización
Memoria Caché
Características de los sistemas de memoria
Jerarquías de memoria
Organización
Políticas de ubicación
Políticas de sustitución
Políticas de escritura
Políticas de búsqueda
Memoria Virtual
Introducción
Memoria Ideal = Rápida, grande y
barata.
¿Qué significa que sea “rápida”?
¿Qué significa que sea “grande”?
Que el tamaño de la memoria no
limite los programas que puedo
ejecutar.
¿Qué significa que sea “barata?
Monociclo = Poca latencia de
operación (tciclo pequeño)
Multiciclo = Que no determine el
tiempo de ciclo.
Abordable económicamente.
Sin embargo, la realidad es otra:
Las memorias grandes son lentas
Las memorias rápidas son pequeñas
(y caras)
Introducción
La memoria es un bloque fundamental
del computador, cuya misión consiste
en almacenar datos e instrucciones
A veces la memoria principal no tiene
suficiente capacidad para almacenar
todos los datos e instrucciones, en
cuyo caso se hace uso de sistemas
secundarios
o
auxiliares
que
almacenan la información y cuando
ésta se precisa es transferida a
memoria principal.
La memoria únicamente
realizar dos operaciones:
puede
Lectura: el sistema recibe la dirección
de la cual se quiere extraer la
información la información previamente
introducida.
Escritura: Además de la dirección donde
se quiere escribir es necesario aportar
el dato.
Dirección
Datos
Lectura/Escritura
DISPOSITIVO
DE
MEMORIA
Características de los sistemas de memoria:
Ubicación
El término “Ubicación” indica si la memoria es interna o externa al computador:
CPU: registros y Caché L1.
La memoria interna se identifica con la Memoria Principal del sistema (Caché L2):
Conjunto de circuitos integrados en los que, de forma temporal, se almacenan los datos e
instrucciones necesarios para la ejecución de cualquier programa.
La memoria externa o secundaria consta de dispositivos periféricos de almacenamiento
tales como discos unidades de cinta que son accesibles por la CPU a través de controladores
de E/S.
Disco
Controlador
E/S
Memoria
Principal
CPU
Características de los sistemas de memoria:
Capacidad
Se denomina capacidad o tamaño a la cantidad de información que puede
almacenar una memoria.
La capacidad se puede expresar en unidades de bits, bytes o palabras
aunque lo mas corriente en hacerlo en bytes (1 Byte = 8 bits).
Kilo byte = 1 KB = 210 bytes = 1024 B
Mega byte = 1 MB = 210 KB = 220 B
Giga byte = 1 GB = 210 MB = 230 B
Tera byte = 1 TB = 210 GB = 240 B
Características de los sistemas de memoria:
Unidad de transferencia
La unidad de transferencia suele coincidir con el número de líneas de
entrada/salida de datos del módulo de memoria, es decir el número de bits
que se leen o escriben a la vez en la memoria.
Longitudes de palabras comunes: 8, 16 y 32 bits.
Para memoria interna: Palabras
Para memoria externa: Bloques (unidad mayor que la palabra)
Características de los sistemas de memoria:
Método de Acceso
Acceso secuencial: la memoria se organiza en unidades de datos llamadas
“registros”. Debe ir trasladándose desde la posición actual a la deseada, pasando
por todos los registros intermedios (unidades de cinta):
Tiempo de acceso muy variable depende de la localización del dato en el medio
Acceso directo: los registros (discos duros) tienen una dirección única basada en
su dirección física. El acceso se realiza en dos fases:
Acceso directo a la vecindad.
Búsqueda secuencial.
Tiempo de acceso muy variable.
Acceso aleatorio (memorias Random Access Memory): cada posición de
memoria direccionable tiene un mecanismo cableado físicamente propio. Por tanto
cualquier dirección puede seleccionarse aleatoriamente y ser accedida de forma
directa (memoria principal).
Tiempo de acceso constante.
Asociativa: se accede a una posición basándose en su contenido en lugar de su
dirección. Cada posición posee su propio mecanismo de direccionamiento
(memoria caché):
Tiempo de acceso constante.
Características de los sistemas de memoria:
Prestaciones
Tiempo de acceso (memoria aleatoria):
Tiempo de ciclo (memoria aleatoria):
Tiempo de lectura (ta) es el tiempo que tarda la memoria en suministrar una palabra desde
que se proporciona la dirección y la señal de lectura.
Tiempo de escritura (te) es el tiempo que tarda la memoria en grabar información desde el
momento en que se suministra la dirección, la información y la señal de escritura.
Para otro tipo de memorias es el tiempo que se necesita hasta que el mecanismo de
lectura/escritura se sitúa en la posición deseada.
Tiempo de acceso + tiempo auxiliar hasta que se pueda iniciar un segundo acceso a
memoria (finalización de transacciones en líneas…).
La velocidad de transferencia:
Es la velocidad a la que se pueden transferir datos a o desde una unidad de memoria.
Para memorias aleatorias coincide con el inverso del tiempo de ciclo.
Para otras memorias se utiliza la siguiente relación:
TN: tiempo medio de escritura lectura de N bits
TA: tiempo de acceso medio
N: número de bits
R: velocidad de transferencia en bits por segundo (bps).
TN = TA +
N
R
Características de los sistemas de memoria:
Soporte: tecnologías de memoria
Las tecnologías principales de memoria son:
Memorias semiconductoras: RAM, ROM
Memorias de soporte magnético: Discos, cintas.
Memorias ópticas: CD-R
Memorias magneto-ópticas: CD-RW
Los medios pueden clasificarse según el tiempo que la información permanece
grabada sobre ellos:
Memoria no-volátil (información permanente): una vez grabadas la información permanece
sin deteriorarse hasta que esta se modifique intencionadamente. No se necesita alimentación
(ROM).
Memoria volátil (información desaparece) (RAM):
SRAM (Static Random Access Memory):
Baja densidad, alto consumo potencia, cara, rápida.
Estática = no necesita ser refrescada.
DRAM (Dynamic Random Access Memory):
Alta densidad, baja potencia, barato lento.
Dinámica = Se necesita un refresco para mantener la información (memorias basadas en condensador).
Impacto de la velocidad de la memoria en el
rendimiento
Supongamos un procesador a 200 MHz (tciclo=5 ns), con un CPI medio de
1.1 ciclos con un sistema de memoria ideal para un programa determinado
que tiene 50% de instrucciones aritmético-lógicas, 30% de instrucciones de
carga almacenamiento (memoria) y 20% de instrucciones de control.
Si ahora ponemos un sistema de memoria real que provoca que el 10% de
las instrucciones de memoria tengan una penalización de 50 ciclos, ¿cómo
varía el CPI?
Hemos perdido el 58% de rendimiento. El procesador pasa ahora el 58%
del tiempo bloqueado esperando que lleguen los datos de memoria
Organización jerárquica de la memoria
Las características de las tecnologías actuales cumplen:
A mayor capacidad, mayor tiempo de acceso (Discos).
A menor tiempo de acceso, mayor coste por bit (caché).
A mayor capacidad, menor coste por bit.
El diseñador desea utilizar tecnologías que cuenten con:
Objetivo
Dar la impresión al usuario de que tiene una memoria grande, rápida y barata
¿Cómo?
Bajos costes
Tiempos de acceso reducidos (rápidas)
Gran capacidad de almacenamiento
Organizando la memoria de forma jerárquica llegando así a un compromiso entre
Tecnología, Coste y Velocidad.
¿En qué consiste?
Utilizar distintos niveles de memorias de forma que los niveles más cercanos al
procesador utilizan tecnología más rápida (aunque son de menor tamaño y más caras)
y los niveles más lejanos al procesador utilizan tecnología más lenta (son de mayor
tamaño y más baratas).
Organización jerárquica de memoria
Disminuye el coste por bit
Aumenta la capacidad
Aumenta el tiempo de acceso
Disminuye la frecuencia de
accesos a la memoria por parte
del procesador.
Esta jerarquía proporciona al
diseñador toda la potencia
necesaria siempre y cuando la
última de las condiciones se
cumpla:
CLAVE:
disminución
de
la
frecuencia
de
acceso.
Es
necesario que los datos que
solicite la CPU se encuentren en
los niveles mas rápidos de la
jerarquía.
Velocidad
Capacidad
A medida que descendemos por
una jerarquía típica ocurre:
Coste
Visión general del sistema de memoria
¿Por qué funciona el sistema jerárquico?
Los programas no acceden de forma aleatoria a su código y a sus datos,
sino que tienden a tener un comportamiento predefinido que sigue un
determinado patrón.
Principio de localidad de referencia: Los programas acceden en
cualquier instante de tiempo a una porción de memoria relativamente
pequeña del espacio de direcciones total.
Principio de localidad
En el curso de la ejecución de un programa, la referencias a memoria por
parte del procesador tanto para datos como instrucciones, tienden a estar
agrupadas en regiones de tiempo y espacio.
Localidad temporal: Si se referencia una posición de memoria en un instante de
tiempo determinado, existe una alta probabilidad de que vuelva a ser
referenciada en los instantes siguientes.
Localidad espacial: Si se referencia una posición de memoria en un instante
determinado, existe una alta probabilidad de que en los instantes siguientes se
referencien las posiciones de memoria cercanas.
Por ejemplo, cuando se ejecutan iteraciones de un bucle, el procesador ejecuta
repetidamente el mismo conjunto de instrucciones, variables.
Por ejemplo, cuando se procesa una tabla de datos, arrays, vectores, acceso a
instrucciones secuenciales.
Conclusión: el sistema de jerarquía de memoria saca provecho de:
Localidad temporal manteniendo los datos recientemente accedidos en los
niveles mas cercanos a la CPU.
Localidad espacial moviendo bloques consistentes en múltiples palabras
contiguas, desde los niveles más lejanos a los niveles mas cercanos al
procesador.
Principio de localidad
Niveles de la jerarquía y tecnologías
asociadas
Aplicando el Principio de Localidad:
Presentamos al usuario tanta memoria como sea posible en la tecnología más barata.
Proporcionamos acceso a la velocidad ofrecida por la tecnología más rápida.
Terminología (1)
Nivel superior e inferior
Bloque
Entre dos niveles adyacentes de la jerarquía de memoria se denomina nivel
superior al que está más cerca del procesador y nivel inferior al que está más
lejos.
El nivel superior es siempre mas pequeño y rápido que el inferior.
Es la unidad mínima de información que está presente o no en un nivel de la
jerarquía.
Las transferencias de información se realizan siempre entre niveles
adyacentes de la jerarquía.
La cantidad mínima de información que se transfiere es un bloque.
Terminología (2)
Acierto y Fallo
Tasa de aciertos y fallos
Si los datos que se piden a un nivel se encuentran allí, se dice que se ha
producido un acierto (hit). En caso contrario se produce un fallo (miss).
Cuando se produce un fallo en un nivel se accede al nivel inmediatamente inferior
para buscar esa información.
La tasa de aciertos de un nivel (hit rate): porcentaje de accesos encontrados
en ese nivel, sobre el total de accesos realizados a dicho nivel.
La tasa de fallos de un nivel (miss rate): porcentaje de accesos no encontrados
en ese nivel, sobre el total de accesos realizados a dicho nivel. También se
define como (1-tasa de aciertos).
La tasa de aciertos y/o la tasa de fallos se usan a menudo como medida
del rendimiento de la jerarquía de memoria.
Menor tasa de fallos → menos veces hay que recurrir a los niveles más
bajos (y más lentos) de la jerarquía → tiempo medio de acceso a memoria es
mucho menor.
Una tasa de fallos baja indica que se accede pocas veces a los niveles más
lentos de la jerarquía de memoria.
Terminología (3)
Tiempo de acierto
Tiempo necesario para acceder a un dato en el nivel superior de la jerarquía.
Incluye el tiempo necesario para detectar si se trata de un acierto o de un fallo.
Penalización de fallo
Tiempo necesario para reemplazar un bloque del nivel superior por el
correspondiente bloque del nivel inferior + Tiempo de suministrar este bloque al
procesador. Se divide en dos componentes:
Tiempo de acceso: Tiempo para acceder a la primera palabra del bloque.
Tiempo de transferencia: Tiempo adicional para transferir las restantes palabras del
bloque.
Tiempo de acierto << Penalización de fallo
Funcionamiento de la memoria de dos niveles
La propiedad de localidad puede ser aprovechada formando una memoria de dos
niveles:
La memoria del nivel superior (M1) es mas pequeña, más rápida y más costosa (por bit) que
la del nivel inferior (M2).
M1 se utiliza como almacén temporal para una parte del contenido de la otra más grande.
Cuando se hace una referencia a memoria, se intenta acceder al elemento de memoria M1:
Si tiene éxito entonces se produce un acceso rápido
De lo contrario, se copia un bloque de posiciones de memoria de M2 a M1, y el acceso se hace
vía M1. Debido al principio de localidad, una vez llevado el bloque necesario a M1, habrá un
número de accesos a posiciones del bloque, resultando un servicio rápido en su conjunto.
Métrica de rendimiento
TS= tiempo de acceso medio
T1= tiempo de acceso de M1 (caché)
T2= tiempo de acceso de M2 (principal)
H = tasa de aciertos (fracción de veces que la referencia es encontrada en M1)
TS = H × T1 + (1 − H ) × (T1 + T2 ) = T1 + (1 − H ) × T2
Cuestiones a la hora de gestionar un sistema
de memoria jerárquico
La gestión de memoria afecta a los niveles 1(caché), 2 (principal) y 3 (secundaria) pero como los
datos sólo se pueden transferir entre niveles adyacentes, existen dos tipos de gestión:
Gestión de memoria caché: controla la transferencia entre caché y principal.
Gestión de memoria virtual: controla la transferencia entre principal y secundaria.
Propiedades:
Inclusión: cualquier información almacenada en el nivel i debe encontrarse a la vez en los niveles i+1, i+2,
etc.
Coherencia: las copias de la misma información en los distintos niveles deben ser consistentes.
Existen distintas estrategias de actualización:
Escritura directa (write-through): Cuando una palabra se modifica en el nivel Mi, inmediatamente se actualiza
en el nivel Mi+1
Post-escritura (write-back): La actualización del nivel Mi+1 se retrasa hasta que el bloque que se modificó es
reemplazado o eliminado en el nivel Mi
Estrategias:
Búsqueda: deciden cuando se transfiere un bloque de datos de un nivel inferior a otro superior
Ubicación: deciden en qué parte de la memoria se coloca el bloque de información
Sustitución: decide qué bloques se eliminan para hacer sitio a otros nuevos
Actualización: cuando se actualiza un bloque es necesario actualizar los niveles inferiores.
Descargar