2 Arquitectura Del Computador PDF
2 Arquitectura Del Computador PDF
2 Arquitectura Del Computador PDF
UNIMET
Repertorio de instrucciones
Formato de las instrucciones
Cdigos de operacin
Modos de direccionamiento
Registros y posiciones de memoria que se pueden manipular directamente
Nmero de bits utilizados para representar diferentes tipos de datos
Mecanismos de entrada/salida
La velocidad de ejecucin
En el tamao
Consumo de potencia
Etc.
La diferencia entre arquitectura y estructura aparece de manera clara en las familias de computadores,
que comparten una misma arquitectura pero tienen diferentes estructuras. Consecuentemente, los
diferentes modelos de la familia tienen diferentes precios y caractersticas de rendimiento. An ms, el
GUIA
UNIMET
La segmentacin - pipeline
El paralelismo
Los computadores RISC
Conviene recordar que pueden existir muchas estructuras diferentes para implementar un conjunto de
instrucciones pero, en definitiva, es el repertorio de instrucciones el factor principal que determina la
razn coste/rendimiento .
Antes de pasar al siguiente apartado quiero recalcar que la frontera entre arquitectura y
estructura no est tan clara como puede parecer. De hecho, existen autores que consideran, que tanto lo
que hemos definido como arquitectura, como lo que hemos definido como estructura, Para Baron y
Higbie son arquitectura de computadores:
Arquitectura de computadores es el diseo de computadores incluyendo su conjunto de instrucciones,
sus componentes hardware y su organizacin de sistema. Existen dos partes esenciales en la
arquitectura de computadores: la arquitectura del conjunto de instrucciones (ACI) y la arquitectura del
sistema hardware (ASH). La ACI incluye las especificaciones que determinan cmo el programador de
lenguaje mquina interacta con el computador. Un computador se ve generalmente en trminos de su
ACI que determina sus caractersticas computacionales. En contraste, el ASH est relacionado con los
principales subsistemas hardware del computador, incluyendo su unidad central de proceso, su sistema
de almacenamiento, y su sistema de entrada/salida. El ASH incluye tanto diseo lgico como
organizacin del flujo de datos de dichos subsistemas, por eso el ASH determina en gran medida la
eficiencia de la mquina.
GUIA
La memoria principal
La unidad de control
La unidad aritmtico lgica
Los sistemas de entrada/salida.
UNIMET
MEMORIA SECUNDARIA
Seales de control y de estado
MEMORIA
PRINCIPAL
Datos e
instrucciones
ENTRADA
(Datos e Instrucciones)
Instrucciones
UNIDAD
DE CONTROL
(UC)
Datos
Datos
UNIDAD
ARITMTICO
LOGICA
(ALU)
SALIDA
Resultados o
Datos de salida
La memoria estaba formada por 1024 palabras (1 Kpalabras) de 40 bits. Cada palabra poda contener 2
instrucciones o un nmero entero de 39 bits.
Las instrucciones tenan 8 bits para indicar el tipo de instruccin, y 12 bits para indicar una palabra de
memoria.
La unidad aritmtico-lgica tena un registro interno de 40 bits llamado Acumulador. Una instruccin
tpica sumaba el contenido de una palabra de memoria al acumulador, o almacenaba el contenido del
acumulador en una palabra de memoria.
Esta mquina tenan las siguientes caractersticas que hoy pueden parecer obvias:
La memoria era unidimensional, organizada como un vector de celdas del mismo tamao y de
direcciones secuenciales
Esta arquitectura es la que se mantiene hoy en da en la inmensa mayora de las mquinas de propsito
general, en las que la Unidad de Control y la Unidad Aritmtico-Lgica se han integrado en la actual CPU.
GUIA
UNIMET
CLASIFICACION DE ARQUITECTURAS
La clasificacin ms aceptada de los modelos de arquitectura es la que se debe a Flynn, la cual se
realiza segn el nmero de instrucciones o datos implicados en cada ciclo de reloj. Es una organizacin
realizada desde el punto de vista de la Estructura del Ordenador y los clasifica en:
SISD
SIMD
MISD
MIMD
GUIA
UNIMET
GUIA
UNIMET
MEMORIA
CPU
BUS DE DATOS
BUS DE CONTROL
ULA
REGISTROS
GUIA
UNIMET
REGISTROS
Para ejecutar las instrucciones la CPU requiere de algn tipo de almacenamiento temporal. Esta pequea
memoria interna, de alta velocidad, est constituida por registros, los cuales se pueden utilizar para el
almacenamiento temporal de operandos o datos que se utilicen con frecuencia. Cada registro puede
almacenar una palabra de dato. Los tiempos de acceso a los registros son generalmente de 5 a 10 veces
ms rpidos que los de acceso a memoria.
En la figura se muestra un esquema simplificado de las conexiones entre registros ULA y unidad de
control en el CPU.
CPU
MDR
R0
R1
BUS DE DATOS
......
MAR
Rn
PC
BUS INTERNO
ULA
IR
UNIDAD DE
CONTROL
BUS DE DIRECCIONES
BUS DE CONTROL
M
E
M
O
R
I
A
PSW
GUIA
UNIMET
Los registros de la CPU estn clasificados en dos categoras de acuerdo a sus funciones, aunque no
existe una clara separacin entre las dos.
Registros visibles al usuario. Permiten al programador de lenguaje de mquina o ensamblador
minimizar las referencias a la memoria principal, cuando optimiza el uso de los registros.
Registros de control y estado. Son utilizados por la unidad de control para controlar el
funcionamiento de la CPU, y por programas privilegiados del sistema operativo para controlar la
ejecucin de programas.
(Antes mencionamos que no existe una clara separacin entre las dos categoras, por ejemplo aunque en
la mayora de las mquinas el Contador de Programa(PC) no es visible al usuario, en algunas si lo es.
REGISTROS DE DIRECCIONES
Pueden ser de uso mas o menos general, o pueden estar dedicados a un modo particular de
direccionamiento. Como ejemplo tenemos:
Apuntadores de segmento: contiene la direccin de la base del segmento en una mquina con
direccionamiento segmentado.
GUIA
UNIMET
Otro punto es el Numero de Registros, ya sean de propsito general, de datos o de direcciones. Esto
afecta el diseo del conjunto de instrucciones dado que ms registros requieren ms bits de operandos.
Al parecer de 8 a 32 registros son opt5imos. Utilizar pocos registros produce ms referencias a la
memoria; muchos registros no reducen notablemente el nmero de referencias a memoria. Sin embargo,
existe un nuevo planteamiento, el cual encuentra ventajas en el uso de cientos de registros, y se
encuentra en algunos sistemas RISC
Un ltimo punto en el diseo es la Longitud de los Registros. Los registros que contienen direcciones
deben ser lo suficientemente grandes para contener direcciones grandes. Los registros de datos deben
ser capaces de almacenar valores de la mayora de los tipos de datos. Algunas mquinas permiten el uso
de dos registros contiguos para almacenar valores de longitud doble.
PC:Program Counter;
IR:Instruction Register
El PC es actualizado por el CPU despus de cada bsqueda de instruccin, por lo que siempre apunta a
la siguiente instruccin a ser ejecutada. Una instruccin de salto tambin modifica al PC. La instruccin
buscada se coloca en el IR donde el cdigo de operacin y el operando son analizados. Los datos se
intercambian utilizando MAR y MDR.
Estos cuatro registros se utilizan para la transferencia de datos entre el CPU y la memoria. Dentro del
CPU los datos son presentados a la ULA para procesarlos. La ULA debe tener acceso directo al MDR y
a los registros visibles al usuario.
GUIA
UNIMET
En la figura se muestran los dos registros involucrados directamente con el acceso a memoria.
CPU
MEMORIA
UNIDAD DE
CONTROL
MDR
MAR
0 1 0 1 0 1 1 1
0 0 1 1 0
0 1 0 1 0 1 1 1
DECOD
Bus de direcciones
Bus de datos
Todos los diseos del CPU incluyen un registro, o conjunto de registros, conocido como palabra de
estado del programa PSW (program status word). Frecuentemente el PSW contiene cdigos de condicin
y otra informacin de estado. Entre los campos comunes se incluyen los siguientes:
Supervisor: Indica cuando el CPU est operando en modo supervisor o en modo usuario. Ciertas
instrucciones y reas de memoria solo pueden accesarse en modo supervisor
GUIA
10
UNIMET
SECUENCIAMIENTO
El secuenciamiento de las instrucciones es el proceso por el cual las instrucciones de un programa van
siendo seleccionadas para su ejecucin en un orden determinado. La mayor parte de las instrucciones de
un programa tienen una sola sucesora, por lo que resulta natural almacenadas en posiciones
consecutivas de memoria. Para su secuenciamiento, se utiliza un registro denominado contador de
programa (CP). En general, si la instruccin i necesita p palabras de memoria, el incremento del CP para
pasar a la instruccin i+1 ser CP CP+p.
Las instrucciones de ruptura son las que permiten la seleccin de un camino entre varios posibles.
Cuando es necesario transferir el control del programa principal a una subrutina o una interrupcin, lo que
se hace es guardar el contenido del CP (que ser la direccin de la siguiente instruccin del programa
principal) en algn registro de la CPU o en una posicin determinada de la memoria principal llamada
direccin de retorno. Despus se carga en el CP la direccin en la que se encuentra la instruccin que
arranca el subprograma, que se ejecuta hasta que finaliza, volviendo luego el control al programa
principal recuperando el contenido del CP de la direccin de retorno.
INTERPRETACIN:
Es el proceso por el cual la unidad de control obtiene las instrucciones almacenadas en memoria y las
ejecuta. Esto se realiza en lo que llamaremos ciclo de instruccin.
CICLO DE INSTRUCCIN
La ejecucin de un programa consiste en la ejecucin secuencial de sus instrucciones. Cada instruccin
se ejecuta durante un ciclo de instruccin que est compuesto de subciclos ms pequeos (bsqueda,
direccionamiento indirecto, ejecucin e interrupcin) La realizacin de cada uno de esos subciclos implica
una o ms operaciones ms pequeas llamadas microoperaciones.
Ciclo de captacin
Ciclo de decodificacin
Ciclo de ejecucin
CICLO DE CAPTACIN
Las instrucciones que forman un programa se almacenan en forma secuencial en la memoria. Para
ejecutar este programa la CPU trae una instruccin a la vez de la memoria y realiza las funciones
especificadas. A este proceso se le conoce como ciclo de captacin y ocurre al comienzo de cada ciclo
GUIA
11
UNIMET
de instruccin produciendo que una instruccin sea obtenida de la memoria. Se utilizan los cuatro
registros siguientes:
MAR
MDR
PC
IR
[PC]
Memoria
[PC] + I
MDR
ti representa unidades sucesivas de tiempo y los corchetes [ ] se utilizan para denotar el contenido de.
CICLO DE DECODIFICACION
Una vez que se tiene la microinstruccin, el siguiente consiste en analizar los bits correspondientes al
codigo de operacin de la instruccin y determinar las operaciones a ejecutarse en el ciclo de ejecucin.
CICLO DE EJECUCIN
El ciclo de ejecucin no tiene una secuencia fija de operaciones, sino que para cada cdigo de operacin
y modo de direccionamiento hay una secuencia distinta. De forma general se efectuan las siguientes
operaciones:
Calculo de las direcciones efectivas de los operandos (dependen del modo de direccionamiento)
Lectura de los operandos (se leen de la memoria principal y se almacenan en registros a la
entrada de la Unidad Aritmtico lgica)
Operacin con los datos (en la Unidad Aritmtico Lgica)
Almacenamiento de operando (escritura del resultado en la memoria)
Al terminar con el ciclo de instruccin se sigue el mismo procedimiento con la instruccin siguiente.
GUIA
12
UNIMET
NOTAS ADICIONALES
Algunos autores especifican un ciclo indirecto que hemos considerado como parte del ciclo de ejecucin
CICLO INDIRECTO
Una vez que se tiene la microinstruccin, el siguiente paso consiste en captar los operandos.
Supongamos que el formato de instruccin requiere de un direccionamiento directo o indirecto. Si la
instruccin especifica un direccionamiento indirecto (consiste en obtener la direccin almacenada en otra
localidad de memoria), entonces se debe realizar un Ciclo Indirecto. Esto incluye las siguientes
microoperaciones:
t1:
MAR
[IR(Direccin)]
t2:
MDR
Memoria
t3:
IR(direccin) [MDR(Direccin)]
El campo de direccin en la instruccin se transfiere a MAR. Este se utiliza despus para captar la
direccin del operando. Por ltimo, el campo de direccin de IR se actualiza con el contenido de MDR, de
modo que contenga una direccin directa en lugar de una indirecta.
IR tiene ahora el mismo estado que si no se hubiera usado direccionamiento indirecto, y est listo para el
ciclo de ejecucin.
CICLO DE INTERRUPCION
Cuando termina el ciclo de ejecucin, se realiza una comprobacin para determinar si se ha habilitado
alguna interrupcin. Si es as, entonces antes de captar la siguiente instruccin tiene lugar el ciclo de
interrupcin. La secuencia es la siguiente:
t1:
t2:
t3:
MDR
MAR
PC
Memoria
[PC]
Direccin de regreso
Direccin de rutina
[MDR]
Aqu el contenido de PC se almacena en el MDR para que cuando la rutina termine de ejecutarse, el CPU
sepa en donde debe continuar. Se coloca en el MAR la direccin donde se almacenar el contenido de
PC y la direccin de la rutina a ejecutar se almacena en el PC. Posteriormente la unidad de control
especifica que se debe realizar una escritura para almacenar en memoria el dato contenido en MDR.
GUIA
13
UNIMET
INSTRUCCIONES
Las instrucciones maquinas son las acciones elementales que puede ejecutar un computador. Una
accin compleja deber codificarse como una secuencia de instrucciones mquina en lo que se
denomina un programa. La arquitectura de un procesador entendida como el conjunto de recursos
operativos disponibles por un programador a nivel de lenguaje maquina queda definida por el repertorio
de instrucciones ISA (Instruction Set Architecture). En general, una instruccin bsica que el computador
realiza sobre unos datos ubicados en la memoria o en los registros de la maquina y a los que accede
utilizando un modo de direccionamiento. Por consiguiente, la arquitectura ISA de un procesador viene
determinada por los siguientes factores.
Tipos de datos y formatos que pueden manejar las instrucciones: naturales, enteros, reales,
caracteres, etc.
Modos de direccionamiento de los datos ubicados en la memoria: inmediato, directo, indirecto,
etc. Estos dos factores son determinantes para la implantacin eficiente de las estructuras
complejas de datos de un lenguaje de alto nivel
Conjunto bsico de operaciones que se pueden realizar sobre los datos: suma, resta, etc.
GUIA
14
UNIMET
CO
OP1
OP2
.......
OPd
IS
El cdigo de operacin determina la operacin que se realiza sobre los operandos 1,2,... El resultado se
deja en el Operando Destino. Lo normal es que el numero de operandos fuentes de un repertorio no pase
de 2. La direccin de la instruccin siguiente IS queda implcita en todas las instrucciones (se trata de la
instruccin siguiente del programa) salvo en las instrucciones de ruptura condicional o incondicional de
secuencia.
REG B
REG A
CO
ULA
OP1
OP2
OP3
REGISTRO DE INSTRUCCION
ACUMULADOR
REG A
REG B
ULA
CO
OP1
OP2
REGISTRO DE INSTRUCCION
ACUMULADOR
GUIA
15
UNIMET
REG B
REG A
Ejemplo: ADD B :
Acumulador [Acumulador] + B
ULA
CO
OP1
REGISTRO DE INSTRUCCION
ACUMULADOR
GUIA
16
UNIMET
METODOS DE DIRECCIONAMIENTO
Como las instrucciones del programa y los datos se almacenan en memoria central antes de ejecutar el
programa es fundamental que el procesador disponga de mecanismos para acceder tanto a las
posiciones de memoria ocupadas por las instrucciones y las posiciones de memoria ocupadas por los
datos. En el capitulo anterior se ha escrito la memoria como un conjunto de posiciones de memoria cada
una conteniendo una palabra de memoria.
La manera de acceder a memoria depender de como se utilizan los buses del sistema tanto de
direcciones como de datos para transportar las direcciones y los contenidos de memoria
correspondientes tanto a datos como a instrucciones. En la prctica esto no es tan simple:
-Las instrucciones ocupan mas de una palabra de memoria
-Las direcciones transferidas a travs del bus de direcciones no son siempre direcciones fsicas.
Existen diferentes tcnicas para averiguar las direcciones fsicas de la informacin en memoria. Se
conocen como modos de direccionamiento.
Estos modos de direccionamiento, que son transparentes para todos menos para los programadores de
lenguaje ensamblador, estn diseadas para facilitar el acceso a los datos o a grupos de datos en
memoria. No todos los procesadores implementan todos los modos de direccionamiento. Escribir un
compilador para un procesador (o lo que es lo mismo dispone de un medio para pasar un algoritmo de
alto nivel a las instrucciones bsicas de su repertorio) suele resultar ms fcil si estn implementados los
siguientes modos de direccionamiento, que permitan el acceso a los operandos de las instrucciones o a
las instrucciones mismas.
Direccionamiento Inmediato
La forma ms simple de indicar un operando es incluyndolo en la propia instruccin. Ya
CO OPERANDO
que las instrucciones no son modificables, este es el modo que se utiliza en o peraciones
con constantes. Si la constante es un valor numrico, se almacena en complemento a
dos.
La ventaja del direccionamiento inmediato es que no se requieren referencias adicionales a memoria para obtener el
operando, ahorrando por lo tanto espacio y tiempo. El inconveniente es que el espacio reservado para este operando
suele estar restringido y suele ser menor que el tamao de la palabra, por lo que en algunos procesadores solamente
se utiliza para constantes de valores pequeos.
Direccionamiento Directo
Otra forma muy simple de hacer referencia a un
operando es indicando su direccin en memoria
principal, y solamente requiere una referencia
adicional a memoria para obtener un operando.
Es el modo de direccionamiento comn para las
variables globales de los programas. La
instruccin siempre accesar a la misma
localidad de memoria exactamente. Si bien el
valor contenido en ella puede cambiar, la
direccin no puede alterarse.
GUIA
MEMORIA
CO
operando
operando
17
UNIMET
Direccionamiento a Registro
REGISTROS
Direccionamiento Indirecto
MEMORIA
MEMORIA
CO
operando
operando
REGISTROS
operando
Direccionamiento Indexado
En este modo para formar la direccin del dato
se utilizan un registro ms un desplazamiento
que viene explcitamente en el campo de
operando.
Direccin del operando es igual al contenido del
registro + una constante.
MEMORIA
CO
operando
operando
REGISTROS
GUIA
operando
18
UNIMET
SISTEMAS DE MEMORIA
La memoria es un medio fsico capaz de almacenar informacin (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, tecnologa,
estructura, prestaciones y costo. Ninguna tecnologa es ptima para satisfacer todas las necesidades de
un computador por lo existe una jerarqua de subsistemas de memoria, algunos directamente accesibles
por el procesador (internos) y otros accesibles mediante mdulos de entrada/salida (externos).
Examinaremos las caractersticas claves de las memorias y luego analizaremos el subsistema de
memoria principal.
Memoria interna del procesador: la utiliza la CPU como elemento de almacenamiento temporal de
instrucciones y datos, y consta de un pequeo conjunto de registros de alta velocidad.
Memoria Principal: es una memoria relativamente grande y rpida utilizada para el
almacenamiento de los programas y sus correspondientes datos, siendo la tecnologa ms
empleada la de circuito integrado.
Memoria externa o secundaria: son dispositivos perifricos de almacenamiento accesible a la
CPU a travs de controladores de E/S. Suele ser ms grande y ms lenta que la memoria central,
y se utiliza fundamentalmente para el almacenamiento de programas y conjuntos de datos que no
estn siendo utilizados continuamente por la CPU.
Jerarqua:
Las restricciones de diseo 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 ejecucin
de programas que son grandes o que trabajan con una gran cantidad de datos.
Por otra parte tenemos que la velocidad de ejecucin 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 debera ser rpida, grande y barata. Como cabria esperar, hay un compromiso entre estas tres
caractersticas de la memoria que mantienen las siguientes relaciones:
GUIA
19
UNIMET
De cara al diseador el dilema est claro; le gustara disponer de una tecnologa de memoria que le
proporcionara una gran capacidad, tanto porque se necesita cantidad de memoria, como porque el costo
por bit es pequeo. Sin embargo, para conseguir buen rendimiento y velocidad se necesitan memorias de
rpido acceso, que son de poca capacidad y ms caras.
La jerarqua de memorias se emplea para solucionar las diferentes necesidades que tienen cada tipo de
memoria. Una jerarqua tpica es la siguiente:
REGISTROS CPU
MEMORIA CACH
MEMORIA PRINCIPAL
DISCOS MAGNETICOS
CINTAS MAGNETICAS
En lugar de decidirnos por un solo tipo de tecnologa o un nico tipo de memoria, lo que hay que hacer es
construir una estructura con una jerarqua de memoria de manera de situar en los niveles superiores los
datos o instrucciones que se necesitan ms frecuentemente. Los pocos datos con los que se est
ejecutando la instruccin en curso estn en los registros; los datos de las ltimas instrucciones, en la
memoria cach, el resto de los datos del programa en ejecucin estarn repartido entre la memoria
principal y secundaria de acceso rpido(discos magnticos); los programas o datos que no se estn
ejecutando se guardan en memorias secundarias masivas de mayor tiempo de acceso, como la cinta
magntica y el disco ptico,
La CPU y el sistema operativo se encargarn de ir llevando y trayendo los datos de las memorias lentas a
las rpidas y viceversa, a medida que se vayan referenciando los distintos datos o programas.
10
K=2
20
M=2
30
G=2
40
T=2
= 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
20
UNIMET
Direccin o ubicacin. Cada celda de memoria es asociada unvocamente a una direccin, de tal
manera que mediante esa direccin 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 nmero de hilos, n , del bus de
n
direcciones, de tal manera que el espacio de direccionamiento de un procesador es 2 unidades
n
direccionables, con lo que su rango de direcciones va desde 0 hasta 2 1. La cantidad de memoria de un
ordenador se corresponde solamente con la memoria realmente instalada. El mximo de memoria que se
n
puede instalar es 2 .
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.
Mtodos de acceso.
Se distinguen 4 tipos:
Desempeo: para medir el rendimiento de velocidad se utilizan los tres parmetros siguientes:
GUIA
21
UNIMET
Tiempo de acceso (tA): Para las memorias de acceso aleatorio, es el tiempo que toma
realizar una operacin 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 mnimo 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 fsicos:
Existe
una gran variedad de tipos fsicos de memoria. Los tres ms utilizados son:
Memorias de Semiconductor como memoria principal
Memorias Magnticas como memoria secundaria
Memorias pticas, tambin como memoria secundaria
Caractersticas fsicas:
Alterabilidad: Las memorias cuyo contenido no puede ser modificado se denominan memorias de
slo lectura o memorias ROM, y las que pueden realizar operaciones de lectura y escritura se llaman
memorias de lectura/escritura.
GUIA
22
UNIMET
MEMORIA PRINCIPAL
Aunque la CPU dispone de una memoria interna (los registros), sta es demasiado pequea como para
albergar solamente la instruccin a ejecutar , sus operandos y poco ms. Por eso es necesario disponer
de un sistema de memoria externa suficientemente grande. Para ello se cuenta con la Memoria Principal
que hoy en da est construida a base de semiconductores y estn formadas por una serie de celdas que
contienen datos.
Hay diversos tipos de memorias de semiconductor, y tambin varios criterios de clasificacin. Uno de
estos criterios puede ser el cmo se referencia cada una de las celdas de datos de la memoria. Segn
este criterio hay dos tipos de memorias:
Asociativas: esto es seleccionadle por el contenido
Convencionales: seleccionables por la direccin de la celda
Las memorias asociativas son las que utiliza la memoria cach. Por su parte las convencionales tienen
distintos usos dependiendo de su tecnologa, 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 voltil de acceso directo de lectura/escritura.
La memoria RAM a su vez admite distintas tecnologas, como las memorias estticas (ms rpidas y que
suelen emplearse para las memorias cach) y las dinmicas (ms lentas y utilizadas para la memoria
principal), pero no vamos a bajar a este nivel, y nos ocuparemos solo de las caractersticas y conexiones
de los mdulos de memoria RAM y ROM en general. Los mdulos de memoria ROM los consideraremos
con las mismas caractersticas 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 ms
frecuente es encontrar simplemente memoria RAM y ROM (o alguna variedad), donde la RAM ocupa la
inmensa mayora 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 bsicas 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 bsico de una memoria semiconductora
es la celda binaria de almacenamiento, capaz de contener un bit de informacin.
Pero un bit resulta insuficiente como unidad lgica de almacenamiento por lo que se procesan en grupos
de un tamao predefinido llamado palabra. El nmero de celdas en cada palabra se denomina longitud
de palabra. A cada una se le asocia una direccin 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
1
2
3
4
5
6
7
8
9
10
11
0
1
2
3
4
5
6
7
0
1
2
3
4
5
16
bits
12 bits
8 bits
GUIA
23
UNIMET
Aunque el nmero de bits por celda ha variado mucho, hoy da casi todos los fabricantes de ordenadores
de propsito 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 nmeros de cierta magnitud. Por esto
los bytes se agrupan a su vez en palabras. El tamao 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
32 Mb
RAM
EEPROM
4 Kb
ROM/PROM
16 Kb
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 Mbit x 8.
Veamos la interfaz que nos ofrece con el mundo exterior.
Pines de direccion: A0-A19. Puesto que tiene un espacio de
A0
A1
A2
A3
A4
A5
A6
A7
A8
A9
A 10
A 11
WE
OE
CS
GND
Vcc
GUIA
RAM
1 Mb x 8
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
24
UNIMET
ORGANIZACIN 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 organizacin rpida, ya que el nico retardo es el asociado con los circuitos de
decodificacin. Sin embargo, ya que el nmero de palabras es mucho mayor que el nmero de bits por
palabras, la utilizacin de esta organizacin dara lugar a matrices de celdas excesivamente largas y
estrechas, que no resultan adecuadas para su realizacin en un circuito integrado.
ARREGLO DE
MEMORIA
2n
LECTURA/ESCRITURA
2n X B
2 n palabras
LINEAS DE
DIRECCION
DECODIFICADOR
B bits
CIRCUITO
ENTRADA
SALIDA
LINEAS DE DATOS
Numero de palabras = 2
Capacidad = (numero de palabras) x (longitud de palabra)
GUIA
25
UNIMET
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
15
Lneas de direccin = 15 (2 = 32.768) (lneas de entradas al decodificador)
Lneas de datos = 8 (longitud de la palabra)
ORGANIZACIN 2D
Los bits de una palabra estn repartidos en mas de un chip. La organizacin ms comn es la que
permite almacenar 1 bit de una palabra en un chip. El chip contiene un arreglo de bits tpicamente
cuadrado. Para escoger un bit de una palabra en particular, la direccin se divide en 2. Se utilizan 2
decodificadores con n/2 entradas. Uno de ellos realiza la seleccin sobre el eje X y el otro sobre el eje Y.
Para obtener el resto de los bits que constituyen la palabra se utilizarn otros chips.
2 n/2
ARREGLO DE
MEMORIA
2 n/2 X 2n/2
n/2
LECTURA/ESCRITURA
2 n/2 bits
DECODIFICADOR
FILAS
n/2
n
LINEAS DE DIRECCION
2 n/2 bits
SELECTOR COLUMNA
ENTRADA/SALIDA
ENTRADA bit
SALIDA bit
En esta organizacin , con la restriccin 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
10
Lneas de direccin = 10 (2 = 1024) (5 para la X y 5 para la Y)
Lneas de datos = 1 (longitud de la palabra)
5
5
La matriz cuadrada de memoria es de 32 x 32 (2 X 2 ) = 1024
Ventajas de 2D sobre 2D
GUIA
El arreglo 2D es un arreglo cuadrado mientras que el 2D puede llegar a ser muy largo y
estrecho
Una organizacin 2D requiere mayor nmero de lneas externas de datos.
Con una organizacin 2D se obtiene mayor capacidad de memoria.
26
UNIMET
A0 A13
A0 A13
A0 A13
CPU AS
CS
R/W
OE
CS
CHIP 2
OE
D0 D7
WE
CHIP 1
D0 D3
D0 D7
WE D0 D3
D4 D7
D0 D3
A0 A11
A0 A11
CPU AS
CS
R/W
OE
D0 D7
WE
D0 D7
A0 A11
A0 A11
CS
OE
A0 A11
CS
OE
WE
D0 D7
D0 D7
A0 A11
WE
D0 D7
D0 7
A0 A11
CS
OE
CHIP 4
A0 A13
A0 A11
CHIP 3
A0 A11
DIRECCIONES ( A0 A13 )
CHIP 2
A12
CHIP 1
A13
WE
D0 D7
D0 D7
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
expansin de longitud de palabra y de capacidad de palabra. Trate de obtener el circuito.
GUIA
27
UNIMET
Memoria Cach
La velocidad de ejecucin 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 diseo de
la memoria es, y seguir siendo un tpico importante en el desempeo de una computadora.
Uno de los problemas bsicos a considerar en el diseo de memorias es la velocidad. Este problema
surge debido a que por lo general la CPU puede procesar instrucciones y datos ms rpido de lo que
dura su trada 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 instruccin, la CPU accesa a la memoria por lo menos una vez, para buscar la
instruccin, y generalmente una o ms 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 idnea, la memoria
principal debera construirse con la misma tecnologa 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 solucin se encuentra en explotar el principio de localidad para proveer una pequea y rpida
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 desempeo de la
computadora.
Desde hace aos se sabe que los programadores no acceden la memoria en forma completamente
aleatoria. Si una referencia a memoria es la direccin A, es comn que la siguiente referencia se realice a
los alrededores de A. Un ejemplo es un programa en s, con excepcin de los saltos y las llamadas a
procedimientos, las instrucciones se extraen de localidades de memoria consecutivas. Es ms, la
mayora del tiempo de ejecucin se emplea en iteraciones, en las que ciertas instrucciones se ejecutan
de manera repetida.
Se le llama principio de localidad a la observacin de que las referencias a memoria realizadas en un
intervalo de tiempo corto, tienden a usar slo una fraccin 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 rpido.
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 rpida. Entre ms grande es k mejor es
el desempeo 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 enva a la CPU. De lo contrario un bloque de la memoria principal, formado por un nmero
determinado de palabras, se lee dentro de la cach y se enva posteriormente al CPU.
n
La memoria principal est formada por 2 palabras direccionable. Para propsitos de mapeo, se
considera est formada por un nmero determinado de bloques con k palabras cada uno. Esto significa
n
que tenemos M= 2 /k bloques. La memoria cach consiste en C lneas de k palabras cada uno (C<<M)
En cualquier momento, un subconjunto de los bloques de memoria se encuentra en las lneas de la
cach. Como hay ms bloques que lneas, una lnea 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 direccin de la memoria principal.
Cuando se disea una cach, se deben considerar entre otros los siguientes aspectos: tamao, funcin
de correspondencia, algoritmo de sustitucin, poltica de escritura, tamao de bloque y nmero de
caches.
Tamao: lo ideal es que el tamao sea lo suficiente pequeo para que el costo por bit se aproxime al de
la memoria principal y suficientemente grande sin que pierda su velocidad.
Funcin de correspondencia: debido a que hay menos lneas que bloques, es necesario un
algoritmo para establecer la correspondencia entre estos. Adems de un medio para determinar que
bloque est siendo almacenado en una lnea de la cach. Las tcnicas que se pueden utilizar son directa,
asociativa y asociativa por conjuntos.
GUIA
28
UNIMET
Algoritmo de sustitucin: 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 lnea para el bloque
particular, mientras que en las tcnicas asociativas existen cuatro algoritmos: usado menos
recientemente(LRU), primero en entrar en salir (FIFO), usado menos frecuentemente, ente (LFU) y
aleatoria.
Poltica 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 esribir/leer directamente de la memoria y
es posible que esta no sea vlida. El problema se vuelve ms complejo cuando carias CPU se conectan
al mismo bus y cada una tiene su propia cach Las tcnicas ms utilizadas son escritura inmediata y
postescritura.
Tamao del bloque: Cuando se recupera y ubica un bloque de datos en la cach, se recupera no solo la
palabra deseada, sino adems algunas palabras adyacentes. A medida que el tamao de bloque
aumenta, la probabilidad de que los datos sean referenciados prximamente se incrementa. Sin embargo
si el tamao es mucho mayor esta probabilidad decrecer
Numero de cachs: originalmente un sistema tena normalmente slo una cach. Recientemente es
habitual utilizar mltiples cach. Los aspectos de diseo relacionados son el nmero de niveles de cach
y el uso de cach unificada frente a cach partida.
GUIA
29