Documentos de Académico
Documentos de Profesional
Documentos de Cultura
Apuntesunidad1 120821200258 Phpapp02
Apuntesunidad1 120821200258 Phpapp02
Procesador
Unidad de
Control
Bus principal
Memoria Principal
Almacena
el programa y
los datos
ALU
Registros
Entrada y salida
secuencia de las operaciones era dictada por el alambrado de la unidad de control, e cambiarla
implicaba un proceso de recableado laborioso, lento(hasta tres semanas) y propenso a errores. En esta
arquitectura se asigna un cdigo numrico a cada instruccin. Dichos cdigos 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 aplicacin de la
computadora y dio origen a las computadoras de propsito general
Mas a detalle, el procesador se subdivide en una unidad de control (C.U.), una unidad lgica aritmtica
(A.L.U.) y una serie de registros. Los registros sirven para almacenar internamente datos y estado del
procesador. La unidad aritmtica lgica proporciona la capacidad de realizar operaciones aritmticas y
lgicas. La unidad de control genera las seales de control para leer el cdigo de las instrucciones,
decodificarlas y hacer que la ALU las ejecute.
Arquitectura Harvard
Esta arquitectura surgi en la universidad del mismo nombre, poco despus de que la arquitectura Von
Newman apareciera en la universidad de Princeton. Al igual que en la arquitectura Von Newman, el
programa se almacena como un cdigo numrico en la memoria, pero no en el mismo espacio de
memoria ni en el mismo formato que los datos. Por ejemplo, se pueden almacenar las instrucciones en
doce bits en la memoria de programa, mientras los datos de almacenan en 8 bits en una memoria aparte.
Bus de
programa
Memoria de
programa
Procesador
Bus de
datos
Memoria de datos
Unidad de
Control
ALU
Registros
Entrada y salida
unidades funcionales independientes y se dividen entre ellas el procesamiento de las instrucciones. Para
comprender mejor esto, supongamos que un procesador simple tiene un ciclo de instruccin sencillo
consistente solamente en una etapa de bsqueda del cdigo de instruccin y en otra etapa de ejecucin
de la instruccin. En un procesador sin segmentacin 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
Figura 1.1.2.1 Bsqueda y ejecucin en secuencia de tres instrucciones en un
procesador sin segmentacin del cause
En un procesador con segmentacin del cause, cada una de estas etapas se asigna a una unidad
funcional diferente, la bsqueda a la unidad de bsqueda y la ejecucin a la unidad de ejecucin. 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 bsqueda coloca los cdigos de
instruccin que ley para que la unidad de ejecucin los tome de la cola y los ejecute. Esta cola se
parece a un tubo donde las instrucciones entran por un extremo y salen por el otro. De esta analoga
proviene el nombre en ingles: Pipelining o entubamiento. En general se divide al procesador
segmentado en una unidad independiente por cada etapa del ciclo de instruccin.
Unidad de
Bsqueda
Cola de Instrucciones
Unidad de
ejecucin
Figura 1.1.2.3 Comunicacin entre las unidades en un procesador con segmentacin de cauce.
Completando el ejemplo anterior, en un procesador con segmentacin, la unidad de bsqueda
comenzara buscando el cdigo de la primera instruccin en el primer ciclo de reloj. Durante el
segundo ciclo de reloj, la unidad de bsqueda obtendra el cdigo de la instruccin 2, mientras que la
unidad de ejecucin ejecuta la instruccin 1 y as sucesivamente. La siguiente figura muestra este
proceso.
B1 B2 B3 B3
Unidad de bsqueda
E1 E2 E3
Unidad de ejecucin
Espera
Bsqueda
Espera
Ejecucin
Los Clusters son conjuntos de computadoras independientes conectadas en una red de rea local o por
un bis de interconexin y que trabajan cooperativamente para resolver un problema. Es clave en su
funcionamiento contar con un sistema operativo y programas de aplicacin capaces de distribuir el
trabajo entre las computadoras de la red.
1.2.1.2 Tipos.
Los CPUs modernos pueden clasificarse de acuerdo a varias caractersticas, tales como: el tamao del
ALU o del Bus de conexin al exterior (8, 16, 32, 64 bits),si tienen cauce segmentado o no
segmentado, si con tipo CISC o RISC, Von Newan o Harvard y si solo tienen instrucciones enteras o
implementan tambin instrucciones de punto flotante
1.2.1.3 Caractersticas.
Las caractersticas ms importantes a considerar al escoger un CPU para usarlo en una aplicacin, son:
Modelo
del programador (Conjunto de registros que el programador puede utilizar), forman el modelo
mental del CPU que el programador utiliza al programar en ensamblador.
Conjunto
Modos
Ciclo
de direccionamiento que pueden usarse para obtener los operandos de las instrucciones.
de instruccin (el conjunto de pasos que realiza el CPU para procesar cada instruccin)
Buses
de interconexin, usados para que el CPU lea y escriba a la memoria y a los dispositivos de
entrada y salida.
1.2.1.4 Funcionamiento.
Debido a la gran variedad de CPU disponibles comercialmente, se explicara el funcionamiento de un
unidad central de proceso imaginaria muy simple, pero que resume el funcionamiento bsico de la
mayora de los CPUs. Este CPU es similar a las primeras computadoras existentes en los aos 1950s.
Esta computadora contara con una memoria de 4096 palabras de 16 bits cada una. Esto corresponde a
un bus de direcciones de 12 bits y un bus de datos de 16 bits). En cada localidad de memoria se podr
almacenar un entero de 16 bits o el cdigo de una instruccin, tambin de 16 bits.
Todos los CPU tienen como funcin principal la ejecucin de un programa acorde a la aplicacin del
mismo. Un programa es un conjunto de instrucciones almacenadas de acuerdo al orden en que deben
ejecutarse. Por lo tanto, toda computadora debe ser capaz de procesar las instrucciones de su programa
en un ciclo de instruccin, consistente en un nmero de etapas que varia con cada CPU, pero que
tradicionalmente han sido tres:
1-Bsqueda del cdigo de Instruccin. Esta consiste en leer de la memoria cual ser la siguiente
instruccin a ejecutar, la cual esta almacenada en forma de un cdigo numrico que indica cual de
todas las operaciones que puede realizar el CPU sera la siguiente y con que operandos se ejecutara.
2- Decodificacin. Consiste en tomar el cdigo numrico e identificar a cual de las operaciones que
puede realizar el CPU corresponde dicho cdigo. El proceso contrario, la codificacin, consiste en
conociendo la instruccin, determinar el nmero que la va a representar. Esta etapa usualmente se
realiza con un decodificador binario.
3- Ejecucin. En esta etapa se lleva a cabo la operacin sobre los datos que se vallan a procesar. En
general, la unidad de control (CU) genera las seales de control necesarias para llevar los datos a las
entradas de la Unidad Aritmtica Lgica, la cual efectuar las operaciones aritmticas y lgicas.
Posteriormente, la unidad de control generara las seales de control necesarias para transferir la salida
de la Unidad Aritmtica Lgica al registro donde sern almacenados los resultados para su uso
posterior.
Bsqueda de la Instruccin
Decodificacin de la Instruccin
Ejecucin de la Instruccin
Cdigo de Instruccin
Operacin
Operando 1
Operando 2
Operando nico
Codigo de Operacin
Figura 1.2.1.4.2 Codificacin de las instrucciones
La siguiente tabla resume los cdigos de operacin de la computadora de ejemplo.
Cdigo de Operacin
Instruccin
Operacin
0h
LOAD (Carga)
ACC<-[M]
1h
STORE (Almacena)
[M]<-ACC
2h
ADD (Suma)
ACC<-ACC+[M]
3h
ACC<-ACC+[M]+C
4h
SUB (Resta)
ACC<-ACC+-M]
5h
ACC<-ACC or [M]
6h
7h
8h
ACC<-ACC << 1
9h
ACC<-ACC >> 1
Ah
PC<-M
Bh
Ch
Dh
Eh
Fh
STOP
Detener la ejecucin
Tabla 1.2.1.4.1 Cdigos de operacin para la computadora de ejemplo
MAR
Banderas
Acumulador
Contenido
Dir.
XXXXh
000h
XXXXh
001h
2023h
002h
4024h
003h
...
BUS
MBR
PC
IR
XXXXh
022h
1234h
023h
4567h
024h
...
CPU
XXXXh
FFFh
Memoria
Figura 1.2.1.4.2 Diagrama a bloques del CPU a estudiar
Como se explico anteriormente, el funcionamiento del CPU se basa en los pasos del ciclo de
instruccin, consistentes en bsqueda, decodificacin y ejecucin de la instruccin. Comenzaremos
revisando los pasos correspondientes a la bsqueda de la instruccin.
El registro PC contiene la direccin de la localidad de memoria que contiene el cdigo de instruccin
de la siguiente instruccin a ejecutar. Como la etapa de bsqueda consistir bsicamente en leer este
cdigo y almacenarlo en el registro IR para su posterior uso en las etapas de decodificacin y
ejecucin, el contenido de PC se copia al MAR para poder leer esa localidad de memoria. Se lee la
memoria y el resultado de dicha lectura se copia del MBR al IR. Finalmente, se incrementa el PC para
que en el siguiente ciclo de instruccin se lea la instruccin de la localidad de memoria consecutiva.
Resumiendo estas operaciones en lenguaje de transferencia de registros:
MAR<-PC
IR<-[MAR]
PC<-PC+1
En la etapa de decodificacin simplemente se separan los cdigos de operacin de los operandos. Por
ejemplo, la instruccin LOAD 023h se codificara como 0023h, siendo 0h el cdigo de operacin y
023h el operando. Adems, la unidad de control deber identificar que al opcode 0 corresponde a la
instruccin LOAD para que en la siguiente etapa se realicen las operaciones correspondientes a esta
instruccin.
En cuanto a la etapa de ejecucin, los pasos realizados en esta etapa varan dependiendo del cdigo de
operacin ledo en la etapa de bsqueda. Por ejemplo, si el cdigo ledo es un 0, que corresponde con
una instruccin LOAD, la etapa de ejecucin consistir en copiar la parte de la direccin del operando
en el registro MAR para poder leer la localidad en donde se encuentra el operando. Se lee el operando
de memoria y el dato ledo se copia del MBR al acumulador. Resumiendo dichas operaciones en
lenguaje de transferencia de registros se tiene:
MAR<-IR(M) //IR(M) representa los bits del registro IR que almacenan la direccin del operando
ACC<-MBR
1.2.2 Memoria.
Una 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.
Un dispositivo de memoria completo se forma con varias celdas bsicas y los circuitos asociados para
poder leer y escribir dichas celdas bsicas, agrupadas como localidades de memoria que permitan
almacenar un grupo de N bits. El nmero de bits que puede almacenar cada localidad de memoria es
conocido como el ancho de palabra de la memoria. Coincide con el ancho del bus de datos. Uno de los
circuitos auxiliares que integran la memoria es el decodificador de direcciones. Su funcin es la de
activar a las celdas bsicas que van a ser ledas o escritas a partir de la direccin presente en el bus de
direcciones. Tiene como entradas las n lineas del bus de direcciones y 2N lineas de habilitacin de
localidad, cada una correspondiente a una combinacin binaria distinta de los bits de direcciones. Por
lo tanto, el nmero de localidades de memoria disponibles en un dispositivo (T) se relaciona con el
nmero de lineas de direccin N por T= 2N .
1.2.2.1 Arquitecturas.
Desde hace unas decenas de aos, los procesadores han estado aumentando su velocidad de operacin a
un paso mucho ms rpido que las memorias, lo que ha llevado a la situacin en que los procesadores
actuales operan mucho ms rpidamente que la memoria principal de las computadoras. Esto hace 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.
Para aliviar un poco esta situacin conservando el precio de la computadora razonablemente bajo, se ha
organizado a la memoria como una jerarqua de diversos niveles con distintos tamaos y velocidades.
Hay que recordar que la memoria ms rpida es mucho 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 1.2.2.1. De esta manera, la mayor parte de la capacidad de almacenamiento de la maquina se
encuentra en el disco duro, que tiene un costo por Gbyte muy bajo, pero que tambin es muy lento
debido a que hay que mover piezas mecnicas para leer o escribir en l. En seguida se encuentra la
memoria principal, que normalmente es del tipo RAM dinmica. Es en esta memoria donde se
almacenan los programas para que los pueda ejecutar el procesador, as como los datos con que
trabajan dichos programas. Con el objetivo de mejorar la velocidad del procesador al ejecutar ciclos y
al leer repetidamente datos de uso comn, se coloca una pequea cantidad de memoria RAM esttica
entre el procesador y la memoria principal. Esta memoria es conocida como memoria cache y guarda
una copia de una pequea regin de la memoria principal, para que si se requiere volver a leer los datos
almacenados en esta regin de memoria, no se tenga que esperar a que se lea la memoria principal, que
1.2.2.2 Tipos.
Los diversos tipos de memorias se clasifican como memorias voltiles y memorias no voltiles. Las
memorias voltiles pierden la informacin que almacenan al momento en que se les desconecta la
energa, mientras que las no voltiles conservan su contenido aunque no estn alimentadas.
Las memorias voltiles son conocidas desde las primeras computadoras como memorias de acceso
aleatorio (RAM), ya que en esa poca las memorias voltiles eran de acceso secuencial. Dentro de las
memorias voltiles se encuentran las subclases RAM Dinmica y RAM Esttica.
Las memorias no voltiles conservan sus datos a pesar de que en este conectadas el voltaje del
alimentacin. De hecho pueden conservar sus datos por un periodo de tiempo relativamente largo,
usualmente entre cien y 200 aos. Conforme evolucionado la tecnologa, se han desarrollado diversas
familias de rumores no voltiles, entre las cuales se encuentran: la memoria de solo lectura (ROM Read only Memory), la memoria de solo lectura programable (PROM -Programable Read only
Memory), la memoria de solo lectura programable y borrable (EPROM - Erasable Read only Memory),
la memoria de solo lectura programable y borrable elctricamente (EEPROM Electricaly Erasable Read
1.2.2.3 Caractersticas.
En cuanto a las memorias voltiles, la memoria RAM dinmica es muy rpida pero muy cara. En
contraste, la memoria RAM 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.4 Funcionamiento.
El tipo ms comn de memorias voltiles es la RAM dinmica, que utiliza la capacitancia parsita de
los transistores MOSFET con los que esta construida para almacenar un bit. Como solo se requiere de
un transistor por celda de memoria, esta memoria es muy econmica, pero debido al tiempo que toma
cargar la gran capacitancia de los transistores con los que esta construida, es muy lenta.
S e le c c i n
d e r e n g lo n
I/O d e
C o lu m n a
C a p a c ita n c ia
p a r s ita
Figura 1.2.2.4.1 - Estructura de una celda de RAM Dinmica mostrando la capacitancia parsita en
donde se almacenan el dato.
El otro tipo de memoria RAM utilizado en la actualidad, es la RAM 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. Sin embargo, como se requieren alrededor
de 8 transistores por bit, el costo de esta memoria es mucho ms alto que el de la RAM dinmica.
I/O de
columna
Seleccin de renglon
A2
0
0
0
0
1
1
1
1
X
A1
0
0
1
1
0
0
1
1
X
A0 Salida
0
0
1
1
0
0
1
1
0
1
1
0
0
1
1
0
X
HZ
Figura 1.2.2.4.3 Estructura de una memoria ROM de 8x1 bits y la tabla con el contenido de cada
celda. Solo hay ceros en las columnas con un diodo conectado.
Con el objetivo de hacer 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 (PROM - Programable Read Only Memory). El nico
inconveniente que presentaban estas memorias era que si se necesitaba hacer un pequeo 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 elctrica por un tiempo muy grande. Esta
compuerta flotante permite almacenar una carga elctrica que reduce el voltaje que debe ser aplicado a
la compuerta principal para hacer que el rector conduzca. De 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).
La primera generacin de dispositivos que utiliz esta tecnologa, conocidos como memorias de solo
lectura programables y borrables (EPROM), podan grabarse elctricamente aplicando un voltaje ms
alto de lo normal a la compuerta principal. Sin embargo, para eliminar la carga tendra que aplicarse
una luz ultravioleta intensa al dispositivo, lo cual eliminaba la carga almacenada en la compuerta
flotante. Para realizar este proceso de borrado era necesario retirar al dispositivo del circuito de
aplicacin y colocarlo en el borrador de luz ultravioleta por aproximadamente media hora .
En la segunda generacin de dispositivos de memoria que utilizaban transistores con compuertas
flotante se logr eliminar la carga elctricamente, con lo que dichos dispositivos se volvieron ms
verstiles. Los dispositivos de esta generacin se conocieron como memorias de solo lectura
programables y borrables elctricamente (EEPROM). Como cada byte de la memoria poda ser borrado
de forma independiente, requeran de muchos circuitos auxiliares para permitir este tipo de borrado, lo
que aumentaba su costo.
Para la tercera generacin, se busc reducir el costo de los dispositivos reduciendo la cantidades
circuitos auxiliares necesarios para el borrado. Esto se logr permitiendo nicamente el borrado de
bloques de memoria de tamao relativamente grande. Tambin se busc almacenar ms de un bit por
celda de memoria controlando la cantidad de carga almacenada en cada celda, de manera que con ocho
voltajes discretos se pueden representar las ocho combinaciones correspondientes a tres bits. Los
dispositivos de esta generacin son conocidos como memorias FLASH.