18. Camino de datos y unidad de control

Anuncio
18. Camino de datos y unidad
de control
Oliverio J. Santana Jaria
Sistemas Digitales
Ingeniería Técnica en Informática de Sistemas
Curso 2006 – 2007
Introducción
La versatilidad es una característica deseable de los
sistemas digitales
Un sistema digital complejo puede ser capaz de
manipular unos datos determinados de formas
diferentes, en función de lo que indique un programa
Los objetivos de este tema son:
Describir el diseño de un camino de datos utilizando
elementos combinacionales y secuenciales
Describir el diseño de una unidad de control que permita
interpretar un programa y utilizar el camino de datos para
distintos fines
Camino de datos y unidad de control
2
1
Introducción
Introducción
Camino de datos
Diseño de un camino de datos sencillo
Diseño de un camino de datos más completo
Caminos de datos generales
Unidad de control
Diseño de una unidad de control
Implementación de una unidad de control
Resumen y Bibliografía
Camino de datos y unidad de control
3
Caminos de datos
Los caminos de datos son sistemas digitales
utilizados con frecuencia para la manipulación
de datos y la realización de cálculos numéricos
complejos
Por regla general, los caminos de datos funcionan de la
siguiente manera:
Los valores de variables y constantes se almacenan en
registros o memorias tras el flanco de la señal de reloj
Estos valores son modificados durante el periodo entre
dos flancos de reloj por medio de lógica combinacional
Los resultados de estas operaciones se vuelven a almacenar
en los registros o memorias tras el siguiente flanco de reloj
Camino de datos y unidad de control
4
2
Introducción
Introducción
Camino de datos
Diseño de un camino de datos sencillo
Diseño de un camino de datos más completo
Caminos de datos generales
Unidad de control
Diseño de una unidad de control
Implementación de una unidad de control
Resumen y Bibliografía
Camino de datos y unidad de control
5
Un camino de datos sencillo
Por ejemplo, para realizar la suma de 100 números se
podría seguir un algoritmo iterativo
suma = 0
para i = 1 a 100
suma = suma + entrada
fin para
Este bucle podría ejecutarse en un camino de datos
de 32 bits formado por un registro y una ALU
La variable suma se almacenaría en el registro, que
denominaremos acumulador
En cada ciclo se sumaría al contenido del acumulador
el valor de una nueva variable de entrada
Camino de datos y unidad de control
6
3
Un camino de datos sencillo
Este diagrama muestra
un ejemplo de camino de
datos sencillo que podría
realizar esta suma
El multiplexor permite
elegir el operando de la
izquierda de la ALU de
entre un 0 y el valor de
una línea de entrada
Camino de datos y unidad de control
7
Un camino de datos sencillo
El acumulador es un
registro de desplazamiento
con carga en paralelo
El operando de la derecha
de la ALU será siempre el
contenido del acumulador
El contenido del
acumulador también
puede obtenerse como
salida a través de un
adaptador triestado
Camino de datos y unidad de control
8
4
Un camino de datos sencillo
En cada ciclo del
funcionamiento del
circuito será necesario
determinar los valores de
las 9 señales de control
Los valores de estas
señales vendrán dados
por una palabra de control
de 9 bits
Camino de datos y unidad de control
9
Un camino de datos sencillo
En total, este camino de
datos necesita 102 ciclos
para realizar su función
En el primer ciclo se pone
a cero el acumulador
El los siguientes 100
ciclos se realiza la suma
En el último ciclo se saca
el resultado por la salida
Camino de datos y unidad de control
10
5
Un camino de datos sencillo
Durante la realización
de esta operación será
necesario generar 102
palabras de control
Con una secuencia
diferente de palabras de
control podría usarse este
camino de datos para
realizar otras operaciones
sencillas
Camino de datos y unidad de control
11
Introducción
Introducción
Camino de datos
Diseño de un camino de datos sencillo
Diseño de un camino de datos más completo
Caminos de datos generales
Unidad de control
Diseño de una unidad de control
Implementación de una unidad de control
Resumen y Bibliografía
Camino de datos y unidad de control
12
6
Un camino de datos más completo
Un camino de datos sencillo con un acumulador
puede ser utilizado para la realización de operaciones
aritméticas simples
Sin embargo, la realización de operaciones aritméticas
más complejas requerirá la implementación de un
camino de datos más elaborado
Además, la necesidad de usar más de una variable
temporal puede obligar a usar un banco de registros
en lugar de sólo un acumulador
Camino de datos y unidad de control
13
Un camino de datos más completo
Este diagrama muestra
un camino de datos más
complejo
El circuito incluye un
banco de registros de tres
puertos que se encarga
tanto de proporcionar los
dos operandos a la ALU
como de memorizar el
resultado de la operación
Camino de datos y unidad de control
14
7
Un camino de datos más completo
Este camino de datos se
controla con una palabra
de 20 bits que determina
los destinos, fuentes y
operaciones del circuito
Aquí se muestran las
tablas de operación de la
ALU y el registro de
desplazamiento, así como
la estructura de la palabra
de control
Camino de datos y unidad de control
15
Introducción
Introducción
Camino de datos
Diseño de un camino de datos sencillo
Diseño de un camino de datos más completo
Caminos de datos generales
Unidad de control
Diseño de una unidad de control
Implementación de una unidad de control
Resumen y Bibliografía
Camino de datos y unidad de control
16
8
Caminos de datos generales
Los caminos de datos vistos hasta ahora resultarían
demasiado lentos para muchas aplicaciones
Para conseguir mejores prestaciones, es necesario que
los caminos de datos sean capaces de realizar varias
operaciones concurrentemente, dando lugar a caminos
de datos paralelos
El primer paso para conseguir un camino de datos
paralelos sería aumentar el número de puertos del
banco de registros
Camino de datos y unidad de control
17
Camino de datos paralelo
Este diagrama muestra un camino de datos con un
banco de registros de seis puertos, seis buses y cuatro
unidades funcionales
Camino de datos y unidad de control
18
9
Camino de datos paralelo
Este camino de datos puede hacer dos operaciones en
paralelo, una en la ALU o el desplazador y la otra en el
multiplicador o el divisor
Camino de datos y unidad de control
19
Camino de datos paralelo
Sin embargo, este camino de datos no podría realizar
una suma y un desplazamiento a la vez o una
multiplicación y una división al mismo tiempo
Además, este camino de datos tampoco es capaz de
realizar dos sumas o dos multiplicaciones a la vez
Por lo tanto, este camino de datos paralelo no sería
realmente capaz de duplicar las prestaciones del camino
de datos sencillo, ya que el paralelismo disponible es
sólo parcial
Camino de datos y unidad de control
20
10
Camino de datos a medida
Por lo tanto, las prestaciones de un camino de datos
dependerán no sólo del número y tipo de unidades
funcionales, sino también de cómo estén conectadas
Esto significa que, a la hora de diseñar un camino de
datos paralelo, habrá que hacerlo a medida, teniendo
en cuenta el objetivo del circuito para obtener la mejor
relación entre su coste y sus prestaciones
Se necesitará una cantidad concreta de cada unidad funcional
Algunas unidades funcionales necesitarán un bus propio
Otras unidades funcionales podrán compartir un bus
Camino de datos y unidad de control
21
Camino de datos a medida
Este diagrama muestra un ejemplo de camino de datos
a medida, aunque un diseño real dependería de las
prestaciones necesarias y la complejidad aceptable
Camino de datos y unidad de control
22
11
Introducción
Introducción
Camino de datos
Diseño de un camino de datos sencillo
Diseño de un camino de datos más completo
Caminos de datos generales
Unidad de control
Diseño de una unidad de control
Implementación de una unidad de control
Resumen y Bibliografía
Camino de datos y unidad de control
23
Unidad de control
La operación realizada por un camino de datos
depende de la secuencia de palabras de control que
se le suministran a lo largo de su funcionamiento
Para realizar una operación concreta es necesario el
diseño de una unidad de control que, en cada ciclo de
reloj, proporcione la palabra de control adecuada
Esta unidad de control puede implementarse como un
circuito secuencial con biestables que almacenen su
estado, una lógica de estado siguiente y una lógica de
salida que proporcione la palabra de control
Camino de datos y unidad de control
24
12
Introducción
Introducción
Camino de datos
Diseño de un camino de datos sencillo
Diseño de un camino de datos más completo
Caminos de datos generales
Unidad de control
Diseño de una unidad de control
Implementación de una unidad de control
Resumen y Bibliografía
Camino de datos y unidad de control
25
Diseño de una unidad de control
Como ejemplo vamos a
diseñar una unidad de
control que utilice el camino
de datos sencillo con un
banco de registros de 3
puertos para realizar un
contador de unos
Este circuito recibirá un
dato de entrada, contará el
número de unos que tenga y
lo sacará por la salida
Camino de datos y unidad de control
26
13
Diseño de una unidad de control
Comenzaremos por suponer que el dato de entrada
proviene del exterior y está disponible en las entradas
del circuito
Para describir el algoritmo utilizaremos cuatro variables
temporales, cada una de las cuales será asignada a uno
de los registros del banco de registros
Dato – almacenará el dato de entrada
Cuenta – almacenará el número de unos del dato
Máscara – contendrá la constante 1
Temp – variable auxiliar
Camino de datos y unidad de control
27
Diseño de una unidad de control
El algoritmo de la cuenta de unos debe, en primer lugar,
inicializar las variables
Introducir el dato de entrada en la variable Dato
Inicializar la variable Cuenta a 0 y la variable Máscara a l
Tras esto se entra en un bucle para comprobar cada bit
Se obtiene el bit menos significativo del número
haciendo un AND de Dato con Máscara
Si el bit es 1 se incrementa la Cuenta
Se desplaza el Dato una posición a la derecha
El bucle terminará cuando Dato sólo contenga ceros
Por último, el valor de Cuenta aparecerá a la salida
Camino de datos y unidad de control
28
14
Diseño de una unidad de control
Éste es el algoritmo necesario para realizar la
operación, así como una posible asignación de
los registros necesarios para las cuatro variables
Camino de datos y unidad de control
29
Diseño de una unidad de control
Conociendo el algoritmo y los registros asignados
a las variables, podemos replantearlo para obtener
la secuencia de palabras de control necesaria
Camino de datos y unidad de control
30
15
Diseño de una unidad de control
La unidad de control sería
un módulo secuencial
separado con tres señales
Inicio – señal de entrada
que indica cuando
comenzar la cuenta
Dato≠0 – señal de entrada
proporcionada por el
camino de datos
Hecho – señal de salida
que indica que la cuenta ha
terminado y el resultado
está disponible a la salida
Camino de datos y unidad de control
31
Diseño de una unidad de control
Para implementar los ocho estados de la unidad
de control serán necesarios tres biestables, que
supondremos de tipo D
El cálculo de la lógica de estado siguiente se realiza de
la forma habitual
Camino de datos y unidad de control
32
16
Diseño de una unidad de control
La lógica de salida de la unidad de control debe incluir
la señal de salida Hecho y las 20 señales pertenecientes
a la palabra de control del camino de datos
Camino de datos y unidad de control
33
Diseño de una unidad de control
Este diagrama
muestra el contador
de unos con la
implementación de
la unidad de control
y el camino de datos
que se ha utilizado
Camino de datos y unidad de control
34
17
Introducción
Introducción
Camino de datos
Diseño de un camino de datos sencillo
Diseño de un camino de datos más completo
Caminos de datos generales
Unidad de control
Diseño de una unidad de control
Implementación de una unidad de control
Resumen y Bibliografía
Camino de datos y unidad de control
35
Implementación de la unidad de control
Hasta ahora se ha supuesto que la unidad de control se
diseña usando biestables con la correspondiente lógica
asociada para calcular el estado siguiente y la salida
Podemos pensar en el conjunto de biestables como en
un registro de estado que almacena, como su nombre
indica, el estado de la unidad de control
Camino de datos y unidad de control
36
18
Implementación de la unidad de control
El tipo de implementación que hemos visto, basada en
un registro de estado, resulta útil para unidades de
control sencillas
Sin embargo, una unidad de control puede llegar a
tener miles de estados posibles y cientos de señales
de entrada y salida, por lo que una implementación
con biestables daría un resultado demasiado complejo
Por este motivo, existen varios diseños alternativos
que permiten simplificar la implementación de las
unidades de control
Camino de datos y unidad de control
37
Implementación de la unidad de control
Una posibilidad para simplificar la implementación
de las lógicas de estado siguiente y salida es utilizando
un decodificador
Cada estado se identifica mediante una señal que
valga 1 cuando el registro de estado esté en un estado
concreto y 0 en los demás casos
Camino de datos y unidad de control
38
19
Implementación de la unidad de control
También se puede simplificar la lógica de estado
siguiente aprovechando que muchas unidades de control
tienen secuencias de estados con un único sucesor
Codificando consecutivamente los estados de las secuencias
Sustituyendo el registro de estado por un contador
El contador incrementará el estado para seguir por una
secuencia o cargará un nuevo valor para saltar a otra distinta
Camino de datos y unidad de control
39
Implementación de la unidad de control
Una última estrategia requiere sustituir la lógica de
estado siguiente por una memoria ROM de control
En este tipo de diseños, que suelen recibir el nombre de
control microprogamado, el registro de estado actúa
como un registro de direcciones para la ROM
Camino de datos y unidad de control
40
20
Implementación de la unidad de control
El contenido de la ROM, que suele conocerse como
microprograma, determina cuál es el estado siguiente a
partir de uno dado
La lógica asociada a la ROM es la encargada de
determinar el estado siguiente, lo que puede implicar
Seguir incrementando secuencialmente el valor del estado
Realizar un salto a otra secuencia dentro del programa
Mientras que la implementación con un registro de
estado es la más popular para circuitos sencillos, el
control microprogramado se emplea con frecuencia en
el diseño de procesadores complejos
Camino de datos y unidad de control
41
Introducción
Introducción
Camino de datos
Diseño de un camino de datos sencillo
Diseño de un camino de datos más completo
Caminos de datos generales
Unidad de control
Diseño de una unidad de control
Implementación de una unidad de control
Resumen y Bibliografía
Camino de datos y unidad de control
42
21
Resumen
Las unidades de memorización permiten almacenar los
valores de las variables usadas en los programas que se
ejecutan en un camino de datos
La interpretación de estos programas corre a cuenta de
una unidad de control, que indica al camino de datos lo
que debe hacer para obtener los resultados deseados
Una unidad de control capaz de interpretar un programa
y un camino de datos capaz de ejecutarlo nos permiten
entrever cómo se realiza el diseño de un procesador real
Camino de datos y unidad de control
43
Bibliografía
Principios de Diseño Digital
Capítulo 7
Daniel D. Gajski
Prentice Hall, 1997
Camino de datos y unidad de control
44
22
Descargar