1 Estructura y Tecnología de Computadores Módulo F. El subsistema de memoria Tema 14. Memoria virtual José Manuel Mendías Cuadros Dpto. Dpto. Arquitectura de Computadores y Automática Universidad Complutense de Madrid 2 1. Introducción Concepto y fundamentos. Técnicas de gestión de la memoria virtual. 2. Memoria virtual paginada Fundamentos. Técnicas de traducción de direcciones: directa, asociativa, mixta y a varios niveles. Tamaño de página. Políticas de emplazamiento de páginas. Políticas de reemplazamiento de páginas: aleatorio, FIFO, FINUFO, LFU y LRU. Políticas de búsqueda de páginas: bajo demanda, página sucesora y con predicción. Políticas de actualización. 3. Memoria virtual segmentada Fundamentos. Técnicas de traducción de direcciones: directa. Políticas de emplazamiento de segmentos: primer ajuste, mejor ajuste, peor ajuste y retoños. 4. Memoria virtual segmentada/paginada Fundamentos. Técnicas de traducción de direcciones: directa, asociativa, mixta 5. Interrelación MV-MP-MC Acceso a la cahe en un sistema con memoria virtual: cache de direcciones físicas y cache de direcciones virtuales. Coherencia entre Mc y Mp. DMA y memoria virtual 6. Ejemplos Alpha 21064. Pentium. estructura y tecnología de computadores 3 1. introducción Concepto Ö Un computador se dice que emplea memoria virtual cuando el espacio de direcciones que utilizan los programas durante su ejecución es mayor que el espacio de direcciones físicas disponible en memoria principal (MP) Ejemplo PC basado en procesador Pentium II con 128MB de MP Ø Ø Procesador capaz de gestionar direcciones de 46 bits ⇒ 64 TB de memoria virtual direccionables ð Los programas pueden trabajar con dir. virtuales de 46 bits y direccionar un espacio virtual de 64 TB La MP está limitada a 128MB ⇒ admite direcciones de hasta 27 bits ð Necesario traducir las direcciones virtuales de 46 bits y a direcciones físicas de 27 bits Fundamento de la memoria virtual Ö El espacio de direcciones virtuales (instrucciones y datos) que maneja un programa se divide en bloques Ø En un instante dado, en MP sólo se encuentran unos pocos bloques del programa (los más utilizados últimamente) ð Se explota la localidad espacial y temporal Ø El resto de bloques se mantienen en memoria secundaria (área de “swap” del disco) Ø Se van trayendo nuevos bloques a la MP según se van necesitando Ö Objetivos de la memoria virtual Ø Permite disponer de un espacio de direcciones superior al real ð Los programas pueden tener un tamaño mayor que el espacio disponible en memoria física ð La gestión de la memoria virtual es transparente al programador/usuario Ø Permite compartir eficientemente la memoria (en entornos multiproceso) ð La memoria física se reparte entre los procesos que se ejecutan en la máquina ð Cada proceso puede tener su propio espacio de direcciones virtuales independiente del resto de procesos estructura y tecnología de computadores 4 1. introducción Técnicas de gestión de la memoria virtual Ö Traducción de direcciones Ø ¿Cómo traducir una dirección virtual a una dirección física? ð Memoria virtual paginada ð Memoria virtual segmentada ð Memoria virtual segmentada/paginada Ö Emplazamiento de bloques en memoria física Ø ¿En qué parte de la MP se ubican los nuevos bloques que traemos de memoria secundaria? ð Primer ajuste ð Mejor ajuste ð Peor ajuste ð Retoños (binary buddy) Ö Reemplazamiento de bloques Ø ¿Qué bloque quitamos de MP cuando hay necesitamos espacio para llevar un bloque nuevo? ð Aleatorio ð FIFO ð FINUFO ð LRU ð LFU Ö Búsqueda de bloques Ø ¿Cuándo nos llevamos un nuevo bloque de memoria secundaria a memoria física? ð Bajo demanda ð Anticipativo estructura y tecnología de computadores 5 2. memoria virtual paginada Fundamentos Ö Espacio virtual de direcciones Ø Se divide en páginas de tamaño fijo Nº de página P Ø Dirección virtual: Desplazamiento D p bits ð Tamaño de una página: 2d palabras ð Nº máximo de páginas (por proceso): 2p páginas d bits Ö Espacio físico de direcciones Ø Se divide en marcos de página del mismo tamaño que una página Ø Dirección física: Nº de marco M Desplazamiento D m bits ð Tamaño de un marco: 2d palabras ð Nº total de marcos en MP: 2m marcos d bits Ö Traducción de direcciones MP Ø Necesario un mecanismo de correspondencia para conocer en qué marco de página (M) de MP está ubicado una determinada página de memoria virtual (P) Marco M-1 DV: Nº de página Desplazamiento P Marco M Mecanismo de correspondencia Ø Para un proceso J, en el instante de tiempo T, el mecanismo de correspondencia nos da: D D M M, si en el instante T la página P reside en MP F(J,T,P) = DF: Nº de marco Desplazamiento Marco M+1 Fallo de página, en caso contrario estructura y tecnología de computadores 6 2. memoria virtual paginada Técnicas de traducción de direcciones Ö Traducción directa Ø Idea básica: existe una tabla de páginas (TP) por cada proceso J ð La TP contiene una entrada por cada posible página del proceso J ⇒ 2p entradas por proceso ð La entrada P-ésima de la TP contiene el marco de página, M, dónde está ubicada la página P (si está en MP) ð La TP de un determinado proceso J está apuntada por un registro base asignado a ese proceso Reg. base proceso J: Dir. Inicio TP Tipo de acceso solicitado: MP RWX DV: Nº de página Desplazamiento Marco M-1 P P H C RWX Nº de marco Excepción ≠ D Tabla de páginas del proceso J (2p entradas) Marco M D M DF: Nº de marco Desplazamiento TEST Ö Problemas de la traducción directa Marco M+1 H: Bit de acierto de referencia (Hit) H=1 ⇒ Acierto (página en MP) ⇒ Nº de marco válido H=0 ⇒ Fallo de página ⇒ Nº de marco inválido Ø La TP debe almacenarse en memoria principal C: Bit de limpieza de la entrada (Clear) ð Se requieren dos accesos a MP por cada referencia C=1 ⇒ Marco no modificado ⇒ no necesita actualizarse C=0 ⇒ Marco modificado ⇒ necesita actualizarse en MS ü Se duplica el tiempo de acceso a memoria RWX: Tipo de acceso permitido : lectura/escritura/ejecución ð La TP puede ser de gran tamaño ü Ejemplo: DV de 32 bits con páginas de 1K ⇒ 222 pág. por proceso ⇒ TP de 222 entradas por proceso estructura y tecnología de computadores 7 2. memoria virtual paginada Técnicas de traducción de direcciones (cont .) (cont.) Ö Traducción asociativa Ø Objetivo: Reducir el tamaño de la TP Ø Idea básica: Sólo es necesario mantener una entrada en la TP para aquellas páginas que están en MP ð La TP tiene una entrada por cada marco de página en MP DV: Nº de página Marco M-1 P Tabla de páginas asociativa Nº de página MP Desplazamiento Nº de marco Marco M D ¿Hallada entrada? Sí Acceder a MP • • • P • • • No • • • M • • • D M DF: Nº de marco Desplazamiento Marco M+1 Fallo de página Ö Problemas de la traducción asociativa Ø No es posible el acceso directo a la TP ð Necesario comparar en nº de página con todas las entradas de la TP (1 comparador de p bits por entrada) ð Necesitamos una TP de acceso asociativo ü El coste de las memorias asociativas es muy elevado ð Ejemplo: MP de 64M (DF de 26 bits) con marcos de 1K ⇒ TP asociativa de 216 (64K) entradas estructura y tecnología de computadores 8 2. memoria virtual paginada Técnicas de traducción de direcciones: ejemplo Ö Comparación de los mecanismos de traducción directa y asociativa 3 bits DV: P 2 bits D Espacio virtual (32 palabras) 8 páginas 4 palabras/página 1 bit 2 bits M DF: Traducción directa P D DV: 010 11 D Espacio físico (8 palabras) 2 marcos de página 4 palabras/marco Dir. ini. TP P D MV 000 000 000 000 001 001 001 001 010 010 010 010 00 01 10 11 00 01 10 11 00 01 10 11 A0 B0 C0 D0 A1 B1 C1 D1 A2 B2 C2 D2 111 111 111 111 00 01 10 11 A7 B7 C7 D7 M D 0 0 0 0 1 1 1 1 00 01 10 11 00 01 10 11 MF A7 B7 C7 D7 A2 B2 C2 D2 X Tabla de Páginas + X X+1 X+2 • • • X+7 H M 0 0 1 --1 • • • • • • 1 0 DF: 1 M 11 D DF: 1 M 11 D Traducción asociativa P D DV: 010 11 • • • estructura y tecnología de computadores Tabla de Páginas Hallado P M 010 1 111 0 9 2. memoria virtual paginada Técnicas de traducción de direcciones (cont .) (cont.) Ö Traducción mixta Ø Objetivo: Reducir el tamaño de la tabla asociativa para reducir su coste Ø Idea básica: ð Se mantiene una pequeña tabla asociativa con las páginas más activas: TLB (Translation Look-Ahead Buffer) ü Tamaño típico de la TLB: 32 - 4K entrada ü TLB de pequeño tamaño ⇒ puede implementarse con tecnología más rápida ⇒ menor tiempo acceso ð Por otro lado se debe guardar la TP completa ü Para traducir una dirección cuya entrada no se encuentre en la TLB DV: Reg. base proceso J: Nº de página P TLB Dir. Inicio TP Tabla de Páginas (proceso J) Desplazamiento Nº página Nº marco D ¿Hallada entrada? P No H · · Nº Marco Acceder a TP M Sí P Acceder a MP M DF: Nº de marco Desplazamiento M Ö Problemas de la traducción mixta Ø Debemos seguir almacenando una TP por proceso en MP (ocupa mucho espacio) estructura y tecnología de computadores 10 2. memoria virtual paginada Técnicas de traducción de direcciones (cont .) (cont.) Ö Traducción a varios niveles Ø Objetivo: Resolver el problema del almacenamiento de la TP Ø Idea básica: Dividir la TP, a su vez, en páginas (paginación de la TP) ð Algunas páginas de la TP pueden residir en MP (no necesariamente contiguas) ð El resto de páginas pueden residir en MS ð Se utiliza una tabla de directorios que almacena las direcciones de comienzo las páginas de la TP ü La tabla de directorios se almacena en MP ü La dirección virtual se divide en tres campos: DV=(Nº de Directorio, Nº de Página, Desplazamiento) ð Este mecanismo se puede combinar con el uso de una TLB ð La paginación de la TP se puede realizar a varios niveles DV: Nº directorio Nº página Desplazamiento Reg. base proceso J: Dir. ini. tabla directorios T Tabla de Directorio (proceso J) P D Una página de la TP (correspondiente al directorio D) M H · · Dir ini. Pág. DF: Nº de marco Desplazamiento H · · Nº Marco Bit de presencia en memoria de la página del directorio T Bit de acierto del marco de página estructura y tecnología de computadores 11 2. memoria virtual paginada Elección del tamaño de la página Ö Es necesario tener en cuenta diversos factores Ø Tamaño de las unidades de transferencia con memoria secundaria ð Es conveniente que el tamaño de la página coincida con un nº entero de sectores ð De esta forma se optimiza tanto el uso como el tiempo de acceso a MS Ø Tamaño de la tabla de páginas ð Si el tamaño de la página aumenta ⇒ el tamaño de la TP disminuye Ø Tamaño medio de las entidades lógicas del programa ð Si el tamaño de la página es similar al tamaño medio de las entidades lógicas del programa ⇒ se aprovecha al máximo la localidad espacial Ø Fragmentación interna ð Cuando aumenta el tamaño de página la cantidad de memoria no usada en la última página crece Ö Ejemplos Computador IBM360/67 MC68020 MIPS R2000/3000 Alpha 21064 Pentium Tamaño Página 4KB 256 bytes a 32 KB 4KB 8KB 4KB o 4 MB estructura y tecnología de computadores 12 2. memoria virtual paginada Políticas de emplazamiento de páginas en MP Ö Todas las páginas son de igual tamaño y coinciden con el tamaño de los marcos de página Ø Emplazamiento trivial ð Una página se puede ubicar en cualquier marco de página libre ð No existen unas alternativas mejores que otras Políticas de reemplazamiento de páginas Ö Cuando no hay ningún marco de página libre es necesario reemplazar alguna de las páginas de MP Ö Principales algoritmos de reemplazamiento Ø Aleatorio ð La página a reemplazar se seleeciona aleatoriamente Ø FIFO (Firt-In-First-Out) ð La página a reemplazar es la que lleva más tiempo en MP ð Gestión: cola actualizada en cada fallo de página Ø FINUFO (Firt-In-Not-Used-First-Out) ð La página a reemplazar es la que lleva más tiempo en MP siempre que no haya sido usada recientemente ð Gestión: cola circular + bit de uso Ø LFU (Least-Frecuently-Used) ð La página a reemplazar es la que menos veces ha sido utilizada ð Problema: tiende a reemplazar las páginas que se han cargado en MP más recientemente ð Gestión: cola ordenada por cantidad de referencias de referencias Ø LRU (Least-Recently-Used) ð La página a reemplazar es la que lleva más tiempo sin ser utilizada ð Gestión: pila reordenada en cada referencia (la última página referenciada se coloca en la base de la pila) estructura y tecnología de computadores 13 2. memoria virtual paginada Políticas de búsqueda de páginas Ö Necesario decidir cuándo nos llevamos las páginas de MS a MP Ö Principales algoritmos de búsqueda Ø Búsqueda bajo demanda ð Una página se se lleva a MP sólo cuando produce un fallo de referencia Ø Prebúsqueda de la página sucesora ð Cuando la página P produce un fallo de referencia, se llevan a memoria las páginas P y P+1 Ø Prebúsqueda con predicción ð Cada página P tiene asociada una predicción PRED(P) ü Inicialmente PRED(P) = P+1 ð Cuando la página P produce un fallo de referencia, se llevan a MP las páginas P y Q = PRED(P) ü Si tras llevar P y Q a MP, la página Q no ha sido referenciada y se produce un fallo de la página R ≠ Q entonces se actualiza PRED(P) = R Políticas de actualización de la MS Ö Necesario mantener la coherencia entre MP y MS Ø Cuando se modifica una página en MP es necesario actualizar esa misma página en MP Ö La política de actualización que se usa en memoria virtual es la post-escritura Ø Una página modificada se actualiza en MS solamente cuando se reemplaza Ø Motivo: el tiempo de acceso a MS (tiempo de acceso a disco) es muy grande ð La política de escritura directa no resulta eficiente estructura y tecnología de computadores 14 3. memoria virtual segmentada Fundamentos Ö Espacio virtual de direcciones Ø Se divide en segmentos de tamaño variable Ø Dirección virtual: Nº de segmento S Desplazamiento D ð Tamaño máximo de un segmento: 2d palabras ð Nº máximo de segmentos (por proceso): 2s. s bits d bits Ø Los campos S y D son de tamaño fijo, pero un segmento puede tener una longitud variable entre 0 y 2d palabras Ö Espacio físico de direcciones Ø No está particionado a priori ⇒ Un segmento puede comenzar y terminar en cualquier posición de MP Ö Traducción de direcciones Ø Necesario un mecanismo de correspondencia para conocer en qué posición de MP comienza el segmento (Dirección inicial del segmento) ð Para calcular la DF asociada a la DV se suma el desplazamiento a la dir. ini. del segmento Ø Para un proceso J, en el instante de tiempo T, el mecanismo de correspondencia nos da: DV: Nº de segmento Desplazamiento S Mecanismo de correspondencia D Dir. Ini. Segmento Dir. ini. segmento, si en el instante T el segmento S reside en MP F(J,T,S) = Fallo de segmento, en caso contrario Ö Ventajas de la MV segmentada Ø El tamaño de los segmentos se puede adaptar al tamaño de las entidades lógicas de los programas ð Elimina problema de fragmentación interna (no se desaprovecha el espacio de los segmentos) estructura y tecnología de computadores MP Segmento S D 15 3. memoria virtual segmentada Técnicas de traducción de direcciones Ö Traducción directa Ø Idea básica: existe una tabla de segmentos (TS) por cada proceso J ð La TS contiene una entrada por cada posible segmento del proceso J ⇒ 2s entradas por proceso ð La entrada S-ésima de la TS contiene la dirección inicial de MP donde comienza el segmento S (si está en MP) ð La TS de un determinado proceso J está apuntada por un registro base asignado a ese proceso Tipo de acceso solicitado: Reg. base proceso J: Dir. Inicio TP RWX S S ≠ D Tabla de segmentos del proceso J (2s entradas) H C RWX Excepción MP DV: Nº de segmento Desplazamiento Segmento S D Long. Dir. ini. seg. TEST Test Excepción (si D > Long.) H: Bit de acierto de referencia (Hit) → igual que MV paginada C: Bit de limpieza de la entrada (Clear) → igual que MV paginada RWX: Tipo de acceso permitido → igual que MV paginada Long: longitud del segmento (nº de palabras que contiene) Si D > long. ⇒ nos salimos del segmento ⇒ excepción Políticas de reemplazamiento, reemplazamiento, búsqueda y actualización de segmentos Ö Similares a MV paginada estructura y tecnología de computadores 16 3. memoria virtual segmentada Políticas de emplazamiento de segmentos Ö Cuando se produce un fallo de segmento es necesario buscar una ubicación en MP adecuada Ø Emplazamiento no trivial ð Los segmentos pueden ser de tamaño distinto ð Los “huecos” o zonas libres existentes en MP también son también de distintos tamaños Ö Gestión de zonas libres de memoria Ø Las zonas de memoria libre se suelen gestionar mediante una lista enlazada ð Tenemos un puntero que apunta a la primera zona libre de memoria ð Al comienzo de cada zona libre tenemos una cabecera que almacena: ü El tamaño de esa zona de memoria ü Un puntero con la dirección de comienzo de la siguiente zona libre MP Punt. Punt. Sig. Tamaño Zona libre Gestión de zonas libres mediante lista enlazada: Zona usada Punt. Sig. Tamaño Zona libre Zona usada Punt. Sig. Tamaño estructura y tecnología de computadores 17 3. memoria virtual segmentada Técnicas de ubicación de segmentos MP Ö Algoritmos de ubicación Zona libre 20K aj us te Ø Primer ajuste ð El segmento se ubica en la primera zona libre donde quepa ð Algoritmo simple pero poco óptimo Ø Mejor ajuste ð El segmento se ubica en la zona más pequeña donde quepa ð Provoca fragmentación externa ü Quedan zonas libres de pequeño tamaño que no pueden ser usadas para ubicar otros segmentos Ø Peor ajuste ð El segmento se ubica en la zona más grande donde quepa ð Reduce el problema de la fragmentación externa Ø Retoños (binary-buddy) ð Disponemos de n listas enlazadas en lugar de una sola ü La lista k-ésima encadena huecos de tamaño 2k Pr im er Zona usada Zona libre 7K Mejor ajuste Ubicación de un segmento de 13 K Zona usada Zona libre 14K Pe or aju ste Zona usada Zona libre 30K Zona usada MP Punt. Sig. Zona libre (tamaño 2k+1) Lista de punteros ð Para ubicar un segmento de tamaño 2k ü Asignar un hueco de la lista k-ésima ð Si la lista k-ésima está vacía ⇒ tenemos dos soluciones ü Dividir un hueco de la lista (k+1)-ésima en dos huecos (retoños) de tamaño 2k ü Agrupar 2 huecos contiguos de la lista (k-1)-ésima Zona usada Punt. Sig. Zona libre (tamaño 2k) 0 • • • k k+1 Zona usada Punt. Sig. Punt. Zona libre (tamaño 2k+1) Punt. • • • Zona usada Punt. Sig. Zona libre (tamaño 2k) n-1 estructura y tecnología de computadores 18 4. memoria virtual segmentada/paginada segmentada/paginada Fundamentos Ö Espacio virtual de direcciones Ø Se divide en segmentos de tamaño variable Ø Cada segmento está compuesto por un número variable de páginas de igual tamaño ð Nº máximo de segmentos (por proceso): 2s Nº segmento Nº página Desplazamiento Ø Dirección virtual: P S D ð Tamaño máximo de un segmento: 2p páginas ð Tamaño de cada página: 2d palabras s bits p bits d bits Ø Los campos S, D y P son de tamaño fijo, pero un segmento puede tener una longitud variable entre 0 y 2p páginas Ö Espacio físico de direcciones Ø Se divide en marcos de página del mismo tamaño que una página Ø Dirección física: Nº de marco M m bits Desplazamiento D ð Tamaño de un marco: 2d palabras ð Nº total de marcos en MP: 2m marcos d bits MP Ö Traducción de direcciones Ø Necesario un mecanismo de correspondencia para conocer en qué marco de página (M) de MP está ubicada la página P del segmento S Ø Para un proceso J, en el instante de tiempo T, el mecanismo de correspondencia nos da: F(J,T,S,P) = M, si en el instante T la página P del segmento S reside en MP Fallo de página, en caso contrario estructura y tecnología de computadores Marco M-1 DV: Nº segmento Nº página Desplazamiento S P Mecanismo de correspondencia Marco M D M DF: Nº de marco Desplazamiento Marco M+1 D 19 4. memoria virtual segmentada/paginada segmentada/paginada Técnicas de traducción de direcciones Ö Traducción directa Ø Idea básica: ð Existe una tabla de segmentos (TS) por cada proceso J ð Cada entrada de la TS almacena la dirección de comienzo de la tabla de páginas (TP) de ese segmento ð La TP del segmento S contiene una entrada por cada página P de ese segmento Reg. base proceso J: Dir. ini. tabla segmentos DV: Nº segmento Nº página Desplazamiento S D P Tabla de Segmentos (proceso J) Tabla de Páginas del segmento S M H · · Long. Dir ini. TP DF: Nº de marco Desplazamiento H · · Nº Marco Bit de presencia en memoria de la TP del segmento S Bit de acierto del marco de página Ø Ø Ø Ø Excepción (si P > Long.) Test Ö Observaciones Long: longitud del segmento (nº de páginas que contiene) Si P > Long. ⇒ nos salimos del segmento ⇒ excepción Los bits de tipo de acceso (RWX) pueden estar en la TS o en La TP La TS está compactada en MP Las TPs correspondientes a distintos segmentos pueden estar dispersas en la MP y algunas pueden residir en MS Igualmente, las páginas de un mismo segmento no tienen por qué cargarse en posiciones consecutivas de MP y algunas pueden residir en MS estructura y tecnología de computadores 20 4. memoria virtual segmentada/paginada segmentada/paginada Técnicas de traducción de direcciones (cont .) (cont.) Ö Traducción mixta Ø Se mantiene una pequeña tabla asociativa (TLB) con las páginas más activas Ø Por otro lado debemos guardar la TS (en MP) y las TPs de los distintos segmentos (en MP o MS) ð Para traducir una dirección cuya entrada no se encuentre en la TLB DV: Nº segmento Nº página Desplazamiento S D P TLB D Nº segmen. Nº página Nº marco ¿Hallada entrada? No Acceder a TS y a TP S P Sí Acceder a MP estructura y tecnología de computadores M M DF: Nº de marco Desplazamiento M 21 5. interrelación MV-MP-MC Acceso a la cache en un sistema con memoria virtual Ö El acceso a la cache puede realizarse utilizando Ø Direcciones físicas Ø Direcciones virtuales Cache de direcciones físicas Ö Idea básica Ø El acceso a la cache se realiza utilizando direcciones físicas Ö Problema Ø Los programas generan direcciones virtuales ð Para acceder a la cache de direcciones físicas es necesario primero realizar la traducción DV → DF ð Aumenta los retardos, ya que la traducción de direcciones y el acceso a la cache se realizan en serie Ö Posible mejora Ø En ocasiones es posible solapar parcialmente la traducción de direcciones con el acceso a la cache Ø Si el campo bloque (emplaz. directo) o conjunto (emplaz. asoc. por cjtos.) está contenido en el campo desplazamiento ð Es posible acceder a la(s) etiqueta(s) de ese bloque o conjunto en paralelo con la traducción ð Una vez completada la traducción se realiza la comparación del campo etiqueta de la DF DV: Nº de página Nº de marco desplazamiento desplazamiento DF: Etiqueta BóC P No varía estructura y tecnología de computadores 22 5. interrelación MV-MP-MC Cache de direcciones virtuales Ö Idea básica Ø Permite acceder a la cache usando directamente la DV Ø Acelera el acceso a la cache eliminando el tiempo de traducción DV → DF Ö Problema Ø Colisiones ð Cada proceso tiene su propio espacio de direcciones virtuales ð Dos procesos pueden generar DV idénticas que se refieren a DF distintas ð Sin embargo, ambas DV accederán a la misma posición de cache DV: DF: Proceso 1 x y Cache DV: DF: Proceso 2 x z Ø Solución ð Añadir en la etiqueta de la cache un identificador del proceso al que pertenece ese bloque estructura y tecnología de computadores 23 5. interrelación MV-MP-MC Mantenimiento de la coherencia entre MC y MP Ö Cuestiones planteadas Ø ¿Qué ocurre cuando se reemplaza una página en MP y algún bloque de es página estaba en MC? Ø ¿Qué ocurre cuando un DMAC ordena escribir sobre un bloque de MP que está en MC? Ö En ambos casos se produce un problema de incoherencia entre la MP y la MC Ø El contenido de la MP ha variado y por tanto MP y la MC no contienen la misma información MP Marco k MC MP Marco k Reemplazamiento marco k Coherencia MP-MC MC Incoherencia MP-MC Ö Solución Ø Invalidar todos los bloques de cache que se ven afectados por esa modificación en la MP DMA y memoria virtual Ö Cuestión planteada Ø ¿Un controlador DMA debe utilizar direcciones virtuales o físicas? Ö Solución: debe emplear direcciones virtuales Ø El DMAC controla las transferencias de un bloque hacia/desde posiciones consecutivas de memoria Ø Para ello emplea registro de direcciones que se incrementa/decrementa después de cada transferencia Ø Si el DMAC usa direcciones físicas y el bloque a transferir no cabe en una sola página sería necesario acceder a dos páginas distintas que no tienen por qué estar ubicadas en posiciones consecutivas de memoria estructura y tecnología de computadores 24 6. ejemplos Memoria virtual en el ALPHA 21064 Ö Memoria virtual paginada Traducción a tres niveles Ø MV dividida en páginas de 8KB Ø MF dividida en marcos de página de 8KB Ø Traducción de direcciones mixta ð Tres niveles de tablas de páginas ð TLB de 32 entradas 21 bits 10 bits 10 bits 10 bits 13 bits Ö Espacio virtual de direcciones Ø Dividido en 3 regiones o segmentos ð Dos regiones de usuario (seg0, seg1) ü 243 bytes (8TB) cada una ð Una región para el sistema operativo (kseg) ü 243 bytes (8TB) Ø Direcciones virtuales de 64 bits ð Los 21 bits más significativos para especificar la región (con 3 habría suficiente) ü 000···000: seg0 ü 100···000: kseg ü 111···111: seg1 ð Los 43 bits menos significativos para especificar la dirección dentro de la región ü 30 bits para especificar en nº de página ü 13 bits de desplazamiento (8KB por página) Ö Espacio físico de direcciones Ø Direcciones físicas de 34 bits (16 GB) ð 21 bits para especificar el nº de marco ð 13 bits para especificar el desplazamiento (8KB por marco) estructura y tecnología de computadores TLB 21 bits 13 bits 25 6. ejemplos Memoria virtual en el PENTIUM Ö Dispone de hardware de segmentación y hardware de paginación activables por separado Ø Unidad de segmentación (US) DV (46 bits) ð Utiliza DV de 46 bits (64 TB direccionables) segmento desplaz. ð Genera una Dirección Lineal (DL) de 32 bits ð Traducción de direcciones mediante TS ð Tamaño del segmento: de 1 byte a 4 GB Tabla de Ø Unidad de paginación (UP) segmentos ð Utiliza DL de 32 bits (4GB direccionables) ð Genera una DF 32 bits ð Traducción de direcciones a dos niveles mixta ü Tabla de Directorios + TP (una por direct.) ü TLB de 32 entradas con las pág. más activas Unidad de ð Tamaño de la página: 4 KB o 4 MB segmentación Ö Existen 4 formas de ver la memoria DF (32 bits) DL (32 bits) Nº de marco desplaz. direct. página desplaz. Tabla de directorios Tabla de páginas TLB (32 ent.) Unidad de paginación Ø Memoria no segmentada y no paginada (desactivadas US y UP) ð DV = DF (32 bits) ü No existe mecanismo de traducción ü Los programas generan direcciones de 32 bits que se interpretan como direcciones físicas Ø Memoria segmentada no paginada (activada US, desactivada UP) ð DV (46 bits) → DL = DF (32 bits) ü La DV se traduce a una dirección lineal que se utiliza como DF para acceder a MP Ø Memoria paginada no segmentada (activada UP, desactivada US) ð DV (32 bits) → DF (32 bits) ü Los programas generan DV de 32 bits que se traducen a una DF también de 32 bits Ø Memoria segmentada/paginada (activadas US y UP) ð DV (46 bits) → DL (32 bits) → DF (32 bits) ü La unidad de segmentación traduce la DV de 46 bits a una DL de 32 bits ü La unidad de paginación traduce la DL de 32 bits a una DF de 32 bits estructura y tecnología de computadores