Anda di halaman 1dari 32

2

INSTITUTO TECNOLOGICO DE
ORIZABA
Programa Educativo
Arquitectura de computadoras

Estudiante
Paola Alejandra Silva Garca

Docente
Rossana Graciela Trejo Pacheco

Trabajo
Reporte de la Unidad 1

Hora
10:00 11:00 am

Grupo
5g6A

INTRODUCCION
En el siguiente trabajo se recopilan los temas correspondientes a la unidad
nmero 1, de la asignatura Arquitectura de Computadoras.
La arquitectura de computadoras es el diseo conceptual y la estructura
operacional fundamental de un sistema que conforma una computadora. Es
decir, es un modelo y una descripcin funcional de los requerimientos y las
implementaciones de diseo para varias partes de una computadora, con
especial inters en la forma en que la unidad central de proceso (CPU) trabaja
internamente y accede a las direcciones de memoria.
La arquitectura de una computadora explica la situacin de sus componentes y
permite determinar las posibilidades de un sistema informtico, con una
determinada configuracin, para que pueda realizar las operaciones para las
que se va a utilizar. La arquitectura bsica de cualquier ordenador completo
est formado por solo 5 componentes bsicos: procesador, memoria RAM,
disco duro, dispositivos de entrada/salida y software.

INDICE
1.1 Modelos de Arquitecturas de cmputo

Pgina 5

1.1.1

Arquitecturas Clsicas

Pgina 5

1.1.2

Arquitecturas Segmentadas

Pgina 9

1.1.3

Arquitecturas de Multiprocesamiento

Pgina 11

1.2 Anlisis de los componentes

Pgina 12

1.2.1

Pgina 12

CPU

1.2.1.1 Arquitecturas

Pgina 12

1.2.1.2 Tipos

Pgina 16

1.2.1.3 Caractersticas

Pgina 16

1.2.1.4 Funcionamiento

Pgina 17

1.2.2

Pgina 21

Memoria

1.2.2.1 Conceptos bsicos del manejo de la memoria

Pgina 22

1.2.2.2 Memoria Principal Semiconductora

Pgina 22

1.2.2.3 Memoria Cache

1.2.3

Manejo de la Entrada/Salida

Pgina 22
Pgina 23

1.2.3.1 Mdulos de Entrada/Salida

Pgina 23

1.2.3.2 Entrada/Salida Programada

Pgina24

1.2.3.3 Entrada/Salida mediante interrupciones

Pgina 24

1.2.3.4 Acceso directo a Memoria

Pgina 25

1.2.3.5 Canales y Procesadores de Entrada/Salida

Pgina 25

1.2.4

Pgina 26

Buses

Pgina 26

2
1.2.4.1 Tipos de Buses
1.2.4.2 Estructura de los Buses
1.2.4.3 Jerarqua de los Buses

1.2.5

Interrupciones

Bibliografa

Pgina 27
Pgina 28
Pgina 30

Pgina 31

1.1 Modelos de Arquitecturas de Cmputo


Existen tres modelos de Arquitectura de computadora que son: la clsica, la
segmentada y la de multiprocesamiento. La arquitectura de computadoras es
el diseo conceptual y la estructura operacional fundamental de un sistema de
computadora. Es decir, es un modelo y una descripcin funcional de los
requerimientos y las implementaciones de diseo para varias partes de una
computadora. Tambin suele definirse como la forma de seleccionar e
interconectar componentes de hardware para crear computadoras segn los
requerimientos de funcionalidad, rendimiento y costo.

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 travs de un solo bus con un banco de memoria en donde se
almacenan tanto los cdigos de instruccin 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 archivo de texto conteniendo cdigo fuente y generan como
datos de salida, el cdigo maquina que corresponde a dicho cdigo fuente
(Son 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 cdigo del programa.

La 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 informacin 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
desempeo de la computadora. Este efecto se conoce como el cuello de
botella de Von Newman En esta arquitectura apareci por primera vez el
concepto de programa almacenado. Anteriormente la Procesador Memoria
Principal Almacena el programa y los datos Entrada y salida Bus principal
Registros ALU Unidad de Control secuencia de las operaciones era dictada por
el alambrado de la unidad de control, e cambiarla implicaba un proceso de re
cableado 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.

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.

El hecho de tener un bus separado para el programa y otro para los datos
permite que se lea el cdigo de operacin de una instruccin, al mismo tiempo
se lee de la memoria de datos los operados de la instruccin previa. As se
evita el problema del cuello de botella de Von Newman y se obtiene un mejor
desempeo. En la actualidad la mayora de los procesadores modernos se
conectan al exterior de manera similar a a la arquitectura Von Newman, con
un banco de memoria masivo nico, pero internamente incluyen varios niveles
de memoria cache con bancos separados en cache de programa y cache de
datos, buscando un mejor desempeo sin perder la versatilidad.

Arquitectura vectorial El encadenamiento aumenta la velocidad de proceso,


pero an se puede mejorar aadiendo tcnicas como el supersescalado. Esta
tcnica permite hacer paralelas las mismas etapas sobre instrucciones
diferentes. Un procesador superescalar puede ejecutar ms de una instruccin
a la vez. Para esto es necesario que existan varias unidades aritmtico-lgicas,
de punto flotante y de control. El proceso que sigue el micro es transparente
al programa, aunque el compilador puede ayudar analizando el cdigo y
generando un flujo de instrucciones optimizado. Veamos cmo se ejecutaran
las instrucciones en un procesador superescalar de que tiene duplicadas las
subunidades que lo componen:

Aunque esto mejora la velocidad global del sistema, los conflictos de datos
crecen. Si antes las instrucciones se encontraban muy prximas, ahora se
ejecutan simultneamente Esto hace necesario un chequeo dinmico para
detectar y resolver los posibles conflictos.

Arquitectura pipe-line Paralelismo Temporal: Pipe-Line Lineal


La arquitectura pipe-line se aplica en dos lugares de la maquina, en la CPU y
en la UAL. Veamos en qu consiste el pipe-line y tratemos de entender porque
el pipe-line mejora el rendimiento de todo el sistema.
Veamos una CPU no organizada en pipe-line:

Si se trata de una instruccin a ser ejecutada por la ALU podemos decir que la
CPU realiza a lo largo del ciclo de maquina estas 5 tareas. Una vez que
termina de ejecutar una instruccin va a buscar otra y tarda en ejecutarla un
tiempo T, es decir cada T segundos ejecuta una instruccin.
Ya hemos mencionado que una de las formas de lograr operaciones
concurrentes en un procesador se utilizan dos tcnicas bsicas: paralelismo y
pipelining.
El paralelismo consegua la concurrencia multiplicando la estructura del
hardware tantas veces como sea posible, de modo que las diferentes etapas
del proceso se ejecuten simultneamente.
Pipelining consiste en desdoblar la funcin a realizarse en varias partes,
asignndole al hardware correspondiente a cada una de las partes tambin
llamadas etapas. As como el agua fluye a travs de una tubera (pipeline) las
instrucciones o datos fluyen a travs de las etapas de un computador digital
pipeline a una velocidad que es independiente de la longitud de la tubera
(numero de etapas del pipeline) y depende solamente de la velocidad a la cual
los datos e instrucciones pueden ingresar al pipeline.
Esta velocidad a su vez depende del tiempo que tarde el dato en atravesar una
etapa. Este tiempo puede ser significativo ya que el computador no solo
desplaza los datos o instrucciones de etapa en etapa sino que en cada una de
ellas se realiza alguna operacin sobre los mismos. Como ejemplo en el caso

2
de las instrucciones tendremos operaciones de bsqueda, decodificacin y
ejecucin.

1.1.2

Arquitecturas Segmentadas

Las arquitecturas segmentadas o con segmentacin del cauce buscan mejorar


el desempeo realizando paralelamente varias etapas del ciclo de instruccin
al mismo tiempo. El procesador se divide en varias 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 las instrucciones, como lo muestra la
siguiente figura

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

2
entran por un extremo y salen por el otro. De esta analoga proviene el
nombre en ingls: Pipelining o entubamiento. En general se divide al
procesador segmentado en una unidad independiente por cada etapa del ciclo
de instruccin.

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.

Procesador con segmentacin del cauce.


En este esquema sigue tomando el mismo nmero de ciclos de reloj (el mismo
tiempo), pero como se trabaja en varias instrucciones al mismo tiempo, el
nmero 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 nmero de etapas independientes. Sin
embargo, la mejora en el rendimiento no es proporcional al nmero 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. Otra razn por la que las
ventajas de este esquema se pierden es cuando se encuentra un salto en el

2
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 direccin a la que se salto. Esto reduce el desempeo del
procesador y an se investigan maneras de predecir los saltos para evitar este
problema.

1.1.3

Arquitecturas de Multiprocesamiento

Cuando se desea incrementar el desempeo ms aya de lo que permite la


tcnica de segmentacin del cauce (limite terico de una instruccin por ciclo
de reloj), se requiere utilizar ms de un procesador para la ejecucin del
programa de aplicacin. Las CPU de multiprocesamiento se clasifican de la
siguiente
manera:
SISO (Single Instruction, Single Operand ) computadoras independientes
SIMO (Single Instruction, Multiple Operand ) procesadores vectoriales
MISO (Multiple Instruction, Single Operand ) No implementado
MIMO (Multiple Instruction, Multiple Operand ) sistemas SMP, Clusters
Procesadores vectoriales Son computadoras pensadas para aplicar un mismo
algoritmo numrico a una serie de datos matriciales, en especial en la
simulacin de sistemas fsicos complejos, tales como simuladores para
predecir el clima, explosiones atmicas, reacciones qumicas complejas, etc.,
donde los datos son representados como grandes nmeros de datos en forma
matricial sobre los que se deben se aplicar el mismo algoritmo numrico. En
los sistemas SMP (Simetric Multiprocesesors), varios procesadores comparten
la misma memoria principal y perifricos de I/O, Normalmente conectados por
un bus comn. Se conocen como simtricos, ya que ningn procesador toma
el papel de maestro y los dems de esclavos, sino que todos tienen derechos
similares en cuanto al acceso a la memoria y perifricos y ambos son
administrados por el sistema operativo.

2
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 Anlisis de Componentes


1.2.1

CPU

La unidad central de procesamiento, UCP o CPU (por el acrnimo en ingls de


central processing unit), o simplemente el procesador o microprocesador, es el
componente del computador y otros dispositivos programables, que interpreta
las instrucciones contenidas en los programas y procesa los datos. Los CPU
proporcionan la caracterstica fundamental de la computadora digital (la
programabilidad) y son uno de los componentes necesarios encontrados en las
computadoras de cualquier tiempo, junto con el almacenamiento primario y
los dispositivos de entrada/salida. Se conoce como microprocesador el CPU
que es manufacturado con circuitos integrados. Desde mediados de los aos
1970, los microprocesadores de un solo chip han reemplazado casi totalmente
todos los tipos de CPU, y hoy en da, el trmino "CPU" es aplicado usualmente
a todos los microprocesadores.
1.2.1.1 Arquitecturas
Adems de las arquitecturas clsicas mencionadas anteriormente, en la
actualidad han aparecido arquitecturas hbridas entre la Von Newman y la
Harvard, buscando conservar la flexibilidad, pero mejorando el rendimiento. El
cambio ms importante de los ltimos aos en diseo de las computadoras de
los ltimos aos se dio durante los aos 1980, con la aparicin de la corriente
de diseo conocida como computadoras de conjunto reducido de instrucciones
(RISC, por sus siglas en ingles). Esta escuela pretende aplicar un enfoque
totalmente distinto al tradicional hasta entonces, que pas a conocerse como
computadoras de conjunto complejo de instrucciones (CISC) para diferenciarla
de la nueva tendencia. La tendencia tradicional, representada por las
arquitecturas CISC (Complex Instruction Set Computers) se caracterizan por
tener un nmero amplio de instrucciones y modos de direccionamiento. Se
implementan instrucciones especiales que realizan funciones complejas, de
manera que un programador puede encontrar con seguridad, una instruccin
especial que realiza en hardware la funcin que el necesita. El nmero de

2
registros del CPU es limitado, ya que las compuertas lgicas del circuito
integrado se emplean para implementar las secuencias de control de estas
instrucciones especiales. Al investigar las tendencias en la escritura de
software cientfico y comercial al inicio de los 80, ya se pudo observar que en
general ya no se programaba mucho en ensamblador, sino en lenguajes de
alto nivel, tales como C. Los compiladores de lenguajes de alto nivel no hacan
uso de las instrucciones especiales implementadas en los procesadores CISC,
por lo que resultaba un desperdicio de recursos emplear las compuertas del
circuito de esta forma. Por lo anterior, se decidi que era mejor emplear estos
recursos en hacer que las pocas instrucciones que realmente empleaban los
compiladores se ejecutaran lo ms rpidamente posible. As surgi la escuela
de diseo RISC (Reduced Instruction Set 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. Adems, 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 travs de la pila. Como la forma
ms rpida de hacer este paso es por medio de registros del CPU, se busco
dotarlo con un amplio nmero de registros, a travs de los cuales se pueden
pasar dichos parmetros. Tanto la miniaturizacin como la estandarizacin de
los CPU han aumentado la presencia de estos dispositivos digitales en la vida
moderna mucho ms all de las aplicaciones limitadas de mquinas de
computacin dedicadas. Los microprocesadores modernos aparecen en todo,
desde automviles, televisores, neveras, calculadoras, aviones, hasta
telfonos mviles o celulares, juguetes, entre otros.
Arquitectura interna del CPU
La CPU contiene un conjunto de localidades de almacenamiento temporal de
datos de alta velocidad llamada registro. Algunos de los registros estn
dedicados al control, y solo la unidad de control tiene acceso a ellos. Los
registros restantes son los registros de uso general y el programador es el
usuario que tiene acceso a ellos.
Dentro del conjunto bsico de registros de control se deben incluir a los
siguientes:
Contador de programa (PC).
Registro de direcciones de la memoria (MAR).
Registro de datos (RD).
Registro de instrucciones (ER).

2
Palabra de estado de programa (PSW).
(PC): La funcin del PC consiste en seguir la pista de la instruccin por
buscar (capturar) en el siguiente ciclo de maquina, por lo tanto contiene la
direccin de la siguiente instruccin por ejecutar.El PC es modificado dentro
del ciclo de bsqueda de la instruccin actual mediante la suma de una
constante. El numero que se agrega al PC es la longitud de una instruccin en
palabras.
Por lo tanto, si una instruccin tiene una palabra de longitud se agrega 1 al
PC, si una instruccin tiene dos palabras de largo se agrega 2, y as
sucesivamente.

Registro de direcciones de la memoria (MAR): funciona como registro


de enlace entre la CPU y el canal de direcciones. Cuando se logra el acceso a
la memoria la direccin es colocada en el MAR por la unidad de control y ah
permanece hasta que se completa la transaccin. El numero de bit que hay en
el MAR es igual al del canal de direcciones.
La diferencia que existe entre el PC y el MAR es que durante el ciclo de
ejecucin de una instruccin, el PC y el MAR sirven al mismo fin. Sin embargo,
muchas de las instrucciones de la maquina hacen referencia a la memoria y
operan con los datos que estn en ella. Como la direccin de los datos suele
ser diferente de la instruccin siguiente se necesita el MAR.
Registro de datos: la funcin del RD consiste en proporcionar un rea de
almacenamiento temporal (memoria intermedia, acumulada o buffer) de datos
que se intercambian entre la PCU y la memoria. Los datos pueden ser
instrucciones (obtenidos en el ciclo de ejecucin) o datos del operando
(obtenidos en el ciclo de ejecucin). Debido a su conexin directa con el canal
de datos el RD contiene el mismo numero de bit que dicho canal.
Registro de instrucciones (ER): es un registro que conserva el cdigo de
operacin de la instruccin en todo el ciclo de la maquina. El cdigo es
empleado por la unidad de control de la CPU para generar las seales
apropiadas que controla le ejecucin de la instruccin. La longitud del ER es la
longitud en bit del cdigo de operacin.
Palabra de estado de programa (PSW): la palabra de estado o condicin
de programa almacena informacin pertinente sobre el programa que este
ejecutndose. Por ejemplo al completarse una funcin de la unidad aritmtica
lgica se modifica un conjunto de bit llamados cdigos (o seales de

2
condicin). Estos bit especifican si el resultado de una operacin aritmtica fue
0 o negativo o si el resultado se desbord.
El programa puede verificar estos bit en las instrucciones siguientes cambiar
en forma condicional su flujo de control segn su valor.
Adems el PSW contiene bit que hacen posible que la computadora responda a
solicitudes de servicio asincrnicas generadas por dispositivos de EntradaSalida, o condiciones de error interno. Estas seales se denominan
interrupciones.
Los registros restantes que se pueden encontrar en un microprocesador son
de uso general. Estos se utilizan para almacenar informacin en forma
temporal. Tambin retienen operandos que participan en operaciones de la
ULA.
Algunas veces el conjunto de instrucciones de la computadora y el esquema
de direccionamiento de la arquitectura restringe el uso de alguno de estos
registros.
Si bien en todas las maquinas la informacin contenida en el registro puede
manipularse como datos ordinarios durante la ejecucin de algunas
instrucciones los datos se utilizan en forma explcita para decidir una direccin
de la memoria. La ventaja de usar registros para retener datos de operaciones
es la velocidad.

1.2.1.2 Tipos
Los primeros CPU fueron diseados a la medida como parte de una
computadora ms grande, generalmente una computadora nica en su
especie. Sin embargo, este costoso mtodo de disear los CPU a la medida,
para una aplicacin particular, ha desaparecido en gran parte y se ha
sustituido por el desarrollo de clases de procesadores baratos y
estandarizados adaptados para uno o muchos propsitos. Esta tendencia de

2
estandarizacin comenz generalmente en la era de los transistores discretos,
computadoras centrales, y microcomputadoras, y fue acelerada rpidamente
con la popularizacin del circuito integrado (IC), ste ha permitido que sean
diseados y fabricados CPU ms complejos en espacios pequeos (en la orden
de milmetros).
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 Newman 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
de
instrucciones
que
puede
ejecutar
el
CPU
Modos de direccionamiento que pueden usarse para obtener los operandos de
las
instrucciones.
Ciclo 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.
Desde mediados de los aos 1970, los microprocesadores de un solo chip han
reemplazado casi totalmente todos los tipos de CPU, y hoy en da, el trmino
"CPU" es aplicado usualmente a todos los microprocesadores.

1.2.1.4 Funcionamiento (ALU, unidad de control, Registros y buses


internos)
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

2
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 ser la siguiente y con que operandos se ejecutara.
2- Decodificacin. Consiste en tomar el cdigo numrico e identificar a cul 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.

Es importante recordar que cada instruccin del programa se almacena en


memoria como un nmero binario. Este nmero se conoce como cdigo de
instruccin, y usualmente se divide en al menos dos campos: un cdigo de
operacin (Opcode) y un nmero que representa al operando u operandos de
la instruccin. En el caso de la computadora imaginaria que estamos

2
estudiando, se almacena cada instruccin en una de las 4096 palabras de
memoria de 16 bits cada una. Se utiliza un formato de un solo operando, con
un segundo operando en el acumulador cuando es necesario. Los cuatro bits
ms significativos de los diecisis bits de la palabra se dedican a almacenar el
cdigo de operacin. Los doce bits menos significativos se dedican a
almacenar la direccin del operando.

La siguiente tabla resume los cdigos de operacin de la computadora de


ejemplo.

Las
partes
del
CPU
de
la
computadora
imaginaria
son:
ACC Acumulador, se usar para almacenar uno de los operandos y el
resultado
de
varias
de
las
instrucciones
MAR (Memory Address Register) Registro de direccin de memoria,
selecciona a que localidad de memoria se va a leer o a escribir.
MBR (Memory Bus Register) Registro de bus de memoria. A travs de l se
lee
y
se
escriben
los
datos.
PC (Program Counter) El contador de programa almacena la direccin de la
siguiente instruccin a buscar. Por esta razn tambin es conocido como
apuntador
de
instrucciones.
IR - Registro de instruccin, guarda el cdigo de la instruccin que se esta
ejecutando.

Flags Registro de Banderas, agrupa a todas las banderas de la ALU en un


registro, en el caso de nuestra computadora imaginaria, las banderas
disponibles sern: Z Bandera de Cero, se pone en uno cuando todos los bits
del resultado son cero; O Sobreflujo, se pone en uno cuando el resultado de
la ltima operacin se sale de el rango de los nmeros de 16 bits con signo; C
Acarreo, se enciende cuando el resultado de la ltima operacin se sale del
rengo de los nmeros de 16 bits sin signo.

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

2
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 Para el cdigo de operacin 2, correspondiente a la
instruccin ADD, tambin se transfiere la direccin del operando al MAR y se
lee el contenido de la memoria, pero en vez de enviarse directamente del MBR
al acumulador, se enva al ALU para que se sume con el contenido del
acumulador y posteriormente se almacene el resultado de la suma en el
acumulador. Resumiendo en lenguaje de transferencia de registros: MAR<IR(M) //IR(M) representa los bits del registro IR que almacenan la direccin
del operando ACC<-ACC+MBR La columna operacin de la Tabla 1.2.1.4.1
proporciona un resumen el lenguaje de transferencia de registros de las
operaciones correspondientes a cada cdigo de operacin.

1.2.2

Memoria

En informtica, la memoria (tambin llamada almacenamiento) se refiere a


parte de los componentes que forman parte de una computadora. Son
dispositivos que retienen datos informticos durante algn intervalo de
tiempo. Las memorias de computadora proporcionan una de las principales
funciones de la computacin moderna, la retencin o almacenamiento de
informacin. Es uno de los componentes fundamentales de todas las
computadoras modernas que, acoplados a una unidad central de
procesamiento (CPU por su sigla en ingls, central processing unit),
implementa lo fundamental del modelo de computadora de Arquitectura de
von Neumann, usado desde los aos 1940. Dispositivo basado en circuitos que
posibilitan el almacenamiento limitado de informacin y su posterior
recuperacin. Las memorias suelen ser de rpido acceso, y pueden ser
voltiles o no voltiles. La clasificacin principal de memorias son RAM y ROM.
Estas memorias son utilizadas para almacenamiento primario.

1.2.2.1 Conceptos bsicos del manejo de la memoria


Se produce bajo el control directo y continuo del programa que solicita la
operacin de E/S. tanto en la entrada y salida programada como con
interrupciones, el procesador es responsable de extraer los datos de la
memoria en una salida, y almacenar los datos en la memoria principal. El
problema con la E/S es que el procesador tiene que esperar un tiempo
considerable hasta que el modulo en cuestin est preparado para recibir o
transmitir datos

2
1.2.2.2 Memoria Principal Semiconductora
La memoria
de
semiconductor usa circuitos
integrados basados
en
semiconductores para almacenar informacin. Un chip de memoria de
semiconductor
puede
contener
millones
de
minsculos transistores o condensadores. Existen memorias de semiconductor
de ambos tipos: voltiles y no voltiles. En las computadoras modernas, la
memoria principal consiste casi exclusivamente en memoria de semiconductor
voltil y dinmica, tambin conocida como memoria dinmica de acceso
aleatorio o ms comnmente RAM, su acrnimo ingls. Con el cambio de siglo,
ha habido un crecimiento constante en el uso de un nuevo tipo de memoria de
semiconductor no voltil llamado memoria flash. Dicho crecimiento se ha
dado, principalmente en el campo de las memorias fuera de lnea en
computadoras domsticas. Las memorias de semiconductor no voltiles se
estn usando tambin como memorias secundarias en varios dispositivos de
electrnica avanzada y computadoras especializadas y no especializadas.
1.2.2.3 Memoria Cache
En informtica, la cach es la memoria de acceso rpido de una computadora,
que guarda temporalmente las ltimas informaciones procesadas.
La memoria cach es un bfer especial de memoria que poseen las
computadoras, que funciona de manera similar a la memoria principal, pero es
de
menor
tamao
y
de
acceso
ms
rpido. Es
usada
por
el microprocesador para reducir el tiempo de acceso a datos ubicados en la
memoria principal que se utilizan con ms frecuencia. La cach es
una memoria que se sita entre la unidad central de procesamiento (CPU) y
la memoria de acceso aleatorio (RAM) para acelerar el intercambio de datos.
Cuando se accede por primera vez a un dato, se hace una copia en la cach;
los accesos siguientes se realizan a dicha copia, haciendo que sea menor el
tiempo de acceso medio al dato. Cuando el microprocesador necesita leer o
escribir en una ubicacin en memoria principal, primero verifica si una copia
de los datos est en la cach; si es as, el microprocesador de inmediato lee o
escribe en la memoria cach, que es mucho ms rpido que de la lectura o la
escritura a la memoria principal.

1.2.3

Manejo de Entrada/Salida.

En computacin, entrada/salida, tambin abreviado E/S o I/O (del original en


ingls input/output), es la coleccin de interfaces que usan las distintas
unidades funcionales (subsistemas) de un sistema de procesamiento de
informacin para comunicarse unas con otras, o las seales (informacin)
enviadas a travs de esas interfaces. Las entradas son las seales recibidas
por la unidad, mientras que las salidas son las seales enviadas por sta. El

2
trmino puede ser usado para describir una accin; "realizar una
entrada/salida" se refiere a ejecutar una operacin de entrada o de salida. Los
dispositivos de E/S los usa una persona u otro sistema para comunicarse con
una computadora. De hecho, a los teclados y ratones se los considera
dispositivos de entrada de una computadora, mientras que los monitores e
impresoras son vistos como dispositivos de salida de una computadora. Los
dispositivos tpicos para la comunicacin entre computadoras realizan las dos
operaciones, tanto entrada como salida, y entre otros se encuentran los
mdems y tarjetas de red.

1.2.3.1 Mdulos de Entrada/Salida


En primer trmino hablaremos de los dispositivos de entrada, que como su
nombre lo indica, sirven para introducir datos (informacin) a la computadora
para su proceso. Los datos se leen de los dispositivos de entrada y se
almacenan en la memoria central o interna. Los dispositivos de entrada
convierten la informacin en seales elctricas que se almacenan en la
memoria central. Los dispositivos de entrada tpicos son los teclados, otros
son: lpices pticos, palancas de mando (joystick), CD-ROM, discos compactos
(CD), etc. Hoy en da es muy frecuente que el usuario utilice un dispositivo de
entrada llamado ratn que mueve un puntero electrnico sobre una pantalla
que facilita la interaccin usuario-mquina.
Los mdulos de entrada y salida estn conectados con el procesador y la
memoria principal, y cada uno controla uno o ms dispositivos externos. La
arquitectura de E/S es su interfaz con el exterior, esta arquitectura se disea
de manera que permita una forma sistemtica de controlar las interacciones
con el mundo exterior y proporcione al sistema operativo la informacin que
necesita para gestionar la actividad de E/S.

1.2.3.2 Entrada/Salida Programada


Los dispositivos de Entrada y Salida permiten la comunicacin entre la
computadora y el usuario.
Se produce bajo el control directo y continuo del programa que solicita la
operacin de E/S. tanto en la entrada y salida programada como con
interrupciones, el procesador es responsable de extraer los datos de la
memoria en una salida, y almacenar los datos en la memoria principal. El

2
problema con la E/S es que el procesador tiene que esperar un tiempo
considerable hasta que el modulo en cuestin est preparado para recibir o
transmitir datos.
1.2.3.3 Entrada/Salida mediante interrupciones
El programa genera una orden de E/S y despus contina ejecutndose hasta
que el hardware lo interrumpe para indicar que la operacin ha concluido. La
entrada y salida con interrupciones, aunque es ms eficiente que la sencilla,
tambin requiere la intervencin activa del procesador para transferir los datos
entre la memoria y el mdulo de E/S.
El mdulo de E/S interrumpir al CPU para solicitar su servicio cuando est
preparado para intercambiar datos. El CPU ejecuta la transferencia de datos y
despus contina con el procesamiento previo. Se pueden distinguir dos tipos:
E/S sncrona y E/S asncrona E/S Sncrona: cuando la operacin de E/S
finaliza, el control es retornado al proceso que la gener. La espera por E/S se
lleva a cabo por medio de una instruccin wait que coloca al CPU en un estado
ocioso hasta que ocurre otra interrupcin. Aquellas mquinas que no tienen
esta instruccin utilizan un loop. Este loop contina hasta que ocurre una
interrupcin transfiriendo el control a otra parte del sistema de operacin. Slo
se atiende una solicitud de E/S por vez. El sistema de operacin conoce
exactamente que dispositivo est interrumpiendo. Esta alternativa excluye
procesamiento simultneo de E/S. E/S Asncrona: retorna al programa usuario
sin esperar que la operacin de E/S finalice. Se necesita una llamada al
sistema que le permita al usuario esperar por la finalizacin de E/S (si es
requerido). Tambin es necesario llevar un control de las distintas solicitudes
de E/S. Para ello el sistema de operacin utiliza una tabla que contiene una
entrada por cada dispositivo de E/S (Tabla de Estado de Dispositivos). La
ventaja de este tipo de E/S es el incremento de la eficiencia del sistema.
Mientras se lleva a cabo E/S, el CPU puede ser usado para procesar o para
planificar otras E/S. Como la E/S puede ser bastante lenta comparada con la
velocidad del CPU, el sistema hace un mejor uso de las facilidades.

1.2.3.4 Acceso directo a Memoria


El acceso directo a memoria (DMA, del ingls direct memory access) permite a
cierto tipo de componentes de una computadora acceder a la memoria del
sistema para leer o escribir independientemente de la unidad central de
procesamiento (CPU) principal. Muchos sistemas hardware utilizan DMA,
incluyendo controladores de unidades de disco, tarjetas grficas y tarjetas de

2
sonido. DMA es una caracterstica esencial en todos los ordenadores
modernos, ya que permite a dispositivos de diferentes velocidades
comunicarse sin someter a la CPU a una carga masiva de interrupciones. Una
transferencia DMA consiste principalmente en copiar un bloque de memoria de
un dispositivo a otro. En lugar de que la CPU inicie la transferencia, la
transferencia se lleva a cabo por el controlador DMA. Un ejemplo tpico es
mover un bloque de memoria desde una memoria externa a una interna ms
rpida. Tal operacin no ocupa al procesador y, por ende, ste puede efectuar
otras tareas. Las transferencias DMA son esenciales para aumentar el
rendimiento de aplicaciones que requieran muchos recursos. Cabe destacar
que aunque no se necesite a la CPU para la transaccin de datos, s se
necesita el bus del sistema (tanto bus de datos como bus de direcciones), por
lo que existen diferentes estrategias para regular su uso, permitiendo as que
no quede totalmente acaparado por el controlador DMA. El acceso directo a
memoria es simplemente eso, un acceso a memoria que se crea al particionar
la memoria en bloques del mismo tamao.

1.2.3.5 Canales y Procesadores de Entrada/Salida


El canal de E/S es una extensin del concepto de DMA. Un canal de E/S tiene
la capacidad de ejecutar instrucciones de E/S, lo que da un control total sobre
las operaciones de E/S. Las instrucciones de E/S se almacenan en la memoria
principal y sern ejecutadas por un procesador de propsito especfico en el
mismo canal de E/S.
Un canal selector controla varios dispositivos de velocidad elevada y en un
instante dado, se dedica a transferir datos a uno de esos dispositivos, es decir
el canal de entrada y salida selecciona un dispositivo y efecta la transferencia
de datos. Cada dispositivo o pequeo grupo de dispositivos es manejado por
un controlador o mdulo de E/S, as el canal de entrada y salida se utiliza en
lugar de la CPU para controlar estos controladores de E/S. Un canal
multiplexor puede manejar la entrada y salida de varios dispositivos al mismo
tiempo. Para dispositivos de velocidad reducida, un multiplexor de byte acepta
o transmite caracteres tan rpido como es posible a varios dispositivos.

1.2.4

Buses

En arquitectura de computadores, el bus (o canal) es un sistema digital que


transfiere datos entre los componentes de una computadora o entre
computadoras. Est formado por cables o pistas en un circuito impreso,
dispositivos como resistores y condensadores adems de circuitos integrados.

2
En los primeros computadores electrnicos, todos los buses eran de tipo
paralelo, de manera que la comunicacin entre las partes del computador se
haca por medio de cintas o muchas pistas en el circuito impreso, en los cuales
cada conductor tiene una funcin fija y la conexin es sencilla requiriendo
nicamente puertos de entrada y de salida para cada dispositivo. La tendencia
en los ltimos aos se hacia uso de buses seriales como el USB, Firewire para
comunicaciones con perifricos reemplazando los buses paralelos, incluyendo
el caso como el del microprocesador con el chipset en la placa base. Esto a
pesar de que el bus serial posee una lgica compleja (requiriendo mayor poder
de cmputo que el bus paralelo) a cambio de velocidades y eficacias mayores.
Existen diversas especificaciones de que un bus se define en un conjunto de
caractersticas mecnicas como conectores, cables y tarjetas, adems de
protocolos elctricos y de seales.

1.2.4.1 Tipos de Buses


Bus paralelo.- Es un bus en el cual los datos son enviados por bytes al mismo
tiempo, con la ayuda de varias lneas que tienen funciones fijas. La cantidad
de datos enviada es bastante grande con una frecuencia moderada y es igual
al ancho de los datos por la frecuencia de funcionamiento. En los
computadores ha sido usado de manera intensiva, desde el bus del
procesador, los buses de discos duros, tarjetas de expansin y de vdeo, hasta
las impresoras.

Bus serial.-En este los datos son enviados, bit a bit y se reconstruyen por
medio de registros o rutinas de software. Est formado por pocos conductores
y su ancho de banda depende de la frecuencia. Es usado desde hace menos de
10 aos en buses para discos duros, unidades de estado slido, tarjetas de
expansin y para el bus del procesador.
Multiplexados y no multiplexados o dedicados.- Los multiplexados realizan
diferentes funciones en funcin de las necesidades del momento. Ejemplo: bus
compartido para direcciones y datos ahorro en Hardware y por lo tanto en
costos. Tipos de Buses

2
Centralizados y distribuidos.- Necesidad de determinar qu elemento
transmite y cul recibe. Generalmente existe administracin centralizada por
la CPU o procesador.
Sncronos y asncronos (temporizacin).- Cmo ocurren los diferentes eventos
(comienzo, fin,...) implicados en la transmisin de informacin. Utilizacin de
una seal de reloj (comunicacin sncrona) o unas lneas de protocolo
(comunicacin asncrona).

1.2.4.2 Estructuras de los Buses


Estructura de un bus:
Lneas de datos
Lneas de direccin
Lneas de control
Datos:
Llevan datos y tambin comandos para los dispositivos de entrada
/salida.
Su
amplitud
influye
en
el
rendimiento
del
bus

Relacionado con el tamao de palabra del sistema


Direcciones:
Llevan direcciones de memoria en acceso a memoria, o permiten
seleccionar
un
dispositivo
conectado
al
bus.
Su amplitud determina el espacio de direcciones tanto de memoria
como
entrada
/
salida
Control:
Son
seales
de
control
de
acceso
y
uso
del
bus.

Arbitraje
del
bus

Sincronizacin
de
las
comunicaciones
Reloj del sistema

1.2.4.3 Jerarquas de Buses


Jerarqua.- Tendencia a utilizar mltiples buses debido a la:
Degradacin del rendimiento a medida que aumenta el nmero de
dispositivos colgados al bus.
"Cuello de botella" de las comunicaciones debido a los tiempos de espera
para acceder al bus.
Por ellos se introducen mltiples buses basando la jerarqua en los
requerimientos de comunicacin de los dispositivos:
Bus local: Conecta al procesador con la cache y con algn dispositivo e/s
muy rpido.
Bus del sistema: Conecta al procesador (a travs de la cache) con la
memoria del sistema y con un segundo nivel de dispositivos de velocidad
media.
Bus de expansin: Se conecta al bus del sistema y hace de interfaz entre
este y los dispositivos ms lentos

1.2.5 Interrupciones
En el contexto de la informtica, una interrupcin (del ingls Interrupt
Request, tambin conocida como peticin de interrupcin) es una seal
recibida por el procesador de un ordenador, indicando que debe "interrumpir"
el curso de ejecucin actual y pasar a ejecutar cdigo especfico para tratar
esta situacin. Una interrupcin es una suspensin temporal de la ejecucin de
un proceso, para pasar a ejecutar una subrutina de servicio de interrupcin, la
cual, por lo general, no forma parte del programa, sino que pertenece al
sistema operativo o al BIOS). Una vez finalizada dicha subrutina, se reanuda
la ejecucin del programa. Las interrupciones surgen de la necesidad que
tienen los dispositivos perifricos de enviar informacin al procesador principal
de un sistema informtico. La primera tcnica que se emple para esto fue el
polling, que consista en que el propio procesador se encargara de sondear los
dispositivos perifricos cada cierto tiempo para averiguar si tena pendiente
alguna comunicacin para l. Este mtodo presentaba el inconveniente de ser
muy ineficiente, ya que el procesador consuma constantemente tiempo y
recursos en realizar estas instrucciones de sondeo. El mecanismo de
interrupciones fue la solucin que permiti al procesador desentenderse de
esta problemtica, y delegar en el dispositivo perifrico la responsabilidad de
comunicarse con l cuando lo necesitara. El procesador, en este caso, no
sondea a ningn dispositivo, sino que queda a la espera de que estos le avisen
(le "interrumpan") cuando tengan algo que comunicarle (ya sea un evento,
una transferencia de informacin, una condicin de error, etc.).

BIBLIOGRAFIA
http://es.slideshare.net/CynthiaRamirez3/unidad-1-arquitectura
http://itcv-arquitectura-de-computadoras.blogspot.mx/2014/11/12-analisisde-los-componentes.html
http://arquitecturadecomputadorasunidades.blogspot.mx/2013/05/1-unidadde-arquitecturas-de-computo.html
http://es.wikipedia.org/wiki/Arquitectura_Harvard
http://html.rincondelvago.com/computadores_arquitectura-harvard-pipelinevectorial.html
http://www.itpn.mx/recursosisc/5semestre/arquitecturadecomputadoras/Unid
ad%20I.pdf
http://tics-arquitectura.blogspot.mx/2012/03/modelos-de-arquitecturas-decomputo.html