MEMORIA El sistema de memoria es el lugar donde residen los programas y datos Ubicación y jerarquía Capacidad y direccionamiento Unidad de transferencia Método de acceso Desempeño Características físicas Materia prima Memoria interna CPU
Jerarquía memoria Relaciones características – tiempo acceso =====> mayor costo por bit – mayor capacidad ===> menor costo por bit – mayor capacidad ===> mayor tiempo acceso No caer en un solo tipo de memoria o tecnología, sino emplear una jerarquía de memoria Conforme se desciende en la jerarquía: – decremento costo por bit – incremento capacidad – incremento tiempo acceso – decremento frecuencia acceso directo CPU
Ubicación y jerarquía Ubicación – memoria interna = memoria principal – memoria CPU: memoria representada por registros – memora externa: dispositivos periféricos de almacenamiento (disco y cintas) accesible al CPU vía controladores de E/S Jerarquía – Diseño memoria depende de tres preguntas: ¿Cuanta? ¿Qué tan rápida? ¿Qué tan cara?
Jerarquía tradicional memoria Registros Caché Memoria Principal Disco Magnético Cinta Magnética
Jerarquía contemporánea memoria Registros Caché Memoria Principal Disco Caché Disco Magnético Cinta Magnética Disco Optico
Capacidad y direccionamiento Memorias consisten de celdas Cada celda puede almacenar una porción información, pero es la misma para todas Cada celda tiene asociado un número: su dirección Las direcciones empiezan en cero Memoria de n celdas => direcciones 0...n-1
l direccionamiento: capacidad de acceder a una celda de memoria l dirección tiene una longitud: m bits –número máximo bits direccionables 2 m Capacidad y direccionamiento
l número máximo de celdas direccionables directamente en memoria y es independiente del número de bits por celda –memoria con 2 12 celdas de 8 bits cada celda –memoria con 2 12 celdas de 32 bits cada una ambas necesitan 12 bits en celdas para su dirección Estructura
Ejemplos estructura memoria 96 bits
Celda, palabra y byte celda = unidad más pequeña direccionable byte = celda de 8 bits palabra = unidad natural organización memoria, igual al número de bits usados para representar un número y al tamaño instrucción Máquina de 16 bits – tiene registros de 16 bits e instrucciones para manipular palabras de 16 bits Máquina de 32 bits – registros 32 bits e instrucciones para palabras 32 bits
Ordenamiento bits dentro palabras Los bits dentro de un bytes pueden numerarse de izquierda a derecha o de derecha a izquierda Big endian: numeración comienza por el extremo mayor (ejemplo: Motorola) Little endian: numeración empieza en el extremo menor (ejemplo: Intel)
Big endian y little endian Dirección Byte Little endian Representación de una palabra de 32 bits Byte Big endian Dirección
Unidad de transferencia Memoria interna: – Número de bits de datos a transferir dentro y fuera del módulo de memoria – Este puede ser igual al tamaño de la palabra Memoria externa: – Los datos se transfieren a menudo en unidades muchos más grandes que una palabra, (bloques) Tipos transferencia – Secuencial – Paralela
14 Memoria Dirección Cifras binarias relativas a un dato son recibidas simultáneamente. Dirección entra a través de otras líneas Transferencia paralela
Transferencia secuencial Memoria Datos y dirección Todos los datos incluidos los de dirección, entran por una línea única y son seleccionados por un circuito lógico
Método de acceso Acceso secuencial – Memoria organizado en unidades de datos, llamadas registros – Acceso se efectúa en una secuencia lineal especifica – Se utiliza un mecanismos de lectura/ escritura, el cual debe ser movido de su posición actual a la posición deseada – Unidades de cinta son un buen ejemplo
Acceso directo – También implica mecanismo lectura/escritura compartido – Registros tienen asociada una dirección única que se basa en su localización física – Acceso se complementa con una búsqueda secuencial, un contador para alcanzar la localidad final ejemplo: unidades de disco Método de acceso
l Acceso aleatorio –Cada unidad direccionable cuenta con un mecanismo único de direccionamiento, interalambrado físicamente. –Cualquier localidad puede ser seleccionada de manera aleatoria y accederse o direccionarse en forma directa ejemplo: memoria principal computadora. Método de acceso
Acceso asociativo –Tipo de memoria de acceso aleatorio –Una palabra se recupera con base en un parte de sus contenido más que en su dirección –Cada posición cuenta con su propio mecanismo de direccionamiento ejemplo: tipo especial de memoria caché Método de acceso
Desempeño Tiempo de acceso – Acceso aleatorio: tiempo que se tarda en realizar una operación de lectura o escritura – Tiempo que transcurre entre el instante en que una dirección es presentada a la memoria y el instante que los datos han sido almacenados o puestos disponibles para su uso Tiempo ciclo de memoria – Aplicado a la memoria aleatoria – Es el tiempo de acceso más cualquier tiempo adicional requerido antes que un segundo acceso pueda empezar
Memoria principal de semiconductores Forma más común de acceso aleatorio era un arreglo de unidades ferromagnéticas conocidas como cores Memoria principal era conocida como core Hoy en día: uso de chips semiconductores Tipos más comunes – RAM – ROM – PROM – EPROM – EEPROM – FLASH MEMORY
Memoria tipo RAM Random Access Memory Es posible leer y escribir datos mediante señales eléctricas Memoria volátil, dividida en dos tecnologías: – Estáticas: datos almacenados en capacitores, tienden a descargarse y requieren de carga periódica – Dinámicas: valores almacenados usando compuertas flip/flops, los datos serán almacenados mientras exista energía eléctrica
Memoria tipo ROM Read Only Memory Contiene datos permanentes que no pueden ser cambiados, i.e. no volátil Es posible leer pero no escribir Datos insertados como parte del proceso de fabricación Aplicaciones: – librerías subrutinas para funciones muy buscadas – programas de arranque de un sistema
Memoria tipo PROM Programmable ROM No volátil Puede escribirse solo una vez Escritura es eléctrica y requiere de un proceso especial PROMS: proporcionan flexibilidad ROM: atractivas para grandes volúmenes
Memoria tipo EPROM Erasable Programmable ROM Antes de escribir debe borrarse el contenido Lectura y escritura eléctrica (como en PROM) El borrado se realiza a través luz ultravioleta Es más cara que la PROM Ventaja: capacidad de actualización múltiple
Memoria tipo Flash Memory Flash: velocidad en la que puede ser reprogramada introducida por primera vez mediados 80’s En costo y funcionalidad: entre EPROM y EEPROM Usa borrado eléctrico y borra en unos segundos Borrado a nivel bloques y no a nivel byte
Resumen características Tipo de memoria CategoríaBorradoMecanismo de escritura Volatilidad RAMmemoria lectura y escritura eléctrico por byte eléctricovolátil ROMsolo lecturano posiblecarátulasno volátil PROMsolo lecturano posibleeléctricono volátil EPROMlecturaluz UVeléctricono volátil EEPROMprincipalmente lectura eléctrico por byte eléctricono volátil Flashprincipalmente lectura eléctrico por bloque eléctricono volátil
La Memoria interna del CPU Memoria representada en forma de registros Usados para almacenar cálculos temporales Algunos definen el estatus de la operación efectuada También puede almacenar instrucciones
Registros más comunes PC Program Counter – siguiente instrucción a ejecutar IR Instruction Register – la instrucción a ejecutar MAR Memory Addres Register – dirección palabra a ser leída o escrita MBR: Memory Buffer Register – contenido a ser escrito o de lo que fue leído
Registros Temporales Almacenar temporalmente operandos y resultados de las operaciones de la ALU Los más comunes son: – AC: acumulador – MQ: Multiplier Quotient Banderas: indicadores que solo pueden tener dos valores: verdadero o falso – N: signo del acumulador (1= negativo) – Z: valor del acumulador es cero – V: overflow en la operación – C: hubo un carry en la operación
Memoria cache Objetivo: Conseguir que las referencias a memoria se sirven a una velocidad muy cercana a la del procesador Diseño de la MCa: Se debe tener en cuenta la optimización de los siguientes parámetros: probabilidad de acierto, tiempo de acceso efectivo, retardos debidos a fallos, actualización de la MP en caso de escritura Está dividida lógicamente en: El directorio y los bloques de datos estableciendo la correspondencia entre bloques de MP y bloques de MCa
JERARQUIA DE LAS MEMORIAS
Principio de localidad de referencias a memoria: Las referencias a memoria por parte del procesador (Is. y datos), tienden a estar agrupadas en el tiempo y en el espacio (posiciones de memoria). Localidad temporal (Bucles, Subrutinas) Localidad espacial (Tablas y Matrices)
Diseño de la organización jerárquica de la Memoria Cache Implica definir políticas de ubicación, reemplazo y resolver el problema de la coherencia en los diferentes niveles de la jerarquía de memoria (política de actualización).
Organización de la Memoria Cache La CPU lanza la dirección al bus de direcciones El controlador de caché indica a la memoria caché la dirección. Si el dato está en la memoria caché, ésta devuelve acierto. También hay que comprobar que el dato es correcto (bit de validez) El dato de la caché pasa a la CPU. Si hay fallo, la dirección se lanza a la memoria principal. El mecanismo es transparente a la CPU.
Consideraciones de un sistema con memoria cache: Política de ubicación Política de extracción Política de reemplazo Política de actualización Memoria cache
Políticas de ubicación Las políticas de ubicación establecen la correspondencia entre los bloques de la MP y de la MCa Las políticas de ubicación más importantes son: Directa Asociativa Asociativa por conjuntos Ejemplo de aplicación: Establecer la correspondencia entre MP de 1 Mbyte y Mca 1 Kbyte en un sistema con bloques de 8 bytes: Dirección física: 20 bits Tamaño de bloque: 8 bytes = 2 3 bytes/bloque Capacidad MCa: 1Kbytes= 2 10 bytes Nºbloques MCa = Capacidad MP: 1 Mbyte = 2 20 bytes Nºbloques de MP =
Una dirección en Mca consta de: Etiqueta Nº de bloque de Mca Posición en el bloque (palabra) Solución: 2 3 bytes/bloque 3 bits para la posición dentro del bloque 2 7 bloques de Mca 7 bits para cada bloque 10 bits para cada etiqueta Correspondencia directa VENTAJAS: La lectura permite el acceso simultáneo: al directorio y a la palabra dentro del bloque de Mca Algoritmo de reemplazo trivial Inconveniente: Incremento de la tasa de fallos de la MCa, si dos bloques de MP, que corresponden a un mismo bloque de MCa, se utilizan de forma alternativa
Correspondencia Asociativa
Correspondencia Asociativa por conjunto
Ejemplo Una caché asociativa por conjuntos consta de 64 líneas divididas en conjuntos de 4 líneas. La memoria principal contiene 4K bloques de 128 palabras cada uno. Muestre el formato de direcciones de memoria principal y Mca. 128 / 4 = 32 bloques en la memoria principal, es decir 847
Memoria Virtual
Gestión de la memoria Mono programación – La memoria se divide en dos partes. – Una para el sistema operativo (el monitor residente). – Otra para el programa que se está ejecutando. Multiprogramación – La parte de “usuario” se subdivide y se comparte entre los distintos procesos activos.
Intercambio (swapping) Problema de los dispositivos de E/S: las actividades de E/S son tan lentas en comparación con el procesador que, incluso en los sistemas multiprogramados, puede permanecer inactivo la mayor parte del tiempo. Soluciones: – Se puede ampliar la memoria principal. Es caro En tiempos pasados hoy en día no. Origina procesos mayores. – Otra solución es el intercambio.
¿Qué es el intercambio? Tenemos una cola a largo plazo de solicitudes de proceso almacenadas en disco. Los procesos “se intercambian” a medida que queda espacio disponible. Cuando un proceso ha concluido, se saca de la memoria principal. Si ninguno de los procesos en la memoria está en el estado preparado (por ejemplo, si todos están esperando una operación de E/S): – El procesador intercambia uno de los procesos bloqueados, situándolo en una cola intermedia. – A continuación, acepta una nueva petición de proceso. – Pero... el intercambio es una operación de E/S.
Definición de particiones La memoria se divide en secciones a las que se asignan los procesos (incluido el sistema operativo). Particiones de tamaño fijo: – Pueden tener distinto tamaño. – El proceso que se introduce en memoria se sitúa en la partición más pequeña que puede incluirlo. – Se desperdicia algo de memoria. – Consecuencia: particiones de tamaño variable.
Particiones Fijas Sistema operativo 8 M Sistema operativo 8 M 2 M 4 M 6 M 8 M 12 M 16 M (a) Particiones de igual tamaño(b) Particiones de distinto tamaño 8
Particiones de tamaño variable Se asigna al proceso exactamente la memoria que necesita. Esto deja un hueco al final de la memoria, demasiado pequeño para poderse utilizar. – Tan sólo queda un hueco pequeño (se desperdicia menos memoria). Cuando todos los procesos están bloqueados, se saca uno de la memoria y se carga otro nuevo. Puede que el proceso nuevo ocupe menos espacio que el que se ha retirado. Entonces queda otro hueco.
Particiones de tamaño variable (2) Al final quedan muchos huecos pequeños (fragmentación). Soluciones: – Fusión: los huecos contiguos se unen en un hueco más grande. – Compactación: de vez en cuando, el sistema operativo desplaza los procesos en memoria para juntar toda la memoria libre en un bloque (frente a la desfragmentación de disco).
Efecto de la partición dinámica SistemaoperativoSistemaoperativo SistemaoperativoSistemaoperativo Proceso 1 Proceso 2 Sistemaopeativo Proceso 1 Proceso 2 Proceso 3 Proceso 4 Sistemaopeativo Proceso 1 Proceso 2 896K 128K 352K 64K 576K 320K 224K 288K 224K 320K Sistemaoperativo Proceso 1 320K 288K 320K 128K 64K 224K Sistemaoperativo Proceso 4 Proceso 1 Proceso 3 96K 288K 64K 128K 96K 288K 64K 224K 96K 128K 288K 64K 9
Ejemplo de Reemplazo Una memoria Principal contiene 3 marcos, que inicalmente estan vacios. Si se produce la siguiente secuencia de peticiones de paginas, 4,2,4,5,1,4,3,1,6,5,1. Determinar la razon de aciertos en los tres supuestos siquientes. a)Empleando una politica de sustitucion FIFO b)Empleando una politica de sustitucioin LRU c)Empleando la politica de sustitucion Optima.
Sustitucion FIFO A A Realizar el método con 4 bloques o marcos
Sustitucion LRU A A A A
Reposicionamiento No es seguro que el proceso se cargue en la misma posición de la memoria. Las instrucciones contienen direcciones: – Direcciones de datos – Direcciones de instrucciones (de salto) Dirección lógica: indica una posición relativa al comienzo del programa. Dirección física: indica la posición actual en la memoria principal. Conversión automática utilizando la dirección base.
Paginación La memoria se divide en partes iguales y relativamente pequeñas (marcos de página). Los programas (procesos) también se dividen en partes iguales y relativamente pequeñas (páginas). Se asigna el número de marcos de página que un proceso necesita. El sistema operativo mantiene una lista de tres marcos. Un proceso no necesita marcos de página contiguos. El procesador utiliza una tabla de páginas para cada proceso.
Dirección lógica y física: paginación Memoria Memoriaprincipal Página 0 de A Página 2 de A Página 1 de A Página 3 de A Número de página Dirección relativa dentro de la página Número de página Dirección relativa dentro del marco DirecciónlógicaDirecciónfísica Tabla de páginas del proceso A
Memoria virtual Paginación por demanda – No es necesario que todas las páginas de un proceso se encuentren en la memoria. – Cada página se introduce en la memoria sólo cuando se necesita. Fallo de página – La página deseada no se encuentra en la memoria. – El sistema operativo debe cargar la página deseada. – Es posible que el sistema necesite sacar una página para dejar un hueco libre. – Se selecciona la página que se va a sacar en función de su historia reciente.
Hiperpaginación Una memoria pequeña almacena demasiados procesos. El sistema operativo pasa la mayor parte del tiempo intercambiando páginas. Apenas se realizan trabajos efectivos. La luz del disco permanece encendida todo el tiempo. Soluciones: – Un buen algoritmo que determine la página que se ha de remplazar. – Reducir la cantidad de procesos en curso. – Aumentar la memoria.
Ventajas No es necesario que la memoria almacene todos los procesos que se van a ejecutar. Podemos intercambiar las páginas que necesitemos. Por lo tanto, podemos ejecutar procesos mayores que toda la memoria. La memoria principal recibe el nombre de memoria real. El programador o usuario percibe una memoria mucho mayor (memoria virtual).
Estructura de la tabla de páginas Dirección virtual Página # Desplazamiento (Dispersión) (Dispersión) Tabla de dispersión Tabla de páginas invertida Dirección real Marco # Desplazamiento Tabla de páginas Página # ElementoCadena
Segmentación Normalmente la paginación es invisible para el programador. La segmentación, en cambio, es visible. Normalmente el programador asignará segmentos distintos a programas y datos. Puede haber distintos segmentos de programas y de datos.
Ventajas de la segmentación Simplifica la gestión de estructuras crecientes de datos. Permite modificar los programas y recopilarlos independientemente, sin que sea necesario volver a enlazar y cargarlos todos. Permite que varios procesos compartan segmentos. Se facilita la protección. Algunos sistemas combinan la segmentación y la paginación.
Memoria Virtual Direcciones Virtuales (DV) Direcciones Fisicas (DF) Traducción de Direcciones Direcciones de Disco
Memoria Virtual Se requiere un traducción, ya que los programas generan direcciones lógicas (Virtuales) pero para la ejecución se necesitan direcciones físicas (DF), Existen Tres Alternativas de Traducción Memoria Virtual Paginada: El espacio virtual de direcciones se divide en paginas de tamaño fijo. El espacio físico de direcciones se divide en marcos de pagina del mismo tamaño que una pagina Existen varios mecanismos de traducción: Traducción Directa Asociativa Mixta Directa: existe una tabla de pagina (TP) por cada proceso con una entrada por cada pagina que nos dice si la pagina esta en MP y en que marco esta ubicada. Cada proceso tiene un registro base que señala a su TP.
Memoria Virtual Asociativa: El objetivo es reducir el tamaño de la TP. Solo es necesario mantener una entrada en la TP para aquellas paginas que están en MP, es decir, la TP tiene un entrada por cada marco de pagina de MP. Mixta: se pretende reducir el tamaño de la tabla asociativa para reducir su costo. Para ello se mantiene una pequeña tabla asociativa con las pagina mas activas llamada TLB(Translation Lookaside Buffer).
Memoria Virtual Paginada N de PaginaDesplazamiento Mecanismo de Correspondenci a DV N de MarcoDesplazamiento MP Marco M-1 Marco M Marco M+1 D DF M P
Memoria Virtual Segmentada El espacio Virtual de direcciones se divide en segmentos de tamaño variable. N de SegmentoDesplazamiento Mecanismo de Correspondenci a DV MP Segmento S D S D Fallo Tamaño máximo de un segmento: 2 d palabras Tamaño máximo de segmento (por Proceso): 2 s Dir. Ini. de segmento
Memoria Virtual Disenar un sistema paginado de MV deacuerdo a las siguientes especificaciones: – Tamano del espacio virtual es de 64 K – Tamano del espacio de direcciones fisicas es de 8 k – Tamano de la pagina 512 palabras Traduccion directa
Solucion Numero de paginas en MV: » (64X1024)/512 = 128 Numero de marcos de pagina en MF » (8X1024)/512 = 16 64k = 2^16 (16 bits direccionables en Direcciones Virtuales) 8k = 2^13 direcciones fisicas, implican 13 bits para las direcciones fisicas
Ejemplo Un sistema de MV segmentada emplea un formato para las DV de 12 bits: los 3 bits mas significativos corresponden al segmento y los rstantes al desplazamiento. Considere la siguiente informacion: Se pide: calcular la direccion fisica correspondiente a las siguientes direcciones N de SegmentoDireccion BaseLongitud 00d fc00e 205a f244
1FE 21A 20B
MV Segmentada/Paginada El espacio virtual de direcciones se divide en segmentos de tamano variable, cada segmento esta compuesto por un numero variables de paginas de igual tamano. El espacio fisico de direcciones se divide en marcos de paginas del mismo tamano de una pagina Marco M-1 Marco M Marco M+1 N se SegmentoN de PaginaDesplazamiento s p d N de MarcoDesplazamiento D Mecanismo de corrspondencia M S P DV DF D
Ejemplo Un sistema de MV segmentada/paginada tiene una longitud para las Dv de 32bits divididas asi; longitud del campo del numero de segmento de 12 bits, la del numero de pagina es de 8bits y la longitud del campo de desplazamiento es de 12 bits. Se pide determinar el valor de la direccion fisica bajo los siguientes supuestos. La DV es 01B2A10F 16 El registro de inicio de la TS contiene el valor El contenido de la direccion 1001B 16 en la tabla de segmento es 100F2 16 El contenido de algunos registros en la TP es: – 1011B – 1011C FA 16 – 1011D AF 16
Solucion La DV es El registro base donde comienza la tabla de segmento contiene la direcion B 16 = 1001B 16 El contenido de la direccion 1001B 16 es 100F2 16 por lo que al sumar el contenido de la pagina de DV tenemos 1011C 16. Por lo que la direccion Fisica seria FA10F 16 SegmentoPaginaDesplazamiento