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