Organización del Computador I Verano Jerarquía de Memoria Basado en el capítulo 7 del libro de Patterson y Hennessy Verano 2004 Profesora Borensztejn.

Slides:



Advertisements
Presentaciones similares
III - Gestión de memoria
Advertisements

Organización y arquitectura de sistemas de memoria
III - Gestión de memoria
Microprocesadores para comunicaciones Escuela Técnica Superior de Ingenieros de Telecomunicación Organización y estructura de las memorias caché.
Introducción a los Sistemas Operativos Memoria Virtual
MEMORIA 1.
SISTEMAS DE MEMORIA DEL COMPUTADOR
Tema II Unidad de memoria. 2 Unidad de memoria 2.1 Definiciones y conceptos básicos Localización Capacidad Unidad de transferencia
Algorítmo de Mapeo Directo
Arquitectura de Conjunto de Instrucciones (ISA)
Memoria cache.
INTEGRANTES MEDINA ORTIZ MISSAEL MARTIN GONZALEZ MADRIGAL OMAR
Su objetivo es conseguir el rendimiento de una memoria de gran velocidad al costo de una memoria de baja velocidad Los puntos básicos relacionados con.
Composición Interna de un Procesador
Introducción a la Informática Clase 7
Arquitectura del Computador
Memoria Organización del caché. Universidad de SonoraArquitectura de Computadoras2 Organización del caché Hasta ahora solo se ha visto la estrategia de.
Memoria Otros temas sobre cachés. Universidad de SonoraArquitectura de Computadoras2 Otros temas 1. Estrategias de búsqueda de bloque. 2. Estrategias.
Organización del Computador I Verano MIPS (1 de 2) Basado en el capítulo 3 del libro de Patterson y Hennessy Verano 2004 Profesora Borensztejn.
Estructura y Tecnología de Ordenadores Noviembre 2004.
Tema 10a Manejo de archivos. Introducción Un computador puede almacenar grandes cantidades de información. Puede acceder a ella de manera muy rápida.
Administración de Memoria Memoria Virtual
Las personas se enfrentaron por primera vez con programas que eran demasiados grandes para caber en la memoria disponible. La solucion fue dividir el programa.
Memoria Cachés. Universidad de SonoraArquitectura de Computadoras2 Introducción Caché es el nivel de memoria situada entre el procesador y la memoria.
JERARQUIA DE LA MEMORIA
Tema 10.3: Asignación de Espacio No Contiguo. Tema 10.3: 2 Silberschatz, Galvin and Gagne ©2005 Fundamentos de los Computadores (ITT, Sist. Electr.),
Overview Sistemas Computacionales
Asignación de Espacio No Contiguo
Soporte HW para Administración de Memoria Cecilia Hernández
ARQUITECTURA DE COMPUTADORES Semestre A-2009 Clase 19 La mayor parte del contenido de estas láminas, ha sido extraído del libro Computer Organization and.
Memorias RAM Características: Son de lectura escritura
MEMORIA RAM Concepto RAM: Siglas de Random acces Memory, un tipo de memoria a la que se puede acceder de forma aleatoria; esto es, se puede acceder a cualquier.
Chips Controladores Pequeño circuito electrónico utilizado para realizar una función electrónica especifica. El chips es el que hace posible que la placa.
Ing. María Rosa Dámaso Ríos1 MEMORIA PRINCIPAL Y SECUNDARIA Quinta Semana.
Memoria Introducción.
Organización del Computador
ISI374 – Arquitectura de Computadores Clase 18: Jerarquía de memoria Pt.1 Departamento de Ingeniería de Sistemas Universidad de Antioquia
Memorias.
ARQUITECTURA DE COMPUTADORES Semestre A-2009 Clase 21 La mayor parte del contenido de estas láminas, ha sido extraído del libro Computer Organization and.
Programa del Curso Fundamentos del Diseño de Computador. Fundamentos del Diseño de Computador. Arquitectura del Conjunto de Instrucciones (Revisión). Arquitectura.
Organización del Computador
Memoria virtual.
Memoria Principal Memoria de acceso aleatorio. La unidad de memoria y jerarquías de almacenamiento Unidades de Almacenamiento. La unidad de memoria es.
“Organización y Arquitectura de Computadores” William Stallings
Organización del Computador I Verano Memoria Virtual Basado en el capítulo 7 del libro de Patterson y Hennessy Verano 2004Profesora Borensztejn.
1 Memorias. 2 RAM (Memoria de acceso aleatorio) El procesador puede tomar un dato que esté al principio, al medio o al final de la memoria RAM. Hardware.
Estructura de los Sistemas Operativos
Teoría de Sistemas Operativos Sistema de I/O. 2 Introducción Una de las funciones principales del sistema operativo es el control de todos los dispositivos.
Capítulo 4 CPU y la memoria.
ARQUITECTURA DE COMPUTADORES Semestre A-2009 Clase 20 La mayor parte del contenido de estas láminas, ha sido extraído del libro Computer Organization and.
Rendimiento de la CPU y sus factores
Organización del Computador I Verano Control Multiciclo Basado en el capítulo 5 del libro de Patterson y Hennessy Verano 2004 Profesora Borensztejn.
Chadey Daniela Fontal Marin Stefanny Mosquera Flor Michel Tatiana Oliveros.
Modos de direccionamiento
ALMACENAMIENTO DE DATOS. Son componentes que leen o escriben datos en medios o soportes de almacenamiento, y juntos conforman lamemoria o almacenamiento.
     Jerarquía de memoria.
Gestión de memoria Rina Arauz.
REPUBLICA BOLIVARIANA DE VENEZUELA UNIVERSIDAD ALONSO DE OJEDA FACULTAD DE INGENIERÍA ESCUELA DE COMPUTACIÓN ING. PROF. LEONEL SEQUERA MEMORIAS.
Unidad de transferencia de memoria
Universidad Metropolitana Introducción a la Computación Universidad Metropolitana Introducción a la Computación Septiembre, 2007 Arquitectura Von Newman.
LICENCIATURAS: HERRAMIENTAS TECNOLOGICAS I GRADO: 1°
Silberschatz, Galvin, and Gagne  Applied Operating System Concepts Memoria Virtual Concepto Paginado bajo demanda Performance del Paginado bajo.
Memoria Virtual Conceptos Paginación Bajo Demanda Creación de Procesos
Gestión de Memoria – Parte 2
Arquitectura de Computadores Clase 16 Sistemas y Jerarquías de Almacenamiento IIC 2342 Semestre Rubén Mitnik Pontificia Universidad Católica de.
Arquitectura de Computadores Clase 18 Memoria Caché: Fundamentos IIC 2342 Semestre Rubén Mitnik Pontificia Universidad Católica de Chile Escuela.
Arquitectura de Computadores Clase 17 Tecnologías de Memorias IIC 2342 Semestre Rubén Mitnik Pontificia Universidad Católica de Chile Escuela de.
ORIGEN: La Memoria RAM se descubre hace 65 años en un laboratorio de Manchester, Inglaterra. Es ahí donde tres científicos Frederic Williams, Tom Kilburn.
Arquitectura de Computadoras (Taller) Semestre II de 2008.
Arquitectura de Computadores
Transcripción de la presentación:

Organización del Computador I Verano Jerarquía de Memoria Basado en el capítulo 7 del libro de Patterson y Hennessy Verano 2004 Profesora Borensztejn

Memoria Los registros y los bancos de registros se utilizan para la construcción de memorias pequeñas. Las memorias mas grandes se realizan mediante: SRAM: Static Random Access Memory DRAM: Dynamic Random Access Memory

SRAM Se llaman de acceso aleatorio porque el tiempo de acceso para acceder cualquier dato es fijo. Cada celda de memoria SRAM es básicamente como el biestable D que estudiamos en clases pasadas. WE CS OE 3 líneas de control WE: Write Enable CS: Chip Select OE: Output Enable 15 líneas de dirección 8 líneas de datos de entrada 8 líneas de datos de salida 15 Dirección 8 SRAM 32K x 8 D salida 8 D entrada

SRAM Para iniciar un acceso de lectura o escritura, la señal CS debe estar activa. Para realizar una lectura: debe activarse la señal OE, que es útil cuando se conectan varios chips de memoria, y sirve para determinar cual de ellos accede al bus. El tiempo de acceso de lectura de una memoria SRAM es el tiempo desde que se activa OE, y las líneas de dirección son válidas, hasta que el dato está presente en las salidas. Suele ser del orden de los 5nseg. Para realizar una escritura debe activarse la señal WE durante un tiempo mínimo, y el dato y su dirección deben estar disponibles durante un tiempo antes (setup time) y mantenerse durante un tiempo posterior (hold time) a la activacion de la señal WE El tiempo para completar una escritura se especifica como una combinación del setup time, hold time y la duración de la señal WE. SRAM 32K x 8 8 15 Dirección D entrada D salida CS OE WE

SRAM Si bien se construyen con biestables D, igual que los registros, para seleccionar la salida no se usa un multiplexor. Seria demasiado grande! (multiplexor de 32K a 1!) Se realizan mediante una línea de salida compartida entre varias celdas de memoria. Cada celda tiene su salida implementada con un buffer tri-estado: Permiso Selección 0 Entrada Salida Dato 0 Permiso Selección 1 Dato 1 Entrada Salida Permiso Salida Selección 2 Dato 2 Entrada Salida Permiso Selección 3 Entrada Salida Dato 3

SRAM de 4x2 1 2 3 D entrada(1) D entrada(0) D salida(1) D salida(0) WE 1 2 3 Permiso D C Q D entrada(1) D entrada(0) D salida(1) D salida(0) WE Dirección

DRAM En las DRAM el valor almacenado se mantiene como una carga en un capacitor. El transistor permite acceder al valor almacenado en el capacitor. Para escribir: Cuando la señal de línea de palabra está activada, el transistor se abre conectando el capacitor con la línea de bit. Si el valor de la línea es 1, el capacitor se carga. Si el valor de la línea es 0, se descarga.

DRAM Para leer: Se carga la línea de bit con un valor medio entre el voltaje alto y bajo Se activa la línea de palabra, abriendo el transistor. La carga del capacitor se mueve hacia la línea de bit, provocando un cambio en ella. Se mide el cambio y se detecta si era un cero o un uno dependiendo de hacia donde se movió el voltaje en la línea de bit. La lectura es destructiva! Se descargó el capacitor volver a escribirlo.

DRAM Selecciona un bit bit (data) lines r o w d e c RAM Cell Array Cada intersección representa un bit RAM Cell Array word (row) select Column Selector & I/O Circuits row address Column Address Selecciona un bit data

DRAM Direccionamiento de dos niveles: primero se le da la dirección de fila y luego la de columna. La dirección de fila activa la línea de palabra y todas las columnas se almacenan en un conjunto de cerrojos. La dirección de columna selecciona el bit. El tiempo de acceso es mas grande que en las SRAM, del orden de 5 a 10 veces mas. Además, los capacitores pierden carga y es necesario refrescar los contenidos. Ocupa menos área por bit que la SRAM Es mas barata. WE OE 9 Dirección D entrada 8 DRAM 256K x 8 D salida CAS RAS

Jerarquía de Memoria Los usuarios quieren una memoria rápida e infinita. Las tres tecnologías de fabricación de memoria varían en precio y tiempo de acceso: Tiempo de Acceso: SRAM: 5-25 nseg DRAM: 60-120 nseg Disco magnético: 10-20 millones nseg. Precios: SRAM: $100-$250 por Mbyte DRAM: $5-$10 por Mbyte Disco magnético: $0,10-$0,20 Darle la máxima capacidad con la tecnología mas barata al mismo tiempo que se le proporciona acceso a la velocidad mas rápida

Localidad Es el principio que hace que la jerarquía de memoria sea una buena idea Si un dato es referenciado: Localidad temporal: volverá a ser referenciado pronto Localidad espacial: datos cercanos al actual serán inmediatamente referenciados La localidad es una característica de los programas y de sus datos! El código.....suele tener mucha localidad espacial y/o temporal. Los datos que referencia dicho código.....depende del programa

Jerarquía de Memoria La jerarquía de memoria puede estar compuesta por varios niveles: Las transferencias de información se dan entre niveles adyacentes La unidad mínima de información que se transfiere entre dos niveles (el inferior y el superior) se llama bloque. Hit (Acierto): el dato buscado está en el nivel superior Miss (Fallo): el dato buscado NO está en el nivel superior.

Jerarquía de Memoria Memoria caché Memoria virtual Processor Control Secondary Storage (Disk) Second Level Cache (SRAM) Main Memory (DRAM) Datapath On-Chip Cache Registers Speed (ns): 1 10s 100s 10,000,000s (10s ms) Size (bytes): 100s Ks Ms Gs Memoria caché Memoria virtual

Memorias Cachés Ideado por Wilkes, 1960. Las llamó memorias esclavas. Actualmente se implementan con SRAM. Principio de operación: La CPU pide un dato El dato se busca en la caché Si no está (Miss) El dato se trae a la memoria caché y se entrega a la CPU Si está (Hit) El dato se entrega a la CPU Dos preguntas: ¿Como se sabe si el dato está o no en la caché? Y si está, ¿como se localiza?

Caché de Mapeo Directo ¿Donde se ubica un dato? En una posición única de la caché. ¿Como se asigna esa posición única? En relación con la dirección del dato en memoria. Supongamos que el dato constituye un bloque Dirección del bloque en caché = (dirección del bloque en memoria) módulo (número de bloques de la caché) Si el número de bloques en caché es una potencia de 2, la operación módulo es simplemente quedarse con los log2 bits de menor peso de la dirección.

Caché de Mapeo Directo

Caché de Mapeo Directo Si cada bloque de la caché puede contener los datos de unas cuantas direcciones de memoria ¿Como se sabe si los datos que están en la caché son los deseados? Es decir, ¿como se sabe si hay hit o miss? Añadiendo a la caché un conjunto de etiquetas (tags) que contienen la información necesaria para identificar a un dato en la caché: tag = (dirección del bloque en memoria) div (número de bloques de la caché) El tag está formado por los bits altos de la dirección del dato en memoria que NO se usan para indexar a la memoria caché.

Caché de Mapeo Directo Caché de 1024 palabras (de 32 bits) Se direcciona con los bits A2..A11. El tag está compuesto por los bits A12..A31 Los bits A0 y A1 sólo interesan para seleccionar el byte dentro de la palabra (bloque). Un bit de validez se agrega para saber si la entrada es válida

Caché de Mapeo Directo La caché almacena tanto datos como tags. Calcular el tamaño de una caché de mapeo directo sabiendo que: Las direcciones son de 32 bits Los bloques son de 4 bytes La caché tiene 2n bloques Tag= 32 – (n+2) bits Numero Total de Bits= 2n * (tamaño del bloque +tamaño tag+tamaño validez) Numero Total de Bits= 2n* (32+(32-n-2) +1= 2n * (63-n)

Caché de Mapeo Directo ¿Cuantos bits se necesitan para realizar una caché de mapeo directo con 64KB de datos y bloques de una palabra, suponiendo direcciones de 32 bits? Las direcciones son de 32 bits Los bloques son de 4 bytes La caché tiene 214 bloques (64 KB son 16KW) Numero Total de Bits= 214* (32+(32-14-2) +1= 214 * 49=784Kbits 784Kbits=98KB Respuesta: Para implementar una caché de 64KB se necesita almacenar 98KB1,5 veces mas que los datos

Memoria Caché en nuestra máquina Para implementar caché reemplazamos las memorias del camino de datos por cachés de datos y de instrucciones Un acierto....es fácil de implementar por el control. Un fallo: Parar la CPU: congelar los valores de los registros Un control separado realiza el acceso a memoria Una vez que los datos están presentes, se reanuda la CPU en el ciclo en que se había bloqueado

Memoria Caché en nuestra máquina Supongamos un fallo de instrucción Los contenidos de IR no son válidos La dirección que provocó el fallo es PC-4 (se puede calcular usando una UF y guardándolo en los registros de segmentación) Se accede a la memoria principal La CPU espera que el acceso esté finalizado, y Escribe el dato en la caché: Se indexa con los bits bajos (menos los 2 de menos peso) lo que viene de la memoria externa, se escribe en la parte de datos Lo que sale de la ALU (los bits más altos) en el tag Poner a válida la entrada Reiniciar la ejecución de la instrucción en el primer paso (Fetch)

Un ejemplo: La caché de DECStation 3100 16 1 4 B y t e o f s V a l i d T g D I n x 2 H 214-1 32 Utiliza el MIPS R2000 Caché de 64KB Memorias cachés separadas de instrucciones y datos

Un ejemplo: La caché de DECStation 3100 Lecturas: (a cualquier caché) Enviar dirección (PC o ALU) Si es hit dato presente en las líneas de datos Si es miss enviar dirección a memoria principal, esperar los datos y escribirlos en caché Escrituras: (a cualquier caché) Enviar dirección Si es hit escribir los datos en caché y en memoria principal (porque sino, quedan incoherentes): escritura a través (write through) Si es miss¿para que leer de memoria principal? Escribir los datos y también el tag en caché, escribir en memoria principal.

Un ejemplo: La caché de DECStation 3100 Problemas con la política de escrituras: Se tarda mucho tiempo escribiendo en memoria principal solución: usar buffers de escritura Una vez que se escribió en caché y en los buffers, la ejecución puede reanudar. Cuando la escritura en memoria finaliza, se libera el buffer: el DECStation tiene un buffer de 4 palabras Alternativa a la política write through para lecturas Sólo se escribe en memoria principal cuando hay reemplazo de bloque....(hablamos de reemplazos?) Reemplazo de Bloque: Cuando hay un miss, y se trae el nuevo bloque, y la posición donde este debe ser ubicado está ocupada, se debe desalojar la línea vieja.

Caché de Mapeo Directo Aprovechar la localidad espacial: Aumentando el tamaño del bloque, en caso de fallo se trae no sólo la palabra que produjo el fallo, sino también las subsiguientes. A d r e s ( h o w i n g b t p ) 1 6 2 B y f V T a D H 3 4 K 8 M u x l c k I 5

Caché de Mapeo Directo Aprovechar la localidad espacial: Aumentando el tamaño del bloque, en caso de fallo se trae no sólo la palabra que produjo el fallo, sino también las subsiguientes. Que cambia? En el caso de write miss, hay que leer la línea de memoria principal: escribir los datos y el tag Luego, realizar la escritura del dato que provocó el miss Escribir también memoria principal (o en los buffers)

Rendimiento Aumentar el tamaño del bloque hace descender la tasa de fallos Si los bloques son muy grandes en relación al tamaño total de la caché, entonces habrá mucha competencia por el lugar muchos desalojos antes de poder referenciar las palabras de los bloques. Miss Rate (tasa de misses)= Número de Misses/Total de Accesos

Rendimiento Hay más localidad espacial en el código: es más sensible al aumento del tamaño del bloque. Podría ser mejor usar cachés separadas y darles a cada una el tamaño de bloque idóneo.

Rendimiento Modelo Simplificado: tiempo ejecución = (ciclos ejecución + ciclos bloqueo) ´ tiempo ciclo ciclos bloqueo = # de instrucciones M ´ tasa de miss ´ penalización del miss ciclos bloqueo = # de instrucciones´ tasa de miss/Instrucciones ´ penalización del miss

Rendimiento ciclos bloqueo debidos a instrucciones= I*2%*40=0.80*I Ejemplo: Determinar cuanto más rápida sería una máquina con una caché ideal respecto a esta: Para gcc se asume: Tasa de fallos de instrucciones del 2% Tasa de fallos de datos del 4% CPI =2 sin bloqueos de memoria Penalización por fallo=40 ciclos Frecuencia de instrucciones del gcc: 36% de lecturas/escrituras ciclos bloqueo debidos a instrucciones= I*2%*40=0.80*I ciclos bloqueo debidos a datos= I*36%*4%*40=0.56*I ciclos bloqueo totales= 1.36*I CPI con bloqueos= 2+1.36=3.36

Rendimiento Ejemplo: Supongamos que se incrementa el rendimiento de la máquina del ejemplo anterior doblando la frecuencia de reloj, sin embargo la velocidad de la memoria principal no cambia (muy posible). Es decir, no cambia el tiempo absoluto de tratar un fallo. ¿cuánto más rápida es esta máquina que la anterior, con el mismo porcentaje de fallos? Nueva penalización por fallos=80 ciclos (el doble de ciclos) ciclos bloqueo totales= I*2%*80 + I*36%*4%*80 =2,75*I CPI con bloqueos= 2+2,75=4,75

Rendimiento Las penalizaciones relativas a la caché se incrementan cuando la máquina es más rápida. Cuanto mas bajo es el CPI, más pronunciado será el efecto del bloqueo El sistema de memoria no mejora tan rápidamente como el tiempo de ciclo del procesador una CPU con un reloj más rápido tendrá una penalización por fallo más larga.

Rendimiento Dos formas de mejorar el rendimiento: Reduciendo la tasa de misses Reduciendo la penalidad por misses Una manera de reducir la tasa de misses es aumentando el tamaño del bloque Sin embargo, esto puede aumentar la penalidad por misses: es el tiempo requerido para ir a buscar un bloque en el siguiente nivel y cargarlo en la caché. Este tiempo tiene dos componentes: Latencia de la primera palabra Tiempo de transferencia del resto del bloque: este se incrementa a medida que crece el tamaño del bloque Algunas soluciones para este problema: Diseño de un sistema de memoria que permita transferir grandes bloques de manera mas eficiente Ocultar el tiempo de transferencia reanudando la ejecución tan pronto como sea posible (cuando ya esté la palabra pedida) sin esperar que todo el bloque haya sido transferido.

Otras formas de reducir los fallos de caché Cambiando la manera en que se mapea un bloque en la memoria caché. Por ejemplo: Que un bloque pueda ir a cualquier posición de la caché: mapeo totalmente asociativo Reduce los misses por conflicto: aquellos bloques que ya estaban pero fueron desalojados porque otro bloque lo reemplazó. Implementación: Para buscar un bloque se debe recorrer TODA la cachéun comparador por cada entrada, para hacer todas las comparaciones en paralelo. Inconveniente: incremento del costo en hardware. Solución: cachés con pocos bloques

O bien: buscar un término medio: asociativas por conjuntos Compared to direct mapped, give a series of references that: results in a lower miss ratio using a 2-way set associative cache results in a higher miss ratio using a 2-way set associative cache assuming we use the “least recently used” replacement strategy O n e - w a y s e t a s s o c i a t i v e ( d i r e c t m a p p e d ) T a g D t E i h - w y s e o c v ( f u l ) F r S 1 B l o c k T w o - w a y s e t a s s o c i a t i v e 1 S e t T a g D a t a T a g D a t a 2 3 4 1 5 2 6 3 7

Asociativa por conjuntos Dentro de cada conjunto (set), la asignación de entradas es totalmente asociativa. Los conjuntos son de n-vias: es decir, el bloque se asigna en cualquiera de las n vías del conjunto La asignación de un bloque a un conjunto es por mapeo directo.

Implementación

Asociatividad en Cachés Ejemplo: Se tienen 3 cachés pequeñas, cada una consistente en cuatro bloques de una palabra. Una es totalmente asociativa, la segunda es asociativa de 2 vías por conjunto, y la tercera es de mapeo directo. Encontrar el número de fallos para cada organización de la caché para la siguiente secuencia de direcciones de bloque: 0,8,0,6,8. Mapeo Directo: Dirección Dirección de Bloque en Caché 0 0 módulo 4=0 8 8 módulo 4=0 6 6 módulo 4=2 Fallos: los cinco son fallos.

Asociatividad en Cachés Totalmente Asociativa: Hay cuatro bloques, y cualquier bloque de memoria puede estar en cualquier bloque. 0 fallo,8 fallo,0 acierto,6 fallo,8 acierto Asociativa por dos conjuntos de 2 vías: Dirección Dirección de Bloque en Caché 0 0 módulo 2=0 8 8 módulo 2=0 6 6 módulo 2=0 0 fallo, 8 fallo, 0 acierto, 6 fallo (desplaza al 8), 8 fallo

Rendimiento La asociatividad aumenta el rendimiento, es decir, disminuye la tasa de fallos, pero aumenta el tiempo del acierto (circuitería). El mayor beneficio se obtiene al pasar de una de mapeo directo a una asociativa de 2 vías.

Algoritmos de reemplazo ¿Que bloque tiene que ser reemplazado? Es una pregunta para las cachés asociativas. En las totalmente asociativas, cualquier bloque es el candidato, en las asocaitivas de n-vías alguno de los n. Algoritmos: Aleatorio LRU (least recently used): es costoso para mas de 4 vías se usa un aproximado. El algoritmo de reemplazo para cachés se realiza mediante hardware, por eso debe ser sencillo

Una alternativa para disminuir la penalización por fallo Cachés Multinivel: agregar un segundo nivel de caché La caché primaria (nivel 1) está en el mismo chip que el procesador. Se implementa con memoria SRAM otro nivel de memoria entre la principal y el nivel 1. Si no está en L1, es probable que esté en L2, y el tiempo de acceso a L2 es menor que el tiempo de acceso a memoria principal.

Cachés Multinivel Ejemplo: Sea una CPU con un reloj de 500 Mhz, un CPI de 1.0, una tasa de fallos del 5% y 200ns de acceso a DRAM. Le agregamos una caché de nivel 2 con 20ns de tiempo de acceso y una tasa de fallos a memoria principal del 2% Cuanto mas rápida es la máquina con los dos niveles de caché? CON UN NIVEL DE CACHÉ Penalización por fallos a MP, en ciclos: 200 nseg/(2nseg/ciclo)=100 ciclos CPI con bloqueos por memoria= 1 + 5%*100=6 CON DOS NIVELES DE CACHÉ Penalización por fallos a L2, en ciclos: 20 nseg/(2nseg/ciclo)=10 ciclos Penalización por fallos a MP en ciclos: 10 ciclos + 100 ciclos=110 ciclos CPI con bloqueos por memoria= 1 + bloqueos del nivel 1 + bloqueos del nivel 2 CPI total= 1 + 0,05 (10 ciclos * 0,98 + 110 ciclos*0,02)=1,6

Organización del Computador I Verano Rendimiento (2 de 3) Basado en el capítulo 2 del libro de Patterson y Hennessy Verano 2004 Profesora Borensztejn

FIN Jerarquía de Memoria