Académique Documents
Professionnel Documents
Culture Documents
• Instrucciones
• Datos.
Operaciones básicas:
• Lectura (R)
• Escritura o almacenamiento (W)
Velocidad o tiempo de acceso: tiempo que transcurre desde que se proporciona la dirección a
la memoria y el dato está disponible
Ciclo de memoria: tiempo que transcurre entre dos accesos consecutivos a memoria. Puede
ser superior al tiempo de acceso
Modo de acceso:
• Aleatorio
• Secuencial
• Directo
Permanencia (información):
• Permanente / no volátil
• Volátil
• Lectura destructiva
• Necesidad de refresco
Forma de acceso:
• Por dirección
• Por contenido
Realización de operaciones:
• Por palabras
• Por bloques
Jerarquía de Memoria
Se le conoce como la organización piramidal de la memoria en niveles, que tienen
los ordenadores. Su objetivo es conseguir el rendimiento de una memoria de gran velocidad al
coste de una memoria de baja velocidad, basándose en el principio de cercanía de referencias.
Los puntos básicos relacionados con la memoria pueden resumirse en:
• Cantidad
• Velocidad
• Coste
La cuestión de la cantidad es simple, cuanto más memoria haya disponible, más podrá
utilizarse. La velocidad óptima para la memoria es la velocidad a la que el procesador puede
trabajar, de modo que no haya tiempos de espera entre cálculo y cálculo, utilizados para traer
operándos o guardar resultados. En suma, el costo de la memoria no debe ser excesivo, para
que sea factible construir un equipo accesible.
Como puede esperarse los tres factores compiten entre sí, por lo que hay que encontrar un
equilibrio. Las siguientes afirmaciones son válidas:
Se busca entonces contar con capacidad suficiente de memoria, con una velocidad que sirva
para satisfacer la demanda de rendimiento y con un coste que no sea excesivo. Gracias a un
principio llamado cercanía de referencias, es factible utilizar una mezcla de los distintos tipos y
lograr un rendimiento cercano al de la memoria más rápida.
• Nivel 0: Registros
• Nivel 1: Memoria caché
• Nivel 2: Memoria principal
• Nivel 3: Memoria virtual
Registros
En arquitectura de ordenadores, un registro es una memoria de alta velocidad y poca
capacidad, integrada en el microprocesador, que permite guardar transitoriamente y acceder a
valores muy usados, generalmente en operaciones matemáticas.
Los registros están en la cumbre de la jerarquía de memoria, y son la manera más rápida que
tiene el sistema de almacenar datos. Los registros se miden generalmente por el número de
bits que almacenan; por ejemplo, un "registro de 8 bits" o un "registro de 32 bits". Los registros
generalmente se implementan en un banco de registros.
El término es usado generalmente para referirse al grupo de registros que pueden ser
directamente indexados como operándos de una instrucción, como está definido en el conjunto
de instrucciones. Sin embargo, los microprocesadores tienen además muchos otros registros
que son usados con un propósito específico, como el contador de programa.
Tipos de registros
Los registros de datos son usados para guardar números enteros. En algunas
computadoras antiguas, existía un único registro donde se guardaba toda la
información, llamado acumulador.
Los registros de propósito general (en inglés GPRs o General Purpose Registers)
pueden guardar tanto datos como direcciones. Son fundamentales en la arquitectura
Eckert-Mauchly. La mayor parte de las computadoras modernas usa GPR.
Los registros de coma flotante son usados para guardar datos en formato de coma
flotante.
Los registros constantes tienen valores creados por hardware de sólo lectura.
Los registros de propósito específico guardan información específica del estado del
sistema, como el puntero de pila o el registro de estado.
Memoria caché
Son memorias de pequeña capacidad. Normalmente una pequeña fracción de la memoria
principal. y pequeño tiempo de acceso. Este nivel de memoria se coloca entre la CPU y la
memoria central. Hace algunos años este nivel era exclusivo de los ordenadores grandes pero
actualmente todos los ordenadores lo incorporan. Dentro de la memoria caché puede haber, a
su vez, dos niveles denominados caché on chip, memoria caché dentro del circuito integrado, y
caché on board, memoria caché en la placa de circuito impreso pero fuera del circuito
integrado, evidentemente, por razones físicas, la primera es mucho más rápida que la segunda.
Existe también una técnica, denominada Arquitectura Harvard, en cierto modo contrapuesto a
la idea de Von Newmann, que utiliza memorias caché separadas para código y datos. Esto
tiene algunas ventajas como se verá en este capítulo.
Memoria principal
La memoria principal son circuitos integrados capaces de almacenar información digital, a los
que tiene acceso el microprocesador del equipo de computación. Poseen una menor capacidad
de almacenamiento que la memoria secundaria, pero una velocidad millones de veces superior.
En las computadoras son utilizados dos tipos de estos dispositivos:
1.- Memoria ROM o Memoria de sólo lectura (Read Only Memory). Viene grabada de
fábrica con una serie de programas. El software de la ROM se divide en dos partes:
b) Rutina Bios: Sistema básico de entrada salida (Basic input output system): permanece
activa mientras se está usando la PC. Permite la activación de los periféricos de entrada/
salida: teclado, monitor, etc.
2.- RAM o Memoria de acceso al azar (Random Access Memory). Es la memoria del
usuario. Contiene de forma temporal el programa, los datos y los resultados que están siendo
usados por el usuario del ordenador. En general es volátil, pierde su contenido cuando se
apaga el computador, a excepción de la CMOS RAM. Tanto la RAM como la ROM son circuitos
integrados, llamados comúnmente CHIP (pastilla). Es una pequeña pastilla de silicio en cuyo
interior hay muchos dispositivos electrónicos (transistores) que permiten, interrumpen o
aumentan el paso de la corriente. Estos chips están sobre una tarjeta o placa. EL contenido de
las memorias no es otra cosa que bits (binary digits), que se corresponden con dos estados
lógicos: el O (cero) sin carga eléctrica y el 1 con carga eléctrica. A cada uno de estos estados
se le llama bit. El BIT es la unidad mínima de almacenamiento de datos.
El microprocesador direcciona las posiciones de la RAM para poder acceder a los datos
almacenados en ellas y para colocar los resultados de las operaciones.
Memoria Virtual
La memoria virtual es una técnica que permite ejecutar procesos que no caben totalmente en
memoria RAM (memoria física). Esto propicia la creación de programas que sean más grandes
que la memoria física. Además, la memoria virtual ayuda a crear un esquema de abstracción
de la memoria que la separa de la zona lógica que el usuario ve, esto facilita enormemente la
tarea a los programadores puesto que no se han de preocupar por limitaciones de memoria.
Todo ello permite simular la existencia de 4GB de RAM en el equipo, a pesar de que nadie
dispone de 4GB en su ordenador (a excepción de algunos sistemas en empresas y
universidades), y dar capacidad de ejecución a múltiples aplicaciones por grandes que sean.
El principio establece que en un momento concreto los programas acceden a una parte
relativamente pequeña de su espacio de direcciones, esto quiere decir que los programas van
a acceder a una cierta área de memoria continuamente en un intervalo de tiempo. Existen dos
tipos:
• Localidad temporal: un elemento referenciado tiende a ser referenciado nuevamente
pronto.
La localidad de los programas surge de su estructura simple y natural. Por ejemplo, muchos
programas contienen bucles, por lo que se accederá repetidamente a instrucciones y datos,
mostrando así mucha localidad temporal. Como normalmente se accede a las instrucciones
secuencialmente, los programas muestran mucha localidad espacial. Los accesos a datos
también muestran una localidad espacial natural. Por ejemplo, los accesos a elementos de un
vector o una tupla tendrán por naturaleza mucha localidad espacial.
La memoria caché tiene incorporado, un espacio de almacenamiento llamado Tag RAM, que
indica a que porción de la RAM se halla asociada cada línea de caché, es decir permite traducir
una dirección de RAM en una línea de caché concreta.
La memoria principal esta divida en bloque y la memoria caché en bloques. Dado que hay
muchas menos líneas en caché que en memoria principal es necesario un algoritmo para
apear bloques de memoria principal en líneas de caché.
La desventaja del mapeo directo es que la razón de acierto puede disminuir considerablemente
se accesa con frecuencia dos o más palabras cuyas direcciones tienen el mismo índice pero
identificaciones diferentes.
Ejemplo:
Desempeño de la Caché
Como por lo que se explico en el tema anterior, se dice que la memoria caché funciona como
un adivino, que anticipa a lo las necesidades del CPU. Este desempeño se mide en términos
de una cantidad de llamada razón de acierto. Esto se explico algo en el tema anterior de
mapeo, cuando la CPU hace referencia a memoria y encuentra la palabra en la caché, se dice
que produce un acierto. Si no se encuentra la palabra en el caché, está en la memoria
principal y se cuenta como una falla. La razón de la cantidad de aciertos dividida entre la
cantidad total de referencias de la CPU a la memoria (aciertos más fallas) es la razón de
aciertos.
Mecanismos de Traducción de
Direcciones
La memoria principal es una secuencia de bytes, que empieza en el 0 y termina en....por
ejemplo 64 Mb, es decir un "array" de bytes.
Cada byte tiene una dirección, el número que ocupa en una posición en la memoria. Esta
dirección es conocida como "dirección física".
Las direcciones que va a utilizar un programa (en modo protegido), no son esas. Siempre son
traducidas, o mapeadas, en direcciones de memoria física por un mecanismo de "traducción de
direcciones".
Este mecanismo, nos introduce en el concepto de "dirección virtual". Se llama de esta manera
porque no corresponde directamente a posiciones de memoria "física", sino que a través de
una "función de mapeado" equivale a una dirección de memoria física.
Es decir este mecanismo, al "apuntar" a una dirección de memoria, lo que hace es buscar, por
ejemplo en unas tablas internas, la correspondencia entre esta dirección y la dirección real
"fisica" del dato.