Anda di halaman 1dari 37

UNIVERSIDAD NACIONAL DE SAN ANTONIO ABAD DEL CUSCO

FACULTAD DE INGENIERA, ELCTRICA, ELECTRNICA,


INFORMTICA Y MECNICA
ESCUELA PROFESIONAL DE INGENIERA INFORMTICA Y DE
SISTEMAS

Implementacin de la operacin de divisin en una CPU con


una unidad de control microprogramada

Curso:
Microprocesadores

Docente:
Mg. Carrasco Poblete, Edwin

Alumnos: Cdigos:
Delgado Moscoso Angela 143831
Alanya Pantoja Jos Antonio 144997

Cusco-Per
2017
CONTENIDO
Introduccin ........................................................................................................................................4
Captulo I ASPECTOS GENERALES .....................................................................................................5
1.1 Presentacin..............................................................................................................................5
1.2 Objetivo General .......................................................................................................................5
1.3 Objeticos Especficos .................................................................................................................5
1.4 Delimitaciones...........................................................................................................................5
1.5 Limitaciones ..............................................................................................................................5
Captulo II MARCO TEORICO ............................................................................................................6
2.1 Unidad Central de Procesamiento ............................................................................................6
2.1.1 Unidad de Control Microprogramada ................................................................................7
2.2 Simulador ..................................................................................................................................8
Captulo III DESARROLLO DEL PROYECTO.........................................................................................9
3.1 Descripcin del Algoritmo .........................................................................................................9
3.2 Buses de Datos y Direccin .....................................................................................................10
3.2.1 Bus de Datos.....................................................................................................................10
3.2.2 Bus de Direcciones ...........................................................................................................11
3.3 Unidad de Control ...................................................................................................................12
3.3.1 Micromemoria .................................................................................................................12
3.3.2 Multiplexor de condiciones ..............................................................................................13
3.3.3 Multiplexor de direcciones ..............................................................................................15
3.3.4 Contador de programa .....................................................................................................16
3.3.5 Registro sincronizador......................................................................................................17
3.3.6 Habilitador de paso de seal ............................................................................................19
3.3.7Registro desplazamiento - Inicio Fin del programa...........................................................19
3.4 Unidad de Proceso ..................................................................................................................21
3.4.1 Registros A y B ..................................................................................................................21
3.4.2 Registro C .........................................................................................................................23
3.4.3 Multiplexor 1 ....................................................................................................................23
3.4.4 Multiplexor 2 ....................................................................................................................24
3.4.5 Multiplexor del contador .................................................................................................25
3.4.6 Registro de desplazamiento .............................................................................................26
3.4.7 Contador ..........................................................................................................................28
3.4.8 Multiplexor de seleccin ..................................................................................................29
3.4.9 Registro desplazamiento Registro D ................................................................................29

2
3.4.10 Unidad aritmtico lgica ................................................................................................30
3.4.11 Control de Operacin ALU .............................................................................................31
3.5 CPU implementado .................................................................................................................33
3.6 Microprograma .......................................................................................................................34
3.7 Instrucciones adicionales ........................................................................................................35
CONCLUSIONES .................................................................................................................................36
RECOMENDACIONES .........................................................................................................................36
BIBLIOGRAFIA ....................................................................................................................................37

3
Introduccin
La utilizacin de las matemticas forma parte de nuestra vida cotidiana, desde el manejo de
operaciones bsicas hasta operaciones ms complejas. Entonces, para que estas tengan una
utilizacin prctica se dio paso a la implementacin en mquinas que pasaron desde tubos de
vaco hasta lo que ahora conocemos como circuitos a nivel microscpico que permiten la solucin
a una gran variedad de problemas de lgica secuencial y combinacional.

Actualmente los procesadores se valen de las operaciones matemticas sencillas para poder
ejecutar instrucciones mandadas por el usuario. Operaciones matemticas como la suma o la
resta son usadas para realizar operaciones ms complejas como la multiplicacin o la divisin.
En este trabajo se implementa la operacin de la divisin usando el algoritmo de divisin sin
restauracin sobre una base que en un principio contena operaciones de suma y multiplicacin.

4
Captulo I ASPECTOS GENERALES

1.1 Presentacin
El presente informe detalla la implementacin de la operacin de divisin sobre un diseo previo
que contena operaciones de suma y multiplicacin de 4 bits. La operacin de divisin se realiza
usando el algoritmo de divisin sin restauracin con un dividendo de 8 bits y un divisor de 4 bits.
Toda la implementacin del presente trabajo se realiz utilizando el software: Proteus
Professional 8 y para dar lectura y escritura de las lneas del microprograma se utiliz: Hex
Editor Neo.

La ejecucin de esta operacin hace uso de los registros A y B (dividendo, divisor) que se
encuentran construidos en el diseo inicial. El resultado(Cociente) se muestra en el registro D.
Todo el proceso de diseo e implementacin fue realizado completamente por nosotros haciendo
uso de conocimientos adquiridos en los cursos de microelectrnica, arquitectura del computador
y microprocesadores.

1.2 Objetivo General


El objetivo del presente trabajo es la implementacin de la operacin de la divisin en una unidad
de procesamiento cuyo diseo inicial contena las operaciones de suma y multiplicacin.

1.3 Objeticos Especficos


-Entender el diseo inicial de la unidad central de procesamiento
-Implementar un algoritmo de divisin de un registro de 8 bits con uno de 4 bits
-Disear el microprograma
-Implementar la unidad central de procesamiento con nuevos componentes electrnicos
necesarios para implementacin de la divisin.

1.4 Delimitaciones
La divisin puede realizarse de distintas maneras como: restas sucesivas, divisin con restauracin
y sin restauracin, etc. El presente proyecto se enfoca en la implementacin de la divisin
reutilizando los componentes de la suma y multiplicacin e incluyndose en nuestros
requerimientos la operacin de sustraccin.

1.5 Limitaciones
-EL proyecto se ve limitado al uso de los circuitos integrados y componentes ofrecidos por la
plataforma de simulacin.
-Contamos con tiempo reducido para el diseo, desarrollo, implementacin y pruebas.

5
Captulo II MARCO TEORICO

2.1 Unidad Central de Procesamiento


La CPU de un computador es el cerebro de la computadora, encargado de ejecutar programas
almacenados en la memoria principal recuperando las instrucciones, examinndolas, y luego
ejecutndolas una tras otra. Los componentes estn conectados por un BUS, que es una coleccin
de cables paralelos usados para la transmisin de direcciones, datos y seales de control.
La CPU est compuesta de diferentes partes:
Memoria: usado para guardar resultados temporales, compuesta de un nmero de registros,
donde cada registro puede contener un nmero determinado por el tamao de este para la
ejecucin correcta de los diferentes procesos, pueden ser accesados para lectura o escritura a alta
velocidad. (Entre los registros importantes tenemos el Program Counter (PC) y el Registro de
Instruccin(IR)).

Unidad aritmtico lgica: Realiza las operaciones aritmticas como la suma, operacin booleana
AND que son necesarias para llevar a cabo las instrucciones.

Unidad de control: Es la responsable de extraer las instrucciones de la memoria principal y


determinar su tipo. [1]

Figura 2.1. Organizacin simple de un computador con una CPU y dos perifricos. [1]

6
2.1.1 Unidad de Control Microprogramada
La unidad de control microprogramada se encarga de interpretar y ejecutar las instrucciones
almacenadas en la memoria principal y genera las seales de control necesarias para ejecutarlas.
Sus aspectos son:
Tareas:
o Secuenciamiento de las micro-instrucciones

o Ejecucin de los microprogramas


Elementos:
o Buses de datos y direccin: Se encargan de transportar los datos de ingreso tales como las
instrucciones, operandos y las direcciones que se ejecutaran secuencialmente de acuerdo al
proceso en ejecucin.

o Unidad de control: Contiene la memoria de control, donde se almacenan los microprogramas


(saltos, condiciones, controles) que determinaran y mandaran las seales de control necesarias
para la realizacin de los procesos, se retroalimenta para determinar los siguientes
microprogramas a ser ejecutados.

o Unidad de proceso: Contiene el ALU (unidad aritmtico lgica) que se encarga de realizar las
operaciones aritmticas, adems de contener los registros de los operandos, buffers temporales y
dems registros necesarios para el control y feedback de la unidad de control.
Secuenciamiento: El secuenciamiento de la unidad de control se da por incremento de la
direccin actual o por salto condicional dependiendo del feedback que proporcione el
microprograma en ejecucin.

7
Organizacin: El siguiente diagrama muestra una organizacin simple de una unidad de
control.

Figura 2.2. Diagrama de organizacin de una unidad de control. Fuente: Anterior Informe

2.2 Simulador
Para el desarrollo del proyecto utilizamos el programa Proteus Professional 8, que permite un
completo entorno de diseo para realizar todas las tareas de diseo de circuitos electrnicos,
tales como: dibujo de esquemas de circuitos, simulacin interactiva de circuitos analgicos,
digitales y con microcontroladores, con animacin en tiempo real adems de diseo de circuitos
impresos. Cuenta con una extensa librera de componentes genricos y
especficos.(http://intron.blogspot.es/1448652854/uso-de-proteus-profesional-8/)

8
Captulo III DESARROLLO DEL PROYECTO
3.1 Descripcin del Algoritmo

9
3.2 Buses de Datos y Direccin

3.2.1 Bus de Datos


El bus de datos se emplea para la escritura en los registros de propsito general A
y B. Se utilizan tribuffers para evitar el cruce de informacin entre el registro
interno C y los posibles datos entrantes. A continuacin, veremos un esquema del
bus. [2]

Figura 3.1. Buses de entrada de datos, RegA y RegB. Fuente: Propia

10
3.2.2 Bus de Direcciones
El bus de direcciones se utiliza para el direccionamiento de los algoritmos
implementados en la micromemoria. A continuacin, veremos un esquema del bus.

Se increment un bit al bus de direcciones ya que era necesario para poder


incrementar la operacin de la divisin.

Figura 3.2. Buses de direccionamiento. Fuente: Propia

11
3.3 Unidad de Control
La unidad de control indica al camino de datos lo que tiene que hacer, cada ciclo de reloj,
durante la ejecucin de las instrucciones. [3]

En un caso ms general, es un componente muy importante de la CPU que dirige las


operaciones aritmticas del procesador y dirige a la memoria, ALU y los dispositivos de
entrada/salida cmo responder a las instrucciones de un programa [4]

3.3.1 Micromemoria
Utiliza cuatro memorias EPPROM 2732 de ocho bits, haciendo un total de 32 bits siendo
el tamao necesario para almacenar el microprograma de las operacin de suma,
multiplicacin y divisin.

Figura 3.3. Micromemoria de la unidad de control conformada por 4 memorias EPROM. Fuente:
Propia

12
2732 (UV - EPROM-8bits)

Pin Detalle

A0 - A11 Entrada de datos

E Entrada de habilitacin

G/VPP Habilitador de salida / Entrada de programacin +25 V

DQ0 -

DQ7 Salida de datos

VCC Fuente de alimentacin

VSS Tierra

3.3.2 Multiplexor de condiciones


El multiplexor de condiciones 4512. Encargado de controlar los saltos de acuerdo a las
condiciones dictadas por el microprograma que son enviadas a travs de la unidad de
proceso. Ms especficamente el PSW (Program Status Word). [2]

Figura 3.4. Multiplexor de condiciones. Fuente: Propia

13
4512 (Multiplexor de 8 canales)

Pin Detalle

D0 - D7 Canales de entrada

A,B,C Controles de seleccin

INH Inhibidor

-OE Deshabilitador

Y Seleccionador de salida

14
3.3.3 Multiplexor de direcciones
El multiplexor de direcciones 74157. Encargado de controlar si se realiza un salto o se
utiliza el program counter. [2]

Figura 3.5. Multiplexor de direcciones. Fuente: [2]

74157 (Multiplexor cudruple 2 a 1)

Pin Detalle

nA, nB Entrada de datos

-A, B Selectores de Entrada

-E Habilitador de salida

nY Salida de datos

74157 (Multiplexor cudruple 2 a


1)

-A/B Na nB -E Y

X X X 1 0

0 1 X 0 1

0 0 X 0 0

1 X 1 0 1

1 X 0 0 0

15
3.3.4 Contador de programa
Registro contador 74161 de cuatro bits, se puede cargar informacin en l y empezar la
cuenta desde el mismo o restaurarlo (valor 0) y empezar a contar. [2]

Figura 3.6. Contador de programa. Fuente: [2]

74161 (Contador - 14 -sncrono de 4 bits de alta velocidad)

Pin Detalle

ENP Habilitador de conteo en paralelo

ENT Habilitador de conteo por hilo

CLK Reloj

LOAD Habilitador de lectura en paralelo

MR Reset principal

Q0 - Q3 Salida del contador

D0 - D3 Entrada del contador

16
74161 (Contador sncrono de 4 bits de alta velocidad)

MR LOAD ENT ENP Instruccin

0 X X X Resetear contador

1 0 X X Cargar D0 D3

1 1 1 1 Incrementar contador

1 1 0 X Detener contador

1 1 X 0 Detener contador

3.3.5 Registro sincronizador


Registro 74173 encargado de sincronizar la informacin de las direcciones que vienen
del program counter o de las direcciones de salto. [2]

Figura 3.7. Registro sincronizador. Fuente: [2]

17
74173 (Registro de 4 bits)

Pin Detalle

D0 - D3 Entrada de datos

CLK Reloj

OE1,OE2 Habilitadores de Salida

E1, E2 Habilitadores de Lectura

MR Reset de memoria

74173 (Registro de 4 bits)

OE1,OE2 E1,E2 MR Instruccin

X X 1 Resetea la salida

1 X X Inhabilita la salida

0 0 0 Lee datos de entrada

0 1 0 Guarda datos de entrada

18
3.3.6 Habilitador de paso de seal
Habilitador de paso de seal. Se utilizan tribuffers para evitar un corto circuito por el cruce
de la seal del bus de direcciones con el direccionamiento de la micro memoria. [2]

Figura 3.8. Tribuffers habilitadores de seal. Fuente: Propia

3.3.7Registro desplazamiento - Inicio Fin del programa


Registro desplazamiento controla el inicio del algoritmo de divisin o el trmino del mismo.

Figura 3.17 Registro desplazador de 8 bits. Fuente: Propia

19
Figura 3.9. Diagrama de la unidad de control implementada. Fuente: Propia

20
3.4 Unidad de Proceso
La unidad de proceso o procesamiento se encarga de ejecutar las tareas que le encomienda
la unidad de control. [5]

La implementacin en el presente caso, al igual que la unidad de control se acopla al diseo


presentado adquirido como base.

Los componentes requeridos para la implementacin son:

3.4.1 Registros A y B
Se utiliz dos registros 74173 de cuatro bits para A y uno para B. El motivo es que cuando
se realice la multiplicacin, se desea que el resultado se guarde en el registro A.

Registro A Registro B

Figura 3.10. Registros de 8 bits para A y de 4 bits para B. Fuente: Propia

74173 (Registro de 4 bits)

Pin Detalle

D0 - D3 Entrada de datos

CLK Reloj

OE1,OE2 Habilitadores de Salida

E1, E2 Habilitadores de Lectura

MR Reset de memoria

21
74173 (Registro de 4 bits)

OE1,OE2 E1,E2 MR Instruccin

X X 1 Resetea la salida

1 X X Inhabilita la salida

0 0 0 Lee datos de entrada

0 1 0 Guarda datos de entrada

22
3.4.2 Registro C
Tambin se requiri dos registros 74173. Este fue utilizados a manera de registro
temporal a conveniencia.

Figura 3.11. Registro de 8 bits para C. Fuente: Propia

3.4.3 Multiplexor 1
Multiplexor ctuple dos a uno. Se utiliz dos multiplexores cudruples dos a uno
74157.

Recibe como entrada el registro A o 0. Para la parte de suma en el algoritmo.

74157 (Multiplexor cudruple 2 a 1)

Pin Detalle

nA, nB Entrada de datos

-A, B Selectores de Entrada

-E Habilitador de salida

nY Salida de datos

23
74157 (Multiplexor cudruple 2 a
1)

-A/B Na nB -E Y

X X X 1 0

0 1 X 0 1

0 0 X 0 0

1 X 1 0 1

1 X 0 0 0

3.4.4 Multiplexor 2
Multiplexor ctuple dos a uno. Este se utiliz para operar con el registro de
desplazamiento (algoritmo de multiplicacin) o con el registro B (algoritmo de la
suma).

Figura 3.13. Multiplexor 2. Fuente: Propia

24
3.4.5 Multiplexor del contador
Multiplexor doble cuatro a uno. Un multiplexor 74153 para decidir la operacin
segn los bits de B correspondientes al contador.

Figura 3.14. Multiplexor del contador. Fuente: [2]

74153 (Multiplexor dual 4 a 1)

Pin Detalle

D0 - D1 (x2) Entrada de datos

A, B Selectores de Entrada

-(1E, 2E) Selector de Salida 1, 2

1Y, 2Y Salida de datos

25
74153 (Multiplexor dual 4 a 1)

B A D0 D1 D2 D3 -E Y

X X X X X X 1 0

0 0 0 X X X 0 0

0 0 1 X X X 0 1

0 1 X 0 X X 0 0

0 1 X 1 X X 0 1

1 0 X X 0 X 0 0

1 0 X X 1 X 0 1

1 1 X X X 0 0 0

1 1 X X X 1 0 1

3.4.6 Registro de desplazamiento


Registro de desplazamiento 74199 encargado de generar desplazamientos a la
izquierda a la informacin guardada en el registro, segn el controlador proveniente
de la unidad de control.

Figura 3.15. Registro de desplazamiento (Shift). Fuente:


Propia

26
74199 (REGISTRO DE DESPLAZAMIENTO-8bits)

Pin Detalle

D0 - D7 Entrada de datos

Q0 - Q7 Salida de datos

-MR Habilitador de escritura(1)

S/L Shift izquierda(1) / Load (0)

CLK Reloj

CINH Inhabilitador de desplazamiento(1)

74199 (REGISTRO DE DESPLAZAMIENTO-8bits)

-
CIN
S/L H

MR Instruccin

1 0 x Escritura de datos de entrada

1 1 0 Desplazamiento hacia la izquierda

1 1 1 Inhabilita el shifter guardando el estado actual

0 x x Borra todos los datos de salida

27
3.4.7 Contador
Contador 74LS590 encargado de contar para decidir el bit de B que ser evaluado
para la condicin.

Figura 3.16. Contador de 8 bits. Fuente: [2]

28
3.4.8 Multiplexor de seleccin
Multiplexor de seleccin 74157 de 8 bits. Selecciona entre el registro A o el registro B
para la entrada del ALU.

Figura 3.18 Multiplexor de 8 bits. Fuente: Propia

3.4.9 Registro desplazamiento Registro D


Realiza el desplazamiento hacia izquierda con bit 0 o bit 1. Usado para mostrar el
cociente de la divisin.

Figura 3.19 Multiplexor de 8 bits. Fuente: Propia

29
3.4.10 Unidad aritmtico lgica
Unidad Aritmtico-Lgica de ocho bits. Se utiliz dos ALU 74LS181 de cuatro bits
cuyo cdigo de suma es 1001. Encargado de sumar los datos para efectuar el
algoritmo.

Figura 3.17. Unidad aritmtico lgica (ALU). Fuente: [2]

74181 (Unidad aritmtico lgica de 4 bits)

Pin Detalle

A0 - A3 Entrada de operandos

B0 - B3 Entrada de operandos

F0 - F3 Salida de funciones

S0 - S3 Seleccin de funcin de entrada

CN Entrada de acarreo

M Modo de control de entrada

A=B Salida de comparador

CN+4 Salida de acarreo

G Acarreo genera salida

P Acarreo propaga salida

30
3.4.11 Control de Operacin ALU
Si se desea realizar la operacin de resta se procede a invertir los valores de la
seleccin de operacin del ALU.

Figura 3.17. Unidad de seleccin de operacin (Suma-Resta) Fuente:


Propia

31
Figura 3.18. Diagrama de la unidad de proceso implementada. Fuente: Propia

32
3.5 CPU implementado

33
3.6 Microprograma

Multiplicacin Suma

34
3.7 Instrucciones adicionales
Los cdigos que se muestran son los utilizados para las operaciones respectivas. Se elimin el
bit C3 ya que era necesario ocupar su lugar con otras condiciones de salto ms importantes.

DIVISION MULTIPLICACION SUMA

35
CONCLUSIONES
Implementar una CPU con varias operaciones matemticas requiere no solo de
conocimientos de programacin sino de conocimientos de manipulacin de bits y
electrnica bsica.
Una unidad de control microprogramada es ms difcil de disear e implementar, pero
resulta mucho ms verstil y fcil de alterar que una unidad de control cableada.
El algoritmo de divisin requiere de ms saltos que el de multiplicacin haciendo que la
escritura del microprograma sea una tarea ms laboriosa, ya que depende el octavo bit
del shift de A para realizar la operacin de adicin o sustraccin.
El algoritmo de multiplicacin por desplazamiento y sumas sucesivas prueba ser eficiente
y fcil de implementar, ya que no necesitamos acarrear resultados como en un modelo
de multiplicacin clsico.
A pesar de ser un modelo muy bsico, y el nivel de dificultad muy bajo, tom mucho
tiempo implementar las partes y combinarlas.

RECOMENDACIONES
La transicin entre estados suele dar avisos de error en la simulacin y en ocasiones
puede borrar datos inesperadamente de los registros. La solucin a esto es usar
resistencias pull-up y pull-down para evitar este tipo de errores.
El uso de las hojas de datos de cada componente es muy necesario para la manipulacin
del mismo ya que un error en alguna de estas podra causar datos errneos.
Se requiere bastante detalle y cuidado al realizar la configuracin de las memorias de
control (EPROM) para obtener los resultados deseados, ya que, al tratarse de comandos
binarios en ocasiones muy extensos, es muy fcil el cometer errores de escritura.

En la implementacin, el uso de los componentes debe ser muy claro y en lo posible estar
documentado. Esto ayuda a una buena composicin entre ellos.

36
BIBLIOGRAFIA

[1] A. Tanenbaum y T. Austin, Structured Computer Organization, New Jersey: Pearson


Education, 2013.

[2] I. Campos Ardiles, R. R. Flores Gonzalez y J. Len Malpartida, Diseo de un multiplicador


y sumador de dos nmeros de cuatro bits en una CPU con Unidad de Control
Microprogramada, Cusco, 2017.

[3] J. L. Hennessy y D. A. Patterson, ARQUITECTURA DE COMPUTADORES un enfoque


cuantitativo, Madrid: McGRAW-HILL, 2002.

[4] A. Barkalov, Logic synthesis for FSM based control units, Berlin: springer, 2009.

[5] R. Winiewski, Synthesis of compositional microprogram control units for programmable


devices, Zielona Gra, 2009.

[6] a. datasheet, all datasheet, 1 1 2017. [En lnea]. Available:


http://www.alldatasheet.com/datasheet-pdf/pdf/129050/FAIRCHILD/2732.html. [ltimo
acceso: 01 07 2017].

[7] alldatasheet, alldatasheet, 1 1 2017. [En lnea]. Available:


http://www.alldatasheet.es/datasheet-pdf/pdf/7827/NSC/74153.html. [ltimo acceso: 01
07 2017].

[8] nxp, nxp, 01 01 2017. [En lnea]. Available:


http://www.nxp.com/documents/data_sheet/74HC590.pdf. [ltimo acceso: 01 07 2017].

[9] alldatasheet, alldatasheet, 01 01 2017. [En lnea]. Available:


http://www.alldatasheet.es/datasheet-pdf/pdf/84889/TI/74199.html. [ltimo acceso: 01
07 2017].

37

Anda mungkin juga menyukai