Você está na página 1de 27

UNIVERSIDAD NACIONAL DE SAN ANTONIO ABAD DEL CUSCO

FACULTAD DE INGENIERÍA, ELÉCTRICA, ELECTRÓNICA, INFORMÁTICA Y MECÁNICA

ESCUELA PROFESIONAL DE INGENIERÍA INFORMÁTICA Y DE SISTEMAS

OPTIMIZACIÓN DEL PROYECTO DE IMPLEMENTACIÓN DE UN PROCESADOR


BÁSICO

Asignatura : Microprocesadores

Docente : Mg. Carrasco Poblete, Edwin

Integrantes : Código:

- Cornejo Pillco, Javier Jail 155193


- Ortogorin Condori, Lisbeth 130348

SEMESTRE 2018-I

CUSCO-PERÚ
Contenido
PRESENTACIÓN .........................................................................................................................3
INTRODUCCIÓN .........................................................................................................................4
Capítulo 1 - ASPECTOS GENERALES .....................................................................................4
1.1 Objetivo General ................................................................................................................4
1.2 Objetivos Específicos ........................................................................................................4
1.3 Delimitaciones ....................................................................................................................5
1.4 Limitaciones...................................................................................................................5
Capítulo 2 - MARCO CONCEPTUAL .........................................................................................6
2.1 Unidad Central de Procesamiento....................................................................................6
2.1.1 Unidad de Control Microprogramada ........................................................................6
2.2 Simulador............................................................................................................................7
Capítulo 3 – DESARROLLO DEL PROYECTO ........................................................................9
3.1 Algoritmos...............................................................................................................................9
3.2 Operaciones Lógicas Implementadas ................................................................................ 10
3.3 Descripción de las modificaciones en los circuitos de las operaciones
aritmético – lógicas. ............................................................................................................ 13
3.4 Unidad de control ............................................................................................................. 14
3.4.1 Micromemoria............................................................................................................ 14
3.4.2 Registro de desplazamiento Inicio – Fin de programa .......................................... 15
3.5 Unidad de Procesos ........................................................................................................ 15
3.5.1 Registros A y B. ........................................................................................................ 16
3.5.2 Multiplexor 1 .............................................................................................................. 17
3.5.3 Multiplexor de Selección .......................................................................................... 19
3.5.4 Unidad Aritmética Lógica ......................................................................................... 19
3.5.5 Tabla para selección de operación ......................................................................... 22
3.4 CPU Modificado ............................................................................................................... 23
3.5 Microprograma Modificado .............................................................................................. 24
CONCLUSIONES ...................................................................................................................... 25
RECOMENDACIONES.............................................................................................................. 26
BIBLIOGRAFIA........................................................................................................................... 27
Bibliografía ................................................................................................................................... 27

2
PRESENTACIÓN

El presente trabajo detalla o muestra las optimizaciones que se realizan tanto en los
circuitos como en la microprograma para poder visualizar el resultado de las
operaciones aritmético - lógicas en el registro A.

Toda la implementación del presente trabajo se realizó utilizando el software:


“Proteus 8 Professional” y para dar lectura y escritura de las líneas de los
microprogramas se utilizó:” Hex Editor Neo”.

El ingreso de datos hace uso de los registros A y B, se encuentran construidos en


el diseño inicial y los resultados de acuerdo a la operación elegida se muestran en
el registro A, se puede rescatar que los registros cuentan con displays para la mejor
comprensión. Además, se realizó la mejora del circuito lógico del ALU permitiendo
así un mejor rendimiento.

Todo el proceso de diseño e implementación fue realizado por los integrantes de


este grupo haciendo uso de conocimientos adquiridos en los cursos de
microelectrónica, arquitectura del computador y microprocesadores.

3
INTRODUCCIÓN

A lo largo de la historia del computador se realizaron distintas arquitecturas para


implementar la lógica combinacional y secuencial, a tal punto que el componente
principal de estas tareas se convirtió en un circuito complejo y diminuto. Al día de
hoy se sabe que el procesador es el cerebro del sistema, encargado de procesar
toda la información. Básicamente, es el “cerebro” de la computadora.
Prácticamente, todo pasa por él, ya que es el responsable de ejecutar todas las
instrucciones existentes. Mientras más rápido vaya el procesador, más rápido serán
ejecutadas las instrucciones.
La unidad central de proceso (CPU), procesador o microprocesador, es el verdadero
cerebro del ordenador. Su misión consiste en controlar y coordinar todas las
operaciones del sistema. Para ello extrae, una a una, las instrucciones del programa
que está en la memoria central del ordenador (memoria RAM), las analiza y emite
las órdenes necesarias para su completa realización.
El presente trabajo está enfocado a optimizar los circuitos necesarios para poder
visualizar el resultado final de las operaciones aritmético - lógicas en el registro A
que para este caso es el registro de salida.

Capítulo 1 - ASPECTOS GENERALES

1.1 Objetivo General

Visualizar los resultados de las operaciones aritmético – lógicas en el registro A, cuyo diseño
inicial contenía las operaciones de adición, sustracción, división, multiplicación y lógicas (AND,
OR y NOT) y buscar mejores métodos para implementar el modelo básico de microprocesador.

1.2 Objetivos Específicos

• Modificar el diseño inicial de los circuitos.


• Modificar las microinstrucciones de las micro memorias.

4
• Optimizar los componentes para buscar mayor eficiencia.

1.3 Delimitaciones

Entender el funcionamiento del algoritmo de división ya que tiene una complejidad de


funcionalidad mayor a las demás operaciones y revisar la Data sheep de los componentes
implementados.

1.4 Limitaciones

• El proyecto se ve limitado al uso de circuitos integrados proporcionados por el software


utilizado “Proteus Professional 8”.

5
Capítulo 2 - MARCO CONCEPTUAL

2.1 Unidad Central de Procesamiento

La CPU de un computador es la parte principal de la computadora, encargada de ejecutar los


programas almacenados en la memoria principal recuperando las instrucciones, examinándolas
para ejecutarlas sujeta a cambios que puedan surgir durante la construcción de circuitos.

Fig. 1 Organización simple de un computador con una CPU y dos periféricos. Fuente: [1]

2.1.1 Unidad de Control Microprogramada

La unidad de control microprogramada interpreta y ejecuta las instrucciones almacenadas en la


memoria principal y genera las señales de control para ejecutarlas. Consta de los siguientes
componentes:

• Contador de programa: Es un registro interno del computador en el que se almacena la


dirección de la última instrucción leída. De esta manera el computador puede saber cuál es la
siguiente instrucción que debe ejecutar.

• Registro de instrucción: al igual que el registro contador de programa el Registro de instrucción


es parte de la unidad de control y contiene la instrucción que se está ejecutando en cada
momento.

• Decodificador: es un componente interno del microprocesador que se encarga de extraer el


código de operación de la instrucción en proceso.
6
• Reloj interno: Emite una serie de pulsos eléctricos a intervalos constantes llamados ciclos,
estos ciclos marcan el ritmo que ha de seguirse para la realización de cada paso de que consta
la instrucción.

• Secuenciador: almacena todas las posibles instrucciones soportadas por el procesador.

Condiciones de una Unidad de Control Microprogramada:

• Debe poseer suficiente memoria para que no interfiera con el flujo normal de trabajo. • A cada
instrucción se le debe asociar la dirección de comienzo de su microprograma.

• Ha de leer las microinstrucciones sucesivas y bifurcar a uno nuevo cuando termina el que se
está ejecutando.

Tareas de una Unidad de Control Microprogramada:

• Secuenciamiento: El secuenciamiento de la unidad de control se da por incremento de la


dirección actual o por salto condicional dependiendo del feedback que proporcione el
microprograma en ejecución.

• La ejecución de las microinstrucciones, se debe señalar las señales de control.

Fig. 2 Diagrama de organización de una unidad de control. Fuente: Propia


2.2 Simulador

Para el desarrollo del proyecto se utilizó el programa” Proteus Professional 8”, que permite
realizar todas las tareas de construcción de circuitos electrónicos, tales como: dibujo de
esquemas de circuitos, simulación interactiva de circuitos analógicos, digitales y con
microcontroladores, con animación en tiempo real además de diseño de circuitos impresos.
7
Proteus es una compilación de programas de diseño y simulación electrónica, desarrollado por
Labcenter Electronics que consta de los dos programas principales: Ares e Isis. Hablando del
programa ISIS, Intelligent Schematic Input System (Sistema de Enrutado de Esquemas
Inteligente) permite diseñar el plano eléctrico del circuito que se desea realizar con
componentes muy variados, desde simples resistencias, hasta alguno que otro microprocesador
o microcontrolador, incluyendo fuentes de alimentación, generadores de señales y muchos
otros componentes con prestaciones diferentes.

Este programa ISIS nos permite dibujar sobre un área de trabajo, un circuito que posteriormente
podemos simular, y verificar para encontrar sus posibles errores.

8
Capítulo 3 – DESARROLLO DEL PROYECTO

3.1 Algoritmos

DIAGRAMAS DE FLUJO

Multiplicación: División:

9
3.2 Operaciones Lógicas Implementadas

Utilizamos las operaciones que el ALU de por sí ya las tiene, solo tuvimos
que darle las entradas correctas, seleccionándolas si son aritméticas o
lógicas, en este caso utilizamos 2 aritméticas que son la suma y la resta, y
3 lógicas que son and, or y not.

Suma: (entradas) 1 0 0 1

Resta: (entradas) 0 1 1 0

And : (entradas) 1 1 1 0

Or : (entradas) 1 0 1 1

Not : (entradas) 0 0 0 0

Lo anterior es una parte de lo que va en las microinstrucciones para que el ALU


10
ejecute las operaciones designadas, pero en el bus de direcciones las entradas que
se colocan para seleccionar cada operación lógica es:

AND OR

NOT

• AND: Esta operación lógica solo trabaja con 4 bits del registro A y
11
con 4 bits del registro B, la operación es bit a bit y se guarda en el
registro A.
• OR: Esta operación lógica solo trabaja con 4 bits del registro A y con
4 bits del registro B, la operación es bit a bit y se guarda en el registro
A.

• NOT: La operación lógica not trabaja con el registro A, el cual consta


de 8 bits, en el esquema sobre el que trabajamos los registros A y B
intercambiaban sus valores internamente, tuvimos que evitar que
sucediera esto para que así la operación sea correcta, el resultado
se guarda en el registro A.
Los códigos que se muestran son los utilizados para las operaciones matemáticas.
DIVISION MULTIPLICACION

SUMA RESTA

12
3.3 Descripción de las modificaciones en los circuitos de las operaciones aritmético –
lógicas.

Estas modificaciones realizadas surgen en los buses del registro D que es el registro que
contiene el cociente de la operación de división.

Primeramente, para la operación de división se tuvo que modificar las entradas del multiplexor
1 para poder mostrar el resultado que es el cociente en el registro A, como sigue:

Fig. 3 Fuente: Propia

Modificación

Fig. 4 Fuente: Propia

En la Fig.4 se muestra la modificación que sufrieron las entradas del multiplexor 1 para
conectarlas al registro D que contiene el cociente de la división; excepto los pines E del
13
multiplexor 1, para poder guardar el resultado de la división se tiene que realizar un ciclo más
que permita escribir la información del registro D en el registro A y no realizar alguna operación
cuando el resultado pase por el ALU.

3.4 Unidad de control

La unidad de control indica al camino de datos lo que tiene que hacer, cada ciclo de reloj,
durante la ejecución de las instrucciones que fueron modificadas.

3.4.1 Micromemoria

Utiliza cinco memorias EPPROM 2732 de ocho bits, haciendo un total de 32 bits siendo el
tamaño necesario para almacenar el microprograma de las operaciones aritméticas: adición,
sustracción, división y multiplicación además las operaciones lógicas: AND, OR y NOT.

Fig. 5 Micromemoria de la unidad de control conformada por 5 memorias EPROM.


Fuente: Propia.

2732 ( UV – EPROM – 8 bits )

14
Pin Detalle

A 0 – A 11 Entrada de datos.

E Entrada de habilitacion.

G/VPP Habilitador de salida / Entrada de programacion + 25 v.

DQ0 – DQ7 Salida de datos.

VCC Fuente de alimentacion

VSS Tierra

Tabla 1. Descripción del circuito utilizado para la construcción de la micromemoria.

3.4.2 Registro de desplazamiento Inicio – Fin de programa

Registro desplazamiento controla el inicio del algoritmo de división, en este registro se guarda
el cociente de la división, luego para modificación se copiaron los datos de este registro al
registro de propósito general A.

Fig. 6 Registro desplazador de 8 bits. Fuente: Propia.


3.5 Unidad de Procesos

La unidad de proceso o procesamiento se encarga de ejecutar las tareas que le encomienda


la unidad de control.
15
La implementación en el presente caso, es mostrar los resultados de las operaciones
aritmético – lógicas en el registro de propósito general A.

Los componentes requeridos para la implementación son:


3.5.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 las operaciones aritmético – lógicas, se muestre el resultado en el registro A. El
registro A es el registro por donde ingresan los datos y también sirve para mostrar el
resultado obtenido de una operación aritmética – lógica.

Fig. 7 Registro A de 8 bits. Fuente: Propia.

16
Fig. 8 Registro de 4 bits. Fuente: Propia.

3.5.2 Multiplexor 1

A continuación, se detalla los pines que fueron modificados para una conexión como sigue:
los pines RD0 – RD7 se conectaron con los pines del registro D, en la tabla siguiente se
muestra.

74157( Multiplexor Cuadruple 2 a 1)

Pin Detalle

nA, nB Entrada de datos.

-A, B Selectores de entrada.

-E Habilitador de salida.

nY Salida de datos

17
Tabla 2. Detalle del Multiplexor 74157.

74157 (Multiplexor Cuádruple 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

Tabla 3. Códigos de operación del Multiplexor 74157.

18
3.5.3 Multiplexor de Selección

Multiplexor de selección 74157 de 8 bits. De acuerdo a la modificación selecciona entre el


registro D o el registro B para mostrar el resultado de las operaciones aritmético – lógicas en el
registro A en especial el cociente de la división que anteriormente se mostraba en el registro D.

Fig. 9 Multiplexor de 8 bits. Fuente: Propia.

3.5.4 Unidad Aritmética Lógica

Unidad Aritmético-Lógica de ocho bits. Se utilizó dos ALU 74LS181 de cuatro bits encargado
de realizar las operaciones aritmético – lógicas, priorizando la operación de división, es decir
que calculado el cociente permita pasar el resultado sin ninguna modificación para ser
almacenado en el registro A, para esta operación el código utilizado fue: ALU0 = 0, ALU1
= 1, ALU2 = 0 y ALU3 = 1; y el bit M = 1.

19
74181(Unidad aritmetica lógica de 4 bits)

Pin Detalle
A0 - A3 Entrada de operandos.

B0-B3 Entrada de operación.

F0-F3 Habilitadores de salida.

S0-S3 Selección de funcion de entrada.

CN Entrada 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.

Tabla 4. Detalle de la Unidad Aritmética Lógica 74181.

20
Fig. 10 Unidad Aritmetica Logica. Fuente:Propia.

21
3.5.5 Tabla para selección de operación

La siguiente tabla muestra las entradas necesarias para realizar la operación de división
modificada.

Fig. 11 Valores de entradas para la operación de división modificada del ALU (74LS181).
Fuente: [2]

22
3.4 CPU Modificado

Fig. 12 Unidad central de proceso implementada. Fuente: Propia.

23
3.5 Microprograma Modificado

Fig. 13 Instrucciones de la micromemoria modificada. Fuente: Propia.

DESCRIPCIÓN:

tb Controlador de los trifuffers de dirección


m2a Multiplexor del registro B/desplazamiento
coen Habilita del contador
coclr Reset del contador
rsen Habilitador de shift
res/s Habilitador de entrada del shift
rsmr Reset del shift
m1a multiplexor de A/0
coen Entrada habilitadora de salida del registro C
ce Escritura/lectura del registro C
cmr Reset del registro C
be Escritura/Lectura del registro B
ae Escritura/Lectura del registro A
ti Habilitador de trifuffer de datos

24
CONCLUSIONES

• Modificar una CPU con operaciones aritmético - lógicas requieren no solo de conocimientos
de programación además de conocimientos de manipulación de bits y conocimientos del
funcionamiento de la CPU modificada.
• Para este caso la unidad de control microprogramada modificada resulto un poco
complicada al momento de manipular los bits de los microinstrucciones.
• A pesar de ser un modelo muy básico, el nivel de comprensión de los algoritmos fue
complejo para poder interpretar y modificar las microinstrucciones.
• Para la implementación del ALU se tubo que modificar parte del circuito, lo que resulto en
la modificación de parte del proyecto.
• Algoritmos como la división y la multiplicación solo requieren operaciones básicas de suma
y resta para realizarse, por eso el proyecto base tenía una unidad de control ALU que
requería de un solo bit para enviar las señales y usar estas dos operaciones, para
implementar funciones lógicas tuvimos que usar microinstrucciones para enviar señales al
ALU, lo cual resulta para nosotras, más útil porque se pueden utilizar todas las operaciones
restantes que el ALU ofrece. Probablemente por eso fue un poco más sencillo implementar
las operaciones lógicas.
• Todos los algoritmos usados para la multiplicación y división son eficientes, una tarea aparte
fue comprender la lógica y los componentes con el que fueron diseñados. El algoritmo de
división requiere de más saltos que el de multiplicación haciendo que la escritura y
comprensión del microprograma sea un poco más complicado. El algoritmo de
multiplicación es más sencillo pues usa sumas sucesivas, pero ambos requieren un
desplazador para cada uno y activan el PSW así que se tienen que revisar sus valores para
continuar el algoritmo.

25
RECOMENDACIONES

• Utilizar Excel para comprender e ilustrar mejor las microinstrucciones modificadas para cada
operación que luego serán grabadas en las memorias de la unidad de control.

• Se requiere bastante detalle y cuidado al realizar la configuración de las memorias de


control (EPROM) para obtener los resultados deseados.

• En la modificación, el uso de los componentes y la funcionalidad de estos debe ser muy


claro y documentado lo que permitirá una gran facilidad de seguimiento del proceso.

26
BIBLIOGRAFIA

Bibliografía

[1] D. dikygs, «Nociones de Informatica,» 28 abril 2011. [En línea]. Available:


http://nocionesdeinformatica.blogspot.pe/2011/04/esquema-general-de-un-ordenador-i.html. [Último
acceso: 19 12 2017].

[2] M. Sandi, «microprocesadores blogspot,» jueves septiembre 2006. [En línea]. Available: http://627-
0microprocesadores.blogspot.pe/. [Último acceso: 15 11 2017].

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

[4] sistemasumma, «sistemas umma,» 9 Septiembre 2012. [En línea]. Available:


https://sistemasumma.com/2012/09/09/diagrama-de-circuitos-logicos/. [Último acceso: 15 11 2017].

[5] Huamán Lima, Ines Katia y JZegarra Corimanya, Cristel Dayana, «Implementación de las
operaciones lógicas and, or, not en una CPU con una unidad de control microprogramada»
Cusco, 2017.

27