Anda di halaman 1dari 72

MEMORIA

El sistema de memoria es el lugar donde


residen los programas y datos
Ubicacin y jerarqua Capacidad y direccionamiento Unidad de transferencia Mtodo de acceso Desempeo Caractersticas fsicas Materia prima Memoria interna CPU

Jerarqua memoria
Relaciones caractersticas 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 tecnologa, sino emplear una jerarqua de memoria Conforme se desciende en la jerarqua: decremento costo por bit incremento capacidad incremento tiempo acceso decremento frecuencia acceso directo CPU

Ubicacin y jerarqua
Ubicacin memoria interna = memoria principal memoria CPU: memoria representada por registros memora externa: dispositivos perifricos de almacenamiento (disco y cintas) accesible al CPU va controladores de E/S Jerarqua Diseo memoria depende de tres preguntas: Cuanta? Qu tan rpida? Qu tan cara?

Jerarqua tradicional memoria

Registros Cach Memoria Principal Disco Magntico Cinta Magntica

Jerarqua contempornea memoria

Registros

Cach
Memoria Principal Disco Cach Disco Magntico Cinta Magntica Disco Optico

Capacidad y direccionamiento
Memorias consisten de celdas Cada celda puede almacenar una porcin informacin, pero es la misma para todas Cada celda tiene asociado un nmero: su direccin Las direcciones empiezan en cero Memoria de n celdas => direcciones 0...n-1

direccionamiento: capacidad de acceder a una celda de memoria direccin tiene una longitud: m bits

nmero mximo bits direccionables 2m

nmero bits direccin esta relacionado con el nmero mximo de celdas direccionables directamente en memoria y es independiente del nmero de bits por celda
memoria con 212 celdas de 8 bits cada celda memoria con 212 celdas de 32 bits cada una ambas necesitan 12 bits de para su direccin

Ejemplos estructura memoria 96 bits


0 1 2 3 4 5 16 bits 0 1

0 1 2 3 4

2 5 3

6
4 7 5 6 8

9
7 10 12 bits 11 8 bits

Celda, palabra y byte


celda = unidad ms pequea direccionable byte = celda de 8 bits palabra = unidad natural organizacin memoria, igual al nmero de bits usados para representar un nmero y al tamao instruccin Mquina de 16 bits
tiene registros de 16 bits e instrucciones para manipular palabras de 16 bits

Mquina 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: numeracin comienza por el extremo mayor (ejemplo: Motorola) Little endian: numeracin empieza en el extremo menor (ejemplo: Intel)

Big endian y little endian


Representacin de una palabra de 32 bits
Little endian 0 3 4 7 8 11 12 15 Direccin 2 6 10 14 1 5 9 13 0 4 8 12 0 4 8 12 0 4 8 12 Big endian 1 5 9 13 2 6 10 14 3 7 11 15

Byte

Direccin

Byte

Unidad de transferencia
Memoria interna:
Nmero de bits de datos a transferir dentro y fuera del mdulo de memoria Este puede ser igual al tamao de la palabra

Memoria externa:
Los datos se transfieren a menudo en unidades muchos ms grandes que una palabra, (bloques)

Tipos transferencia
Secuencial Paralela

Transferencia paralela
0 0 1 1 0 0 0 1 1 1 0 1 1 0 1 0 1 0 0 1 1 0 0 1

Memoria

Cifras binarias relativas a un dato son recibidas simultneamente. Direccin entra a travs de otras lneas

1 0

Direccin

13

Transferencia secuencial

Datos y direccin

101010 110011 10101

Memoria

Todos los datos incluidos los de direccin, entran por una lnea nica y son seleccionados por un circuito lgico

Mtodo de acceso
Acceso secuencial Memoria organizado en unidades de datos, llamadas registros Acceso se efecta en una secuencia lineal especifica Se utiliza un mecanismos de lectura/ escritura, el cual debe ser movido de su posicin actual a la posicin deseada Unidades de cinta son un buen ejemplo Acceso directo Tambin implica mecanismo lectura/escritura compartido Registros tienen asociada una direccin nica que se basa en su localizacin fsica Acceso se complementa con una bsqueda secuencial, un contador para alcanzar la localidad final ejemplo: unidades de disco

Acceso aleatorio
Cada unidad direccionable cuenta con un mecanismo nico de direccionamiento, interalambrado fsicamente Cualquier localidad puede ser seleccionada de manera aleatoria y accederse o direccionarse en forma directa ejemplo: memoria principal computadora

Acceso asociativo
Tipo de memoria de acceso aleatorio Una palabra se recupera con base en un parte de sus contenido ms que en su direccin Cada posicin cuenta con su propio mecanismo de direccionamiento ejemplo: tipo especial de memoria cach

Desempeo
Tiempo de acceso
Acceso aleatorio: tiempo que se tarda en realizar una operacin de lectura o escritura Tiempo que transcurre entre el instante en que una direccin 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 ms cualquier tiempo adicional requerido antes que un segundo acceso pueda empezar

Memoria principal de semiconductores


Forma ms comn de acceso aleatorio era un arreglo de unidades ferromagnticas conocidas como cores Memoria principal era conocida como core Hoy en da: uso de chips semiconductores Tipos ms comunes
RAM ROM PROM EPROM EEPROM FLASH MEMORY

Memoria tipo RAM Random Access Memory Es posible leer y escribir datos mediante seales elctricas Memoria voltil, dividida en dos tecnologas: Estticas: datos almacenados en capacitores, tienden a descargarse y requieren de carga peridica Dinmicas: valores almacenados usando compuertas flip/flops, los datos sern almacenados mientras exista energa elctrica

Memoria tipo ROM


Read Only Memory Contiene datos permanentes que no pueden ser cambiados, i.e. no voltil Es posible leer pero no escribir Datos insertados como parte del proceso de fabricacin Aplicaciones:
libreras subrutinas para funciones muy buscadas programas de arranque de un sistema

Memoria tipo PROM


Programmable ROM No voltil Puede escribirse solo una vez Escritura es elctrica y requiere de un proceso especial PROMS: proporcionan flexibilidad ROM: atractivas para grandes volmenes

Memoria tipo EPROM


Erasable Programmable ROM Antes de escribir debe borrarse el contenido Lectura y escritura elctrica (como en PROM) El borrado se realiza a travs luz ultravioleta Es ms cara que la PROM Ventaja: capacidad de actualizacin mltiple

Memoria tipo Flash Memory


Flash: velocidad en la que puede ser reprogramada introducida por primera vez mediados 80s En costo y funcionalidad: entre EPROM y EEPROM Usa borrado elctrico y borra en unos segundos Borrado a nivel bloques y no a nivel byte

Resumen caractersticas
Tipo de Categora memoria RAM memoria lectura y escritura ROM solo lectura Borrado Mecanismo Volatilidad de escritura elctrico voltil no voltil

elctrico por byte no posible cartulas

PROM

solo lectura

no posible elctrico
luz UV elctrico

no voltil
no voltil

EPROM lectura

EEPROM principalmente lectura Flash principalmente lectura

elctrico elctrico por byte elctrico elctrico por bloque

no voltil
no voltil

La Memoria interna del CPU


Memoria representada en forma de registros Usados para almacenar clculos temporales Algunos definen el estatus de la operacin efectuada Tambin puede almacenar instrucciones

Registros ms comunes
PC Program Counter
siguiente instruccin a ejecutar

IR Instruction Register
la instruccin a ejecutar

MAR Memory Addres Register


direccin palabra a ser leda o escrita

MBR: Memory Buffer Register


contenido a ser escrito o de lo que fue ledo

Registros Temporales
Almacenar temporalmente operandos y resultados de las operaciones de la ALU Los ms 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 operacin C: hubo un carry en la operacin

Memoria cache
Objetivo: Conseguir que las referencias a memoria se sirven a una velocidad muy cercana a la del procesador Diseo de la MCa:

Se debe tener en cuenta la optimizacin de los siguientes parmetros: probabilidad de acierto, tiempo de acceso efectivo, retardos debidos a fallos actualizacin de la MP en caso de escritura Est dividida lgicamente 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)

Diseo de la organizacin jerrquica de la Memoria Cache


Implica definir polticas de ubicacin, reemplazo y resolver el problema de la coherencia en los diferentes niveles de la jerarqua de memoria (poltica de actualizacin).

Organizacin de la Memoria Cache


La CPU lanza la direccin al bus de direcciones El controlador de cach indica a la memoria cach la direccin. Si el dato est en la memoria cach, sta devuelve acierto. Tambin hay que comprobar que el dato es correcto (bit de validez) El dato de la cach pasa a la CPU. Si hay fallo, la direccin se lanza a la memoria principal. El mecanismo es transparente a la CPU.

Memoria cache
Consideraciones de un sistema con memoria cache: Poltica de ubicacin Poltica de extraccin Poltica de reemplazo Poltica de actualizacin

Polticas de ubicacin
Las polticas de ubicacin establecen la correspondencia entre los bloques de la MP y de la MCa Las polticas de ubicacin ms importantes son: Directa Asociativa Asociativa por conjuntos Ejemplo de aplicacin: Establecer la correspondencia entre MP de 1 Mbyte y Mca 1 Kbyte en un sistema con bloques de 8 bytes: Direccin fsica: 20 bits Tamao de bloque: 8 bytes = 23 bytes/bloque Capacidad MCa: 1Kbytes= 210 bytes Nbloques MCa = Capacidad MP: 1 Mbyte = 220 bytes Nbloques de MP =

Correspondencia directa
Una direccin en Mca consta de: Etiqueta N de bloque de Mca Posicin en el bloque (palabra) Solucin: 23 bytes/bloque 3 bits para la posicin dentro del bloque 27 bloques de Mca 7 bits para cada bloque 10 bits para cada etiqueta VENTAJAS: La lectura permite el acceso simultneo: 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

Ejemplo
Una cach asociativa por conjuntos consta de 64 lneas divididas en conjuntos de 4 lneas. 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

Memoria Virtual

Gestin de la memoria
Mono programacin
La memoria se divide en dos partes. Una para el sistema operativo (el monitor residente). Otra para el programa que se est ejecutando.

Multiprogramacin
La parte de usuario se subdivide y se comparte entre los distintos procesos activos.

Intercambio (swapping)
Problema: las actividades de E/S son tan lentas en comparacin 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 da no. Origina procesos mayores.

Otra solucin 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 estn esperando una operacin de E/S):

El procesador intercambia uno de los procesos bloqueados, situndolo en una cola intermedia. A continuacin, acepta una nueva peticin de proceso. Pero... el intercambio es una operacin de E/S.

Definicin de particiones
La memoria se divide en secciones a las que se asignan los procesos (incluido el sistema operativo). Particiones de tamao fijo:
Pueden tener distinto tamao. El proceso que se introduce en memoria se sita en la particin ms pequea que puede incluirlo. Se desperdicia algo de memoria. Consecuencia: particiones de tamao variable.

Particiones Fijas
Sistema operativo 8M
8M

Sistema operativo 8M
2M 4M

6M 8M 8M

8M
8M 8M 12 M

8M

8M 16 M 8M
(a) Particiones de igual tamao (b) Particiones de distinto tamao

Particiones de tamao variable


Se asigna al proceso exactamente la memoria que necesita. Esto deja un hueco al final de la memoria, demasiado pequeo para poderse utilizar.
Tan slo queda un hueco pequeo (se desperdicia menos memoria).

Cuando todos los procesos estn 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 tamao variable (2)


Al final quedan muchos huecos pequeos (fragmentacin). Soluciones:
Fusin: los huecos contiguos se unen en un hueco ms grande. Compactacin: de vez en cuando, el sistema operativo desplaza los procesos en memoria para juntar toda la memoria libre en un bloque (frente a la desfragmentacin de disco).

Efecto de la particin dinmica


Sistema operativo Sistema operativo
Proceso 1 896K 576K 352K 320K Sistema opeativo Proceso 1 Proceso 2 320K

128K

Sistema opeativo
Proceso 1 Proceso 2 Proceso 3 320K

224K

224K
288K 64K

Sistema operativo Proceso 1 320K 224K Proceso 3 288K 64K

Sistema operativo Proceso 1 320K

Sistema operativo 320K Proceso 4 128K 96K Proceso 3 288K 64K

Sistema operativo Proceso 2 224K 96K Proceso 4 128K 96K Proceso 3 288K 64K

Proceso 4 128K 96K Proceso 3 288K 64K

Reposicionamiento
No es seguro que el proceso se cargue en la misma posicin de la memoria. Las instrucciones contienen direcciones:
Direcciones de datos Direcciones de instrucciones (de salto)

Direccin lgica: indica una posicin relativa al comienzo del programa. Direccin fsica: indica la posicin actual en la memoria principal. Conversin automtica utilizando la direccin base.

Paginacin
La memoria se divide en partes iguales y relativamente pequeas (marcos de pgina). Los programas (procesos) tambin se dividen en partes iguales y relativamente pequeas (pginas). Se asigna el nmero de marcos de pgina que un proceso necesita. El sistema operativo mantiene una lista de tres marcos. Un proceso no necesita marcos de pgina contiguos. El procesador utiliza una tabla de pginas para cada proceso.

Direccin lgica y fsica: paginacin


Memoria principal

Pgina 0 de A Nmero Direccin relativa Nmero Direccin relativa de pgina dentro de la pgina de pgina dentro del marco Direccin lgica Direccin fsica Pgina 1 de A

Pgina 2 de A

Pgina 3 de A

Tabla de pginas del proceso A

Memoria virtual
Paginacin por demanda
No es necesario que todas las pginas de un proceso se encuentren en la memoria. Cada pgina se introduce en la memoria slo cuando se necesita.

Fallo de pgina
La pgina deseada no se encuentra en la memoria. El sistema operativo debe cargar la pgina deseada. Es posible que el sistema necesite sacar una pgina para dejar un hueco libre. Se selecciona la pgina que se va a sacar en funcin de su historia reciente.

Hiperpaginacin
Una memoria pequea almacena demasiados procesos. El sistema operativo pasa la mayor parte del tiempo intercambiando pginas. Apenas se realizan trabajos efectivos. La luz del disco permanece encendida todo el tiempo. Soluciones:
Un buen algoritmo que determine la pgina 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 pginas 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 pginas


Direccin virtual Pgina # Desplazamiento

Tabla de pginas Pgina # Elemento Cadena

(Dispersin)

Marco #

Marco # Tabla de dispersin Tabla de pginas invertida

Desplazamiento

Direccin real

Segmentacin
Normalmente la paginacin es invisible para el programador. La segmentacin, 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 segmentacin
Simplifica la gestin 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 proteccin. Algunos sistemas combinan la segmentacin y la paginacin.

Memoria Virtual
Direcciones Virtuales (DV)

Traduccin de Direcciones

Direcciones Fisicas (DF)

Direcciones de Disco

Memoria Virtual
Se requiere un traduccin, ya que los programas generan direcciones lgicas (Virtuales)pero para la ejecucin se necesitan direcciones fsicas (DF), Existen Tres Alternativas de Traduccin Memoria Virtual Paginada: El espacio virtual de direcciones se divide en paginas de tamao fijo. El espacio fsico de direcciones se divide en marcos de pagina del mismo tamao que una pagina Existen varios mecanismos de traduccin: Traduccin 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 seala a su TP.

Memoria Virtual
Asociativa: El objetivo es reducir el tamao de la TP. Solo es necesario mantener una entrada en la TP para aquellas paginas que estn en MP, es decir, la TP tiene un entrada por cada marco de pagina de MP. Mixta: se pretende reducir el tamao de la tabla asociativa par reducir su costo. Para ello se mantiene una pequea tabla asociativa con las pagina mas activas llamada TLB(Translation Lookaside Buffer).

Memoria Virtual Paginada


MP

DV

N de Pagina

Desplazamiento

Marco M-1

P
Mecanismo de Correspondenci a
Marco M

Marco M+1
Desplazamiento

DF

N de Marco

Memoria Virtual Segmentada


El espacio Virtual de direcciones se divide en segmentos de tamao variable.
MP

DV Fallo

N de Segmento

Desplazamiento

S
Mecanismo de Correspondenci a

D
Segmento S

Dir. Ini. de segmento Tamao mximo de un segmento: 2d palabras Tamao mximo de segmento (por Proceso): 2s

Memoria Virtual

Anda mungkin juga menyukai