Sei sulla pagina 1di 49

2015

DISEO DE UN COMPUTADOR

Informtica VIII ciclo


DISEO DE UN COMPUTADOR 30-11-2015

Ao de la Diversificacin Productiva y del Fortalecimiento de la Educacin

Facultad de ingeniera industrial


Escuela profesional de ingeniera informtica

Curso: Microcomputadoras II
Tema:
Diseo de un computador

Docente: Ing. Valle Ros, Vctor Hugo

Estudiantes

Gutirrez Palacios, ngel Andrs


More Panta, Martin Jhon
Silva Ramos, Luis Marcelino

domingo, 29 de octubre de 2017

DISEO DE UN COMPUTADOR INFORMTICA VIII CICLO


DISEO DE UN COMPUTADOR 30-11-2015

ndice
INTRODUCCION ............................................................................................................................. 4
OBJETIVOS ..................................................................................................................................... 5
Objetivo General ....................................................................................................................... 5
Objetivos especficos ................................................................................................................. 5
MARCO TEORICO ........................................................................................................................... 6
Perspectiva histrica .............................................................................................................. 6
La arquitectura de Von Neumann ......................................................................................... 7
Estructura bsica de una CPU .............................................................................................. 8
La Unidad de Control ......................................................................................................... 9
El registro de instruccin (IR) .......................................................................................... 10
La Unidad Aritmtico Lgica (ALU) ................................................................................ 11
El registro de estado (STATUS) ..................................................................................... 12
La unidad de direccionamiento ....................................................................................... 12
Registros auxiliares .......................................................................................................... 13
La memoria ............................................................................................................................ 13
Instrucciones ......................................................................................................................... 14
Modos de direccionamiento ............................................................................................ 15
Clasificacin de las instrucciones .................................................................................. 16
Temporizacin de las instrucciones ................................................................................... 16
Interrupciones ....................................................................................................................... 17
DESARROLLO DEL TEMA .............................................................................................................. 18
DISEO DE UN COMPUTADOR ...................................................................................... 18
Especificaciones generales ............................................................................................ 18
El juego de Instrucciones ................................................................................................ 18
Modos de direccionamiento ............................................................................................ 18
Clasificacin de las instrucciones ............................................................................................. 19
Transferencias de datos .................................................................................................. 19
Operaciones aritmticas .................................................................................................. 19
Operaciones con banderas ............................................................................................. 20
Operaciones lgicas ......................................................................................................... 20
Flujo de programa............................................................................................................. 20
Formato de las instrucciones .............................................................................................. 33
Mapa de distribucin de las instrucciones .................................................................... 36
Los Registros .................................................................................................................... 36

DISEO DE UN COMPUTADOR INFORMTICA VIII CICLO


DISEO DE UN COMPUTADOR 30-11-2015

El registro de instruccin (IR) .................................................................................................. 36


El registro de estado (STATUS) ............................................................................................. 37
El contador de programa (PC) ................................................................................................ 37
El registro de direccionamiento de memoria (MAR) ............................................................ 37
La Unidad Aritmtico Lgica (ALU) ........................................................................................ 38
La Unidad de Control (UC) ...................................................................................................... 41
Descripcin de las seales ...................................................................................................... 42
El diagrama de estados ........................................................................................................... 44
CONCLUSIONES ........................................................................................................................... 47
BIBLIOGRAFIA .............................................................................................................................. 48

DISEO DE UN COMPUTADOR INFORMTICA VIII CICLO


DISEO DE UN COMPUTADOR 30-11-2015

INTRODUCCION

El trabajo a presentar se centra en el tema de DISEO DE UN COMPUTADOR,


en esto veremos cosas como la arquitectura, organizacin y funciones de un
computador. Se desarrolla teora breve sobre como o que aspectos debemos
tomar en cuenta para que nuestro diseo sea adecuado, correcto y que las
consideraciones que han sido dadas y desarrolladas en clase sean empleadas
en nuestro trabajo corroborando su funcionamiento, siguiendo ciertas normas y
consideraciones dadas.
En el desarrollo del documento veremos cosas como el procesamiento de datos,
el almacenamiento, las unidades funcionales, funciones de control y ms detalles
que comprende el diseo de un computador.
Cabe mencionar nuestra intencin de que este documento sirva como base para
que otros estudiantes lo empleen y entiendan como se disea un computador.

Los Autores.

DISEO DE UN COMPUTADOR INFORMTICA VIII CICLO


DISEO DE UN COMPUTADOR 30-11-2015

OBJETIVOS
Objetivo General

Disear un Computador con todos sus componentes adecuados.

Objetivos especficos

1. Establecer la Arquitectura de la cual dispondr el computador (Registros,


instrucciones, formato de datos, etc.)

2. Establecer la organizacin de nuestro computador (Unidades funcionales,


tecnologa utilizada, protocolo de comunicacin, etc.)

3. Establecer las funciones de nuestro computador (Procesamiento de


datos, control, almacenamiento, etc.)

DISEO DE UN COMPUTADOR INFORMTICA VIII CICLO


DISEO DE UN COMPUTADOR 30-11-2015

MARCO TEORICO
Perspectiva histrica
La idea de un sistema de procesamiento de informacin, que sea
reconfigurable a travs de un programa guardado en alguna forma de
memoria, es muy antigua, remontndonos a principios del siglo XIX. Charles
Babbage [1791-1871] fue quien proyect el primer computador mecnico,
capaz de ejecutar secuencias de operaciones automticamente, conocido
como mquina diferencial. La complejidad de los elementos mecnicos
necesarios para su funcionamiento, imposibilit su construccin dada las
limitaciones tecnolgicas de la poca.
Con el nacimiento de la electrnica se volvieron a realizar intentos en la
construccin de computadores. En 1941, se inicia la construccin del ENIAC
(Electronica Numeral Integrator and Computer) el primer computador funcional
de la historia. Esta mquina tena alrededor de 19.000 vlvulas y fue construida
por la Escuela de Ingeniera Elctrica de Moore. Fue puesta en funcionamiento
en el ao 1945 y se retir en 1955. Su principal inconveniente, era que deba
ser programado manualmente accionando una serie de interruptores,
conectando y desconectando cables.
En 1945 el matemtico hngaro-americano John Von Neumann2 [1903-1957],
que ya haba formado parte del equipo de desarrollo del ENIAC, public un
artculo First Draft of a Report on the EDVAC que sent los principios
de construccin de los computadores, a pesar de que el EDVAC no lleg a
construirse nunca. Dentro de estas ideas, que hoy conocemos como
arquitectura de Von Newmann, estaba la de utilizar un programa almacenado en
memoria.
Tras el ENIAC, vendran otros computadores basados en vlvulas de vaco
conocidos como ordenadores de primera generacin, caracterizados por su
elevado tamao y baja fiabilidad. La aparicin de los transistores en 1947,
dara lugar a la segunda generacin, subsanando parcialmente los
problemas de tamao, introduciendo el uso de discos magnticos para
guardar la informacin y memoria basadas en ferritas. La tercera
generacin, se iniciara con el advenimiento de los circuitos integrados en
1961, permitiendo con ello una gran reduccin de tamao y un aumento en la
complejidad de los computadores.
La aparicin de los circuitos integrados de gran escala de integracin (VLSI),
permiti el diseo de un procesador en un solo chip que dara lugar al
nacimiento de los microprocesadores. El 4004 de Intel (1971) fue el primer
dispositivo de este tipo. Este logro, permiti seguir reduciendo el tamao y
bajar los costes, consiguiendo de este modo una mayor difusin del
microprocesador impensable hasta el momento. Desde entonces, los
microprocesadores no han dejado de evolucionar, mejorando sus
prestaciones segn lo han hecho el nmero de transistores disponibles (Ley
de Moore3)
En la actualidad, gracias a gran cantidad lgica y a la capacidad de
configuracin de los circuitos programables del tipo FPGA, cualquier
diseador con cierta experiencia puede realizar su propio procesador.

DISEO DE UN COMPUTADOR INFORMTICA VIII CICLO


DISEO DE UN COMPUTADOR 30-11-2015

La arquitectura de Von Neumann


Como ya comentamos con anterioridad, Von Neumann desarroll una
arquitectura sobre la estructura interna de un computador que, an hoy es
la base en la que se asientan la mayora de los procesadores actuales. Esta
arquitectura, se caracteriza por una divisin funcional en bloques tal como se
muestra en la siguiente figura:

Los elementos esenciales son la memoria y el procesador. La memoria, es el


lugar de almacenamiento donde se guardan instrucciones y los datos de los
programas. El procesador, es un intrprete de un juego de instrucciones cuya
finalidad es:
Extraer la instruccin de memoria y decodificarla.
Ejecutar la instruccin.
Localizar la siguiente instruccin y volver al primer paso.

Este proceso contina de manera recurrente y de esta forma, el ordenador


puede ejecutar cualquier tipo de programa por grande que sea su
complejidad. Veamos a continuacin, una descripcin ms detallada de cada
uno de estos bloques y su configuracin interna.

DISEO DE UN COMPUTADOR INFORMTICA VIII CICLO


DISEO DE UN COMPUTADOR 30-11-2015

Estructura bsica de una CPU

DISEO DE UN COMPUTADOR INFORMTICA VIII CICLO


DISEO DE UN COMPUTADOR 30-11-2015

La Unidad de Control

El bloque que gobierna y coordina todas las operaciones, que tienen lugar
dentro de la CPU, es la Unidad de Control (UC). Se trata, de un circuito
secuencial que genera las microinstrucciones que recibirn los elementos
operativos como la ALU, registros, etc. rdenes tales como, que un registro
almacene un dato o lo entregue al bus, que un registro se incremente,
decremente, que la ALU ejecute una funcin determinada de su repertorio,
todas ellas proceden de la UC.
Para que la Unidad de Control pueda desempear su funcin, necesita disponer
de dos informaciones de distinta procedencia:

La INSTRUCCIN, procedente del exterior de la CPU.


El STATUS, procedente del interior de la CPU

La instruccin es un valor binario que indica a la CPU la funcin que debe


realizar. La Unidad de Control, interpreta el significado de la instruccin y
la descompone en operaciones elementales (microinstrucciones), de tal modo
que, los elementos internos de la CPU puedan llevar a cabo la tarea
encomendada.

Por otro lado, la accin de la unidad de control est condicionada por la


historia anterior de la CPU, reflejada en los bits del registro de estado (STATUS),
que indicarn que las operaciones previas han dado como resultado un valor
nulo, con acarreo, desbordamiento, etc. En funcin de esta informacin, el
controlador puede generar microinstrucciones diferentes para una misma
instruccin.

DISEO DE UN COMPUTADOR INFORMTICA VIII CICLO


DISEO DE UN COMPUTADOR 30-11-2015

La Unidad de Control es un circuito sncrono, es decir, que todos sus cambios


vienen marcados por un reloj externo utilizado para coordinar el
funcionamiento interno del sistema. Cada salida de la Unidad de Control,
genera un microinstruccin especfico destinado a actuar sobre un elemento
de la CPU. Por ejemplo, una de estas seales da lugar a que un dato se
escriba en un registro determinado, otra seal activa la salida de un registro
cuyo contenido se vuelca en un bus interno, otras indican a la ALU que
debe realizar una suma, etc.

El registro de instruccin (IR)

La CPU es capaz de ejecutar un nmero finito de acciones que le vienen


sealadas desde la memoria de programa, mediante una combinacin
binaria que se denomina instruccin. Una instruccin es, por lo tanto, un
conjunto de unos y ceros que indicar a la CPU cul es la operacin que
debe realizar. La UC es la encargada de desgranar el significado de la
instruccin y generar las correspondientes microinstrucciones.

Para llevar a cabo esta tarea, la instruccin extrada de la memoria deber


almacenarse momentneamente durante el tiempo que invierta la UC en
ejecutar las microinstrucciones. Esto proceso, se realiza con la ayuda de un
registro conocido como registro de instruccin (IR). Dicho registro, tendr
tantos bits como la longitud de palabra del microprocesador.
La forma en que la instruccin es extrada de la memoria, no es diferente de
cualquier otro proceso de lectura, sin embargo, la CPU debe discernir de
algn modo que esta informacin leda es precisamente una instruccin y
no otro dato cualquiera. Por otro lado, dicha instruccin es una combinacin
binaria que en nada se diferencia de cualquier otra informacin contenida
en memoria. El nico hecho diferencial, que permite que esa palabra
binaria sea llevada al registro de instruccin, es precisamente que en ese
instante la CPU espera una instruccin y no, otro tipo de dato.

DISEO DE UN COMPUTADOR INFORMTICA VIII CICLO


DISEO DE UN COMPUTADOR 30-11-2015

La Unidad Aritmtico Lgica (ALU)

Es habitualmente, un circuito combinacional capaz de realizar ciertas


operaciones de tipo lgico o de tipo aritmtico entre dos operandos,
generando un resultado que se almacena en un registro denominado
acumulador. Para ello, es preciso que cada uno de los operandos est situado
en la entrada correspondiente de la ALU. Estas variables de entrada
determinarn la salida de la ALU de acuerdo con las tablas de verdad a las
que responde. Las entradas de control determinarn la operacin a realizar.
Por ejemplo, 3 lneas de control permiten definir 8 operaciones diferentes que
podran ser: AND, OR, XOR, NOT, NAND, suma binaria y resta binaria.

El acumulador, es un registro de carga y salida en paralelo que, recoge el


resultado de la operacin de la ALU. La orden de memorizacin del resultado,
en el registro acumulador, procede de la UC y deber llegar despus de que
los operandos hayan sido memorizados en sus respectivos registros y con el
tiempo suficiente de retraso, para que la salida de la ALU haya alcanzado su
valor estable.

DISEO DE UN COMPUTADOR INFORMTICA VIII CICLO


DISEO DE UN COMPUTADOR 30-11-2015

La estructura habitual de una ALU incluye el uso de tres registros: dos


registros de operando y un registro acumulador. No obstante, la mayora de
los fabricantes optan por suprimir uno de los registros de operando
sustituyndolo por el propio acumulador, tal como puede verse en la figura
anterior. De esta forma, el acumulador cumple dos cometidos: antes de la
operacin almacena un operando y despus almacena el resultado.

La ALU, aparte de llevar a cabo operaciones lgico-aritmticas, suele


actualizar el estado de los bits de estado en funcin del resultado de la
operacin, pudiendo utilizarse esta informacin en operaciones posteriores.

El registro de estado (STATUS)

El registro de estado, tambin llamado registro de cdigos de condicin, est


formado por un conjunto de biestables independientes, denominados
comnmente como banderas (flags). Cada uno de ellos, est destinado a
memorizar un determinado suceso que ha tenido lugar dentro de la CPU. Los
sucesos que suelen estar sealados mediante banderas son habitualmente
los siguientes:

El resultado de una operacin ha sido nulo (Zero o Z).


El resultado de una operacin ha generado acarreo (Carry o C).
El resultado de una operacin desborda la capacidad de un registro
(Overflow o OV).

El estado de las banderas, es consultado por la UC y condicionar su


modo de funcionamiento en el desarrollo de algunas instrucciones,
normalmente los saltos condicionados.

La unidad de direccionamiento

Para poder acceder, tanto a las instrucciones como a los datos, la CPU a
de tener capacidad de direccionamiento de la memoria. Con esta finalidad,
la CPU dispone tanto de un bus de datos como de un bus de direcciones.
El nmero de lneas de estos buses, definen la capacidad mxima de
memoria soportada, as como, la longitud de la instruccin que va a manejar
el computador.

Cuando la CPU se dirige a la memoria, para encontrar instrucciones del


programa que est ejecutando, suele hacerlo en posiciones consecutivas. En
este caso, el circuito interno de la CPU que se encarga de presentar su
contenido en el bus de direcciones, es el llamado contador de programa (PC).
El nmero de bits de este registro sncrono, est en relacin con el tamao del
bus de direcciones.

DISEO DE UN COMPUTADOR INFORMTICA VIII CICLO


DISEO DE UN COMPUTADOR 30-11-2015

Pero el programa, no siempre se ejecuta de forma estrictamente consecutiva,


sino que pueden producirse saltos o rupturas de secuencia, lecturas o
escrituras de datos en posiciones de memoria completamente aleatorias,
saltos a posiciones relativas al contenido del PC, etc. Para ello, la CPU debe
disponer de capacidades adicionales de direccionamiento, que le permitan
llevar a cabo estas tareas, que se traducen en operaciones como el cambio
del contenido del PC, calcular direcciones relativas a la actual, guardar o
cargar una direccin a partir de los datos procedentes del bus de datos, etc.
Normalmente, toda esta funcionalidad no es posible con la ayuda de un
nico registro, por lo que se hace necesaria la ayuda de registros auxiliares
(MAR), sumadores, multiplexores, etc.

Registros auxiliares

Para la ejecucin de determinadas instrucciones, a veces, se hace necesario


el uso de registros auxiliares internos, inaccesibles por el usuario, que
permitan llevar estas tareas. Su funcin, aunque hay muchas posibles,
podra decirse que es la de almacenamiento temporal sin necesidad de acudir
a la memoria externa, y la de ayuda a la generacin de direcciones de memoria.

Dentro de estos registros auxiliares, requiere una atencin especial un


registro que suelen incluir todos los procesadores: el STACK POINTER o
puntero de pila.

La memoria
La memoria es uno de los mdulos fundamentales de un procesador. Es el
lugar donde se guarda la informacin sobre el programa a ejecutar, as como
los datos que se vayan generando. Aunque existen varias modalidades de
memoria, clasificadas segn la tecnologa con la que se fabrican, todas ellas
pueden catalogarse en memorias:

ROM De solo lectura, orientadas al almacenamiento de


programas ya que mantienen su contenido en ausencia de
alimentacin.
RAM De lectura/escritura de acceso aleatorio, orientadas al
almacenamiento de datos o de programas de manera temporal. No
mantiene su informacin en ausencia de alimentacin.
Independientemente del tipo, un mdulo de memoria, es un conjunto de
celdas de almacenamiento con circuitos asociados, que permiten la
transferencia de informacin entre el interior de la memoria y el mundo
exterior.

DISEO DE UN COMPUTADOR INFORMTICA VIII CICLO


DISEO DE UN COMPUTADOR 30-11-2015

Instrucciones

Una instruccin, es una informacin elemental que se suministra a la CPU


en forma de combinacin binaria, a partir de la cual la CPU desarrolla una
secuencia de acciones, que le permiten llevar a cabo una determinada
manipulacin de la informacin. El conjunto de instrucciones que soporta
una CPU se conoce como juego de instrucciones, y determina las
capacidades del procesador.
La asignacin de los cdigos binarios, a cada una de las instrucciones, no se
realiza de forma aleatoria, sino que, es el resultado de un estudio detallado,
con el objeto de simplificar las labores de decodificacin por parte de la
unidad de control.

Los bits de la combinacin binaria que constituyen la instruccin, se


dividen en grupos denominados campos. Los campos ms comunes, que
se encuentran en los distintos formatos de instrucciones, son los siguientes:
Un campo de cdigo de operacin, que especifica la operacin
que se debe realizar.
Un campo de direccin, que designa una direccin de la memoria
o un cdigo para elegir un registro del procesador.
Un campo de modo, que especifica la forma en que se interpretar
el campo de direccin.

El cdigo de operacin de una instruccin, es un grupo de bits que definen


diversas operaciones del procesador, como puede ser: la adiccin, la
sustraccin, complemento, etc. Los bits que definen el campo de modo,
especifican diversas alternativas para escoger los operandos del campo de
direccin.

La longitud de la instruccin es variable; as, podemos encontrarnos


instrucciones codificadas en una nica palabra como otras que pueden ocupar
dos, tres o ms palabras. Todo depender de la complejidad de la
instruccin, del nmero de operaciones, de la diversidad de los modos de
direccionamiento, etc. La eleccin de un juego de instrucciones extenso o
reducido ha dado lugar a dos tipos de concepcin sobre la arquitectura de los
procesadores, conocidos como CISC4 o RISC5. Se dice que un juego de
instrucciones es ortogonal, si cada operacin se puede realizar con cualquier
tipo de operando y cualquier modo de direccionamiento.

DISEO DE UN COMPUTADOR INFORMTICA VIII CICLO


DISEO DE UN COMPUTADOR 30-11-2015

Modos de direccionamiento

Los datos necesarios para que se ejecute una instruccin, y que son
especificados por el operando, pueden ser accesibles de diferentes formas,
llamados modos de direccionamiento. De este modo, se aade versatilidad a
las operaciones que es capaz de realizar la CPU, facilitando la realizacin de
programas o acelerando la ejecucin de los mismos. Los modos de
direccionamiento disponibles en una CPU pueden ser muy variados, incluyendo
en muchos casos, combinacin de varios en una misma instruccin. En
cualquier caso, existen ciertos modos que, aunque puedan variar de nombre,
obedecen a una misma forma de operar. Estos modos son:
Direccionamiento implcito
Tambin llamado inherente. Es el modo en el que no se hace ninguna
referencia a memoria. Se aplica a aquellas instrucciones que se ejecutan en
la CPU, sin necesidad de intercambiar datos con memoria. Las instrucciones
no tienen operando.

Direccionamiento inmediato
En este modo, las instrucciones necesitan un dato que est contenido en
la propia instruccin, en el campo de direccin.

Direccionamiento directo
Tambin llamado absoluto. El dato necesario para la instruccin, est
contenido en una posicin de memoria. El operando es precisamente la
direccin de memoria en donde se encuentra ese dato.

Direccionamiento indirecto
El dato necesario para la instruccin, est contenido en una posicin de
memoria denominada direccin efectiva. El operando es una direccin de
memoria que acta como direccin intermedia. El contenido de esta posicin
es la direccin efectiva.

Direccionamiento relativo
Localiza el dato en una posicin de memoria que se encuentra distanciada
un cierto nmero de posiciones con relacin al contador de programa. Esta
distancia u offset, es el nmero indicado por el operando y suele ir codificado
en complemento a dos, dando lugar, a una direccin positiva (adelante) o
negativo (atrs). La direccin efectiva se calcula, sumando la direccin actual
al offset.

Direccionamiento indexado
Este modo requiere que la CPU tenga un registro auxiliar, denominado ndice. La
direccin efectiva, se encuentra sumando, el contenido de este registro con el operando
de la instruccin. Puede haber mltiples variantes de este modo.

DISEO DE UN COMPUTADOR INFORMTICA VIII CICLO


DISEO DE UN COMPUTADOR 30-11-2015

Clasificacin de las instrucciones

Es posible, realizar una clasificacin de las instrucciones de un procesador tomando


como base, la funcin que realizan. As, podemos encontrar instrucciones:

Aritmticas. Son aquellas instrucciones que operan con la ALU.


Lgicas. Realizan operaciones lgicas y modifican el registro de
estado.
De bifurcacin. Modifican la secuencia normal de ejecucin de un
programa. Puesto que la secuencia de ejecucin la controla el
contador del programa, estas instrucciones actan sobre este
registro. Algunas instrucciones pueden verificar el estado de alguno
de los flags del registro de estado. Si es as, las instrucciones son de
salto condicionado. Si el salto se realiza en cualquier caso se les
conoce como incondicionales.
Transferencia de datos. Mueven datos de un sitio a otro, sin
modificar el valor de ste, ni el registro de estado. Las instrucciones
de entrada/salida, son un caso especial de instrucciones de
transferencia.
De bit. Tiene como funcin modificar un solo bit, o leer su estado.
Son tpicas, aquellas que modifica alguno de las banderas del registro
de estado.
Otras instrucciones. Existen otras instrucciones que no se pueden
clasificar en ninguna de las categoras anteriores. Algunas de ellas,
controlan la operacin del microprocesador; como son las de parada
del procesador, o las que no ejecutan ninguna operacin.

Temporizacin de las instrucciones


Cuando un cdigo de operacin llega al registro de instrucciones de la CPU,
la unidad de control desarrolla una secuencia de acciones preestablecidas,
hasta completar su ejecucin. Como se ha dicho anteriormente, el
controlador es un subsistema secuencial sncrono, que va cambiando de
estado, en funcin de una seal de reloj externa. Cada una de las acciones
elementales (microinstrucciones) necesarias, para la ejecucin de una
instruccin, tarda un ciclo de reloj en completarse. El nmero total de
microinstrucciones, y por tanto, de ciclos de reloj, depender de la
complejidad de la instruccin.

La velocidad de ejecucin de un microprocesador, depende


fundamentalmente de la mxima frecuencia de reloj que admite,
condicionada por razones tecnolgicas. Pero juega tambin un papel
importante, la habilidad que hayan desarrollado sus diseadores para acortar
el nmero de ciclos de reloj necesarios para cada instruccin. La tcnica
denominada pipelining, permite acortar tiempos, haciendo que la unidad
de control efecte varias operaciones en paralelo, en lugar de hacerlo
consecutivamente.

DISEO DE UN COMPUTADOR INFORMTICA VIII CICLO


DISEO DE UN COMPUTADOR 30-11-2015

Interrupciones

Las interrupciones, constituyen quiz, el mecanismo ms importante para la


conexin del microprocesador al mundo exterior, sincronizando la ejecucin
de los programas con los acontecimientos externos. El funcionamiento de las
interrupciones, es similar al de las subrutinas, de las cuales se diferencian
del procedimiento con que se ponen en marcha.

Del mismo modo, que las subrutinas se ejecutan cada vez que en el programa
aparece la instruccin de llamada, las interrupciones se ponen en marcha, al
activarse un terminal de entrada de la CPU, es decir, mediante un mecanismo
hardware.

DISEO DE UN COMPUTADOR INFORMTICA VIII CICLO


DISEO DE UN COMPUTADOR 30-11-2015

DESARROLLO DEL TEMA


DISEO DE UN COMPUTADOR

Especificaciones generales

A continuacin, se resume esquemticamente las prestaciones de la


computadora que se pretende disear.
Juego de instrucciones reducido(RISC)
Bus de datos de 8 bits
Bus de direcciones de 12 bits
Bus de entrada/salida de 4 bits
Memoria ROM de 4096 bytes
Memoria RAM de 256 bytes
Pila de 64 bits
Soporte de una interrupcin

El juego de Instrucciones

El juego de instrucciones se encuadra dentro de la filosofa RISC, esto es, un


conjunto reducido de instrucciones. Esta decisin se fundamenta nicamente en
la simplicidad a la hora de ser implementadas, lo que se traduce en una mayor
sencillez a la hora de ser decodificadas, y en un menor consumo de recursos.
Otros aspectos inherentes a la filosofa RISC, como el uso intensivo de registros
internos, la facilidad para implementar instrucciones en un clico de reloj,
reduccin de los accesos a memoria externa, etc. no han sido contemplados en
su plenitud, por lo que este proyecto no es del todo RISC.
Modos de direccionamiento
Se ha decidido incluir los siguientes modos:
Implcito Instrucciones que no precisan de campo de direccin (CD).
Registro Instrucciones que hacen referencia al registro en el CD.
Inmediato La instruccin va acompaada del operando que precisa.
Directo El CD hace referencia a una posicin de memoria
donde se encuentra el operando.
Indirecto El CD hace referencia a una posicin de memoria o registro,
donde se encuentra la direccin, que a su vez hace referencia
al operando.
Relativo Instrucciones que hacen referencia a una direccin relativa
en el CD.
DISEO DE UN COMPUTADOR INFORMTICA VIII CICLO
DISEO DE UN COMPUTADOR 30-11-2015

Clasificacin de las instrucciones

Atenindonos a su funcionalidad, es posible clasificar las instrucciones en diferentes


grupos. A continuacin, se resume todas las instrucciones disponibles con informacin
relevante como:

Hex Valor en hexadecimal de la instruccin.


Nemotcnico Nombre de la instruccin.
Descripcin Operacin que realiza.
C1, C2, C3 Campos en que ha sido dividida la instruccin para su
posterior tratamiento por parte de la Unidad de Control.
C, Z, O Banderas afectadas en cada operacin (Carry, Zero,
Overflow).
Modo Modo de direccionamiento.

Transferencias de datos

Operaciones aritmticas

DISEO DE UN COMPUTADOR INFORMTICA VIII CICLO


DISEO DE UN COMPUTADOR 30-11-2015

Operaciones con banderas

Operaciones lgicas

Flujo de programa

DISEO DE UN COMPUTADOR INFORMTICA VIII CICLO


DISEO DE UN COMPUTADOR 30-11-2015

ACALL addr12

Funcin: Llamada absoluta

Descripcin: Llamada en modo de direccionamiento absoluto a una subrutina. La direccin de


destino (addr12) se construye con los 4 bits menos significativos de la
instruccin, unido al segundo byte que le acompaa.

Bytes: 2

Ciclos de reloj: 6

Codificacin: 10 10 addr(11:8) | addr(7:0) HEX [A#][##]

Operaciones: ((SP)) (PCh)


(SP) (SP) + 1
((SP)) (PCl)
(SP) (SP) + 1

ADDC A, B

Funcin: Suma con acarreo

Descripcin: ADDC suma simultneamente el contenido de los registros A, B y el flag


C. El resultado se deposita en A.

Flags: C, OV y Z

Bytes: 1

Ciclos de reloj: 3

Codificacin: 01 00 0000
HEX [40] Operaciones: (A)
(A) + (B) + (C)

AJMP addr12

Funcin: Salto absoluto

Descripcin: AJMP transfiere la ejecucin del programa a la direccin apuntada. La direccin


de destino addr12 se construye con los 4 bits menos significativos de la
instruccin, unidos al segundo byte que acompaa. Por lo tanto, esta instruccin
puede direccionar hasta 4096 bytes.

Bytes: 2

Ciclos de reloj: 3

Codificacin: 10 11 addr(11:8) | addr(7:0) HEX


[B#][##] Operaciones: (PC) addr12

DISEO DE UN COMPUTADOR INFORMTICA VIII CICLO


DISEO DE UN COMPUTADOR 30-11-2015

AND A, B

Funcin: Funcin lgica AND.

Descripcin: AND realiza la funcin lgica bit a bit entre los operados
A y B. Flags: Z

Bytes: 1
Ciclos de reloj: 3

Codificacin: 01 00 0110 HEX [46]

Operaciones: (A) (A) ^ (B)

CLR A
Funcin: Limpia el acumulador
Descripcin: CLR pone a 0 el registro del acumulador
Flags: Z
Bytes: 1
Ciclos de reloj: 3
Codificacin: 01 00 1001 HEX [49]
Operaciones: (A) 0

CLR C

Funcin: Limpia el flag de C.


Descripcin: CLR pone a 0 el flag
de C. Flags: C

Bytes: 1

Ciclos de reloj: 3

Codificacin: 01 00 1001
HEX [7D] Operaciones: (C)
0

CPL A

Funcin: Complementa el acumulador


Descripcin: CPL invierte el contenido del
acumulador. Flags: C

Bytes: 1

Ciclos de reloj: 3

DISEO DE UN COMPUTADOR INFORMTICA VIII CICLO


DISEO DE UN COMPUTADOR 30-11-2015

Codificacin: 01 00 1010
HEX [4A]

Operaciones: (A) /(A)

CPL C

Funcin: Complementa el flag de acarreo.


Descripcin: CPL invierte el contenido del flag de
acarreo. Flags: C

Bytes: 1

Ciclos de reloj: 3

Codificacin: 01 00 1111
HEX [7F]

Operaciones: (C) /(C)

DEC A

Funcin: Decrementa el acumulador.

Descripcin: DEC disminuye en una unidad el contenido del registro acumulador. Cuanto el
valor sea 0x00, esto dar lugar a un desbordamiento con el consiguiente resultado
0xFF.

Flags: Z

Bytes: 1

Ciclos de reloj: 3

Codificacin: 01 00 0011
HEX [43]

Operaciones: (A) (A) - 1

DEC B

Funcin: Los mismo que DEC A pero con el registro B.


Codificacin: 01 01 0101
HEX [55] Operaciones: (B)
(B) - 1

HALT

Funcin: Detiene el procesador.

Descripcin: HALT detiene la ejecucin del procesador. Solo es posible salir de este
estado activando la seal reset del procesador.

DISEO DE UN COMPUTADOR INFORMTICA VIII CICLO


DISEO DE UN COMPUTADOR 30-11-2015

Bytes: 1

Ciclos de reloj: 2

Codificacin: 00 00 1111 HEX [0F]

IN A, addr4

Funcin: Lee de un puerto I/O.

Descripcin: Copia el contenido del puerto de entrada/salida apuntada por addr4 en el


acumulador. Bytes: 1

Ciclos de reloj: 3
Codificacin: 00 10 addr(3:0)
HEX [2#] Operaciones: (A)
(addr4)

INC A

Funcin: Incrementa el acumulador.

Descripcin: INC aumenta en una unidad el contenido del acumulador. Cuanto el valor sea
0xFF, esto dar lugar a un desbordamiento con el consiguiente resultado 0x00.

Flags: Z

Bytes: 1

Ciclos de reloj: 3

Codificacin: 01 00 0010
HEX [42]

Operaciones: (A) (A) + 1

INC B

Funcin: Los mismo que INC A pero con el registro B.

Codificacin: 01 00 0100 HEX [54]

Operaciones: (B) (B) + 1

IOF

Funcin: Desactiva las interrupciones.

Descripcin: IOF imposibilita que el procesador sea interrumpido por una


IRQ. Bytes: 1

Ciclos de reloj: 2

Codificacin: 00 00 0010 HEX [02]


Operaciones: (IEN) 1

DISEO DE UN COMPUTADOR INFORMTICA VIII CICLO


DISEO DE UN COMPUTADOR 30-11-2015

ION

Funcin: Activa las interrupciones.

Descripcin: ION posibilita que el procesador sea interrumpido por una


IRQ. Bytes: 1

Ciclos de reloj: 2

Codificacin: 00 00 0001
HEX [01] Operaciones:
(IEN) 1

JC rel

Funcin: Salto si C est a 1.

Descripcin: JZ salta a la direccin relativa apuntada por rel si el flag de carry est activado (1).
En el caso contrario, contina con la instruccin siguiente. La direccin rel
viene en el segundo byte que acompaa a la instruccin.

Bytes: 2

Ciclos de reloj: 3

Codificacin: 10 00 0010 | rel HEX [82][##]

Operaciones: (PC) (PC) + rel


si C=1 (PC)
(PC) + 2 si C=0

JNC rel
Funcin: Similar a JC salvo que salta si C est a 0.
Codificacin: 10 00 0011 | rel HEX [83][##]
Operaciones: (PC) (PC) + rel si Z=0
(PC) (PC) + 2 si Z=1

JNO rel

Funcin: Similar a JC salvo que salta si OV est a 0.

Codificacin: 10 00 0101 | rel HEX [85][##]

Operaciones: (PC) (PC) + rel


si OV=0 (PC)
(PC) + 2 si OV=1

DISEO DE UN COMPUTADOR INFORMTICA VIII CICLO


DISEO DE UN COMPUTADOR 30-11-2015

JNZ Rel
Funcin: Similar a JC salvo que salta si Z est a 0.
Codificacin: 10 00 0001 | rel HEX [81][##]
Operaciones: (PC) (PC) + rel si Z=0
(PC) (PC) + 2 si Z=1

JO rel

Funcin: Similar a JC salvo que salta si OV est a 1.

Codificacin: 10 00 0100 | rel HEX [84][##]

Operaciones: (PC) (PC) + rel si


OV=1 (PC)
(PC) + 2 si OV=0

JZ Rel
Funcin: Similar a JC salvo que salta si Z est a 1.
Codificacin: 10 00 0000 | rel HEX [80][##]
Operaciones: (PC) (PC) + rel si Z=1
(PC) (PC) + 2 si Z=0

MOV A, #dato

Funcin: Mueve byte de memoria RAM.


Descripcin: Copia en el acumulador, el valor de
dato. Bytes: 2

Ciclos de reloj: 2

Codificacin: 11 00 0000 | dato HEX


[C0][##] Operaciones: (A) dato

MOV A, @B

Funcin: Mueve byte de memoria RAM.

Descripcin: Copia en el acumulador, el dato de la posicin de memoria apuntada en el


contenido del registro B.

Bytes: 1

Ciclos de reloj: 4

Codificacin: 11 10 0001 HEX


[E1][##] Operaciones: (A) ((B))

DISEO DE UN COMPUTADOR INFORMTICA VIII CICLO


DISEO DE UN COMPUTADOR 30-11-2015

MOV A, addr8

Funcin: Mueve byte de memoria RAM.

Descripcin: Copia en el acumulador, el contenido de la posicin indicada en addr8.


Dicha informacin se obtiene del segundo byte.

Bytes: 2

Ciclos de reloj: 3

Codificacin: 11 00 0000 HEX


[C0][##] Operaciones: (A) (addr8)

MOV addr8, A

Funcin: Mueve byte de memoria RAM.

Descripcin: Copia el contenido del acumulador en la posicin de memoria indicada en


addr8.

Dicha informacin se obtiene del segundo byte.

Bytes: 2

Ciclos de reloj: 3

Codificacin: 11 01 0010 HEX [D2][##]

Operaciones: (addr8) (A)

MOV addr8, B

Funcin: Similar a MOV addr8, A pero en este caso con el registro B.

Codificacin: 11 01 0011 HEX [D3][##]


Operaciones: (addr8) (B)

MOV B, #dato

Funcin: Similar a MOV A, #dato pero en este caso con el registro B.

Codificacin: 11 00 0001 HEX [C1][##]


Operaciones: (B) dato

MOV B, addr8

Funcin: Similar a MOV A, addr8 pero en este caso con el registro B.

Codificacin: 11 01 0001 HEX [D1][##]


Operaciones: (B) (addr8)

DISEO DE UN COMPUTADOR INFORMTICA VIII CICLO


DISEO DE UN COMPUTADOR 30-11-2015

MOVX A, @B

Funcin: Similar a MOV A, @B. En este caso se accede a una posicin de la ROM
comprendida entre 0x00 y 0xFF.

Codificacin: 11 10 0010 HEX [E2][##]


Operaciones: (A) ((B))

MOVX A, addr12

Funcin: Mueve byte de memoria ROM.

Descripcin: Copia en el acumulador, el contenido de la posicin indicada en addr12.


Dicha direccin se forma con el segundo byte.

Bytes: 2

Ciclos de reloj: 3

Codificacin: 11 11 add(11:8) | add(7:0) HEX


[F#][##] Operaciones: (A)
(addr12)

NOP

Funcin: No operacin.

Descripcin: NOP consume el tiempo de 2 ciclos mquina sin hacer


nada. Bytes: 1

Ciclos de reloj: 2

Codificacin: 00 00 0000
HEX [00] Operaciones:
(PC) (PC) + 1

OR A, B

Funcin: Funcin lgica OR.

Descripcin: OR realiza la funcin lgica bit a bit entre los operados


A y B. Flags: Z

Bytes: 1

Ciclos de reloj: 3

Codificacin: 01 00 0111
HEX [47] Operaciones: (A)
(A) v (B)

DISEO DE UN COMPUTADOR INFORMTICA VIII CICLO


DISEO DE UN COMPUTADOR 30-11-2015

OUT addr4, a

Funcin: Escribe en un puerto I/O.

Descripcin: Copia el contenido del acumulador en el puerto de entrada/salida apuntada por


addr4. Bytes: 2

Ciclos de reloj: 4

HEX [3#]
Codificacin: 00 11 addr(3:0)
Operaciones: (addr4) (A)

POP A

Funcin: Extrae un dato de la pila y lo guarda en el acumulador.

Descripcin: POP extrae el dato, apuntado por SP, de la pila. Antes de la operacin, el puntero
SP se decrementa y posteriormente se obtiene un valor que se guarda en el
acumulador.

Bytes: 1

Ciclos de reloj: 3

HEX [13]
Codificacin: 00 01 0011
Operaciones: (SP) (SP) - 1
((SP)) (A)

POP B

Funcin: Similar a POP A, pero en este caso con el registro B.

Codificacin: 00 01 0100 HEX [14]


Operaciones: (SP) (SP) 1
((SP)) (B)

POP F
Funcin: Similar a POP A, pero en este caso con F.
Codificacin: 00 01 0101 HEX [15]
Operaciones: (SP) (SP) - 1
((SP)) (F)

PUSH A

Funcin: Guarda el contenido del acumulador en la pila.

Descripcin: PUSH guarda el contenido del acumulador en la posicin de la pila apuntado


por SP. Posteriormente incrementa el valor del puntero SP.

Bytes: 1

DISEO DE UN COMPUTADOR INFORMTICA VIII CICLO


DISEO DE UN COMPUTADOR 30-11-2015

Ciclos de reloj: 3

HEX [03]
Codificacin: 00 00 0011
Operaciones: ((SP)) (A)
(SP) (SP) + 1

PUSH B

Funcin: Similar a PUSH A, pero en este caso con el registro B.

Codificacin: 00 00 0100 HEX [04]


Operaciones: ((SP)) (B)
(SP) (SP) + 1

PUSH F

Funcin: Similar a PUSH A, pero en este caso con el registro F.

Codificacin: 00 00 0101 HEX [05]


Operaciones: ((SP)) (F)
(SP) (SP) + 1

RETI

Funcin: Retorna de una interrupcin.

Descripcin: RETI extrae de la pila la direccin de retorno. Al ser la direccin de 12 bits es


necesario realizar dos lecturas. Se habilita la posibilidad de nuevas interrupciones.

Bytes: 1

Ciclos de reloj: 6

Codificacin: 10 01 0001 HEX [91]

Operaciones: (SP) (SP) - 1

(PCh) ((SP))

(SP) (SP) - 1
(PCl) ((SP))
(IEN) 1

RLC

Funcin: Rotacin a al izquierda a travs del flag de C.

Descripcin: Los 8 bits del acumulador y el flag C son rotados 1 bit a la izquierda. El bit 7 se
mueve a C, y C pasa al bit 0.

Flags: C

DISEO DE UN COMPUTADOR INFORMTICA VIII CICLO


DISEO DE UN COMPUTADOR 30-11-2015

Bytes: 1

Ciclos de reloj: 3

Codificacin: 01 00 1011
HEX [4B] Operaciones: (An)
(An + 1)
(A0) (C)

(C) (A7)

RRC

Funcin: Rotacin a la derecha a travs del flag de C.

Descripcin: Los 8 bits del acumulador y el flag C son rotados 1 bit a la derecha. El bit 0 se
mueve a C, y C pasa al bit 7.

Flags: C

Bytes: 1

Ciclos de reloj: 3

Codificacin: 01 00 1100
HEX [4C] Operaciones: (An)
(An + 1)
(A7) (C)
(C) (A0)

SET C

Funcin: Pone a 1 el flag


C. Descripcin: SET pone a 1 el
flag C. Flags: C

Bytes: 1

Ciclos de reloj: 3

Codificacin: 01 11 1111
HEX [7E] Operaciones: (C)
1

SJMP rel

Funcin: Salto relativo.

DISEO DE UN COMPUTADOR INFORMTICA VIII CICLO


DISEO DE UN COMPUTADOR 30-11-2015

Descripcin: El control del programa salta incondicionalmente a la direccin relativa rel. La


direccin de salto se calcula como la suma de la direccin actual ms la
direccin relativa. Por lo tanto, la cobertura de este salto es de +128/-127.

Bytes: 2

Ciclos de reloj: 3

Codificacin: 10 00 1000 | rel HEX


[88][##] Operaciones: (PC) (PC) +
rel

SUBC A, B

Funcin: Resta con acarreo

Descripcin: SUBC substrae el contenido de los registros B y el flag C al contenido del


acumulador.

El resultado es depositado en A.

Flags: C, OV y Z

Bytes: 1

Ciclos de reloj: 3

Codificacin: 01 00 0001
HEX [41] Operaciones: (A)
(A) - (B) - (C)

XOR A, B

Funcin: Funcin lgica XOR.

Descripcin: XOR realiza la funcin lgica bit a bit entre los operados
A y B. Flags: Z

Bytes: 1
Ciclos de reloj: 3

Codificacin: 01 00 1000 HEX [48] Operaciones: (A) (A) (B)

DISEO DE UN COMPUTADOR INFORMTICA VIII CICLO


DISEO DE UN COMPUTADOR 30-11-2015

Formato de las instrucciones

Cada instruccin codificada en binario, contiene un nmero de campos que


ofrecen la informacin pertinente que necesita la Unidad de Control, para
ejecutar la instruccin en la CPU. Normalmente, el nmero de campos, la
anchura en bits y el nombre que recibe cada uno, suele variar de instruccin
a instruccin.

En nuestro caso, y buscando la mxima simplicidad, se ha estructurado


cada instruccin en un nmero de campos fijos y de ancho fijo que se han
denominado C1, C2 y C3. Por otro lado, es posible encontrar instrucciones
de 1 2 bytes. La siguiente figura resume la estructura del primer byte:

El significado de cada uno de los campos es variable, dependiendo en cada


momento del contexto de la instruccin que estemos interpretando. Esto es
debido, a lo limitado del nmero de bits disponibles para codificar, no siendo
posible establecer significados de carcter general y por lo tanto, es necesario
ir cambiando el significado de cada campo segn el caso.
Veamos en cualquier caso, ciertas ideas de carcter general que se han aplicado
a la hora de establecer los cdigos al juego de instrucciones

DISEO DE UN COMPUTADOR INFORMTICA VIII CICLO


DISEO DE UN COMPUTADOR 30-11-2015

El campo C1 (2 bits) es utilizado para realizar una primera divisin de las


instrucciones en grupos funcionales:
11 (MOV) Instrucciones de transferencias de datos con memoria.
10 (JMP) Instrucciones de control del flujo del programa, es decir,
todas aquellas que tenga que ver con saltos, llamadas a
subrutinas, etc.
01 (ALU) Instrucciones que en su ejecucin utilizan la ALU. En
este grupo se incluyen las instrucciones lgicas,
aritmticas y de manipulacin de banderas vistas con
anterioridad.
00 (MIX) Instrucciones de transferencias de datos con el exterior,
con la pila y algunas otras, que no pueden catalogarse
en alguno de los grupos anteriores.

Al lado de cada valor posible del C1, se ha aadido un nemotcnico que define
el sentido de cada grupo de instrucciones (MOV para las de transferencia, JMP
para las de salto, ALU para las que tiene relacin con la ALU y MIX al grupo de
las miscelneas). Vemos por lo tanto que C1, se comporta como una parte del
cdigo de operacin.
El campo C2 (2 bits) es el campo de significado ms variable. En algunos casos
se comporta como campo de destino, otras como indicador de modo de
direccin, otras como ampliacin del cdigo de operacin.
El campo C3 (4 bits), normalmente indica un cdigo de operacin, o bien,
alguna parte de una direccin en los modos directo, o la totalidad, en el modo
inmediato.

DISEO DE UN COMPUTADOR INFORMTICA VIII CICLO


DISEO DE UN COMPUTADOR 30-11-2015

Veamos a continuacin el significado de cada uno de los campos, segn la


instruccin o grupo de instrucciones:

De la tabla anterior, solo se comentara el significado y la manera de


codificar algunas de las informaciones.
addr4 Direccin de 4 bits. Va codificada en los bits de menor peso
de la instruccin.
addr8 Direccin de 8 bits. Va codificadas en el segundo byte.
addr12 Direccin de 12 bits. Los bits ms significativos de addr12
van codificados en los bits de menor peso de la
instruccin. El resto va en el segundo byte.
rel Direccin relativa. Va codificada en el segundo byte.
#dato Va codificado en el segundo byte.

DISEO DE UN COMPUTADOR INFORMTICA VIII CICLO


DISEO DE UN COMPUTADOR 30-11-2015

Mapa de distribucin de las instrucciones

Los Registros
El acumulador y el registro auxiliar B
La finalidad del acumulador y del registro auxiliar B, es la de servir de
buffer temporal de datos. Estos datos pueden proceder de distintas fuentes: las
memorias, de la ALU o del exterior.

Cuando RST esta activa se pone a 0 todo el registro. El circuito, almacenar el


dato presente en la entrada durante el flanco de subida de la seal de reloj,
siempre que la seal LOAD, est activa.

El registro de instruccin (IR)

La finalidad del registro de instruccin, es la de servir de buffer temporal


de una instruccin procedente de la memoria de programas. A nivel hardware,
es un registro idntico al acumulador.

DISEO DE UN COMPUTADOR INFORMTICA VIII CICLO


DISEO DE UN COMPUTADOR 30-11-2015

El registro de estado (STATUS)


La finalidad del registro de estado, es la de almacenar las banderas (C, Z
y OV) procedentes de la ALU. A nivel hardware, es un registro idntico al
acumulador con la particularidad de ser de 4 bits.
El contador de programa (PC)
La finalidad del contador de programa, es la de apuntar a la direccin de
memoria desde donde se va a extraer la prxima instruccin. Aunque las
direcciones son normalmente consecutivas, es posible que existan saltos
en esta secuencia. Dichos saltos, pueden ser absolutos o relativos al valor
que posea en ese momento el contador.

El registro de direccionamiento de memoria (MAR)

La finalidad del registro MAR, es la de servir de apoyo al PC en los momentos


en que se necesita acceder temporalmente una posicin de memoria, que
difiere de la disponible en el PC. Este hecho est normalmente asociado, al
uso de instrucciones de transferencia. Adicionalmente a esta funcin, MAR
tambin es utilizado como buffer temporal vinculado al PC.

Cuando se ejecuta una instruccin de transferencia es posible encontrarnos


con varios tipos de direcciones: addr4, add8 y addr12.

DISEO DE UN COMPUTADOR INFORMTICA VIII CICLO


DISEO DE UN COMPUTADOR 30-11-2015

Para comprender bien la relacin de MAR, con el resto de los bloques, es


importante recordar como vienen codificadas las direcciones antes
comentadas: addr4 se debe extraer de IR, addr8 de un segundo byte y
addr12 de IR y del segundo byte. Por este motivo, es necesario desglosar
el bus de direcciones de entrada en 2 bloques y disponer de 3 seales de
carga.
De este modo si se desea cargar una direccin:
addr4 Se activar LD4 y se cargarn los datos
presentes en ADDR_H(3:0).
addr8 Se activar LD8 y se cargarn los datos
presentes en ADDR_L(7:0).
addr12 Se activar LD12 y se cargarn los datos
presentes en ADDR_H(3:0) y en ADDR_L(7:0)

La carga de estos datos se realiza de manera sncrona. El dispositivo dispone


de una seal de RST asncrona que al ser activada pone el registro a 0.

En las instrucciones de salto, MAR tambin es utilizado para almacenar


temporalmente la direccin de salto, que posteriormente se cargar en el PC.

La Unidad Aritmtico Lgica (ALU)

La finalidad de la ALU es realizar operaciones de tipo lgico o aritmtico. Se


trata de un circuito combinacional, que realiza una operacin utilizando las
entradas A(7:0) y B(7:0) obtenindose el resultado en C(7:0). La operacin
a realizar se selecciona por medio de las seales de control CTRL(3:0).

Algunas operaciones, modifican alguno de las banderas (Carry, Zero y


Overflow). En estos casos, el resultado se presenta en FLAGS_OUT(3:0)
para su posterior escritura en el registro de estado. Por otra parte, hay
operaciones que precisan conocer el registro de estado para ser evaluadas.
La entrada de esta informacin se realiza va FLAGS_IN(3:0)

DISEO DE UN COMPUTADOR INFORMTICA VIII CICLO


DISEO DE UN COMPUTADOR 30-11-2015

Con 4 bits de control es posible realizar 16 operaciones. El cdigo elegido


para realizar cada una de las operaciones, est ntimamente relacionado
con el cdigo de operacin de las instrucciones aritmticos/lgicas.

Si analizamos el juego de las instrucciones del grupo lgico, aritmtico y


de flags correspondientes al tipo ALU, tal como ya comentamos al hablar de
los formatos de las instrucciones, veremos que el campo C3 coincide con el
cdigo de control de la ALU. De este modo, al decodificar la instruccin por
parte de la Unidad de Control, simplemente hay que asignar el contenido del
C3 directamente a las lneas de control de la ALU.
Veamos que operaciones realiza la ALU.

COD. NEMOTCNICO OPERACIN CARR ZERO OVERFLO


CTRL Y X
0000 ALU_OPC_ADD C= X W X
0001 ALU_OPC_SUB
C C= A-B-
A+B+CARRY_IN X X X
0010 C
ALU_OPC_INC_ CARRY_IN
C= A+1 - X -
0011 ALU_OPC_DEC
A C= A-1 - X -
0100 _A
ALU_OPC_INC_ C= B+1 - X -
0101 ALU_OPC_DEC
B C= B-1 - X -
0110 _B
ALU_OPC_AND C= A AND B - X -
0111 ALU_OPC_OR C= A OR B - X -
1000 ALU_OPC_XOR C= A XOR B - X -
1001 ALU_OPC_CLR C= 0 - 1 -
1010 _A
ALU_OPC_CPL C= NOT (A) - X -
1011 _A
ALU_OPC_RLC C(0)=CARRY_ X - -
_A IN C(7:1)=
A(6:0)
C(7)=CARRY_
1100 ALU_OPC_RRC IN C(6:0)= X - -
_A
1101 ALU_OPC_CLR A(7:1) - 0 - -
1110 _C
ALU_OPC_SET - 1 - -
1111 ALU_OPC_CPL
_C - NOT C - -
_C

DISEO DE UN COMPUTADOR INFORMTICA VIII CICLO


DISEO DE UN COMPUTADOR 30-11-2015

ALU_OPC_ADDC: Suma el contenido del registro A y B junto con el acarreo


disponible en el registro de estado (CARRY_IN).
ALU_OPC_SUBC: Resta el contenido del registro B junto con el acarreo
disponible en el registro de estado (CARRY_IN), del registro A.
ALU_OPC_INC_A: Incrementa el valor de A.

ALU_OPC_DEC_A: Decrementa el valor de A.


ALU_OPC_INC_B: Incrementa el valor de B.
ALU_OPC_DEC_B: Decrementa el valor de B.
ALU_OPC_AND: Realiza la operacin lgica AND entre A y B.
ALU_OPC_OR: Realiza la operacin lgica OR entre A y B.
ALU_OPC_XOR: Realiza la operacin lgica XOR entre A y B.
ALU_OPC_CLR_A: Pone el acumulador a 0.
ALU_OPC_CPL_A: Invierte el contenido del acumulador.
ALU_OPC_RLC_A: Desplaza el contenido del acumulador hacia la izquierda.

C 7 0

ALU_OPC_RRC_A: Desplaza el contenido del acumulador hacia la


derecha.

C 7 0

ALU_OPC_CLR_C: Pone la bandera de acarreo a 0.


ALU_OPC_SET_C: Pone la bandera de acarreo a 1.
ALU_OPC_CPL_C: Invierte el valor de la bandera de acarreo.
Tal como vemos en la Tabla 10, algunas operaciones modifican el
estado de las banderas. Las banderas existentes son:

CARRY: Se pone a 1 si el resultado de la operacin


genera un acarreo. En el caso de la suma y de la resta, podemos
considerar el acarreo como un 9 bit del resultado.
ZERO: Se pone a 1 si el resultado de la operacin es igual
a 0.
OVERFLOW: Se pone a 1 si el resultado de la operacin
genera un rebosamiento. El rebosamiento es til cuando se realiza
operaciones de suma o resta con signo. Se activa, cuando sumando dos
nmeros de un signo el resultado es del signo contrario. Algo similar ocurre
en la resta cuando debiendo esperar un resultado de un signo, se obtiene el
contrario.

DISEO DE UN COMPUTADOR INFORMTICA VIII CICLO


DISEO DE UN COMPUTADOR 30-11-2015

La Unidad de Control (UC)


La finalidad de la Unidad de Control (UC) es generar las seales de control
adecuadas que permitan coordinar las distintas partes de la CPU. El objetivo
de estas seales es la ejecucin de microoperaciones de procesado de la
informacin, resultado de la interpretacin de la instruccin.
El ncleo de la UC es una mquina de estados de tipo Mealy. Como toda
mquina de estados, dispone de una parte secuencial y una parte
combinacional tal como se puede observar en la siguiente figura:

La mquina arranca de un estado inicial marcado por la activacin de la seal


asncrona reset. A partir de ah, y coincidiendo con el flanco de bajada del
reloj, la mquina ir pasando de un estado a otro, en funcin de los valores
que vaya tomando la variable prximo estado (NS). El valor de dicha variable,
procedente de la parte combinacional, es una funcin de las entradas
externas y del valor de estado actual (CS)

DISEO DE UN COMPUTADOR INFORMTICA VIII CICLO


DISEO DE UN COMPUTADOR 30-11-2015

Descripcin de las seales

Veamos el significado de cada una de las seales de entrada, que van a


condicionar la evolucin del a mquina de estados:

CLK: Reloj.
RST: Reset asncrono.
IR(3:0): Bus procedente del registro de instruccin.
FLAGS(3:0): Bus procedente del registro de estado.
MODE(1:0): Indicador del modo de funcionamiento. Los tres
modos posibles son: ejecutar el programa en modo continuo, paso a paso o
bien, proceder a la carga de un programa en la ROM.
RISE_STROBE: Procedente del detector del flanco de subida de
la seal STROBE. Esta seal permite la sincronizacin en el modo paso a
paso (STEP) con el mundo exterior. La activacin de la misma, indica a la UC
que debe ejecutar otra instruccin.
WAIT_STATE: Indica a la mquina de estados, que debe esperar
por algn dispositivo que todava no ha terminado su trabajo. Estos
dispositivos son los de entrada/salida y las memorias. La espera se realiza
introduciendo ciclos de espera, repitiendo el estado actual.
IER: Seal procedente del registro de control de las
interrupciones. Su activacin le indica a la UC que hay una solicitud de
interrupcin.

Veamos ahora el significado de las seales de salida manejadas por la UC:

IO: Seleccin de un dispositivo de entrada/salida.


RAM_CE: Seleccin de la RAM.
ROM_CE: Seleccin de la ROM.
STACK_CE: Seleccin del STACK.

WE: Escritura/lectura.

DISEO DE UN COMPUTADOR INFORMTICA VIII CICLO


DISEO DE UN COMPUTADOR 30-11-2015

PC_RST: Reset del contador de programa (PC).


PC_UP: Incrementar PC en una unidad.
PC_LD: Cargar dato en el PC.
PC_REL: Sumar la direccin relativa presente en su
entrada, con el valor actual del contador.
E_PCUP: Habilita la seal PC_UP para que pueda contar.
A_LD: Cargar dato en el registro A.
B_LD: Cargar dato en el registro B.
F_LD: Cargar dato en el registro de FLAGS.
IR_LD: Cargar dato en el registro IR.
MAR_LD4: Cargar dato en el registro MAR en el modo addr4.
MAR_LD8: Cargar dato en el registro MAR en el modo addr8.
MAR_LD12: Cargar dato en el registro MAR en el modo addr12.
SC_UP: Incrementar el contador del STACK (SC).
SC_DOWN: Decrementar el SC.
HALT: Indica que el procesador est parado o a
ejecutado la instruccin HALT. En cualquier caso, el procesador se encuentra
detenido.
SNIF_RST: Reiniciar el bloque SNIFFER.
ENABLE_IER: Habilita interrupciones.
DISABLE_IER: Deshabilita interrupciones.
STATE(3:0): Muestra el estado en que se encuentra la UC.
ALU_CTRL(3:0): Seal de control de la ALU.
S_MUXn: Seleccin de la seal del multiplexor MUXn
E_MUXn: Habilita la salida del multiplexor MUXn en el
caso de los multiplexores triestado.
E_BUFn: Habilita la salida del buffer BUFn.

DISEO DE UN COMPUTADOR INFORMTICA VIII CICLO


DISEO DE UN COMPUTADOR 30-11-2015

El diagrama de estados

Toda mquina de estados, lleva asociado un diagrama de estados que indica


cmo se va a comportar dependiendo de las seales de entrada. Este
diagrama ha de contemplar por un lado la ejecucin de las distintas
instrucciones y por otro lado, las mejoras que se han introducido al diseo
como son, la ejecucin paso a paso, continuo y carga de la memoria ROM.

La ejecucin de una instruccin est estructurada en una serie de fases bsicas


que podemos resumir:

FETCH: Fase de bsqueda de la instruccin. La UC genera


las seales de control que va a permitir cargar una instruccin procedente de
la ROM, en el registro de instruccin.
DECODE: Fase de decodificacin y lectura de operandos.
EXECUTE: Fase de ejecucin. Con los datos de IR y la
lectura de operandos adicionales se procede a la ejecucin de la instruccin,
mediante la generacin de las seales de control pertinentes.

Aunque en la mayora de los casos, estos tres estados son suficientes, algunas
instrucciones por su complejidad precisan de un mayor nmero de estados. En
concreto aquellas instrucciones relacionadas con direccionamientos indexados
(MOV/X A,@B), o con tratamiento de subrutinas pertenecen a este tipo (CALL,
RET y RETI). Para dar soporte a estas instrucciones, se ha ampliado el grafo
con los siguientes estados:

STORE: Utilizado por las instrucciones con


direccionamiento indexado.
SUBR1 3: Utilizado por la instrucciones con llamadas y retorno
de subrutinas.
Al margen de la ejecucin de las instrucciones, la mquina de estado debe dar
soporte a las interrupciones, a los distintos modos de ejecucin y a la carga de
programas. Ello implica un mayor nmero de estados:

RESET: Estado inicial de arranque al partir del cual se


DISEO DE UN COMPUTADOR INFORMTICA VIII CICLO
DISEO DE UN COMPUTADOR 30-11-2015

bifurca en funcin del valor de la seal MODE(1:0). Esta seal va a


condicionar o bien, los modos de ejecucin o bien pasar a modo de carga
de programa en ROM.
ERROR: Estado que alcanzar la mquina de estados en
el caso de tener que interpretar una instruccin no soportada.
STOP: Estado que alcanzar la mquina de estados al
interpretar la instruccin HALT.
END_CYCLE: Cada vez que una instruccin termina su ejecucin
pasar a este estado, salvo que se trate de la instruccin HALT.
Dependiendo del modo de ejecucin, se puede continuar ejecutando
instrucciones, o bien esperar por la seal de sincronizacin STROBE. Si
las interrupciones estn habilitadas, stas son procesadas a partir de este
punto.
INT1 4: Estados implicados en la atencin a una interrupcin.
LOAD1 6: Si la seal MODE(1:0) esta en modo LOAD, esto
le indica a la mquina de estados que debe ponerse en modo carga de
programa. La mquina evolucionar a lo largo de todos estos estados
hasta terminar la carga, donde la UC deber ser reiniciada.

En cada uno de estos estados, las seales de salida van adoptando distintos
valores que permiten la ejecucin de las distintas microinstrucciones en que
se divide la instruccin, o bien los procesos antes reseados de carga y
ejecucin. Dado que este apartado es de vital importancia para entender el
funcionamiento del procesador, vamos a posponerlo y representar
nicamente, de manera grfica, la mquina de estado mostrando la
interconexin entre los distintos estados, as como, las seales implicadas

DISEO DE UN COMPUTADOR INFORMTICA VIII CICLO


DISEO DE UN COMPUTADOR 30-11-2015

RESET

&

&

SUBR1

SUBR2

SUBR3

&

MODE=STEP & STROBE=0

INT1 INT2 INT3 INT4

DISEO DE UN COMPUTADOR INFORMTICA VIII CICLO


DISEO DE UN COMPUTADOR 30-11-2015

CONCLUSIONES

Como resultado, es posible concluir que El diseo elaborado de nuestro


computador va de acuerdo a lo estudiado en clase. Esto debido a los
factores que fueron mencionados en los objetivos (Arquitectura,
Organizacin)

Nuestro computador ha sido diseado con la arquitectura adecuada


tomando los puntos ms importantes.

El correcto diseo y funcionalidad de un computador depende de los


recursos que utilices en la elaboracin del mismo.

DISEO DE UN COMPUTADOR INFORMTICA VIII CICLO


DISEO DE UN COMPUTADOR 30-11-2015

BIBLIOGRAFIA
Michel A.Lynch. Microprogrammed state machine design. CRC Press,
cop. 1993.
David A. Patterson, Jhon L. Hennessy . Estructura y diseo de
computadores.
Editorial Revert, S.A. 2000.
J. Frutos Redondo, R.Rico Lpez. Arquitectura de computadores.
Servicio de publicaciones de la universidad de Alcal de Henares. 1995.
M. Morris Mano. Ingenieria computacional: Diseo del hardware.
Prentice-Hall International, 1983.

DISEO DE UN COMPUTADOR INFORMTICA VIII CICLO

Potrebbero piacerti anche