Download 7ArqComp- Memoria
Document related concepts
no text concepts found
Transcript
ARQUITECTURA DE COMPUTADORAS LA MEMORIA Prof. Juan Álvarez CONTENIDO SÉTIMA SEMANA Aplicaciones utilizando el Debug. Instrucciones: PUSH y POP. Memoria, características y jerarquía. Memorias semiconductoras. Tipos de memoria. Stallings, William. Organización y Arquitectura de Computadores. 5ta. Edición. Editorial Prentice Hall, 2000. Código biblioteca: 004.22/S78 (Capítulo 4) LA MEMORIA Las memorias de las computadoras presentan gran diversidad de tipos, estructura, prestaciones, costos. Para clasificar los sistemas de memoria se considerarán los siguientes aspectos: • La ubicación: la memoria puede ser interna a la CPU o puede ser externa. Algunos sistemas están ubicados fuera del computador. • La capacidad: corresponde a la cantidad de información que puede almacenar. Para las memorias internas, la capacidad se expresa en términos de bytes; para las externas, en MBytes o GBytes. • El método de acceso: secuencial (registros o buffer), directo (disco), aleatorio (memoria principal), asociativa (caché). LA MEMORIA Y JERARQUÍA • Las prestaciones: tienen que hacer con el rendimiento que se mide por el tiempo de acceso, el tiempo de ciclo de memoria o la velocidad de transferencia. • La tecnología: hace referencia al tipo de medios físicos para construir el sistema de memoria; por ejemplo semiconductora, magnética, óptica. Una clasificación usual de los sistemas de memorias parte de ubicarlos por su posición relativa con respecto a la CPU y compararlos por su tiempo de acceso, su capacidad, su costo. En la siguiente figura se plantea una pirámide donde se ubican distintos sistemas de memoria según su posición relativa con la CPU. JERARQUÍA DE MEMORIAS JERARQUÍA DE MEMORIAS Los registros y la memoria caché se encuentran con la CPU. dentro del computador y fuera de la CPU se sitúa la memoria principal. Fuera del bloque del computador y en calidad de periféricos, se ubican las memorias magnéticas y las memoria ópticas. Se observa una relación entre las tres características de costo, capacidad y tiempo de acceso: • A mayor capacidad, menor costo por bit • A mayor capacidad, mayor tiempo de acceso • A menor tiempo de acceso, mayor costo JERARQUÍA DE MEMORIAS CAPACIDAD, TIEMPO DE ACCESO Y COSTO A menor jerarquía: • Disminuye el costo • Aumenta la capacidad • Aumenta el tiempo de acceso • Disminuye la frecuencia de accesos por parte del CPU Cuando se ejecuta un programa, los datos e instrucciones de la memoria tienden a estar agrupados. En periodos cortos, el procesador trabaja principalmente con grupos fijos de referencia a memoria. De esta manera se minimiza el tiempo de transferencia. JERARQUÍA DE MEMORIAS Es posible organizar los datos a través de la jerarquía de tal manera que el porcentaje de accesos sea menor conforme se disminuye el nivel. Los tres primeros niveles son volátiles y de tecnología semiconductora. Los otros niveles permiten un almacenamiento masivo y prolongado. MEMORIAS SEMICONDUCTORAS La memoria semiconductora permite almacenar información binaria en celdas de silicio dentro de un circuito integrado. Siempre es posible acceder en forma arbitraria a cada localidad de memoria invirtiendo un tiempo de acceso. Existen dos tipos de memorias: • RAM.- Memorias de acceso aleatorio. • ROM.- Memorias de solo lectura. Memorias ROM (Read Only Memory) Son memorias de acceso secuencial, son no volátiles porque al suspender la energía no pierden la información almacenada. Estas memorias se subdividen en: ROM, PROM, EPROM, EEPROM MEMORIAS SEMICONDUCTORAS Las memorias ROM constan de matrices de resistencias, diodos o transistores. En el proceso de fabricación, el elemento de cada coordenada se hace conductor o se bloquea según se desee almacenar un 1 ó un 0. La memoria PROM se realiza en base matrices de diodos, fusibles o transistores. Para programar su contenido se quema el diodo o se destruye el fusible. Esta destrucción se lleva a cabo mediante pulsos de corriente de duración y amplitud adecuados. Las memorias EPROM se construyen mediante matrices de transistores MOS y su programación implica introducir cargas en sus entradas aplicando un voltaje. El borrado se hace irradiando la superficie con luz ultravioleta. MEMORIAS SEMICONDUCTORAS Las memorias EEPROM son memorias de sólo lectura programables y borrables por medios eléctricos. En ellas se puede escribir en cualquier momento actualizando los bytes direccionados. Tienen la ventaja de ser no volátiles con la flexibilidad de ser actualizables in situ. Las memorias de sólo lectura (ROM) se utilizan en los sistemas digitales en los casos que es necesario almacenar datos o programas fijos. Algunas aplicaciones típicas son: almacenamiento de programas y datos, de programas de inicialización de dispositivos programables, uso permanente de transcodificadores, realización de máquinas de estados finitos, decodificadores,… MEMORIAS SEMICONDUCTORAS Memorias RAM (Random Acces Memory) Son las memorias de acceso aleatorio, son volátiles porque al suspender la energía pierden la información almacenada. Estas memorias se subdividen en: • SRAM.- Memorias RAM estáticas • DRAM.- Memorias RAM dinámicas En las SRAM, el almacenamiento se realiza en Flip Flops dispuestos en un arreglo matricial como se ilustra en la figura. Debido a la complejidad de su circuitería, las SRAM tienen una baja capacidad de almacenamiento. MEMORIAS SEMICONDUCTORAS MEMORIAS SEMICONDUCTORAS Sus aplicaciones se enmarcan en los dispositivos de aplicación temporal, memoria de canal y de trama en las comunicaciones en red, registro intermedio para comunicación entre enlaces asíncronos, memorias para filtros digitales programables, ... La DRAM almacena la información en forma de carga eléctrica en condensadores en el sustrato de transistores MOS. La carga almacenada en el condensador se descarga lentamente haciendo necesaria la inyección de pulsos de refresco para mantener la carga presente. Las DRAM tienen una circuitería simple y ocupa poco espacio. Las DRAM son más densas y más baratas que las SRAM lo que la hace atractiva para una integración a muy alta escala. MEMORIAS RAM MEMORIAS SEMICONDUCTORAS El costo de requerir de circuitos de refresco se compensa por el menor costo de las celdas y por el número de ellas. La aplicación típica de la DRAM es su uso en la memoria principal en los sistemas con microprocesadores. En el diagrama de bloques de la DRAM se muestra que la memoria es una matriz de celdas de memoria, esta matriz es direccionada a través de dos decodificadores. Se observa además el multiplexor que permite insertar los pulsos de refresco por las filas. Notar la presencia de controles de lectura (W) y de salida de data (OE), los selectores de columnas (CAS) y de filas (RAS). MEMORIAS SEMICONDUCTORAS En la siguiente figura se ilustran dos circuitos integrados correspondientes a una ROM y a una RAM. La ROM tiene una capacidad de 2048x8 bits, mientras que la RAM de 8192x8 bits. La diferencia notable reside en que la memoria RAM tiene un control de lectura-escritura WE que la ROM no tiene. Para leer un dato en la memoria RAM: • Se colocan las direcciones Ai • Se pone el control WE en posición de lectura • Se habilita el chip con CS Luego de lo cual los datos de la dirección seleccionada se colocan en el bus de datos. La operación de lectura se termina inhabilitando el chip. MEMORIAS RAM MEMORIAS SEMICONDUCTORAS Para escribir un dato en la memoria RAM: • Se colocan las direcciones Ai • Se colocan los datos Di • Se pone el control WE en escritura • Se habilita el chip CS Luego de lo cual el dato que figura a la entrada se graba en la celda de memoria direccionada. Con CS se termina la sesión. ARREGLOS DE MEMORIA En las computadoras los circuitos de memorias están edificados para funcionar como un solo bloque llamado arreglo de memorias. Por un lado se tiene la memoria caché que es una memoria de acceso rápido donde se almacenan los datos de manera temporal para permitir su futura colocación en el destinatario. Por otro lado se tiene la memoria principal un tanto más lenta pero con mayor capacidad que la memoria caché. En las computadoras personales se dispone de varios tipos de arreglos dependiendo del diseño de la tarjeta madre y de las velocidades que maneja el procesador. En la siguiente figura se ilustra un ejemplo de arreglo. ARREGLOS DE MEMORIA ARREGLOS DE MEMORIA Cabe mencionar algunos tipos de arreglos de memorias para Computadoras Personales: • SIMM: usado para procesadores de 32 bits, tienen una capacidad máxima de 64 MB y son relativamente lentas. • DIMM: usado para procesadores de 64 bits, tienen mayor capacidad y velocidad que las SIMM. • RIMM: exclusivo del procesador Pentium III, es un arreglo de memorias costoso pero veloz y de capacidad equivalente a las DIMM. • DDR: es un arreglo de velocidad intermedia entre las DIMM y las RIMM, de bajo costo y de capacidad equivalente. Trabaja con la Pentium IV. SEGMENTACIÓN DE MEMORIA La memoria segmentada está formada por cuatro espacios de memoria perfectamente definidos para usos específicos. Cada segmento ocupa un espacio no mayor de 64KB. Se distinguen: • El segmento de códigos donde sólo se almacenan programas. • El segmento de datos permite almacenar datos en general. • El segmento extra se destina para almacenar datos en general y datos de cadena en particular. • El segmento de pila sirve para almacenar datos de pila, es decir datos que estuvieron previamente en registros internos y que se perderían al ser utilizados los registros, a menos que previamente se metan en la pila. SEGMENTACIÓN DE MEMORIA Es importante subrayar que el uso que se le da a cada segmento es único. Por ejemplo, no se pueden ejecutar instrucciones que están almacenadas en un segmento para datos. Tampoco se guardan datos el segmento de códigos. Es importante en la segmentación de memoria considerar la manera en que se apunta a una celda dentro de un segmento. Para posicionar una celda de memoria se apunta primero al inicio de un segmento y se agrega luego un desplazamiento. SEGMENTACIÓN DE MEMORIA • La dirección de segmento se encuentra en uno de los registros de segmento y corresponde al inicio de un segmento de memoria de 64KB. La dirección de desplazamiento selecciona cualquier localidad dentro de este segmento. • Por ejemplo. El segmento de códigos tiene su dirección inicial dentro del registro de segmento de códigos CS. • Como una dirección se especifica en este procesador con 20 bits, el contenido de CS debe multiplicarse por 10h: CS x 10h. • Luego se agrega el desplazamiento contenido en el registro IP para obtener la dirección donde empieza la instrucción que se va a ejecutar. Instrucción = CSx10h + IP SEGMENTACIÓN DE MEMORIA SEGMENTACIÓN DE MEMORIA • Cada uno de los segmentos tiene su fórmula para poder alcanzar una celda de memoria dentro del segmento. • Otro ejemplo: en el segmento de pila, el inicio del segmento se calcula mediante SSx10h y a esa dirección se le agrega el contenido de SP para apuntar al último dato almacenado en la pila. dato de pila = SSx10h + SP • Cada segmento se inicia con el registro de segmento y tiene también sus punteros específicos. Por ejemplo en el segmento extra, el puntero es DI. • En cambio en el segmento de datos, la fórmula para apuntar a una celda es algo más compleja. En la siguiente figura se ilustran estas fórmulas. PAGINACIÓN Y MEMORIA VIRTUAL La memoria física se divide en bloques de tamaño fijo, denominados marcos de página. El tamaño es una potencia de dos, puede variar entre 0.5 y 8 KB. El espacio lógico se divide en bloques del mismo tamaño, denominados páginas. Para ejecutar un programa de n páginas se necesita n marcos libres y cargar el programa en ellos. La tabla de páginas (TP) se encarga de traducir direcciones lógicas en direcciones físicas. Para ello, las direcciones generadas por el procesador se dividen en: • Número de página (p) - se utiliza como índice en la tabla de páginas que contiene la dirección base de cada página en memoria. PAGINACIÓN Y MEMORIA VIRTUAL •Desplazamiento de página (d) - sumado con la base de página define la dirección física utilizada por la unidad de memoria. PAGINACIÓN Y MEMORIA VIRTUAL PAGINACIÓN Y MEMORIA VIRTUAL En el manejo de la memoria virtual, cada página de un proceso se introduce en memoria sólo cuando se necesita. Cuando se tiene un programa grande o un conjunto de datos a procesar muy grande, no se carga todo el programa o los datos en memoria sino sólo unas pocas páginas que se trabajarán en el futuro próximo. Si después se requieren más páginas del programa o más datos, estos se pueden cargar en memoria en los espacios físicos que ya han sido utilizados y no se usan. Esto hace que se utilice un espacio de memoria física pequeño para procesar un gran volumen de información. MODO PROTEGIDO • El modo protegido permite acceder a los datos y programas en la memoria extendida (XMS) más allá del primer MByte de memoria. • El direccionamiento en la memoria extendida requiere un cambio en el sistema de direccionamiento de segmento y desplazamiento. • La dirección del segmento ya no se obtiene directamente de los registros de segmento, como ocurre en el modo real. El registro de segmento contiene esta vez un “selector” que selecciona un “descriptor”. Este último describe la ubicación, longitud y derechos de acceso al segmento de memoria. SISTEMA DE MEMORIA MODO PROTEGIDO •El selector está ubicado en el registro de segmento y selecciona a una de las dos “Tablas” disponibles y a uno de los 8192 descriptores de la Tabla seleccionada. MODO PROTEGIDO El registro de segmento contiene un campo de selector de 13 bits que permite elegir una de los 8192 descriptores en una de las tablas de descriptores. El bit TI selecciona una de las dos tablas: la tabla de descriptores locales (TI = 1) y la tabla de descriptores globales (TI = 0). El RPL solicita el grado de privilegio de acceso a un segmento de memoria. El RPL más alto es el 00 y el más bajo es el 11. Si el grado de privilegio solicitado concuerda o tiene una prioridad mayor que el grado de privilegio establecido por el byte de derechos de acceso, se concede el acceso. Los grados de privilegio se emplean en instalaciones con usuarios múltiples. • La Tabla de descriptores globales contienen segmentos que se aplican a todos los programas MODO PROTEGIDO • La Tabla de descriptores locales suelen ser exclusivos de una aplicación. • Como cada tabla tiene 8192 descriptores, en total hay 16384 descriptores, es decir 16384 maneras distintas de elegir un segmento. En la siguiente figura se ilustra el contenido de un descriptor para el procesador 80286 y para los siguientes procesadores. MODO PROTEGIDO • El descriptor tiene una longitud de 8 bytes, ¿qué espacio de memoria deben ocupar las dos tablas? • En el descriptor se encuentra el límite, la base y los derechos de acceso de un segmento. • El Límite es el tamaño del segmento y es de 16 bits. • La Base es la dirección de memoria donde empieza el segmento. Para el 80286 la dirección base es de 24 bits. MODO PROTEGIDO • El byte de Derechos de Acceso corresponde al control de acceso al segmento y describe cómo funciona el segmento. • Las tablas de descriptores globales y locales se encuentran en el sistema de memoria. Para poder ingresar a la dirección de estas tablas, el 80286 contiene registros invisibles para el programador. Estos registros controlan al microprocesador cuando funciona en modo protegido. • Estos registros forman una memoria caché del descriptor. • En esta memoria caché se cargan la dirección Base, el Límite y los Derechos de Acceso cada vez que se cambia el contenido del registro de segmento correspondiente. Esto permite que el procesador accese de forma repetida a un segmento sin tener que consultar la tabla de descriptores. MODO PROTEGIDO MODO PROTEGIDO • La memoria virtual en el 80286 ejecuta un espacio de memoria de 1GB en un espacio de memoria física de 16MB. Esto se realiza mediante un intercambio de datos y programas entre el sistema de memoria de disco y la memoria física. • El direccionamiento del sistema de memoria de 1GB es realizado por los descriptores. • Cada descriptor describe un segmento de memoria de 64KB y el procesador acepta hasta 16K descriptores. Esto permite que el sistema describa un máxima de 1GB de memoria (64Kx16K).