Bloques Aritméticos

Anuncio
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 2010-11
1/34
Diseño de circuitos y sistemas digitales / Bloques aritméticos
Bloques Aritméticos - Multiplicadores
Consideramos dos números binarios sin signo X
e Y, de M y N bits respectivamente:
X=
M −1
∑
i =0
Y=
X i 2i
N −1
j
Y
2
∑ j
j =0
X i , Y j ∈ {0,1}
Definición de la operación de multiplicación:
Z = X×Y =
M + N −1
∑
k =0
Z k 2k =
N −1

 M −1

i
j 
 ∑ Xi 2   ∑ Yj 2  =
 i =0
  j =0

DCSE 2010-11
2/34
N −1
 M −1
i+ j 
∑
 ∑ X iY j 2 
j =0  i =0

Diseño de circuitos y sistemas digitales / Bloques aritméticos
Multiplicadores – Desplazamiento y Suma
X= ∑X2
N −1 M −1

i+ j 
M −1
Y=
i
i
i =0
N −1
∑Y 2
j =0
Z = X×Y =
j
∑∑ XY 2
j =0
j
 i =0
i
j


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 2010-11
3/34
Diseño de circuitos y sistemas digitales / Bloques aritméticos
Multiplicador matricial: ejemplo
1 0 1 0 1 0
Multiplicando
1 0 1 1
Multiplicador
×
1 0 1 0 1 0
1 0 1 0 1 0
0 0 0 0 0 0
+
1 0 1 0 1 0
1 1 1 0 0 1 1 1 0
DCSE 2010-11
Productos parciales
4/34
Resultado
Diseño de circuitos y sistemas digitales / Bloques aritméticos
Multiplicador matricial
1 0 1 0 1 0
×
1 0 1 1
1 0 1 0 1 0
1 0 1 0 1 0
0 0 0 0 0 0
+
Los productos parciales se
generan en paralelo y se
organizan en una matriz
1 0 1 0 1 0
1 1 1 0 0 1 1 1 0
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 2010-11
5/34
Diseño de circuitos y sistemas digitales / Bloques aritméticos
Generación de productos parciales
X7
X6
X5
X4
X3
X2
X1
X0
Yj
PP7
PP6
PP5
PP4
PP3
PP2
PP1
PP0
Los productos parciales (PP) resultan de aplicar la operación
lógica AND al multiplicando X y a un bit del multiplicador Yj
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 2010-11
6/34
Diseño de circuitos y sistemas digitales / Bloques aritméticos
Algoritmo de Booth
Ejemplo:
Un multiplicador de 8 bits: 01111110 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 10000010
representa el mismo
−
número, si 1 es una anotación abreviada para
designar el valor -1
DCSE 2010-11
7/34
Diseño de circuitos y sistemas digitales / Bloques aritméticos
Algoritmo de Booth
Ejemplo (cont.):
−
Utilizando esta representación ( 10000010),
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 2010-11
8/34
Diseño de circuitos y sistemas digitales / Bloques aritméticos
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 2010-11
9/34
Diseño de circuitos y sistemas digitales / Bloques aritméticos
Re-codificación de Booth modificado
Tabla de re-codificación
Booth
Bits del
multiplicador
0
0
0
0
1
1
1
1
0
0
1
1
0
0
1
1
DCSE 2010-11
0
1
0
1
0
1
0
1
Ejemplos:
01110110(0) → 011 110 011 100
recodificados
00
01
01
02
-02
-01
-01
00
10/34
↓
02 -01 02 -02
00100111(0)→ 001 100 011 110
↓
01 -02 02 -01
10111010(0)→ 101 111 101 100
↓
-01 00 -01 -02
-01: complemento a 2
02: desplazamiento (multiplicar por 2)
-02: complemento a 2 y desplazamiento
Diseño de circuitos y sistemas digitales / Bloques aritméticos
Re-codificación de Booth modificado
Tabla de re-codificación Booth
1
0
1
5
0
1
1
1
7
0
0
0
1
0
0
0
0
0
1
1
1×5
2×5
1
4×5
0×5
th
oo
+
1
0
B
ión
ac
0
1
ic
dif
co
re-
×
0
Bits del
multiplicador
re-codificados
0
0
0
00
0
0
1
01
0
1
0
01
0
1
1
02
1
0
0
-02
1
0
1
-01
1
1
0
-01
1
1
1
00
0 1 1 1 → 0 1 1 1 (0) → 011 110
↓
0
0
1
DCSE 2010-11
0
0
0
1
11/34
1
35
02 -01
Diseño de circuitos y sistemas digitales / Bloques aritméticos
Re-codificación de Booth modificado
Tabla de re-codificación Booth
×
0
0
1
1
1
0
0
0 1
5
0
2
0 -1
7= 2×22 + (-1)×20
1
0
1
1
2×22×5
1
0
-1×5
0
1
1
35
th
oo
0
1
1
B
ión
ac
+
1
0
ic
dif
co
re-
1
Bits del
multiplicador
re-codificados
0
0
0
00
0
0
1
01
0
1
0
01
0
1
1
02
1
0
0
-02
1
0
1
-01
1
1
0
-01
1
1
1
00
0 1 1 1 → 0 1 1 1 (0) → 011 110
↓
02 -01
0 1 0 1 (compl. 2): 1 0 1 0 + 0 0 0 1 = 1 0 1 1 y en 8 bits: 1 1 1 1 1 0 1 1
DCSE 2010-11
12/34
Diseño de circuitos y sistemas digitales / Bloques aritméticos
Multiplicador matricial
Topológicamente muy
similar al
procedimiento manual
de multiplicación
Z7
X3
X2
X1
X0
Y1 Z0
X3
X2
X1
X0
HA
FA
FA
HA
X3
X2
X1
X0
FA
FA
FA
HA
X3
X2
X1
X0
FA
FA
FA
HA
Z6
Z5
Z4
Y3
Y2
Y0
Z1
Z2
Z3
Multiplicador matricial de 4×
×4 bits para números sin signo
DCSE 2010-11
13/34
Diseño de circuitos y sistemas digitales / Bloques aritméticos
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-1 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 2010-11
14/34
Diseño de circuitos y sistemas digitales / Bloques aritméticos
Multiplicador matricial
¿Cómo calcular el
retardo de propagación
de este circuito?
Identificar camino crítico
de temporización ¡(no
trivial)!
Se pueden identificar varios caminos con una longitud
prácticamente idéntica
DCSE 2010-11
15/34
Diseño de circuitos y sistemas digitales / Bloques aritméticos
Multiplicador matricial
Hay N-1 sumadores de M bits
tmult ≈ tAND + (N-1)·tsum + [(M-1) + (N-2)]·tcarry
(para el camino crítico 2)
DCSE 2010-11
16/34
Diseño de circuitos y sistemas digitales / Bloques aritméticos
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 CarrySelect, no tiene mucho sentido)
tmult ≈ tAND + (N-1)·tsum + [(M-1) + (N-2)]·tcarry
De la ecuación anterior, se observa que la
minimización de tmult requiere la minimización tanto de
tcarry como de tsum
Se puede utilizar un
sumador Carry-Save
DCSE 2010-11
17/34
Diseño de circuitos y sistemas digitales / Bloques aritméticos
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 2010-11
18/34
Diseño de circuitos y sistemas digitales / Bloques aritméticos
Multiplicador Carry-Save
La propagación de señales se realiza hacia la siguiente etapa y
no entre elementos de una misma etapa
DCSE 2010-11
19/34
Diseño de circuitos y sistemas digitales / Bloques aritméticos
Multiplicador Carry-Save - ejemplo
compresor 3-2
DCSE 2010-11
20/34
Diseño de circuitos y sistemas digitales / Bloques aritméticos
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
tmult ≈ tAND + (N-1)·tcarry + tfinalsum
Retardo de un sumador de N bits
DCSE 2010-11
21/34
Diseño de circuitos y sistemas digitales / Bloques aritméticos
Disposición rectangular de un CSM
y se
combinan
Se
utilizanmediante
6 sumadores
operaciones AND antes de
completos
las sumas
FA y 6 semi-sumadores HA
DCSE 2010-11
22/34
Diseño de circuitos y sistemas digitales / Bloques aritméticos
Á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 2010-11
23/34
Diseño de circuitos y sistemas digitales / Bloques aritméticos
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 2010-11
24/34
Diseño de circuitos y sistemas digitales / Bloques aritméticos
Á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 2010-11
25/34
Diseño de circuitos y sistemas digitales / Bloques aritméticos
Á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 2010-11
26/34
Diseño de circuitos y sistemas digitales / Bloques aritméticos
Á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 2010-11
27/34
Diseño de circuitos y sistemas digitales / Bloques aritméticos
Árbol de Wallace para un multiplicador de 4×4 bits
Solo se utilizan 3
sumadores completos
FA y 3 semi-sumadores
HA para el proceso de
reducción
DCSE 2010-11
28/34
Diseño de circuitos y sistemas digitales / Bloques aritméticos
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(log3/2(N)).
Desventaja: el multiplicador Wallace es muy irregular, lo que complica
la tarea de obtener un layout eficiente.
HA
DCSE 2010-11
29/34
Diseño de circuitos y sistemas digitales / Bloques aritméticos
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 2010-11
30/34
Diseño de circuitos y sistemas digitales / Bloques aritméticos
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 2010-11
31/34
Diseño de circuitos y sistemas digitales / Bloques aritméticos
Problemas
DCSE 2010-11
32/34
Diseño de circuitos y sistemas digitales / Bloques aritméticos
Problema 1. Examen junio 2003
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: tsuma=tcarry=1 ns, señale en la
estructura anterior los caminos con retardo máximo y
mínimo e indique sus valores.
DCSE 2010-11
33/34
Diseño de circuitos y sistemas digitales / Bloques aritméticos
Problema 2. Examen febrero 2002
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 1 bit (full-adder): Area normalizada = 1; Retardo = 1 ns.
Puertas lógicas (cualesquiera): Area normalizada = 0,5; Retardo = 0,5 ns.
Multiplexores (2 a 1):
Area normalizada = 0,25; Retardo = 0,25 ns.
Multiplexores (8 a 1):
Area normalizada = 1,75; Retardo = 0,75 ns.
Flip-flops tipo D:
Area normalizada = 0,75; tprop = 0,75 ns.; tsetup = 0,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 1 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 2010-11
34/34
Diseño de circuitos y sistemas digitales / Bloques aritméticos
Descargar