Download Sistemas de memoria

Document related concepts
no text concepts found
Transcript
ARQUITECTURA DEL COMPUTADOR
UNIMET
Prof. Sandro Costantini
SISTEMAS DE MEMORIA
GUIA 25: SISTEMAS DE MEMORIA
La memoria es un medio físico capaz de almacenar información (programas y datos) de forma temporal o
permanente. Sin memoria no puede haber computadoras como las conocemos ahora.
Aunque conceptualmente parezcan sencillas, presentan una gran variedad de tipos, tecnología,
estructura, prestaciones y costo. Ninguna tecnología es óptima para satisfacer todas las necesidades de
un computador por lo existe una jerarquía de subsistemas de memoria, algunos directamente accesibles
por el procesador (internos) y otros accesibles mediante módulos de entrada/salida (externos).
Examinaremos las características claves de las memorias y luego analizaremos el subsistema de
memoria principal.
CARACTERISTICAS DE LOS SISTEMAS DE MEMORIA
CONCEPTOS BASICOS Y TERMINOLOGIA.
Con el el fin de diferenciar entre las diferentes memorias, es necesario conocer cuales son sus
características principales, y a que se refiere cada una de ellas. Las características que se consideran
son localización, capacidad, unidad de transferencia, método de acceso, desempeño y tipo. Estas
características se describen a continuación.
Localización: Según su localización existen tres grandes grupos:
•
•
•
Memoria interna del procesador: la utiliza la CPU como elemento de almacenamiento temporal de
instrucciones y datos, y consta de un pequeño conjunto de registros de alta velocidad.
Memoria Principal: es una memoria relativamente grande y rápida utilizada para el
almacenamiento de los programas y sus correspondientes datos, siendo la tecnología más
empleada la de circuito integrado.
Memoria externa o secundaria: son dispositivos periféricos de almacenamiento accesible a la
CPU a través de controladores de E/S. Suele ser más grande y más lenta que la memoria central,
y se utiliza fundamentalmente para el almacenamiento de programas y conjuntos de datos que no
están siendo utilizados continuamente por la CPU.
Jerarquía:
Las restricciones de diseño de la memoria de un computador se resumen en tres puntos: Capacidad,
velocidad y costo.
Por una tenemos que es importante disponer de una gran cantidad de memoria. Para facilitar la ejecución
de programas que son grandes o que trabajan con una gran cantidad de datos.
Por otra parte tenemos que la velocidad de ejecución de los programas es muy dependiente de la
velocidad a la que se pueden transferir los datos entre la CPU y la memoria. Por esto, idealmente, la
memoria debería ser rápida, grande y barata. Como cabria esperar, hay un compromiso entre estas tres
características de la memoria que mantienen las siguientes relaciones:
•
•
•
GUIA 25
A menor tiempo de acceso mayor costo por bit.
A mayor capacidad menor costo por bit.
A mayor capacidad mayor tiempo de acceso.
© 2007 Sandro Costantini
1
ARQUITECTURA DEL COMPUTADOR
UNIMET
Prof. Sandro Costantini
SISTEMAS DE MEMORIA
De cara al diseñador el dilema está claro; le gustaría disponer de una tecnología de memoria que le
proporcionara una gran capacidad, tanto porque se necesita cantidad de memoria, como porque el costo
por bit es pequeño. Sin embargo, para conseguir buen rendimiento y velocidad se necesitan memorias de
rápido acceso, que son de poca capacidad y más caras.
La jerarquía de memorias se emplea para solucionar las diferentes necesidades que tienen cada tipo de
memoria. Una jerarquía típica es la siguiente:
REGISTROS CPU
MEMORIA CACHÉ
MEMORIA PRINCIPAL
DISCOS MAGNETICOS
CINTAS MAGNETICAS
A medida que se va de arriba hacia abajo, disminuye el costo por
bit, aumenta la capacidad, aumenta el tiempo de acceso y
disminuye la frecuencia de acceso a la memora por parte de la
CPU.
La clave del éxito de la jerarquía es esta última, la decreciente
frecuencia de acceso. Esto simplemente quiere decir que no se
accede a todos los datos con la misma frecuencia; obviamente se
accede más a los datos del programa en ejecución que a los de
uno que no se ejecuta desde hace un año; y de igual manera, en
un momento dado se accede más a los datos de una expresión
que se está evaluando en ese preciso instante que a otros datos
del programa.
En lugar de decidirnos por un solo tipo de tecnología o un único tipo de memoria, lo que hay que hacer es
construir una estructura con una jerarquía de memoria de manera de situar en los niveles superiores los
datos o instrucciones que se necesitan más frecuentemente. Los pocos datos con los que se está
ejecutando la instrucción en curso están en los registros; los datos de las últimas instrucciones, en la
memoria caché, el resto de los datos del programa en ejecución estarán repartido entre la memoria
principal y secundaria de acceso rápido(discos magnéticos); los programas o datos que no se están
ejecutando se guardan en memorias secundarias masivas de mayor tiempo de acceso, como la cinta
magnética y el disco óptico,
La CPU y el sistema operativo se encargarán de ir llevando y trayendo los datos de las memorias lentas a
las rápidas y viceversa, a medida que se vayan referenciando los distintos datos o programas.
Capacidad: forma de especificar cuantos bits se pueden almacenar un dispositivo de memoria
particular o en un sistema de memoria completo. Para ilustrar esto, suponga que se tiene una memoria
que puede almacenar 4096 palabras de 20 bits. Esto representa una capacidad total de 81.920 bits.
También podríamos expresar esta capacidad de la memoria como 4096 x 20. Cuando se expresa de
esta manera, el primer numero representa el número de palabras y el segundo es el tamaño de la palabra
(numero de bits por palabra). El número de palabras contenidas en una memoria , a menudo es un
múltiplo de 1024. Es común utilizar la designación 1K (kilo) para representar 210 = 1024 cuando nos
referimos a la capacidad de la memoria. Por tanto, una memoria que tiene una capacidad de
almacenamiento de 4K x 20, es en realidad una memoria de 4096 x 20.
También puede venir expresada en bits o en bytes (1 Byte = 8 bits).
El desarrollo de memoria grande ha dado origen a otras designaciones que son el Mega, el Giga y el
Tera.
1 K = 210
1 M = 220
1 G = 230
1 T = 240
= 1024
= 1024 K
= 1024 M
= 1024 G
Así un circuito integrado de memoria que se especifica como 2K x 8, tendrá una capacidad de 2048 X 8 =
16.384 bits o, lo que es lo mismo, 2048 bytes ( 2 KBytes)
GUIA 25
© 2007 Sandro Costantini
2
ARQUITECTURA DEL COMPUTADOR
UNIMET
Prof. Sandro Costantini
SISTEMAS DE MEMORIA
Dirección o ubicación. Cada celda de memoria es asociada unívocamente a una dirección, de tal
manera que mediante esa dirección se puede acceder a ella para escribir o leer un dato.
No se debe confundir el espacio de direccionamiento de un procesador con la cantidad de memoria
disponible. El espacio de direccionamiento viene impuesto por el número de hilos, n , del bus de
direcciones, de tal manera que el espacio de direccionamiento de un procesador es 2n unidades
direccionables, con lo que su rango de direcciones va desde 0 hasta 2n –1. La cantidad de memoria de un
ordenador se corresponde solamente con la memoria realmente instalada. El máximo de memoria que se
puede instalar es 2n.
Palabra: Es la unidad común de organización de la memoria. Su tamaño viene determinado por el
tamaño de los registros internos de la CPU. El tamaño de las palabras en las computadoras modernas
varía comúnmente de 4 a 64 bits, según la dimensión de la computadora.
Byte: Grupo de 8 bits
Unidad direccionable: En muchos sistemas, la unidad direccionable es la palabra, sin embargo,
algunos de ellos permiten direccionar a nivel de byte.
Unidad de transferencia: Para la memoria principal es el numero de bits que se leen o escriben en
memoria a la vez. Viene impuesto por el numero de hilos del bus de datos. No tiene por qué coincidir con
una palabra o con una unidad direccionable.
Métodos de acceso.
Se distinguen 4 tipos:
•
•
•
•
GUIA 25
Acceso Aleatorio: cuando puede accederse a las informaciones almacenadas en la
memoria en cualquier orden, siendo el tiempo de acceso constante e independiente de la
posición donde está localizada la información. La localización física real de la palabra.
Acceso Secuencial solamente se puede acceder a una información almacenada mediante
una secuencia lineal. Por tanto, el tiempo de acceso es variable y depende de la posición donde
está almacenada la información.
Acceso Directo: Incorpora un mecanismo de lectura/escritura compartido. Sin embargo, los
bloques o registros individuales tienen una dirección única, que se basa en su posición física. El
tiempo de acceso es variable. Un ejemplo clásico son las unidades de disco
Acceso Asociativo: son también de acceso aleatorio, diferenciándose en que no se
pregunta por el contenido de una dirección, sino que se pregunta si existe una posición de
memoria que contiene una palabra determinada. La ventaja fundamental es que dividiendo la
palabra en campos, se puede asociar un campo a una región concreta de la memoria, haciendo
la búsqueda más rápida. Una palabra es recuperada basándose en una porción de su contenido
en lugar de su dirección. Cada posición tiene su propio mecanismo de recuperación que es
constante e independiente de la posición. Las memorias caché a veces emplean este método.
© 2007 Sandro Costantini
3
ARQUITECTURA DEL COMPUTADOR
UNIMET
Prof. Sandro Costantini
SISTEMAS DE MEMORIA
Desempeño: para medir el rendimiento de velocidad se utilizan los tres parámetros siguientes:
•
Tiempo de acceso (tA): Para las memorias de acceso aleatorio, es el tiempo que toma
•
•
realizar una operación de lectura o escritura. Para las no aleatorias es el tiempo que tarda el
mecanismo de lectura/escritura en posicionarse en la localidad deseada.
Tiempo de Ciclo de memoria (tC): es el tiempo mínimo entre dos lecturas consecutivas.
Velocidad de transferencia (fA): es la velocidad a la que se pueden transferir datos a o
desde una unidad de memoria. Para las memorias de acceso aleatorio coincide con el inverso
del tiempo de ciclo.
Tipos físicos:
Existe una gran variedad de tipos físicos de memoria. Los tres más utilizados son:
• Memorias de Semiconductor como memoria principal
• Memorias Magnéticas como memoria secundaria
• Memorias ópticas, también como memoria secundaria
Características físicas:
Alterabilidad: Las memorias cuyo contenido no puede ser modificado se denominan memorias de
sólo lectura o memorias ROM, y las que pueden realizar operaciones de lectura y escritura se llaman
memorias de lectura/escritura.
Permanencia de la información: Hay tres características que pueden redundar en la destrucción
de la información:
•
Lectura destructiva: las operaciones de lectura ocasionan la destrucción de la información.
•
•
Volatilidad : pérdida de la información ante el fallo de corriente.
Almacenamiento estático/dinámico: una memoria es estática si la información que contiene no
varía con el tiempo y es dinámica si la información se va perdiendo por lo que hay que refrescarla
para evitar su pérdida.
GUIA 25
© 2007 Sandro Costantini
4
ARQUITECTURA DEL COMPUTADOR
UNIMET
Prof. Sandro Costantini
SISTEMAS DE MEMORIA
MEMORIA PRINCIPAL
Aunque la CPU dispone de una memoria interna (los registros), ésta es demasiado pequeña como para
albergar solamente la instrucción a ejecutar , sus operandos y poco más. Por eso es necesario disponer
de un sistema de memoria externa suficientemente grande. Para ello se cuenta con la Memoria Principal
que hoy en día está construida a base de semiconductores y están formadas por una serie de celdas que
contienen datos.
Hay diversos tipos de memorias de semiconductor, y también varios criterios de clasificación. Uno de
estos criterios puede ser el cómo se referencia cada una de las celdas de datos de la memoria. Según
este criterio hay dos tipos de memorias:
Asociativas: esto es seleccionadle por el contenido
Convencionales: seleccionables por la dirección de la celda
Las memorias asociativas son las que utiliza la memoria caché. Por su parte las convencionales tienen
distintos usos dependiendo de su tecnología, y podemos encontrarlos memoria RAM, ROM, PROM,
EPROM, Flash y EEPROM. Entre todas estas, la que suele ocupar la mayor parte del mapa de memoria
principal es la memoria RAM, es decir, memoria volátil de acceso directo de lectura/escritura.
La memoria RAM a su vez admite distintas tecnologías, como las memorias estáticas (más rápidas y que
suelen emplearse para las memorias caché) y las dinámicas (más lentas y utilizadas para la memoria
principal), pero no vamos a bajar a este nivel, y nos ocuparemos solo de las características y conexiones
de los módulos de memoria RAM y ROM en general. Los módulos de memoria ROM los consideraremos
con las mismas características que la memoria Ram, excepto la posibilidad de escribir en ella.
Aunque un mapa de memoria principal puede estar formado por distintos tipos de memoria, lo más
frecuente es encontrar simplemente memoria RAM y ROM (o alguna variedad), donde la RAM ocupa la
inmensa mayoría del espacio de direcciones.
En la memoria ROM de los ordenadores es donde se encuentra el programa inicial de arranque (IPL) y
un conjunto de rutinas básicas de entrada/salida. Con ayuda de este programa se arranca el mecanismo
de carga del sistema operativo de cada ordenador.
ORGANIZACION
Sabemos que la memoria está compuesta por bits, y el elemento básico de una memoria semiconductora
es la celda binaria de almacenamiento, capaz de contener un bit de información.
Pero un bit resulta insuficiente como unidad lógica de almacenamiento por lo que se procesan en grupos
de un tamaño predefinido llamado palabra. El número de celdas en cada palabra se denomina longitud
de palabra. A cada una se le asocia una dirección que determina la localidad en la que se encuentra la
palabra.
En la figura se muestra como organizar de varias formas distintas una memoria de 96 bits.
0
0
0
1
1
1
2
2
2
3
3
3
4
4
4
5
5
5
6
6
7
7
16 bits
12 bits
8
9
10
11
8 bits
GUIA 25
© 2007 Sandro Costantini
5
ARQUITECTURA DEL COMPUTADOR
UNIMET
Prof. Sandro Costantini
SISTEMAS DE MEMORIA
Aunque el número de bits por celda ha variado mucho, hoy día casi todos los fabricantes de ordenadores
de propósito general han estandarizado el grupo de 8 bits, llamado byte. Un byte es capaz de almacenar
datos tale como caracteres, pero resulta insuficiente para manejar números de cierta magnitud. Por esto
los bytes se agrupan a su vez en palabras. El tamaño de una palabra viene determinado por el ancho de
los registros generales de la CPU, por lo que un procesador con registros de 32 bits, tiene una palabra de
32 bits. Esto quiere decir que se pueden hacer operaciones con datos de hasta 32 bits (en este caso).
EL MAPA DE MEMORIA
Los ordenadores personales convencionales suelen contar actualmente
con un vasto espacio de direccionamiento, pero no suele ser necesario
llenar todo este espacio de direccionamiento con los chips de memoria
32 Mb
correspondiente. Por otra parte, también resulta normal contar con
varios tipos de memoria. La mayor parte es RAM, que suele comenzar
en las direcciones bajas, un poco de ROM que suele estar en las
direcciones mas altas de la memoria. En algunos sistemas también se
puede contar con una pequeña cantidad de EEPROM que puede estar
situada en cualquier parte del hueco entre la RAM y la ROM.
RAM
EEPROM
4 Kb
ROM/PROM
16 Kb
Así, nos encontramos con que el espacio de direccionamiento está
formado por varias zonas o rango de direcciones en las que hay
distintos tipos de memoria y huecos en los que no hay instalada ningún
tipo de memoria.
El Mapa de Direcciones representa la distribución del espacio de
direccionamiento de una máquina entre los distintos tipos de memoria
instalados.
CHIPS DE MEMORIA
Como otros circuitos integrados, las memorias semiconductoras vienen en chips encapsulados. Cada
chip contiene una matriz de celdas de memoria.
Supongamos por ejemplo que tenemos una pastilla de memoria RAM de 1 Mpalabras x 8.
Veamos la interfaz que nos ofrece con el mundo exterior.
Pines de dirección: A0-A19.
A0
A1
A2
A3
A4
A5
A6
A7
A8
A9
A 10
A 11
WE
OE
CS
GND
Vcc
GUIA 25
RAM
1Mx8
A 12
A 13
A 14
A 15
A 16
A 17
A 18
A 19
D0
D1
D2
D3
D4
D5
D6
D7
Vcc
Puesto que tiene un espacio de
direccionamiento de 1 Megapalabras( 1.048.576 direcciones) necesita
20
20 pines para poder seleccionar la celda deseada, pues 2
=1.048.576. Estas son señales de entrada.
Pines de datos: D0-D7. Cada celda direccionada es de un byte
(8 bits), luego necesita 8 líneas. Como es una RAM, se puede leer o
escribir en ella, por lo que estas patas son de entrada/salida,
dependiendo de si la operación es escritura o lectura.
Señales de lectura/escritura: OE y WE.: Cuando se desea
realizar una operación de lectura, además de indicar la dirección
correspondiente en los pines de dirección, debe activarse la señal
OE(Output Enable) Si lo que se desea es una operación de escritura,
debe activarse la señal WE (Write Enable). Obviamente, estas señales
son mutuamente excluyentes.
Selector de chip: CS. Un computador está compuesto por varios
chips de memoria a los que llegan las señales de dirección que vienen
de la CPU. Sin embargo, en cada operación concreta de
lectura/escritura no debe leerse o escribirse en todos los chips sino
solamente el que contenga la dirección. Un decodificador se encargará
de seleccionar el o los chips que deben recibir las señales OE o WE y
para ello activará la señal CS (Chip Select) del chip o de los chips que
deban responder o no a la operación de lectura/escritura que se
arranca.
Tensión de alimentación Vcc: Pin el voltaje de alimentación.
Tierra (GND) : Pin para la toma de tierra.
© 2007 Sandro Costantini
6
UNIMET
ARQUITECTURA DEL COMPUTADOR
Prof. Sandro Costantini
SISTEMAS DE MEMORIA
Las pastillas de memoria se comercializan con un numero de celdas de memoria (direcciones) y un
tamaño de celda (bits por celda) que no coinciden con el tamaño de la palabra de la CPU, ni con las
necesidades de memoria que hay que instalar. Por esto es normal que haya que agrupar varios chips de
memoria para poder ofrecerle a la CPU la imagen de una única memoria con tantas direcciones como se
desea y con un tamaño de celda igual al tamaño de la palabra de la CPU.
ORGANIZACIÓN DE LAS CELDAS DE MEMORIA
Existen 2 organizaciones principales, la 2D en la cual la disposición física de las celdas de la matriz de
memoria es la misma que la disposición lógica, y la 2½D en la que los datos se leen o escriben por bits.
Ambas organizaciones se explican a continuación.
ORGANIZACIÓN 2D
La matriz está organizada en w palabras de b bits cada una. Todos los bits de una palabra se localizan
en el mismo chip. Es una organización rápida, ya que el único retardo es el asociado con los circuitos de
decodificación. Sin embargo, ya que el número de palabras es mucho mayor que el número de bits por
palabras, la utilización de esta organización daría lugar a matrices de celdas excesivamente largas y
estrechas, que no resultan adecuadas para su realización en un circuito integrado.
n
ARREGLO DE
MEMORIA
2n
2n X B
2n palabras
LINEAS DE
DIRECCION
DECODIFICADOR
B bits
CIRCUITO
ENTRADA
SALIDA
LECTURA/ESCRITURA
LINEAS DE DATOS
En este tipo de organización se necesitan conocer los siguientes datos:
• Numero de líneas de dirección
• Capacidad ( Numero de celdas de memoria)
• Numero de palabras( Numero de unidades direccionables)
• Longitud de la palabra (Numero de bits por palabra)
Estos datos se relacionan de la siguiente manera.
Numero de palabras = 2 (numero de líneas de dirección)
Capacidad = (numero de palabras) x (longitud de palabra)
GUIA 25
© 2007 Sandro Costantini
7
ARQUITECTURA DEL COMPUTADOR
UNIMET
Prof. Sandro Costantini
SISTEMAS DE MEMORIA
Si tenemos una memoria organizada en 2D con 32k palabras de 8 bits cada una:
Capacidad = 32k x 8 bits = 256 kbits = 1024 x 256 = 262.144 bits
Palabras = 32 x 1024 = 32.768
Líneas de dirección = 15 (215 = 32.768) (líneas de entradas al decodificador)
Líneas de datos = 8 (longitud de la palabra)
ORGANIZACIÓN 2½D
Los bits de una palabra están repartidos en mas de un chip. La organización más común es la que
permite almacenar 1 bit de una palabra en un chip. El chip contiene un arreglo de bits típicamente
cuadrado. Para escoger un bit de una palabra en particular, la dirección se divide en 2. Se utilizan 2
decodificadores con n/2 entradas. Uno de ellos realiza la selección sobre el eje X y el otro sobre el eje Y.
Para obtener el resto de los bits que constituyen la palabra se utilizarán otros chips.
n/2
bits
2n/2
ARREGLO DE
MEMORIA
2n/2 X 2n/2
2n/2
DECODIFICADOR
FILAS
n/2
n
LINEAS DE DIRECCION
2n/2 bits
SELECTOR COLUMNA
ENTRADA/SALIDA
LECTURA/ESCRITURA
ENTRADA bit
SALIDA bit
En esta organización , con la restricción de que la longitud de la palabra es de 1 bit, si tenemos una
capacidad de 1 Kbit entonces:
Capacidad = 1 Kbit = 1024 bits
Palabras = 1 K = 1024
Líneas de dirección = 10 (210 = 1024) (5 para la X y 5 para la Y)
Líneas de datos = 1 (longitud de la palabra)
La matriz cuadrada de memoria es de 32 x 32 (25 X 25 ) = 1024
Ventajas de 2½D sobre 2D
•
•
•
GUIA 25
El arreglo 2½D es un arreglo cuadrado mientras que el 2D puede llegar a ser muy largo y
estrecho
Una organización 2D requiere mayor número de líneas externas de datos.
Con una organización 2½D se obtiene mayor capacidad de memoria.
© 2007 Sandro Costantini
8
ARQUITECTURA DEL COMPUTADOR
UNIMET
Prof. Sandro Costantini
SISTEMAS DE MEMORIA
ORGANIZACIÓN POR MODULOS
Las memorias disponibles se pueden ampliar para incrementar la longitud de palabra (números de bits en
cada dirección) o la capacidad de palabras (numero de direcciones diferentes), o ambas. La expansión
de memoria se consigue añadiendo el número apropiado de chips de memoria a los buses de dirección,
datos y control como se explica a continuación.
Expansión de la longitud de palabra
Para aumentar la longitud de palabra de una memoria, debe aumentarse el número de bits del bus de
datos. Por ejemplo supongamos que queremos conseguir un banco de memoria de 16 Kpalabras de 8
bits (memoria de 16K x 8) y se dispone de módulos de 16 K x 4. Por una parte se deben unir
directamente los pines de direcciones de los dos chips puesto que ambos tiene 16K direcciones. Por otra
parte se formaran palabras de 8 bits a partir de dos bloques de 4 bits, Un chip para los 4 bits de mayor
peso y el otro para los 4 bits de menor peso. La figura muestra la solución.
A0 – A13
A0 – A13
A0 – A13
AS
CS
CS
CPU R/W
OE
WE
D0 – D7
OE
CHI
D0 – D3
D0 – D7
CHI
WE
D0 – D3
D4 – D7
D0 – D3
Expansión de la capacidad de palabras
Supongamos que para implantar la memoria de 16K x 8 del ejemplo anterior disponemos de módulos de
4K x 8. Como vemos cada modulo ahora ofrece palabras completas, por lo que tendremos que agrupar 4
chips para obtener el espacio de direccionamiento de 16K requerido.
Un modulo contendrá las primeras 4 direcciones, otro modulo el segundo cuarto y así sucesivamente. En
este caso cada chip entrega los 8 bits de cada palabra, pero no se tienen que seleccionar todas
simultáneamente, sino que solamente tendrá que seleccionarse la que contenga la dirección referenciada
por la CPU. En estas situaciones en las que cada uno de los espacios de direccionamiento está repartido
entre múltiples chips , se requiere un decodificador de direcciones para que la CPU active la señal de
Chip Select (CS) del chip que contenga la dirección referenciada.
DECODIFICADOR
CPU
A0 – A11
A0 – A11
A0 – A11
AS
R/W
D0 – D7
CS
OE
WE
A0 – A11
CS
OE
WE
D0 – D7
D0 – D7
A0 – A11
A0 – A11
D0 – D7
D0 – D7
A0 – A11
D0 – 7
CS
OE
WE
A0 – A11
D0 – D7
D0 – D7
CS
OE
WE
CHIP 4
A0 – A13
DIRECCIONES ( A0 – A13 )
CHIP 3
A0 – A11
CHIP 2
A12
CHIP 1
A13
D0 – D7
D0 – D7
DATOS ( D0 – D7 )
En el caso que se quiera obtener por ejemplo una memoria de 64K x 8 con chips de 16K x 1 se necesita
expansión de longitud de palabra y de capacidad de palabra. Trate de obtener el circuito.
GUIA 25
© 2007 Sandro Costantini
9
UNIMET
ARQUITECTURA DEL COMPUTADOR
Prof. Sandro Costantini
SISTEMAS DE MEMORIA
MEMORIA CACHÉ
La velocidad de ejecución de las instrucciones es altamente dependiente de la velocidad a la cual se
transfieren los datos hacia o desde la memoria principal. Por ello no debe sorprendernos que el diseño de
la memoria es, y seguirá siendo un tópico importante en el desempeño de una computadora.
Uno de los problemas básicos a considerar en el diseño de memorias es la velocidad. Este problema
surge debido a que por lo general la CPU puede procesar instrucciones y datos más rápido de lo que
dura su traída desde unidades de memoria principal. Es decir. El tiempo del ciclo de la memoria principal
es el cuello de botella.
En todos los ciclos de instrucción, la CPU accesa a la memoria por lo menos una vez, para buscar la
instrucción, y generalmente una o más veces para buscar los operandos o almacenar los resultados. El
rango en el cual la CPU puede ejecutar instrucciones está claramente delimitado por el ciclo de memoria
de la computadora.
La velocidad de la memoria es mucho menor que la velocidad del CPU. En forma idónea, la memoria
principal debería construirse con la misma tecnología que los registros de la CPU, obteniendo ciclos de
memoria comparables con los ciclos de este. Sin embargo, ésta es una estrategia muy costosa.
La solución se encuentra en explotar el principio de localidad para proveer una pequeña y rápida
memoria entre la CPU y la memoria principal denominada memoria caché. Esta memoria se utiliza para
agilizar el movimiento de los datos entre la memoria principal y la CPU mejorando así el desempeño de la
computadora.
Desde hace años se sabe que los programadores no acceden la memoria en forma completamente
aleatoria. Si una referencia a memoria es la dirección A, es común que la siguiente referencia se realice a
los alrededores de A. Un ejemplo es un programa en sí, con excepción de los saltos y las llamadas a
procedimientos, las instrucciones se extraen de localidades de memoria consecutivas. Es más, la
mayoría del tiempo de ejecución se emplea en iteraciones, en las que ciertas instrucciones se ejecutan
de manera repetida.
Se le llama principio de localidad a la observación de que las referencias a memoria realizadas en un
intervalo de tiempo corto, tienden a usar sólo una fracción de la memoria local, y representa la base para
todos los sistemas de memoria caché. La idea general es que, cuando una palabra es referenciada, se le
trae de la memoria grande y lenta a la caché, de modo que la siguiente vez que se utilice, se pueda
accesar rápido.
Si una palabra se lee o escribe k veces en un intervalo de tiempo corto, la computadora necesitará de
una referencia a la memoria lenta y k-1 referencias a la memoria rápida. Entre más grande es k mejor es
el desempeño general.
La memoria caché contiene una copia de partes de la memoria principal. Cuando la CPU requiere de una
palabra de la memoria, primero verifica si la palabra se encuentra ya en la memoria caché. Si es así, la
palabra se envía a la CPU. De lo contrario un bloque de la memoria principal, formado por un número
determinado de palabras, se lee dentro de la caché y se envía posteriormente al CPU.
La memoria principal está formada por 2n palabras direccionable. Para propósitos de mapeo, se
considera está formada por un número determinado de bloques con k palabras cada uno. Esto significa
que tenemos M= 2n /k bloques. La memoria caché consiste en C líneas de k palabras cada uno (C<<M)
En cualquier momento, un subconjunto de los bloques de memoria se encuentra en las líneas de la
caché. Como hay más bloques que líneas, una línea puede estar dedicada a un bloque en particular, por
lo tanto, cada una debe tener una etiqueta que identifica qué bloque está siendo almacenado. Esta
etiqueta generalmente está formada por una parte de la dirección de la memoria principal.
Cuando se diseña una caché, se deben considerar entre otros los siguientes aspectos: tamaño, función
de correspondencia, algoritmo de sustitución, política de escritura, tamaño de bloque y número de
caches.
Tamaño: lo ideal es que el tamaño sea lo suficiente pequeño para que el costo por bit se aproxime al de
la memoria principal y suficientemente grande sin que pierda su velocidad.
Función de correspondencia: debido a que hay menos líneas que bloques, es necesario un
algoritmo para establecer la correspondencia entre estos. Además de un medio para determinar que
GUIA 25
© 2007 Sandro Costantini
10
UNIMET
ARQUITECTURA DEL COMPUTADOR
Prof. Sandro Costantini
SISTEMAS DE MEMORIA
bloque está siendo almacenado en una línea de la caché. Las técnicas que se pueden utilizar son directa,
asociativa y asociativa por conjuntos.
Algoritmo de sustitución: cuando se introduce un nuevo bloque a la caché, debe sustituirse por uno
de los bloques existentes. En el caso de correspondencia directa, solo hay una posible línea para el
bloque particular, mientras que en las técnicas asociativas existen cuatro algoritmos: usado menos
recientemente(LRU), primero en entrar en salir (FIFO), usado menos frecuentemente, ente (LFU) y
aleatoria.
Política de escritura: antes de poder reemplazar un bloque que está en la caché es necesario
considerar si este ha sido modificado en la caché y no en la memoria principal. Si no se ha modificado
entonces se puede reemplazar el bloque, en caso contrario la memoria principal debe actualizarse.
Existen dos problemas que combatir: un modulo de E/S puede escribir/leer directamente de la memoria y
es posible que esta no sea válida. El problema se vuelve más complejo cuando carias CPU se conectan
al mismo bus y cada una tiene su propia caché Las técnicas más utilizadas son escritura inmediata y
postescritura.
Tamaño del bloque: Cuando se recupera y ubica un bloque de datos en la caché, se recupera no solo
la palabra deseada, sino además algunas palabras adyacentes. A medida que el tamaño de bloque
aumenta, la probabilidad de que los datos sean referenciados próximamente se incrementa. Sin embargo
si el tamaño es mucho mayor esta probabilidad decrecerá
Numero de cachés: originalmente un sistema tenía normalmente sólo una caché. Recientemente es
habitual utilizar múltiples caché. Los aspectos de diseño relacionados son el número de niveles de caché
y el uso de caché unificada frente a caché partida.
GUIA 25
© 2007 Sandro Costantini
11