Estructura de Computadores

Documentos relacionados
Tema 5 (III) Jerarquía de Memoria

Ejercicios Jerarquía de Memoria

Ejercicios del tema 5. Jerarquía de de Memoria

Memoria virtual Ejercicios resueltos

Tema 6 (II) Jerarquía de Memoria

Jerarquía de memoria y memoria caché Ejercicios resueltos

Tema 5 Jerarquía de Memoria

Introducción a la Computación. Capitulo 4 Memoria Cache

Microprocesadores para comunicaciones. Escuela Técnica Superior de Ingenieros de Telecomunicación. Organización y estructura de las memorias caché

UNIVERSIDAD CARLOS III DE MADRID DEPARTAMENTO DE INFORMÁTICA GRADO EN INGENIERÍA INFORMÁTICA. ESTRUCTURA DE COMPUTADORES

Problemas de estructura y tecnología de computadores Hoja 6: Temas 12, 13 y 14

Arquitectura de Computadoras

Ejercicio 1. Considere el siguiente fragmento en ensamblador:

GESTION DE LA MEMORIA

Sistemas Operativos. Trabajo Práctico N ō 6

Arquitectura de Computadores

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

Tema II. Unidad de memoria

Ejercicios sobre gestión de memoria

Arquitectura de Computadores Problemas (hoja 4). Curso

TEMA II: ALMACENAMIENTO DE LA INFORMACIÓN

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

Contenidos. Arquitectura de ordenadores (fundamentos teóricos) Elementos de un ordenador. Periféricos

Trabajo Práctico Número 6

Subsistemas de memoria. Departamento de Arquitectura de Computadores

Organización lógica Identificación de bloque

Ejercicios de jerarquía de memoria

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

QUÉ ES LA MEMORIA CACHÉ?

Universidad Euskal Herriko del País Vasco Unibertsitatea Arquitectura de Computadores I Sistema de memoria 1

Memoria Cache. Departamento de Arquitectura de Computadores

Memoria. Organización de memorias estáticas.

MEMORIAS. Arquitectura de Computadoras. (Conceptos Introductorios) M. C. Felipe Santiago Espinosa

Arquitectura de Computadores I. Sistema de memoria 3 (Solución): Segmentación + Bancos

Memoria Virtual. Ing. Jorge Castro-Godínez

Sistema de memoria. Introducción

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

La solución es colocar un memoria más pequeña y rápida entre la CPU y la memoria principal.

Práctica 5 - Memoria Cache

SISTEMAS OPERATIVOS Arquitectura de computadores

Memoria caché básica

Memoria Virtual. Departamento de Arquitectura de Computadores

Tema 5: Memorias. Espacio reservado para notas del alumno

Memoria Virtual. 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.

Estructura básica de un ordenador

Ejercicios de Arquitectura de Computadoras

Trabajo Práctico Número 6 Arquitectura de Computadoras

Arquitectura de Computadores. Apellidos, Nombre:

Memoria Caché. Organización de Computadoras Universidad Nacional de Quilmes

UNIVERSIDAD CARLOS III DE MADRID DEPARTAMENTO DE INFORMÁTICA GRADO EN INGENIERÍA INFORMÁTICA. ESTRUCTURA DE COMPUTADORES

Tema 5. El Sistema de Memoria

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

Bibliografía básica de referencia: Fundamentos de Informática para Ingeniería Industrial, Fernando Díaz del Río et al.

Introducción a memorias cache

Arquitectura de Computadores II Clase #7

Arquitectura de Computadores II Clase #7

Ejercicios del tema 4. El procesador

Sistemas operativos: una visión aplicada. Capítulo 1 Conceptos arquitectónicos

Memoria virtual Ubicación de bloque en paginación

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

Tema 0. Introducción a los computadores

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

1. Partes del ordenador. Nuevas Tecnologías y Sociedad de la Información

Ejercicios del tema 4. El procesador

Enunciados de problemas. Tema 5. Memorias. Estructura de Computadores. I. T. Informática de Gestión / Sistemas

INFORME MEMORIA CACHE Y MEMORIA VIRTUAL.

4. Cuánta memoria puede direccionar con registros de 16 bits si la palabra es de 20 bits? Respuesta: Se puede direccionar 2 20 = 1Mb.

Mapa de memoria. memoria CACHÉ

Arquitectura de Computadores II Clase #7

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

Basado en S.O. de William Stallings / 5ed. y S.O. de Jesús Carretero (y otros). Universidad Simón Bolívar

Tema 13. Memoria cache

Organización del Computador 1 Memoria Cache

Concepto de memoria virtual

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

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

Sistemas Informáticos

Clase Práctica Memoria Caché

Capítulo 1 Conceptos arquitectónicos

MEMORIA EJERCICIO 1 EJERCICIO 2

Introducción. Universidad de Sonora Arquitectura de Computadoras 2

Transcripción:

Estructura de Computadores Tema 5 Jerarquía de memoria Departamento de Informática Grupo de Arquitectura de Computadores, Comunicaciones y Sistemas UNIVERSIDAD CARLOS III DE MADRID

Contenido Tipos de memoria Jerarquía de memoria Memoria caché Memoria virtual ARCOS Estructura de Computadores 2

Una visión general (hasta ahora) 3 Procesador Memoria Principal Prog y datos en ejecución Bus Valores frecuentes e instrucción actual Módulo E/S Periférico Módulo E/S Periférico Módulo E/S Disco Prog y datos NO en ejecución ARCOS Estructura de Computadores 3

Una visión general (hasta ahora) 4 Procesador Memoria Principal Prog y datos en ejecución Bus Valores frecuentes e instrucción actual Módulo E/S Periférico Módulo E/S Periférico Módulo E/S Disco Prog y datos NO en ejecución ARCOS Estructura de Computadores 4

Tipos de memoria (hasta el momento) 5 Procesador Banco de registros Almacena pocos datos Tiempo de acceso a un registro: orden de ns Memoria principal Más capacidad (GB) Tiempo de acceso: 5-1 ns 1 acceso a memoria = cientos de ciclos de reloj Disco Capacidad de almacenamiento casi ilimitada Tiempo de acceso lento: orden de milisegundos ARCOS Estructura de Computadores 5

Tipos de memoria 6 Memorias semiconductoras RAM y ROM Memorias de estado sólido Memorias magnéticas Discos y cintas Memorias ópticas CD, DVD, HD-DVD, ARCOS Estructura de Computadores 6

Evolución del rendimiento 7 Procesadores 198-2: Incremento medio del 6% anual Memorias DRAM 198-2: Incremento medio del 7% anual La distancia entre memoria y procesador es mayor cada año ARCOS Estructura de Computadores 7

Número de accesos a memoria? int i; int s = ; for (i=; i < 1; i++) s = s + i; ARCOS Estructura de Computadores 8

Número de accesos a memoria? int i; int s = ; for (i=; i < 1; i++) s = s + i; li $t, // s li $t1, // i li $t2, 1 bucle: bgt $t1, $t2, fin add $t, $t, $t1 addi $t1, $t1, 1 b bucle ARCOS Estructura de Computadores 9

Número de accesos a memoria? int i; int s = ; for (i=; i < 1; i++) s = s + i; li $t, // s li $t1, // i li $t2, 1 bucle: bgt $t1, $t2, fin add $t, $t, $t1 addi $t1, $t1, 1 b bucle Solución: 3 + 4 1 + 1 = 44 ARCOS Estructura de Computadores 1

Número de accesos a memoria? int v[1]; // global int i; for (i=; i < 1; i++) v[i] = ; ARCOS Estructura de Computadores 11

Número de accesos a memoria? int v[1]; // global int i; for (i=; i < 1; i++) v[i] = ; data: v: space 4 text: li $t, // i li $t1, // i de v li $t2, 1 // componentes bucle: bgt $t, $t2, fin sw $, v($t1) addi $t, $t, 1 addi $t1, $t1, 4 b bucle ARCOS Estructura de Computadores 12

Número de accesos a memoria? int v[1]; // global int i; for (i=; i < 1; i++) v[i] = ; data: v: space 4 text: li $t, // i li $t1, // i de v li $t2, 1 // componentes bucle: bgt $t, $t2, fin sw $, v($t1) addi $t, $t, 1 addi $t1, $t1, 4 b bucle Solución: 3 + 5 1 + 1 + 1 = 54 ARCOS Estructura de Computadores 13

Coste ejemplos: 14 Memoria principal Módulo de 2GB: 25 Coste: 1,22 centimos/ MB Disco Disco de 3 GB: 18 Coste:,6 centimos/mb Coste por byte en disco 2 veces mayor que en memoria ARCOS Estructura de Computadores 14

Contenido Tipos de memoria Jerarquía de memoria Memoria caché Memoria virtual ARCOS Estructura de Computadores 15

Jerarquía de memoria 16 Velocidad Coste Capacidad ARCOS Estructura de Computadores 16

Memorias de semiconductores Memoria de solo lectura (ROM) No necesita alimentación Persistente Ejemplo de uso: BIOS Memoria de lectura/escritura (RAM) Necesita alimentación No persistente Más rápida que la ROM Ejemplo de uso: memoria principal ARCOS Estructura de Computadores 17

Tipos de memoria SRAM 18 Almacena un bit como interruptor Circuito más complejo 6 transistores No se descarga No necesita refresco Más rápida y cara que DRAM ARCOS Estructura de Computadores 18

Tipos de memoria DRAM 19 Almacena un bit como carga en un condensador Circuito muy simple: 1 transistor + 1 condensador Más barata Necesita ciclos de refresco para no perder el valor Más lenta que SRAM ARCOS Estructura de Computadores 19

2 Sistema de memoria con dos niveles Ejemplo: memoria caché Intenta solucionar diferencias de velocidad entre procesador y memoria Se construye con tecnología SRAM Integrada en el mismo procesador Más rápida y más cara que la memoria DRAM Mantiene una copia de partes de la memoria principal procesador Memoria caché Memoria principal ARCOS Estructura de Computadores 2

Idea de la jerarquía de memoria 21 Procesador Caché Memoria Principal Disco Registros ARCOS Estructura de Computadores 21

Funcionamiento de la caché procesador Memoria caché Memoria principal palabras bloques ARCOS Estructura de Computadores 22

Funcionamiento de la caché int i; int s = ; for (i=; i < 1; i++) s = s + i; li $t, // s l $t1, // i li $t2, 1 bucle: bgt $t1, $t2, fin add $t, $t, $t1 addi $t1, $t1, 1 b bucle Suposición: Acceso a caché: 2 ns Acceso a MP: 12 ns Bloque de MP: 4 palabras Transferencia de un bloque entre memoria principal y caché: 2 ns ARCOS Estructura de Computadores 23

Funcionamiento de la caché int i; int s = ; for (i=; i < 1; i++) s = s + i; li $t, // s l $t1, // i li $t2, 1 bucle: bgt $t1, $t2, fin add $t, $t, $t1 addi $t1, $t1, 1 b bucle Sin memoria caché: Número de accesos a memoria = 3 + 4 1 + 1 = 44 Tiempo de acceso a memoria = 44 12 = 4848 ns ARCOS Estructura de Computadores 24

Funcionamiento de la caché int i; int s = ; for (i=; i < 1; i++) s = s + i; li $t, // s l $t1, // i li $t2, 1 bucle: bgt $t1, $t2, fin add $t, $t, $t1 addi $t1, $t1, 1 b bucle Con memoria caché: Número de bloques = 2 ARCOS Estructura de Computadores 25

Funcionamiento de la caché int i; int s = ; for (i=; i < 1; i++) s = s + i; li $t, // s l $t1, // i li $t2, 1 bucle: bgt $t1, $t2, fin add $t, $t, $t1 addi $t1, $t1, 1 b bucle Con memoria caché: Número de bloques = 2 Número de fallos = 2 Tiempo para transferir 2 bloques = 2 2 = 4 ns Tiempo de acceso a la caché = 44 2 = 88 ns Tiempo total = 848 ns ARCOS Estructura de Computadores 26

Funcionamiento de la caché int i; int s = ; for (i=; i < 1; i++) s = s + i; li $t, // s l $t1, // i li $t2, 1 bucle: bgt $t1, $t2, fin add $t, $t, $t1 addi $t1, $t1, 1 b bucle Sin memoria caché: 4848 ns Con memoria caché = 848 ns Tasa de aciertos a la caché = 42 / 44 => 99,95 % ARCOS Estructura de Computadores 27

Funcionamiento de la caché int v[1]; // global int i; int s; for (i=; i < 1; i++) s = s + v[i]; Suposición: Acceso a caché: 2 ns Acceso a MP: 12 ns Bloque de MP: 4 palabras data: Transferencia de un bloque entre memoria principal y caché : 2 ns v: space 4 text: li $t, // i li $t1, // i de v li $t2, 1 // componentes li $t3, // s bucle: bgt $t, $t2, fin lw $t4, v($t1) addi $t3, $t3, $t4 addi $t, $t, 1 addi $t1, $t1, 4 b bucle ARCOS Estructura de Computadores 28

Por qué funciona? 29 Tiempo de acceso a caché mucho menor que tiempo de acceso a memoria principal La memoria principal realmente se accede por bloques Cuando un programa accede a un dato, es probable que vuelva a acceder a él en el futuro cercano proximidad temporal Cuando un programa accede a un dato, es probable que en el futuro cercano acceda a posiciones cercanas proximidad espacial Tasa de aciertos: probabilidad de que un dato accedido esté en la caché ARCOS Estructura de Computadores 29

Tiempo de acceso 3 Memoria principal Típicamente tecnología DRAM o similar Tiempo de acceso: 5-1 ns Memoria caché Típicamente tecnología SRAM o similar Tiempo de acceso: 1-1 ns ARCOS Estructura de Computadores 3

31 Tiempo medio de acceso a un sistema de memoria con dos niveles Tm = h Tc + (1-h) Tf Tc: tiempo de acceso a la caché Tf: tiempo en tratar el fallo Incluye el tiempo para traer el bloque a la caché h: tasa de aciertos Aciertos: Se producen h*1% de las veces Solo se necesita el tiempo de acceder a la caché Fallos: Se producen (1-h)*1% de las veces Se necesita el tiempo de traer el bloque a la caché ARCOS Estructura de Computadores 31

Acceso por bloques 32 Se premia el acceso a posiciones consecutivas de memoria Ejemplo 1: acceder a 5 posiciones de memoria individuales (no consecutivas) Ejemplo 2: acceder a 5 posiciones de memoria consecutivas ARCOS Estructura de Computadores 32

Accesos por bloques 33 Si se realizan acceso individuales a memoria, el coste de cada acceso es el mismo CPU Memoria principal ARCOS Estructura de Computadores 33

Acceso por bloques 34 Si se accede a un conjunto consecutivo de posiciones de memoria, los accesos siguientes al primero tienen un coste menor CPU Memoria principal ARCOS Estructura de Computadores 34

Acceso por bloques 35 La memoria principal se accede por bloques La memoria caché se accede por palabras CPU transferencia de palabras cache transferencia de bloques Memoria principal ARCOS Estructura de Computadores 35

Niveles en memorias caché 36 L1 L2 Típicamente dentro del procesador Pequeña (8KB 128KB) Pueden separarse instrucciones de datos Puede ser interna o externa Tamaño mediano (256 KB 4 MB) L3 Típicamente externa ARCOS Estructura de Computadores 36

Ejemplo 37 Computador: Tiempo de acceso a caché: 4 ns Tiempo de acceso a bloque de MP: 12 ns Si se tiene una tasa de aciertos del 9% Cuál es el tiempo medio de acceso? Tasas de acierto necesarias para que el tiempo medio de acceso sea menor de 1 ns y 5 ns ARCOS Estructura de Computadores 37

Contenido Tipos de memoria Jerarquía de memoria Memoria caché Memoria virtual ARCOS Estructura de Computadores 38

Memoria caché 39 Se construye con tecnología SRAM Integrada en el mismo procesador Más rápida y más cara que la memoria DRAM Mantiene una copia de partes de la memoria principal procesador Memoria caché Memoria principal palabras bloques ARCOS Estructura de Computadores 39

4 Tiempo medio de acceso al sistema de memoria con una memoria caché T = h Tc + (1-h) Tf Tc: tiempo de acceso a la caché Tf: tiempo en tratar el fallo Incluye el tiempo para traer el bloque a la caché h: tasa de aciertos Aciertos: Se producen h*1% de las veces Solo se necesita el tiempo de acceder a la caché Fallos: Se producen (1-h)*1% de las veces Se necesita el tiempo de traer el bloque a la caché ARCOS Estructura de Computadores 4

Acceso por bloques 41 Se premia el acceso a posiciones consecutivas de memoria Ejemplo 1: acceder a 5 posiciones de memoria individuales Ejemplo 2: acceder a 5 posiciones de memoria consecutivas ARCOS Estructura de Computadores 41

Accesos por bloques 42 Si se realizan acceso individuales (no secuenciales) a memoria, el coste de cada acceso es el mismo CPU Memoria principal ARCOS Estructura de Computadores 42

Acceso por bloques 43 Si se accede a un conjunto consecutivo de posiciones de memoria, los accesos siguientes al primero tienen un coste menor CPU Memoria principal ARCOS Estructura de Computadores 43

Acceso por bloques 44 La memoria principal se accede por bloques La memoria caché se accede por palabras El procesador solicita palabras a la M caché La M caché solicita bloques a la M principal CPU transferencia de palabras cache transferencia de bloques Memoria principal ARCOS Estructura de Computadores 44

Niveles en memorias caché 45 L1 L2 Típicamente dentro del procesador Pequeña (8KB 128KB) Pueden separarse instrucciones de datos Puede ser interna o externa Tamaño mediano (256 KB 4 MB) L3 Típicamente externa ARCOS Estructura de Computadores 45

Ejemplo: AMD Quad-core ARCOS Estructura de Computadores 46

Ejemplo 47 Computador: Tiempo de acceso a caché: 4 ns Tiempo de acceso a bloque de MP: 12 ns Si se tiene una tasa de aciertos del 9% Cuál es el tiempo medio de acceso? Tasas de acierto necesarias para que el tiempo medio de acceso sea menor de 1 ns y 5 ns ARCOS Estructura de Computadores 47

Organización de la memoria principal 48 4 8 12 16 2 24 28 32 36 4 44 La memoria principal lógicamente se divide en bloques de igual tamaño 1 bloque = k palabras Ejercicio: Cuantos bloques de 4 palabras hay en una memoria de 1 GB? 17374188 173741812 173741816 17374182 ARCOS Estructura de Computadores 48

Organización de la memoria principal 49 4 8 12 16 2 24 28 32 36 4 44 17374188 173741812 173741816 17374182 La memoria principal lógicamente se divide en bloques de igual tamaño 1 bloque = k palabras Ejercicio: Cuantos bloques de 4 palabras hay en una memoria de 1 GB? Solución: 2 3 B / 16 B = 2 3-4 B = 2 26 B = 64 megabloques 64 millones ARCOS Estructura de Computadores 49

Acceso a una palabra en memoria principal Ejemplo: Computador de 32 bits Memoria direccionada por bytes Acceso a memorial principal por palabras Acceso a la palabra con dirección x64 4 8 12 16 2 24 28 32 36 4 44 48 52 56 6 64 Palabra de 32 bits ARCOS Estructura de Computadores 5

Acceso a una palabra en memoria principal Ejemplo: Computador de 32 bits Memoria direccionada por bytes Acceso a memorial principal por palabras Acceso a la palabra con dirección x64 31 1 32 4 8 12 16 2 24 28 32 36 4 44 48 52 56 6 64 Palabra de 32 bits ARCOS Estructura de Computadores 51

Organización de la memoria caché 52 La memoria caché está organizada en bloques (líneas) Al bloque de memoria caché se le llama línea de caché El tamaño del bloque de M principal es igual al tamaño de la línea Pero el tamaño de la memoria caché es mucho menor El número de bloques que cabe en la memoria caché es muy pequeño Cuántos bloques de 4 palabras cabe en una memoria caché de 32 KB? ARCOS Estructura de Computadores 52

Organización de la memoria caché 53 La memoria caché está organizada en bloques (líneas) Al bloque de memoria caché se le llama línea de caché El tamaño del bloque de M principal es igual al tamaño de la línea Pero el tamaño de la memoria caché es mucho menor El número de bloques que cabe en la memoria caché es muy pequeño Cuántos bloques de 4 palabras cabe en una memoria caché de 32 KB? Solución: 2 5 2 1 B / 2 4 B = 2 11 bloques = 248 bloques = 248 líneas ARCOS Estructura de Computadores 53

Cómo buscar una palabra en la cache? 54 procesador Memoria caché Memoria caché Tamaño: 32 bytes Con bloques de dos palabras cuántas líneas tiene la caché? Palabra de 32 bits 4 8 x1 12 x11 16 2 24 28 32 x1 36 x111 4 44 48 52 56 6 Memoria principal de 64 bytes = 16 palabras ARCOS Estructura de Computadores 54

Cómo buscar una palabra en la cache? 55 Palabra de 32 bits procesador 1 1 11 Memoria caché Memoria caché Memoria caché Tamaño: 32 bytes 4 líneas 2 palabras por línea 4 8 x1 12 x11 16 2 24 28 32 x1 36 x111 4 44 48 52 56 6 Memoria principal de 64 bytes = 16 palabras Número de línea ARCOS Estructura de Computadores 55

Cómo buscar una palabra en la cache? 56 Palabra de 32 bits procesador Dir = 8 1 1 11 Memoria caché Palabra 1 Palabra Memoria caché Tamaño: 32 bytes 4 líneas 2 palabras por línea 4 8 x1 12 x11 16 2 24 28 32 x1 36 x111 4 44 48 52 56 6 Memoria principal de 64 bytes = 16 palabras ARCOS Estructura de Computadores 56

Cómo buscar una palabra en la cache? 57 Palabra de 32 bits procesador Dir = 8 FALLO 1 1 11 Memoria caché Palabra 1 Palabra Memoria caché Tamaño: 32 bytes 4 líneas 2 palabras por línea 4 8 x1 12 x11 16 2 24 28 32 x1 36 x111 4 44 48 52 56 6 Memoria principal de 64 bytes = 16 palabras ARCOS Estructura de Computadores 57

Cómo buscar una palabra en la cache? 58 Palabra de 32 bits procesador Dir = 8 1 1 11 Memoria caché Palabra 1 Palabra Memoria caché Tamaño: 32 bytes 4 líneas 2 palabras por línea 4 8 x1 12 x11 16 2 24 28 32 x1 36 x111 4 44 48 52 56 6 Se elige una línea en la caché Memoria principal de 64 bytes = 16 palabras ARCOS Estructura de Computadores 58

Cómo buscar una palabra en la cache? 59 Palabra de 32 bits procesador Dir = 8 Memoria caché Palabra 1 Palabra x11 x1 1 1 11 Memoria caché Tamaño: 32 bytes 4 líneas 2 palabras por línea 4 8 x1 12 x11 16 2 24 28 32 x1 36 x111 4 44 48 52 56 6 Transfiere el bloque Memoria principal de 64 bytes = 16 palabras ARCOS Estructura de Computadores 59

Cómo buscar una palabra en la cache? 6 Palabra de 32 bits procesador x1 Memoria caché Palabra 1 Palabra x11 x1 1 1 11 Memoria caché Tamaño: 32 bytes 4 líneas 2 palabras por línea 4 8 x1 12 x11 16 2 24 28 32 x1 36 x111 4 44 48 52 56 6 Transfiere la palabra Memoria principal de 64 bytes = 16 palabras ARCOS Estructura de Computadores 6

Cómo buscar una palabra en la cache? 61 Palabra de 32 bits procesador Dir = 32 Memoria caché Palabra 1 Palabra x11 x1 1 1 11 Memoria caché Tamaño: 32 bytes 4 líneas 2 palabras por línea 4 8 x1 12 x11 16 2 24 28 32 x1 36 x111 4 44 48 52 56 6 Cómo saber si está en la caché? Memoria principal de 64 bytes = 16 palabras ARCOS Estructura de Computadores 61

Cómo buscar una palabra en la cache? 62 Palabra de 32 bits procesador Dir = 32 Memoria caché Palabra 1 Palabra x11 x1 1 1 11 Memoria caché Tamaño: 32 bytes 4 líneas 2 palabras por línea 4 8 x1 12 x11 16 2 24 28 32 x1 36 x111 4 44 48 52 56 6 Memoria principal de 64 bytes = 16 palabras Es el contenido de la dirección 8 no de la 32 ARCOS Estructura de Computadores 62

Función de correspondencia 63 Un diseño de caché necesita: Un algoritmo que diga en qué lugares de la memoria caché se puede almacenar un bloque determinado de la memoria principal Un mecanismo que permita saber qué bloque concreto de memoria principal está en una línea de la memoria caché Se asocian a las líneas etiquetas ARCOS Estructura de Computadores 63

Ubicación en caché 64? Memoria Caché Memoria Principal ARCOS Estructura de Computadores 64

Ubicación en MP 65? Memoria Caché Memoria Principal ARCOS Estructura de Computadores 65

Correspondencia 66 ARCOS Estructura de Computadores 66

Alternativas 67 Función de correspondencia directa Función de correspondencia asociativa Función de correspondencia asociativa por conjuntos ARCOS Estructura de Computadores 67

Correspondencia directa Palabra de 32 bits 1 1 11 Memoria caché Tamaño: 32 bytes 4 líneas 2 palabras por línea 4 8 12 16 2 24 28 32 36 4 44 48 52 56 6 64 Memoria principal ARCOS Estructura de Computadores 68

Correspondencia directa Palabra de 32 bits 1 1 11 Bloque - línea Memoria caché Tamaño: 32 bytes 4 líneas 2 palabras por línea 4 8 12 16 2 24 28 32 36 4 44 48 52 56 6 64 Memoria principal ARCOS Estructura de Computadores 69

Correspondencia directa Palabra de 32 bits 1 1 11 Bloque 1 - línea 1 Memoria caché Tamaño: 32 bytes 4 líneas 2 palabras por línea 4 8 12 16 2 24 28 32 36 4 44 48 52 56 6 64 Memoria principal ARCOS Estructura de Computadores 7

Correspondencia directa Palabra de 32 bits 1 1 11 Bloque 2 - línea 2 Memoria caché Tamaño: 32 bytes 4 líneas 2 palabras por línea 4 8 12 16 2 24 28 32 36 4 44 48 52 56 6 64 Memoria principal ARCOS Estructura de Computadores 71

Correspondencia directa Palabra de 32 bits 1 1 11 Bloque 3 - línea 3 Memoria caché Tamaño: 32 bytes 4 líneas 2 palabras por línea 4 8 12 16 2 24 28 32 36 4 44 48 52 56 6 64 Memoria principal ARCOS Estructura de Computadores 72

Correspondencia directa Palabra de 32 bits 1 1 11 Bloque 4 - línea Memoria caché Tamaño: 32 bytes 4 líneas 2 palabras por línea 4 8 12 16 2 24 28 32 36 4 44 48 52 56 6 64 Memoria principal ARCOS Estructura de Computadores 73

Correspondencia directa En general: El bloque de memoria K se almacena en la línea: K mod número de líneas ARCOS Estructura de Computadores 74

Correspondencia directa 1 1 11 Varios bloques en la misma línea Memoria caché Tamaño: 32 bytes 4 líneas 2 palabras por línea 1 1 11 1 11 11 111 1 11 11 111 11 111 111 1111 1 11 11 111 11 111 111 1111 11 111 111 1111 111 1111 1111 11111 Palabra de 32 bits Memoria principal ARCOS Estructura de Computadores 75

Correspondencia directa 1 1 11 Memoria caché Tamaño: 32 bytes 4 líneas 2 palabras por línea Cómo se sabe el bloque de memoria en el que se encuentra una dirección? Ejemplo: la dirección 11 1 1 11 1 11 11 111 1 11 11 111 11 111 111 1111 1 11 11 111 11 111 111 1111 11 111 111 1111 111 1111 1111 11111 Palabra de 32 bits Memoria principal ARCOS Estructura de Computadores 76

Ejercicio Dado un computador de 32 bits con una memoria caché de 64 KB y bloques de 32 bytes Si se utiliza correspondencia directa En qué línea de la memoria caché se almacena la palabra de la dirección x48a? Cómo se puede obtener rápidamente? En qué línea se de la memoria caché se almacena la palabra de la dirección x148a? Cómo sabe la caché si la palabra almacenada en esa línea corresponde a la palabra de la dirección x48a o a la palabra de la dirección x148a? ARCOS Estructura de Computadores 77

Correspondencia asociativa 78 Cada bloque de MP puede almacenarse en cualquier línea de la cahé ARCOS Estructura de Computadores 78

Correspondencia asociativa por conjuntos 79 La memoria se organiza en conjuntos de líneas Una memoria caché asociativa por conjunto de K vías: Cada conjunto almacena K líneas Cada bloque siempre se almacena en el mismo conjunto El bloque B se almacena en el conjunto: B mod número de conjuntos Dentro de un conjunto el bloque se puede almacenar en cualquiera de las líneas de ese conjunto ARCOS Estructura de Computadores 79

Correspondencia asociativa por conjuntos Palabra de 32 bits Número de conjunto Conjunto Conjunto 1 1 1 11 Número de línea Memoria caché Tamaño: 32 bytes Asociativa por conjunto de 2 vías 2 líneas por conjunto 2 palabras por línea 4 8 12 16 2 24 28 32 36 4 44 48 52 56 6 64 Memoria principal ARCOS Estructura de Computadores 8

Correspondencia asociativa por conjuntos Palabra de 32 bits Conjunto Conjunto 1 1 1 11 Bloque - Conjunto Memoria caché Tamaño: 32 bytes Asociativa por conjunto de 2 vías 2 líneas por conjunto 2 palabras por línea 4 8 12 16 2 24 28 32 36 4 44 48 52 56 6 64 Memoria principal ARCOS Estructura de Computadores 81

Correspondencia asociativa por conjuntos Palabra de 32 bits Conjunto Conjunto 1 1 1 11 Bloque 1 - conjunto 1 Memoria caché Tamaño: 32 bytes 4 líneas 2 palabras por línea 4 8 12 16 2 24 28 32 36 4 44 48 52 56 6 64 Memoria principal ARCOS Estructura de Computadores 82

Correspondencia asociativa por conjuntos Palabra de 32 bits Conjunto Conjunto 1 1 1 11 Bloque 2 - conjunto Memoria caché Tamaño: 32 bytes 4 líneas 2 palabras por línea 4 8 12 16 2 24 28 32 36 4 44 48 52 56 6 64 Memoria principal ARCOS Estructura de Computadores 83

Correspondencia asociativa por conjuntos Palabra de 32 bits Conjunto Conjunto 1 1 1 11 Bloque 3 - conjunto 1 Memoria caché Tamaño: 32 bytes 4 líneas 2 palabras por línea 4 8 12 16 2 24 28 32 36 4 44 48 52 56 6 64 Memoria principal ARCOS Estructura de Computadores 84

Correspondencia asociativa por conjuntos Palabra de 32 bits Conjunto Conjunto 1 1 1 11 Bloque 4 - línea Memoria caché Tamaño: 32 bytes 4 líneas 2 palabras por línea 4 8 12 16 2 24 28 32 36 4 44 48 52 56 6 64 Habría que eliminar la línea que estaba antes Memoria principal ARCOS Estructura de Computadores 85

Correspondencia asociativa por conjuntos 86 Establece un compromiso entre flexibilidad y coste Es más flexible que la correspondencia directa Es menos costosa que la correspondencia asociativa ARCOS Estructura de Computadores 86

Sustitución de bloques 87 Cuando todas las entradas de la caché contienen bloques de memoria principal: Hace falta seleccionar una línea que hay que dejar libre para traer un bloque de la MP Asociativa: Seleccionar una línea de la caché Asociativa por conjuntos: Seleccionar una línea del conjunto seleccionado Existen diversos algoritmos para seleccionar la línea de la caché que hay que liberar ARCOS Estructura de Computadores 87

Algoritmos de sustitución 88 FIFO First-in-first-out Sustituye la línea que lleva más tiempo en la caché LRU: Least Recently Used Sustituye la línea que lleva más tiempo sin usarse LFU: Least Frequently Used Sustituye la línea que se ha usado menos veces ARCOS Estructura de Computadores 88

Políticas de escritura 89 Cuando se modifica un dato en memoria caché, hay que actualizar en algún momento la memoria principal Alternativas: Escritura inmediata Post-escritura ARCOS Estructura de Computadores 89

Escritura inmediata 9 Cada vez que se modifica un dato en caché se escribe el bloque en memoria principal Muy simple de implementar Problema: Genera mucho tráfico a memoria para escrituras ARCOS Estructura de Computadores 9

Post-escritura 91 Un bloque solamente se escribe en memoria principal cuando va a ser expulsado de caché y siempre que se haya modificado A cada bloque de la caché se le asocia un bit de modificación Cuando el bloque se trae a la caché: Modificado= Cuando se modifica el bloque: Modificado=1 Cuando se expulsa un bloque de la caché (para hacer hueco), se escribe en memoria si modificado=1 ARCOS Estructura de Computadores 91

Ejercicio Sea un computador con una memoria caché y principal con las siguientes características: Tiempo de acceso a memoria caché de 4 ns Tiempo de acceso a memoria principal de 8 ns Tiempo para servir un fallo de caché de 12 ns Política de escritura inmediata En este computador se ha observado que la tasa de aciertos a la memoria caché es del 95 % y que cada 1 accesos, 9 son de lectura Calcular el tiempo medio de acceso a memoria ARCOS Estructura de Computadores 92

Ejercicio Sea un computador dotado de una memoria cache con las siguientes características: Tamaño: 16 KB con bloques de 32 bytes (8 palabras) Tiempo de acceso: 1ns Esta memoria está conectada a través de un bus de 32 bits a una memoria principal que es capaz de transferir un bloque de 8 palabras en 12 ns Política de escritura: post-escritura o escritura diferida Se pide: Calcular la tasa de aciertos que es necesaria para que el tiempo medio de acceso al sistema de memoria sea de 2 ns ARCOS Estructura de Computadores 93

Ejercicio Se dispone de un computador con una memoria caché con un tamaño de 64 KB El tamaño de la línea es de 64 bytes La caché tiene un tiempo de acceso de 2 ns y un tiempo de penalización por fallo de 12 ns La caché es asociativa por conjuntos de dos vías Se pide: Indique el número total de líneas de caché Indique el número de conjuntos que tiene la caché Indique el número de líneas por conjunto Haga un dibujo con la estructura de la caché Diga cuánto tiempo tardaríamos en obtener un dato si se produce un fallo en la caché ARCOS Estructura de Computadores 94

Ejercicio Sea un computador de 32 bits con el juego de instrucciones del MIPS, que ejecuta el siguiente fragmento de código cargado a partir de la dirección x li $t, 1 li $t1, li $t2, bucle: addi $t1, $t1, 1 addi $t2, $t2, 4 beq $t1, $t, bucle Este computador dispone de una memoria caché asociativa por conjunto de 4 vías, de 32 KB y líneas de 16 bytes Calcule de forma razonada el número de fallos de caché y la tasa de aciertos que produce el fragmento de código anterior, asumiendo que se ejecuta sin ninguna interrupción y que la memoria caché está inicialmente vacía ARCOS Estructura de Computadores 95

Ejercicio Sea un computador de 32 bits con una memoria caché para datos de 8 KB y línea de 64 bytes, política de correspondencia directa y política de escritura diferida o aplazada Calcule la tasa de fallos global del siguiente bucle double a[124], b[124], c[124], d[124]; // considere que un double ocupa 8 bytes y que los cuatro // vectores se encuentran dispuestos en memoria de forma // consecutiva for (int i = ; i < 124; i++) a[i] = b[i] + c[i] + d[i]; ARCOS Estructura de Computadores 96

Ejercicio Resuelva el ejercicio anterior asumiendo : Que la caché es totalmente asociativa, con política de sustitución LRU Que la caché es asociativa por conjuntos de dos vías y política de sustitución LRU Que la caché es asociativa por conjuntos de cuatro vías y política de sustitución LRU ARCOS Estructura de Computadores 97

Ejercicio Sea un computador de 32 bits con una memoria caché para datos de 32 KB y línea de 64 bytes La caché es asociativa por conjuntos de 2 vías Considere los dos siguientes fragmentos de código: int m[512][512]; sum = ; for (i = ; i < 512; i ++) for (j = ; j < 512; j++) sum = sum + m[i][j]; int m[512][512]; sum = ; for (i = ; i < 512; i ++) for (j = ; j < 512; j++) sum = sum + m[j][i]; considerando que la variable sum se almacena en un registro, calcule la tasa de fallos a memoria caché de los dos fragmentos (Observación: la matriz se almacena por filas) ARCOS Estructura de Computadores 98

Contenido Tipos de memoria Jerarquía de memoria Memoria caché Memoria virtual ARCOS Estructura de Computadores 99

Imagen de memoria de un proceso Proceso: programa en ejecución Imagen de memoria: conjunto de direcciones de memoria asignadas al programa que está ejecutando instrucciones datos Imagen de memoria de un programa en ejecucion Direcciones reservadas para el crecimiento de las secciones de datos y de pila pila ARCOS Estructura de Computadores 1

Sistemas sin memoria virtual En los sistemas sin memoria virtual, el programa se carga completamente en memoria para su ejecución Memoria Principal Sistema Operativo Disco instrucciones Programa en ejecucion datos pila Fichero ejecutable ARCOS Estructura de Computadores 11

Sistemas sin memoria virtual Se inicializan los registros Memoria Principal PC Sistema Operativo instrucciones Disco Programa en ejecucion datos SP pila Fichero ejecutable ARCOS Estructura de Computadores 12

Múltiples programas cargados en memoria Memoria principal Sistema Operativo instrucciones datos pila instrucciones datos proceso 2 proceso 1 pila ARCOS Estructura de Computadores 13

Múltiples programas cargados en memoria Memoria principal PC Sistema Operativo instrucciones datos proceso 2 SP pila instrucciones datos proceso 1 pila ARCOS Estructura de Computadores 14

Múltiples programas cargados en memoria PC SP Memoria principal Sistema Operativo instrucciones datos proceso 2 pila instrucciones datos proceso 1 pila ARCOS Estructura de Computadores 15

Múltiples programas cargados en memoria Memoria principal Sistema Operativo instrucciones datos proceso 2 PC pila instrucciones datos proceso 1 SP pila ARCOS Estructura de Computadores 16

Fichero ejecutable hipotético int v[1]; // global int i; for (i=; i < 1; i++) v[i] = ; ARCOS Estructura de Computadores 17

Fichero ejecutable hipotético int v[1]; // global int i; for (i=; i < 1; i++) v[i] = ; data: v: space 4 text: li $t, li $t1, bucle: fin: li $t2, 1 bgt $t, $t2, fin sw $, v($t1) addi $t, $t, 1 addi $t1, $t1, 4 b bucle ARCOS Estructura de Computadores 18

Fichero ejecutable hipotético int v[1]; // global int i; for (i=; i < 1; i++) data: v[i] = ; v: space 4 text: li $t, li $t1, bucle: li $t2, 1 bgt $t, $t2, fin sw $, v($t1) addi $t, $t, 1 ensamblador 4 96 1 14 18 112 116 12 124 128 132 Cabecera ejecutable li $t, li $t1, li $t2, 1 bgt $t, $t2, 16 sw $, 2($t1) addi $t, $t, 1 addi $t1, $t1, 4 b -2 addi $t1, $t1, 4 b bucle Se asigna a v la dirección 2 Se asume que el programa empieza en la ARCOS Estructura de Computadores 19

Carga del programa en memoria El sistema operativo reserva un hueco libre en memoria para toda la imagen del proceso 4 ejecutable Cabecera memoria 96 1 14 18 112 116 12 124 128 132 li $t, li $t1, li $t2, 1 bgt $t, $t2, 2 sw $, 2($t1) addi $t, $t, 1 addi $t1, $t1, 4 b -24 1 14 18 112 116 12 124 128 132 ARCOS Estructura de Computadores 11

Carga del programa en memoria En el fichero ejecutable se considera como dirección de inicio la Direcciones lógicas En memoria, la dirección de inicio es la 1 Direcciones físicas Hay que realizar una traducción de direcciones De direcciones lógicas a físicas El array en memoria está En la dirección lógica 2 En la dirección física 2 + 1 A este proceso se le denomina reubicación Reubicación software Reubicación hardware ARCOS Estructura de Computadores 111

Reubicación software Se realiza la traducción en el momento de la carga 4 ejecutable Cabecera memoria 96 1 14 18 112 116 12 124 128 132 li $t, li $t1, li $t2, 1 bgt $t, $t2, 2 sw $, 2($t1) addi $t, $t, 1 addi $t1, $t1, 4 b -24 1 14 18 112 116 12 124 128 132 li $t, li $t1, li $t2, 1 bgt $t, $t2, 16 sw $, 12($t1) addi $t, $t, 1 addi $t1, $t1, 4 b -2 ARCOS Estructura de Computadores 112

Reubicación software Qué ocurre con estas instrucciones cargadas en las posiciones 112 y 128? 4 ejecutable Cabecera memoria 96 1 14 18 112 116 12 124 128 132 li $t, li $t1, li $t2, 1 bgt $t, $t2, 2 sw $, 2($t1) addi $t, $t, 1 addi $t1, $t1, 4 b -24 1 14 18 112 116 12 124 128 132 li $t, li $t1, li $t2, 1 bgt $t, $t2, 16 sw $, 12($t1) addi $t, $t, 1 addi $t1, $t1, 4 b -2 ARCOS Estructura de Computadores 113

Problema de protección de memoria Qué ocurre si en el programa ejecuta las siguientes instrucciones? li $t,8 sw $t, ($) ARCOS Estructura de Computadores 114

Problema de protección de memoria Qué ocurre si en el programa ejecuta las siguientes instrucciones? li $t,8 sw $t, ($) Acceso ilegal a la dirección física que no está asignada al programa ARCOS Estructura de Computadores 115

Multiprogramación 116 Un computador puede tener varios programas en memoria Hay que asignar un espacio de memoria a cada programa en ejecución (proceso) SO P2 Hace falta asegurar que un programa no accede a la zona de memoria asignada a otro programa P1 P3 ARCOS Estructura de Computadores 116

Reubicación hardware Se realiza la traducción durante la ejecución Necesita un hardware especial Asegura protección 4 ejecutable Cabecera memoria 96 1 14 18 112 116 12 124 128 132 li $t, li $t1, li $t2, 1 bgt $t, $t2, 2 sw $, 2($t1) addi $t, $t, 1 addi $t1, $t1, 4 b -24 1 14 18 112 116 12 124 128 132 li $t, li $t1, li $t2, 1 bgt $t, $t2, 16 sw $, 2($t1) addi $t, $t, 1 addi $t1, $t1, 4 b -2 ARCOS Estructura de Computadores 117

Ejemplo de soporte hardware Registro límite: dirección lógica máxima asignada al programa Registro base: dirección de inicio del programa en memoria memoria MAR Reg límite Reg base 1 14 18 112 116 12 124 128 132 li $t, li $t1, li $t2, 1 bgt $t, $t2, 16 sw $, 2($t1) addi $t, $t, 1 addi $t1, $t1, 4 b -2 ARCOS Estructura de Computadores 118

Ejemplo de soporte hardware Registro límite: dirección lógica máxima asignada al programa Registro base: dirección de inicio del programa en memoria Dirección lógica de inicio memoria MAR Reg límite Reg base 6 1 1 14 18 112 116 12 124 128 132 li $t, li $t1, li $t2, 1 bgt $t, $t2, 16 sw $, 2($t1) addi $t, $t, 1 addi $t1, $t1, 4 b -2 ARCOS Estructura de Computadores 119

Ejemplo de soporte hardware Registro límite: dirección lógica máxima asignada al programa Registro base: dirección de inicio del programa en memoria memoria MAR Reg límite Reg base 6 1 > si excepción 1 14 18 112 116 12 124 128 132 li $t, li $t1, li $t2, 1 bgt $t, $t2, 16 sw $, 2($t1) addi $t, $t, 1 addi $t1, $t1, 4 b -2 ARCOS Estructura de Computadores 12

Ejemplo de soporte hardware Registro límite: dirección lógica máxima asignada al programa Registro base: dirección de inicio del programa en memoria memoria MAR Reg límite Reg base 6 1 > no + 1 14 18 112 116 12 124 128 132 li $t, li $t1, li $t2, 1 bgt $t, $t2, 16 sw $, 2($t1) addi $t, $t, 1 addi $t1, $t1, 4 b -2 ARCOS Estructura de Computadores 121

Ejemplo de soporte hardware Registro límite: dirección lógica máxima asignada al programa Registro base: dirección de inicio del programa en memoria memoria MAR Reg límite Reg base 6 1 > no + 1 1 14 18 112 116 12 124 128 132 li $t, li $t1, li $t2, 1 bgt $t, $t2, 16 sw $, 2($t1) addi $t, $t, 1 addi $t1, $t1, 4 b -2 ARCOS Estructura de Computadores 122

Sistemas sin memoria virtual Principales problemas Si la imagen en memoria del programa (proceso) es mayor que la memoria disponible, no se puede ejecutar En un computador de 32 bits Cuál es el tamaño máximo teórico del programa que se puede ejecutar? Y si solo se dispone de una memoria de 512 MB? Se reduce el número de programas activos en memoria ARCOS Estructura de Computadores 123

Sistemas con memoria virtual No es necesario tener cargado todo el programa en memoria Solo se cargan aquellas partes que el programa utiliza Principales ventajas: Se puede ejecutar programas cuya imagen es mayor 1ue la memoria principal disponible Se pueden tener más programas activos en memoria Imagen de memoria instrucciones datos Memoria principal pila pila datos instr pila instr instr ARCOS Estructura de Computadores 124

Fundamentos de la memoria virtual La MV utiliza dos niveles: Memoria principal Memoria secundaria: disco Mapa de memoria virtual (direcciones generadas por el procesador) Dirección física (acierto) Memoria principal Procesador Dirección virtual MMU Fallo página El SO transfiere la página solicitada a memoria principal Memoria Secundaria (Intercambio) ARCOS Estructura de Computadores 125

Memoria virtual paginada Las direcciones que genera el procesador son direcciones virtuales El espacio de direcciones virtuales se divide en trozos de igual tamaño denominado páginas La memoria principal se divide en trozos de igual tamaño a las páginas denominados marcos de página La zona del disco que sirve de soporte a la memoria virtual se divide en trozos de igual tamaño denominados páginas de intercambio o páginas de swap ARCOS Estructura de Computadores 126

Direcciones físicas y direcciones virtuales 127 Espacio de direcciones virtuales: Direcciones de memoria con las que trabaja cada proceso Espacio de direcciones físicas: Direcciones de memoria principal en las que residen los datos Direcciones virtuales Direcciones físicas Programa Traducción HW Memoria Física ARCOS Estructura de Computadores 127

Memoria virtual paginada La imagen de memoria de los procesos reside inicialmente en disco instrucciones datos DV pila DV N Memoria secundaria ARCOS Estructura de Computadores 128

Traducción de direcciones procesador DV MMU DF La página memoria está ARCOS Estructura de Computadores 129

Traducción de direcciones procesador DV MMU memoria La página no está Excepción ARCOS Estructura de Computadores 13

Traducción de direcciones procesador DV MMU memoria La página no está Excepción (fallo de página) Sistema operativo ARCOS Estructura de Computadores 131

Traducción de direcciones procesador DV MMU memoria Sistema operativo Memoria secundaria ARCOS Estructura de Computadores 132

Traducción de direcciones procesador DV MMU DF La página está memoria ARCOS Estructura de Computadores 133

Traducción de direcciones procesador DV MMU DF memoria Se envía la palabra al procesador ARCOS Estructura de Computadores 134

Memoria virtual paginada 32 bits 111111 Dirección virtual 32 bits 111111 Dirección física División en bloques del mismo tamaño Memoria secundaria ARCOS Estructura de Computadores 135

Estructura de una dirección virtual Un computador de n bits tiene: Direcciones de n bits n-1 Puede direccionar 2 n bytes ARCOS Estructura de Computadores 136

Estructura de una dirección virtual La imagen de memoria está compuesta por páginas de igual tamaño (4 KB, 8 KB) n-1 Número de página desplazamiento m bits p bits n = m + p Memoria direccionable: 2 n bytes Tamaño de la página 2 p bytes Máximo número de páginas: 2 m ARCOS Estructura de Computadores 137

Ejemplo 32 bits 111111 Dirección virtual 32 bits 111111 Dirección física Memoria secundaria ARCOS Estructura de Computadores 138

Ejemplo 2 bits 12 bits Id página Desplazamiento Dirección virtual 2 bits Marco 12 bits Desplazamiento Dirección física Marco Con páginas de 4 KB Memoria secundaria ARCOS Estructura de Computadores 139

Traducción n-1 p p-1 Página virtual Desplazamiento Dirección virtual Traducción m-1 Página física p p-1 Desplazamiento Dirección Física ARCOS Estructura de Computadores 14

Tabla de páginas Tabla de páginas del programa en ejecución Presente ETP Si No Espacio de direcciones virtual de un programa en ejecución Página Página 1 Página 2 Página 3 Página 4 Página 5 Memoria principal Marco de página Disco ARCOS Estructura de Computadores 141

Estructura de la tabla de páginas Modificada Protección Nº de marco/ bloque de disco Presente/Ausente ARCOS Estructura de Computadores 142

Estructura de la tabla de páginas La crea el sistema operativo en memoria cuando se va a ejecutar el programa La consulta la MMU en la traducción La modifica el SO en los fallos de página ARCOS Estructura de Computadores 143

Ejemplo Páginas de 1 KB Proceso de 8 KB Número de páginas que ocupa: 8 Tamaño de las secciones: Instrucciones: 15 KB Datos: 1 KB Pila 2 KB ARCOS Estructura de Computadores 144

Ejemplo Instr Pag Instr Pag 1 Datos Pag 2 Pag 3 Pag 4 Pág 5 Pag 6 Pila Pag 7 Páginas de 1 KB Proceso de 8 KB Número de páginas que ocupa: 8 Tamaño de las secciones: Instrucciones: 15 KB -> 2 páginas Datos: 1 KB -> 1 página Pila 2 KB -> 1 página ARCOS Estructura de Computadores 145

Ejemplo Instr Pag Instr Pag 1 Datos Pag 2 Pag 3 Pag 4 Pág 5 Pag 6 Pila Pag 7 DV de inicio: DV final: 8191 Pags 3, 4, 5 y 6 no asignadas inicialmente al programa ARCOS Estructura de Computadores 146

Ejemplo Imagen inicialmente en disco Instr Pag Instr Pag 1 Datos Pag 2 Pag 3 Pag 4 Pág 5 Pag 6 Pila Pag 7 1 2 3 4 5 6 7 8 9 1 11 12 1 2 7 Swap Páginas del proceso ARCOS Estructura de Computadores 147

Ejemplo El SO crea la tabla de páginas Instr Pag Instr Pag 1 Datos Pag 2 Pag 3 Pag 4 Pág 5 Pag 6 Pila Pag 7 1 2 3 4 5 6 7 P M marco/swap 2 4 5 8 1 2 3 4 5 6 7 8 9 1 11 12 Todas las páginas Inicialmente en swap 1 2 7 Swap Páginas del proceso ARCOS Estructura de Computadores 148

Ejemplo Acceso a la DV procesador DV= MMU 1 2 3 4 5 6 7 P M marco/swap 2 4 5 8 Instr Pag Instr Pag 1 Datos Pag 2 Pag 3 Pag 4 Pág 5 Pag 6 Pila Pag 7 1 2 3 4 5 6 7 8 9 1 11 12 1 2 7 Swap Páginas del proceso ARCOS Estructura de Computadores 149

Ejemplo Acceso a la DV procesador DV= MMU 1 2 3 4 5 6 7 P M marco/swap 2 4 5 8 DV= NP D Instr Pag Instr Pag 1 Datos Pag 2 Pag 3 Pag 4 Pág 5 Pag 6 Pila Pag 7 1 2 3 4 5 6 7 8 9 1 11 12 1 2 7 Swap Páginas del proceso ARCOS Estructura de Computadores 15

Ejemplo Acceso a la DV procesador DV= MMU 1 2 3 4 5 6 7 P M marco/swap 2 4 5 8 Fallo de página La página no está en memoria DV= NP D Instr Pag Instr Pag 1 Datos Pag 2 Pag 3 Pag 4 Pág 5 Pag 6 Pila Pag 7 1 2 3 4 5 6 7 8 9 1 11 12 1 2 7 Swap Páginas del proceso ARCOS Estructura de Computadores 151

Ejemplo Tratamiento del fallo de página procesador MMU 1 2 3 4 5 6 7 P M marco/swap 2 4 5 8 1 2 3 4 5 6 7 8 9 1 Memoria DV= NP D El SO reserva un marco de página libre en memoria ( el 5) y copia el bloque 2 al marco 5 1 2 3 4 5 6 7 8 9 1 11 12 1 2 7 Swap Páginas del proceso ARCOS Estructura de Computadores 152

Ejemplo Tratamiento del fallo de página procesador MMU 1 2 3 4 5 6 7 P M marco/swap 1 5 4 5 8 1 2 3 4 5 6 7 8 9 1 Memoria DV= NP D El SO actualiza la tabla de páginas 1 2 3 4 5 6 7 8 9 1 11 12 1 2 7 Swap Páginas del proceso ARCOS Estructura de Computadores 153

Ejemplo Reanudación del proceso procesador DV= MMU 1 2 3 4 5 6 7 P M marco/swap 1 5 4 5 8 1 2 3 4 5 6 7 8 9 1 Memoria DV= NP D Se vuelve a genera la DV 1 2 3 4 5 6 7 8 9 1 11 12 1 2 7 Swap Páginas del proceso ARCOS Estructura de Computadores 154

Ejemplo Reanudación del proceso procesador DV= MMU 1 2 3 4 5 6 7 P M marco/swap 1 5 4 5 8 1 2 3 4 5 6 7 8 9 1 Memoria DV= NP D Se vuelve a genera la DV 1 2 3 4 5 6 7 8 9 1 11 12 1 2 7 Swap Páginas del proceso ARCOS Estructura de Computadores 155

Ejemplo Reanudación del proceso procesador DV= MMU 1 2 3 4 5 6 7 P M marco/swap 1 5 4 5 8 1 2 3 4 5 6 7 8 9 1 Memoria DV= NP D DF 5 NP D Página presente Se genera la DF ARCOS Estructura de Computadores 156

Ejemplo Reanudación del proceso procesador DV= MMU 1 2 3 4 5 6 7 P M marco/swap 1 5 4 5 8 1 2 3 4 5 6 7 8 9 1 Memoria DV= NP D DF 5 NP D Se accede a memoria ARCOS Estructura de Computadores 157

Traducción Memoria principal Dirección virtual página desplazamiento Registro base de la TP 1 2 3 4 5 n Tabla de páginas marco presente? No Si Fallo de página Excepción marco Dirección física desplazamiento Marco de página Dato referenciado ARCOS Estructura de Computadores 158

Protección de memoria Dirección virtual Espacio de direcciones virtual del proceso 1 Página virtual Tabla de páginas del proceso 1 Marco A Memoria principal Marco de página A Página virtual k Marco C Marco de página B Direcciones físicas diferentes Dirección virtual Espacio de direcciones virtual del proceso 2 Página virtual Tabla de páginas del proceso 2 Marco B Marco de página C Página virtual j Marco D Marco de página D ARCOS Estructura de Computadores 159

Proceso de lectura en un sistema con memoria virtual y caché palabra Si Se transfiere la línea de MP a MC No acierto? M caché DV Acceso a la TP DF de la ETP M caché acierto? No Si ETP DF si Página presente? No Se transfiere la línea de MP a MC Fallo de página Se transfiere la página a MP y se actualiza la ETP ARCOS Estructura de Computadores 16

Ejercicio 1 Sea un procesador con memoria virtual paginada de direcciones virtuales de 32 bits y páginas de 2 KB Indique el formato de la dirección virtual, así como el número máximo de páginas que puede tener un programa en ejecución en este computador ARCOS Estructura de Computadores 161

Ejercicio 2 Sea un computador con direcciones virtuales de 32 bits y una memoria principal de 512 MB, que emplea páginas de 4 KB Indique el formato de la dirección virtual y el número de marcos de página ARCOS Estructura de Computadores 162

Ejercicio 3 Sea un computador que utiliza páginas de 8 KB y que direcciona la memoria por bytes Dada la dirección virtual (en hexadecimal) x2184 Indique: El tamaño de la dirección virtual El número máximo de páginas El número de página en el que se encuentra el dato referenciado por la dirección anterior El desplazamiento dentro de la página en el que se encuentra el dato referenciado por la dirección anterior ARCOS Estructura de Computadores 163

Ejercicio 4 Un computador que direcciona la memoria por bytes emplea direcciones virtuales de 32 bits Cada entrada de la tabla de páginas requiere 32 bits El sistema emplea páginas de 4 KB Cuál es el espacio de memoria direccionable por un programa en ejecución? Cuál es el máximo tamaño de la tabla de páginas en este computador? ARCOS Estructura de Computadores 164

Ejercicio 5 Sea un sistema con un espacio de direcciones virtual de 256 Kpáginas de 8 KB cada una y una memoria física de 128 MB Cuántos bits hay en la dirección virtual? ARCOS Estructura de Computadores 165

Ejercicio 6 Si un computador trabaja con direcciones de 16 bits, y posee páginas de tamaño 2 KB Se pide: Qué tamaño de memoria virtual se puede direccionar? Cuántas páginas tiene la memoria virtual? Cuál será el tamaño del marco de página? Suponiendo que la memoria física es de 32 KB, cuántos marcos hay? Cuántos bits de la dirección de memoria virtual se utilizan para seleccionar entradas en la tabla de páginas? Para que se emplean los bits restantes de la dirección de memoria virtual? Cuántas entradas tendrá la tabla de páginas? ARCOS Estructura de Computadores 166

Ejercicio 7 Dado un hipotético computador con memoria virtual paginada con un espacio de direcciones virtuales de 64 KB, una memoria física de 16 KB En este computador, que direcciona la memoria por bytes, el número de páginas por proceso es como máximo de 512 En un instante de tiempo dado, la tabla de páginas del proceso en ejecución contiene la siguiente información: ARCOS Estructura de Computadores 167

Ejercicio 7 (cont) Se pide: Calcule el tamaño de cada página y el número de marcos de página Cuántas páginas tiene asignadas el proceso en ejecución? Para qué se utiliza el bit M? Indique el formato de las direcciones virtuales especificando el tamaño de los campos y el significado de cada uno Cuántos marcos de página tiene la memoria? Indique las direcciones físicas, en binario y hexadecimal, correspondientes a las direcciones virtuales 258 y 1224 expresadas ambas en decimal Dada una dirección virtual cuántos accesos a memoria física se requieren para obtener el dato? P M marco/bloque 1 1 1 1 1 11 1 1 1 1 1 11 1 1 11 1 11 1 111 11 11 1 1 1 111 ARCOS Estructura de Computadores 168

Ejercicio 8 Sea un computador con direcciones virtuales de 32 bits y páginas de 4 KB En este computador se ejecuta un programa cuya tabla de páginas es: P M Perm Marco/Bloque R 136 1 R 497 W 3 W 719 W 32 W 24 W 3 Se pide: Tamaño que ocupa la imagen de memoria del programa Si la primera dirección virtual del programa es x, indique la última Dadas las siguientes direcciones virtuales, indique si generan fallo de página o no x1 x11c x24 ARCOS Estructura de Computadores 169

Ejercicio 9 Considere un computador con direcciones virtuales de 32 bits y páginas de 8 KB Se pide: Formato de la dirección virtual Máximo número de entradas que puede tener la tabla de páginas Dado el siguiente fragmento de programa: int a[1]; for (i = ; i < 89; i++) a[i] = a[i] +1; y suponiendo que no hay ninguna página en memoria principal y que los datos e instrucciones se almacenan en páginas distintas, indique el número de fallos de página que se producen cuando se ejecuta el fragmento de programa anterior ARCOS Estructura de Computadores 17

Ejercicio 1 Sea un computador con direcciones virtuales de 32 bits y páginas de 4KB Según un estudio, se ha determinado que en ausencia de fallos de página, este computador es capaz de ejecutar 5 millones de instrucciones por segundo Además el porcentaje de utilización de las instrucciones (similares a la del MIPS 32) es: LOAD un 3% STORE un 1 % MOVE un 1% Operaciones aritméticas un 24 % Operaciones lógicas un 6% Bifurcaciones un 2 % Se pide: Si no hay fallos de página y las instrucciones caben en una palabra, determine el número de accesos a memoria por segundo Si la tasa de fallos de página es del 95% y el tiempo para tratar un fallos de página es de 6 ms, indique el número de instrucciones que es capaz de ejecutar este computador ARCOS Estructura de Computadores 171