Sistema Cache. Técnicas Digitales III Ing. Gustavo Nudelman Universidad Tecnológica Nacional - Facultad Regional Buenos Aires

Documentos relacionados
Organización del Computador 1 Memoria Cache

Organización del Computador I. Memoria Cache. Autor: Alejandro Furfaro

Organización del Computador I. Memoria Cache. Autor: Alejandro Furfaro

Organización lógica Identificación de bloque

Organización del Computador. Memorias

Arquitectura de Computadoras

Introducción a memorias cache

Cache. Ing. Marcelo Doallo. Septiembre 2013

Memoria Cache. Departamento de Arquitectura de Computadores

MEMORIA CACHÉ PRINCIPIOS BASICOS

UNIDAD TEM ATICA 3: ACELERACI ON DEL ACCESO A MEMORIA.

Organización de computadoras. Clase 11. Universidad Nacional de Quilmes. Lic. Martínez Federico

Sistema de memoria. Introducción

Tema 6 (II) Jerarquía de Memoria

QUÉ ES LA MEMORIA CACHÉ?

Caché. Matías Barbeito Organización del computador 1 2 cuatrimestre 2011

Jerarquía de memoria - Motivación

Memoria Virtual. Memoria Virtual

Tema 6: Sistema de memoria

Memoria caché básica

Trabajo Práctico Número 6

Memoria. Organización de memorias estáticas.

Subsistemas de memoria. Departamento de Arquitectura de Computadores

Arquitectura de Computadores

Unidad II: Memorias. Ing. Marglorie Colina

2º Cuatrimestre MÓDULO 11: Introducción a la jerarquía de memoria. fc 2

Tema 13. Memoria cache

Arquitectura de Computadores II Clase #6

Miss rate vs. Tamaño de bloque En general el MR baja cuando se aumenta el tamaño del bloque.

Miss rate vs. Tamaño de bloque En general el MR baja cuando se aumenta el tamaño del bloque.

Memoria. Otros temas sobre cachés

Memoria. M. en C. Erika Vilches. Parte 1

Estructura de Computadores

Organización de Computadoras

Organización del Sistema de Memoria. 1. Tipos de memoria 2. Jerarquía de memoria 3. El principio de localidad 4. Organización de la memoria

MemoriaCache. Clase Práctica Organización del computador I 1º Cuatrimestre de mayo. María Elena Buemi

Tema 0. Introducción a los computadores

CPU MEMORIAS CACHE. Memorias caché. Memoria caché = memoria de tamaño pequeño y acceso rápido situada entre la CPU y la memoria principal.

Práctica 5 - Memoria Cache

Clase Práctica Memoria Caché

Area Académica: Sistemas Computacionales. Tema: Elementos de diseño de memoria caché

Registros. Cache L1. Cache L2. Memoria Principal (RAM) Memoria Secundaria (Disco) Memoria Terciaria (Cinta)

Electrónica Digital II

Arquitectura de Computadoras para Ingeniería

Memoria Virtual. Ing. Jorge Castro-Godínez

Sistemas Operativos. Trabajo Práctico N ō 6

Registros. Cache L1. Cache L2. Memoria Principal (RAM) Memoria Secundaria (Disco) Memoria Terciaria (Cinta)

Memoria Virtual. Departamento de Arquitectura de Computadores

Memoria Cache. Clase Práctica Organización del computador I 2º Cuatrimestre de octubre. María Elena Buemi

Sistema Operativo. Repaso de Estructura de Computadores. Componentes Hardware. Elementos Básicos

Mapa de memoria. memoria CACHÉ

Tema 5: Memorias. Espacio reservado para notas del alumno

Trabajo Práctico Número 6 Arquitectura de Computadoras

INFORME MEMORIA CACHE Y MEMORIA VIRTUAL.

Arquitectura de Computadores Problemas (hoja 4). Curso

Introducción. Universidad de Sonora Arquitectura de Computadoras 2

De qué hablamos cuando hablamos de Memoria Cache?

Organización del Computador 1 Memorias

La Memoria - 1. Arquitectura de Computadores

Capítulo 2 Organización y estructura de la memoria cache Ampliación: Políticas de ubicación en caches

Arquitectura de Computadoras para Ingeniería

Procesadores de 32 bits. Tecnologías, Organización y Microarquitectura

Tema 6: Memoria virtual. Óscar David Robles Sánchez Sofía Bayona Beriso David Miraut Andrés Luis Rincón Córcoles

Diseño de la jerarquía de memoria

ENTRADA-SALIDA. 2. Dispositivos de Carácter: Envía o recibe un flujo de caracteres No es direccionable, no tiene operación de búsqueda

Jerarquía de Memoria Memoria Cache

Jerarquía de memoria y memoria caché Ejercicios resueltos

Memoria virtual Ubicación de bloque en paginación

Sistemas de memoria. Estructura de computadores 2

Arquitectura de Procesadores

Capítulo 5. Memoria Cache. 5.1 Principios de la memoria caché

Aspectos avanzados de arquitectura de computadoras Multiprocesadores (II) Facultad de Ingeniería - Universidad de la República Curso 2016

Profesores y Horarios de Tutorías Temas 3 y 4. Daniel Cascado Caballero Lourdes Miró Amarante

Lección 5. La Memoria Caché LECCIÓN 5-1

Microarquitectura (2da parte)

Administración de Memoria

MEMORIA EJERCICIO 1 EJERCICIO 2

Memoria Virtual. Memoria Virtual

Arquitectura de Computadores II Clase #6

Arquitectura de Computadores II Clase #6

Arquitectura de Computadoras II

Sistemas Operativos. Curso 2016 Administración de memoria II

Taller de Sistemas Operativos. Direccionamiento de Memoria 2012

Ejercicios Jerarquía de Memoria

Tema 4: Introducción a la Jerarquía de Memoria

Tema 5 Jerarquía de Memoria

Ejercicios de Arquitectura de Computadoras

Arquitectura de Computadores II Clase #6

MODULO DE MEMORIA RAM. Ing. Raúl Rojas Reátegui

La memoria del ordenador

Controlador de Floppy Disk - DMA

TEMA 12: MEJORA DE LAS PRESTACIONES DE LA MEMORIA

Simulación de sistemas de memoria con Xcache32

Optimizaciones avanzadas de memoria caché

Práctica 5 - Memoria

Facultad de Ingeniería Industrial y de Sistemas v2.0 MA781U MEMORIA VIRTUAL

Examen de Estructura de Computadores ( ) Solución teoría

Universidad de Los Andes Escuela de Ingeniería de Sistemas Departamento de Computación Arquitectura de Computadores. Clase 24

TEMA 2: Organización de computadores

Memoria y Entrada/Salida Tecnología Organización - Expansión

Transcripción:

Sistema Cache Técnicas Digitales III Ing. Gustavo Nudelman 2012

RAM dinámica Almacena un bit como una capacidad espuria en un transistor La necesidad de conservar la carga y la lectura destructiva obliga el refresco de la celda El consumo es mínimo (1 transistor x bit)

RAM Estática - Cache Almacena un bit en un biestable (6 transistores) 3 transistores en conducción permanente mayor consumo No necesita refresco Tiempo de acceso muy bajo.

Evolución de la velocidad de CPU Vs Memoria En la década del 90 los procesadores comienzan a desarrollar velocidades superiores a los tiempos de acceso a memoria Se utilizan Wait states en las interfaces entre buses locales y del sistema

La solución: Memoria Cache Se trata de un banco SRAM que contiene una copia de parte de la memoria DRAM para permitir un acceso mas veloz El arte consiste en que parte de la memoria conviene tener en esta copia Requiere un hardware adicional que funcionará como sistema administración y control y que trabajará bajo las siguientes premisas: Principio de localidad de referencia Que copiar y cuanto copiar Política de ubicación En que dirección de cache se mapea Política de sustitución Si esta llena la cache, que debo sustituir? Política de actualización Cuando actualizar en DRAM los cambios producidos en cache

Organización de un sistema CPU Reg Cache RAM Dinámica Costo/MB Capacidad Tiempo de acceso Frecuencia de acceso Disco Cintas CDs

Principio de localidad de referencia Los accesos a memoria que se realizan régimen de ejecución no están distribuidos uniformemente en el espacio lineal sino que se concentran en áreas definidas de memoria Vecindad Temporal: Probabilidad de repetir instrucciones (lazos de repetición) GUARDAR EN CACHE ANTE CUALQUIER ACCESO Vecindad espacial: Agrupación de los datos en memoria, tablas secuencia y flujo normal de un programa. GUARDAR EL BLOQUE DE ENTORNO A LA DIRECCION ACCEDIDA

Operación de lectura con cache

Eficiencia de memoria cache T T C P A T MP ( 1 PA ) Aciertos Accesos Hrate Ejemplo Con tecnología DDR tenemos un tiempo de acceso promedio de 10nS Sea 1ns el acceso el tiempo de acceso a SRAM cache. Si la probabilidad de aciertos es del 80 % T 1ns 0.8 10ns (1 0.8) 2. 8ns

Estructura Conceptos generales Espacio Lineal Cache 0 1 2 3 4 5 Bloque 0 (k celdas) Bloque 1 Bloque 2 0 1 2 3 4 Tag Bloque 2 n 1 Bloque m-1 c-1 Una línea almacena el contenido de un bloque e información de referencia al mismo n Cantidad de bloques en el espacio lineal m 2 k Bloques >> Líneas M>>C La memoria cache solo podrá estar cargada con un subconjunto de los bloques

Estructura Conceptos generales Habiendo mas bloques que líneas, cada línea o entrada de cache no puede estar dedicada a un bloque en particular. Es por eso que cada línea de cache posee una etiqueta (Tag) para identificar que bloque tiene cargado en ese momento. La necesidad de asignación de una línea a mas de un bloque nos obliga a establecer una política de ubicación y en base a esta, un hardware dedicado a establecer una función de correspondencia. Las 3 funciones de correspondencia que se suelen utilizar son: Directa Asociativa Asociativa por conjuntos

Correspondencia directa Es la función mas sencilla y barata de implementar por Hardware A cada bloque de memoria le corresponde una única línea de cache posible Línea Bloques de memoria principal 0 0, C, 2C, 3C,...... 1 1, C+1, 2C+1, 3C+1,.... 2 2, C+2, 2C+2. 3C+2... C-1 C-1, 2C-1, 3C-1,........

Interpretación de la dirección entregada por la CPU Dir. de bloque en espacio lineal (30) cache de 32K con bloques de 4 bytes Tag (17) Línea (13) 0 Offset (2) Comp Hit + n 8191 Tag bloque de 4 bytes miss Recupero bloque Acceso al espacio lineal

Correspondencia Directa IA32 (cache 32K)

Ventajas y desventajas Hardware simple y económico Es posible que un programa este referenciando continuamente 2 bloques de memoria que corresponden a la misma línea de cache con lo que se estaría en una situación de recambio continuo aunque otras líneas estén libres. Es necesario poder aprovechar todas las líneas

Correspondencia asociativa Un bloque del espacio lineal puede estar en cualquier línea de cache. Mientras la memoria cache no este llena, no hará falta hacer ninguna sustitución Se debe implementar una política de sustitución para cuando la cache este llena

Interpretación de la dirección entregada por la CPU Dir de bloque en espacio lineal (30) Tag cache de 32K con bloques de 4 bytes Tag 0 Tag 1 Comp Comp 8191 Tag n Comp

Ventajas y desventajas Cada línea tiene un comparador asociado de manera de realizar la comparación a la velocidad requerida. Hardware mas costoso. Nunca tendremos que reemplazar un bloque cargado a menos que todas las líneas se encuentren ocupadas No existen expulsiones mutuas. Adquiere notable importancia la política de sustitución Con una buena política de sustitución se consigue que todos los últimos elementos referenciados permanezcan en memoria cache La tasa de aciertos se incrementa notablemente

Correspondencia asociativa por conjuntos Es una combinación de los 2 sistemas de correspondencia vistos hasta ahora. Las líneas de la memoria cache se agrupan en conjuntos o sets en donde un bloque puede ocupar cualquier línea si y solo si la línea pertenece a dicho conjunto. Si se tiende al limite en donde un conjunto posee una sola línea estaríamos en el caso de correspondencia directa Si se tiende al limite de un solo conjunto de que contenga todas las líneas estaríamos en el caso de correspondencia asociativa Normalmente se suelen utilizar de 2 a 8 líneas por conjunto (Cache asociativa de n vías)

Interpretación de la dirección entregada por la CPU Dir. de bloque en espacio lineal (30) Tag (18) Conjunto (12) cache de 32K con bloques de 4 bytes Tag 0 Tag 1 C0 Tag 2 Tag 3 C1 Comp 1 Comp 2 8191 Tag n

Cache asociativo de 2 vías IA32

Ventajas y desventajas Con 2 líneas por conjunto se logra aumentar notablemente la tasa de aciertos sin incrementar considerablemente la complejidad y/o costo. Solo se requieren 2 comparadores Los Pentium utilizan cache asociativa de 2 a 4 vías mientras que procesadores como Power Pc utilizan memorias de 4 a 8 vías La probabilidad de expulsiones mutuas disminuye exponencialmente con el aumento de la cantidad de vías por conjunto.

Políticas de sustitución En correspondencia directa no hay elección No se puede establecer una política En correspondencia asociativa suele utilizarse: LRU (Last recent used) vecindad temporal Se sustituye el que lleva menos tiempo referenciado. LFU (Last Frequently used) Se sustituye el menos referenciado Random FIFO Solo tiene en cuenta el tiempo que lleva un bloque en cache. No existe una política mejor que otra ya que dependen de la política de ubicación tamaño y tipo de cache.

Coherencia de un cache La coherencia de una memoria cache esta dada por la política de actualización. Cuando se modifica un dato en cache el correspondiente dato en memoria queda obsoleto. Cuando un dato necesita ser modificado las políticas de actualización pueden ser: Write Through: El procesador escribe en DRAM y el controlador de cache refresca el cache con el dato actualizado. Write Through Buffered: El procesador actualiza la SRAM cache y luego el controlador cache realiza la copia en DRAM mientras que la CPU puede continuar ejecutando instrucciones y accediendo a la memoria cache. Copy Back: Se marcan las líneas de cache que han sido modificadas pero son recién copiadas a DRAM cuando la línea debe ser sustituida. En este caso el tiempo del miss correspondiente es mayor al de acceso normal a DRAM.

Protocolo MESI Creado por INTEL para procesadores Pentium para aprovechamiento del sistema write-back de las cache de CPU Se utilizan 2 bits en cada línea de cache para establecer uno de los siguientes estados: M (Modified): La línea ha sido modificada Requiere Write back (modificar en DRAM) antes de que otro procesador acceda al dato. E (Exclusive): La línea esta presente solo en esta cache y coincide con la memoria principal S (Shared): La línea esta presente y puede estar almacenada en cache de otros procesadores. I (Invalid): La línea cache no es valida. (No corresponde a nada en memoria)

Protocolo MESI. Diagrama de estados Se puede leer de caché en cualquier estado excepto en Inválido. Una escritura sólo puede ser llevada a cabo si la línea de caché está en estado Modificado o Exclusivo. Si está en estado Compartido todas las otras copias en otras cachés deben ser puestas en estado Inválido antes.