Bloques Aritméticos - Multiplicadores La multiplicación es una operación cara (en términos de recursos) y lenta Este hecho ha motivado la integración de unidades completas de multiplicación en los DSPs y µps Los multiplicadores son en la práctica matrices complejas de sumadores DCSE 2- /34
Bloques Aritméticos - Multiplicadores Consideramos dos números binarios sin signo X e Y, de M y N bits respectivamente: M X = i = DCSE 2- X i 2 i 2/34 N = j Y Y2 X, Y {,} j = j i j Definición de la operación de multiplicación: M + N k Z = X Y = Z2 = k = M N N M i j i + j Xi2 Yj2 = XY i j2 i = j = j = i = k
Multiplicadores Desplazamiento y Suma M = i X X2 N M Y i = N = j = Y j i 2 j i + j Z = X Y = XY i j2 j = i = La multiplicación requiere M ciclos utilizando un sumador de N bits. Se realiza la suma de N productos parciales, que se generan multiplicando un bit del multiplicador por el valor del multiplicando (operación AND) y desplazando el resultado según la posición del bit del multiplicador. DCSE 2-3/34
Multiplicador matricial: ejemplo + Multiplicando Multiplicador Productos parciales Resultado DCSE 2-4/34
Multiplicador matricial Los productos parciales se generan en paralelo y se organizan en una matriz + Un sumador multioperando calcula el producto final En hardware, la estructura del multiplicador matricial combina las funciones: generación de productos parciales, acumulación de productos parciales y suma final DCSE 2-5/34
Generación de productos parciales X7 X6 X5 X4 X3 X2 X X Y j PP7 PP6 PP5 PP4 PP3 PP2 PP PP Los productos parciales (PP) resultan de aplicar la operación lógica AND al multiplicando X y a un bit del multiplicador Y j Cada fila de la matriz de PP es una copia del multiplicando o una fila de ceros Optimizar la generación de los PP para reducir los retardos y el área ocupada en hardware (recodificación Booth) DCSE 2-6/34
Ejemplo: Algoritmo de Booth Un multiplicador de 8 bits: produce 6 filas de productos parciales distintos de cero Este número se puede re-codificar para poder reducir (sustancialmente) el número de filas distintas de cero: El número representa el mismo número, si es una anotación abreviada para designar el valor - DCSE 2-7/34
Ejemplo (cont.): Algoritmo de Booth Utilizando esta representación ( ), basta con sumar dos productos parciales, aunque el sumador tiene que ser capaz de realizar restas. Reducir el número de productos parciales es equivalente a reducir el número de sumas, lo que permite acelerar la operación y reducir el área ocupada. DCSE 2-8/34
Re-codificación de Booth modificado No resulta demasiado práctico para el diseño de multiplicadores disponer de una matriz de productos parciales de tamaño variable. Por eso, normalmente se utiliza el esquema de re-codificación de Booth modificado, en lugar del esquema original. El multiplicador se divide en grupos de 3 bits, solapados por un bit. Cada grupo de 3 se recodifica según la tabla siguiente: DCSE 2-9/34
Re-codificación de Booth modificado Tabla de re-codificación Booth Bits del multiplicador DCSE 2- recodificados 2-2 - - /34 Ejemplos: () 2-2 -2 () -2 2 - () -: complemento a 2 - - -2 2: desplazamiento (multiplicar por 2) -2: complemento a 2 y desplazamiento
Re-codificación de Booth modificado Tabla de re-codificación Booth 5 Bits del multiplicador re-codificados 7 5 2 5 re-codificación Booth 2-2 - + 4 5 5 35 - () 2 - DCSE 2- /34
Re-codificación de Booth modificado Tabla de re-codificación Booth 5 Bits del multiplicador re-codificados 2-7= 2 2 2 + (-) 2 + - 5 2 2 2 5 re-codificación Booth 2-2 - - 35 () 2 - (compl. 2): + = y en 8 bits: DCSE 2-2/34
Multiplicador matricial Topológicamente muy similar al procedimiento manual de multiplicación X 3 X 3 X 2 X X X Y 2 X X Z Y HA FA FA HA X 3 X 2 X X Y 2 Z FA FA FA HA X3 X 2 X X Y 3 Z 2 FA FA FA HA Z 7 Z 6 Z 5 Z 4 Z 3 Multiplicador matricial de 4 4 bits para números sin signo DCSE 2-3/34
Multiplicador matricial La generación de N PPs requiere N M puertas AND de 2 bits La mayor parte del área del multiplicador está dedicada a la suma de los N PPs, que requiere N- sumadores de M bits Desplazamiento: conectar apropiadamente las pistas de interconexión, sin necesidad de lógica especial Estructura compacta! Se puede implementar de forma rectangular (opt. layout) DCSE 2-4/34
Cómo calcular el retardo de propagación de este circuito? Multiplicador matricial Identificar camino crítico de temporización (no trivial)! Se pueden identificar varios caminos con una longitud prácticamente idéntica DCSE 2-5/34
Multiplicador matricial Hay N- sumadores de M bits t mult t AND + (N-) t sum + [(M-) + (N-2)] t carry (para el camino crítico 2) DCSE 2-6/34
Multiplicador matricial Hay dependencias verticales y horizontales en todos los niveles Todos los caminos críticos se tienen que acelerar al mismo tiempo (acelerar solo uno de ellos sustituyendo un sumador por otro más rápido, como por ejemplo un sumador Carry- Select, no tiene mucho sentido) t mult t AND + (N-) t sum + [(M-) + (N-2)] t carry De la ecuación anterior, se observa que la minimización de t mult requiere la minimización tanto de t carry como de t sum Se puede utilizar un sumador Carry-Save DCSE 2-7/34
Multiplicador Carry-Save Observamos que el resultado de la multiplicación no varía cuando los bits de salida del acarreo se transmiten diagonalmente hacia abajo en lugar de solo hacia la derecha Este es el principio del CSA que hemos visto en la clase anterior! Para generar el resultado final se incluye en el diseño un sumador adicional, denominado sumador de combinación de vectores DCSE 2-8/34
Multiplicador Carry-Save La propagación de señales se realiza hacia la siguiente etapa y no entre elementos de una misma etapa DCSE 2-9/34
Multiplicador Carry-Save - ejemplo compresor 3-2 DCSE 2-2/34
Multiplicador Carry-Save La propagación de señales se realiza hacia la siguiente etapa y no entre elementos de una misma etapa Retardo de un FA por cada fila superior t mult t AND + (N-) t carry + t finalsum Retardo de un sumador de N bits DCSE 2-2/34
Disposición rectangular de un CSM Se utilizan 6 sumadores y se combinan mediante operaciones AND antes de completos las sumas FA y 6 semi-sumadores HA DCSE 2-22/34
Árbol de retardos balanceado La cadena vertical de FA en un CSM es una cadena serie. Se puede reducir el retardo de dicha cadena empleando árboles binarios DCSE 2-23/34
Multiplicador en árbol Empleando sumadores para las sumas parciales en estructura de árbol, se pueden reducir tanto el camino crítico (retardo) como el núm. de celdas sumadoras necesarias (área) Para un multiplicador de 4 4 bits, se puede observar que solo la columna 3 de la matriz de sumadores tiene que sumar 4 bits. Todas las demás columnas son algo menos complejas. DCSE 2-24/34
Árbol de Wallace para un multiplicador de 4 4 bits Para conseguir una implementación mínima, recubrimos de manera iterativa el árbol con FA y HA comenzando por la parte más densa. En un primer paso introducimos HA en las columnas 4 y 3 DCSE 2-25/34
Árbol de Wallace para un multiplicador de 4 4 bits Este es el árbol reducido, y en esta estructura introducimos en una segunda iteración 3 FA y un HA. DCSE 2-26/34
Árbol de Wallace para un multiplicador de 4 4 bits Después de esta segunda iteración de reducciones hemos creado un árbol de profundidad 2, para alimentar el sumador final de dos entradas, para el cual se puede utilizar cualquier tipo de sumador DCSE 2-27/34
Árbol de Wallace para un multiplicador de 4 4 bits DCSE 2-28/34 Solo se utilizan 3 sumadores completos FA y 3 semi-sumadores HA para el proceso de reducción
Implementación del multiplicador en árbol de Wallace El multiplicador el árbol permite conseguir un ahorro sustancial de hardware para multiplicadores de gran tamaño. También se reduce el retardo de propagación, que es: O(log 3/2 (N)). Desventaja: el multiplicador Wallace es muy irregular, lo que complica la tarea de obtener un layout eficiente. HA DCSE 2-29/34
Suma final La velocidad del sumador final tiene gran importancia La elección del estilo de sumador dependerá de la estructura de la matriz de acumulación. Se puede preferir un CLA si todos los bits de entrada al sumador llegan al mismo tiempo (es el sumador con el más pequeño retardo posible) Este es el caso, por ejemplo, si se utiliza una etapa de registro justo antes de la suma final. El procesamiento en cadena mediante la inclusión de registros es una técnica frecuentemente utilizada en los multiplicadores de altas prestaciones DCSE 2-3/34
Suma final En los multiplicadores que no están basados en una estructura de procesamiento en cadena, el perfil de instantes de llegada de las entradas al sumador final es bastante poco equilibrado, debido a las profundidades lógicas variables del árbol del multiplicador En estas circunstancias, otras topologías de sumador, como las de carry-select, suelen proporcionar prestaciones similares a las del CLA, pero con un coste en términos de hardware sustancialmente menor DCSE 2-3/34
Problemas DCSE 2-32/34
Problema. Examen junio 23 Se desea realizar un bloque combinacional que realice la siguiente operación: Z = 4 A + 7 B + 3 C siendo A, B y C números enteros positivos de 4 bits. a) Determine los valores máximo y mínimo de la salida Z. Cuántos bits son necesarios para poder representarla? b) Utilizando únicamente sumadores completos de un bit, construya el bloque combinacional. Si lo considera oportuno siga la estructura de un multiplicador en array. c) Sabiendo que los retardos de propagación del sumador completo de un bit son: t suma =t carry = ns, señale en la estructura anterior los caminos con retardo máximo y mínimo e indique sus valores. DCSE 2-33/34
Problema 2. Examen febrero 22 Se desea realizar un bloque sumador de 8+8 bits y salida de 8 bits más acarreo. En este problema se estudiarán diferentes alternativas de implementación. Considere que deberá almacenar los datos de entrada en dos registros de 8 bits y que el resultado deberá escribirse en otro registro de 9 bits. Los componentes disponibles son los siguientes: Sumadores de bit (full-adder): Area normalizada = ; Retardo = ns. Puertas lógicas (cualesquiera): Area normalizada =,5; Retardo =,5 ns. Multiplexores (2 a ): Multiplexores (8 a ): Flip-flops tipo D: Area normalizada =,25; Retardo =,25 ns. Area normalizada =,75; Retardo =,75 ns. Area normalizada =,75; t prop =,75 ns.; t setup =,25 ns. a) Dibuje de forma detallada una arquitectura con un sumador del tipo carry-bypass de 8 bits con grupos de 3 bits. b) Comente la diferencia entre los dos tipos de sumadores carry-select y seleccione uno de ellos para diseñar un sumador carry-select de 8 bits donde el grupo que contiene el bit menos significativo sea de 2 bits. Dibuje de forma detallada la arquitectura resultante. c) En el caso de disponer un único sumador de bit, dibuje el datapath de una arquitectura que permita realizar la suma completa en secuencia. d) Calcule el área y el tiempo total (periodo mínimo número de ciclos de reloj) de cada una de las implementaciones realizadas. Compare estos resultados y comente de forma razonada cuál(es) de las alternativas realizadas considera más eficiente. DCSE 2-34/34