7 Camino de datos y unidad Camino de datos y unidad de 7

Anuncio
7 Camino de datos y unidad de
7.
control
co
to
Fundamentos de los Computadores
Grado en Ingeniería
g
Informática
Introducción
‰
La versatilidad es una característica deseable de los sistemas
digitales
g
Un sistema digital complejo puede ser capaz de manipular unos
datos determinados de formas diferentes, en función de lo que
indique un programa
‰
L objetivos
Los
bj i
de
d 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
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
P
l general,
l los
l caminos
i
de
d datos
d t funcionan
f i
de
d la
l siguiente
i i t
manera:
ƒ Los valores de variables y constantes se almacenan en registros
g
o
memorias tras el flanco de la señal de reloj
ƒ Estos valores son modificados durante el período 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
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
g un algoritmo
g
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
Un camino de datos sencillo
‰
Este diagrama muestra un
ejemplo
j p 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
p
con carga
g en
paralelo
‰
El operando
d de
d la
l derecha
d
h de
d la
l
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
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
p
realizar su función
‰
En ell primer
E
i
ciclo
i l 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
Un camino de datos sencillo
‰
Durante la realización de esta
operación
p
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
Un camino de datos más completo
‰
Un camino de datos sencillo con un acumulador puede ser
utilizado ppara la realización de operaciones
p
aritméticas simples
p
‰
Sin embargo, la realización de operaciones aritméticas más
complejas
l j requerirá
i á la
l implementación
i l
t ió de
d un camino
i de
d datos
d t
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
p j
‰
El circuito incluye un banco de
registros
i t de
d tres
t puertos
t 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
Un camino de datos más completo
‰
Este camino de datos se
controla con una ppalabra 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
Caminos de datos generales
‰
Los caminos de datos vistos hasta ahora resultarían demasiado
lentos ppara muchas aplicaciones
p
‰
Para conseguir mejores prestaciones, es necesario que los
caminos
i
de
d datos
d t sean capaces de
d realizar
li varias
i operaciones
i
concurrentemente, dando lugar a caminos de datos paralelos
‰
El primer paso para conseguir un camino de datos paralelo 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
g
de seis ppuertos,, seis buses y cuatro unidades
funcionales
Camino de datos y unidad de control
18
Camino de datos paralelo
‰
Este camino de datos puede hacer dos operaciones en paralelo,
una en la ALU o el desplazador
p
y la otra en el multiplicador
p
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
p
a la vez o una multiplicación
p
y una división al
mismo tiempo
‰
Además,
Ad
á este
t camino
i de
d datos
d t tampoco
t
es capaz de
d realizar
li dos
d
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
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
p de unidades funcionales,, sino también
de cómo estén conectadas
‰
Esto
E
t significa
i ifi que, a la
l hora
h
de
d diseñar
di ñ un camino
i de
d datos
d t
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
q un diseño real dependería
p
de las pprestaciones necesarias
y la complejidad aceptable
Camino de datos y unidad de control
22
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 ppalabras de control qque se le suministran a lo largo
g
de su funcionamiento
‰
Para realizar
P
li una operación
ió concreta
t es necesario
i ell diseño
di ñ de
d
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
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 qque 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
Diseño de una unidad de control
‰
Comenzaremos por suponer que el dato de entrada proviene del
exterior y está disponible
p
en las entradas del circuito
‰
Para describir el algoritmo utilizaremos cuatro variables
t
temporales,
l cada
d una de
d las
l cuales
l seráá asignada
i d a uno de
d los
l
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
p
el Dato una pposició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
Diseño de una unidad de control
‰
Éste es el algoritmo necesario para realizar la operación, así
como una pposible asignación
g
de los registros
g
necesarios ppara 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
p
p
ppara obtener la secuencia de ppalabras de
control necesaria
Camino de datos y unidad de control
30
Diseño de una unidad de control
‰
La unidad de control sería un
módulo secuencial separado
p
con
tres señales
ƒ Inicio – señal de entrada que indica
cuando
d comenzar la
l cuenta
ƒ Dato≠0 – señal de entrada
proporcionada
p
p
ppor 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,, qque supondremos
p
de tipo
p 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
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
p
a la palabra
p
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
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
p
lógica
g asociada ppara
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
Implementación de la unidad de control
‰
El tipo de implementación que hemos visto, basada en un
registro
g
de estado,, resulta útil ppara unidades de control sencillas
‰
Sin embargo, una unidad de control puede llegar a tener miles de
estados
t d posibles
ibl y cientos
i t de
d señales
ñ l de
d entrada
t d y salida,
lid por lo
l
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
g
de estado siguiente
g
y salida es utilizar 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
Implementación de la unidad de control
‰
También se puede simplificar la lógica de estado siguiente
aprovechando
p
qque 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
g
por
p 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
Implementación de la unidad de control
‰
‰
El contenido de la ROM, que suele conocerse como
microprograma,
p g
, determina cuál es el estado siguiente
g
a partir
p
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
li un salto
l a otra secuencia
i dentro
d
del
d l programa
‰
Mientras que la implementación con un registro de estado es la
más popular para circuitos sencillos,
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
Resumen
‰
Las unidades de memorización permiten almacenar los valores
de las variables usadas en los pprogramas
g
qque se ejecutan
j
en un
camino de datos
‰
La iinterpretación
L
t
t ió de
d estos
t programas corre a cuenta
t de
d 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
Descargar