ARQUITECTURA E I NGENIERÍA DE COMPUTADORES Tema 4: Introducción a la Jerarquía de Memoria A RQUITECTURA E I NGENIERÍA DE COMPUTADORES Curso 2011/12 Óscar David Robles Sánchez Luis Rincón Córcoles Luis Rincón Córcoles David Miraut Andrés 1 Programa ARQUITECTURA E I NGENIERÍA DE COMPUTADORES • • • • • Introducción. Concepto de localidad. Algunos tipos de memorias. Algunos tipos de memorias. Jerarquía: niveles. Terminología básica. Terminología básica. Bibliografía ARQUITECTURA E I NGENIERÍA DE COMPUTADORES D.A. PATTERSON, J.L. HENNESSY. Estructura y Diseño de Computadores. Reverté, 2000. DORMIDO S CANTO M A MIRA J DELGADO A E Estructura y DORMIDO, S. CANTO M.A., MIRA J., DELGADO A.E. Estructura y Tecnología de Computadores. 2ª edición. Sanz y Torres, 2000. J.L. HENNESSY, D.A. PATTERSON. Computer Architecture. Morgan , Kauffman, 2007. J. ORTEGA, M. ANGUITA, A. PRIETO. Arquitectura de Computadores. Thomson‐Paraninfo, 2005. P. DE MIGUEL. Fundamentos de los Computadores. 7ª edición. P Paraninfo, 1999. i f 1999 W. STALLINGS. Organización y Arquitectura de Computadores. 5ª edición, Prentice Hall, 2000. Introducción ARQUITECTURA E I NGENIERÍA DE COMPUTADORES Memoria principal.‐ Memoria principal Unidad funcional del computador en la que se almacenan las p q instrucciones y datos que componen el programa que se encuentra en ejecución. En el computador existen otros tipos de memoria (de más rápida a más lenta): Registros. Memoria caché. Memoria secundaria. Introducción ARQUITECTURA E I NGENIERÍA DE COMPUTADORES Ejemplo de la biblioteca: Coger libros de las estanterías. Utilizar los libros ya seleccionados que se tienen en la mesa. En un computador: Un programa no accede a todo su código o datos con igual probabilidad igual probabilidad. Resultaría imposible hacer rápidos la mayoría de los y g accesos a memoria y tener grandes memorias en las máquinas Programa ARQUITECTURA E I NGENIERÍA DE COMPUTADORES • • • • • Introducción. Concepto de localidad. Algunos tipos de memorias. Algunos tipos de memorias. Jerarquía: niveles. Terminología básica. Terminología básica. Concepto de localidad ARQUITECTURA E I NGENIERÍA DE COMPUTADORES La forma de trabajar del estudiante y del computador se explican mediante la localidad. t d li di t l l lid d Localidad temporal. Si se accede a un dato, seguramente se volverá a acceder próximamente seguramente se volverá a acceder próximamente. Localidad espacial. Si se accede a un dato, seguramente se accederán a otros cercanos a él seguramente se accederán a otros cercanos a él. La localidad en los programas surge de su estructura: secuencialidad bucles estructura: secuencialidad, bucles. Programa ARQUITECTURA E I NGENIERÍA DE COMPUTADORES • • • • • Introducción. Concepto de localidad. Algunos tipos de memorias. Algunos tipos de memorias. Jerarquía: niveles. Terminología básica. Terminología básica. Algunos tipos de memorias ARQUITECTURA E I NGENIERÍA DE COMPUTADORES La memoria de los primeros computadores estaba formada por tarjetas perforadas. •Para leerlas se emitía una luz,, y si había agujero, g j , esa luz era detectada p por un sensor. Relés magnéticos: actúan como interruptores. Válvulas electrónicas de vacío: actúan como los relés. Líneas de retardo: formadas por tubos rellenos de mercurio, a través del cual se almacena la información como un tren de pulsos ultrasónicos. Núcleos de ferrita: consisten en un anillo de ferrita atravesado por varios hilos por los que transcurre la corriente eléctrica, utilizada para magnetizar el anillo según dos valores distintos. Algunos tipos de memorias ARQUITECTURA E I NGENIERÍA DE COMPUTADORES Las dos principales tecnologías basadas en semiconductores: DRAM. Memoria dinámica de acceso aleatorio. SRAM. Memoria estática de acceso aleatorio. DRAM es más barata por bit; SRAM es más rápida. Actualmente también se utilizan soportes magnéticos A l bié ili éi (discos, cintas,…). Tecnología Tiempo de acceso $ por GB (2004) SRAM 0,5-5 ns $4.000-$10.000 DRAM 50-70 ns $100-$200 Disco magnético é 5,000,000-20,000,000 ns $ $0.50-$2 $ Algunos tipos de memorias ARQUITECTURA E I NGENIERÍA DE COMPUTADORES Di [1] Din[1] Write enable Di [0] Din[0] D D C latch Q Enable D D C latch Q Enable D D C latch Q Enable D D C latch Q Enable D D C latch Q Enable D D C latch Q Enable D D C latch Q Enable D D C latch Q Enable 0 2-to-4 decoder SRAM 4×2 1 Address 2 3 Dout[1] Algunos tipos de memorias ARQUITECTURA E I NGENIERÍA DE COMPUTADORES DRAM Dout[0] Programa ARQUITECTURA E I NGENIERÍA DE COMPUTADORES • • • • • Introducción. Concepto de localidad. Algunos tipos de memorias. Algunos tipos de memorias. Jerarquía: niveles. Terminología básica. Terminología básica. Jerarquía: niveles ARQUITECTURA E I NGENIERÍA DE COMPUTADORES Sistema de memoria organizado en niveles con Sistema de memoria organizado en niveles con diferente velocidad y capacidad. Se aprovecha el principio de localidad. Se aprovecha el principio de localidad. Un nivel cercano al procesador es un subconjunto q j de cualquier nivel más bajo. Cuanto más cercano más rápido pero de menor p capacidad. Jerarquía: niveles ARQUITECTURA E I NGENIERÍA DE COMPUTADORES Pueden existir múltiples niveles: los datos sólo se transfieren entre dos adyacentes. Speed CPU Size Cost ($/bit) Fastest Memory Smallest Highest Biggest Lowest Memory Slowest Memory Jerarquía: niveles ARQUITECTURA E I NGENIERÍA DE COMPUTADORES CPU Level 1 Levels in the memory hierarchy Level 2 Level n Size of the memory at each level Increasing distance from the CPU in access time Jerarquía: niveles ARQUITECTURA E I NGENIERÍA DE COMPUTADORES Unidad mínima de información: bloque. Si los datos pedidos por el procesador aparecen en un nivel superior: acierto (hit). Si los datos no se encuentran en el nivel superior: fallo (miss). i f ll ( i ) Processor Data are transferred Jerarquía: niveles ARQUITECTURA E I NGENIERÍA DE COMPUTADORES Tasa de aciertos (hit rate).‐ % de accesos a memoria encontrados en el nivel superior encontrados en el nivel superior. Tasa de fallos (miss rate).‐ % de accesos a memoria en que los datos NO están en el nivel superior. en que los datos NO están en el nivel superior. Permiten medir el rendimiento de una jerarquía de memorias. Falta evaluar el velocidad de los accesos con y aciertos y con fallos. Jerarquía: niveles ARQUITECTURA E I NGENIERÍA DE COMPUTADORES Tiempo de acierto.‐ Tiempo necesario para acceder al nivel superior de la jerarquía al nivel superior de la jerarquía. Incluye el tiempo para determinar si el acceso es acierto o fallo. Penalización por fallo.‐ Tiempo necesario para reemplazar el bloque del nivel superior por el correspondiente del inferior, más tiempo para suministrar este bloque al procesador. SIEMPRE T. acierto < T. fallo. Jerarquía: niveles ARQUITECTURA E I NGENIERÍA DE COMPUTADORES Los conceptos usados para construir sistemas de memoria afectan a: Gestión de la memoria y la E/S por el S. O. Cómo generan código los compiladores. Cómo usan la máquina las aplicaciones. Los programas acceden mucho a memoria: elemento clave para determinar el rendimiento. Se han desarrollado mecanismos muy sofisticados para mejorar su rendimiento. d Programa ARQUITECTURA E I NGENIERÍA DE COMPUTADORES • • • • • Introducción. Concepto de localidad. Algunos tipos de memorias. Algunos tipos de memorias. Jerarquía: niveles. Terminología básica. Terminología básica. Terminología básica ARQUITECTURA E I NGENIERÍA DE COMPUTADORES Celda de memoria: unidad mínima de almacenamiento, que contiene un bit. Palabra de memoria: agrupación de celdas de memoria que constituye la unidad natural de organización de la misma. misma •A cada palabra de memoria se le asocia una dirección física única que la identifica. •El tamaño de la palabra de memoria suele ser múltiplo de un octeto (byte, 8 bits). Unidad direccionable: número de celdas a las cuales le corresponde una dirección física única. •A veces la unidad direccionable es la palabra. •Otras veces la unidad direccionable es el octeto (byte). Unidad de transferencia: número de bits o palabras que se leen o escriben en una operación de lectura o escritura. •A veces la unidad de transferencia es la palabra. Otras veces la unidad de transferencia es un bloque (varias palabras consecutivas). consecutivas) •Otras Densidad de memoria: datos almacenados por unidad de área o volumen. 22 Terminología básica: prestaciones de la memoria ARQUITECTURA E I NGENIERÍA DE COMPUTADORES Capacidad de memoria: número de bits o palabras que puede almacenar. Coste por bit: dinero que cuesta la memoria dividido por su capacidad. Tiempo de acceso: tiempo que se tarda en acceder a un dato. •Tiempo de acceso del ciclo de lectura: tiempo que se tarda en leer un dato. •Tiempo de acceso del ciclo de escritura: tiempo que se tarda en escribir un dato. •En muchas memorias de semiconductores ambos tiempos coinciden. Tiempo de ciclo: tiempo mínimo que debe transcurrir entre dos accesos consecutivos a memoria. Velocidad de transferencia o ancho de banda (bandwith): número de datos transmitidos por unidad de tiempo. Latencia: tiempo transcurrido entre el comienzo de un acceso a memoria y el comienzo de la transferencia de la información. 23 Terminología básica: modo de acceso ARQUITECTURA E I NGENIERÍA DE COMPUTADORES Memoria de acceso aleatorio (random access memory): memoria con tiempo de acceso constante e independiente de la dirección física de la posición accedida. •Todos los ciclos duran lo mismo. •También se las llama memorias de acceso inmediato (immediate access memory). •Error: llamar RAM a las memorias de semiconductores que permiten lectura y escritura. Memoria de acceso secuencial (sequential access memory): memoria con tiempo de acceso dependiente p de la p posición física en q que se encuentran los datos buscados. •Para acceder a una información es preciso recorrer toda la que hay grabada delante. •También se le llama memoria de acceso serie (serial access memory). Memoria de acceso directo (direct access memory): la información está almacenada por zonas, y para acceder a un dato hay que acceder a una zona determinada, y dentro de ella buscar el dato secuencialmente. Memoria de acceso asociativo: es un tipo especial de memoria de lectura / escritura que permite buscar la información por una porción de su contenido. •Se accede a la información por su contenido, no por su dirección. 24 Terminología básica: persistencia de los datos ARQUITECTURA E I NGENIERÍA DE COMPUTADORES Memoria volátil: su contenido se borra cuando cesa la alimentación de energía. Memoria no volátil: su contenido se mantiene aun cuando cese la alimentación. Memoria de sólo lectura (read‐only memory): en operaciones normales su contenido sólo se puede leer, pero no escribir. •Memorias Memorias programables de sólo lectura: su contenido puede modificarse en un modo de operación especial. Memoria estática: cuando se escribe un dato, dicho dato permanece inalterado hasta que escribimos un nuevo dato sobre él, o, en el caso de las memorias volátiles, hasta que cesa la alimentación de energía. Memoria dinámica: es una memoria necesariamente volátil en la que la información almacenada se borra a lo largo del tiempo, tiempo a no ser que su contenido se restaure mediante una operación denominada “refresco”. 25