organizacion de computadorasorga.blog.unq.edu.ar/wp-content/uploads/sites/5/2015/09/...aff1 con 8...
TRANSCRIPT
-
Organización de Computadoras
SEMANA 10
UNIVERSIDAD NACIONAL DE QUILMES
-
¿ Qué vimos?
◦ Mascaras
◦ Repeticiones controladas
◦ Arreglos
◦ Modo indirecto
◦ Q5
-
Hoy!
◦ Memorias:◦ Características
◦ Memorias ROM
◦ Jerarquía de memorias
◦ Caché:◦ Motivación
◦ ¿Qué?
◦ Organización
◦ Función de mapeo
-
MemoriasCaracterísticas
◦ Cada componente de almacenamiento puede caracterizarse según las dimensiones: ◦ Ubicación
◦ Unidad de transferencia
◦ Volatilidad
◦ Capacidad de escritura
◦ Método de acceso
-
MemoriasCaracterísticas - Ubicación
◦ Interna o Externa al sistema de cómputos
-
MemoriasCaracterísticas - Volatilidad
◦ Una memoria es volátil cuando necesita alimentación eléctrica para mantener la información.
◦ Una memoria no volátil almacena información sin necesidad de tener alimentación y esa información no se deteriora.
-
MemoriasCaracterísticas - Capacidad de escritura
◦ Las memorias de solo lectura NO pueden ser alteradas luego de ser escritas. Necesariamente deben ser también NO volátiles.
-
Memorias solo lecturaCaracterísticas - Capacidad de escritura
◦ ROM◦ Programas estáticos
◦ Útiles también para dispositivos como microondas, calculadoras, etc
-
Memorias solo lecturaCaracterísticas - Capacidad de escritura
◦ PROM◦ P es por Programmable
◦ ROMs que pueden ser grabadas por el usuario
◦ Se graban utilizando pulsos de altos voltajes
-
Memorias solo lecturaCaracterísticas - Capacidad de escritura
◦ EPROM◦ E de Erasable
◦ PROMs borrables
◦ Pueden ser borradas con luz ultravioleta
◦ EEPROM pueden ser borradas electrónicamente
-
Memorias solo lecturaCaracterísticas – Métodos de acceso
◦ Secuencial◦ La dirección de cada dato esta almacenada junto con él. Debe
recorrerse secuencialmente para buscar el dato.
◦ Tiempo de acceso variable
-
Memorias solo lecturaCaracterísticas – Métodos de acceso
◦ Directo◦ La dirección de cada dato se basa en su ubicación física.
◦ Etapas del acceso:
◦ acceder directamente a la zona próxima del registro a buscar
◦ buscar secuencialmente dentro de esa zona.
-
Memorias solo lecturaCaracterísticas – Métodos de acceso
◦ Aleatorio◦ Cada dato tiene un mecanismo de acceso único y cableado
físicamente tiempo de acceso constante e independiente de los accesos anteriores.
-
Memorias solo lecturaCaracterísticas – Métodos de acceso
◦ Asociativo◦ Cada celda es recuperada en función de su contenido en lugar
de su dirección:
◦ Se busca un determinado patrón (clave) en cierto conjunto de bits de cada celda.
◦ Las comparaciones son simultaneas.
◦ El tiempo de acceso es constante.
-
Jerarquía de Memoria
Velocidad Capacidad
Precio
Mucha memoriay muy rápidaMUY COSTOSA
Rápida y barataPOCA CAPACIDAD
mucha y barataLENTA
Imposible!!
-
Jerarquía de MemoriaP
reci
o p
or
bit
Vel
oci
dad
Cap
acid
ad
+ +
+
Registros
Memoria Principal
Memoria Secundaria
-
PerformanceRelaciones
◦ En las últimas décadas, cada año y medio: ◦ la velocidad de proceso (en cantidad de instrucciones
ejecutadas por segundo) se duplica
◦ el tamaño de la memoria se duplica
◦ la velocidad de la memoria crece menos del 10%
-
PerformanceRelaciones
◦ La CPU necesita sí o sí ir a memoria para obtener la próxima instrucción
◦ La velocidad de ejecución de instrucciones está limitada por el tiempo de acceso a memoria que es mucho mayor al de la CPU
◦ ¿Como mejorar la performance del procesador?
-
PerformanceCamino a la solución
◦ Se incorpora memoria interna a la CPU (Registros)
◦ Se incorpora memoria externa al sistema (operada a través de un módulo de E/S)
◦ Empleo de memorias combinadas
-
PerformanceCamino a la solución
◦ Los accesos en general no son al azar, sino que tienen cierto patrón:◦ El PC suele ejecutar la instrucción que está en la celda
siguiente
◦ Al recorrer un arreglo se recorren sus posiciones
◦ El código de una subrutina se suele ejecutar mas de una vez
-
PerformancePrincipio de localidad temporal
◦ Cuando un programa hace referencia de una posición de memoria, se espera que vuelva a hacerlo en poco tiempo
0000 ADD R0, R1
0001 SUB R1, R3
0002 JMP -3
-
PerformancePrincipio de localidad espacial
◦ Las posiciones de memoria mas cercanas a alguna referenciada recientemente son mas probables de ser referenciada que las mas distantes.
0000 ADD R0, R1
0001 SUB R1, R3
0002 MUL R0, R1
0003 …
-
PerformanceRelaciones
◦ En base a estos principios se ve que tiene sentido “tener a mano” a las posiciones recientemente usadas
◦ Se puede agregar una memoria rápida pero de poca capacidad para ir guardando estas posiciones
-
Memoria Cache
CPUMemoria
Caché
-
Memoria Cache
◦ La memoria caché tiene como objetivo proveer una velocidad de acceso cercana a la de los registros
◦ Para esto la caché contiene una copia de porciones de la memoria principal
-
Memoria Cache
◦ ¿Cómo funciona?◦ La CPU pide una posición de memoria
◦ La caché busca esta posición
◦ Si está: la devuelve y no se accede a memoria
◦ Si no: Se pide la posición a la memoria, se guarda en el cache y se la devuelve al CPU
◦ ¿Cómo saber si algo esta en la caché o no?
-
Memoria Cache
◦ ¿Puede estar todo el contenido de la memoria en caché?
◦ Hay que decidir cómo y dónde se guarda lo que entra en la caché
Memoria caché
-
Memoria CacheOrganización
Línea Tag Contenido 1 Contenido 2 Contenido 3 Contenido 4
01
02
03
04
05
-
Memoria CacheOrganización
Línea Tag Contenido 1 Contenido 2 Contenido 3 Contenido 4
01
02
03
04
05
En vez de celdas la memoria caché tiene líneas(esto no se guarda en la caché)
-
Memoria CacheOrganización
Línea Tag Contenido 1 Contenido 2 Contenido 3 Contenido 4
01
02
03
04
05
Indica que posición de memoria está guardada en cada línea (Memoria asociativa)
-
Memoria CacheOrganización
Línea Tag Contenido 1 Contenido 2 Contenido 3 Contenido 4
01
02
03
04
05
Contenido de la celda de memoria. A veces se guardan varias celdas consecutivas (bloque) por línea.En ese caso se cargan todas juntas al cargarse alguna.
-
Memoria CacheFuncionamiento
◦ ¿Cómo decidir en que línea guardar una celda de memoria?
◦ Función de correspondencia◦ (mapeo) asocia los bloques de memoria con ranuras de la
cache.
-
Memoria CacheMapeo Directo
◦ La dirección se divide en 3 partes:◦ Tag: Indica el bloque de memoria que está guardada (hay que
almacenarla en la caché)
◦ Línea: Se usa para decidir en que línea se guarda el bloque (Esta parte no se guarda)
◦ Índice: Indica dentro de la línea donde está una celda en particular
-
Memoria CacheMapeo Directo Línea Tag Cont 0 Cont 1 Cont 2 Cont 3
0 FE 0000 2234 2312 1234
1 DE 345F AAA2 BE32 212A
2 5F EA34 123F DDDD CCCC
3 6E A689 0985 4359 1237
4 BC 1223 1123 2132 5753
5 D0 2334 2553 2132 213E
6 56 DDB5 DB65 A235 EEEF
7 23 4569 2386 1234 0532
8 2E 2543 4128 8654 003A
9 12 1250 2354 4467 0990
A 5F 0086 BACA 5056 2A10
B 03 3221 7652 4000 FE23
C 00 4652 1254 01A7 4567
D AA 7904 0054 4322 8754
E AA 56A3 0000 6789 4329
F 23 FC56 34AA 8754 8875
5FA1MapeoDirecto
Tag: 5FLínea: AÍndice: 1
Línea A
Hay quebuscar 5F
En 1 está el contenidode esa celda
(Suponiendo 1 byte tag, 4 bits linea y 4 bits indice)
-
Memoria CacheMapeo Directo
Número de líneaNúmero de piso
ÍndiceNúmero de depto
Tag¿Quién es el inquilino?
-
Memoria CacheMapeo Directo
◦ Ejemplo:◦ AFF1 con 8 bits de tag, 4 de línea y 4 de índice
◦ Tag = AF, línea = F, índice = 1
◦ A cada bloque le toca una única línea
◦ Hay varios bloques que “compiten” por la misma línea
◦ Si hay que guardar un bloque y la línea esta ocupada, se saca a su ocupante actual
-
Memoria CacheMapeo Directo
◦ Ejercicio:
◦ Cuantos bits de una dirección se destinan a: tag, linea y palabra en el siguiente esquema:
◦ Una memoria principal de 32 celdas de un byte
◦ Una memoria cache con:
◦ Bloques de 4 celdas
◦ 4 lineas
◦ correspondencia directa
-
Memoria CacheMapeo Directo
◦ Ventajas:◦ Sencillo de implementar
◦ Desventajas:◦ Poco flexible: Si varias celdas con el mismo número de línea
pero distinto tag se acceden todo el tiempo la caché no funciona muy bien.
◦ Ejemplo: 8 bits de tag, 4 de línea y 4 de índice, y tengo 2 arreglos en AA00 y BB00
-
Memoria CacheMapeo Asociativo
◦ Cada bloque puede ir a cualquier línea de caché
◦ Parte la dirección en tag e índice
◦ Ejemplo: F145 en una caché asociativa con 16 celdas por bloque:◦ Índice = 5
◦ Tag = F14
◦ ¿Qué pasa cuando la caché se llena? Algoritmos de reemplazo, mas adelante
-
Memoria CacheMapeo Asociativo
◦ Ejercicio◦ Memoria principal de 16 celdas de 1 byte cada una
◦ Memoria cache de 4 líneas
◦ Bloques de 1 celda
◦ Función de correspondencia asociativa
◦ ¿Que tamaño tiene el tag?◦ No hay patrón de asignación, cualquier bloque en cualquier
línea 16 celdas = 16 bloques
◦ Se debe distinguir cual de esos 16 bloques es el que esta almacenado en cada línea
◦ Tag=4bits
-
Memoria CacheMapeo Asociativo
◦ Ejercicios
◦ Calcular como se divide una dirección de memoria de 16 bits si se tiene una cache asociativa de 4 celdas por bloque y 256 líneas
◦ ¿Cómo se decide si la dirección FA32 está en caché?
-
Memoria CacheMapeo Asociativo
◦ Ventajas:◦ Muy flexible. Solo se saca algo de la caché cuando no hay mas
lugar
◦ Desventajas:◦ Muy compleja de implementar, hay que revisar toda la caché
para saber si algo está o no.
-
Memoria CacheMapeo Asociativo por conjuntos
◦ Combina la flexibilidad del mapeo asociativo y la simplicidad del directo.
◦ Divide la caché en conjuntos de varias líneas. ◦ Cada celda puede ir a un único conjunto
◦ Dentro del conjunto puede ir a cualquier línea
◦ Si se llena el conjunto hay que elegir a alguna para desalojar
◦ La dirección se parte en tag, conjunto e índice
-
Memoria CacheMapeo Asociativo por conjuntos
Línea Tag Cont 0 Cont 1 Cont 2 Cont 3
0
1
2
3
4
5
6
7
-
Memoria CacheMapeo Asociativo por conjuntos
Línea Tag Cont 0 Cont 1 Cont 2 Cont 3
0
1
2
3
4
5
6
7
Conjuntos de2 vías
-
Memoria CacheMapeo Asociativo por conjuntos
Línea Tag Cont 0 Cont 1 Cont 2 Cont 3
0
1
2
3
4
5
6
7
Conjuntos de4 vías
-
Memoria CacheMapeo Asociativo por conjuntos
◦ La dirección se divide en:
◦ tag(2b) conjunto (2b) palabra (2b)
◦ Para una dirección de memoria dada: 1. Se identifica el conjunto
2. Se comparan los primeros 2 bits con los tags de las ranuras del conjunto
3. Si hay coincidencia se recupera la palabra dentro del bloque según los últimos 2 bits
-
Memoria CacheMapeo Asociativo por conjuntos
◦ Calcular como se divide una dirección de memoria de 16 bits si se tiene una cache con asociativa por conjuntos de 4 vías, de 4 celdas por bloque y 256 líneas.
◦ Tag: Conjunto: Indice:
◦ ¿Cómo se decide si la dirección FA32 está en caché?
-
¿Que pasó hoy?!
◦ Memorias:◦ Características
◦ Memorias ROM
◦ Jerarquía de memorias
◦ Caché:◦ Motivación
◦ ¿Qué?
◦ Organización
◦ Función de mapeo