Tabla de Contenidos |
Ir a |
Descargar Archivo de Presentacion en Power Point |
|
Descargar Archivo Tarea.doc comprimido |
|
Resumen |
|
Capitulo 1 Introducción a los Niveles de Memoria |
|
1.1 Generalidades |
|
1.2 Jerarquización de la Memoria |
|
1.3 Algunas Definiciones |
|
Capítulo 2 Memoria Primaria |
|
2.1 Registros |
|
2.2 Memoria Principal Semiconductora |
|
2.3 Memoria Cache |
|
Capitulo 3 Memoria Secundaria |
|
3.1 Discos Magnéticos |
|
3.2 Memoria Optica |
|
3.3 Cinta Magnética |
|
3.4 Cache del Disco y Memoria Virtual |
|
Conclusiones |
|
Bibliografía |
El estudio de la memoria dentro del computador se plantea desde dos perspectivas, las tecnologías existentes y su organización y arquitectura dentro del equipo.
La organización y arquitectura de las memorias se basan en el principio de localidad de referencias, planteando un modelo jerárquico de esta. Generalizando, en el modelo jerárquico se dan dos niveles, el primario y el secundario, donde dentro de cada uno de estos es posible encontrar varios subniveles.
El nivel primario es el más cercano a la CPU con tecnologías bastante rápidas pero de pequeña capacidad debido a su alto costo. El nivel secundario, considera tecnologías con gran capacidad de almacenamiento pero un poco más difícil de accesar.
Una primera visión histórica de la jerarquización de la memoria considera en la parte superior de la pirámide a los Registros, luego la Memoria Principal y por último el Disco. De aquel tiempo a esta parte han surgido otros niveles de memoria intermedios que han mejorado las prestaciones de memoria a la CPU disminuyendo los tiempos de acceso. Es ahí donde aparece al memoria Cache, sirviendo como intermediaria entre los registros y la memoria principal. Y por otra parte también aparece el Cache del Disco cumpliendo una labor muy similar a la anterior solo que esta comprendida entre los niveles de Memoria Principal y Disco.
Por último es importante considerar todas las alternativas de almacenamiento secundario (parte inferior de la pirámide) donde encontramos distintos tipos de discos magnéticos y ópticos.
Capítulo 1 Introducción a los niveles de Memoria
El objetivo a conseguir con este trabajo es presentar las características básicas de organización y arquitectura de la memoria, considerando como objetivos específicos comprender la ventaja de utilizar una jerarquización de la memoria, conociendo las características de cada nivel, el primario y secundario.
Consideraremos la estructura de nivel superior de un computador que se muestra en la Figura 1.1 donde identificamos sus principales partes,
- Unidad Central de Procesamiento (CPU)
- Entradas y Salidas (E/S)
- Memoria Principal
- Interconexión del Sistema
- Periféricos
Figura 1.1 Computador Estructura del Nivel Superior
Nos centraremos en las partes correspondientes a las 'memorias'. En la figura 1.1 se presenta la memoria principal también denominada memoria primaria; dentro de la CPU tenemos los Registros; como también se considerará la 'memoria secundaria' que dentro del esquema anterior esta ubicado en la periférica.
Hoy en día los programas requieren de bastante memoria para funcionar si queremos que su rendimiento sea aceptable, ya que los programas ocupan un volumen de código mucho mayor (para memoria principal 32 Mbyte y varios Gigas para memoria secundaria). Otro fenómeno importante es la aparición de la multiprogramación donde los computadores deben tener una cantidad de memoria primaria suficiente para ejecutar varios programas.
Por otra parte, los computadores han visto aumentada la velocidad de la CPU de modo que ésta solicita datos de la memoria con una frecuencia mucho mayor. Lo anterior conlleva a que el acceso a las memorias debe ser cada día más rápidas.
Por lo tanto dos puntos a considerar al tratar el tema de las memorias en un computador son capacidad y velocidad, sin olvidar un tercer factor el económico. (¿Cuánto cuesta construir una memoria de gran capacidad y con una velocidad conveniente para la CPU?)
Las tecnologías existentes se caracterizan por,
· A menor tiempo de acceso, mayor costo por bit.
· A mayor capacidad, menor costo por bit.
· A mayor capacidad, mayor tiempo de acceso.
Por lo anterior es necesario idear algún sistema para aparentar una memoria con características convenientes de capacidad y velocidad partir de memorias de bajo costo.
1.2 Jerarquización de la Memoria
En la Figura 1.2 se muestra un esquema moderno de jerarquización de la memoria; donde una visión más tradicional de esta jerarquización no consideraría el nivel correspondiente al Cache del Disco.
Figura 1.2 Jerarquía de Memoria Visión Moderna
La alternativa de organización y arquitectura de la memoria dentro del computador se a desarrollado considerando dos niveles de memoria. Entonces el estudio de las memorias dentro del equipo es posible realizando considerando un par de niveles que se relacionan directamente, donde la superior requiere información de la inferior reduciendo el acceso a otras memorias más cercanas gracias al principio de 'localidad de las referencias'.
El concepto que hay que tener en mente para ello es que, por muy grande que sea el programa ocurren los siguientes fenómenos :
· si un elemento ha sido referenciado, es muy probable que pronto lo vuelva a ser (localidad temporal)
· si un elemento ha sido referenciado, es muy probable que pronto lo sean los elementos cercanos a éste (localidad espacial).
Lo anterior se produce porque la ejecución de un programa normalmente es secuencial (localidad espacial), y gran parte de los programas contienen rutinas de anidamiento (procedimiento) por lo que por un largo periodo de tiempo la ejecución es confinada a estas rutinas (localidad temporal).
Y basándose en este principio es posible escalonar la memoria en niveles, donde el nivel más cercano al procesador debe ser rápido y puede ser reducido. El siguiente nivel no tiene porque ser tan rápido, ya que se accederá menos veces, y por razones de coste puede ser más amplia, y así hasta formar toda una jerarquía.
En la Figura 1.2 se muestra un esquema moderno de jerarquización de la memoria; donde una visión más tradicional de esta jerarquización no consideraría el nivel correspondiente al Cache del Disco.
Para analizar las principales características de las memorias es necesario introducir varias definiciones que aclararán los conceptos que se verán más adelante.
Palabra : unidad básica de organización de la memoria.
Unidad de Transferencia: volumen de información que se transfiere desde o hacia la memoria de una sola vez.
Unidad Direccionable: volumen de información la cual es referenciada en forma única.
Respecto de las prestaciones de la memoria vistas por el usuario se tienen los siguientes parámetros,
Tiempo de acceso (lectura/escritura): periodo de tiempo que transcurre al realizarse una operación de escritura o lectura.
Tiempo de Ciclo de Memoria: periodo asociado a las memorias de acceso aleatorio, y consiste en el tiempo requerido para accesar una dirección más el necesario para volver a realizar otro acceso.
Velocidad de Transferencia: cantidad de datos accesado para lectura/escritura en un tiempo determinado.
Respecto al tipo de acceso se distinguen los siguientes métodos,
Acceso Directo: se realiza accesando directamente una vecindad dada, seguida de una búsqueda secuencial. Para esto los datos poseen una dirección única basada en su ubicación física. El tiempo de acceso es Variable.
Acceso Asociativo: una palabra es recuperada basándose en una parte de su contenido en lugar de su dirección. El tiempo de acceso es constante.
Acceso Aleatorio: la memoria posee un acceso a cada dirección cableado físicamente, por lo que cualquier dirección se selecciona 'directamente' (de ahí el concepto de aleatirio). El tiempo de acceso es constante.
Acceso secuencial: para tener acceso a un dato hay que leer todos los datos que están antes que él. El tiempo de acceso es variable.
Capitulo 2 Memoria Primaria
Se considerarán dentro de este tipo de memorias a las más cercanas al procesador, así como también las que se encuentran dentro de éste.
En la Figura 2.1 podemos tener una visión general de la estructura interna de la CPU donde identificamos los registros. Este tipo de memoria se caracteriza por ser las más rápidas y pequeñas y servir directamente al trabajo que realiza la unidad de control y la unidad aritmético lógica de la CPU.
Figura 2.1 Estructura interna de la CPU
Los registros son clasificados según la accesibilidad por parte del usuario (Programador en Lenguaje de Máquina).
1. Registros Visibles al Usuario, son los cuales pueden ser referenciados por el programador (de lenguaje de máquina). Dentro de estos están los de,
- Uso general
- Datos, los cuales pueden ser asignados por el programador a diversas funciones.
- Direcciones, contienen direcciones en la memoria principal de datos e instrucciones.
- Códigos de Condición, (indicadores o flags), estos son bit activados por hardware producto de alguna operación.
2.- Registros de Control y de Estado, estos son utilizados por la unidad de control para controlar el funcionamiento de la CPU y por programas privilegiados del sistema operativo para controlar la ejecución de programas. Dentro de estos existen los esenciales para la ejecución de una instrucción, los cuales son,
- Contador de Programa PC (Program Counter)
- Registro de Instrucción IR (Instruction Register)
- Registro de Dirección de Memoria MAR (Memory Address Register)
- Registro Intermedio de Memoria MBR (Memory Buffer Register)
Otro de interés,
- PSW (Program Status Word) que es un conjunto de registros.
2.2 Memoria Principal Semiconductora
Las memorias semiconductoras están formadas básicamente por celdas de memoria (elemento mínimo) que guardan la información de un bit (posibilidad de representar solo dos estados '1' o '0'). Las celdas poseen típicamente tres terminales, Selección, Control y Entrada/Salida de Datos
El acceso a este tipo de memoria es 'aleatorio' lo que asegura un tiempo de acceso constante.
A continuación se enumeran algunas alternativas,
RAM (Random Access Memory)
Es la más conocida, en la cual es posible leer y escribir datos, eléctricamente con la desventaja que es una memoria volátil. Se encuentra ubicada fuera del procesador pero muy cercana. Existen dos variantes, las estáticas (SRAM), las cuales almacenan los datos en elementos biestables (Flip - Flop); y las dinámicas (DRAM, más utilizadas) que almacenan la información en condensadores pero requieren ser refrescadas permanentemente. El principal uso es como memoria principal del computador.
ROM (Read Only Memory)
Estas memorias contienen datos que no se pierden en el tiempo, pero que tampoco pueden ser modificados, ya que los datos son cableados en el chip durante el proceso de fabricación. Se utilizan típicamente para almacenar programas del sistema, subrutinas de bibliotecas con funciones de uso frecuente, tabla de funciones, microprogramación, etc.
PROM (Programable ROM)
Las PROM poseen mismas características de una ROM con la diferencia que el proceso de grabado se realiza eléctricamente pudiendo entonces realizarlo el usuario final mediante un dispositivo apto para esto. Se utilizan típicamente para aplicaciones particulares que no requieren producción en serie.
EPROM (Erasable PROM)
Este tipo de memoria se lee y escribe eléctricamente como la PROM. Antes de realizar el grabado de información es necesario borrar completamente la memoria con un haz de luz ultravioleta. Admiten varios borrados y varias escrituras.
EEPROM (Electrically EPROM)
También es una memoria de lectura y escritura pero con métodos distintos a los usados por las EPROM. Se borran con tensiones eléctricas especiales y no con luz ultravioleta. y admiten varios ciclos de borrado. Pudiendo escribirse en ella muchas veces, sin necesidad de borrar el contenido anterior.
La aparición de este tipo de memoria dentro de la memoria interna tiene el objeto de acercar una memoria de gran capacidad pero más lenta a la CPU (muy rápida), teniendo la ventaja de ser una memoria más económica. En la figura 2.2 se muestra el concepto y la forma de transferencia que hay detrás donde se identifica una Memoria Principal relativamente grande y lenta, y una memoria más pequeña y más rápida, la memoria Cache.
Figura 2.2 Memoria Cache y Memoria Principal
La ventaja que tiene el uso de la memoria cache es que ésta posee una copia de partes de la memoria principal, de modo que cuando la CPU requiere información de la memoria principal primero solicitada ésta en la Cache. Si la información esta en la Cache entonces es transferida a la CPU. De no ser así entonces un bloque que contiene la información solicitada se transfiere de la memoria principal a la Cache y luego la información solicitada llega a la CPU. Según lo anterior y teniendo en cuenta el fenómeno de 'localidad de las referencias ' (visto en 1.1 Introducción), es muy probable que las siguientes referencias a datos esten contenidos en el mismo bloque recién transferido.
En la figura 2.3 que se muestra la estructura de memoria Cache/Principal. Donde identificamos una memoria principal con una capacidad de 2exp(n) palabras direccionables con 'n' bits, la cual es dividida en 'M' bloques de 'k' palabras cada uno. Por otra parte la memoria Cache contiene 'C' líneas donde cada una de ellas posee una etiqueta y las 'k' palabras del bloque.
Figura 2.3 Estructura de la Memoria Principal y Cache
Los principales elementos del diseño de una memoria Cache son,
1.- Tamaño de Cache, donde la relación [2.1] establece una característica del tamaño.
2.- Función de Correspondencia, permitiendo conocer que bloque de memoria principal se encuentra en determinada línea de la Cache.
- Directa
- Asociativa
- Asociativa por Conjuntos
3.- Algoritmo de Sustitución, el cual permite determinar que bloque de la Cache será sustituido por el que ingresará (algoritmos implementados en hardware para obtener mayor velocidad).
- Utilizando el menos reciente (LRU)
- Primero en entrar, Primero en Salir (FIFO)
- Utilizado menos frecuentemente (LRU)
- Aleatorio
4.- Política de Escritura, tiene que ver con la modificación del bloque que esta en cache y que aun no a sido actualizado en memoria principal (mantener la coherencia de Cache).
- Escritura Inmediata
- Post-Escritura
- Escritura Unica
5.- Tamaño de Bloque (o Línea), encontrar el valor óptimo de palabras de modo que la tasa de aciertos sea conveniente (típicamente entre 4 y 8 unidades direccionables).
6.- Número de Caches, debido a la gran utilidad que prestan ya no solo se cuenta con uno y es necesario considerar los aspectos de cantidad de niveles de cache y si estos serán unificados o en partidas.
- Uno o dos niveles
- Unificada o Partida
Las memorias estudiadas en este capítulo son las que se encuentran en la base la pirámide de jerarquías de memorias (Figura 1.2). Estas memorias se caracterizan por ser de gran capacidad, pero de un acceso más lento por parte de la CPU y poseer un costo por bit mucho menor.
Las memorias secundarias son considerados dispositivos de almacenamiento periféricos, de forma que son accesados por la CPU a través de controladores de E/S (entrada/salida).
Estos son la base de las memorias externas en casi todos los computadores. Es un 'plato' circular construido con metal o plástico cubierto por un material magnetizable. Para escribir sobre el plato se posee una cabeza (escritora) conteniendo una bobina que varía su campo electrico El para ser escrito l cual es
En la figura 3.1 se ve claramente la organización de los datos en el plato del disco la cual se realiza mediante anillos concéntricos llamados 'pistas', donde cada pista esta compuesta por 'sectores' separados por 'interbloques'. El acceso a este tipo de memorias es directo.
Figura 3.1 Organización de los datos en un Disco Magnético
La densidad (bit por pulgada lineal) es variable ya que se almacenan el mismo número de bits por pista.
Las principales características están dadas por,
1.- Desplazamiento de Cabezas. La cabeza es el elemento lector/escritor y son del ancho de una pista. En un disco existen varias pistas de modo que la lectura/escritura sobre ellas se realiza de dos formas distintas.
- Cabeza Fija: lo que determina la existencia de una cabeza por cada pista del disco.
- Cabeza Móvil: por cada superficie del disco existe una cabeza móvil que accesa cada una de las pistas.
2.- Transportabilidad de Disco tiene que ver con la posibilidad de extraer el disco de la unidad de disco. Al ser un disco extraible, estamos manejando una gran capacidad ya que basta con manejar muchos discos.
3.- Superficies, se refieren a las caras del plato que contienen cubiertas magnetizables, denominándose discos de doble superficie a las que magnetizan la cara superior e inferior.
4.- Platos, son la unidad básica que conforman el disco, existiendo discos con un solo plato o con múltiples platos apilados (paquete de disco) asociando por supuesto la existencia de varias cabezas (lectoras/escritoras). Ver Figura 3.2.
Figura 3.2 Visión de Varios Platos
5.- Mecanismo de la Cabeza, especifica la posición de esta respecto de los platos. Dentro de los mecanismos tenemos,
- Contacto (Disquete): la cabeza efectúa un contacto físico con el medio durante la operación de lectura/escritura.
- Separación Fija: la cabeza se ubica a una distancia fija sobre el plato dejando una capa de aire.
- Separación Aerodinámica: este mecanismo se aplica a discos cerrados herméticamente (evitando la entrad de impurezas), donde la cabeza reposa sobre la superficie del disco cuando éste no se mueve. Al comenzar a girar el disco, la presión de aire generada eleva la cabeza por encima de la superficie evitando el contacto.
RAID (Redundant Array of Independent Disks)
Es un conjunto de unidades físicas de disco que son vistas por el sistema operativo como una unidad lógica, teniendo la ventaja de ser operados en forma paralela (siempre que los datos estén distribuidos de esta forma). Este esquema de organización de la información en varios disco físicos consta de seis niveles independientes numerados del 0 al 5.
3.2 Memoria Optica
Este tipo de memoria apareció en el mercado con un primer producto denominado CD(Disco Compacto) para aplicaciones de audio. De ahí fueron apareciendo distintas alternativas que se mencionan más adelante, pero en general son de bajo costo con alta capacidad de almacenamiento y en su mayoría no es posible borrarlos (más conocido CD-ROM).
El disco esta formado por una resina (policarbonato) cubierta por una superficie altamente reflectante (aluminio). La información grabada esta compuesta por orificios microscópicos en la superficie reflectante, los que fueron realizados con un láser de alta intensidad. Finalmente la superficie se protege del polvo con una capa fina de laca transparente. Para recuperar la información, se utiliza un láser de baja potencia, que pasa sobre la superficie del disco, mientras éste gira. La intensidad de la luz cambia si pasa sobre un orificio, lo cual es detectado por un fotosensor, llevando esta información a un formato digital.
Existe una gran variedad de discos ópticos que se enumeran a continuación,
- CD disco compacto no borrable utilizado en aplicaciones de audio (60 minutos).
- CD-ROM disco compacto de memoria y solo de lectura. (550 Mbyte).
- CD-I Disco compacto Interactivo, donde se proporciona audio, vídeo, gráficos, textos y código de máquina ejecutable en un CD-ROOM.
- DVD disco de vídeo digital, el cual puede ser leído mediante un computador o un equipo de vídeo.
- WORM este disco permite una escritura y varias lecturas. Esta construido de modo de ser escrito con un láser de intensidad modesta. El equipo controlador de disco permite al usuario escribirlo una vez y leerlo cuantas veces quiera.
- Disco Optico Borrable utiliza una tecnología magneto-optica con el fin de poder escribir y leer el disco cuantas veces se desee.
Las cintas son un medio de plástico flexible cubiertas por un material magnetizable de modo que la lectura y escritura se realiza de igual forma que en los disco magnéticos. La organización de la información dentro de la cinta se realiza mediante pistas paralelas a lo largo de la cinta, existiendo 'registros' (bloques de información) contiguos separados por bandas de 'inter-registros'. El acceso a éstas es de forma secuencial, lo que las hace bastante lentas. Su uso esta limitado principalmente al respaldo de información.
3.4 Cache de Disco y Memoria Virtual
La memoria virtual y el cache del disco son diferentes formas de arquitectura de la memoria que hacen uso del concepto de memorias de dos niveles que aprovechan la localidad y son implementadas parcialmente en el sistema operativo.
Cache del Disco : El principio de esta memoria es el mismo que se describió en el punto 2.3, donde la diferencia es acercar la memoria externa (Disco Duro) a la memoria principal. Consiste básicamente en un buffer ubicado en la memoria principal que contiene sectores del disco (memoria externa). De modo que cuando se hace una petición de E/S (entrada/salida) para un sector específico del disco duro, primero se comprueba si éste se encuentra en la Cache del Disco, si es así, la información es entregada a memoria principal. Si esto no ocurre entonces el sector solicitado del disco es copiado en la Cache y luego a memoria principal.
Memoria Virtual : esta memoria hace creer a los programas que existe una memoria principal de gran tamaño y explota localidad de acceso a través de la jerarquía de memoria. La memoria principal almacena sólo los datos/instrucciones más utilizados el resto de los datos/instrucciones residen en memoria secundaria (disco). La memoria es dividida en bloques, que en la terminología de memoria virtual se llaman páginas. Todas las transferencias entre memoria real y disco se hacen con páginas.
Las memorias cada vez son más rápidas, grandes y baratas, pero no avanzan solas, los requerimientos de la CPU también.
La memoria es cara, por ello si queremos una memoria rápida deberá ser pequeña de modo de servir eficientemente la CPU. Pero los requerimientos de velocidad son importantes ya que los programas requieren de gran procesamiento así como de una memoria principal mayor.
De todas maneras la diferencia de velocidad entre el procesador y la memoria sigue siendo un hecho, y mientras no se igualen, se seguirá usando como alternativa la cache que representa un acercamiento de la memoria principal a la CPU. Actualmente se usan varios niveles de memoria cache (L1 y L2), lo que acentúa el concepto de jerarquía de memorias. De la misma forma es que aparecen a nivel de memorias secundarias el Cache de Disco y la memoria Virtusl.
La jerarquización de la memoria en niveles no sería posible sin el principio de localidad, el cual nos permite acceder lo mínimo posible a los niveles inferiores.
Todos los avances en capacidad y velocidad de acceso de las memorias están limitados por la tecnología y el costo de ella.
Los campos de investigación quedan abiertos a la organización del equipo, mejorando los buses desde la CPU a perisféricos. Y respecto a la arquitectura la generación de mejores y nuevos sistemas operativos que gestionen en forma óptima el recurso de memoria.
· William Stallings, Organización y Arquitectura de Computadores, Prentice Hall, Cuarta Edición.
· William Stallings, Sistemas Operativos, Prentice Hall, Segunda Edición.
www.inf.udec.cl/~arqorg
www.prenhall.com/stallings