Está en la página 1de 14

Apuntes de arquitectura de computadoras Unidad 1 Modelo de arquitecturas de cmputo.

1.1 Modelos de arquitecturas de cmputo. 1.1.1 Arquitecturas Clsicas.


Estas arquitecturas se desarrollaron en las primeras computadoras electromecnicas y de tubos de vaco. Aun son usadas en procesadores empotrados de gama baja y son la base de la mayora de las arquitecturas modernas Arquitectura Mauchly-Eckert (Von Newman) Esta arquitectura fue utilizada en la computadora ENIAC. Consiste en una unidad central de proceso que se comunica a trav s de un solo bus con un banco de memoria en donde se almacenan tanto los c!digos de instrucci!n del programa" como los datos que sern procesados por este. Esta arquitectura es la ms empleada en la actualidad ya" que es muy verstil. Ejemplo de esta versatilidad es el funcionamiento de los compiladores" los cuales son programas que toman como entrada un arc#ivo de te$to conteniendo c!digo fuente y generan como datos de salida" el c!digo maquina que corresponde a dic#o c!digo fuente %&on programas que crean o modifican otros programas'. Estos datos de salida pueden ejecutarse como un programa posteriormente ya que se usa la misma memoria para datos y para el c!digo del programa.

Procesador Unidad de Control ALU Registros

Bus principal

Memoria Principal Almacena el programa y los datos

Entrada y salida

(igura ).).).* +iagrama a bloques de la arquitectura ,on Ne-man. .a principal desventaja de esta arquitectura" es que el bus de datos y direcciones /nico se convierte en un cuello de botella por el cual debe pasar toda la informaci!n que se lee de o se escribe a la memoria" obligando a que todos los accesos a esta sean secuenciales. Esto limita el grado de paralelismo %acciones que se pueden realizar al mismo tiempo' y por lo tanto" el desempe0o de la computadora. Este efecto se conoce como el cuello de botella de ,on Ne-man En esta arquitectura apareci! por primera vez el concepto de programa almacenado. Anteriormente la

secuencia de las operaciones era dictada por el alambrado de la unidad de control" e cambiarla implicaba un proceso de recableado laborioso" lento%#asta tres semanas' y propenso a errores. En esta arquitectura se asigna un c!digo num rico a cada instrucci!n. +ic#os c!digos se almacenan en la misma unidad de memoria que los datos que van a procesarse" para ser ejecutados en el orden en que se encuentran almacenados en memoria. Esto permite cambiar rpidamente la aplicaci!n de la computadora y dio origen a las computadoras de prop!sito general 1as a detalle" el procesador se subdivide en una unidad de control %C.2.'" una unidad l!gica aritm tica %A...2.' y una serie de registros. .os registros sirven para almacenar internamente datos y estado del procesador. .a unidad aritm tica l!gica proporciona la capacidad de realizar operaciones aritm ticas y l!gicas. .a unidad de control genera las se0ales de control para leer el c!digo de las instrucciones" decodificarlas y #acer que la A.2 las ejecute. Arquitectura Harvard Esta arquitectura surgi! en la universidad del mismo nombre" poco despu s de que la arquitectura ,on Ne-man apareciera en la universidad de 3rinceton. Al igual que en la arquitectura ,on Ne-man" el programa se almacena como un c!digo num rico en la memoria" pero no en el mismo espacio de memoria ni en el mismo formato que los datos. 3or ejemplo" se pueden almacenar las instrucciones en doce bits en la memoria de programa" mientras los datos de almacenan en 4 bits en una memoria aparte.

Bus de programa Memoria de programa

Procesador Unidad de Control ALU Registros

Bus de datos

Memoria de datos

Entrada y salida

(igura ).).).* +iagrama a bloques de la arquitectura 5arvard El #ec#o de tener un bus separado para el programa y otro para los datos permite que se lea el c!digo de operaci!n de una instrucci!n" al mismo tiempo se lee de la memoria de datos los operados de la instrucci!n previa. As se evita el problema del cuello de botella de ,on Ne-man y se obtiene un mejor desempe0o. En la actualidad la mayora de los procesadores modernos se conectan al e$terior de manera similar a a la arquitectura ,on Ne-man" con un banco de memoria masivo /nico" pero internamente incluyen varios niveles de memoria cac#e con bancos separados en cac#e de programa y cac#e de datos" buscando un mejor desempe0o sin perder la versatilidad.

1.1.2 Arquitecturas Segmentadas.


.as arquitecturas segmentadas o con segmentaci!n del cauce buscan mejorar el desempe0o realizando paralelamente varias etapas del ciclo de instrucci!n al mismo tiempo. El procesador se divide en varias

unidades funcionales independientes y se dividen entre ellas el procesamiento de las instrucciones. 3ara comprender mejor esto" supongamos que un procesador simple tiene un ciclo de instrucci!n sencillo consistente solamente en una etapa de b/squeda del c!digo de instrucci!n y en otra etapa de ejecuci!n de la instrucci!n. En un procesador sin segmentaci!n del cauce" las dos etapas se realizaran de manera secuencial para cada una de la instrucciones" como lo muestra la siguiente figura.

B1 E1 B2 E2 B3 E3
(igura ).).*.) 6/squeda y ejecuci!n en secuencia de tres instrucciones en un procesador sin segmentaci!n del cause En un procesador con segmentaci!n del cause" cada una de estas etapas se asigna a una unidad funcional diferente" la b/squeda a la unidad de b/squeda y la ejecuci!n a la unidad de ejecuci!n. Estas unidades pueden trabajar en forma paralela en instrucciones diferentes. Estas unidades se comunican por medio de una cola de instrucciones en la que la unidad de b/squeda coloca los c!digos de instrucci!n que ley! para que la unidad de ejecuci!n los tome de la cola y los ejecute. Esta cola se parece a un tubo donde las instrucciones entran por un e$tremo y salen por el otro. +e esta analoga proviene el nombre en ingles7 3ipelining o entubamiento. En general se divide al procesador segmentado en una unidad independiente por cada etapa del ciclo de instrucci!n.

Unidad de Bsqueda

Cola de nstrucciones

Unidad de e ecucin

(igura ).).*.8 Comunicaci!n entre las unidades en un procesador con segmentaci!n de cauce. Completando el ejemplo anterior" en un procesador con segmentaci!n" la unidad de b/squeda comenzara buscando el c!digo de la primera instrucci!n en el primer ciclo de reloj. +urante el segundo ciclo de reloj" la unidad de b/squeda obtendra el c!digo de la instrucci!n *" mientras que la unidad de ejecuci!n ejecuta la instrucci!n ) y as sucesivamente. .a siguiente figura muestra este proceso.

B1 B2 B3 B3 E1 E2 E3

Unidad de bsqueda Unidad de ejecucin

(igura ).).*.8 6/squeda y ejecuci!n en secuencia de tres instrucciones en un

procesador con segmentaci!n del cause En este esquema sigue tomando el mismo numero de ciclos de reloj %el mismo tiempo'" pero como se trabaja en varias instrucciones al mismo tiempo" el n/mero promedio de instrucciones por segundo se multiplica. En teora" el rendimiento de un procesador segmentado mejora con respecto a uno no segmentado en un factor igual al numero de etapas independientes. &in embargo" la mejora en el rendimiento no es proporcional al numero de segmentos en el cauce debido a que cada etapa no toma el mismo tiempo en realizarse" adems de que se puede presentar competencia por el uso de algunos recursos como la memoria principal. 9tra raz!n por la que las ventajas de este esquema se pierden es cuando se encuentra un salto en el programa y todas las instrucciones que ya se buscaron y se encuentran en la cola" deben descartarse y comenzar a buscar las instrucciones desde cero a partir de la direcci!n a la que se salto. Esto reduce el desempe0o del procesador y a/n se investigan maneras de predecir los saltos para evitar este problema.

Espera Bsqueda

Espera E ecucin

(igura ).).*.: Consecuencias de la competencia por un recurso

1.1.3 Arquitecturas de multiprocesamiento.


Cuando se desea incrementar el desempe0o ms aya de lo que permite la t cnica de segmentaci!n del cauce %limite te!rico de una instrucci!n por ciclo de reloj'" se requiere utilizar ms de un procesador para la ejecuci!n del programa de aplicaci!n. .as C32 de multiprocesamiento se clasifican de la siguiente manera7 &I&9 ; %&ingle Instruction" &ingle 9perand ' computadoras independientes &I19 ; %&ingle Instruction" 1ultiple 9perand ' procesadores vectoriales 1I&9 ; %1ultiple Instruction" &ingle 9perand ' No implementado 1I19 ; %1ultiple Instruction" 1ultiple 9perand ' sistemas &13" Clusters 3rocesadores vectoriales ; &on computadoras pensadas para aplicar un mismo algoritmo num rico a una serie de datos matriciales" en especial en la simulaci!n de sistemas fsicos complejos" tales como simuladores para predecir el clima" e$plosiones at!micas" reacciones qumicas complejas" etc." donde los datos son representados como grandes n/meros de datos en forma matricial sobr los que se deben se aplicar el mismo algoritmo num rico. En los sistemas &13 %&imetric 1ultiprocesesors'" varios procesadores comparten la misma memoria principal y perif ricos de I<9" Normalmente conectados por un bus com/n. &e conocen como sim tricos" ya que ning/n procesador toma el papel de maestro y los dems de esclavos" sino que todos tienen derec#os similares en cuanto al acceso a la memoria y perif ricos y ambos son administrados por el sistema operativo.

.os Clusters son conjuntos de computadoras independientes conectadas en una red de rea local o por un bis de intercone$i!n y que trabajan cooperativamente para resolver un problema. Es clave en su funcionamiento contar con un sistema operativo y programas de aplicaci!n capaces de distribuir el trabajo entre las computadoras de la red.

1.2 Anlisis de los componentes. 1.2.1 C!U. 1.2.1.1 Arquitecturas.


Ademas de las arquitecturas clsicas mencionadas anteriormente" en la actualidad #an aparecido arquitecturas #bridas entre la ,on Ne-man y la 5arvard" buscando conservar la fle$ibilidad" pero mejorando el rendimiento. El cambio ms importante de los /ltimos a0os en dise0o de las computadoras de los /ltimos a0os se dio durante los a0os )=4>" con la aparici!n de la corriente de dise0o conocida como computadoras de conjunto reducido de instrucciones %?I&C" por sus siglas en ingles'. Esta escuela pretende aplicar un enfoque totalmente distinto al tradicional #asta entonces" que paso a conocerse como computadoras de conjunto complejo de instrucciones %CI&C' para diferenciarla de la nueva tendencia. .a tendencia tradional" representada por las arquitecturas CI&C %Comple$ Instruction &et Computers' se caracterizan por tener un n/mero amplio de instrucciones y modos de direccionamiento. &e implementan instrucciones especiales que realizan funciones complejas" de manera que un programador puede encontrar con seguridad" una instrucci!n especial que realiza en #ard-are la funci!n que el necesita. El n/mero de registros del C32 es limitado" ya que las compuertas l!gicas del circuito integrado se emplean para implementar las secuencias de control de estas instrucciones especiales. Al investigar las tendencias en la escritura de soft-are cientfico y comercial al inicio de los 4>" ya se pudo observar que en general ya no se programaba muc#o en ensamblador" sino en lenguajes de alto nivel" tales como C. .os compiladores de lenguajes de alto nivel no #acan uso de las instrucciones especiales implementadas en los procesadores CI&C" por lo que resultaba un desperdicio de recursos emplear las compuertas del circuito de esta forma. 3or lo anterior" se decidi! que era mejor emplear estos recursos en #acer que las pocas instrucciones que realmente empleaban los compiladores se ejecutaran lo ms rpidamente posible. As surgi! la escuela de dise0o ?I&C %?educed Instruction &et Computers' donde solo se cuenta con unas pocas instrucciones y modos de direccionamiento" pero se busca implementarlos de forma muy eficiente y que todas las instrucciones trabajen con todos los modos de direccionamiento. Ademas" se observo que una de las tareas que tomaban ms tiempo en ejecutarse en lenguajes de alto nivel" era el pasar los parmetros a las subrutinas a trav s de la pila. Como la forma ms rpida de #acer este paso es por medio de registros del C32" se busco dotarlo con un amplio n/mero de registros" a trav s de los cuales se pueden pasar dic#os parmetros.

1.2.1.2 "ipos.
.os C32s modernos pueden clasificarse de acuerdo a varias caractersticas" tales como7 el tama0o del A.2 o del 6us de cone$i!n al e$terior %4" )@" 8*" @: bits'"si tienen cauce segmentado o no segmentado" si con tipo CI&C o ?I&C" ,on Ne-an o 5arvard y si solo tienen instrucciones enteras o implementan tambi n instrucciones de punto flotante

1.2.1.3 Caracter#sticas.
.as caractersticas ms importantes a considerar al escoger un C32 para usarlo en una aplicaci!n" son7
1odelo

del programador %Conjunto de registros que el programador puede utilizar'" forman el modelo mental del C32 que el programador utiliza al programar en ensamblador.
Conjunto 1odos Ciclo 6uses

de instrucciones que puede ejecutar el C32

de direccionamiento que pueden usarse para obtener los operandos de las instrucciones.

de instrucci!n %el conjunto de pasos que realiza el C32 para procesar cada instrucci!n'

de intercone$i!n" usados para que el C32 lea y escriba a la memoria y a los dispositivos de entrada y salida.

1.2.1.$ %uncionamiento.
+ebido a la gran variedad de C32 disponibles comercialmente" se e$plicara el funcionamiento de un unidad central de proceso imaginaria muy simple" pero que resume el funcionamiento bsico de la mayora de los C32s. Este C32 es similar a las primeras computadoras e$istentes en los a0os )=A>s. Esta computadora contara con una memoria de :>=@ palabras de )@ bits cada una. Esto corresponde a un bus de direcciones de )* bits y un bus de datos de )@ bits'. En cada localidad de memoria se podr almacenar un entero de )@ bits o el c!digo de una instrucci!n" tambi n de )@ bits. Bodos los C32 tienen como funci!n principal la ejecuci!n de un programa acorde a la aplicaci!n del mismo. 2n programa es un conjunto de instrucciones almacenadas de acuerdo al orden en que deben ejecutarse. 3or lo tanto" toda computadora debe ser capaz de procesar las instrucciones de su programa en un ciclo de instrucci!n" consistente en un n/mero de etapas que varia con cada C32" pero que tradicionalmente #an sido tres7 )CBsqueda del c!digo de Instrucci!n. Esta consiste en leer de la memoria cual ser la siguiente instrucci!n a ejecutar" la cual esta almacenada en forma de un c!digo num rico que indica cual de todas las operaciones que puede realizar el C32 sera la siguiente y con que operandos se ejecutara. *C Decodificacin. Consiste en tomar el c!digo num rico e identificar a cual de las operaciones que puede realizar el C32 corresponde dic#o c!digo. El proceso contrario" la codificaci!n" consiste en conociendo la instrucci!n" determinar el n/mero que la va a representar. Esta etapa usualmente se realiza con un decodificador binario. 8C Ejecucin. En esta etapa se lleva a cabo la operaci!n sobre los datos que se vallan a procesar. En general" la unidad de control %C2' genera las se0ales de control necesarias para llevar los datos a las entradas de la 2nidad Aritm tica .!gica" la cual efectuar las operaciones aritm ticas y l!gicas. 3osteriormente" la unidad de control generara las se0ales de control necesarias para transferir la salida de la 2nidad Aritm tica .!gica al registro donde sern almacenados los resultados para su uso posterior.

6/squeda de la Instrucci!n +ecodificaci!n de la Instrucci!n

Ejecuci!n de la Instrucci!n

(igura ).*.).:.) Ciclo de instrucci!n Es importante recordar que cada instrucci!n del programa se almacena en memoria como un n/mero binario. Este n/mero se conoce como c!digo de instrucci!n" y usualmente se divide en al menos dos campos7 un c!digo de operaci!n %9pcode' y un n/mero que representa al operando u operandos de la instrucci!n. En el caso de la computadora imaginaria que estamos estudiando" se almacena cada instrucci!n en una de las :>=@ palabras de memoria de )@ bits cada una. &e utiliza un formato de un solo operando" con un segundo operando en el acumulador cuando es necesario. .os cuatro bits ms significativos de los diecis is bits de la palabra se dedican a almacenar el c!digo de operaci!n. .os doce bits menos significativos se dedican a almacenar la direcci!n del operando.

Cdigo de nstruccin !peracin !perando " !perando #

!perando nico Codigo de !peracin


(igura ).*.).:.* Codificaci!n de las instrucciones .a siguiente tabla resume los c!digos de operaci!n de la computadora de ejemplo. C!digo de 9peraci!n Instrucci!n 9peraci!n ># )# *# 8# :# .9A+ %Carga' &B9?E %Almacena' A++ %&uma' A+C %&uma con Acarreo' &26 %?esta' ACCDCE1F E1FDCACC ACCDCACCGE1F ACCDCACCGE1FGC ACCDCACCGC1F

A# @# H# 4# =# A# 6# C# +# E# (#

9? %9r 6it a 6it' AN+ %And bit a 6it' I9? %Ior 6it a 6it' &5. %Corrimiento a la Izquierda' &5? %Corrimiento a la derec#a' 6?A 6ifurcaci!n o salto 6?K %6ifurca si es Cero' 6?C %6ifurca si #ay Acarreo' 6?9 %6ifurca si #ay &obreflujo' .+I %Carga Constante Inmediata'

ACCDCACC or E1F ACCDCACC and E1F ACCDCACC $or E1F ACCDCACC DD ) ACCDCACC JJ ) 3CDC1 &i KLL) LJ 3CDC1 &i KLL) LJ 3CDC1 &i KLL) LJ 3CDC1 ACC DCE3CFM 3CDC3CG)

&B93 +etener la ejecuci!n Babla ).*.).:.) C!digos de operaci!n para la computadora de ejemplo

.as partes del C32 de la computadora imaginaria son7 ACC ; Acumulador" se usar para almacenar uno de los operandos y el resultado de varias de las instrucciones MAR ; %1emory Address ?egister' ?egistro de direcci!n de memoria" selecciona a que localidad de memoria se va a leer o a escribir. MBR ; %1emory 6us ?egister' ?egistro de bus de memoria. A trav s de l se lee y se escriben los datos. PC ; %3rogram Counter' El contador de programa almacena la direcci!n de la siguiente instrucci!n a buscar. 3or esta raz!n tambi n es conocido como apuntador de instrucciones. IR C ?egistro de instrucci!n" guarda el c!digo de la instrucci!n que se esta ejecutando. Flags ; ?egistro de 6anderas" agrupa a todas las banderas de la A.2 en un registro" en el caso de nuestra computadora imaginaria" las banderas disponibles sern7 K ; 6andera de Cero" se pone en uno cuando todos los bits del resultado son ceroM 9 ; &obreflujo" se pone en uno cuando el resultado de la ultima operaci!n se sale de el rango de los n/meros de )@ bits con signoM C ; Acarreo" se enciende cuando el resultado de la ultima operaci!n se sale del rengo de los n/meros de )@ bits sin signo.

Contenido $$$$% Banderas MAR $$$$% #&#'% (&#(% BU/ PC MBR R $$$$% "#'(% (+,-%

)ir* &&&% &&"% &&#% &&'%

Acumulador

...
&##% &#'% &#(%

... C!U
$$$$% ...%

Memoria
(igura ).*.).:.* +iagrama a bloques del C32 a estudiar Como se e$plico anteriormente" el funcionamiento del C32 se basa en los pasos del ciclo de instrucci!n" consistentes en b/squeda" decodificaci!n y ejecuci!n de la instrucci!n. Comenzaremos revisando los pasos correspondientes a la b/squeda de la instrucci!n. El registro 3C contiene la direcci!n de la localidad de memoria que contiene el c!digo de instrucci!n de la siguiente instrucci!n a ejecutar. Como la etapa de b/squeda consistir bsicamente en leer este c!digo y almacenarlo en el registro I? para su posterior uso en las etapas de decodificaci!n y ejecuci!n" el contenido de 3C se copia al 1A? para poder leer esa localidad de memoria. &e lee la memoria y el resultado de dic#a lectura se copia del 16? al I?. (inalmente" se incrementa el 3C para que en el siguiente ciclo de instrucci!n se lea la instrucci!n de la localidad de memoria consecutiva. ?esumiendo estas operaciones en lenguaje de transferencia de registros7 1A?DC3C I?DCE1A?F 3CDC3CG) En la etapa de decodificaci!n simplemente se separan los c!digos de operaci!n de los operandos. 3or ejemplo" la instrucci!n .9A+ >*8# se codificara como >>*8#" siendo ># el c!digo de operaci!n y >*8# el operando. Adems" la unidad de control deber identificar que al opcode > corresponde a la instrucci!n .9A+ para que en la siguiente etapa se realicen las operaciones correspondientes a esta instrucci!n. En cuanto a la etapa de ejecuci!n" los pasos realizados en esta etapa varan dependiendo del c!digo de operaci!n ledo en la etapa de b/squeda. 3or ejemplo" si el c!digo ledo es un >" que corresponde con una instrucci!n .9A+" la etapa de ejecuci!n consistir en copiar la parte de la direcci!n del operando en el registro 1A? para poder leer la localidad en donde se encuentra el operando. &e lee el operando de memoria y el dato ledo se copia del 16? al acumulador. ?esumiendo dic#as operaciones en lenguaje de transferencia de registros se tiene7 1A?DCI?%1' <<I?%1' representa los bits del registro I? que almacenan la direcci!n del operando ACCDC16?

3ara el c!digo de operaci!n *" correspondiente a la instrucci!n A++" tambi n se transfiere la direcci!n del operando al 1A? y se lee el contenido de la memoria" pero en vez de enviarse directamente del 16? al acumulador" se enva al A.2 para que se sume con el contenido del acumulador y posteriormente se almacene el resultado de la suma en el acumulador. ?esumiendo en lenguaje de transferencia de registros7 1A?DCI?%1' <<I?%1' representa los bits del registro I? que almacenan la direcci!n del operando ACCDCACCG16? .a columna operaci!n de la Babla ).*.).:.) proporciona un resumen el lenguaje de transferencia de registros de las operaciones correspondientes a cada c!digo de operaci!n.

1.2.2 Memoria.
2na memoria es un dispositivo que puede mantenerse en por lo menos dos estados estables por un cierto periodo de tiempo. Cada uno de estos estados estables puede utilizarse para representar un bit. A un dispositivo con la capacidad de almacenar por lo menos un bit se le conoce como celda bsica de memoria. 2n dispositivo de memoria completo se forma con varias celdas bsicas y los circuitos asociados para poder leer y escribir dic#as celdas bsicas" agrupadas como localidades de memoria que permitan almacenar un grupo de N bits. El n/mero de bits que puede almacenar cada localidad de memoria es conocido como el anc#o de palabra de la memoria. Coincide con el anc#o del bus de datos. 2no de los circuitos au$iliares que integran la memoria es el decodificador de direcciones. &u funci!n es la de activar a las celdas bsicas que van a ser ledas o escritas a partir de la direcci!n presente en el bus de direcciones. Biene como entradas las n lineas del bus de direcciones y *N lineas de #abilitaci!n de localidad" cada una correspondiente a una combinaci!n binaria distinta de los bits de direcciones. 3or lo tanto" el n/mero de localidades de memoria disponibles en un dispositivo %B' se relaciona con el n/mero de lineas de direcci!n N por BL *N .

1.2.2.1 Arquitecturas.
+esde #ace unas decenas de a0os" los procesadores #an estado aumentando su velocidad de operaci!n a un paso muc#o ms rpido que las memorias" lo que #a llevado a la situaci!n en que los procesadores actuales operan muc#o ms rpidamente que la memoria principal de las computadoras. Esto #ace que el procesador tenga que quedarse detenido por varios ciclos de reloj %estados de espera' cada vez que tiene que leer o escribir a la memoria principal. 3ara aliviar un poco esta situaci!n conservando el precio de la computadora razonablemente bajo" se #a organizado a la memoria como una jerarqua de diversos niveles con distintos tama0os y velocidades. 5ay que recordar que la memoria ms rpida es muc#o ms cara que la ms lenta y que por lo tanto" es menor la cantidad de memoria de este tipo que se puede usar. Esta estructura jerrquica se ilustra en la figura ).*.*.). +e esta manera" la mayor parte de la capacidad de almacenamiento de la maquina se encuentra en el disco duro" que tiene un costo por Nbyte muy bajo" pero que tambi n es muy lento debido a que #ay que mover piezas mecnicas para leer o escribir en l. En seguida se encuentra la memoria principal" que normalmente es del tipo ?A1 dinmica. Es en esta memoria donde se almacenan los programas para que los pueda ejecutar el procesador" as como los datos con que trabajan dic#os programas. Con el objetivo de mejorar la velocidad del procesador al ejecutar ciclos y al leer repetidamente datos de uso com/n" se coloca una peque0a cantidad de memoria ?A1 esttica entre el procesador y la memoria principal. Esta memoria es conocida como memoria cac#e y guarda una copia de una peque0a regi!n de la memoria principal" para que si se requiere volver a leer los datos almacenados en esta regi!n de memoria" no se tenga que esperar a que se lea la memoria principal" que

es muc#o ms lenta que la cac#e y que el procesador. (inalmente" en la cima de la jerarqua" se encuentran los registros del procesador que aunque son muy pocos" son los que se pueden leer y escribir ms rpidamente.

Menor tama0o1 Mayor 2elocidad Registros del procesador Memoria Cac%e Memoria principal )isco )uro Menor 3elocidad1 mayor tama0o
(igura ).*.*.) Oerarqua de memoria en un procesador 1oderno

1.2.2.2 "ipos.
.os diversos tipos de memorias se clasifican como memorias voltiles y memorias no voltiles. .as memorias voltiles pierden la informaci!n que almacenan al momento en que se les desconecta la energa" mientras que las no voltiles conservan su contenido aunque no est n alimentadas. .as memorias voltiles son conocidas desde las primeras computadoras como memorias de acceso aleatorio %?A1'" ya que en esa poca las memorias voltiles eran de acceso secuencial. +entro de las memorias voltiles se encuentran las subclases ?A1 +inmica y ?A1 Esttica. .as memorias no voltiles conservan sus datos a pesar de que en este conectadas el voltaje del alimentaci!n. +e #ec#o pueden conservar sus datos por un periodo de tiempo relativamente largo" usualmente entre cien y *>> a0os. Conforme evolucionado la tecnologa" se #an desarrollado diversas familias de rumores no voltiles" entre las cuales se encuentran7 la memoria de solo lectura %?91 C ?ead only 1emory'" la memoria de solo lectura programable %3?91 C3rogramable ?ead only 1emory'" la memoria de solo lectura programable y borrable %E3?91 C Erasable ?ead only 1emory'" la memoria de solo lectura programable y borrable el ctricamente %EE3?91 Electricaly Erasable ?ead

only 1emory' y la memoria flas#.

1.2.2.3 Caracter#sticas.
En cuanto a las memorias voltiles" la memoria ?A1 dinmica es muy rpida pero muy cara. En contraste" la memoria ?A1 esttica es muy barata pero muy lenta. En general" las memorias no voltiles son baratas y su precio depende sobre todo de su capacidad de almacenamiento. Algunas de estas tecnologas son consideradas obsoletas y por lo tanto casi no son utilizadas en actualidad.

1.2.2.$ %uncionamiento.
El tipo ms com/n de memorias voltiles es la ?A1 dinmica" que utiliza la capacitancia parsita de los transistores 19&(EB con los que esta construida para almacenar un bit. Como solo se requiere de un transistor por celda de memoria" esta memoria es muy econ!mica" pero debido al tiempo que toma cargar la gran capacitancia de los transistores con los que esta construida" es muy lenta.

/ e le c c i n d e r e n g lo n

4! d e C o lu m n a

C a p a c ita n c ia p a r 5 s ita

(igura ).*.*.:.) C Estructura de una celda de ?A1 +inmica mostrando la capacitancia parsita en donde se almacenan el dato. El otro tipo de memoria ?A1 utilizado en la actualidad" es la ?A1 esttica. Esta memoria se construye con el mismo tipo de transistores con los que se construyen los procesadores" por lo que pueden operar a una velocidad similar a la del procesador. &in embargo" como se requieren alrededor de 4 transistores por bit" el costo de esta memoria es muc#o ms alto que el de la ?A1 dinmica.

4! de columna /eleccin de renglon

(igura ).*.*.:.* Estructura de una celda de ?A1 Esttica a nivel de transistores. En cuanto a las memorias no voltiles" En cuanto a las memorias no voltiles" #ist!ricamente #an e$istido varios tipos. .os primeros s!lo podan ser ledos" por lo que fueron conocidos como memorias de solo lectura %?91 C ?ead 9nly 1emory'. A pesar de que los tipos ms modernos permiten que su contenido se #a modificado por el usuario" a/n son conocidos como memorias de solo lectura. En las memorias de solo lectura originales %?91'" el almacenar en uno o un cero" depende de si el fabricante coloc! o no un diodo fsicamente en el circuito de la memoria. +e esta manera" el contenido de la memoria queda establecido por el fabricante desde el momento de su construcci!n y no es posible que el usuario no modifique. &in embargo" este tipo de memoria es a/n muy usada debido a que es muy econ!mica y por lo tanto" ideal para la producci!n en masa de muc#os artefactos de consumo masivo.
CE " " " " " " " " & A# & & & & " " " " $ A" & & " " & & " " $ A& /alida & & " " & & " " & " " & & " " & $ 67

(igura ).*.*.:.8 ; Estructura de una memoria ?91 de 4$) bits y la tabla con el contenido de cada celda. &olo #ay ceros en las columnas con un diodo conectado. Con el objetivo de #acer a la memoria de solo lectura un dispositivo ms verstil" algunos fabricantes de memorias sustituyeron a los diodos por fusibles semiconductores que el usuario poda quemar usando un programador especial. Esto permiti! a los usuarios tener dispositivos de memoria de solo lectura cuyo contenido ellos mismos podan programar" por lo que estos dispositivos fueron conocidos

como memorias de solo lectura programables %3?91 C 3rogramable ?ead 9nly 1emory'. El /nico inconveniente que presentaban estas memorias era que si se necesitaba #acer un peque0o cambio" deba descartarse a la memoria ya programada y utilizar un dispositivo nuevo en blanco. Este problema pudo eliminarse al sustituir los fusibles semiconductores por transistores con una compuerta flotante que les permita almacenar una carga el ctrica por un tiempo muy grande. Esta compuerta flotante permite almacenar una carga el ctrica que reduce el voltaje que debe ser aplicado a la compuerta principal para #acer que el rector conduzca. +e esta manera" aplicando un voltaje de prueba a la compuerta principal y observando si el transistor conduce" se puede saber si un transistor no tiene carga en su compuerta flotante %est borrado o almacena un uno' o s %estaba programado o almacena un cero'. .a primera generaci!n de dispositivos que utiliz! esta tecnologa" conocidos como memorias de solo lectura programables y borrables %E3?91'" podan grabarse el ctricamente aplicando un voltaje ms alto de lo normal a la compuerta principal. &in embargo" para eliminar la carga tendra que aplicarse una luz ultravioleta intensa al dispositivo" lo cual eliminaba la carga almacenada en la compuerta flotante. 3ara realizar este proceso de borrado era necesario retirar al dispositivo del circuito de aplicaci!n y colocarlo en el borrador de luz ultravioleta por apro$imadamente media #ora . En la segunda generaci!n de dispositivos de memoria que utilizaban transistores con compuertas flotante se logr! eliminar la carga el ctricamente" con lo que dic#os dispositivos se volvieron ms verstiles. .os dispositivos de esta generaci!n se conocieron como memorias de solo lectura programables y borrables el ctricamente %EE3?91'. Como cada byte de la memoria poda ser borrado de forma independiente" requeran de muc#os circuitos au$iliares para permitir este tipo de borrado" lo que aumentaba su costo. 3ara la tercera generaci!n" se busc! reducir el costo de los dispositivos reduciendo la cantidades circuitos au$iliares necesarios para el borrado. Esto se logr! permitiendo /nicamente el borrado de bloques de memoria de tama0o relativamente grande. Bambi n se busc! almacenar ms de un bit por celda de memoria controlando la cantidad de carga almacenada en cada celda" de manera que con oc#o voltajes discretos se pueden representar las oc#o combinaciones correspondientes a tres bits. .os dispositivos de esta generaci!n son conocidos como memorias (.A&5.

1.2.3 Dispositivos de I/O. 1.2.3.1 Arquitecturas. 1.2.3.2 "ipos. 1.2.3.3 Caracter#sticas. 1.2.3.$ %uncionamiento.

También podría gustarte