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).