Organización del Computador Memorias. Jerarquía de las memorias.
-
Upload
susana-torregrosa-benitez -
Category
Documents
-
view
263 -
download
0
Transcript of Organización del Computador Memorias. Jerarquía de las memorias.
Organización del Organización del ComputadorComputador
MemoriasMemorias
Jerarquía de las memoriasJerarquía de las memorias
Jerarquía de memorias en un Jerarquía de memorias en un PentiumPentium
Métricas de las memoriasMétricas de las memorias
Capacidad de almacenamiento:Capacidad de almacenamiento: en en bytes o múltiplos (kB, MB, TB)bytes o múltiplos (kB, MB, TB)
Tiempo de acceso:Tiempo de acceso: en segundos o en segundos o submúltiplos (ns, ms)submúltiplos (ns, ms)
Velocidad de tranferencia de datos:Velocidad de tranferencia de datos: en en bytes/seg o múltiplosbytes/seg o múltiplos
Comsumo de energía:Comsumo de energía: en Watts en WattsTamaño físico:Tamaño físico: en cm3 en cm3Costo total y costo por MB:Costo total y costo por MB: en $ y $/MB en $ y $/MB
Tipos y tecnología de memoriasTipos y tecnología de memorias
Memorias ROM (Read Only Memory)Memorias ROM (Read Only Memory)Programable ROMProgramable ROMErasable Programable ROMErasable Programable ROMElectronically Erasable Programable ROMElectronically Erasable Programable ROM
Memorias RAM (Random Access Memorias RAM (Random Access Memory)Memory)RAM estáticas vs dinámicasRAM estáticas vs dinámicasRAM volátiles vs no volátilesRAM volátiles vs no volátiles
Memorias FLASHMemorias FLASH
Ejemplo memoria OTP EPROMEjemplo memoria OTP EPROM
Características físicas de la EPROMCaracterísticas físicas de la EPROM
Ejemplo memoria OTP EPROMEjemplo memoria OTP EPROM
Diagrama de tiempos de la Diagrama de tiempos de la EPROMEPROM
Ejemplo EEPROMEjemplo EEPROM
Ejemplo EEPROMEjemplo EEPROM
Ejemplo memoria FLASHEjemplo memoria FLASH
Ejemplo memoria SRAMEjemplo memoria SRAM
Ejemplo memoria SRAMEjemplo memoria SRAM
Ejemplo memoria SRAMEjemplo memoria SRAM
Ejemplo memoria SRAMEjemplo memoria SRAM
Tecnología de Integración Tecnología de Integración ActualActual
Imágenes obtenidas con TEM (Transmission Electron Microscope) de una cepa del virus de la gripe, y de un transistor construido con la tecnología de 65 nm utilizada desde el año 2005 en el Procesador Pentium IV y posteriores.
65 nm nanotechnology
Tecnología de memorias: Tecnología de memorias: RAM RAM DinámicaDinámica
Almacena la información como una carga en una capacidad espuria de un transistor.
Una celda (un bit) se implementa con un solo transistor máxima capacidad de almacenamiento por chip.
Ese transistor consume mínima energía Muy bajo consumo. Al leer el bit, se descarga la capacidad necesita regenerar la
carga aumenta entonces el tiempo de acceso de la celda.
CASRAS
Cd
Bit de datos de salida al bus
Buffer
Diagrama de un bit elemental de DRAM (Dynamic RAM).
Transistor
Tecnología de memorias: RAM Tecnología de memorias: RAM EstáticaEstática
Almacena la información en un biestable. Una celda (un bit) se compone de seis transistores menor
capacidad de almacenamiento por chip. 3 transistores consumen energía máxima en forma permanente y
los otros 3 consumen mínima energía Mayor consumo La lectura es directa y no destructiva tiempo de acceso muy
bajo
Diagrama del biestable de un bit básico de SRAM (Static RAM).
Línea de BitLínea de Bit
Selección
61
2
3 4
5
Estructura de Bus clásicaEstructura de Bus clásica Desde fines de los años 80, Desde fines de los años 80,
los procesadores los procesadores desarrollaban velocidades desarrollaban velocidades muy superiores a los tiempos muy superiores a los tiempos de acceso a memoria.de acceso a memoria.
En este escenario, el En este escenario, el procesador necesita generar procesador necesita generar waitwait statesstates para esperar que para esperar que la memoria esté lista la memoria esté lista (“READY”) para el acceso.(“READY”) para el acceso.
¿Tiene sentido lograr altos ¿Tiene sentido lograr altos clocksclocks en los procesadores si en los procesadores si no puede aprovecharlos por no puede aprovecharlos por tener que esperar (tener que esperar (waitwait) a la ) a la memoria?memoria?
Buffer de
Address
Buffer de
Address
Buffer de
Datos
Buffer de
Datos
Bus deControl
Bus deControl
BUS DEL SISTEMA
Bus Local delBus Local delProcesadorProcesador
Memoria del Sistema
Memoria del Sistema
ProcesadorProcesador
E/S del Sistema
E/S del Sistema
DATOS
ADDRESS
CONTROL
1100
1000
900
800
700
600
500
400
300
200
100
89 90 91 92 93 94 95 96 97 98 99 00
486 DX4100 MHz.
386 DX33 MHz
Pentium II400 MHz.
Pentium III1GHz
Memorias
Crecimiento de la velocidad de Crecimiento de la velocidad de clock de las CPU versus memoriaclock de las CPU versus memoria
El problemaEl problema RAM dinámica (DRAM)RAM dinámica (DRAM)
Consumo mínimo.Consumo mínimo. Capacidad de almacenamiento comparativamente alta.Capacidad de almacenamiento comparativamente alta. Costo por Costo por bitbit bajo. bajo. Tiempo de acceso alto (lento), debido al circuito de regeneración de Tiempo de acceso alto (lento), debido al circuito de regeneración de
carga.carga. Si construimos el banco de memoria utilizando RAM dinámica, no Si construimos el banco de memoria utilizando RAM dinámica, no
aprovechamos la velocidad del procesador.aprovechamos la velocidad del procesador.
RAM estática (SRAM)RAM estática (SRAM) Alto consumo relativo.Alto consumo relativo. Capacidad de almacenamiento comparativamente baja.Capacidad de almacenamiento comparativamente baja. Costo por Costo por bitbit alto. alto. Tiempo de acceso bajo (es mas rápida).Tiempo de acceso bajo (es mas rápida). Si construimos el banco de memoria utilizando RAM estática, el Si construimos el banco de memoria utilizando RAM estática, el
costo y el consumo de la computadora son altos. costo y el consumo de la computadora son altos.
La solución: Memoria cacheLa solución: Memoria cache Se trata de un banco de SRAM de muy alta velocidad, que Se trata de un banco de SRAM de muy alta velocidad, que
contiene una copia de los datos e instrucciones que están en contiene una copia de los datos e instrucciones que están en memoria principalmemoria principal
El arte consiste en que esta copia esté disponible justo cuando El arte consiste en que esta copia esté disponible justo cuando el procesador la necesita permitiéndole acceder a esos ítems el procesador la necesita permitiéndole acceder a esos ítems sin recurrir a sin recurrir a wait states.wait states.
Combinada con una gran cantidad de memoria DRAM, para Combinada con una gran cantidad de memoria DRAM, para almacenar el resto de códigos y datos, resuelve el problema almacenar el resto de códigos y datos, resuelve el problema mediante una solución de compromiso típica.mediante una solución de compromiso típica.
Requiere de hardware adicional que asegure que este Requiere de hardware adicional que asegure que este pequeño banco de memoria cache contenga los datos e pequeño banco de memoria cache contenga los datos e instrucciones mas frecuentemente utilizados por el procesador.instrucciones mas frecuentemente utilizados por el procesador.
ReferenciasReferencias El tamaño del banco de memoria cache debe ser:El tamaño del banco de memoria cache debe ser:
Suficientemente grande para que el procesador resuelva la mayor Suficientemente grande para que el procesador resuelva la mayor cantidad posible de búsquedas de código y datos en esta memoria cantidad posible de búsquedas de código y datos en esta memoria asegurando una alta asegurando una alta performanceperformance
Suficientemente pequeña para no afectar el consumo ni el costo del Suficientemente pequeña para no afectar el consumo ni el costo del sistema.sistema.
Se dice que se logra un Se dice que se logra un hithit cuando se accede a un ítem (dato o cuando se accede a un ítem (dato o código) y éste se encuentra en la memoria cache.código) y éste se encuentra en la memoria cache.
En caso contrario, se dice que el resultado del acceso es un En caso contrario, se dice que el resultado del acceso es un missmiss..
Se espera un Se espera un hit ratehit rate lo mas alto posible lo mas alto posible
Cantidad total de accesos a memoriaCantidad de accesos con presencia en Memoria Cache
hit rate =
Operación de Lectura de Operación de Lectura de memoriamemoria
Inicio
Busca ítem en cache
CPU envía señal de lectura
Busca ítem en cache y envía a
la CPU
Busca ítem en memoria del
sistema
Escribe ítem en el cache
Actualiza directorio cache
Envía ítem a la CPU
Fin
MissHit!!
Estructura de Bus del sistema con Estructura de Bus del sistema con cachecache
Memoria
cache
Memoria
cache
Controlador de Memoria
caché
Controlador de Memoria
caché
Buffer de
Address
Buffer de
Address
Buffer de
Datos
Buffer de
Datos
BUS DEL SISTEMA
Bus Local del Bus Local del procesadorprocesador
ProcesadorProcesador
Bus deControl
Bus deControl
CONTROL
DATOS
ADDRESS
CONTROL
Bus Local Bus Local del del
controlador controlador cachecache
Bus deDatos
Bus deDatos
Bus deDir.
Bus deDir.
Como trabaja el controlador Como trabaja el controlador cachecache
El controlador cache trabaja mediante dos principios que surgen de analizar el El controlador cache trabaja mediante dos principios que surgen de analizar el
comportamiento de los algoritmos de software que se emplean habitualmente. comportamiento de los algoritmos de software que se emplean habitualmente. Principio de vecindad temporalPrincipio de vecindad temporal: Si un ítem es referenciado, la probabilidad de ser : Si un ítem es referenciado, la probabilidad de ser
referenciado en el futuro inmediato es alta.referenciado en el futuro inmediato es alta.
Principio de vecindad espacialPrincipio de vecindad espacial: Si un ítem es referenciado, es altamente probable que : Si un ítem es referenciado, es altamente probable que
se referencie a los ítems vecinos a éste.se referencie a los ítems vecinos a éste.
Ejemplo: Algoritmo de convoluciónEjemplo: Algoritmo de convoluciónfor (i = 0 ; i < 256 ; i++ ){for (i = 0 ; i < 256 ; i++ ){
suma = 0.0f;suma = 0.0f;for (j = 0 ; (j <= i && j < 256) ; j++)for (j = 0 ; (j <= i && j < 256) ; j++)
suma += v0[i-j] * v1[j];suma += v0[i-j] * v1[j];fAux[i] = suma;fAux[i] = suma;
}}
ii, , jj, , sumasuma, se utilizan a menudo. Por lo tanto si se mantienen en el cache, el tiempo de , se utilizan a menudo. Por lo tanto si se mantienen en el cache, el tiempo de
acceso a estas variables por parte del procesador es óptimo.acceso a estas variables por parte del procesador es óptimo.
Estructura de memoria cacheEstructura de memoria cacheTag Línea
Línea
0123456789
Dirección
Ancho de palabra
Línea: Elemento mínimo de palabra de datos dentro del cache.Corresponde a un múltiplo del tamaño de la palabra de datos de memoria.Razón: Cuando se direcciona un ítem en memoria generalmente se requerirá de los ítem que lo rodean (Principio de vecindad espacial)
Organización del caché: Mapeo Organización del caché: Mapeo DirectoDirecto
Directorio de Caché Interno4 Gbytes de Memoria Principal
Tag
17 bits
Bit de validez del Tag
Bits de validez de las líneas
32 Kbytes(igual tamaño
que el de la cache)
Set 0
Set 1
Set 1023
Memoria CachéPag.0
Pag.217 -1
Línea
Línea
1 Línea = 4 bytes
Selector deLínea
(1 de 8 líneas)
Bit de validez del Tag
Bits de validez de la línea0
1
1023
Directorio deCaché Interno
Nro de Set
A15 A14 A5 A4A31A2
Tag de 17 bits (1 de las 217 páginas) Set Address (1 de 1024 sets)
Caché Address (1 de 8 KLíneas)
Organización del caché de mapeo Organización del caché de mapeo directodirecto
Organizacion del cache: Asociativo Organizacion del cache: Asociativo de dos víasde dos vías
Directorio de Caché Interno4 Gbytes de Memoria Principal
Tag
18 bits
Bit de validez del Tag
Bits de validez de las líneas 1
6 K
byte
s(ig
ual ta
mañ
o Q
ue e
l de
cad
a b
an
co d
el c
ach
e)
Set 0
Set 1
Set 512
Memoria CachéPag.0
Pag.218 -1
Línea
Línea
1 Línea = 4 bytes Línea
Bits LRU
Bits LRU
Bits LRU
18 bits
18 bits 18 bits
18 bits
18 bits
A13A14 A5 A4A31 A2
Tag de 18 bits (1 de las 218 páginas) Set Address (1 de 512 sets)Selector deLínea
(1 de 8 líneas)
Caché Address (1 de 4 KLíneas)
Bit de validez del Tag
Bits de validez de la línea0
1
512
Directorio deCaché Interno
Nro de Set
Organización del caché asociativo Organización del caché asociativo de dos víasde dos vías
Manejo del contenidoManejo del contenido
Algoritmos de reemplazo del contenido de Algoritmos de reemplazo del contenido de la memoria cachela memoria cacheLRU: Least Recently Used.LRU: Least Recently Used.
Se corresponde con el principio de vecindad Se corresponde con el principio de vecindad temporal.temporal.
LFU: Least Frecuently UsedLFU: Least Frecuently UsedRandomRandomFIFOFIFO
Coherencia de un Coherencia de un cachecache Una variable que está en el caché también está alojada en alguna dirección de la Una variable que está en el caché también está alojada en alguna dirección de la
DRAM.DRAM. Ambos valores deben ser igualesAmbos valores deben ser iguales Cuando el procesador la modifica hay varios modos de actuarCuando el procesador la modifica hay varios modos de actuar
Write throughWrite through: el procesador escribe en la DRAM y el controlador : el procesador escribe en la DRAM y el controlador cachecache refresca el refresca el cachecache con el dato actualizado con el dato actualizado
WriteWrite throughthrough bufferedbuffered: el procesador actualiza la SRAM : el procesador actualiza la SRAM cachecache, y el controlador , y el controlador cachecache luego actualiza la copia en memoria DRAM mientras el procesador continúa ejecutando luego actualiza la copia en memoria DRAM mientras el procesador continúa ejecutando instrucciones y usando datos de la memoria instrucciones y usando datos de la memoria cachecache
CopyCopy back: Se marcan las líneas de la memoria back: Se marcan las líneas de la memoria cachecache cuando el procesador escribe en cuando el procesador escribe en ellas. Luego en el momento de eliminar esa línea del caché el controlador ellas. Luego en el momento de eliminar esa línea del caché el controlador cachecache deberá deberá actualizar la copia de DRAM.actualizar la copia de DRAM.
Si el procesador realiza un miss mientras el controlador Si el procesador realiza un miss mientras el controlador cachecache está accediendo a la está accediendo a la DRAM para actualizar el valor, deberá esperar hasta que controlador DRAM para actualizar el valor, deberá esperar hasta que controlador cachecache termine la actualización para recibir desde este la habilitación de las líneas de termine la actualización para recibir desde este la habilitación de las líneas de control para acceder a la DRAM.control para acceder a la DRAM.
Multilevel cacheMultilevel cache
CPUCache Level1
Cache Level 2
Cache controller
System Memory (DRAM)
On chip
Tamaño Cache L2 > Tamaño Cache L1Velocidad Cache L1 > Velocidad Cache L2
Implementaciones prácticas de Implementaciones prácticas de memoria cache (1)memoria cache (1)
Intel 80486Intel 80486 8 Kbytes de cache L1 on chip8 Kbytes de cache L1 on chip Tamaño de línea: 16 bytesTamaño de línea: 16 bytes Organización asociativa de 4-vías Organización asociativa de 4-vías
PentiumPentium dos caches on-chip, uno para datos y otro para dos caches on-chip, uno para datos y otro para
instrucciones.instrucciones. Tamaño de cada cahe: 8 KbytesTamaño de cada cahe: 8 Kbytes Tamaño de línea: 32 bytesTamaño de línea: 32 bytes Organización asociativa de 4-vías Organización asociativa de 4-vías
PowerPC 601PowerPC 601 cache on-chip de 32 Kbytescache on-chip de 32 Kbytes Tamaño de línea: 32 bytesTamaño de línea: 32 bytes Organización asociativa de 8-vías Organización asociativa de 8-vías
PowerPC 603PowerPC 603 Dos caches on-chip, una para datos y otra para instruccionesDos caches on-chip, una para datos y otra para instrucciones Tamaño de cada cache: 8 KbytesTamaño de cada cache: 8 Kbytes Tamaño de línea: 32 bytesTamaño de línea: 32 bytes Organización asociativa de 2-vías (organización del cache más simple Organización asociativa de 2-vías (organización del cache más simple
que en el 601 pero un procesador mas fuerte)que en el 601 pero un procesador mas fuerte) PowerPC 604PowerPC 604
Dos caches on-chip, una para datos y otra para instruccionesDos caches on-chip, una para datos y otra para instrucciones Tamaño de cada cache: 16 KbytesTamaño de cada cache: 16 Kbytes Tamaño de línea: 32 bytesTamaño de línea: 32 bytes Organización asociativa de 4-víasOrganización asociativa de 4-vías
PowerPC 620PowerPC 620 Dos caches on-chip, una para datos y otra para instruccionesDos caches on-chip, una para datos y otra para instrucciones Tamaño de cada cache: 32 KbytesTamaño de cada cache: 32 Kbytes Tamaño de línea: 64 bytesTamaño de línea: 64 bytes Organización asociativa de 8-víasOrganización asociativa de 8-vías
Implementaciones prácticas de Implementaciones prácticas de memoria cache (memoria cache (22))