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