Clase Práctica - caché

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

Clase Práctica Memoria Caché

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

ESTRUCTURA DE COMPUTADORES PROBLEMAS DEL TEMA 1

ARQUITECTURA DE COMPUTADORES. 2º INGENIERÍA INFORMÁTICA. Problemas de Gestión de Memoria.

Ejercicios de Arquitectura de Computadoras

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

Respuestas al Problemario Memoria Cache

Ejercicios Jerarquía de Memoria

MEMORIA EJERCICIO 1 EJERCICIO 2

Tutorías con Grupos Reducidos (TGR) Parte 5: Memoria Virtual

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.

Trabajo Práctico Número 6 Arquitectura de Computadoras

Bus de direcciones. Bus de datos

Clase Práctica Memoria Caché

Ejercicios del tema 5. Jerarquía de de Memoria

Arquitectura de Computadoras para Ingeniería

Organización lógica Identificación de bloque

Memoria Virtual. Ing. Jorge Castro-Godínez

Arquitectura de Computadores. Apellidos, Nombre:

Memoria Virtual. Memoria Virtual

Organización de Computadoras

Soluciones a los problemas impares. Tema 5. Memorias. Estructura de Computadores. I. T. Informática de Gestión / Sistemas

Taller de Caché. Organización del Computador 1. Verano 2016

Ingeniería de Computadores I Primera Actividad Calificable

FUNDAMENTOS DE COMPUTADORES 18 de junio de Examen parcial del 2º cuatrimestre.

Ejercicios del Tema 3. Fundamentos de la programación en ensamblador

Administración de memoria

Trabajo Práctico Número 6

Memoria Cache. Departamento de Arquitectura de Computadores

SOLUCIONES. DURACIÓN: Dispone de 120 minutos para realizar el examen.

Sistemas de Representación. Organización del Computador 1 Verano 2016

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

Memoria. Organización de memorias estáticas.

MEMORIA CACHÉ PRINCIPIOS BASICOS

Resolución de los Ejercicios de la Hoja 4

Estructura de Computadores. 1. Ejercicios Resueltos 1.1.

Jerarquía de memoria - Motivación

Arquitectura de Computadores II Clase #7

Tema 6 (II) Jerarquía de Memoria

Memoria virtual Ubicación de bloque en paginación

EJERCICIOS DE FICHEROS:

Práctica 4 - Arquitectura CPU

Universidad Central de Venezuela. Facultad de Ciencias. Escuela de Computación. Proyecto #1 (Simulación de caché)

Organización del Computador 1 Memoria Cache

Ejercicios de jerarquía de memoria

Organización del Computador. Memorias

Tema 5: Memorias. Espacio reservado para notas del alumno

ESTRUCTURAS DE CONTROL

Arquitectura de Computadores II Clase #7

Estructuras Repetitivas

COBHTTPD-CGILIB. Librería para creación de Paginas web Dinámicas con COBOL. Manual de Templates. COBHTTPD Manual de Templates

Arquitectura del CPU. Organización del Computador 1 Verano 2016

MOMENTO I. BLOQUE 1. Opera las funciones básicas del sistema operativo y garantiza la seguridad de la información

Definición de Memoria

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

El Diseño de un Lenguaje Máquina

16bits: Tamaño total: 2 16 Tamaño página: 2 13 nº de páginas: 2 16 / 2 13 = 2 3 = 8 páginas Tamaño de tabla: 2 3 *2B = 16B por tabla

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

como les va con las practicas?

Práctica 4. Organización del Computador 1 12 de septiembre de Algunas consideraciones preliminares:

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

Tema: MAPAS DE MEMORIA: LÓGICA DE SELECCIÓN, GESTIÓN Y ORDENACIÓN DE LA MEMORIA. J. Luis Lázaro, J. Jesús García "MAPA DE MEMORIA" 0

Práctica 7 Dispositivos de Entrada/Salida

Sistemas Operativos. IES Pedro Espinosa. Relación de ejercicios Tema 1: Conceptos básicos de informática

Memoria Virtual. Departamento de Arquitectura de Computadores

Entrada y Salida! EC-2721 Arquitectura del Computador I! Entradas/Salidas: Problemas. Entradas salidas: Criterios. Amplia variedad de periféricos!

Memoria compartida distribuida

GESTION DE LA MEMORIA

El nivel ISA (II)! Conjunto de Instrucciones

Taller de Sistemas Operativos. Direccionamiento de Memoria 2012

Clases e instancias. Algoritmos y Estructuras de Datos I. Clases e instancias. memoria dinámica.

ESTIMACIÓN DE TIEMPO Y COSTO DE PRODUCTOS SOFTWARE

PRINCIPIOS GENERALES DE JERARQUÍA DE MEMORIA

Subsistemas de memoria. Departamento de Arquitectura de Computadores

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

Aritmética de Enteros

Tarea 4.2 Memoria Virtual

Conceptos de Arquitectura de Computadoras Curso 2015

Ingreso de Facturas Electrónicas

Anexo. Control de errores

Pontificia Universidad Católica de Chile Escuela de Ingeniería Departamento de Ciencia de la Computación. 2. Multiprogramación

Tema V Generación de Código

Cómo configurar formatos Wiegand personalizados

1) Se dispone de un computador de 32 bits con la siguiente estructura:

Organización del Computador I. Introducción

Arquitectura de Computadores II Clase #3

TEMA 11: MEJORA DE LAS PRESTACIONES DE LAS CACHE.

Instrucciones de procesamiento de datos

SISTEMAS OPERATIVOS Arquitectura de computadores

Simulación de sistemas de memoria con Xcache32

ESTRUCTURA DE COMPUTADORES I (Capítulo 16:El Teclado) 1/5 16-EL TECLADO

Organización del Computador I Verano. Memoria Virtual Basado en el capítulo 5 del libro de Patterson y Hennessy

Sin embargo, la realidad es otra: Las memorias grandes son lentas Las memorias rápidas son pequeñas (y caras)

Fundamentos de Sistemas Operativos Licenciatura en Administración de Tecnologías de Información y Comunicaciones

INFORMATICA I EJERCICIOS PROPUESTOS Buscar en el diccionario Qué es INFORMÁTICA?, Qué es

APENDICE A Microcontrolador de 8 bits MC68HC11F1

Introducción Composición Caracteristicas Jerarquía Tipos Memoria Diseño. Cache. Memorias

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

Campo Magnético en un alambre recto.

Transcripción:

Clase Práctica - caché Organización del Computador 1 Mariano Moscato - Verano 010 Ejercicio 1 1 Una computadora utiliza una caché de correspondencia directa de 3 líneas de 16 palabras cada una. La memoria principal mide 0 palabras y es direccionable a palabra. a) cuántas líneas posee la memoria principal? a cuántos bloques corresponde? La memoria posee 0 palabras. Cada línea de caché es de 16 ( 4 ) palabras, entonces la memoria tiene 0 = 16 líneas. 4 Por otro lado, la caché tiene 3 líneas por lo que la memoria estará dividida en bloques de 3 líneas. Si tenemos 16 líneas de memoria y bloques de 3 ( 5 ) líneas, tendremos 16 = 11 5 bloques de memoria. b) Mostrar el formato de una dirección de memoria vista desde la caché (tag, line, index). Cuáles de estos campos deben guardarse en la caché? Como la línea es de 16 palabras y se utiliza direccionamiento a palabra, el campo index tendrá 4 bits. Teniendo en cuenta que la caché tiene 3 líneas, el campo line tendrá 5 bits. Además sabemos que la memoria está dividida en 11 bloques, por lo que el campo tag tendrá 11 bits. Sólo debemos guardar el tag. tag line index 11 bits 5 bits 4 bits A modo de verificación notemos que la suma de los tamaños de los tres campos da veinte, que es justamente la cantidad de bits necesaria para asignar direcciones a este tipo de memoria (de 0 palabras con direccionamiento a palabra). c) En qué lugar de la caché se guarda la palabra que se encuentra en la dirección de memoria 0x0DB63? Mostrar cómo queda la caché al leer dicha dirección. Primero, analicemos la dirección 0x0DB63; que en binario sería 0000 1101 1011 0110 0011. Escribamos cómo ve esta dirección la caché: 1 Ejercicio 1 del capítulo 6, L. Null & J. Lobur, Essentials of Computer Organization and Architecture 1

tag line index 0000 1101 101 1 0110 0011 0x6D 0x16 0x3 Entonces, luego del pedido, la línea 0x16 de la caché corresponderá al bloque 0x6D. En el índice 3 de esa línea estará la palabra cuya dirección en memoria principal es 0x0DB63. Ejercicio Una computadora utiliza una caché asociativa de 64 líneas de 3 palabras. La memoria principal cuenta con 16 palabras y es direccionable a palabra. a) cuántas líneas posee la memoria principal? Cada línea tiene 3 palabras de largo. Entonces la cantidad de líneas de la memoria será 16 5 = 11 b) Mostrar el formato de una dirección de memoria vista desde la caché (tag, index). Cuáles de estos campos deben guardarse en la caché? La línea tiene 3 palabras; luego, alcanzan con cinco bits para el índice. En el punto anterior vimos que hay 11 líneas en memoria principal; entonces, bastan con once bits para el tag. tag index 11 bits 5 bits Ejercicio 3 del capítulo 6, L. Null & J. Lobur, Essentials of Computer Organization and Architecture

c) En qué lugar de la caché se guarda la palabra que se encuentra en la dirección de memoria 0xF8C9? Mostrar cómo queda la caché al leer dicha dirección. Como antes, comencemos por analizar la dirección 0xF8C9; en binario se escribe como 1111 1000 1100 1001. Utilizando el punto anterior sabemos que para esta dirección el tag es 0x7C6 y que el index es 9. Entonces, luego de procesar el pedido de la palabra cuya dirección es 0xF8C9, la primer línea libre (o marcada como no válida) de la caché correspondería a la línea de memoria principal 0x7C6; donde la palabra pedida ocupa el lugar indicado por el índice 9. La siguiente figura muestra un ejemplo en el cual se asume que la caché estaba vacía antes de procesar el pedido. Ejercicio 3 3 Se tiene una computadora con 7 palabras de memoria principal. La caché tiene una capacidad total de 15 líneas de 64 palabras cada una. a) Mostrar el formato de una dirección de memoria para una caché asociativa por conjuntos de vias. La memoria tiene 7 palabras. Como cada línea tiene 64 palabras, la memoria tiene 7 = 1 líneas. La caché tiene 6 vias de 14 líneas cada una, entonces la memoria principal se encuentra dividida en 1 = 7 14 bloques. tag line index 7 bits 14 bits 6 bits b) Cómo queda cargada la caché al leer primero la posición de memoria 0x01178FC y luego 0x03178FC? 3 Ejercicio 5 del capítulo 6, L. Null & J. Lobur, Essentials of Computer Organization and Architecture 3

La primer dirección de memoria (000 0001 0001 0111 1000 1111 1100 en binario) será interpretada por la caché como 0x01 (tag), 0x05E3 (conjunto), 0x3C (índice). Si en ese conjunto las dos vías estuvieran libres, la memoria caché podría quedar como se muestra en la siguiente figura. (Recordar que se carga toda la línea.) La segunda dirección de memoria (000 0011 0001 0111 1000 1111 1100 en binario) será interpretada por la caché como 0x03 (tag), 0x05E3 (conjunto), 0x3C (índice). Siguendo con el ejemplo de la figura anterior, la caché cambiaría como se muestra a continuación. (Recordar que se carga toda la línea.) 4

Ejercicio 4 Una computadora trabaja con palabras e instrucciones (de tamaño fijo) de 64 bits, direcciones y registros de 3 bits y direccionamiento a palabra. Sea el programa mostrado a la derecha, que calcula el producto escalar de dos vectores (el tamaño de los vectores se indica en R4). Sabiendo que la etiqueta ciclo se encuentra cargada en la posición de memoria 0x0000 00F0, que las etiquetas de los vectores (v1 y v) se encuentran en la posición 0xF000 00F0 y 0xFFFF 00F0, y suponiendo que dicha computadora cuenta con una memoria caché de 16 KB para almacenar datos, analizar la tasa de aciertos para una caché de correspondencia directa con líneas de 8 palabras. ciclo: MOV R0,0 MOV R1,v1 MOV R,v MOV R3,0 ADD R3,[R1] MUL R3,[R] ADD R0,R3 MOV R3,0 INC R1 INC R DEC R4 JNZ ciclo Primero veamos cómo son los campos de acuerdo al tipo de caché con el que estamos trabajando. Como es una caché de correspondencia directa, cada dirección de memoria será interpretada utilizando los campos: tag, línea e índice. Como hay 3 palabras en cada línea y el procesador usa una dirección por palabra, alcanzarán 3 bits para el índice. Dado que la caché mide 16 KB, y cada palabra 8 bytes (64 bits), caben en ella 11 palabras. Como cada línea agrupa 3 palabras, en la caché caben 8 líneas. Luego, alcanzan con 8 bits para el campo línea. Entonces, como sabemos que las direcciones miden 3 bits, el campo tag deberá medir 3 8 3 = 1 bits. Veamos ahora los pedidos a memoria que vamos a tener a medida que ejecutemos el programa. Comencemos por las instrucciones anteriores al ciclo. pedido vista caché resultado 1 0000 00EC instrucción MOV R0,0 000000 1D 4 M 0000 00ED instrucción MOV R1,v1 000000 1D 5 H 3 0000 00EE instrucción MOV R,v 000000 1D 6 H 4 0000 00EF instrucción MOV R3,0 000000 1D 7 H Hasta aquí tenemos cuatro pedidos, de los cuales el primero es un miss, pero provoca que se cargue la línea correspondiente a los siguientes tres, que resultarán en sendos hits. La primera iteración del ciclo provoca los siguientes pedidos. pedido vista caché resultado 5 0000 00F0 instrucción ADD R3,[R1] 000000 1E 0 M 6 F000 00F0 dato 1E0000 1E 0 M 7 0000 00F1 instrucción MUL R3,[R] 000000 1E 1 M 8 FFFF 00F0 dato 1FFFE0 1E 0 M 9 0000 00F instrucción ADD R0,R3 000000 1E M 10 0000 00F3 instrucción MOV R3,0 000000 1E 3 H 11 0000 00F4 instrucción INC R1 000000 1E 4 H 1 0000 00F5 instrucción INC R 000000 1E 5 H 13 0000 00F6 instrucción DEC R4 000000 1E 6 H 14 0000 00F7 instrucción JNZ ciclo 000000 1E 7 H Si bien las ocho instrucciones del ciclo ocupan exactamente la línea de tag cero y número de línea 1E, el pedido de datos de las dos primeras instrucciones provocan que se desaloje (y se vuelva a alojar) dicha línea en dos oportunidades sucesivas. Por lo tanto, tenemos diez pedidos más, los que se reparten equitativamente entre hits y misses. La segunda iteración provocará estos pedidos: 5

pedido vista caché resultado 15 0000 00F0 instrucción ADD R3,[R1] 000000 1E 0 H 16 F000 00F1 dato 1E0000 1E 1 M 17 0000 00F1 instrucción MUL R3,[R] 000000 1E 1 M 18 FFFF 00F1 dato 1FFFE0 1E 1 M 19 0000 00F instrucción ADD R0,R3 000000 1E M 0 0000 00F3 instrucción MOV R3,0 000000 1E 3 H 1 0000 00F4 instrucción INC R1 000000 1E 4 H 0000 00F5 instrucción INC R 000000 1E 5 H 3 0000 00F6 instrucción DEC R4 000000 1E 6 H 4 0000 00F7 instrucción JNZ ciclo 000000 1E 7 H Esta configuración es casi idéntica a la anterior, la única diferencia es que el primer pedido no provoca un miss como antes debido a que la línea ya se encontraba en la caché (por el último pedido de la iteración anterior). Sin embargo, vuelve a repetirse el desalojo sucesivo de la línea 1E. Es fácil ver que esto ocurre porque los pedidos de datos corresponden a líneas con el mismo número de línea (1E) que las direcciones de las instrucciones. Dado que los datos pedidos se ubican en el primer índice de la línea y se van pidiendo secuencialmente, esta misma configuración se repetirá en las siguientes seis iteraciones del ciclo. La novena iteración provocará los siguientes pedidos. pedido vista caché resultado 95 0000 00F0 instrucción ADD R3,[R1] 000000 1E 0 H 96 F000 00F8 dato 1E0000 1F 0 M 97 0000 00F1 instrucción MUL R3,[R] 000000 1E 1 H 98 FFFF 00F8 dato 1FFFE0 1F 0 M 99 0000 00F instrucción ADD R0,R3 000000 1E H 100 0000 00F3 instrucción MOV R3,0 000000 1E 3 H 101 0000 00F4 instrucción INC R1 000000 1E 4 H 10 0000 00F5 instrucción INC R 000000 1E 5 H 103 0000 00F6 instrucción DEC R4 000000 1E 6 H 104 0000 00F7 instrucción JNZ ciclo 000000 1E 7 H A partir de esta iteración ya no tenemos el desalojo de la línea 1E, mencionado más arriba, y logramos aumentar la cantidad de hits a ocho de los diez pedidos que el ciclo realiza. Entonces: Si R4 = 1, la tasa de aciertos es de 8 14 ; Si 1 < R4 8, la tasa de aciertos es de 3+5+6(R4 1) 4+10(R4) ; Si 8 < R4 03, la tasa de aciertos es de 3+5+6 7+8(R4 8) 4+10(R4) ; Preguntas finales: a) Qué pasa si R4 es mayor a 03? b) Cómo cambiaría el resultado del ejercicio si se utilizara una caché asociativa por conjuntos de vías con líneas de 8 palabras y algoritmo de reemplazo LRU? 6