Documenti di Didattica
Documenti di Professioni
Documenti di Cultura
DISEO DE UN COMPUTADOR
Curso: Microcomputadoras II
Tema:
Diseo de un computador
Estudiantes
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
INTRODUCCION
Los Autores.
OBJETIVOS
Objetivo General
Objetivos especficos
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.
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 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.
Registros auxiliares
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:
Instrucciones
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.
Interrupciones
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.
Especificaciones generales
El juego de Instrucciones
Transferencias de datos
Operaciones aritmticas
Operaciones lgicas
Flujo de programa
ACALL addr12
Bytes: 2
Ciclos de reloj: 6
ADDC A, B
Flags: C, OV y Z
Bytes: 1
Ciclos de reloj: 3
Codificacin: 01 00 0000
HEX [40] Operaciones: (A)
(A) + (B) + (C)
AJMP addr12
Bytes: 2
Ciclos de reloj: 3
AND A, B
Descripcin: AND realiza la funcin lgica bit a bit entre los operados
A y B. Flags: Z
Bytes: 1
Ciclos de reloj: 3
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
Bytes: 1
Ciclos de reloj: 3
Codificacin: 01 00 1001
HEX [7D] Operaciones: (C)
0
CPL A
Bytes: 1
Ciclos de reloj: 3
Codificacin: 01 00 1010
HEX [4A]
CPL C
Bytes: 1
Ciclos de reloj: 3
Codificacin: 01 00 1111
HEX [7F]
DEC A
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]
DEC B
HALT
Descripcin: HALT detiene la ejecucin del procesador. Solo es posible salir de este
estado activando la seal reset del procesador.
Bytes: 1
Ciclos de reloj: 2
IN A, addr4
Ciclos de reloj: 3
Codificacin: 00 10 addr(3:0)
HEX [2#] Operaciones: (A)
(addr4)
INC A
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]
INC B
IOF
Ciclos de reloj: 2
ION
Ciclos de reloj: 2
Codificacin: 00 00 0001
HEX [01] Operaciones:
(IEN) 1
JC rel
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
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
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
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
Ciclos de reloj: 2
MOV A, @B
Bytes: 1
Ciclos de reloj: 4
MOV A, addr8
Bytes: 2
Ciclos de reloj: 3
MOV addr8, A
Bytes: 2
Ciclos de reloj: 3
MOV addr8, B
MOV B, #dato
MOV B, addr8
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.
MOVX A, addr12
Bytes: 2
Ciclos de reloj: 3
NOP
Funcin: No operacin.
Ciclos de reloj: 2
Codificacin: 00 00 0000
HEX [00] Operaciones:
(PC) (PC) + 1
OR A, B
Bytes: 1
Ciclos de reloj: 3
Codificacin: 01 00 0111
HEX [47] Operaciones: (A)
(A) v (B)
OUT addr4, a
Ciclos de reloj: 4
HEX [3#]
Codificacin: 00 11 addr(3:0)
Operaciones: (addr4) (A)
POP A
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
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
Bytes: 1
Ciclos de reloj: 3
HEX [03]
Codificacin: 00 00 0011
Operaciones: ((SP)) (A)
(SP) (SP) + 1
PUSH B
PUSH F
RETI
Bytes: 1
Ciclos de reloj: 6
(PCh) ((SP))
(SP) (SP) - 1
(PCl) ((SP))
(IEN) 1
RLC
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
Bytes: 1
Ciclos de reloj: 3
Codificacin: 01 00 1011
HEX [4B] Operaciones: (An)
(An + 1)
(A0) (C)
(C) (A7)
RRC
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
Bytes: 1
Ciclos de reloj: 3
Codificacin: 01 11 1111
HEX [7E] Operaciones: (C)
1
SJMP rel
Bytes: 2
Ciclos de reloj: 3
SUBC A, B
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
Descripcin: XOR realiza la funcin lgica bit a bit entre los operados
A y B. Flags: Z
Bytes: 1
Ciclos de reloj: 3
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.
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.
C 7 0
C 7 0
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.
WE: Escritura/lectura.
El diagrama de estados
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:
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
RESET
&
&
SUBR1
SUBR2
SUBR3
&
CONCLUSIONES
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.