You are on page 1of 185

UNIVERSIDAD PRIVADA TELESUP

1
UNIVERSIDAD PRIVADA TELESUP
Prefacio:
La asignatura es de carcter terico-prctico. Tiene
como finalidad desarrollar en el estudiante habilidades
para el anlisis y la aplicacin de diferentes mtodos
de microprogramacin en microprocesadores. El
microprocesador es el circuito integrado central y ms
complejo de un sistema informtico; a modo de
ilustracin, se le suele llamar por analoga el
cerebro de un computador. Es un circuito integrado
conformado por millones de componentes electrnicos.
Constituye la unidad central de procesamiento (CPU) de un PC catalogado como
microcomputador.
Es el encargado de ejecutar los programas, desde el sistema operativo hasta las
aplicaciones de usuario; slo ejecuta instrucciones programadas en lenguaje de
bajo nivel, realizando operaciones aritmticas y lgicas simples, tales como sumar,
restar, multiplicar, dividir, las lgicas binarias y accesos a memoria.
La disciplina dedicada a la construccin, estudio y aplicacin de los computadores
recibe el nombre de Arquitectura de Computadores y puede ser dividida en cinco
partes fundamentales: entrada y salida, comunicaciones, control, procesamiento y
almacenamiento.

Comprende cuatro Unidades de Aprendizaje:

Unidad I: Arquitectura de una computadora.


Unidad II: Construccin de Mquinas de Estados.
Unidad III: Microprogramacin.
Unidad IV: Riesgos por dependencia de Datos.

2
UNIVERSIDAD PRIVADA TELESUP

Estructura de los Contenidos

Riesgos por
Arquitectura Construccin de Microprogramacin
dependencia de
de una Mquinas de Datos
Computadora Estados

Estructura bsica de Secuenciadores Elementos de Control de riesgos


una computadora. Bsicos. microprogramacin. I

Componentes Arquitectura Control de riesgos


Mquinas de II.
bsicos de un Segmentada del
Estados.
procesador. 68HC11.

MAX + PLUS II.


Construccin de
Registros
mquinas de Decodificacin de
Internos.
estados. la Instruccin.
Editor de MAX +
PLUS II.
Direccionamiento Diseo de un Microprogramas.
por trayectoria. microprocesad
or de 8 BITS.

La competencia que el estudiante debe lograr


al final de la asignatura es:
Comprender la importancia fundamental del
microprocesador, identificando sus
principales caractersticas y funcionalidades
en el desarrollo de la arquitectura de las
computadoras.

3
UNIVERSIDAD PRIVADA TELESUP
ndice del Contenido
I. PREFACIO 02
II. DESARROLLO DE LOS CONTENIDOS 03 - 185
UNIDAD DE APRENDIZAJE 1: ARQUITECTURA DE UNA COMPUTADORA 04-51
1. Introduccin 06
a. Presentacin y contextualizacin 06
b. Competencia 06
c. Capacidades 06
d. Actitudes 06
e. Ideas bsicas y contenido 06
2. Desarrollo de los temas 07- 47
a. Tema 01: Estructura Bsica de una Computadora. 07
b. Tema 02: Maquinas de Estados. 14
c. Tema 03: Construccin de Mquinas de Estados. 26
d. Tema 04: Direccionamiento por Trayectoria. 35
3. Lecturas recomendadas 48
4. Actividades 48
5. Autoevaluacin 49
6. Resumen 51
UNIDAD DE APRENDIZAJE 2: CONSTRUCCIN DE MQUINAS DE ESTADOS 52-90
1. Introduccin 53
a. Presentacin y contextualizacin 53
b. Competencia 53
c. Capacidades 53
d. Actitudes 53
e. Ideas bsicas y contenido 53
2. Desarrollo de los temas 54-86
a. Tema 01: Secuenciadores Bsicos. 54
b. Tema 02: Componentes Bsicos de un Procesador. 62
c. Tema 03: Registros Internos. 70
d. Tema 04: Diseo de un Microprocesador de 8 Bits. 80
3. Lecturas recomendadas 87
4. Actividades 87
5. Autoevaluacin 88
6. Resumen 90
UNIDAD DE APRENDIZAJE 3: MICROPROGRAMACIN 91-143
1. Introduccin 92
a. Presentacin y contextualizacin 92
b. Competencia 92
c. Capacidades 92
d. Actitudes 92
e. Ideas bsicas y contenido 92
2. Desarrollo de los temas 93-139
a. Tema 01: Elementos de Microprogramacin. 93
b. Tema 02: Arquitectura Segmentada del 68hc11. 109
c. Tema 03: Decodificacin de la Instruccin. 115
d. Tema 04: Microprogramas. 128
3. Lecturas recomendadas 140
4. Actividades 140
5. Autoevaluacin 141
6. Resumen 143
UNIDAD DE APRENDIZAJE 4: RIESGOS POR DEPENDENCIA DE DATOS 144-182
1. Introduccin 145
a. Presentacin y contextualizacin 145
b. Competencia 145
c. Capacidades 145
d. Actitudes 145
e. Ideas bsicas y contenido 145
2. Desarrollo de los temas 146-178
a. Tema 01: Control De Riesgos I. 146
b. Tema 02: Control De Riesgos II. 155
c. Tema 03: Max + Plus II. 160
d. Tema 04: Editor De Max + Plus II. 172
3. Lecturas recomendadas 179
4. Actividades 179
5. Autoevaluacin 180
6. Resumen 182
III. GLOSARIO 183
IV. FUENTES DE INFORMACIN 184
V. SOLUCIONARIO 185

4
UNIVERSIDAD PRIVADA TELESUP

5
UNIVERSIDAD PRIVADA TELESUP
Introduccin
a) Presentacin y contextualizacin
El microprocesador es el circuito integrado ms importante. Est formado por
millones de transistores integrados. Incorpora en su interior una unidad central de
proceso (CPU) permitiendo enlazar otros dispositivos. Para realizar su trabajo debe
ejecutar paso a paso un programa que consiste en una secuencia de nmeros
binarios o instrucciones, almacenndolas en uno o ms elementos de memoria,
generalmente externos al mismo. La aplicacin ms importante de los
microprocesadores es la computadora.

b) Competencia
Explica las funcionalidades de los requerimientos y las implementaciones de
diseo para varias partes de una computadora, con especial inters en la
forma en que la unidad central de proceso.

c) Capacidades
1. Describe la estructura bsica de una computadora, identificando cada uno de
sus componentes y funcionalidades.
2. Reconoce las diversas mquinas de estados y sus utilidades dentro del
desarrollo de la arquitectura de las computadoras.
3. Conoce el proceso adecuado de construccin de mquinas de estados usando
mtodos tradicionales.
4. Analizar el direccionamiento por trayectoria y las aplicaciones en el proceso de
desarrollo de la arquitectura de las computadoras.

d) Actitudes
Pone en prctica cada uno de los procesos recomendados en el desarrollo de
la arquitectura de computadoras.
Incentiva el adecuado proceso de construccin de las mquinas de estados.

e) Presentacin de Ideas bsicas y contenido esenciales de la Unidad:


La Unidad de Aprendizaje 01: Arquitectura de una Computadora comprende el
desarrollo de los siguientes temas:

TEMA 01: Estructura Bsica de una Computadora.


TEMA 02: Maquinas de Estados.
TEMA 03: Construccin de Mquinas de Estados.
TEMA 04: Direccionamiento por Trayectoria.

6
UNIVERSIDAD PRIVADA TELESUP

Estructura
TEMA 1
Bsica
de una
Computadora
Competencia:
Describir la estructura bsica de una
computadora, identificando cada uno de
sus componentes y funcionalidades.

7
UNIVERSIDAD PRIVADA TELESUP
Desarrollo de los Temas
Tema 01: Estructura Bsica de una Computadora

ESTRUCTURA GENERAL DE UNA COMPUTADORA


Una computadora digital es una mquina electrnica capaz de realizar clculos con
gran rapidez, obedeciendo instrucciones muy especficas y elementales que reflejan
su estructura funcional y organizacional.
Se puede definir conceptualmente a una computadora como una mquina que consta
de elementos de entrada, elementos de salida, un procesador central y una memoria.

Figura 1.1. Diagrama de bloques de una computadora

TIPOS DE COMPUTADORAS
Existen diversos criterios de clasificacin para las
arquitecturas de computadoras. Uno de ellos es
la manera en como ejecutan sus clculos, el cual
origina dos categoras de computadoras:
1. Aquellas que realizan los clculos de manera
secuencial (a la cual pertenecen la mayora
de las computadoras); y
2. Aquellas que realizan los procesos en paralelo.

8
UNIVERSIDAD PRIVADA TELESUP

COMPUTADORAS SECUENCIALES
Dentro de esta clasificacin encontramos a las computadoras SISD (Single-Instruction
Stream, Single-Data Stream / Flujo nico de Instrucciones, Flujo nico de Datos).
La arquitectura de von Neumann pertenece a esta clasificacin que corresponde a
computadoras que tienen un slo CPU ejecutando una instruccin a la vez, adems,
en este tipo de computadoras slo se puede buscar o almacenar un elemento de datos
a la vez. En las computadoras de von Neumann los programas y datos se encuentran
en una memoria externa.

Para ejecutar una instruccin, la computadora tiene que efectuar las siguientes
etapas:
1. Traer el cdigo de la instruccin a ejecutar.
2. Decodificar la instruccin, es decir, saber cules son las micro-operaciones que
tiene que realizar la computadora para ejecutar dicha instruccin.
3. Traer los operandos en caso de que los requiera la instruccin.
4. Ejecutar la instruccin y guardar el resultado.
Estas etapas se ejecutan de manera secuencial para cada instruccin, por lo
tanto, una nueva instruccin no puede comenzar hasta que la anterior termine.

Figura 1.2. Computadora de von Neumann.

9
UNIVERSIDAD PRIVADA TELESUP

COMPUTADORAS PARALELAS:
Una computadora que ejecuta procesos en paralelo
cuent a con varios de sus componentes internos
repetidos, de esta forma puede ejecutar varias
instrucciones al mismo tiempo. Dentro de esta
clasificacin encontramos a las computadoras
SIMD (Single-Instruction Stream, Multiple-Data
Stream / Flujo nico de Instrucciones, Flujo Mltiple de Datos) y MIMD (Multiple
Instruction Stream, Multiple-Data stream / Flujo Mltiple de Instrucciones, Flujo Mltiple
de Datos). Las arquitecturas SIMD son esenciales en el mundo de las computadoras
paralelas, debido a su habilidad para manejar grandes vectores y matrices de datos en
tiempos muy cortos. El secreto detrs de este tipo de arquitectura es que cuentan con
un varios procesadores ejecutando la misma operacin sobre un conjunto de datos.

Por ejemplo, cuando una simple instruccin SIMD suma 64 nmeros, el hardware
SIMD enva 64 flujos de datos a 64 ALUs (Arithmetic Logic Unit / Unidad Lgico
Aritmtica) para formar 64 sumas en un slo ciclo de reloj. Incluso cuando el tamao
del vector es mayor al nmero de ALUs disponibles, la velocidad, comparada con una
computadora Secuencial, es inmensa.

Las arquitecturas MIMD, tambin llamadas mquinas multiprocesadores, tienen ms


de un procesador funcionando as ncrona e independientemente. Al mismo tiempo, los
diferentes procesadores pueden estar ejecutando diferentes instrucciones sobre
diferentes conjuntos de datos. Las arquitecturas MIMD se utilizan en aplicaciones de
Diseo Asistido por Computadora, Graficacin por Computadora, simulaciones en
tiempo real, y en general, en aplicaciones que requieran gran poder de cmputo.

10
UNIVERSIDAD PRIVADA TELESUP

SEGMENTACIN ENCAUZADA
Una forma de lograr el paralelismo sin tener componentes repetidos es utilizando una
metodologa llamada segmentacin encauzada (en ingls, pipeline).
En la segmentacin encauzada la computadora est dividida en varias etapas, de
manera que cada etapa efecta operaciones sobre instrucciones diferentes. La figura
1.3 muestra este concepto con cuatro etapas, las cuales estn ligadas con registros de
acoplo. La primera etapa trae la instruccin Ij; la segunda, decodifica la instruccin Ij-1;
la tercera, trae los operandos de la instruccin Ij-2; y por ltimo la cuarta, ejecuta la
instruccin Ij-3.

Figura 1.3. Estructura bsica de un procesador segmentado.

Un procesador segmentado de k etapas es en un principio k veces ms rpido que un


procesador sin esta tecnologa. La figura 1.4 muestra el diagrama de tiempos / tareas
de un procesador segmentado de cuatro etapas. En el diagrama se observa que cada
instruccin requiere 4 tiempos en ser ejecutada, sin embargo, una vez que el cauce
est completo, el tiempo de salida de cada instruccin con respecto a la anterior es de
periodo T.

Figura 1.4. Diagrama de Tiempos / Tareas.

11
UNIVERSIDAD PRIVADA TELESUP

En este tipo de arquitecturas es comn hacer lecturas y escrituras en la memoria,


tanto de instrucciones de programa como de datos, de manera simultnea. Por tal
motivo, es necesario que las memorias de datos y programas, con sus respectivos
buses, estn separadas. La figura 1.5 muestra un tipo de esta arquitectura conocida
como computadora tipo Harvard.

Figura 1.5. Computadora tipo Harvard.

EL CONTROLADOR DE LA COMPUTADORA
Un elemento fundamental es el controlador de la
computadora, que como su nombre lo indica,
controla y sincroniza todas las operaciones de la
arquitectura interna y externa. Esto es, coordina
las actividades de la computadora y determina
qu operaciones se deben realizar y en qu orden.
Este controlador general, se denomina tambin
Dispositivo de Mquinas de Estados.

12
UNIVERSIDAD PRIVADA TELESUP

Figura 1.6. Mquina de estados controlando una arquitectura.

ARQUITECTURAS SIMD Y MMD

Tabla 1.1. Cuadro comparativo entre las arquitecturas SIMD y MIMD.

13
UNIVERSIDAD PRIVADA TELESUP

Mquinas TEMA 2
de
Estados
Competencia:
Reconocer las diversas mquinas de estados
y sus utilidades dentro del desarrollo de la
arquitectura de las computadoras.

14
UNIVERSIDAD PRIVADA TELESUP

Tema 02: Mquinas de Estados

MQUINAS DE ESTADOS
El modelo de mquina de estados contiene los elementos
necesarios para describir la conducta de un sistema en
trminos de entradas, salidas y del tiempo.
El siguiente diagrama presenta el modelo general de una
Mquina de Estados.

Figura. 2.1. Modelo general de una mquina de estados.

x[kT], representa el estado en el tiempo kT.


x[(k+1)T] = g(x[kT] , q[kT] ), representa el siguiente estado.
q[kT], representa las entradas en el tiempo kT.
i[kT] = f( x[kT] , q[kT] ), representa las salidas en el tiempo kT.
En donde T es el perodo de duracin de cada estado y k es un contador entero.

EL ALGORITMO DE LA MQUINA DE ESTADOS


El algoritmo de la mquina de estados juega u n papel muy
importante en el diseo de sistemas digitales. Para circuitos
sncronos la tcnica de la carta ASM (Algorithm State Machine /
Algoritmo de la Mquina de Estados) es la mejor notacin, por lo
tanto, se adoptar en este libro. Tambin existen otras tcnicas
como la de los diagramas de estados que son diagramas muy
parecidos a las cartas ASM. Los diagramas de estados muestran
grficamente la secuencia de estados en un sistema y las condiciones de cada estado
y de las transiciones entre cada uno de ellos.

15
UNIVERSIDAD PRIVADA TELESUP

Como ejemplo, en la figura 2.2 se describe el comportamiento de un contador binario


de 3 bits mediante un diagrama de estados. Este circuito en particular no tiene ninguna
entrada aparte de la de reloj, y ninguna otra salida ms que las que se toman en cada
flip-flop del contador.
ESTADOS Y RELOJ
El algoritmo de la mquina de estados se mueve a travs de una secuencia de
estados con base en la posicin del estado presente y las variables de entrada. Los
tiempos del estado estn determinados por un reloj maestro.

Figura. 2.2. Diagrama de estados para un contador binario de 3 bits.

NOTACIN DE LA CARTA ASM


Representacin de estados
El estado de una mquina de estados es la memoria de la historia pasada, suficiente
para determinar las condiciones futuras. En la siguiente figura se muestra la
representacin del estado. Un estado se representa con un rectngulo y con su
nombre simblico en el extremo superior, encerrado en un crculo.

Figura 2.3. Representacin del estado.

16
UNIVERSIDAD PRIVADA TELESUP

Representacin de decisiones
Las decisiones permiten seleccionar el camino que el algoritmo de la mquina de
estados debe tomar de acuerdo a la variable o variables de entrada evaluadas. Las
decisiones se representan mediante un rombo con el nombre de la variable a probar o
una funcin que evale varias variables.

Figura 2.4. Representacin de las decisiones.

Representacin de salidas
Salidas no condicionales. Sirven para indicar la activacin de una variable de salida.
Para representarlas, se escriben dentro del rectngulo de estado, los nombres de las
variables de salida que se activan en ese estado. Las salidas no condicionales no
dependen de las condiciones de entrada, slo dependen del estado actual. La figura
2.5 muestra la activacin de las salidas VAR1 y VAR2 en el estado EST1.

Figura 2.5. Representacin de las salidas no condicionales.

17
UNIVERSIDAD PRIVADA TELESUP

Salidas Condicionales. Estas salidas se presentan solamente cuando ciertas


condiciones de entrada existen. Se representan con un valo y los nombres de las
salidas dentro de l.

Figura 2.6. Representacin de las salidas condicionales

Ejemplos de cartas ASM

A continuacin se presentan algunos ejemplos para aclarar las ideas antes expuestas.
1. Disee un dispositivo que genere cierta secuencia binaria slo cuando la variable
INICIO sea igual a uno. Adems esta secuencia depender del valor de la entrada
X. Si X=0 la secuencia binaria que se genera es la siguiente: 11, 10, 01, por el
contrario, si X=1 la secuencia es: 01,10, 11. Considere que cada pareja binaria se
genera con un ciclo de reloj de diferencia.
Cuando se hace el diseo digital de un sistema es necesario hacer un diagrama de
bloques que clarifique cules son las seales de entrada, cules las seales de
salida, quin es el controlador y qu se est controlando.
Para este ejemplo, las seales de entrada son INICIO y X, y las seales de salida
son las que representan la secuencia que se quiere generar, nombrmoslas VAR1
y VAR0.

18
UNIVERSIDAD PRIVADA TELESUP

El diagrama de bloques queda de la siguiente manera.

Figura 2.7. Diagrama de bloques para el ejemplo 1.

Y la carta ASM para esta mquina de estados se muestra en la figura 2.8.

Figura 2.8. Carta ASM para el ejemplo 1.

De la figura 2.8 se puede observar que para activar una seal de salida
incondicional, en un estado en particular, es necesario colocar su nombre dentro
del rectngulo del estado.
2. Convertir el siguiente cdigo en lenguaje C a una carta ASM. for (x = a; x b; x =
x + c) {var1 = 1; var2 = 0;} var1 = 0;

19
UNIVERSIDAD PRIVADA TELESUP

El diagrama de bloques de este sistema es el siguiente.

Figura 2.9. Diagrama de bloques para el ejemplo 2.

Se utiliza un contador para cargar el valor inicial de X o incrementar su valor en C


unidades. La activacin de la seal CARGA inicializar el valor de X con A, mientras
que la activacin de la seal INCREMENTA incrementar el valor de X en C unidades.
Tambin se cuenta con un comparador que evala la condicin X B. Si X es menor o
igual a B, el resultado es la activacin de la seal MENOR, en caso contrario, la seal
MENOR permanece en cero. El algoritmo de la mquina de estados es el siguiente.

Figura 2.10. Carta ASM para el ejemplo 2.

En el estado EST0 se activa la seal CARGA con el fin de cargar en el contador el


valor inicial de X. En el estado EST1 se pregunta por la variable de entrada MENOR, si
sta es igual a cero, la condicin X B es falsa. Si MENOR es igual a uno, la
condicin es verdadera y por tanto, son activadas las seales INCREMENTA y VAR1
como salidas condicionales.

20
UNIVERSIDAD PRIVADA TELESUP

3. Convertir el siguiente cdigo en lenguaje C a una carta ASM.

while( x==0 ) { var5 = 1; var2 = 1; if( z==0 )


{ x = 1; var5 = 0;
}
}
var5 = 0;
var2 = 0;

En este ejemplo el valor de la variable X puede ser modificado por la lgica externa
o por la mquina de estados. Por ello, para representar a X, utilizaremos un flip-
flop cuyo valor ser puesto a uno a cero dependiendo de las seales internas y
externas.

El diagrama de bloques de este sistema es el siguiente.

Figura 2.11. Diagrama de bloques para el ejemplo 3.

Y el algoritmo de la mquina de estados queda de la siguiente manera.

21
UNIVERSIDAD PRIVADA TELESUP

Figura 2.12. Carta ASM para el ejemplo 3.

4. Convertir el siguiente cdigo en lenguaje C a una carta ASM.


if ( x==n ) { var1 = 1; var2 = 0; }
else { var1 = 0; var2 = 1; }
var1 = 0;
var2 = 0;
En este ejemplo las variables de entrada x y n estn definidas como variables de
un slo bit. Para hacer la comparacin de las variables x y n se usa la funcin
lgica XOR, que valdr cero cuando x y n sean iguales, y uno, cuando sean
diferentes. La tabla XOR se presenta a continuacin.

Tabla 2.1. Funcin lgica XOR.

22
UNIVERSIDAD PRIVADA TELESUP

El diagrama de bloques que ejecuta el cdigo anterior en C se presenta


enseguida.

Figura 2.13. Diagrama de bloques para el ejemplo 4.

Y el algoritmo de esta mquina de estados es el siguiente.

Figura 2.14. Carta ASM para el ejemplo 4.

En el diagrama se observa que si deseamos activar una seal de salida condicional,


en un estado en particular, es necesario colocar su nombre dentro de un valo.
5. Usando un diagrama de tiempos mostrar la diferencia entre las cartas ASM de la
figura 2.15, en donde la variable de salida VAR2 est como salida condicional en la
carta ASM1 y como salida incondicional en la carta ASM2.
Si observa detenidamente el diagrama de tiempos de la figura 2.17 observar que
la diferencia principal entre las dos cartas ASM es el tiempo cuando se activa la
salida VAR2. Cuando est como salida condicional se activa en el estado.

23
UNIVERSIDAD PRIVADA TELESUP

EST1 junto con VAR1, y cuando est como salida incondicional se activa un flanco
positivo despus que VAR1.

Figura 2.15. La salida VAR2 en la carta ASM1 se presenta como salida


condicional, mientras que en la carta ASM2 se presenta como no condicional.

A continuacin se muestra el diagrama de tiempos para la carta ASM1 cuando la


entrada X es igual que cero. Este diagrama de tiempos es idntico para la carta ASM2

Figura 2.16. Diagrama de tiempos para las cartas ASM1 y ASM2, con x=0.

24
UNIVERSIDAD PRIVADA TELESUP

6. La siguiente figura muestra de manera simple la configuracin de N estaciones del


metro.

Figura 2.17. Configuracin de las N estaciones del Metro.

El objetivo es disear un sistema digital, usando


mquinas de estados, que mueva al tren de derecha a
izquierda sobre la lnea. En cada estacin hay unos
sensores que detectan la entrada de un tren, de
manera que cuando arriba a una de ellas, hace una
parada de dos minutos. Adems, existe un botn de emergencia en los vagones que
hace que el tren se detenga un minuto extra en la estacin, si as se requiriera.
A continuacin se muestra el diagrama de bloques de este sistema:

Figura 2.19. Diagrama de bloques para el ejemplo 6.

25
UNIVERSIDAD PRIVADA TELESUP

Construccin TEMA 3
de Mquinas
de Estados

Competencia:
Conocer el proceso adecuado de construccin
de mquinas de estados usando mtodos
tradicionales.

26
UNIVERSIDAD PRIVADA TELESUP

Tema 03: Construccin de Mquinas de


Estados

CIRCUITO SECUENCIAL
Un circuito secuencial est formado por una
etapa de lgica combinacional, y una de etapa de
memoria o flip-flops, que se utilizan para
representar los estados.
Unidad bsica de almacenamiento
La unidad bsica de almacenamiento es un
dispositivo que almacena un dato binario, 0 1,
dependiendo de los valores de entrada.

Este dispositivo presenta el siguiente comportamiento.

Tabla 2.2. Tabla de verdad para la unidad bsica de almacenamiento.

Como se puede observar, esta unidad de


almacenamiento cuenta con dos lneas de
entrada, S (set) y R (reset), las cuales indican la
manera en cmo deben operar las salidas + Q y
+ Q . Las salidas de esta unidad siempre son
complementarias una de la otra, es decir,
cuando Q est a nivel alto, Q est a nivel bajo; y
cuando Q est a nivel bajo, Q est a nivel alto.
Debido a esta razn, la ltima condicin de la tabla es invlida.

27
UNIVERSIDAD PRIVADA TELESUP

A partir de la tabla de verdad y utilizando mapas de Karnaugh es posible


encontrar las expresiones lgicas para la unidad bsica de almacenamiento.

Y con base en las expresiones lgicas se construye el diagrama


lgico.

Figura 2.24. Diagrama y smbolo lgico para la unidad bsica de


almacenamiento.

LATCH TIPO D
El latch tipo D slo tiene una entrada, adems de la entrada de habilitacin C,
la cual est asociada a un reloj. El comportamiento de este dispositivo se
muestra en la siguiente tabla y en el siguiente diagrama de tiempos.

28
UNIVERSIDAD PRIVADA TELESUP

El diagrama de tiempos muestra de manera grfica el


funcionamiento del latch tipo D. En l se observa que
mientras la seal de habilitacin C vale uno, la salida + Q
sigue al valor de la entrada D; y cuando C vale cero, la
salida + Q mantiene el ltimo valor de D antes de que C
cambiara a cero. El latch tambin es un dispositivo de
almacenamiento de dos estados, por lo tanto, es posible disear un latch tipo D a partir
de la unidad bsica de almacenamiento. La siguiente figura ilustra este procedimiento.

Figura 2.26. Diagrama y smbolo lgico para el latch tipo D.

29
UNIVERSIDAD PRIVADA TELESUP

Flip-flops
Los flip-flops son dispositivos biestables sncronos. En este caso, el trmino sncrono
significa que la salida vara de estado
nicamente en un instante especfico de una
entrada de disparo denominada reloj (clk). Es
decir, un flip-flop cambia de estado con el flanco
positivo (flanco de subida) o con el flanco
negativo (flanco de bajada) del impulso de reloj y
es sensible a sus entradas slo en esta transicin de reloj. Bsicamente, los latches
son similares a los flip-flops, sin embargo, la diferencia principal entre ambos tipos de
dispositivos est en el mtodo empleado para cambiar de estado.

El Flip-Flop Tipo D
Un flip-flop tipo D disparado por flanco negativo presenta el siguiente comportamiento.

Tabla 2.4. Tabla de verdad para el flip-flop D disparado por flanco negativo.

Si existe un nivel bajo en la entrada D cuando se


aplica el impulso de reloj, el flip-flop se pone en
estado de reset y almacena el nivel bajo de la
entrada durante el flanco de bajada del reloj. Si
cuando se aplica el impulso de reloj la entrada D est
a nivel alto, el flip-flop se pone en estado set y
almacena el nivel alto de la entrada durante el flanco de bajada del reloj. El flip-flop
mantendr su valor mientras no exista una transicin de alto a bajo en la seal de
reloj. La siguiente figura muestra cmo construir un flip-flop tipo D a partir de dos
latches tipo D.

30
UNIVERSIDAD PRIVADA TELESUP

Tambin se anexa un diagrama de tiempos que muestra de manera grfica el


comportamiento de cada uno de los latches que constituyen al flip-flop tipo D.

Figura 2.28. Diagrama de tiempos. Comportamiento del flip-flop tipo D.

Del diagrama se puede observar que tener el reloj negado en el segundo latch
hace que la entrada D2 se mantenga fija con el valor de salida del latch 1, el cual
tendr guardado el valor de la entrada D en el momento de la transicin del reloj
hacia cero.

Procedimiento para el diseo de circuitos secuenciales


El mtodo tradicional que se utilizar plantea los
siguientes pasos para el diseo de un circuito
secuencial:
1. Construir un Diagrama de Estados. Un
diagrama de estados muestra la progresin de
estados por los que el diseo avanza cuando
se aplica una seal de reloj. Recuerde que en
esta obra, el diagrama de estados corresponde a la carta ASM.

31
UNIVERSIDAD PRIVADA TELESUP

2. A partir del diagrama de estados, desarrollar


una tabla con las transiciones entre estados y
las salidas para cada estado. El nmero de flip-
flops necesarios para representar todos los
estados de la red secuencial est dado por:
Nmero de Flip-flops = n = log2 S donde S es
el nmero total de estados.
3. Transferir los valores para cada entrada D de
los flip-flops a un mapa de Karnaugh. A partir de los mapas de Karnaugh
podremos determinar las expresiones lgicas para las entradas de los flip-flops.
4. Transferir cada salida a un mapa de Karnaugh y obtener sus expresiones lgicas.
5. Implantacin del circuito secuencial. Las expresiones lgicas obtenidas nos
permitirn construir el diagrama lgico del circuito.

Ejemplo:
Para ilustrar este procedimiento se desarrollar un ejemplo: Disee un circuito
secuencial a partir de la siguiente carta ASM.

Figura 2.29. Carta ASM.

32
UNIVERSIDAD PRIVADA TELESUP

La tabla de transiciones de estados y de seales de salida es la siguiente:

Tabla 2.5. Tabla de transiciones de estados y de salidas.

Se emplearon dos flip-flops tipo D para representar las transiciones de los


cuatro estados que componen a la carta ASM. Los mapas de Karnaugh y las
expresiones lgicas para las entradas de los flip-flops son los siguientes.

El mapa de Karnaugh para la entrada D1 se construye con los valores del estado
Q1+, mientras que el mapa para la entrada D0 se construye con los valores del
estado Q0+.De manera similar, se obtienen las expresiones lgicas para las
seales de salida.

33
UNIVERSIDAD PRIVADA TELESUP

Finalmente, el diagrama lgico de esta mquina de estados es:

Figura 2.30. Diagrama lgico.

34
UNIVERSIDAD PRIVADA TELESUP

Direccionamiento
por TEMA 4
Trayectoria

Competencia:
Analizar el direccionamiento por trayectoria
y las aplicaciones en el proceso de desarrollo
de la arquitectura de las computadoras.

35
UNIVERSIDAD PRIVADA TELESUP

Tema 04: Direccionamiento por Trayectoria

Este tipo de direccionamiento guarda el estado siguiente y las salidas de cada estado
de la carta ASM en una localidad de memoria. La porcin de la memoria que indica el
estado siguiente es llamada la liga, mientras que la porcin que indica las salidas es
llamada la parte de las salidas.

Figura 3.1. Direccionamiento por trayectoria.

Concatenando la liga del estado presente junto con las entradas


se forma la direccin de memoria que contiene la direccin del
estado siguiente. Esta direccin se guarda en un registro que
est conectado a las lneas de direccin de la memoria, como
se muestra en la figura 3.1. La seal de reloj conectada a los
registros es la que indica la velocidad de la mquina de
estados. La figura 3.2 muestra una carta ASM, y la tabla 3.1 el
contenido de la memoria usando el mtodo de direccionamiento por trayectoria.

36
UNIVERSIDAD PRIVADA TELESUP

Recuerde que antes de construir la tabla se debe asignar


a cada estado de la carta ASM una representacin
binaria, de esta manera, para representar los cuatro
estados que componen a la carta ASM de la figura 3.2 se
necesitarn dos bits. Esta asignacin binaria aparece en
la esquina superior derecha de cada estado.
Para cada estado es necesario considerar todas las posibles combinaciones de las
variables de entrada, an cuando algunas de ellas no se utilicen. Por ejemplo, si en el
estado EST0 la variable Q1 es igual a 1, la mquina de estados pasar al estado
EST1 independientemente de los valores de las otras variables.
Aun as, se deben considerar todas las combinaciones de las otras variables de
entrada y colocar en las localidades de memoria correspondientes los valores
adecuados.

Cuando una salida se activa, el bit correspondiente de memoria se coloca a 1, en


caso contrario se coloca a 0.

Figura 3.2. Carta ASM para el direccionamiento por trayectoria.

37
UNIVERSIDAD PRIVADA TELESUP

Tabla 3.1. Contenido de la memoria.

38
UNIVERSIDAD PRIVADA TELESUP

Direccionamiento de Entrada-Estado
Este tipo de direccionamiento se restringe a
cartas ASM con una sola entrada por estado.
Una nueva porcin de la palabra de memoria
contiene una representacin binaria de la
entrada a probar en cada estado, esta parte es
llamada la parte de prueba. Con esta
representacin binaria un selector de entrada elige una de las variables de entrada. La
parte de liga tiene dos estados siguientes, escogindose uno por el selector de liga, en
base a la entrada seleccionada por la parte de prueba. La figura 3.3 muestra el
diagrama de bloques de este mtodo.

Figura 3.3. Diagrama de bloques para el mtodo entrada-estado.

Si el valor de la entrada seleccionada por el selector de entradas es igual a cero,


entonces el selector de liga elegir la liga falsa, en caso contrario se
seleccionar la liga verdadera; este caso se muestra en la figura 3.4.

39
UNIVERSIDAD PRIVADA TELESUP

Figura 3.4. La liga falsa es el estado ESTK, mientras que la liga verdadera es el estado
ESTI.

La figura 3.5 muestra una carta ASM la cual se construir utilizando este mtodo.

Figura 3.5. Carta ASM para el direccionamiento entrada-estado.

40
UNIVERSIDAD PRIVADA TELESUP

Adems de asignar una representacin binaria a


cada estado, tambin a cada variable de entrada se
le asignar una. Se utiliza tambin una variable
auxiliar que nos sirve para los estados que no
tengan variable de entrada, de manera que cuando
en un estado no exista variable de entrada se
probar la variable auxiliar, la cual tiene un valor preestablecido de cero o uno. As, si
quisiramos forzar a la mquina de estados para que salte a un estado especfico se
escogera la variable auxiliar Qx y dependiendo del valor de sta (0 1), en la liga
falsa o verdadera segn sea el caso, se tendra la direccin del estado a saltar.

Para el ejemplo de la figura 3.5 se eligi la siguiente representacin binaria de


las entradas:
Qx = Variable Auxiliar = 00
Q1 = 01
Q2 = 10
Q3 = 11

A continuacin se describe cmo llenar los campos de la


memoria para el estado EST0. En el estado EST0 se
selecciona la entrada Q2, por lo tanto, se coloca en el
campo de prueba de la memoria su representacin
binaria, es decir, un 1 y un 0. Si Q2 es igual a cero, el
estado siguiente es EST1 y su representacin binaria,
001, es colocada en el campo de la liga falsa. Si Q2 es igual a uno, el estado siguiente
es EST3 y su representacin binaria, 011, es colocada en el campo de la liga
verdadera. Con los dems estados se procede de la misma forma. La tabla 3.2
muestra el contenido de la memoria para el ejemplo anterior.

41
UNIVERSIDAD PRIVADA TELESUP

Tabla 3.2. Contenido de la memoria.

Para manejar salidas condicionales es necesario modificar el diagrama


de bloques del direccionamiento entrada-estado. Esta
modificacin consiste en tener dos campos de
salidas: el campo de salidas falsas y el campo de
salidas verdaderas. En el primero, estn las
salidas que se activan cuando la variable de
entrada sensada vale cero, y en el segundo, estn las salidas que se activan cuando
la variable de entrada sensada vale uno.

Figura 3.6. Diagrama de bloques del direccionamiento entrada-estado con salidas


condicionales.

42
UNIVERSIDAD PRIVADA TELESUP

Como ejemplo se propone la siguiente carta ASM. Adems, se muestra el


contenido de la memoria para el estado ESTN.

Fig. 3.7. Representacin en la memoria del estado ESTN.

Direccionamiento implcito
Este tipo de direccionamiento utiliza solamente un campo de
liga. Una variable de entrada seleccionada por el campo de
prueba, y VF, son las que deciden si se utiliza la direccin
de liga (se carga el valor de liga en el contador) o no (se
incrementa el contador en una unidad). La figura 3.8
muestra el esquema anterior.

43
UNIVERSIDAD PRIVADA TELESUP

Figura 3.8. Diagrama de bloques del mtodo de direccionamiento implcito.

El campo VF (Verdadero-Falso) sirve para indicarle a la lgica cunto debe valer


la variable de entrada, para as cargar en el contador el valor de la liga y hacer el
salto. La figura 3.9 muestra parte de una carta ASM con este esquema.

Figura 3.9. Trayectoria de incremento y carga para el estado ESTN.

44
UNIVERSIDAD PRIVADA TELESUP

Supongamos que nos encontramos en el estado ESTN y la


variable a sensar es Q, si Q es igual a cero entonces el
estado siguiente es la representacin del estado presente
ms uno, por lo tanto, es necesario activar la seal de
incremento. Si Q es igual a uno entonces el estado siguiente
es el estado ESTK y su representacin binaria, contenida en
el campo de liga, es cargada en el contador. Para este
ejemplo el campo VF es igual a uno ya que cuando Q es igual a uno se requiere hacer
una carga en el contador.

La tabla 3.3 muestra la relacin de VF y la variable de entrada con las lneas de


INCREMENTA y CARGA.

Tabla 3.3. VF y Q se relacionan por medio de una XOR para generar la seal de
INCREMENTA y por medio de una XNOR para generar la seal de CARGA.

La figura 3.10 ejemplifica la misma relacin mediante un diagrama lgico.

Figura 3.10. Bloque de lgica para el direccionamiento implcito.

45
UNIVERSIDAD PRIVADA TELESUP

El campo de prueba selecciona la variable a sensar que


junto con VF activan la seal de carga o de incrementa por
medio de una compuerta XOR. Es necesario tomar
precauciones al hacer la asignacin binaria de los estados,
porque debemos asegurar que por cada variable de
entrada sensada existan dos estados siguientes: uno igual
al estado presente ms uno y el otro igual a cualquier otro
valor. Por ejemplo, para la carta ASM de la figura 3.5 es necesario cambiar la
asignacin binaria de los estados, ya que para pasar del estado EST2 al estado EST1
del estado EST2 al estado EST4 se necesitan hacer cargas en ambos casos.

La nueva asignacin de estados se muestra en la figura 3.11.

Figura 3.11. Nueva asignacin binaria para el direccionamiento implcito.

La asignacin binaria de las seales de entrada es idntica a la


asignacin binaria propuesta en el ejemplo de direccionamiento
entrada-estado.
Y el valor asignado a la variable Qx es igual a uno, es decir,
presenta un nivel lgico alto.

46
UNIVERSIDAD PRIVADA TELESUP

La tabla 3.4 muestra el contenido de la memoria para la Figura 3.11.

Tabla 3.4. Contenido de la memoria.

Comparando este mtodo con el mtodo anterior se observa que


se obtuvo una ganancia de dos bits en la memoria. En algoritmos
de mquina de estados ms complejos, donde el nmero de
estados es muy grande, esta ganancia se hace ms evidente. La
figura 3.12 muestra una variante del direccionamiento implcito. En
lugar de usar el contador de la figura 3.8 se utilizan dos registros:
un registro de liga en donde se guarda la direccin del estado siguiente cuando hay un
salto, y un registro de PC que guarda el valor del estado presente ms uno. Haciendo
ms compleja esta variante de direccionamiento implcito se llega a un dispositivo
llamado secuenciador que es la base fundamental de la Unidad de Control de
Procesos de una computadora.

Figura 3.12. Variante del direccionamiento implcito.

47
UNIVERSIDAD PRIVADA TELESUP
Lecturas Recomendadas
COMPONENTES DE UNA COMPUTADORA
http://www.informatica-hoy.com.ar/aprender-informatica/Componentes-de-una-
computadora.php

MQUINAS DE ESTADO
http://200.69.103.48/comunidad/profesores/jruiz/jairocd/texto/cirdig/maquinasdee
sf.pdf

Actividades y Ejercicios

1. En un documento en Word elabore un organigrama sobre la


arquitectura computacional.
Envalo a travs de "Arquitectura Computacional".

2. En un documento en Word elabore una lista y describa las


funcionalidades de cada uno de los dispositivos de entrada (E.) y
salida (S.) de diversas computadoras.
Envalo a travs de "Dispositivos de E. & S.".

48
UNIVERSIDAD PRIVADA TELESUP
Autoevaluacin
1) Un circuito secuencial est formado por una etapa lgica y una etapa de
memoria llamada:
a. FLIP FLOP.
b. CACHE.
c. RAM.
d. ROM.
e. PSP.

2) Una computadora secuencial se caracteriza por que tiene una sola unidad}
central de proceso que ejecuta:
a. Dos instrucciones a la vez.
b. Una instruccin a la vez.
c. Mltiples instrucciones a la vez.
d. Flujos simultneos a la vez.
e. Tres instrucciones a la vez.

3) Una forma de lograr el paralelismo sin tener componentes repetidos es


utilizando una metodologa llamada:
a. Segmentacin programada.
b. Segmentacin sincronizada.
c. Segmentacin encauzada.
d. Segmentacin proyectada.
e. Segmentacin restaurada.

4) Es un elemento del modelo general de una mquina de estados:


a. El programador.
b. El estabilizador.
c. La tarjeta de video.
d. La memoria.
e. La tarjeta de estados.

5) No es un elemento vital de una computadora:


a. El mouse.
b. El sistema operador.
c. El disco duro.
d. La memoria.
e. Procesador central.

49
UNIVERSIDAD PRIVADA TELESUP

6) El algoritmo de la mquina de estados juega un papel muy importante en el:


a. Desarrollo de software actual.
b. Desarrollo del ingeniero de sistemas.
c. Desarrollo de los microprocesadores.
d. Diseo de programas sistemticos.
e. Diseo de sistemas digitales.

7) Los flip-flops son dispositivos biestables:


a. Proyectivos.
b. Sncronos.
c. Organizativos.
d. Particulares.
e. Opcionales.

8) El nmero de flip-flops necesarios para representar el nmero total de


estados (S) de la red secuencial est dado por:
a. Log2 U.
b. Log2 X.
c. Log2 S.
d. Log2 Y.
e. Log2 Z.

9) El direccionamiento de Entrada-Estado se restringe a cartas ASM:


a. Con dos entradas por estado.
b. Con un solo campo de liga.
c. Con una sola liga por proceso.
d. Con una sola entrada por estado.
e. Con un solo contador por estado.

10) El direccionamiento implcito utiliza solamente:


a. Un campo de sincronizacin.
b. Un campo de simulacin.
c. Un campo de proyeccin.
d. Un campo de instalacin.
e. Un campo de liga.

50
UNIVERSIDAD PRIVADA TELESUP
Resumen
UNIDAD DE APRENDIZAJE I:

Una computadora digital es una mquina electrnica capaz de realizar clculos con
gran rapidez, obedeciendo instrucciones muy especficas y elementales que reflejan
su estructura funcional y organizacional. Dentro de esta clasificacin encontramos a
las computadoras secuenciales y paralelas. Todas las computadoras tienen un
controlador que controla y sincroniza todas las operaciones de la arquitectura interna y
externa de una computadora.

El modelo de mquina de estados contiene los elementos necesarios para describir la


conducta de un sistema en trminos de entradas, salidas y del tiempo. El algoritmo de
la mquina de estados juega un papel muy importante en el diseo de sistemas
digitales. Para circuitos sncronos la tcnica de la carta ASM es la mejor notacin. El
algoritmo de la mquina de estados se mueve a travs de una secuencia de estados
determinados por un reloj maestro.

Un circuito secuencial est formado por una etapa de lgica combinacional, y una de
etapa de memoria o flip-flops, que se utilizan para representar los estados. Los flip-
flops son dispositivos biestables sncronos. En este caso, el trmino sncrono significa
que la salida vara de estado nicamente en un instante especfico de una entrada de
disparo denominada reloj.

El direccionamiento de Entrada-Estado se restringe a cartas ASM con una sola


entrada por estado. El direccionamiento implcito utiliza solamente un campo de liga.
Una variable de entrada seleccionada por el campo de prueba y el campo VF
(verdadero - falso), son las que deciden si se utiliza la direccin de liga (se carga el
valor de liga en el contador) o no (se incrementa el contador en una unidad). El campo
VF (Verdadero-Falso) sirve para indicarle a la lgica cunto debe valer la variable de
entrada, para as cargar en el contador el valor de la liga y hacer el salto.

51
UNIVERSIDAD PRIVADA TELESUP

52
UNIVERSIDAD PRIVADA TELESUP
Introduccin
a) Presentacin y contextualizacin
Las mquinas de estados finitos suelen denominarse mquinas secuenciales ya
que a partir de un estado inicial y de una secuencia ordenada de eventos de
entrada, generan una secuencia de estados por los que pasa la mquina, y a su
vez una secuencia de acciones de salida. En la siguiente unidad se tratara sobre
la construccin de mquinas.

b) Competencia
Conoce el proceso de construccin de mquinas de estados usando un
secuenciador.

c) Capacidades

1. Identifica las mquinas de estados secuenciales construidos por un


secuenciador bsico.
2. Describe los componentes bsicos y funcionalidades de un procesador.
3. Reconoce las funciones y operaciones de la unidad de registros internos.
4. Disea adecuadamente microprocesadores de 8 bits utilizando un lenguaje
ensamblador.

d) Actitudes

Muestra inters en el proceso de diseo de los microprocesadores de 8 bits y


temas relacionados.
Promueve la investigacin sobre las generalidades de los secuenciadores
bsicos de un procesador.

e) Presentacin de Ideas bsicas y contenido esenciales de la unidad:


La Unidad de Aprendizaje 02: Construccin de Mquinas de Estados
comprende el desarrollo de los siguientes temas:

TEMA 01: Secuenciadores Bsicos.


TEMA 02: Componentes Bsicos de un Procesador.
TEMA 03: Registros Internos.
TEMA 04: Diseo de un Microprocesador de 8 Bits.

53
UNIVERSIDAD PRIVADA TELESUP

Secuenciadores TEMA 1
Bsicos

Competencia:
Identificar las mquinas de estados
secuenciales construidos por un secuenciador
bsico.

54
UNIVERSIDAD PRIVADA TELESUP
Desarrollo de los Temas
Tema 01: Secuenciadores Bsicos

En la Unidad anterior se vio el diseo de


mquinas de estados usando memorias y
dispositivos tales como contadores. Para el
diseo de los mdulos de control de una
computadora se requieren mquinas de estados
que sean capaces de ejecutar algoritmos ms
complejos. Haciendo modificaciones y agregando
componentes a la variante del direccionamiento implcito se pueden crear mquinas de
estados que efecten cartas ASM con llamadas a subrutinas, estructuras DO WHILE,
iteraciones tipo FOR, entre otras.

Los dispositivos que son capaces de efectuar este tipo de operaciones son llamados
secuenciadores. La figura 4.1 muestra el diagrama de bloques de un secuenciador
bsico. Como puede observar en el diagrama, la direccin del estado siguiente, dada
por el bus Y, puede venir de dos lugares posibles: 1) del registro PC, 2) de la
entrada D.

1. El registro de micro-programa (PC) contiene la


direccin del estado presente ms uno, es decir, la
direccin que se encuentra a la salida del multiplexor
es incrementada en una unidad y cargada en este
registro en el siguiente ciclo de reloj.
2. En la entrada D se introduce una direccin de salto.
Esta direccin puede venir de tres lugares diferentes:
del campo de liga, del registro de transformacin o del
registro de interrupciones.

55
UNIVERSIDAD PRIVADA TELESUP

Figura 4.1. Diagrama de bloques del secuenciador bsico.

El secuenciador cuenta con una lgica interna que se encarga de generar las seales
que controlan al multiplexor. Dependiendo de la instruccin dada por las lneas I1 e I0
y de la lnea CC, la lgica es capaz de seleccionar entre la salida del registro PC o la
entrada D. Dicha salida direcciona una memoria que contiene el estado siguiente del
algoritmo de la mquina de estados. La lgica interna tambin genera las lneas PL,
MAP y VECT, las cuales seleccionan unos registros cuyas salidas estn conectadas a
la entrada D del secuenciador. De esta forma la direccin de salto puede venir de tres
lugares distintos. Esta caracterstica se utilizar cuando se disee la unidad central de
procesos (UCP), como se ver ms adelante. La figura 4.2 muestra las seales de
entrada y salida del secuenciador.

Figura 4.2. Secuenciador bsico.


A continuacin se muestran las instrucciones que el secuenciador puede ejecutar y su
representacin en carta ASM.

56
UNIVERSIDAD PRIVADA TELESUP

INSTRUCCIONES PARA EL SECUENCIADOR


Contina (CC)

Figura 4.3. Representacin en notacin ASM de la instruccin contina.


En la instruccin contina la direccin del estado siguiente la proporciona el
registro PC.

Salto condicional (SCO)

En esta instruccin se revisa el valor de la lnea CC , si es igual a uno, la direccin del


estado siguiente la proporciona el registro PC; si es igual a cero, la direccin del
estado siguiente, contenida en el registro seleccionado por PL , ingresa a travs de la
entrada D.

Figura 4.4. Representacin en notacin ASM de la instruccin SCO.

57
UNIVERSIDAD PRIVADA TELESUP

Salto de transformacin (ST)


La direccin del estado siguiente se obtiene del registro seleccionado por la lnea de
MAP . Este registro tambin est conectado a la entrada D. Aqu se introduce una
nueva notacin de carta ASM: un rombo con varias bifurcaciones. La bifurcacin que
se elija depender del contenido del registro seleccionado por MAP .

Figura 4.5. Representacin en notacin ASM de la instruccin ST.

Salto condicional usando la direccin de las interrupciones (SCI)


En esta instruccin se revisa el valor de CC , si es igual a uno, la direccin del estado
siguiente proviene del registro PC; si es igual a cero, la direccin del estado
siguiente, contenida en el registro seleccionado por VECT, ingresa a travs de la
entrada D.

Figura 4.6. Representacin en notacin ASM de la Instruccin SCI.


La lgica interna del secuenciador se construye a partir de la siguiente tabla.

58
UNIVERSIDAD PRIVADA TELESUP

Tabla. 4.1. Entradas y salidas de la lgica interna del secuenciador.

SECUENCIADORES Y MEMORIAS
La figura 4.7 muestra el diagrama de bloques de un secuenciador conectado a una
memoria.

Figura 4.7. Construccin de cartas ASM


usando un secuenciador bsico y memorias.

59
UNIVERSIDAD PRIVADA TELESUP

Usando este secuenciador, el contenido de la memoria para


la carta ASM de la figura 3.11 queda como se muestra en la
tabla 4.2.

Tabla 4.2. Contenido de la memoria para la figura 3.11 usando el secuenciador.

IMPLANTACIN DE CARTAS ASM USANDO SECUENCIADORES


En la siguiente figura se presenta una carta ASM en donde se hace uso de todas las
instrucciones que este secuenciador bsico puede ejecutar.

Figura 4.8. Carta ASM.

60
UNIVERSIDAD PRIVADA TELESUP

En el estado EST2 la direccin del estado siguiente est determinada por el contenido
del registro de transformacin, seleccionado cuando el secuenciador ejecuta la
instruccin ST. En el estado EST4, la direccin del estado siguiente la proporciona el
registro de interrupciones o el registro PC dependiendo del valor de la entrada INT.
La asignacin binaria de las variables de entrada para la carta ASM es la siguiente:
Qx = 00
X = 01
Y = 10
INT = 11
Con Qx igual a 0 lgico, es decir, Qx presenta un nivel lgico bajo. La tabla 4.3
muestra el contenido de la memoria para la carta ASM de la figura 4.8
.

Tabla 4.3. Contenido de la memoria para la carta ASM de la figura 4.8.

61
UNIVERSIDAD PRIVADA TELESUP

Componentes
TEMA 2
Bsicos
de un
Procesador
Competencia:
Describir los componentes bsicos y
funcionalidades de un procesador.

62
UNIVERSIDAD PRIVADA TELESUP

Tema 02: Componentes Bsicos de un


Procesador

En este tema se disearn algunos de los componentes que integran


una computadora. En la figura 5.1 se muestra el diagrama de bloques
general de una computadora.

Figura 5.1. Estructura bsica de una computadora.

Como se observa en el diagrama de bloques, una computadora


est constituida internamente por cinco bloques bsicos:
1. Unidad de Control de la Computadora (UCC). Se encarga
de enviar las seales de control a los dems elementos de
la computadora.
2. Unidad de Procesos Aritmticos (UPA). En ella se realizan todas las operaciones
lgico aritmticas.
3. Unidad de Control de Programa (UCP). Calcula la direccin de la siguiente
instruccin a ser ejecutada.
4. Unidad de Registros Internos. Conjunto de registros capaces de almacenar
informacin.

63
UNIVERSIDAD PRIVADA TELESUP

5. Unidad de Control de Interrupciones (UCI). Se encarga del manejo de las


interrupciones externas. A continuacin se describe cada uno de estos
componentes.

UNIDAD DE CONTROL DE LA COMPUTADORA (UCC)


La UCC se encarga de decodificar las instrucciones en ensamblador y de ejecutar las
microoperaciones necesarias (representadas por medio de cartas ASM) para llevarlas
a cabo. Esto es, por cada instruccin en lenguaje ensamblador, sern activadas
secuencialmente una serie de seales que le indican a los diferentes componentes de
la arquitectura la operacin a realizar. La parte fundamental de la UCC es el
secuenciador, como se muestra en la figura 5.2.

Figura 5.2. Unidad de control de la computadora (UCC).

64
UNIVERSIDAD PRIVADA TELESUP

Como se vio en el captulo anterior, la direccin de salto en la entrada


D del secuenciador puede venir de tres lugares diferentes: del
registro de instruccin, de la unidad de control de interrupciones,
del campo de liga de la memoria de microprograma. La figura 5.2
ilustra esta configuracin. El tamao de la palabra de las
instrucciones codificadas es de 8 bits. Este nmero es cargado en el
registro de instrucciones y extendido de 8 a 12 bits mediante la adicin de cuatro ceros
a la derecha. Este nuevo valor es la direccin en la memoria de microprograma en
donde comienzan las micro-operaciones que ejecuta esta instruccin.

En el campo de salidas de la memoria de microprograma se tienen las lneas que


controlan tanto a la arquitectura interna como a la externa, las cuales se activan segn
la instruccin a ejecutar. Por otra parte, las entradas de la arquitectura indican el
estado en el que se encuentra tanto la arquitectura interna como la externa, y sirven
para que el secuenciador pueda tomar decisiones de acuerdo a ciertos criterios. Estas
entradas son seleccionadas en el bloque de lgica de seleccin por medio del campo
de prueba. La lnea de INT tambin se conecta a la lgica de seleccin para revisar si
existe alguna peticin de interrupcin. Otra forma alternativa de disear la UCC es
utilizando los lenguajes de descripcin de hardware como Verilog HDL, VHDL AHDL.
Utilizando alguno de estos lenguajes y el cdigo de la instruccin que se desea
ejecutar, es posible describir los pasos requeridos para ejecutar dicha instruccin. En
el captulo 6 se mostrar un ejemplo de cmo hacer esto.

UNIDAD DE PROCESOS ARITMTICOS (UPA)


La unidad de procesos aritmticos (UPA) se encarga de
realizar las operaciones lgico
aritmticas bsicas. Para ello, cuenta con una unidad lgico
aritmtica que le permite hacer sumas, restas, y operaciones
lgicas AND, OR exclusiva, OR exclusiva negada, entre
otras. La UPA tambin cuenta con un registro de corrimiento auxiliar para guardar
valores intermedios que posteriormente operar. La figura 5.3a muestra una UPA de
ocho bits basada en una UPA fabricada por AMD de cuatro bits (D2901).

65
UNIVERSIDAD PRIVADA TELESUP

Este dispositivo, como en el caso del secuenciador, no existen fsicamente en la


actualidad, sino como un mdulo en software que puede ser integrado en un sistema
digital. El apndice B muestra la realizacin de stos mdulos usando el lenguaje de
descripcin de hardware Verilog HDL en el entorno MAX+PLUS II. Como se observa
en la figura 5.3a, las fuentes de la unidad lgico aritmtica pueden venir de cinco
lugares diferentes: de la entrada A, de la entrada B, del registro de corrimientoauxiliar
Q, de la entrada de datos D y el valor de cero. El resultado de la operacin de la ALU
puede ser desplazado a la derecha o a la izquierda antes de ser guardado en alguno
de los registros de destino. Estos registros de destino son el registro de corrimiento
Yupa y el registro de corrimiento Q. Adems, observe que la seal DUPA habilita o no
la carga de un resultado o de un corrimiento en los registros de destino. El diagrama
de bloques de la UPA se muestra a continuacin.

Figura 5.3a. Diagrama de bloques de la unidad de procesos aritmticos (UPA).

66
UNIVERSIDAD PRIVADA TELESUP

Figura 5.3b. Unidad de procesos aritmticos (UPA).

Las tablas 5.1A, 5.1B y 5.1C muestran la relacin existente entre las lneas de control
de la UPA (UPA9:UPA0) y las operaciones que sta puede ejecutar. En particular, la
tabla 5.1A presenta la seleccin de las fuentes de la ALU, la tabla 5.1B las
operaciones que ejecuta la ALU, y la tabla 5.1C los destinos y desplazamientos del
resultado obtenido por la ALU.

Tabla 5.1A. Seleccin de las fuentes de la ALU y lneas de control para el


contador de 3 bits.

67
UNIVERSIDAD PRIVADA TELESUP

Tabla 5.1B. Operaciones de la ALU.

Cuando se ejecuta alguna de estas operaciones, los resultados almacenados en los


registros Yupa y Q no deben ser alterados, por lo tanto, es necesaria la activacin de
la seal DUPA.

Tabla 5.1C. Destinos y desplazamientos de la UPA.

Por ejemplo, para realizar la operacin lgica OR entre las entradas A y B, y colocar el
resultado en el registro Yupa, se necesitan activar las siguientes lneas.
1. Las fuentes A y B se seleccionan con UPA3 UPA2 UPA1 UPA0 = 0001
2. La funcin OR se selecciona con las lneas UPA6 UPA5 UPA4 = 011
3. El destino Yupa se selecciona con las lneas UPA9 UPA8 UPA7 = 000

68
UNIVERSIDAD PRIVADA TELESUP

La siguiente figura muestra la activacin de las seales de control de la UPA para


efectuar la operacin Yupa=AB usando cartas ASM.

Figura 5.3c. Activacin de las lneas de control en una carta ASM.

La UPA tambin tiene unas lneas de salida que reflejan el resultado de la ltima
operacin hecha por la ALU. La lnea Z indica si el resultado fue cero; SIGNO indica el
valor del bit ms significativo; y OVR indica si hubo sobreflujo. Tambin se cuenta con
dos lneas de acarreo: uno de entrada y otro de salida

69
UNIVERSIDAD PRIVADA TELESUP

Registros TEMA 3

Internos

Competencia:
Reconocer las funciones y operaciones de la
unidad de registros internos.

70
UNIVERSIDAD PRIVADA TELESUP

Tema 03: Registros Internos

REGISTROS INTERNOS:
La computadora que disearemos requiere una serie de registros
de 8 y 16 bits que tanto el usuario como el CPU pueden utilizar. Los
registros de 8 bits, denominados acumuladores, sirven nicamente
como dispositivos de almacenamiento. Los registros de 16 bits,
denominados registros contadores, tienen mayor funcionalidad,
pues adems de servir como dispositivos de almacenamiento,
permiten incrementar o decrementar el dato guardado.

REGISTROS ACUMULADORES
Los registros acumuladores de 8 bits estn conectados directamente a las entradas de
la UPA, de esta manera se pueden efectuar operaciones lgico aritmticas en forma
directa. La figura 5.4 muestra el diagrama de bloques del acumulador. Como puede
observar, el acumulador est formado por un registro latch y por tres transeivers.
Los transeivers tienen la funcin de aislar o conectar el latch a los diferentes buses de
datos del acumulador (A, B y C).

Figura 5.4. Diagrama de bloques del acumulador.

71
UNIVERSIDAD PRIVADA TELESUP

Las lneas de control E1 y E0 permiten seleccionar alguno de los buses de entrada


conectados al acumulador. La tabla 5.2 muestra la relacin existente entre estas
lneas y el bus que seleccionan.

Tabla 5.2. Relacin entre las seales de control E1:E0


y los buses que seleccionan.

La lnea w habilita la carga de datos en el acumulador, de manera que si presenta un


nivel lgico bajo (0), escribir el dato del bus seleccionado en el latch. Si por el
contrario, presenta un nivel lgico alto (1), entonces el registro latch estar habilitado
slo para lectura. Tambin existen dos seales de salida: la bandera de cero (Z) y la
bandera de negativo (N). La bandera Z vale uno si el dato en el acumulador es cero, y
vale cero en caso contrario. La bandera N refleja el signo del nmero guardado, dicho
signo est dado por el bit ms significativo del acumulador.

Figura 5.5. Diagrama del acumulador.

72
UNIVERSIDAD PRIVADA TELESUP

ALGORITMO DE LA MULTIPLICACIN
La siguiente figura muestra una configuracin de la UPA con los registros
acumuladores para efectuar la multiplicacin de dos nmeros. Tenga en cuenta que el
algoritmo de multiplicacin debe estar implementado en la mquina de estados.

Figura 5.6. Acumuladores A y B conectados a la UPA para efectuar la


multiplicacin de dos nmeros.

Usando como base este diseo se pueden efectuar multiplicaciones. El siguiente


ejemplo ilustra la multiplicacin de 2 valores de 8 bits cada uno.

73
UNIVERSIDAD PRIVADA TELESUP

Bsicamente, esta multiplicacin se puede hacer con sumas y corrimientos. El


siguiente algoritmo muestra cmo hacer la multiplicacin.
B = Multiplicando
A = Multiplicador
Q=A
A=0
FOR j = 0:7
IF (Q0 = 1) THEN A = A + B
Q = Corrimiento a la derecha de Q un bit, con Q7 = A0
A = Corrimiento a la derecha de A un bit. Si Q0 = 1 entonces A7 = Acarreo de A+B, si
no A7 = 0
END FOR
B=Q

Finalmente, el resultado de AxB queda en los acumuladores A (parte ms significativa)


y B (parte menos significativa). La siguiente tabla muestra los clculos efectuados por
la UPA para obtener el resultado de AxB.

Tabla 5.3. Operaciones para efectuar la multiplicacin de A por B.

El resultado final queda: AB = 0000 0000 0010 0011.

74
UNIVERSIDAD PRIVADA TELESUP

REGISTRO CONTADOR DE 16 BITS


La figura 5.8a muestra un registro contador de 16 bits, y tres transeivers que lo aslan
o lo conectan a los buses de la arquitectura.

Fi

Figura 5.8a. Diagrama de bloques de un registro contador de 16 bits.

Figura 5.8b. Registro contador de 16 bits.

75
UNIVERSIDAD PRIVADA TELESUP

La tabla 5.4 muestra la relacin entre las lneas de control C2, C1 y C0, y las
operaciones que realiza el contador.

Tabla 5.4. Operaciones del registro contador.

Finalmente, las seales E2 , E1 y E0 permiten seleccionar los buses de entrada/salida


en el registro. Por ejemplo, E2 selecciona el bus E, E1 selecciona el bus C y E0
selecciona el bus D.

UNIDAD DE CONTROL DE PROGRAMA (UCP)


La UCP se encarga de calcular la direccin de memoria en donde se encuentra el
cdigo de la siguiente instruccin a ejecutar. Para esto, cuenta con un registro
denominado contador de programa (PC) que contiene la direccin de la siguiente
instruccin a ejecutar, y de un registro llamado apuntador de pila (AP) que apunta a
una memoria en donde se guardan las direcciones de regreso de las llamadas a
subrutinas. La figura 5.9 muestra el diagrama de bloques de la UCP.

76
UNIVERSIDAD PRIVADA TELESUP

Como puede observar, la UCP cuenta con dos registros contadores de 16 bits
del mismo tipo que los explicados en el inciso anterior.

Figura 5.9. Unidad de control de programa (UCP).

REGISTRO DE ESTADOS O BANDERAS


El registro de banderas contiene los valores de ocho variables que indican el estado
de los distintos componentes de la arquitectura. Estos valores pueden venir de
alguno de los elementos que integran a la arquitectura, o bien, del bus de datos.

El registro de estados est formado por las siguientes banderas:


C: Bit de acarreo/borrow.
V: Bit de sobreflujo.
Z: Bit de cero. Indica si el resultado de la ltima operacin que se realiz en la UPA, o
el valor guardado en alguno de los registros, es igual a cero.
N: Bit de negativo. Indica el signo del resultado de la UPA, o del valor guardado en
alguno de los registros.
I: Bit de interrupcin I. Habilita con un cero, y deshabilita con un uno, las interrupciones
conectadas a la lnea IRQ.
H: Bit de medio acarreo. Acarreo de 4 bits de la UPA. Se utiliza en operaciones donde
se usan nmeros con formato BCD.
X: Bit de interrupcin X. Habilita con un cero, y deshabilita con un uno, las
interrupciones conectadas a la lnea XIRQ .
S: Bit de stop. Pone al microprocesador en bajo consumo de energa.

77
UNIVERSIDAD PRIVADA TELESUP

Cada vez que se ejecuta una instruccin en ensamblador, el registro de estados es


actualizado con nuevos valores de banderas. Estos valores, dependiendo de la
instruccin que se ejecut, pueden provenir de los registros acumuladores, de los
registros de 16 bits, de la UPA, del bus de datos, o de ningn sitio, es decir, no son
modificados.
El siguiente diagrama muestra la estructura externa de este registro, tambin
denominado CCR (Condition Code Register).

Figura 5.10. Estructura externa del registro de banderas

UNIDAD DE CONTROL DE INTERRUPCIONES (UCI)


La UCI se encarga de recibir peticiones de interrupciones externas. Tales peticiones
provienen de alguno de los dispositivos conectados a las lneas IRQ y XIRQ . Como
respuesta, la UCI enva una direccin de salto al secuenciador indicndole el inicio del
algoritmo de mquina de estados que atiende la interrupcin pedida.

Antes de atender la interrupcin, el algoritmo de la mquina de estados guarda en la


pila la direccin de la siguiente instruccin a ser ejecutada, direccin que est
contenida en el registro PC. Los valores de los acumuladores, de los registros X e Y, y
del registro de estados, tambin son guardados en la pila. Una vez guardados estos
datos, el contador de programa (PC) se carga con la direccin de inicio de la rutina de
atencin a la interrupcin.

78
UNIVERSIDAD PRIVADA TELESUP

Figura 5.12. Diagramas de bloques externo de la UCI.

En el registro de banderas del 68HC11 se tienen dos bits que activan o desactivan las
interrupciones que provienen de los dispositivos conectados a las lneas IRQ y XIRQ .
Las desactivaciones se pueden hacer por medio de instrucciones de software, de
manera que el usuario tiene el control directo sobre estas lneas. Por otra parte, la
interrupcin XIRQ tiene prioridad sobre la interrupcin IRQ, as que si ocurrieran al
mismo tiempo, la primera que se atendera sera XIRQ y despus IRQ.
En la figura 5.13 se muestra el diagrama de bloques de la unidad de control de
interrupciones. Las lneas X Reg. de Estados e I Reg. de Estados estn conectadas
directamente a los bits que habilitan las interrupciones, con un cero se habilitan y con
un uno se deshabilitan. Las lneas SET_XIRQ y SET_IRQ deshabilitan las
interrupciones cuando hay un reset. Las lneas HINT y DINT sirven para deshabilitar y
habilitar la generacin de la lnea que indica la presencia de una interrupcin (INT). Y
los registros de direcciones I y X contienen las direcciones a donde tiene que saltar el
secuenciador en caso de que ocurriera una interrupcin.

Figura 5.13. Diagrama de bloques de la unidad de control de interrupciones


(UCI).

79
UNIVERSIDAD PRIVADA TELESUP

Diseo
de un TEMA 4
Microprocesador
de
8 Bits
Competencia:
Disear adecuadamente microprocesadores
de 8 bits utilizando un lenguaje
ensamblador.

80
UNIVERSIDAD PRIVADA TELESUP

Tema 04: Diseo de un Microprocesador de


8 Bits

En el tema anterior fueron diseados los componentes


bsicos de una computadora. Ahora se muestra cmo hacer
la interconexin de esos elementos, y la manera de
controlarlos utilizando mquinas de estados. Si se desea
que el microprocesador ejecute un conjunto de instrucciones
en lenguaje ensamblador, ser necesario codificar cada instruccin en varias
operaciones, de manera que sean totalmente entendibles para el microprocesador. La
metodologa a seguir son las mquinas de estados. Por lo tanto, para cada instruccin
en ensamblador existir un algoritmo de mquina de estados, que activar o
desactivar secuencialmente, las lneas de control de la arquitectura.

La figura 6.1 presenta el diagrama general de interconexin de la computadora.


Usando como referencia esta figura, los pasos para ejecutar una instruccin en
lenguaje ensamblador, residente en memoria externa, son los siguientes.

1. La UCP carga la direccin de la siguiente instruccin en el registro de


direcciones, y se habilita la memoria para lectura. El contenido de la direccin
seleccionada, con el cdigo de la instruccin, es colocado en el bus de datos
externo.
2. El cdigo de la instruccin entra por el buffer de datos y se carga en el registro
de instruccin.
3. La UCC decodifica la instruccin, es decir, salta a la direccin de microprograma
dada por el cdigo de la instruccin, en donde comienzan las micro-operaciones
que sern ejecutadas.

81
UNIVERSIDAD PRIVADA TELESUP

4. Trae los operandos si as lo requiere la instruccin en ensamblador.


5. Si se trata de una operacin lgico aritmtica, se le indica a la UPA la operacin
a ejecutar.
6. Guarda el resultado en el lugar indicado por la instruccin en ensamblador y se
actualizan las banderas o estados.
7. La UCP prepara la direccin de la siguiente instruccin a ejecutar, pero antes, la
UCC revisa si hay interrupciones y efecta el procedimiento de atencin a
interrupciones si es necesario.

La tarea de control ser ejecutada por la UCC, quien activar las lneas de control de
los distintos componentes de la arquitectura, de acuerdo a los algoritmos de mquinas
de estados implantados.
Recuerde que la activacin de las lneas de control de la arquitectura se representan
como salidas en un estado de una carta ASM.
A continuacin se muestra la arquitectura del 68HC11 con los componentes
desarrollados en la unidad anterior. Tambin se describe la funcin de las lneas de
salida de la memoria de microprograma, lneas que controlan el funcionamiento de la
arquitectura.

82
UNIVERSIDAD PRIVADA TELESUP

83
UNIVERSIDAD PRIVADA TELESUP

TIPOS DE INSTRUCCIONES DE ENSAMBLADOR DEL 68HC11


Las instrucciones en lenguaje ensamblador que puede ejecutar el microprocesador
68HC11, dependen de la forma en la que se acceden los datos. A continuacin se
explica brevemente, los seis tipos de acceso que existen.
Acceso inmediato
Las instrucciones que utilizan el acceso inmediato tienen el siguiente formato: el primer
byte de la instruccin corresponde a su cdigo de operacin, y el segundo byte al valor
de un dato de 8 bits. Un ejemplo es la instruccin ADDA #Dato. Esta instruccin suma
al acumulador A el contenido de la localidad de memoria siguiente al cdigo de la
instruccin. Note que el dato est precedido por el smbolo #, que se emplea para
diferenciar este tipo de acceso de los dems.

Figura 6.2. Acceso inmediato

Acceso extendido
Las instrucciones que utilizan el acceso extendido tienen el siguiente formato: el
primer byte corresponde al cdigo de operacin de la instruccin, y los dos
bytes siguientes a una direccin de 16 bits que contiene el valor del
operando. Un ejemplo es la instruccin ADDA Direccin_16_Bits. Esta
instruccin suma al acumulador A el dato contenido en la localidad de
memoria dada por Direccin_16_Bits.

Figura 6.3. Acceso extendido.

84
UNIVERSIDAD PRIVADA TELESUP

Acceso directo
Las instrucciones que utilizan el acceso directo tienen el siguiente formato: el primer
byte corresponde al cdigo de operacin de la instruccin, y el segundo byte a una
direccin de 8 bits que contiene el valor del operando. Un ejemplo es la instruccin
ADDA Direccin_8_Bits. Esta instruccin suma al acumulador A el dato contenido en
la localidad de memoria dada por Direccin_8_Bits.

Figura 6.4. Acceso directo.

85
UNIVERSIDAD PRIVADA TELESUP

Acceso indexado
Las instrucciones que utilizan el acceso indexado tienen el siguiente formato: el primer
byte corresponde al cdigo de operacin de la instruccin, y el segundo byte a un
desplazamiento de 8 bits sin signo, que se emplea para calcular la direccin del
operando. La direccin del operando se calcula sumando el valor del desplazamiento
ms el contenido del registro X, el contenido del registro Y. Un ejemplo es la
instruccin ADDA Desplazamiento, X. Esta instruccin suma al acumulador A el dato
contenido en la direccin (Registro X) + Desplazamiento.

Figura 6.5. Acceso indexado

Acceso relativo
Las instrucciones que utilizan el acceso relativo tienen el siguiente formato: el primer
byte corresponde al cdigo de operacin de la instruccin, y el segundo byte a un
desplazamiento de 8 bits con signo, que se emplea para calcular la direccin de la
siguiente instruccin a ejecutar. Este tipo de acceso solo se utiliza en las instrucciones
de salto. La direccin de salto se obtiene sumando el contenido del registro PC ms el
desplazamiento.

Figura 6.6. Acceso relativo.

ACCESO INHERENTE: Este acceso no necesita operandos. El cdigo de la instruccin


es suficiente para saber el tipo de instruccin y la tarea que debe ejecutar. Ejemplo:
INX. Incrementa el contenido del registro X en una unidad.

86
UNIVERSIDAD PRIVADA TELESUP
Lecturas Recomendadas
CARACTERSTICAS BSICAS DE UN PROCESADOR
http://www.sisman.utm.edu.ec/libros/FACULTAD%20DE%20CIENCIAS%20ZOOT
%C3%89CNICAS/CARRERA%20DE%20INGENIER%C3%8DA%20EN%20INFORMA
TICA%20AGROPECUARIA/05/MICROPROCESADORES%20II/Procesador%20_H3_
.pdf

DISEO DE MICROPROCESADORES
http://profesores.fi-b.unam.mx/luist/archivos/MicroprocesadoresSavage.pdf

Actividades y Ejercicios

1. En un documento en Word elabore un informe detallado sobre los


registros internos de un procesador.
Envalo a travs de "Registros del Procesador".

2. En un documento en Word elabore un esquema describiendo los


componentes bsicos de un procesador y sus principales
funcionalidades.
Envalo a travs de "Componentes de un Procesador".

87
UNIVERSIDAD PRIVADA TELESUP
Autoevaluacin
1) Los dispositivos que son capaces de efectuar cartas ASM con llamadas a
subrutinas, son llamados:
a. Secuenciadores.
b. Estabilizadores.
c. Codificadores.
d. Calificadores.
e. Interacciones.

2) El secuenciador cuenta con una lgica interna que se encarga de generar las
seales que controlan al:
a. Microprocesador.
b. Multiplexor.
c. Secuenciador.
d. Procesador.
e. Disco duro.

3) Es la unidad que se encarga del manejo de las interrupciones externas.


a. Unidad de interrupciones aritmticas.
b. Unidad de interrupciones perifricas.
c. Unidad de procesos aritmticos.
d. Unidad de instrucciones particulares.
e. Unidad de control de interrupciones.

4) Los registros de 8 bits son denominados :


a. Acumuladores.
b. Gestionadores.
c. Calificadores.
d. Organizadores.
e. Verificadores.

5) Los registros de 16 bits son denominados registros:


a. Sumadores.
b. Contadores.
c. Acumuladores.
d. Limpiadores.
e. Generadores.

88
UNIVERSIDAD PRIVADA TELESUP

6) Los registros acumuladores estn conectados directamente a las entradas de


la:
a. Unidad de registros aritmticos.
b. Unidad de registros internos.
c. Unidad de procesos aritmticos.
d. Unidad de registros externos.
e. Unidad de instrucciones calificados.

7) Decodifica la instruccin, es decir, salta a la direccin de microprograma


dada por el cdigo de la instruccin, en donde comienzan las micro-
operaciones que sern ejecutadas.
a. La UCP.
b. La ASM.
c. La URI.
d. La UCC.
e. La UPR.

8) Cuntos tipos de acceso tiene el microprocesador 68HC11?


a. 5
b. 4
c. 3
d. 2
e. 6

9) Calcula la direccin de la siguiente instruccin a ser ejecutada.


a. Unidad de registros internos.
b. Unidad de control de supresores.
c. Unidad de control de programa.
d. Unidad de procesos aritmticos.
e. Unidad de instrucciones lgicas.

10) Conjunto de registros capaces de almacenar informacin.


a. Unidad de registros aritmticos.
b. Unidad de registros lgicos.
c. Unidad de procesos aritmticos.
d. Unidad de registros internos.
e. Unidad de instrucciones lgicas.

89
UNIVERSIDAD PRIVADA TELESUP
Resumen
UNIDAD DE APRENDIZAJE II:

Para el diseo de los mdulos de control de una computadora se requieren mquinas


de estados que sean capaces de ejecutar algoritmos ms complejos. Los dispositivos
que son capaces de efectuar cartas ASM con llamadas a subrutinas, estructuras DO
WHILE, iteraciones tipo FOR, entre otra, son llamados secuenciadores. El
secuenciador cuenta con una lgica interna que se encarga de generar las seales
que controlan al multiplexor.

La UCC se encarga de decodificar las instrucciones en ensamblador y de ejecutar las


microoperaciones necesarias (representadas por medio de cartas ASM) para llevarlas
a cabo. Esto es, por cada instruccin en lenguaje ensamblador, sern activadas
secuencialmente una serie de seales que le indican a los diferentes componentes de
la arquitectura la operacin a realizar.

Los registros internos de una computadora pueden ser de 8 y 16 bits. Los registros de
8 bits, denominados acumuladores, sirven nicamente como dispositivos de
almacenamiento. Los registros de 16 bits, denominados registros contadores, tienen
mayor funcionalidad, pues adems de servir como dispositivos de almacenamiento,
permiten incrementar o decrementar el dato guardado.

Para que un microprocesador ejecute un conjunto de instrucciones en lenguaje


ensamblador, ser necesario codificar cada instruccin en varias operaciones, de
manera que sean totalmente entendibles para el microprocesador. La metodologa a
seguir son las mquinas de estados. Por lo tanto, para cada instruccin en
ensamblador existir un algoritmo de mquina de estados, que activar o desactivar
secuencialmente, las lneas de control de la arquitectura.

90
UNIVERSIDAD PRIVADA TELESUP

91
UNIVERSIDAD PRIVADA TELESUP
Introduccin
a) Presentacin y contextualizacin

El pipeline o segmentacin encauzada, como se conoce en espaol, es una


tcnica utilizada en el diseo e implantacin de microprocesadores en la cual
mltiples instrucciones pueden ejecutarse simultneamente. La tcnica de la
segmentacin encauzada no reduce el tiempo que tarda una instruccin en
ejecutarse, slo incrementa el nmero de instrucciones que se ejecutan
simultneamente, tal como se ver en el siguiente tema.

b) Competencia
Reconoce las diferentes tcnicas de microprogramacin en procesadores y el
proceso adecuado de operacin para el logro de los diseos planeados.

c) Capacidades

1. Reconoce los elementos de microprogramacin y su adecuada representacin


grfica
2. Describe los procesos aplicados en la arquitectura durante la segmentada del
68HC11.
3. Reconoce los procesos de decodificacin de la instruccin y la lectura de
operandos.
4. Implementa los microprogramas o microinstrucciones en microprocesadores
cumpliendo con todos los procesos recomendados.

d) Actitudes

Promueve el cumplimiento adecuado en los procesos de microprogramacin.


Incentiva el anlisis de la arquitectura segmentada del 68hc11.

e) Presentacin de Ideas bsicas y contenido esenciales de la Unidad:

La Unidad de Aprendizaje 03: Microprogramacin, comprende el desarrollo de


los siguientes temas:

TEMA 01: Elementos de Microprogramacin.


TEMA 02: Arquitectura Segmentada del 68hc11.
TEMA 03: Decodificacin de la Instruccin.
TEMA 04: Microprogramas.

92
UNIVERSIDAD PRIVADA TELESUP

Elementos
TEMA 1
de
Microprogramacin

Competencia:
Reconocer los elementos de
microprogramacin y su adecuada
representacin grfica.

93
UNIVERSIDAD PRIVADA TELESUP
Desarrollo de los Temas
Tema 01: Elementos de Microprogramacin

La unidad de control de un computador puede parecer un


circuito cuya implementacin se efecta con relativa
facilidad. Sin embargo, realizar todas las interconexiones
necesarias de los dispositivos digitales requeridos para su
implementacin, as como el diseo lgico de la misma
para la toma de decisiones de acuerdo a las seales de estado
provenientes del procesador de datos, el secuenciamiento y ejecucin de las
diferentes microinstrucciones necesarias para ejecutar las instrucciones de mquina y
la interpretacin de los cdigos de operacin de estas ltimas puede resultar en una
tarea muy ardua.

Adicionalmente a lo anterior, la unidad de control as


diseada resulta ser muy poco flexible ya que es muy
difcil cualquier modificacin que se le quiera realizar
para, por ejemplo, adicionar una nueva instruccin al
computador, etc. Una alternativa es la unidad de control
microprogramada en la cual las seales de control que
inician las distintas microoperaciones estn almacenadas en forma permanente en
una memoria ROM. Las seales de control son ledas una a una con cada pulso de
reloj para iniciar la secuencia de las microoperaciones del sistema.

El contenido de cada localizacin de la memoria de control


se denomina microinstruccin y un conjunto de
microinstrucciones constituye el microprograma.
En el artculo presente se describe un control
microprogramado bsico para realizar el conteo del
nmero de 0s almacenado en un registro y se elabora el

94
UNIVERSIDAD PRIVADA TELESUP

microprograma correspondiente. Sistema digital de procesamiento de datos. El


esquema general de un sistema digital para el procesamiento de datos se
muestra en la figura 1.

Figura 1. Sistema digital para el procesamiento de datos

Como se muestra en esta figura, la informacin binaria encontrada en el sistema digital


puede estar constituda por datos o por informacin de control o
estado. Los datos se manipulan por microoperaciones elementales
como sumar, incrementar, etc. en el procesador de datos bajo el
mando y supervisin de la unidad de control. Las seales de
control especifican la secuencia en que se deben ir ejecutando
las microoperaciones en el procesador de datos de acuerdo con un
algoritmo establecido.

Las seales de estado son generadas por el procesador de


datos hacia la unidad de control para indicarle a esta ltima el
estado en que se encuentran los datos que estn siendo
procesados. La unidad de control analiza estas seales de
estado y de acuerdo al valor que tenga la misma toma la
decisin de cul es la siguiente microoperacin que debe ordenar ejecutar. A la unidad
de control tambin pueden llegar seales externas al sistema que tambin
condicionan la siguiente microoperacin que debe ordenar ejecutar en el procesador
de datos la unidad de control.

95
UNIVERSIDAD PRIVADA TELESUP

De acuerdo con lo anterior, toda pregunta en el flujograma del algoritmo que debe ser
ejecutado se asocia con una seal de estado o una seal externa de entrada al
sistema digital.
Existen diversas organizaciones para implementar una unidad de control. En el artculo
presente se disea una pequea unidad de control microprogramada utilizando
memoria EPROM que pueda servir como proyecto de curso a estudiantes de
Electrnica Digital para enfatizar sus conocimientos sobre el tema de
microprogramacin.

MICROOPERACIN
Se denomina microoperacin a toda operacin elemental
que puede ser ejecutada durante un perodo de los
pulsos de reloj. As por ejemplo, en el procesador de
datos que se muestra en la figura 2 se pueden ejecutar
dos microoperaciones.
1. A A + B : Suma el contenido del registro A con el
del registro B y el resultado
lo deja almacenado en A
2. A 0 : Borrar el contenido del registro A

La primera microoperacin puede ser ejecutada en un perodo de reloj haciendo la


seal de control cargarA=1. En el flanco positivo del tercer pulso de reloj, se carga en
el registro A la salida del sumador que tiene la suma de A+B. Observe que esta seal
de control coloca al registro A en el modo de operacin S1S0 = 11.
La segunda operacin se efecta hacindose la seal de control borrarA=1. Esto hace
que en el 5 pulso de reloj se coloque un 0 en la entrada asincrnica de CLR del
registro A, colocando a este registr en 0000.

96
UNIVERSIDAD PRIVADA TELESUP

ESTRUCTURA BSICA DE UN CONTROL MICROPROGRAMADO


La estructura bsica de un control microprogramado se muestra en la figura 3.
En sta se puede observar que se utiliza una memoria ROM en la cual est
almacenado el microprograma.

Figura 2. Microoperaciones A A+B y A 0

Cada contenido en una direccin de memoria constituye


una microinstruccin. Las microinstrucciones de la
microprograma se van obteniendo a la salida de la
memoria ROM secuencialmente con cada pulso de reloj al
incrementarse el registro de direcciones del control,
excepto cuando se trate de una microinstruccin de
bifurcacin o salto en el microprograma.

97
UNIVERSIDAD PRIVADA TELESUP

En el ejemplo, cada microinstruccin tiene 3 zonas o campos bien definidos: el


campo de control, el campo de seleccin y el c ampo de direccin.

Figura 3. Estructura bsica de un control microprogramado

1. Campo de control: cada bit de este campo


suministra las seales de control al procesador
de datos.
2. Campo de seleccin: selecciona una de las
entradas del multiplexor que puede ser una
seal de entrada externa o una seal de estado
proveniente del procesador de datos. Los bits
del campo de seleccin permiten seleccionar la
seal que condiciona una bifurcacin condicional
en el microprograma, o una bifurcacin incondicional seleccionando la entrada 0
del multiplexor.
3. Campo de direccin: proporciona la direccin hacia la cual se bifurca el
microprograma.

98
UNIVERSIDAD PRIVADA TELESUP

Por ejemplo, suponga que en la direccin 10 se encuentra la siguiente


microinstruccin de bifurcacin condicional:
10 : si C = 1 ir a 20 ; En esta microinstruccin, su campo de seleccin ser el 01 para
seleccionar la seal C y su campo de direccin sera 20 el cual estara aplicado a la
entrada del CAR. Entonces, si C=1, se coloca al CAR en el modo de carga y cuando
ocurra el flanco negativo del pulso de reloj se almacena la direccin 20 en el mismo y
a la salida de la ROM se obtiene la microinstruccin que se encuentra en esta
direccin. En caso contrario si C=0, se coloca al CAR en el modo de incremento y
pasa a la direccin siguiente en secuencia, es decir, la direccin 11. Si por ejemplo, la
microinstruccin 15 es la siguiente: 15 : ir a 32 Esta es una bifurcacin incondicional.
De acuerdo con lo anteriormente expuesto, el campo de seleccin de esta
microinstruccin debe ser 00 para seleccionar un 1 lgico fijo y colocar al registro en
el modo de carga. Su campo de direccin ser el 32. Si se tiene la siguiente
microinstruccin en la direccin 12:

12 : A A+B; En esta microinstruccin no se hace ninguna bifurcacin. Solamente la


suma planteada. Por tanto, su campo de seleccin
debe ser 00 para colocar al CAR en el modo de carga y
su campo de direccin el 13 para que se pase a la
siguiente microinstruccin en secuencia. El bit
correspondiente del campo de control por donde se
obtenga la seal cargarA debe ser 1 lgico. Una
microinstruccin puede contener una o ms microoperaciones separadas por una
coma. Por ejemplo: 18 : A A+B, si C=1 ir a 23
Se efecta la suma planteada y si la seal C=1 se bifurca a la microinstruccin que
est en la direccin 23. De lo contrario, se pasa a la microinstruccin siguiente en
secuencia que se encuentra en la direccin 19. Planteamiento del problema.

Hay disponibles 8 switches en un sistema. Se debe disear un sistema digital


que cuente el nmero de estos switches que se encuentren cerrados y coloque
este nmero en un display de 7 segmentos. Si el nmero de los switches
cerrados es un nmero impar, se debe iluminar un LED que indique error. Una
seal externa Com obtenida de una tecla debe comenzar la operacin de
conteo.

99
UNIVERSIDAD PRIVADA TELESUP

Utilice un control microprogramado similar al mostrado en la figura 3. Use


memorias EPROM 27C64 disponibles en el laboratorio de la universidad
Santiago de Cali. El diagrama funcional general se muestra en la figura 4.

Figura 4. Diagrama funcional

FLUJOGRAMA
El primer paso en el proceso de diseo ser construir el flujograma del sistema digital
como se muestra en la figura 5.

Figura 5. Flujograma del sistema

100
UNIVERSIDAD PRIVADA TELESUP

El sistema se encuentra esperando que la seal de la tecla Com


se haga 1. Cuando esto ocurre comienza el proceso de conteo
donde inicialmente se limpia el flip-flop de error y el contador C
donde quedar el resultado. Tambin se almacena el dato de los
switches en el registro A y se coloca el n 8 en el contador B
para analizar cada uno de los bits almacenados en el registro A y saber cundo
termina el proceso de conteo. El sistema se mantiene comprobando el bit A0 donde
van quedando los bits del registro A despus de efectuar un desplazamiento a la
derecha en el mismo. Cada vez que encuentre un 0 incrementa el contador C y
complementa al flip-flop de error para que de esta forma ste quede en el estado 1 si
hay un nmero impar de switches cerrados.

PROCESADOR DE DATOS
De acuerdo con la explicacin anterior, el procesador de
datos quedar como se muestra en la figura 6.
Al procesador de datos entran las siguientes seales de la
salida de la EPROM de control: Cargar, Limpiar, Despl, Incr,
Decr y Compl. Cargar: Coloca al registro A en el modo de
carga en paralelo (S1S0 = 11) para que almacene el dato en su entrada con el pulso
de reloj. Tambin almacena el dato que hay a la entrada del contador B, el nmero 8,
al aplicar un 0 a su entrada de LOAD.
Incr: Cuando Incr=1, se aplica un pulso de reloj a la entrada Up del contador C
incrementndolo.

Decr: Cuando Decr=1, se aplica un pulso de reloj a la entrada Down del contador B
decrementndolo.
Despl: Cuando Despl =1 (Carga=0), se coloca al registro A en el modo de
desplazamiento a la derecha (S1S0=01) para que haya un
desplazamiento una posicin hacia la derecha con la ocurrencia
de un pulso de reloj.
Compl: Cuando Compl=1, coloca las entradas JK del flip-flop de
error en 1 complementndolo. Limpiar: Cuando Limpiar=1 y
ocurra un pulso de reloj se aplica un 1 a la entrada de CLR del contador C y un 0 a la
entrada de CLR del flip-flop de error borrando a ambos.

101
UNIVERSIDAD PRIVADA TELESUP

En el flujograma se pregunta si A0 es 1 y tambin si el contenido del contador B


es 0. Por tanto Ao y Bz sern seales de estado hacia el control para responder
a estas preguntas. Observe que Bz=1 indica que el contenido de B=0.

Figura 6. Procesador de datos

Finalmente cuando el flip-flop de error se coloque en el


estado 1, error=0, por lo que se ilumina el LED. Observe
que las entradas CLRdel registro A, down y Loaddel
contador C, y up del contador B se encuentran inactivas
conectadas a un 1 fijo (+5v. a travs de una resistencia)
pus no se utilizan. Tambin se encuentra inactiva pus
tampoco se utiliza la entrada CLR del contador B la cual tiene un 0 fijo aplicado al
estar conectada a tierra.

102
UNIVERSIDAD PRIVADA TELESUP

El inversor a la entrada del reloj del flip-flop de error tiene como objetivo que
ste se complemente con el flanco positivo de los pulsos de reloj del sistema,
quedando con una diferencia de fase de 180 con respecto a estos ltimos.

MICROPROGRAMA
Del flujograma que se muestra en la figura 5, se puede
escribir fcilmente el microprograma simblico que se
muestra a continuacin:
Direccin Microinstruccin Comentarios
0 : Si Com=0 ir a 0; Espera que se presione la tecla
1 : Error0, C0, ASw, B8 ; Se inicializa el
sistema
2 : Si A0=1 ir a 4; Si A0=0 se incrementa C
3 : CC+1, ErrorError; Se encontr un 0 en A0
4 : BB-1, si Bz=1 ir a 0; Si contenido de B=0 se termina
5 : DesplazarDerA, A70,ir a 2 Se va a probar siguiente bit de A
Como se puede observar, ste es un microprograma sencillo que requiere solamente
de una memoria de 6 localizaciones para almacenarlo. Este dispositivo tan pequeo
no existe comercialmente, se utilizarn EPROM 27C64 por su disponibilidad.

CIRCUITO DEL CONTROL


Como nada ms son necesarias 6 localizaciones
de memoria se utiliza un contador binario de 4 bits
para el registro de direcciones del control, CAR,
que suministra las direcciones a la EPROM. Los
bits de cada microinstruccin estarn formados por
6 bits para las seales de control, 2 bits para el
campo de seleccin y 4 bits para el campo de
direccin, dando un total de 12 bits. Como la pastilla 27C64 solamente tiene 8 bits,
harn falta 2 pastillas para formar la EPROM del control como se muestra en la figura
7.

103
UNIVERSIDAD PRIVADA TELESUP

Figura 7. Circuito del control microprogramado

Como se puede observar, las seales de estado A0 y Bz


provenientes del procesador de datos van al multiplexor.
Igualmente va a este multiplexor la seal externa de la tecla
Com. Se lleva esta seal negada pus en el microprograma
se pregunta si esta seal =0.
La red RC que alimenta la entrada de CLR del registro de
direcciones del control tiene como objetivo colocar a ste en la direccin 0 cuando se
conecte la energa.

104
UNIVERSIDAD PRIVADA TELESUP

Para grabar los dispositivos de memoria EPROM con el programador universal Xeltek
del laboratorio de la universidad Santiago de Cali, en la tabla 1 se muestra el
microprograma binario encontrado fcilmente a partir del microprograma simblico y
de las conexiones efectuadas en el circuito del control que se muestra en la figura 7.

Por ejemplo, en la microinstruccin que se encuentra


en la direccin 4, el bit 2 es igual a 1 para hacer la
seal de control Decr=1 y decrementar el contador
B. Su campo de seleccin, los bits 7 y 8, es igual a
10 para seleccionar la seal Bz en el multiplexor y su
campo de direccin tiene 0000, la cual es la
direccin a la cual tiene que bifurcarse el microprograma si Bz=1.
Como los cuatro bits de menor orden de la EPROM2 no se estn utilizando se pueden
grabar los mismos con 0000.

Para la grabacin de los datos en los dispositivos de


memoria EPROM se utilizar un programador
universal marca XELTEK disponible en el laboratorio
de la universidad Santiago de Cali conectado al
puerto paralelo de la impresora de un computador
personal habilitado para este objetivo.
Despus de conectar la energa elctrica al
programador, abra el programa SuperPro Lx(L+), asegurndose de no tener colocado
todava ningn circuito integrado al programador universal.

105
UNIVERSIDAD PRIVADA TELESUP

Si no aparece ningn error en la pantalla del computador, haga click en Select para
seleccionar la memoria 27C64. Inserte su dispositivo en la base disponible en el
programador y haga click en Edit para introducir los datos que deben ser grabados en
cada direccin de memoria. Las direcciones de memoria en la EPROM 27C64 van de
0000hex a 1FFFhex. Una vez introducidos los datos, la ventana de Buffer Edit
aparecer como se muestra en la tabla 2 para el caso de la EPROM1.

Las direcciones y los datos en esta tabla se encuentran


en hexadecimal. En cada fila hay 16 localizaciones,
correspondiendo la direccin que aparece en la
columna de la izquierda a la direccin de la primera
localizacin de la fila. Cuando en una localizacin no
se graba ningn dato aparece FF. Todas las
localizaciones de todas las filas comenzando en la
direccin 0010 contendrn FF por lo que haga click en Fill. Coloque 0010 en Fill Start
Adress, 1FFF en Fill End Adress y FF en Fill Data.
Luego de esta operacin haga click en OK para llenar toda la tabla.

Una vez terminado de introducir los datos, haga click en Prog para que su memoria
quede grabada con los datos introducidos. Igualmente se graba la EPROM2 sabiendo
que los datos a introducir, a partir del microprograma binario, son 00,
20,40,40,00,20hex a partir de la direccin 0000. Tecla Com y Display Los circuitos de
la Tecla Com y del display se muestran en la figura 8.

106
UNIVERSIDAD PRIVADA TELESUP

Figura 8. Tecla Com y display

En el circuito de la tecla se han utilizado dos


compuertas NAND con una interconexin
cruzada para formar un latch que elimine el
ruido de rebote. Igualmente se utiliza el
circuito integrado 74LS47 el cual consiste de
un decodificador de colector abierto BCD/7
segmentos cuyas salidas se activan con 0
para alimentar al display NTE 3050 de nodo comn. Las resistencias de 220 ohmios
tienen como objetivo limitar las corrientes que circulan por los LEDs. Generador de
pulsos.

Para obtener los pulsos de reloj del sistema se utiliza el circuito integrado LM555.
Este circuito opera como un Timer, el cual, con los valores de resistencias y
capacitores utilizados genera una seal de pulsos en su salida de frecuencia 1 KHz.
Este circuito se muestra en la figura 9. En la misma se ha utilizado una configuracin
para que el circuito se comporte como oscilador con un ciclo til (duty cycle) de
aproximadamente un 50%.

107
UNIVERSIDAD PRIVADA TELESUP

Figura 9. Generador de pulsos

108
UNIVERSIDAD PRIVADA TELESUP

Arquitectura TEMA 2
Segmentada
del 68hc11

Competencia:
Describir los procesos aplicados en la
arquitectura durante la segmentada del
68HC11.

109
UNIVERSIDAD PRIVADA TELESUP

Tema 02: Arquitectura Segmentada del


68HC11

Si revisamos detenidamente el repertorio de instrucciones del 68HC11 notaremos que


cada instruccin ejecuta una serie de pasos. En general, los
pasos a seguir son los siguientes.
1. Traer de la memoria la instruccin que se desea
ejecutar (a este paso se le conoce como ciclo fetch
bsqueda de la instruccin)
2. Decodificacin de la instruccin
3. Si la instruccin requiere leer un operando de la memoria, entonces se calcula la
direccin efectiva de ese operando y se lee el dato de la memoria

4. Si lo requiere la instruccin, se leen de los registros internos del microprocesador


los operandos necesarios
5. Ejecucin, es decir, se realiza una operacin en la
unidad de procesos aritmticos con los operandos
ledos anteriormente
6. Se guardan los resultados de la operacin y se
actualiza el registro de banderas Observe que estos pasos son similares a los
ejecutados en las cartas ASM para las instrucciones vistas en el captulo VI.

La arquitectura segmentada del 68HC11 tambin ejecutar estos mismos pasos, pero
agrupados en las siguientes cuatro etapas:
1. Etapa IF (traer la instruccin / instruction fetch). La instruccin a ejecutar es leda
de la memoria de instrucciones
2. Etapa ID (decodificacin / instruction decode). Se decodifica la instruccin y se
traen los operandos necesarios por la instruccin (tanto de memoria como de
registros internos)
3. Etapa EX (ejecucin / execution). Se procesan los operandos en la UPA (unidad
de procesos aritmticos)
4. Etapa WB (post-escritura / write back). Se guardan resultados

110
UNIVERSIDAD PRIVADA TELESUP

A continuacin se describen las tareas que se ejecutan en cada etapa y se presenta


un diagrama de bloques con el hardware necesario para su implantacin. Hay que
tener presente que esta arquitectura no soporta todo el conjunto de instrucciones del
68HC11; algunas instrucciones no son soportadas y otras requieren redefinir el
formato de la instruccin, o agregar hardware adicional, para su posible implantacin.

ETAPA 1 - Lectura de la instruccin


El primer paso que realiza todo microprocesador es leer
de memoria la siguiente instruccin a ejecutar.
Recordemos que en la arquitectura secuencial del
68HC11, el primer paso que se realiza para cada
instruccin es su ciclo fetch, es decir, traer de memoria
la instruccin a ejecutar. Enseguida, si la instruccin lo
requera, tambin eran ledos de memoria los datos y/o las direcciones en memoria de
los datos. Este proceso necesitaba acceder a memoria cierto nmero de veces, segn
la instruccin que se tratase.

Para una arquitectura segmentada, acceder tantas veces a la memoria complica el


hardware y retrasa el comienzo de la siguiente instruccin a ejecutar. No olvide que la
segmentacin encauzada recomienda que el flujo de datos sea siempre hacia
adelante, es decir, que se avance hacia etapas posteriores en el cauce; sin embargo,
habr etapas, como la de post-escritura, en la que se necesitar retroceder en el
cauce. Una manera de evitar los accesos a memoria repetidamente es leyendo en una
sola pasada toda la informacin que la instruccin vaya a necesitar, esto es, leer el
cdigo de operacin de la instruccin, leer los datos inmediatos y leer las direcciones
de memoria.

111
UNIVERSIDAD PRIVADA TELESUP

Para ello, el tamao de la instruccin para el 68HC11 segmentado ha sido extendido a


32 bits, los cuales contendrn toda la informacin necesaria segn el modo de
direccionamiento del que se trate. Adems, la memoria externa ser separada en
memoria de instrucciones o programa y en memoria de datos. Como resultado del
aumento en el tamao de la instruccin, el formato de sta se ha modificado de la
siguiente manera.

Figura 7.4. Formato general para las instrucciones del 68HC11 segmentado.

El campo ID, bits 31 al 24, sirven para especificar sobre qu registro ndice se va a
operar, es decir, se trata del registro ndice IX del
registro IY. El campo CDIGO, bits 23 al 16, guardan el
cdigo de operacin de la instruccin, tal y como lo establece
el conjunto de instrucciones del 68HC11. Y los bits 15 al 0
pueden almacenar el valor de un dato inmediato, una direccin,
un desplazamiento, nada, segn el modo de direccionamiento que se trate.

Los formatos vlidos para los bits 15 al 0 se muestran en la siguiente tabla.

Tabla 7.1. Contenido para los 16 bits menos significativos del formato de instrucciones.

112
UNIVERSIDAD PRIVADA TELESUP

A continuacin se analizan algunos ejemplos para dejar en claro el formato de


instrucciones.

El campo cdigo, 0x86, nos indica que la instruccin a ejecutar es ldaa con modo de
direccionamiento inmediato. El dato inmediato, 0x1234, se encuentra guardado en los
16 bits menos significativos del formato de la instruccin.

El campo cdigo, 0x08, junto con el campo ID, 0x18, nos indican que la instruccin a
ejecutar es iny. Como iny utiliza el modo de direccionamiento inherente, el resto de los
campos no son relevantes.

El campo cdigo, 0xF7, nos indica que la instruccin a ejecutar es stab con modo de
direccionamiento extendido. La direccin extendida, 0x5048, se encuentra guardada
en los 16 bits menos significativos del formato de la instruccin.

La siguiente figura muestra los formatos de instruccin genricos para los modos de
direccionamiento directo y extendido.

Figura 7.5. Formatos para los modos de direccionamiento directo y extendido.

113
UNIVERSIDAD PRIVADA TELESUP

Note que en ambos casos se estn ocupando los 32 bits del


formato de la instruccin, por lo tanto, resulta poco efectivo
mantener ambos formatos, ya que con el modo extendido es
posible manejar el modo directo. Algo similar ocurre con el
formato de los desplazamientos con signo, y con el formato
de los datos inmediatos de 8 y 16 bits. An con el
conocimiento de que hay formatos repetidos innecesarios, stos sern mantenidos
con el fin de adaptar la nueva arquitectura al conjunto de instrucciones que ya
habamos manejado anteriormente. Finalmente, el hardware para la etapa de la lectura
de la instruccin queda de la siguiente manera.

Figura 7.6. Hardware para la etapa IF - Lectura de la instruccin.

114
UNIVERSIDAD PRIVADA TELESUP

Decodificacin TEMA 3
de la
Instruccin

Competencia:
Reconocer los procesos de decodificacin de
la instruccin y la lectura de operandos.

115
UNIVERSIDAD PRIVADA TELESUP

Tema 03: Decodificacin de la Instruccin

Durante esta etapa, la instruccin leda en la etapa anterior es


decodificada. Una vez que se conoce la instruccin a ejecutar,
el mdulo de control genera las seales de control que
gobernarn el hardware de esta etapa y de etapas posteriores.
Por ejemplo, las seales de control que se emplean en la
segunda etapa se encargan de informarle a los distintos
componentes de esta etapa qu operaciones realizar. Estas operaciones consisten en
lectura de operando de registros, clculo de direcciones, lectura de operando de la
memoria de datos, principalmente. Obsrvese que la memoria de instrucciones o de
programa ha sido separada de la memoria de datos, pues de estar unidas, la continua
lectura de operando y escritura de resultados demorara la lectura de la siguiente
instruccin a ejecutar.

El hardware para esta etapa se muestra en la figura 7.7.

Figura 7.7. Hardware para la etapa ID - Decodificacin de la instruccin y lectura


de operandos.

116
UNIVERSIDAD PRIVADA TELESUP

El mdulo de control de la figura 7.7 es el encargado de generar todas las seales de


control. Algunas de estas seales sern utilizadas durante esta etapa y otras sern
guardadas en los registros de segmentacin para su utilizacin en etapas posteriores.
La generacin de las seales de control es posible gracias a la informacin que le
brindan al mdulo las lneas instr[31:16], pues estas lneas transportan el cdigo de
operacin de la instruccin con la informacin suficiente para saber de qu instruccin
se trata y su modo de direccionamiento. Por otra parte, en el mdulo de registros
internos se encuentran los acumuladores A y B, y los registros internos IX, IY, SP y
AUX. Todos estos registros son de 16 bits de tamao. El siguiente diagrama muestra
la disposicin de todos ellos dentro del mdulo.

Figura 7.8. Mdulo de registros internos.

La lnea de control SelRegR le indica al mdulo qu


registros deseamos leer; la lnea SelReg W leindica en
qu registro se desea escribir el valor de DatoW; y las
salidas D1 y D2 transportan los valores ledos de
dichos registros. Posteriormente se describir el
funcionamiento de la lgica interna de este mdulo, la
cual nos permitir adelantar datos, y evitar lecturas y
escrituras al mismo tiempo en el mismo registro.

117
UNIVERSIDAD PRIVADA TELESUP

A continuacin se muestran las tablas para la escritura y lectura de los registros


internos.

Tabla 7.2. Seleccin de los registros para escritura.

Tabla 7.3. Seleccin de los registros para lectura.

El mdulo sumador/restador de esta etapa se utiliza para calcular incrementos,


decrementos, y sobre todo, para el clculo de la direccin
efectiva en instrucciones con modo de direccionamiento
indexado. Ms adelante, se ver un ejemplo de este tipo de
instruccin. Las seales de control para el mdulo
sumador/restador son las siguientes: S/ R, permite
seleccionar la operacin a ejecutar, una suma (si vale uno) y
una resta (si vale cero); y Cin, que es el acarreo de entrada al sumador.

118
UNIVERSIDAD PRIVADA TELESUP

Note que este mdulo obtiene sus operandos de dos


multiplexores. El primer multiplexor utiliza la seal de control
SelS1; si SelS1 vale uno, entonces se elige el bus
instr[15:0], pero si vale cero, entonces se elige el valor de
cero. El segundo multiplexor utiliza la seal de control
SelS2; si SelS2 vale uno, entonces se elige el valor de PC, y
si vale cero, se elige el contenido de alguno de los registros internos (D2).

Figura 7.9. Mdulo sumador / restador y sus seales de control.

En esta etapa tambin se encuentra la memoria de


datos la cual es totalmente independiente de la
memoria de instrucciones, de ella leeremos
operandos, o bien, almacenaremos los resultados
de nuestras operaciones, segn sea el caso. La
nica seal de control que se utiliza en la memoria
es MemW, la cual indica si se realiza una operacin
de escritura o de lectura en ella. Si MemW vale uno la operacin a efectuar ser
escritura, y si vale cero la operacin ser lectura. La direccin del dato a leer o escribir
en memoria proviene de un multiplexor, esta direccin se selecciona con la lnea de
control SelDir.

119
UNIVERSIDAD PRIVADA TELESUP

Cuando SelDir=0 la direccin que se elige proviene del mdulo


sumador/restador; si SelDir=1 proviene del bus instr[15:0]; y si SelDir=2 la
direccin que se toma ser DirW.

Figura 7.10. Memoria de datos y sus seales de control.

Por otra parte, las instrucciones de salto o de acceso relativo utilizan un


desplazamiento de 8 bits con signo para calcular una direccin de salto. El mdulo
encargado de calcular esta direccin de salto es la UPA (unidad de procesos
aritmticos) ubicada en la siguiente etapa.
Sin embargo, como se ver ms adelante, la UPA slo ejecuta operaciones de 16 bits,
por lo que el desplazamiento de 8 bits con signo necesitar ser extendido a 16 bits.

El mdulo encargado de esta tarea es el mdulo de extensin de signo, quien tomar


los 8 bits del desplazamiento con signo y los extender a 16 bits, repitiendo en los 8
bits ms significativos el bit de signo del desplazamiento original, es decir,

120
UNIVERSIDAD PRIVADA TELESUP

Finalmente, existe un multiplexor que selecciona los operandos para la siguiente


etapa. Este multiplexor elige estos operandos de los datos presentes en los
buses D1, D2, D3, D4 y D5, segn la instruccin que se trate. La seleccin de
estos operandos se muestra en la siguiente tabla.

Tabla 7.4. Seleccin de los operandos para la etapa de ejecucin.

Los operandos que se seleccionaron utilizando el multiplexor anterior, la direccin


efectiva y las seales de control para las etapas posteriores son guardados
temporalmente en el registro de segmentacin ID/EX.
En resumen, esta segunda etapa se encarga de realizar tres tareas:
1. La decodificacin de la instruccin y la generacin de las seales de control;
2. El clculo de direcciones efectivas para datos en memoria; y
3. La lectura de operandos.

La decodificacin es realizada por el mdulo de control el cual revisa el cdigo de


operacin de la instruccin (los dos bytes ms significativos del formato de la
instruccin), y con base en l, genera las seales de control necesarias para la etapa
actual y para las etapas posteriores.
La direccin efectiva es una direccin en memoria de donde se lee un dato, o bien,
una direccin en memoria en donde se guarda un dato. Para algunos modos de
direccionamiento esta direccin no es inmediata.

121
UNIVERSIDAD PRIVADA TELESUP

Por ejemplo, el modo de direccionamiento indexado, calcula la direccin efectiva


sumando al contenido de un registro base un desplazamiento; en cambio, los modos
de direccionamiento directo y extendido proporcionan la
direccin efectiva de forma inmediata.
La lectura de operandos consiste en obtener los datos
que se operarn en la siguiente etapa. Los operandos
pueden provenir de los registros internos, de la memoria
de datos, o bien, pueden estar contenidos en el mismo
formato de la instruccin.

Para obtener el contenido de algunos de los registros basta con indicar al mdulo de
registros internos qu registros se desean leer.
Para obtener el operando de la memoria de datos es necesario contar con la direccin
efectiva donde se encuentra ese dato. Y si el operando est contenido en el formato
de la instruccin, como es el caso del direccionamiento inmediato, la lnea de control
SelDato, de uno de los multiplexores, permitir su seleccin.

DISTRIBUCIN DE LA EJECUCIN DE LAS INSTRUCCIONES EN CICLOS


DE RELOJ
A partir de la figura 4.21, es necesario
evaluar lo que deber ocurrir en cada ciclo
de reloj de la implementacin multiciclo, esto
determinar la activacin de las diferentes
seales de control y si es necesario agregar
otras seales de control. La ejecucin de
cada instruccin se distribuir en una serie
de pasos y cada paso tomar un ciclo de
reloj. El trabajo debe balancearse, por ello, un paso puede incluir una operacin de la
ALU, un acceso al archivo de registros o un acceso a memoria.

122
UNIVERSIDAD PRIVADA TELESUP

Con esta restriccin, el ciclo de reloj ser tan corto como lo sea la operacin ms
larga de las anteriormente mencionadas.
Si un dato ser necesario en un ciclo de reloj sucesivo,
deber ser almacenado en un elemento de estado, ya
sea principal (PC, archivo de registros o memoria) o
temporal (A, B, MDR, ALUOut o IR, el ltimo es el nico
con seal de habilitacin de escritura). Tambin se
considera una metodologa disparada por flancos, de
manera que las lecturas de los elementos de estado se
pueden hacer en cualquier instante, pero las escrituras solo se harn en el flanco
seleccionado.

Los pasos para la ejecucin de las instrucciones son:


1. Bsqueda de la instruccin
Este paso lo realizan todas las instrucciones,
consiste en la lectura de la instruccin y su captura
en el registro de instrucciones (IR), y al mismo
tiempo se aprovecha la ALU para determinar la
direccin de la siguiente instruccin.
IR = Memory[PC]; PC = PC + 4;

Operacin: La lectura de la memoria se habilita con MemRead, poniendo IorD a 0


para que el PC suministre la direccin. La escritura de IR se
habilita con IRWrite. Tambin, para que el primer operando de
la ALU sea el PC en ALUSrcA se debe colocar un 0 y
en ALUScrB un 01 para que el segundo operando sea
la constante 4; adems en ALUOp se debe colocar 00
para que se realice la suma. Finalmente, deber acertarse
PCWrite para la escritura del resultado de la suma.

123
UNIVERSIDAD PRIVADA TELESUP

Tambin se escribirn algunos registros temporales,


como ALUOp, B o A, pero para este paso su valor no
es importante puesto que no ser utilizado en el
siguiente ciclo de reloj.
2. Decodificacin de la instruccin y lectura de
registros
En el paso previo y el actual, an se desconoce
la instruccin a ejecutar; de manera que las
acciones realizadas en este paso deben ser
comunes a todas las instrucciones, o bien, no deben perjudicar la ejecucin de
otra instruccin. En este paso se realizar la lectura del 28 archivo de registros,
dejando los valores ledos en los registros A y B. Si la instruccin no requiere de
estos datos, no le perjudica su lectura.

Adems, para aprovechar la ALU y con la posibilidad de que se trate de un brinco


condicional, se calcular la direccin destino, sumando el valor del PC con los 16 bits
bajos de IR extendidos en signo y desplazados a la izquierda en 2:
A = Reg[ IR [ 25-21 ] ]
B = Reg[ IR [ 20-16 ] ]
ALUOut = PC + (extensin-signo( IR[15-0] ) << 2)

Operacin: La lectura del archivo de registros es automtica, no requiere


habilitaciones, y la escritura de los registros A y B tampoco requiere habilitaciones.
Para la ltima operacin, con ALUOp = 00 se realizar una suma, para obtener los
operandos correctos ALUSrcA debe
tener 0 (el primer operando es el PC)
y ALUSrcB debe tener 11 (el segundo
operando se forma con los 16 bits
bajos de IR extendidos en signo y
desplazados a la izquierda en 2),
despus de la operacin de la suma,
el resultado se escribir en forma automtica en el registro ALUOut.

124
UNIVERSIDAD PRIVADA TELESUP

Despus de este ciclo, a partir del opcode (IR[31-26]) se determina lo que se


realizar en los siguientes ciclos de reloj, en funcin del tipo de instruccin.
3. Ejecucin, clculo de una direccin de memoria o culminacin de un brinco/salto
4. Este es el primer ciclo en el que la operacin del camino de datos depende de la
clase de instruccin. En todos los casos, la ALU va a operar sobre los resultados
preparados en el paso anterior. Las acciones a realizar dependern de la clase
de instruccin:

Acceso a memoria:
ALUOut = A + extensin-signo( IR[15-0] )
Operacin: La ALU calcular una direccin para un
acceso a memoria. Para que los operandos sean
correctos se requiere que ALUSrcA sea ajustado a
1 (el primer operando est en el registro A) y que
ALUSrcB sea 10 (el segundo operando se forma
con los 16 bits bajos de IR extendidos en signo). Tambin ALUOp = 00 para que se
realice una suma.

La escritura de ALUOut no requiere habilitacin.


Instruccin aritmtico-lgica (Tipo R):
ALUOut = A op B;
Operacin: La ALU realizar la operacin
especificada en el campo de funcin
(IR[50] ) de manera que ALUOp debe tener
10. Para que el primer operando sea A se
debe ajustar ALUSrcA a 1 y para que el
segundo operando sea B en ALUSrcB se
debe colocar 00. La escritura de ALUOut
se realiza automticamente.29
Brinco: Si ( A == B ) PC = ALUOut;

125
UNIVERSIDAD PRIVADA TELESUP

Operacin: Se aprovecha que en el paso anterior ya


se calcul la direccin destino del brinco, la cual est
en ALUOut. La ALU realizar la comparacin de los
dos registros por medio de una resta, para la posible
generacin de la bandera zero. Por lo tanto, para que
el primer minuendo sea A se debe ajustar ALUSrcA a 1
y para que el sustraendo sea B se debe colocar 00 en
ALUSrcB. La resta se define colocando 01 en ALUOp.
Para la fuente correcta del PC se debe ajustar PCSource a 01 (El PC tomar el valor
de ALUOut) y su escritura queda condicionada ajustando a 1 la seal PCWriteCond.
Si la escritura del PC se va a realizar, tomar la direccin correcta puesto que no ha
cambiado el valor de ALUOut.

La bandera de zero se genera con los


datos correctos por que la ALU no es un
elemento de estado, su generacin es
automtica. Con este paso culmina la
ejecucin de esta instruccin y se puede
continuar con la siguiente.
Es importante destacar que para esta instruccin el PC se modifica dos veces, en el
paso 1 se escribi en el PC el valor de PC + 4. En el paso 2 sobre este valor se
calcul la direccin destino del brinco, la cual se escribi en el paso 3 en el PC.
Salto: PC = PC [ 31-28 ] || ( IR[ 25-0] << 2 )
Operacin: El PC es reemplazado por la direccin del salto, para eso PCSource debe
ajustarse a 10 y PCWrite debe ser acertado.

Tambin aqu termina esta instruccin.


Acceso a memoria o culminacin de una instruccin tipo-R
En este paso se realiza un acceso a memoria para una carga o almacenamiento, o
una instruccin tipo R almacena su resultado. Si se hace una lectura de la memoria,
el dato ledo se colocar en MDR para usarse en el siguiente ciclo de reloj.

126
UNIVERSIDAD PRIVADA TELESUP

Acceso a memoria:
MDR = Memory[ ALUOut ]; O Memory[ ALUOut ] = B;
Operacin: El acceso se har en la direccin calculada en el paso anterior (est en
ALUOut) por lo que la seal IorD debe ajustarse a
1. para definir la direccin de acceso de
manera correcta. Si se trata de una carga,
debe acertarse la seal MemRead y el
dato a cargar se almacenar en el registro
MDR. Para los almacenamientos, debe
acertarse la seal MemWrite, el dato a
escribir est en el registro B, se obtuvo en
el paso.

2. Y su valor no cambio en el paso


3. La escritura del registro MDR y de la memoria se har en el siguiente flanco de
reloj. Con este paso terminan los almacenamientos, pero no las cargas.30
Instruccin aritmtico-lgica (Tipo R): Reg[ IR [ 15-11 ] ] = ALUOut;
Operacin: El resultado de la operacin de la ALU, que est en ALUOut, debe
escribirse en el registro especificado en el campo rd, este registro se selecciona
colocando un 1 en la seal RegDst. La seal RegWrite debe acertarse y en la
seal MemtoReg debe colocarse un 0, para definir la escritura del dato correcto.
Aqu terminan las instrucciones tipo R.

127
UNIVERSIDAD PRIVADA TELESUP

TEMA 4
Microprogramas

Competencia:
Implementar los microprogramas o
microinstrucciones en microprocesadores
cumpliendo con todos los procesos
recomendados.

128
UNIVERSIDAD PRIVADA TELESUP

Tema 04: Microprogramas

CULMINACIN DE UNA LECTURA DE MEMORIA


En este paso se completa la nica instruccin
pendiente, la carga:
Reg[ IR [ 20-16 ] ] = MDR;
Operacin: El dato que est en el registro MDR debe
escribirse en el registro especificado en el campo rt, este
registro se selecciona colocando un 0 en la seal RegDst. La seal RegWrite debe
acertarse. La seal MemtoReg debe ajustarse a 1 para escribir al dato correcto.

Las acciones que se realizan en cada uno de los cinco pasos se resumen en la
siguiente tabla.

Definiendo el control
Una vez que se han determinado los pasos que requiere cada
instruccin y se han definido las acciones a realizar en cada
paso, es posible definir la implementacin del control. En la
implementacin de un slo ciclo, por medio de una tabla de
verdad se determin la habilitacin de las seales para cada clase de instruccin.

129
UNIVERSIDAD PRIVADA TELESUP

Para el camino de datos multiciclo, el control es ms complejo porque la ejecucin


requiere de una serie de pasos. El control debe determinar el valor de las seales en
cada paso y el siguiente paso en la secuencia.
En esta seccin se presenta una tcnica para la implementacin del control, basada
en una mquina de estados finitos. En la siguiente seccin se revisar otra tcnica
conocida como microprogramacin. Ambas tcnicas representan el control de
manera que pueda facilitarse su implementacin por medio de una herramienta CAD,
para sntesis en compuertas, ROMs, o PLAs.

Una mquina de estados finitos consiste de un conjunto de estados y transiciones


entre ellos. Las transiciones son definidas por la funcin
del estado siguiente, la cual hace un mapeo entre el
estado actual y el siguiente. Al usar una mquina para el
control, en cada estado debe definirse que salidas sern
acertadas cuando la mquina este en ese estado. Para
la implementacin, las salidas de habilitacin de los
elementos de estado que no estn explcitamente
acertadas estarn desacertadas, no se tendr una condicin no importa. Por ejemplo,
si en un estado se requiere la escritura de un registro, en ese estado aparecer la
seal RegWrite indicando que la seal es acertada, y en los estados donde no
aparezca esta seal, es por que estar desacertada.

Para el control de los multiplexores la situacin es un poco


diferente, porque el control de un multiplexor determina la
seleccin de una de sus entradas. En la mquina se
especificar el valor requerido para un multiplexor, que sea
determinante en cada estado, los que no aparezcan en un
estado, es porque realmente no importa su valor. Para
todas las clases de instruccin, los pasos 1 y 2 realizan las mismas acciones,
despus de ese paso, la secuencia que se sigue es diferente para cada clase de
instruccin. Por lo tanto, una primera aproximacin al control se muestra en la figura.

130
UNIVERSIDAD PRIVADA TELESUP

Figura 4.22. Una aproximacin al control multiciclo

MICROPROGRAMACIN PARA SIMPLIFICAR EL DISEO DEL CONTROL


Para el control de la implementacin multiciclos del
subconjunto MIPS considerado, una mquina de estados
como la mostrada en la figura 4.22 es adecuada. Porque el
subconjunto es pequeo y la cantidad de estados que se
requiere puede representarse sin problema en una hoja de
papel. Sin embargo, el conjunto completo de instrucciones
MIPS comprende alrededor de 100 instrucciones y algunas
de ellas requieren hasta de 20 ciclos de reloj para su
ejecucin, por lo que construir una mquina de estados
para el conjunto completo resultara bastante complejo.

La unidad de control podra requerir fcilmente de mil estados con cientos de


diferentes secuencias. Y la representacin grfica ya no sera fcil de construir y
manejar. La microprogramacin consiste en desarrollar un sistema secuencial
complejo, como si se estuviera escribiendo un programa. El
programa consistir de una secuencia de microinstrucciones que se
ejecutarn por el camino de datos (se les refiere como
microinstrucciones para evitar confusin con las instrucciones
MIPS). Cada microinstruccin define el conjunto de seales
de control que sern acertadas en el camino de datos para un
estado dado.

131
UNIVERSIDAD PRIVADA TELESUP

Ejecutar una microinstruccin tiene el efecto de


acertar las seales de control en ella
especificadas. Adems de definir a las seales
que sern acertadas, se debe definir la secuencia,
es decir, cul ser la microinstruccin siguiente.
En una mquina de estados finitos, el diagrama
indica cual ser el estado siguiente, en algunos
casos la transicin es incondicional, mientras que
en otros depende del valor de las entradas.

Al escribir programas, tambin ocurren situaciones anlogas, en algunos casos las


instrucciones son secuenciales, mientras que en otros, se incluyen algunos brincos a
otras instrucciones de acuerdo al valor de una variable. La ejecucin por default es
secuencial y los brincos deben ser indicados explcitamente. En un programa en
ensamblador se tienen formatos para las instrucciones y campos para cada uno de
esos formatos (opcode, registros, desplazamientos, datos inmediatos, etc.); de la
misma manera, la representacin de las microinstrucciones incluir un conjunto de
campos.

DEFINICIN DEL FORMATO DE UNA MICROINSTRUCCIN


El microprograma es una representacin simblica
del control que ser trasladado por un programa a la
lgica de control. De esta manera, es posible elegir
cuantos campos debera contener una
microinstruccin y las seales de control que sern
afectadas por cada campo. El formato de la
microinstruccin debe elegirse buscando simplicidad
en la representacin y que facilite la escritura y comprensin de un microprograma.
Por ejemplo, es til contar con un campo que controle la ALU y un conjunto de tres
campos que determinen las dos entradas de la ALU as como la ubicacin del
resultado de la operacin.

132
UNIVERSIDAD PRIVADA TELESUP

Adems por legibilidad, se debe verificar que el formato


de un microprograma haga difcil o imposible escribir
microinstrucciones inconsistentes. Una microinstruccin
es inconsistente si requiere que una seal de control
dada sea ajustada a dos valores diferentes. Para evitar
formatos que permitan inconsistencias, los campos
contendrn seales de control que no se traslapen
entre s. Para elegir la particin de las seales de
control es conveniente revisar la figura 4.21 en donde se mostr al camino de datos
completo y al control como un bloque en el que se generan todas las seales, y la
tabla 4.7 en la que se mostr el efecto para los diferentes valores de cada una de las
seales.

Las seales que nunca son acertadas


simultneamente pueden compartir el mismo
campo. En la tabla 4.9 se muestran los siete
campos propuestos y la funcin general de cada
campo. Los primeros seis campos controlan al
camino de datos, mientras que el campo de
Secuencia (sptimo campo) indica cmo se
seleccionar la siguiente microinstruccin.

Tabla 4.9 Los siete campos que contendr cada microinstruccin

133
UNIVERSIDAD PRIVADA TELESUP

Las microinstrucciones sern puestas en una ROM o en un PLA, de manera que


a cada una se le puede asignar su direccin. Las direcciones se elegirn
secuencialmente, de la misma manera en que se eligen los nmeros para los
estados en una mquina de estados finitos.

Se tiene tres posibilidades para elegir la siguiente microinstruccin a ejecutar:


1. Incrementar la direccin de la microinstruccin actual para obtener la direccin
de la siguiente. Este comportamiento secuencial ser indicado en el
microprograma con la etiqueta Seq en el campo de Secuencia. Dado que la
ejecucin secuencial se utiliza frecuentemente, muchos sistemas de
microprogramacin la tendrn por omisin.
2. Brincar a la microinstruccin que inicia la ejecucin de la siguiente instruccin
MIPS. Esta microinstruccin inicial se etiquetar como Fetch (corresponde al
estado 0) y se indicar colocando Fetch en el campo de secuencia.
3. Elegir la siguiente microinstruccin con base en la entrada a la unidad de
control. La eleccin de la siguiente instruccin se conoce como un despacho
(dispatch).

Los despachos usualmente son implementados creando


una tabla que contenga la direccin de la
microinstruccin destino. Esta tabla es indexada por la
entrada a la unidad de control y puede ser implementada
en una ROM o en un PLA. Frecuentemente hay mltiples
tablas de despacho, en esta implementacin se emplearn dos tablas, una para
despachar desde el estado 1 (cuando se determina el tipo de instruccin) y otra para
despachar desde el estado 2 (para los accesos a memoria, cuando se determina si
se trata de una carga o almacenamiento).

Si la siguiente microinstruccin se debe seleccionar por una operacin de


despacho, se indicar colocando Dispatch i, donde i es el nmero de tabla de
despacho en el campo de Secuencia. La tabla 4.10 da una descripcin de los
valores permitidos para cada campo de la microinstruccin y el efecto de los
diferentes valores. El microprograma es una representacin simblica, este
formato de microinstrucciones es solo un ejemplo de muchos posibles
formatos.

134
UNIVERSIDAD PRIVADA TELESUP

Tabla 4.10 Valores permitidos para cada campo de la microinstruccin y su


efecto

135
UNIVERSIDAD PRIVADA TELESUP

CREACIN DEL MICROPROGRAMA


Las microinstrucciones pueden ser marcadas con
etiquetas simblicas, las cuales pueden ser
empleadas en las tablas de despacho (similar a las
etiquetas empleadas en ensamblador). En la
escritura del microprograma, hay dos situaciones en
las cuales se requerira dejar un campo de la
microinstruccin vaco. Cuando un campo que controla una unidad funcional o que
produce la escritura de un elemento de estado est vaco, las seales de control no
debern ser acertadas.

Cuando el campo especifica el control de un multiplexor, que determina la entrada a


una unidad funcional, es dejado en blanco, significa que no importa el dato que
llegar a la unidad funcional (o la seleccin del multiplexor). La forma ms fcil de
entender el microprograma es partirlo en piezas, buscando que cada componente
trate con la ejecucin de una instruccin, as como cuando se dise la mquina de
estados finitos. La primera etapa en la ejecucin de todas
las instrucciones consiste en la captura y
decodificacin de la instruccin, as como el clculo
secuencial del PC y del destino de un brinco. Estas
acciones corresponden directamente a los dos
pasos de ejecucin descritos con anterioridad.

Las dos microinstrucciones para estos pasos son:

Con la primer microinstruccin, la ALU suma el valor de PC con 4 y la salida de la


ALU se escribe en el mismo PC. Se lee la memoria con la direccin
proporcionada por el PC atrapando la instruccin en el registro IR y se continua
con la siguiente microinstruccin.

136
UNIVERSIDAD PRIVADA TELESUP

En la segunda microinstruccin, la ALU suma al PC con el dato inmediato tomado


del registro IR, extendido en signo y desplazado a la izquierda en dos. Se leen los
registros indicados en los campos Rs y Rt del registro IR y sus valores se
escriben en los registros A y B. Se contina con la instruccin especificada en la
ROM de despacho 1.La ROM de despacho es una especie de tabla de saltos, los
datos de la tabla son usados para seleccionar una de las cuatro diferentes
secuencias de microinstrucciones, las cuales se etiquetan como:
- Mem1 para instrucciones de accesos a memoria
- Rformat1 para instrucciones tipo R
- BEQ1 para brincos sobre igual
- JUMP1 para la instruccin de salto

Las etiquetas finalizan en 1 para indicar que corresponden a la tabla de despacho 1.


El microcdigo para los accesos a memoria tiene 4 microinstrucciones, stas se
muestran a continuacin:

La primera microinstruccin calcula la direccin para un acceso a memoria,


sumando el registro A con la constante de 16 bits tomada del registro IR
extendida en signo. Para seleccionar la siguiente microinstruccin se utiliza la
ROM de despacho 2, la cual contiene solo dos elementos, uno para cuando se
tratan de cargas o el otro para desplazamientos.

La segunda microinstruccin es propia de las cargas, se lee de la memoria un


dato diseccionndolo con el registro ALUOut y escribiendo el dato en el registro
MDR. Se contina con la siguiente microinstruccin.
La tercer microinstruccin completa una carga, se escribe en el archivo de
registro el dato que est en el registro MDR y en el registro indicado en el campo
Rt. Se contina con la microinstruccin etiquetada con Fetch, para iniciar con una
nueva instruccin.
La cuarta microinstruccin culmina con un almacenamiento, escribe la memoria
usando ALUOut como direccin y el contenido de B como dato. Y tambin
contina con la microinstruccin etiquetada como Fetch.

137
UNIVERSIDAD PRIVADA TELESUP

La primera microinstruccin hace que la ALU aplique sobre los registros A y B la


operacin especificada en el campo de funcin. Contina con la
siguiente microinstruccin. Con la segunda microinstruccin se
escribe en el archivo de registros el resultado que est en
ALUOut, en el registro indicado en el campo Rd del registro
Rs. Y se contina en la microinstruccin etiquetada como
Fetch.

Para los brincos (BEQ), puesto que ya se calcul la direccin destino, para
culminar con un brinco solo queda pendiente una microinstruccin, la cual es:

Con esta microinstruccin la ALU resta los operandos A y B para generar la bandera
Zero. En el PC se escribir el contenido de ALUOut si la bandera Zero fue generada,
y contina con la microinstruccin etiquetada como Fetch.

Para los saltos incondicionales (J) queda pendiente una microinstruccin:

Con esta microinstruccin el PC es sustituido con la direccin destino del salto, y se


contina con la microinstruccin etiquetada como Fetch. En la tabla 4.11 se muestra
el microprograma completo con las 10 microinstrucciones descritas anteriormente.
El microprograma coincide con la mquina de estados finitos diseada previamente,
puesto que ambas se implementaron con base en los cinco pasos en los que se
dividi la ejecucin de las instrucciones

138
UNIVERSIDAD PRIVADA TELESUP

Tabla 4.11. El microprograma para la unidad de control

139
UNIVERSIDAD PRIVADA TELESUP
Lecturas Recomendadas
GUAS NICAS DE LABORATORIO
http://www.usc.edu.co/laboratorios/files/ELEMENTOS%20DE%20MICROPROGRA
MACION.pdf

MICROPROGRAMACIN
http://www.herrera.unt.edu.ar/arqcom/diapositivas/tema09.2013.pdf

APUNTE DE MICROPROGRAMACIN
http://www2.dc.uba.ar/materias/oc1/2005/documentos/files/apuntes/micropr.pdf

Actividades y Ejercicios

1. En un documento en Word elabore un mapa conceptual sobre


microprogramas (MP.) y microinstrucciones (MI.).
Envalo a travs de "MP. & MI.".

2. En un documento en Word disea un multiplicador programado,


realiza una representacin grfica y el algoritmo del multiplicador.
Envalo a travs de "Multiplicador.

140
UNIVERSIDAD PRIVADA TELESUP
Autoevaluacin
1) Un microprograma consiste en:
a. Un conjunto de microinstrucciones.
b. Un contenido de localizacin.
c. Un conjunto de controles.
d. Un conjunto de propiedades.
e. Un conjunto de partculas.

2) Es toda operacin elemental que puede ser ejecutada durante un perodo de


los pulsos de reloj:
a. Un microprograma
b. Una microoperacin.
c. Una microinstalacin.
d. Una microorganizacin.
e. Una microsincronizacin.

3) Traer de la memoria la instruccin que se desea ejecutar, se le conoce como:


a. Ciclo fiche.
b. Ciclo nuclear.
c. Ciclo fetch.
d. Ciclo particular.
e. Ciclo herth.

4) El primer paso que realiza todo microprocesador es:


a. Es reconocer el sistema operativo del computador
b. Es instalar los antivirus y spyware por seguridad.
c. Es instalar las microinstrucciones adecuadamente.
d. Leer de memoria la siguiente instruccin a ejecutar.
e. Es leer todas instrucciones simultneamente.

5) En la microinstruccin donde se decodifica la instruccin y se traen los


operandos necesarios por la instruccin, se denomina:
a. Etapa IF.
b. Etapa EX.
c. Etapa WB.
d. Etapa ES.
e. Etapa ID.

141
UNIVERSIDAD PRIVADA TELESUP

6) Los registros internos pueden ser:


a. IX, IY, SP y AUX.
b. IX, IY, SP y COX.
c. IX, IY, IZ y SP.
d. IX, IY, IZ y CS.
e. IY, IZ y AUX.

7) El microcdigo para los accesos a memoria tiene:


a. 3 microinstrucciones.
b. 5 microinstrucciones.
c. 2 microinstrucciones.
d. 4 microinstrucciones.
e. 6 microinstrucciones.

8) Una microinstruccin es inconsistente si requiere que una seal de control


dada sea ajustada a:
a. Un valor compuesto.
b. Dos valores iguales.
c. Tres valores distintos.
d. Cuatro valores similares.
e. Dos valores diferentes.

9) Para el clculo de la direccin efectiva en instrucciones con modo de


direccionamiento indexado utiliza el:
a. El mdulo divisor/ restador.
b. El mdulo sumador/restador
c. El mdulo sumador/divisor.
d. El mdulo multiplicador/restador.
e. El mdulo multiplicador/divisor.

10) Es una representacin simblica del control que ser trasladado por un
programa a la lgica de control:
a. La microinstruccin.
b. El microcontrolador.
c. El microprograma.
d. El microestabilizador.
e. El microoperador.

142
UNIVERSIDAD PRIVADA TELESUP
Resumen
UNIDAD DE APRENDIZAJE III:

La unidad de control microprogramada en la cual las seales de control que inician las
distintas microoperaciones estn almacenadas en forma permanente en una memoria
ROM. El contenido de cada localizacin de la memoria de control se denomina
microinstruccin y un conjunto de microinstrucciones constituye el microprograma. La
microoperacin es toda operacin elemental que puede ser ejecutada durante un
perodo de los pulsos de reloj.

Para una arquitectura segmentada, acceder tantas veces a la memoria complica el


hardware y retrasa el comienzo de la siguiente instruccin a ejecutar. Una manera de
evitar los accesos a memoria repetidamente es leyendo en una sola pasada toda la
informacin que la instruccin vaya a necesitar. Para ello, el tamao de la instruccin
para el 68HC11 segmentado ha sido extendido a 32 bits.

Durante esta etapa, la instruccin leda en la etapa anterior es decodificada. Una vez
que se conoce la instruccin a ejecutar, el mdulo de control genera las seales de
control que gobernarn el hardware de esta etapa y de etapas posteriores. Por
ejemplo, las seales de control que se emplean en la segunda etapa se encargan de
informarle a los distintos componentes de esta etapa qu operaciones realizar.

Una vez que se han determinado los pasos que requiere cada instruccin y se han
definido las acciones a realizar, es posible definir la implementacin del control. El
control debe determinar el valor de las seales en cada paso y el siguiente paso en la
secuencia. Las tcnicas que representan el control pueden implementarse por medio
de una herramienta CAD, para sntesis en compuertas, ROMs, o PLAs.

143
UNIVERSIDAD PRIVADA TELESUP

144
UNIVERSIDAD PRIVADA TELESUP
Introduccin
a) Presentacin y contextualizacin

En la unidad anterior muestra la potencia de una arquitectura segmentada para un


caso ideal; es decir, las instrucciones que se ejecutaron eran totalmente
independientes una de la otra, en otras palabras, ninguna de ellas utilizaba los
resultados calculados por una instruccin anterior. Ahora es el momento de dejar
los casos ideales y observar qu ocurre con los programas reales donde hay
dependencia de datos.

b) Competencia
Desarrolla las adecuadas programaciones tomando en cuenta posibles
riesgos por dependencia de datos usando el software pertinente.

c) Capacidades

1. Explica el modo adecuado del control de riesgos por dependencias de datos


usando software.
2. Determina el control de riesgos por dependencias de datos por medio de
detenciones.
3. Conoce el entorno funcional de MAX + PLUS II.
4. Emplear adecuadamente el editor de MAX + PLUS II.

d) Actitudes
Posee habilidad para el adecuado control de los riesgos en las
programaciones.
Muestra persistencia ante los posibles riesgos de dependencia de datos.

e) Presentacin de Ideas bsicas y contenido esenciales de la unidad:

La Unidad de Aprendizaje 04: Riesgos por Dependencia de Datos, comprende


el desarrollo de los siguientes temas:

TEMA 01: Control de Riesgos I


TEMA 02: Control de Riesgos II
TEMA 03: Max + Plus II
TEMA 04: Editor de Max + Plus II

145
UNIVERSIDAD PRIVADA TELESUP

Control TEMA 1
de
Riesgos
I
Competencia:
Explicar el modo adecuado del control de
riesgos por dependencias de datos usando
software.

146
UNIVERSIDAD PRIVADA TELESUP
Desarrollo de los Temas
Tema 01: Control de Riesgos I
Existen varios esquemas que nos permiten resolver los
riesgos por dependencias de datos. Algunos de ellos son
implantados en software y otros en hardware, sin embargo,
para nosotros, los esquemas en hardware sern los que tengan
mayor importancia.

CONTROL DE RIESGOS POR DEPENDENCIAS DE DATOS POR MEDIO DE


SOFTWARE
Este mtodo consiste en dar reglas al compilador de manera que no genere
secuencias de instrucciones como las secuencias de los ejemplos de la seccin
anterior. Por ejemplo, para la secuencia del ejemplo 1, el compilador podra insertar
dos instrucciones independientes entre las instrucciones aba y anda, haciendo que
desaparezca el riesgo. Algo similar se hara para eliminar el riesgo entre las
instrucciones anda y oraa, y las instrucciones oraa y staa.
Cuando no se puedan encontrar instrucciones independientes, el compilador podra
insertar instrucciones nop garantizando as la independencia de datos entre
instrucciones. La abreviatura nop significa no operacin, porque esta instruccin no lee
ningn registro, no modifica ningn dato y no escribe ningn resultado.

CONTROL DE RIESGOS POR DEPENDENCIAS DE DATOS POR MEDIO DE


DETENCIONES
El esquema ms sencillo para resolver los
riesgos por dependencias de datos en hardware
es detener las instrucciones en el cauce hasta
que se resuelva el riesgo. Este tipo de
detenciones se conocen con el sobrenombre de
burbujas (bubbles); con esta estrategia, primero
se detecta un riesgo por dependencia de datos, y despus se detienen las
instrucciones en el cauce (se insertan burbujas) hasta que se resuelve el riesgo.

147
UNIVERSIDAD PRIVADA TELESUP

Si realiza una inspeccin ms estricta de la arquitectura segmentada mostrada en la


figura 7.12, notar que un riesgo por dependencia de datos se presenta cuando una
instruccin trata de leer en su etapa 2 el mismo registro que una instruccin anterior
intenta escribir en su etapa 4. De esta manera, se tienen dos condiciones que
permiten determinar si existen riesgos por dependencia de datos o no; estas
condiciones son las siguientes.
1. ID/EX.SelRegW := Etapa2.SelRegR
2. EX/WB.SelRegW := Etapa2.SelRegR

La notacin anterior nos permite describir con mayor precisin en qu parte de la


arquitectura se presenta el riesgo por dependencia de datos. Por ejemplo, la primera
condicin revisa el valor de la seal de escritura que guarda una instruccin anterior
en el registro de segmentacin ID/EX, si este valor corresponde a alguno de los
registros que intenta leer una instruccin posterior en su etapa 2, entonces se
generar un riesgo. Recuerde que la etapa 4 de la segmentacin se dedica a la
escritura de registros, por lo tanto, las seales de control necesarias para hacer la
escritura son guardadas temporalmente en los registros de segmentacin ID/EX y
EX/WB.

Control de riesgos por medio de detenciones: Ejemplo 1


En este ejemplo existen tres riesgos por dependencias de datos. El primer riesgo se
presenta entre las instrucciones aba y anda, y corresponde a la condicin
ID/EX.SelRegW := Etapa2.SelRegR. Esto significa, que durante la etapa de
decodificacin de la instruccin anda (ciclo de reloj CC3) se est intentando leer el
registro ACCA, el cual an no ha sido actualizado por la instruccin aba, ya que la
seal de control encargada de actualizar este registro, SelRegW, se encuentra
almacenada en el registro de segmentacin ID/EX. El segundo riesgo se presenta
entre las instrucciones anda y oraa, y al igual que el riesgo anterior, corresponde a la
condicin ID/EX.SelRegW := Etapa2.SelRegR.

148
UNIVERSIDAD PRIVADA TELESUP

Esto quiere decir, que la instruccin oraa tambin est intentando leer un registro
(durante el ciclo de reloj CC4) que an no ha sido
actualizado por una instruccin anterior, ya que la seal
de control encargada de actualizar dicho registro,
SelRegW, an se encuentra almacenada en el registro
de segmentacin ID/EX.
Finalmente, el tercer riesgo se presenta entre las
instrucciones oraa y staa, y tambin corresponde a la condicin ID/EX.SelRegW :=
Etapa2.SelRegR; es decir, la instruccin staa est tratando de leer un registro (en el
ciclo de reloj CC5) que an no ha sido actualizado por la instruccin oraa.

Control de riesgos por medio de detenciones: Ejemplo 2


En este ejemplo existen dos riesgos por dependencias de datos. El primer riesgo se
presenta entre las instrucciones ldab y aba, y corresponde a la condicin
EX/WB.SelRegW := Etapa2.SelRegR. Esto significa, que durante la etapa de
decodificacin de la instruccin aba (ciclo de reloj CC4) se est intentando leer el
registro ACCB, el cual no ha sido actualizado por la instruccin ldab, ya que la seal
de control encargada de actualizar este registro, SelRegW, se encuentra almacenada
en el registro de segmentacin EX/WB.

El segundo riesgo se presenta entre las


instrucciones ldaa y aba, y corresponde a la
condicin ID/EX.SelRegW :=
Etapa2.SelRegR. Esto significa, que durante
la etapa de decodificacin de la instruccin
aba (ciclo de reloj CC4) se est intentando
leer el registro ACCA, el cual no ha sido
actualizado por la instruccin ldaa, ya que la
seal de control encargada de actualizar este registro, SelRegW, se encuentra
almacenada en el registro de segmentacin ID/EX.
Por ltimo, observe que entre las instrucciones ldab y abx no existe riesgo, ya que
cuando abx lee el contenido del registro ACCB durante el ciclo de reloj CC5, ste ya
est disponible.

149
UNIVERSIDAD PRIVADA TELESUP

Cmo implantar las detenciones en hardware


Ya que se sabe en dnde y cundo se presentan los riesgos por dependencias de
datos, entonces se pueden detectar y eliminar. La deteccin de un riesgo, consiste en
comparar las seales de control que se estudiaron arriba; mientras que su eliminacin,
consiste en detener a la instruccin dependiente hasta que se termine de ejecutar la
instruccin causante de la dependencia.

Para detener las instrucciones en el cauce se necesita conseguir el mismo efecto que
produce la ejecucin de la instruccin nop; para ello, se agrega una unidad de
detenciones, la cual detecta los riesgos y genera, durante la etapa 2, las seales de
control propias de la instruccin nop; en trminos de diseadores de hardware, se dice
que se inserta una burbuja. Sin embargo, si una instruccin en la etapa 2 es detenida,
entonces la instruccin de la etapa 1 tambin debe ser detenida; de lo contrario, se
pierde la instruccin buscada en la etapa 1.

Para que esto no ocurra, el contenido del registro PC (contador de programa) y el


contenido del registro de segmentacin IF/ID no deben modificarse; de esta manera, la
etapa 1 traer la siguiente instruccin a ejecutar utilizando el mismo valor de PC, y la
etapa 2 continuar leyendo la misma instruccin del registro de segmentacin IF/ID.
La figura 7.54 muestra la nueva arquitectura segmentada utilizando el esquema de
detenciones para reducir los riesgos por dependencias de datos.

150
UNIVERSIDAD PRIVADA TELESUP

151
UNIVERSIDAD PRIVADA TELESUP

El funcionamiento de la unidad de detenciones es


muy simple. Primero compara el valor de la seal
SelRegR, proveniente de la unidad de control de la
etapa 2, contra los valores de las seales SelRegW,
guardadas en los registros de segmentacin ID/EX y
EX/WB. Si se encuentra alguna correspondencia
entre estas seales, significa que se est tratando
de leer un registro que no ha sido actualizado, en otras
palabras, se detecta un riesgo por dependencia de datos. Una vez registrado el riesgo,
la unidad de detenciones debe generar una burbuja; es decir, debe asignar ciertos
valores a las seales de control, de manera que se obtenga el mismo efecto de una
instruccin nop.

La asignacin de estos valores se realiza por medio de la seal SelCtrl, la cual


seleccionar las seales de control del mdulo de detenciones en lugar de las seales
de control del mdulo de control. Recuerde que algunas seales de control son
utilizadas en la etapa 2 y otras son guardadas en el registro de segmentacin ID/EX
para etapas posteriores. Adicionalmente, se cuenta con las seales PCWrite e
IF/IDWrite que habilitan las operaciones de escritura en el registro contador de
programa y en el registro de segmentacin IF/ID, respectivamente. La siguiente tabla
muestra las condiciones para detectar los riesgos por dependencias de datos, as
como las seales de salida, generadas por la unidad de detenciones, que permiten
eliminarlos.

152
UNIVERSIDAD PRIVADA TELESUP

DETENCIONES DEBIDO A ACCESOS MLTIPLES A MEMORIA


Suponga que en el ciclo de reloj X una instruccin en la etapa 4 intenta guardar un
resultado en la memoria de datos, y en ese mismo instante, una instruccin en la etapa 2
intenta leer un dato de la misma memoria. Un nuevo tipo de riesgo se presenta en la
arquitectura segmentada, ya que la memoria de datos ubicada en la etapa 2, slo puede
leer escribir datos en un instante dado, pero nunca los dos. Para poder detectar y
eliminar este nuevo riesgo, se extender la unidad de detenciones de la figura 7.54. El
nuevo modelo de arquitectura, que incorpora detenciones debido a accesos mltiples a
memoria, y detenciones por dependencias de datos, se muestra en la figura 7.56. Para
detectar un riesgo debido a accesos mltiples a memoria se utilizan las seales de control
SelSrcs y EX/WB.MemW; estas dos seales son suficientes para determinar si en la
memoria se est intentando leer y escribir simultneamente. Por ejemplo, si la seal
SelSrcs selecciona al bus D4, significa que la memoria ser accedida para lectura, ya que
el bus D4 es el bus por donde se leen datos de la memoria; por otra parte, si la seal
MemW, proveniente del registro de segmentacin EX/WB, est encendida, significa que
un dato ser escrito en memoria. Cuando las dos condiciones anteriores se presentan,
entonces se genera un riesgo por accesos mltiples a memoria.

Una vez detectado el riesgo, el siguiente paso es eliminarlo utilizando la tcnica de las
detenciones. Esta tcnica consiste en detener la instruccin que intenta leer un dato de
memoria, y permitir que la instruccin que intenta escribir en ella termine de ejecutar su
tarea; para ello, se debe generar una burbuja en la etapa 2 tal y como se realiza para los
riesgos por dependencias de datos, y se deben deshabilitar las escrituras en los registros
PC e IF/ID para no perder la instruccin que se trataba de ejecutar al momento de
detectar el riesgo. Si observa cuidadosamente la figura 7.54 notar que la generacin de
la burbuja en la etapa 2 ya fue implantada cuando se resolvieron los riesgos por
dependencias de datos; por lo tanto, lo nico que hace falta, es permitir que la instruccin
que va a escribir en memoria termine de ejecutar su trabajo. Para esto, ha sido agregada
una seal de control cuyo nombre es SelD, y es generada por la unidad de detenciones
tras detectar un riesgo por accesos mltiples a memoria. La seal SelD presenta el
siguiente comportamiento: si SelD=0, entonces se selecciona la seal SelDirCtrl, que es
la seal SelDir que genera el mdulo de control para la etapa 2; y si SelD=1, entonces se
selecciona la seal SelDir proveniente del registro de segmetacion EX/WB, dando
prioridad a la escritura en memoria.

153
UNIVERSIDAD PRIVADA TELESUP

154
UNIVERSIDAD PRIVADA TELESUP

Control TEMA 2
de
Riesgos
II
Competencia:
Determinar el control de riesgos por
dependencias de datos por medio de
detenciones.

155
UNIVERSIDAD PRIVADA TELESUP

Tema 02: Control de Riesgos II

CONTROL DE RIESGOS POR DEPENDENCIAS DE


DATOS POR MEDIO DE DETENCIONES
Detener las instrucciones en el cauce garantiza la ejecucin de
instrucciones dependientes muy prximas de manera correcta,
sin embargo, el costo de las detenciones afecta negativamente
al rendimiento.

El mdulo de registros internos


Note que la unidad de anticipacin slo detecta una condicin de riesgo por
dependencia de datos. Otra condicin de riesgo no es posible porque suponemos que
el mdulo de registros internos suministra el resultado correcto si una instruccin en la
etapa 2 intenta leer el mismo registro que otra instruccin en su etapa 4 intenta
escribir, entonces, se puede decir que el mdulo de registros internos es otra forma de
anticipacin. De esta manera, la unidad de anticipacin y el mdulo de registros
internos se encargarn de resolver las dos condiciones de riesgos por dependencias
de datos.

Detenciones debido a accesos mltiples a memoria


Gracias al esquema de anticipaciones, los riesgos por
dependencias de datos son resueltos sin retrasos de tiempo.
Desafortunadamente, los riesgos debidos a accesos
mltiples a memoria no pueden ser anticipados de la
misma forma, ya que la memoria de datos de la etapa 2
slo puede leer escribir datos en un instante dado.
Control de riesgos por medio de anticipaciones:
1. Anticipacin va el registro de segmentacin EX/WB hacia la UPA; y
2. Anticipacin va el registro de segmentacin EX/WB hacia el mdulo de registros
internos La figura 7.62 presenta el diagrama de mltiples ciclos de reloj para este
ejemplo.

156
UNIVERSIDAD PRIVADA TELESUP

Figura 7.62. Diagrama de mltiples ciclos de reloj.

Observe cuidadosamente las instrucciones en el ciclo de reloj CC4 de la figura 7.62.


La instruccin ldab se encuentra en la etapa de post-escritura intentando escribir un
dato en el registro ACCB; la instruccin ldaa se encuentra en la etapa de ejecucin; la
instruccin aba en la etapa de lectura de operandos; y la instruccin abx est siendo
leda de la memoria de instrucciones. Note que la instruccin aba lee sus operandos
en este mismo ciclo de reloj; es decir, lee los contenidos de los registros ACCA y
ACCB, los cuales no han sido actualizados con los valores de las instrucciones de
carga anteriores.

En este momento, la lgica interna del mdulo de registros detecta que se intenta leer
y escribir el registro ACCB, por lo tanto, el dato que se va a escribir es adelantado del
registro de segmentacin EX/WB hacia alguna de las salidas del mdulo de registros.
De esta manera, uno de los operandos empleados por la instruccin aba, el contenido
del registro ACCB, ya tiene el valor correcto, pero el operando correspondiente al
contenido del registro ACCA an no lo tiene.

157
UNIVERSIDAD PRIVADA TELESUP

DETENCIONES

Este mtodo plantea que la solucin para eliminar


los riesgos por saltos es detenerse hasta que el
salto es resuelto, es decir, detener las
instrucciones posteriores al salto hasta que se
concluya la instruccin de salto. Observe que este
mtodo es similar al mtodo de detenciones que se utiliz para resolver los riesgos por
dependencias de datos, en el cual se detenan las instrucciones posteriores hasta
resolver el riesgo. Recuerde que la desventaja de este mtodo es la penalizacin de
varios ciclos de reloj que se presenta cuando el salto no se realiza. Esta penalizacin
se muestra en el diagrama de mltiples ciclos de reloj de la figura 7.66

Figura 7.66. Diagrama de mltiples ciclos de reloj en donde se utiliza un


esquema de detenciones para resolver los riesgos por salto.

SUPONER QUE EL SALTO NO ES REALIZADO


Una mejora al esquema de detenciones es suponer que el salto no se realiza, por lo
tanto, se contina avanzando en la ejecucin del flujo secuencial de instrucciones.

En caso de que se realice el salto, las instrucciones posteriores a la instruccin de


salto, las cuales estn siendo ejecutadas, son descartadas (se limpia el cauce); y la
ejecucin de instrucciones reinicia a partir de la direccin destino del salto. Esta idea
se expresa en la figura 7.68.

158
UNIVERSIDAD PRIVADA TELESUP

Figura 7.68. En caso de que se realice el salto

El mtodo que se utiliza para descartar las instrucciones (limpiar el cauce) es muy
parecido al mtodo de generacin de burbujas. Estas burbujas son insertadas en las
ltimas etapas de la segmentacin, es decir, los contenidos de los registros de
segmentacin ID/EX y EX/WB son reemplazados con nuevas seales de control,
obteniendo el mismo efecto de la instruccin nop. Nuevamente la unidad encargada de
detectar los saltos y descartar las instrucciones cuando se realiza el salto es la unidad
de detenciones. Tres nuevas seales de control son agregadas a esta unidad: Branch,
que indica cundo realizar el salto; isBranch, que indica si la instruccin que se est
ejecutando en la etapa 4 corresponde a una instruccin de salto; y EXFlush, que
coloca a ceros el contenido del registro de segmentacin EX/WB. Adicionalmente, la
unidad de detenciones incorpora las seales de control necesarias para detectar y
eliminar los riesgos debidos a accesos El funcionamiento de la nueva unidad de
detenciones se resume en la tabla 7.20;mltiples a memoria.

Tabla 7.20. Condiciones para detectar los riesgos por accesos mltiples.

159
UNIVERSIDAD PRIVADA TELESUP

Max TEMA 3
+
Plus II
Competencia:
Conocer el entorno funcional de MAX +
PLUS II.

160
UNIVERSIDAD PRIVADA TELESUP

Tema 03: Max + Plus II

INTERRUPCIONES
Como se ha visto, el control es el aspecto ms complicado
en el diseo de un procesador, pero la parte ms ardua
del control es la implantacin de las interrupciones. Una
interrupcin es un evento que proviene del exterior del
procesador y provoca un cambio inesperado en el flujo de
control del programa. Las interrupciones las utilizan los
dispositivos de entrada/salida para comunicarse con el procesador, y de manera
similar a los saltos, cambian el flujo normal de ejecucin de las instrucciones.
Inicialmente, las interrupciones se crearon para manejar los eventos inesperados
como las peticiones de servicio provenientes de los dispositivos de entrada/salida.

Actualmente, este mecanismo se ha extendido para manejar tambin los eventos que
se generan internamente en el procesador, como por ejemplo, desbordamientos
aritmticos, instrucciones indefinidas, entre otras. Los diseadores de hardware
utilizan el trmino excepcin para referirse a estos tipos de interrupciones internas.
Para nuestro caso particular, el nico tipo de interrupciones que se atendern sern
las solicitadas por los dispositivos de entrada/salida. Para su implantacin, se han
colocado en la arquitectura dos nuevos mdulos: el mdulo PCTrap y la unidad de
interrupciones.

El mdulo PCTrap est compuesto por un registro de 16 bits,


el cual almacena la direccin de regreso de la interrupcin.
Recuerde que antes de cambiar el flujo de control del
programa hacia la rutina de atencin a la interrupcin, el
procesador debe guardar la direccin de la prxima instruccin
a ejecutar, con el fin de regresar a ejecutar esa instruccin una
vez que la interrupcin haya sido atendida. La seal de entrada SavePC habilitar al
mdulo para guardar una copia de la direccin de regreso, la cual es obtenida del
campo PC del registro de segmentacin IF/ID.

161
UNIVERSIDAD PRIVADA TELESUP

La unidad de interrupciones se encarga de informarle al procesador cundo un


dispositivo de entrada/salida necesita atencin. Si un dispositivo externo requiere
de los servicios del procesador, basta que active la lnea IRQ XIRQ ; en caso de
que ambas lneas estn activadas, la interrupcin XIRQ tendr prioridad sobre la
interrupcin IRQ. Si el procesador puede atender a la interrupcin, la unidad de
interrupciones proporciona una direccin de salto a la localidad de memoria en
donde se encuentra la rutina de atencin a la interrupcin. Un aspecto de gran
importancia que permite simplificar el diseo de la unidad de interrupciones es que
el procesador no maneja interrupciones anidadas, es decir, mientras se est
atendiendo una interrupcin no ser posible aceptar otra.

Las condiciones de entrada para la unidad de interrupciones estn dadas por las
lneas EnaINT, isBranch, Branch, IRQ y XIRQ , las cuales se describen a
continuacin.
Seal de entrada EnaINT. Cuando la unidad de interrupciones acepta atender
una peticin de servicio, sta es deshabilitada con el fin de que no puedan ser
atendidas otras interrupciones hasta que la interrupcin en curso termine su
ejecucin. La seal EnaINT, proveniente del registro de segmentacin EX/WB,
permite habilitar nuevamente a la unidad de interrupciones una vez que termina
de atender la interrupcin en curso, es decir, cuando se ejecuta una instruccin
de regreso de interrupcin (RTI). La seal EnaINT es generada por la unidad de
control, y es activada slo cuando se ejecuta una instruccin de regreso de
interrupcin (RTI).

Seal de entrada isBranch. Esta seal le informa a la unidad de interrupciones


que la instruccin que se est ejecutando en la ltima etapa de la segmentacin
corresponde a una instruccin de salto. Es importante conocer el estado de esta
seal porque en algunos casos no est permitido ejecutar una interrupcin si un
salto est en progreso. Recuerde que la seal isBranch proviene del registro de
segmentacin EX/WB, y es generada por la unidad de control siempre y cuando
la instruccin que decodifica es una instruccin de salto.

162
UNIVERSIDAD PRIVADA TELESUP

Seal de entrada Branch. Si la instruccin


que se ejecuta en la ltima etapa de la
segmentacin es una instruccin de salto,
entonces, la seal Branch le informa a la
unidad de interrupciones si en verdad se
realiza el salto o no. La seal Branch
tambin proviene del registro de
segmentacin EX/WB, y es generada por el mdulo Branch ubicado en la etapa
de ejecucin. Una interrupcin no es atendida por la unidad de interrupciones si
se presenta una condicin de salto al mismo tiempo, es decir, no es posible
atender una interrupcin si el procesador est ejecutando una instruccin salto
en la ltima etapa de la segmentacin. Esto significa que la ejecucin de un salto
tendr mayor prioridad que la atencin a una interrupcin externa. Una vez
terminado el salto, la unidad de interrupciones podr atender al dispositivo
causante de la interrupcin.

Seal de entrada IRQ. La seal IRQ es activada cuando el dispositivo externo


conectado a esta lnea requiere de la atencin del procesador.
Seal de entrada XIRQ . La seal XIRQ es activada cuando el dispositivo
externo conectado a esta lnea requiere de la atencin del procesador. La
interrupcin XIRQ tiene mayor prioridad que la interrupcin IRQ.

Una vez validada la condicin de entrada, la unidad de interrupciones contesta a


travs de las lneas SelINT y SavePC, las cuales se describen a continuacin.

Seal de salida SelINT. La seal SelINT selecciona la procedencia de


una direccin de salto. Si SelINT=1, se selecciona la direccin DirINT
que corresponde a la direccin de inicio de la rutina de atencin a
la interrupcin. En cambio, si SelINT=0, la direccin que se
selecciona proviene del incrementador, o bien, del bus
DatoW. La direccin de inicio de la rutina de interrupcin,
DirINT, es proporcionada por la unidad de interrupciones.

163
UNIVERSIDAD PRIVADA TELESUP

Seal de salida SavePC. Una vez que la unidad de interrupciones decide


atender a un dispositivo externo, es necesario guardar la direccin en memoria
de la siguiente instruccin a ejecutar, para que una vez atendida la
interrupcin, el procesador contine ejecutando el programa a partir de esa
instruccin. La seal SavePC habilita al registro PCTrap para guardar la
direccin de regreso de la interrupcin.

INICIANDO MAX+PLUS II
MAX+PLUS II (Multiple Array Matrix Programmable Logic User System) es un
ambiente grfico de gran utilidad en el diseo, anlisis y simulacin de sistemas
digitales. Si usted ya es un usuario experimentado en el manejo de MAX+PLUS II
quiz desee pasar directamente al apartado de Verilog HDL. Si no es as, esta
seccin le mostrar cmo compilar y simular sus diseos mediante un ejemplo. Una
vez instalado el software de MAX+PLUS II, inicie la aplicacin y espere a que
aparezca la siguiente pantalla.

Figura A.1. El manager de MAX+PLUS II.

164
UNIVERSIDAD PRIVADA TELESUP

ste es el Manager de MAX+PLUS II que consta de once


aplicaciones para el diseo de sistemas digitales. Estas
once aplicaciones se listan en el men MAX+PLUS II de la
barra de herramientas y son las siguientes.
Hierarchy Display. Muestra la jerarqua actual del
proyecto. Esta jerarqua se presenta como una estructura de
rbol con ramificaciones que representan los distintos subdiseos.
Graphic Editor. Permite crear un diseo visual en un ambiente lo que ves es lo que
obtienes (WYSIWYG). Para ello, existen bloques predefinidos de Altera que
ejecutan determinadas funciones lgicas, o bien, es posible crear nuevos bloques
con funciones definidas por el usuario.
Symbol Editor. Permite editar los smbolos de los mdulos existentes y tambin
crear nuevos smbolos.

Text Editor. Permite crear y editar diseos de texto basados en los lenguajes de
descripcin de hardware AHDL, VHDL y Verilog HDL.
Waveform Editor. Permite observar el comportamiento de nuestro diseo a lo largo
del tiempo. En otras palabras, presenta los resultados de la simulacin.
Floorplan Editor. Permite asignar manualmente los puertos de entrada y de salida
del diseo lgico, a los pines de entrada y salida del dispositivo fsico.
Compiler. Procesa los proyectos creados y genera los archivos necesarios para la
programacin y simulacin del circuito.

Simulator. Permite revisar la operacin lgica y


la respuesta en el tiempo del circuito lgico.

Timing Analyzer. Analiza el rendimiento del


circuito lgico despus de haber sido sintetizado
por el compilador.

Programmer. Permite programar los dispositivos fsicos de Altera.

Message Processor. Muestra mensajes de error, advertencias e informacin sobre


el estado actual del proyecto.

165
UNIVERSIDAD PRIVADA TELESUP

USANDO EL EDITOR DE TEXTO DE MAX+PLUS II


Elija la opcin Text Editor del men MAX+PLUS II. Escriba el siguiente programa
dentro de la ventana del Editor de Texto y gurdelo con el nombre Example_1.v. Es
importante que el nombre del archivo sea el mismo que el nombre del mdulo, de lo
contrario, el compilador marcar errores. Por otra parte, la extensin .v indica que es
un diseo de Verilog.
module Example_1 (a, b, e, c, d);
input a, b, e;
output c, d;
assign c = a & b;
assign d = e;
endmodule Su diseo deber parecerse al de la siguiente figura.

Figura A.2. Editor de texto.

Figura A.2. Editor de texto.

Por el momento no se preocupe por la sintaxis del programa, slo necesita saber que
la seal c recibe el resultado de la operacin lgica a AND b, y que se asigna a la
seal d el valor de la seal e. Ms adelante volveremos a ver este ejemplo y se
explicar a detalle su funcionamiento. Antes de compilar el programa necesita
especificar el nombre del proyecto, esto es, el nombre del archivo con mayor jerarqua.

166
UNIVERSIDAD PRIVADA TELESUP

En este caso, el nico archivo es Example_1.v y por lo tanto, es el archivo con mayor
jerarqua. Para establecer el nombre del proyecto, dirjase al men File de la barra de
herramientas, abra el men Project y elija Set Project to Current File.
Es importante que especifique el nombre del archivo correcto porque de no hacerlo
puede omitir archivos o agregar otros que no correspondan al proyecto.

Figura A.3. Especifique el nombre del proyecto.

Ahora compile el proyecto. Vaya al men File de la barra de herramientas, abra el


men Project y elija la opcin Save & Compile. En esta ocasin aparecer la interfaz
de compilador mostrando el status de la compilacin. Si no existen errores de sintaxis,
el diseo ser procesado satisfactoriamente. El compilador de MAX+PLUS II
procesar el proyecto y lo asignar a un dispositivo fsco de la familia MAX o FLEX de
Altera. Si desea cambiar este dispositivo, abra el men Assign de la barra de
herramientas y seleccione la opcin Device. Una ventana aparecer con los
dispositivos lgicos disponibles, elija uno segn sus necesidades.11

167
UNIVERSIDAD PRIVADA TELESUP

Figura A.4. Interfaz del compilador.

Siempre es deseable conocer la respuesta en el tiempo del circuito, para ello,


crearemos un archivo de forma de onda con los valores de las seales de entrada. Los
resultados obtenidos indicarn si el funcionamiento del circuito es el correcto o
necesita redisearse. Para crear un archivo de forma de onda seleccione la opcin
Waveform Editor del men MAX+PLUS II. Aparecer una ventana en donde deber
colocar los nombres de las seales de entrada y salida que desea monitorear.

Si le es incmodo estar recordando los nombres de las seales, utilice la opcin Enter
Nodes from SNF ubicada en el men Node de la barra de herramientas. Esta opcin
abrir un cuadro de dilogo con la lista de todas las seales utilizadas en el proyecto.

168
UNIVERSIDAD PRIVADA TELESUP

Dentro del cuadro de dilogo podr seleccionar qu seales listar: entradas,


salidas, nodos de grupo (seales compuestas por ms de una lnea) o
combinaciones de las anteriores. Para actualizar la lista oprima el botn List
ubicado en el extremo superior derecho del cuadro de dilogo. Las seales
disponibles aparecern dentro del recuadro Available Nodes & Groups, marque
las seales que desee monitorear y transfiralas al recuadro Selected Nodes &
Groups.

Figura A.5. Seleccin de las seales de entrada y salida en el editor de forma de


onda.

D clic en el botn OK. Las seales seleccionadas aparecern en el editor de forma


de onda. Ahora d valores a las seales de entrada. Para ello, seleccione un rango de
tiempo arrastrando el puntero de mouse y asigne un valor a ese rango. Los valores
son asignados mediante los botones de la barra de herramientas de la izquierda, de
manera que podemos tener valores de cero (nivel lgico bajo), de uno (nivel lgico
alto), no importa (nivel lgico indefinido) y alta impedancia (Z). Antes de la simulacin
las seales de salida presentan niveles lgicos indefinidos. Una vez simulado el
circuito, estas seales cambian dependiendo de los valores de las entradas y la lgica
interna del circuito.

169
UNIVERSIDAD PRIVADA TELESUP

Termine de asignar valores arbitrarios a las seales de entrada, guarde el archivo con
el nombre Example_1.scf y seleccione la opcin Save & Simulate ubicada en el
men Project del men File. Esta opcin abrir la ventana del Simulador, quien
calcular los valores de las salidas en base a los datos de entrada.

Figura A.6. Editor de forma de onda antes de la simulacin.

Figura A.7. Fin de la simulacin

170
UNIVERSIDAD PRIVADA TELESUP

La siguiente figura presenta los resultados de la simulacin. La seal c muestra el


resultado de la operacin AND entre los valores de las entradas a y b, dicha
operacin vale 1 si ambas seales de entrada valen 1 y vale 0 para cualquier otra
combinacin de valores de las entradas. Por otra parte, la seal d recibe exactamente
el valor de la seal de entrada e.

Figura A.8. Editor de forma de onda despus de la simulacin.

Si observa cuidadosamente el archivo de simulacin


notar que el resultado presenta un pequeo retardo. Esto
es totalmente normal y no afecta en nada al desempeo
del circuito, ya que el retardo es insignificante (10,4 ns).
Sin embargo, estos retardos s son de gran importancia en
circuitos con tiempos de respuesta muy pequeos, pues
retrasan las operaciones de todo el circuito. En ocasiones
requerir que el tiempo total de simulacin sea mayor a
1s. Si es as, dirjase al men File de la barra de herramientas y seleccione la opcin
End Time. Ahora cambie el tiempo final de simulacin en el cuadro de dilogo que
aparece. Si requiere cambiar el tamao de la cuadrcula, dirjase al men Options de
la barra de herramientas y elija Grid Size. Un nuevo cuadro de dilogo aparecer con
el tamao actual de la cuadrcula, modifquelo de acuerdo a sus necesidades.

171
UNIVERSIDAD PRIVADA TELESUP

Editor
TEMA 4
de Max
+
Plus II
Competencia:
Emplear adecuadamente el editor de MAX +
PLUS II.

172
UNIVERSIDAD PRIVADA TELESUP

Tema 04: Editor de MAX + PLUS II

Seleccione la opcin Graphic Editor del men MAX+PLUS II. A continuacin elija del
men Symbol la opcin Enter Symbol. Entonces aparecer una ventana con los
nombres de los smbolos disponibles clasificados en varias categoras.
Prim. Esta categora engloba todas las prim itivas
lgicas (and, or, nand, nor, or, xnor, xor, etc.), las
primitivas de flip-flops y latches, las primitivas de
puertos de entrada y salida, y las primitivas de
buffers.

MF. Esta categora engloba a las macrofunciones, es decir, funciones de la familia


74LSxxx. Entre estas funciones encontramos sumadores, ALUs, comparadores,
contadores, decodificadores, multiplicadores, multiplexores, registros, registros de
corrimiento, etc.
MEGA_LPM. Esta categora encierra todas las funciones parametrizadas LPM.
Entre estas encontramos sumadores/restadores, buffers tres estados, contadores,
multiplexores, multiplicadores, latches, registros de corrimientos, memorias RAM,
memorias ROM, etc.
El usuario tambin puede crear su propia categora de smbolos para despus
insertarlos en nuevos proyectos.

Figura A.9. Insercin de smbolos en el editor grfico.

173
UNIVERSIDAD PRIVADA TELESUP

Como ejemplo ilustrativo desarrollaremos el mismo programa presentado en el editor


de texto. En primer lugar abra la ventana de Enter Symbol y seleccione de la
categora de primitivas una compuerta AND de dos entradas (and2). Vuelva a abrir la
ventana y elija tres primitivas de puertos de entrada (input) y dos de puertos de salida
(output). A continuacin conecte todos los elementos como se muestra en la figura
A.10. Conectar dichos elementos es muy sencillo: coloque el puntero del mouse sobre
alguno de los pines, si se trata de un pin vlido el puntero del mouse cambiar a una
cruz. Enseguida presione el botn izquierdo del mouse y sin soltarlo arrastre el puntero
hasta el pin que desee conectar. Suelte el botn y la conexin entre los pines quedar
realizada. Tambin renombre los pines de entrada y de salida. Para ello, seleccione el
campo etiquetado con el nombre PIN_NAME, d doble clic sobre este campo y
cambie cada etiqueta por el nombre sugerido.

Figura A.10. Circuito equivalente utilizando el editor grfico.

Guarde el archivo con el nombre Example_1b.gdf y complelo. Recuerde que antes


de compilar un nuevo proyecto debe especificar su nombre mediante la opcin Set
Project to Current File ubicada en el men Project del men File. Enseguida cree el
archivo de forma de onda mostrado en la figura A.6 y simlelo. Ahora compare la
salida de este circuito con la salida del ejemplo hecho en Verilog; notar que ambas
simulaciones son idnticas, por lo tanto, los archivos son equivalentes. Por ltimo,
construiremos el smbolo de nuestro mdulo con el fin de poderlo agregar en otros
proyectos grficos. As que abra el men File de la barra de herramientas y
seleccione la opcin Create Default Symbol. Espere unos segundos y tendr un
archivo con extensin .sym.

174
UNIVERSIDAD PRIVADA TELESUP

Siga el mismo procedimiento para crear el smbolo del archivo Example_1.v. En este
caso, aparecer la interfaz del compilador para mostrar el avance en la creacin del
smbolo y un cuadro de dilogo para indicar la terminacin.

Figura A.11. Creacin del smbolo.

La opcin Edit Symbol, localizada en el mismo men, le


permitir hacer modificaciones sobre el smbolo, incluyendo
cambios en la disposicin de los pines de entrada y salida,
cambios en el tipo de fuente de las letras o en el tamao de
las mismas. Tambin se tiene la opcin de crear el archivo
Include tanto de un archivo de texto como de uno grfico.
Estos archivos Include tienen la misma funcin que los
archivos de smbolos, slo que los archivos Include son
para insertarse en diseos de texto y no en diseos
grficos.

175
UNIVERSIDAD PRIVADA TELESUP

El archivo Include es creado utilizando la opcin Create Default


Include File del men File. Si este archivo es creado desde el
editor de texto, la interfaz del compilador aparecer mostrando
el estado de la creacin del archivo. Si es creado con el editor
grfico, slo es necesario esperar unos segundos y el archivo
con extensin .inc ser creado.

Figura A.12. Creacin del archivo Include.

EL LENGUAJE DE DESCRIPCIN DE HARDWARE VERILOG


Verilog fue desarrollado en 1984 por Gateway Design Automation. Su aparicin fue
bien recibida por todos los diseadores de circuitos integrados y de sistemas digitales,
de esta manera, en poco tiempo se convirti en uno de los lenguajes ms populares.
Quiz su gran aceptacin se debi a que es fcil de aprender, pues los programadores
encuentran mucha similitud con otros lenguajes como C o Pascal.
MDULOS
Los mdulos son la unidad bsica de un diseo en Verilog. Un diseo en Verilog
consiste de uno o varios mdulos organizados jerrquicamente que contienen
informacin sobre el diseo, o bien.

176
UNIVERSIDAD PRIVADA TELESUP

La sintaxis para la declaracin de un mdulo es la siguiente.


module <nombre_del_mdulo> ( lista_de_puertos ) ;
// Declaracin de la lista de puertos
// Cdigo del mdulo
End module contienen instancias de otros mdulos.
Los mdulos no pueden anidarse, es decir, la definicin de
un mdulo no puede contener la definicin de otro; si desea
utilizar un mdulo dentro de otro debe crear una instancia del mdulo deseado.
Recuerde, las instancias a mdulos nos permiten utilizar la funcionalidad de esos
mdulos pero dentro de otros.
La manera de crear una instancia de un mdulo es la siguiente.
<nombre_del_mdulo> <nombre_de_la_instancia> ( lista_de_puertos );

PUERTOS
En Verilog un puerto es un nombre simblico que representa una entrada o una salida
hacia un mdulo o hacia una primitiva12. Si utiliza el software MAX+PLUS II para crear
sus diseos debe tener en cuenta que existen ciertas restricciones para la conexin de
estos puertos; estas restricciones estn documentadas en la ayuda de MAX+PLUS II
en la seccin Primitive/Port Interconnections. La declaracin de los puertos de
entrada/salida utilizan las siguientes palabras reservadas: input, declara puertos de
entrada; output, declara puertos de salida; e inout, declara puertos bidireccionales. Si
utiliza puertos bidireccionales recuerde que MAX+PLUS II no soporta puertos
bidireccionales en mdulos internos, es decir, no puede utilizar estos puertos
bidireccionales como entradas internas como salidas internas en un diseo; si desea
utilizar un puerto bidireccional ste debe ser externo a todo el diseo.

COMENTARIOS
Los comentarios son utilizados para introducir descripciones adicionales, explicaciones
y cualquier otra informacin que no es parte del cdigo pero que es muy til para
entenderlo. Los comentarios son ignorados durante la compilacin del diseo.Hay dos
tipos de comentarios: los de una sola lnea y los de mltiples lneas. Los comentarios
de una sola lnea comienzan con los caracteres // y terminan con el carcter de fin de
lnea. En cambio, los comentarios de mltiples lneas comienzan con la secuencia /* y
terminan con */; todo lo que est entre estos delimitadores ser un comentario.

177
UNIVERSIDAD PRIVADA TELESUP

BLOQUES PROCEDURALES
Los bloques procedurales (initial y always) son las construcciones bsicas para el
modelado de comportamientos en Verilog. Los bloques procedurales representan
flujos de tareas, y pueden ser secuenciales o concurrentes. Los bloques procedurales
no pueden anidarse.

Bloque initial
Su especificacin consiste de la palabra reservada initial seguida de una sentencia o
un bloque de sentencias que ser ejecutado cuando el bloque se active. Recuerde que
las palabras reservadas begin y end sirven para agrupar bloques de sentencias. initial
begin // Sentencia o bloque de sentencias end; El bloque initial es activado al inicio de
la simulacin y slo se ejecuta una vez; regularmente se utiliza para inicializar algunas
variables de nuestro diseo. Si el usuario especifica ms de un bloque initial, stos
sern ejecutados al comienzo de la simulacin de manera concurrente.
Bloque always
Su especificacin consiste de la palabra reservada always seguida de una sentencia o
de un bloque de sentencias que ser ejecutado cuando el bloque se active. Un bloque
always es activado al inicio de la simulacin y continuar ejecutndose durante toda la
simulacin. Normalmente los bloques always son manejados por un evento de control
que especifica cundo debe ejecutarse el bloque. Estos eventos pueden ser los
flancos del reloj, cambios en los valores de las variables, entre otros. Ms adelante se
explica cmo construir lgica combinacional y secuencial mediante el uso de los
bloques always.

EVENTOS
Los eventos permiten controlar la ejecucin de una sentencia o bloque de sentencias.
En su forma ms simple, un evento es un cambio de valor en una net o en un registro.
Su especificacin es utilizando el smbolo @ seguido por el nombre de la net o del
registro. @ (nombre_de_la_net_o_del_registro) Las sentencias escritas despus del
evento de control sern ejecutadas slo cuando el evento o los eventos de control
sean detectados. Los tipos ms comunes de eventos son el flanco de subida y el
flanco de bajada de una seal. Para detectar el flanco de subida de una seal
utilizamos la palabra reservada posedge y para registrar el flanco de bajada utilizamos
la palabra negedge.

178
UNIVERSIDAD PRIVADA TELESUP
Lecturas Recomendadas
RIESGOS POR DEPENDENCIA DE DATOS
http://mixteco.utm.mx/~merg/AC/pdfs/Unit_5_Part_2.pdf

MAX + PLUS II: TUTORIAL


http://www.site.uottawa.ca/~rabielmo/miniCourse06/tutorial.pdf

Actividades y Ejercicios

1. En un documento en Word elabore una lista de los riesgos por


dependencia de datos, su control usando software, por medio de
detenciones y por medio de anticipaciones.
Envalo a travs de "Dependencia de Datos".

2. En un documento en Word presente tres ejemplos de uso Verilog


HDL en el entorno de MAX + PLUS II
Envalo a travs de "Verilog HDL.

179
UNIVERSIDAD PRIVADA TELESUP
Autoevaluacin
1) Permite observar el comportamiento de nuestro diseo a lo largo del tiempo.
En otras palabras, presenta los resultados de la simulacin:
a. Waveform programador.
b. Waveform simulador.
c. Waveform controlar.
d. Waveform obturador.
e. Waveform Editor.

2) Verilog fue desarrollado en _________ por _________ Su aparicin fue bien


recibida por todos los diseadores de circuitos integrados y de sistemas
digitales:
a. 1984 - Gateway Design Automation.
b. 1874 Ruterhforth verilog.
c. 1964 Gateway Design.
d. 1978 Ruterforth Design.
e. 1984 Santiago Gateway.

3) Este mtodo plantea que la solucin para eliminar los riesgos por saltos es
detenerse hasta que el salto es resuelto.
a. Detenciones.
b. Condiciones.
c. Eventos.
d. Usuarios.
e. Datos.

4) Detener las instrucciones en el cauce ______________________ de manera


correcta, sin embargo, el costo de las detenciones afecta negativamente al
rendimiento.
a. Garantiza la organizacin de instrucciones dependientes muy prximas.
b. Garantiza la ejecucin de instrucciones dependientes muy prximas.
c. Garantiza la nivelacin de instrucciones dependientes muy prximas.
d. Garantiza la administracin de instrucciones dependientes muy prximas.
e. Garantiza la participacin de instrucciones dependientes muy prximas.

5) Es un ambiente grfico de gran utilidad en el diseo, anlisis y simulacin de


sistemas digitales:
a. Max+Plus III.
b. Max+Plus I.
c. Max+Plus II.
d. Max+Plus IV.
e. Max+Plus V.

180
UNIVERSIDAD PRIVADA TELESUP

6) El Manager de MAX+PLUS II consta de_______ aplicaciones para el diseo de


sistemas digitales:
a. Trece.
b. Diez.
c. Siete.
d. Once.
e. Dos.

7) Permiten controlar la ejecucin de una sentencia o bloque de sentencias:


a. Los usuarios.
b. Los eventos.
c. Los datos.
d. Los aba.
e. Los nop.

8) Este mtodo consiste en dar reglas al compilador de manera que no genere


secuencias de instrucciones:
a. Control de riesgos al probar prototipos por medio de software.
b. Adquisicin de datos por medio de software.
c. Control de riesgos por dependencias de datos por medio de software.
d. Probar prototipo y construir por medio de software.
e. Compilacin de datos por medio de software.

9) Cuando no se puedan encontrar instrucciones independientes, el compilador


podra insertar instrucciones ___________ garantizando as la independencia
de datos entre instrucciones.
a. Anda.
b. Oraa.
c. Staa.
d. Nop.
e. Aba.

10) La abreviatura nop significa:


a. Operacin orientada.
b. Prueba no completada.
c. Prueba en riesgo.
d. Error de operacin.
e. No operacin.

181
UNIVERSIDAD PRIVADA TELESUP
Resumen
UNIDAD DE APRENDIZAJE IV:

El control de riesgos por dependencias de datos por medio de software consiste en dar
reglas al compilador de manera que no genere secuencias de instrucciones
dependientes. el control de riesgos por dependencias de datos por medio de
detenciones es ms sencillo para resolver los riesgos por dependencias de datos en
hardware es detener las instrucciones en el cauce hasta que se resuelva el riesgo.

La unidad de anticipacin slo detecta una condicin de riesgo por dependencia de


datos. otra condicin de riesgo no es posible porque suponemos que el mdulo de
registros internos suministra el resultado correcto si una instruccin en la etapa 2
intenta leer el mismo registro que otra instruccin en su etapa 4 intenta escribir,
entonces, se puede decir que el mdulo de registros internos es otra forma de
anticipacin. la unidad de anticipacin y el mdulo de registros internos se encargan
de resolver las dos condiciones de riesgos por dependencias de datos.

Las interrupciones las utilizan los dispositivos de entrada/salida para comunicarse con
el procesador, y de manera similar a los saltos, cambian el flujo normal de ejecucin
de las instrucciones. las condiciones de entrada para la unidad de interrupciones estn
dadas por las lneas enaint, isbranch, branch, irq y xirq. max+plus ii es un ambiente
grfico de gran utilidad en el diseo, anlisis y simulacin de sistemas digitales.

Verilog es un lenguaje de descripcin de hardware. los mdulos son la unidad bsica


de un diseo en Verilog. un diseo en Verilog consiste de uno o varios mdulos
organizados jerrquicamente que contienen informacin sobre el diseo. los mdulos
no pueden anidarse, es decir, la definicin de un mdulo no puede contener la
definicin de otro; si desea utilizar un mdulo dentro de otro debe crear una instancia
del mdulo deseado.

182
UNIVERSIDAD PRIVADA TELESUP
Glosario
ASCII: Uno de los primeros y ms usados cdigos de caracteres. Existe en
versiones de 7 u 8 bits.
BIOS: Basic Input-Output System, sistema bsico de entrada-salida. Programa
incorporado en un chip de la placa base que se encarga de realizar las funciones
bsicas de manejo y configuracin del ordenador.
BIT: Unidad mnima de informacin de la memoria, equivalente a un "s" (0) o un
"no" (1) binarios. La unin de 8 bits da lugar a un byte.
BUFFER: Memoria dedicada a almacenar temporalmente la informacin que debe
procesar un dispositivo hardware para que ste pueda hacerlo sin bajar el
rendimiento de la transferencia. Aparece tpicamente en discos duros y CD-
ROMs.
BUS: Canal por el que circula informacin electrnica en forma de bits. El ancho
de bus es el nmero de bits transmitidos simultneamente por el bus.
BYTE: Unidad de informacin, compuesta de 8 bits consecutivos. Cada byte
puede representar, por ejemplo, una letra.
CACHE: Cualquier tipo de memoria "intermedia" entre dos aparatos, que acelera
las comunicaciones y transmisiones de datos entre ellos. Por extensin, se aplica
a la "cach de nivel 2", es decir, la que est en la placa base, entre el
microprocesador y la memoria.
DMA: Direct Memory Access, acceso directo a memoria. Mtodo de gestionar los
dispositivos hardware por el cual pueden acceder directamente a la memoria sin
precisar que el microprocesador gestione el proceso.
DRIVER: Pequeo programa cuya funcin es controlar el funcionamiento de un
dispositivo del ordenador bajo un determinado sistema operativo.
KERNEL: Ncleo o parte esencial de un sistema operativo. Provee los servicios
bsicos del resto del sistema.
LBA: Logical Block Address, direcciones de bloques lgicas. Tecnologa usada
en los discos duros de ms de 528 MB para superar la limitacin a este tamao
que la BIOS y el DOS les impondran.
PIN: Cada uno de los conectores elctricos de muchos elementos hardware,
como las "patitas" de muchos microprocesadores.
RAM: Random Access Memory, o Memoria de Acceso aleatorio. La memoria
principal en la que se almacenan los datos durante el funcionamiento de un
ordenador, la cual se borra al apagarlo. De diversos tipos (Fast Page, EDO,
SRAM...) y conectores (SIMM, DIMM...).
ROM: Read Only Memory, o Memoria de slo lectura. Un tipo de memoria
"esttica", es decir, que no se borra al apagar el ordenador y en principio en la
que no puede escribirse, salvo que se empleen mtodos especiales. Usada
sobre todo para guardar la BIOS del ordenador.
VRM: Mdulo de voltajes de micro.

183
UNIVERSIDAD PRIVADA TELESUP
Fuentes de Informacin
BIBLIOGRFICAS:

SAVAGE VZQUEZ, Gabriel. Diseo de Microprocesadores. Universidad


Nacional Autnoma de Mxico, 2010.
TOKHEIM HARTH Poger. "Fundamentos de los Microprocesadores". SIEMENS"
Sab 8080 Micrcomputer User's Manual", 2011.
ANGULO MANDUJANO, Jos. "Microprocesadores Curso sobre aplicaciones
en sistemas industriales",2008.
NICHOLS NICHOLS, Pony. "Programacin del Microprocesador Z80", 2009.
SHORT, KERMMETH L. El Microprocesador 8080 y sus Interfases, 2006.
VZQUEZ VELEZ , Cesar. "Curso Sobre el Microprocesador 8085-Fabricado
por Intel",2010.

ELECTRNICAS:

Diseo de microprocesadores
http://profesores.fi-b.unam.mx/luist/archivos/MicroprocesadoresSavage.pdf

Estructura y tecnologa de computadoras


http://www.uclm.es/profesorado/licesio/Docencia/ETC/26_1_CDC-
Microprogramacion.pdf

Diseo digital con lgica programable manual MAX+PLUS II


http://www.dea.icai.upco.es/sadot/ed-itei/tutorial-maxplus.pdf

Organizacin del computador I apunte de microprogramacin


http://www2.dc.uba.ar/materias/oc1/2005/documentos/files/apuntes/micropr.pdf

184
UNIVERSIDAD PRIVADA TELESUP
Solucionario

UNIDAD DE UNIDAD DE
APRENDIZAJE 1 APRENDIZAJE 2:

1. A 1. A

2. B 2. B

3. C 3. E

4. D 4. A

5. A 5. B

6. E 6. C

7. B 7. D

8. C 8. E

9. D 9. C

10. E 10. D

UNIDAD DE
UNIDAD DE
APRENDIZAJE 4:
APRENDIZAJE 3:
1. A 1. E

2. B 2. A

3. C 3. A

4. D 4. B

5. E 5. C

6. A 6. D

7. D 7. B

8. E 8. C

9. B 9. D

10. C 10. E

185

You might also like