Está en la página 1de 7

Instituto Politécnico Nacional

Unidad Profesional Interdisciplinaria en Ingeniería y Tecnologías


Avanzadas

TAREA NO.1 “RESUMEN DE LA OPERACIÓN DEL


MULTIPLICADOR-ACUMULADOR”
Procesador Digital de Señales













Docente

Salazar Silva Gastón Hugo


Elaboró

§ Flores Escalante Flavio


§ Sánchez Ortega Mauricio
§ Nagaya Galván Jorge Armando

Grupo
3MM5

Fecha de entrega

Septiembre 1

INDICE


Representación de número reales ................................................................................ 1
Punto flotante ..................................................................................................................... 1
Punto fijo .......................................................................................................................... 1
Diferencia entre punto flotante y punto fijo ...................................................................... 1
Número Fraccional ............................................................................................................ 2
Arquitectura del MAC en el AVR ................................................................................... 2
Instrucciones del MAC ....................................................................................................... 2
Acumulador Virtual ........................................................................................................... 3
Errores ....................................................................................................................... 4
Sobreflujo ......................................................................................................................... 4
Escalamiento ..................................................................................................................... 5




























Representación de número reales


Punto fijo

La representación de tipo Fijo es aquella en la que, como lo indica su nombre, están definidos la
cantidad de bits que se utilizan después del punto decimal. Esto deriva en que la representación
de un número está limitada por la posición del punto en la cantidad de bits disponibles.
Al destinar más bits a la izquierda del punto es posible representar cantidades pequeñas con
mayor exactitud, pero reducimos la capacidad para trabajar con números enteros.
Otra limitante se encuentra en sus algoritmos, pues es común que al efectuar operaciones con
valores de este tipo exista un desbordamiento y sea necesarias operaciones extras, por ejemplo,
escalamientos

Punto flotante

Esta es más moderna que la anterior, por lo que sus capacidades y la complejidad de su
arquitectura suelen ser más altas. En este caso, al no tener el punto fijado, la representación que
logra es dinámica, siendo más flexible y con mayores posibilidades que el anterior, por ejemplo,
los errores por desbordamiento son menos susceptibles a ocurrir.
En relación a los DSP de punto fijo, los de punto faltante poseen una distribución de valores que
no es uniforme, por lo que pueden representar cantidades grandes o pequeñas según se requiera
y sin requerir operaciones adicionales.
Sin embargo, por su complejidad tienen precios más elevados, lo cual puede ser un factor decisivo
al seleccionar un DSP adecuado para nuestra aplicación.


Diferencia entre punto flotante y punto fijo

- El punto fijo es más rápido que el punto en ordenadores de uso general, sin embargo con
DSPs la velocidad es la misma debido a que el DSP esta optimizado para operaciones
matemáticas.
- La arquitectura interna de un DSP de punto flotante punto flotante es más complicada que
la de uno de punto fijo.
- El punto flotante (32 bits) tiene una mejor precisión y un rango dinámico más alto que el
punto fijo (16 bits).
- Los programas de punto flotante a menudo tienen un ciclo de desarrollo más corto ya que
el programador generalmente no necesita preocuparse por problemas de overflow,
underflow o errores de redondeo (overflow es un error de informática donde hay
sobrecarga de una posición de memoria, underflow es lo contrario, es no requerir con el
mínimo indispensable para llenar esa posición de memoria o variable.).
- Los DSP de punto fijo han sido tradicionalmente más baratos que los dispositivos de punto
flotante.
- Además de tener menor ruido de cuantificación, los sistemas de punto flotante son
también más fáciles para desarrollar algoritmos.

- La mayoría de las técnicas de los DSPs se basan en multiplicaciones repetidas y


adiciones. En el punto fijo, la posibilidad de un overflow o underflow debe considerarse
después de cada operación.

Número Fraccional

Los números fraccionarios se representan a través de bits con valores de potencias de ½, donde
la posición de los bits con respecto al punto determina el exponente.

Por ejemplo 0.10101 es igual a:



1 % 1 (
1 ) 1 *
1 +
=1∗ +0∗ +1∗ +0∗ +1∗
2 2 2 2 2
1 1 1
= + +
2 8 32
21
= = 0.65325
32

Por la estructura con la cual se construyen los números fraccionarios, nunca se podrá representar
un entero, aunque si tender a él.

Arquitectura del MAC en el AVR



Instrucciones del MAC

- MUL, multiplicación de enteros sin signo
- MULS, multiplicación de enteros con signo
- MULSU, multiplicación de un entero con signo con un entero sin signo
- FMUL, multiplicación de números fraccionados sin signo
- FMULS, multiplicación de números fraccionarios con signo
- FMULSU, multiplicación de un número fraccionario con signo y con un número fraccionario
sin signo

Las instrucciones MULSU y FMULSU se incluyen para mejorar la velocidad y la densidad de


código para la multiplicación de operandos de 16 bits.
El componente que hace que un DSP sea especialmente adecuado para el procesamiento de
señal es la unidad Multiply-Accumulate (MAC). Esta unidad es funcionalmente equivalente a un
multiplicador conectado directamente a una Unidad Aritmética Lógica (ALU). Los
microcontroladores megaAVR están diseñados para dar a la familia AVR la capacidad de realizar
de manera efectiva la misma operación de multiplicar y acumular.
La operación Multiply-Accumulate (a veces denominada operación de multiplicación) tiene un
inconveniente crítico. Cuando se añaden varios valores a una variable de resultado, incluso
cuando se añaden valores positivos y negativos hasta cierto punto se cancelan entre sí, se
evidencia el riesgo de que la variable de resultado sobrepase sus límites, es decir, si añade una a
una variable de byte con signo que contiene el valor +127, el resultado será -128 en lugar de +128.

Una solución a menudo utilizada para resolver este problema es introducir números fraccionarios,
es decir, números que son menores que 1 y mayores o iguales a -1.

Acumulador Virtual

El AVR permite que cualquier número de 32-8 bits de uso general entrada/salida (GPIO) formen
un "acumulador virtual".

Por ejemplo, si un acumulador de 24 bits es requerido por el AVR para hacer una operación MUL
de dos números de 12 bits, se combinan 3 registros de 8 bits de uso general convirtiéndolo en un
acumulador de 24 bits, si una MAC requiere un acumulador de 40 bits se combinan cinco registros
de 8 bits para formar dicho acumulador. Usando esta flexibilidad que nos proporciona el
acumulador garantiza que ninguna parte del resultado o subproducto tenga que moverse hacia
adelante y hacia atrás durante el funcionamiento MAC, lo que hubiera sido necesario si el tamaño
del acumulador se fijara a 32 bits o menos. La flexibilidad del acumulador del AVR es una
herramienta importante para evitar el overflow en los algoritmos de Punto Fijo (FP).
El overflow puede ocurrir en dos lugares del algoritmo del filtro; en los sub-resultados del algoritmo
Y la salida del filtro.

Las razones por las que el overflow puede ocurrir en los sub-resultados del algoritmo de filtrado
son:
- La multiplicación de dos valores con resolución N1 y N2 puede producir como resultado
un (N1+N2) bit.
- La suma de dos valores puede producir una suma que tiene 1 bit más que el operando
con la resolución más alta.

Como ejemplo de una aplicación de los acumuladores considere un filtro FIR(Respuesta Finita al
Impulso) de 4to orden descrito con la siguiente ecuación.

La salida es una suma de cinco productos. Suponiendo que las muestras de entrada y los
coeficientes son de 16 bits con signo, el algoritmo requerirá como máximo un acumulador de 34
bits, tal como se calcula a continuación.

N es el número de bits necesarios, K es la resolución de bits (excluyendo bit de signo) de las


muestras de entrada y coeficientes, y M es el número de adiciones. El bit único que se agrega es
el bit de signo. En este caso, el acumulador requeriría cinco registros GPIO (40 bits) para contener
el mayor valor absoluto que pudiera producirse debido a estas operaciones.

• Addition of two values can produce a sum that has 1 bit more than the
Errores with the highest resolution.
Consider a fourth order FIR filter described by Equation 5.
Sobreflujo
Equation 5: Difference Equation for a 4th Order FIR Filter.
El sobre flujo puede ocurrir en dos lugares del algoritmo
4
del filtro; en los sub resultados del filtro y
y[n] = ∑ b j ⋅ x[n]
en la salida del filtro. j =0

Las razones por la que el sobre flujo puede ocurrir en los sub resultados del filtro son:
The output is a sum of five products. Assuming that the input sam
• La multiplicación de dos valores con•coefficients
Addition
resolución
both
of two
N1
are 16-bit
values
y N2 can
que
and signed,a the
produce
producen sum
un
algorithm
that has will
(N1+N2)-bit 1 bitatmore
mostthan
requir
the
accumulator, as calculated
with the highest in Equation 6.
resolution.
resultados. • Addition of two values can produce a sum that has 1 bit more than th
Consider a fourth order FIR filter described by Equation 5.
• La adición de dos valores puede producir una
with suma que tiene
the highest 1 bit más que el operador con la
resolution.
Equation 6: Required Accumulator Resolution for 4th Order FIR Filter.
resolución más alta. Consider a fourth order FIR filter described by Equation 5.
N ≥ 2 ⋅ K5:+ Difference
Equation log 2 ( M ) +Equation
1 for a 4th Order FIR Filter.

[n=orden
Ecuación diferencial para un filtro de cuarto
] =2 ⋅∑ + log 2 (5) + 1 Equation for a 4th Order FIR Filter.
4
15
yEquation j ⋅ x[n ]
b5: Difference
≈ 33j.=032
4
y[n] = ∑ b j ⋅ x[n]
N = 34 j =0
The
La salida es la suma de 5 productos, asumiendo output
que isla muestra
a sum de of entrada
five products. Assuming
y coeficientes de lasthat the input sam
coefficients both are 16-bit and signed, the algorithm will at most
signrequire
señales son de 16 bits y el algoritmo requerida
The un
N is the acumulador
number
output
accumulator, as
of bitsdeneeded,
a sum 34
is calculated ofinbits.
K is the bit resolution (excluding
five products.
Equation 6. Assuming that the input sa
bit) o
samples and coefficients, and M is the number of additions. The single
coefficients both are 16-bit and signed, the algorithm will at most requ
Resolución requerida para un filtro FIR deadded is the
4 orden, sign
esta
accumulator,
bit.por:
dada
as
The accumulator would in this case require five GPIO
calculated in Equation 6.
(40 bits) to6:hold
Equation the largest
Required absoluteResolution
Accumulator value that may occur
for 4th due
Order to Filter.
FIR these oper
N ≥ 2in⋅ K
Keep mind + log
that2 (in
MIIR) +filters,
1 the output samples are used in the filtering al
Equation 6: Required Accumulator Resolution for 4th Order FIR Filter.
the=output has a higher resolution than the input, the accumulator needs to
N ≥2 2⋅ 15
according ⋅ Kto++the
log 2 (5 ) +1 1
2 ( M ) +resolution.
logoutput’s
≈=332.⋅32
15 + log 2 (5) + 1
3.3.2 Avoiding Overflow in Output
N =≈3433.32
To avoid overflow in the output stage, the filter gain must be limited so
N = 34to represent the result with the resolution available in the output s
possible
Evitar el sobreflujo en la salida N is the number of bits needed, K is the bit resolution (excluding sign bit) o
limit
sampleson the
andgain will, of course,
coefficients, and Mdepend on the spectrum
is the number and The
of additions. resolution
single (
output)
N is the
added of the
is the input
number signal.
of bits
sign bit. Theneeded, K is the
accumulator bit resolution
would (excluding
in this case signGPIO
require five bit)
Para evitar el sobreflujo en la salida, la (40
ganancia
samples todel
andfiltro
thedebe serabsolute
coefficients, limitada
and M para
theque pueda ofser
The bits)
most hold
conservativelargest criterion foris
value number
that
avoiding may
overflow additions.
occur indue The single
thetooutput
these oper
state
representada con la resolución disponibleabsolute
en la etapa
added issum deof
the salida.
sign
thebit. El
Thelimite
filter’s de la
accumulator
impulse ganancia
would
response dependerá
in this
multipliedcase require
with five GPI
the filtering
maximum
del espectro y la resolución (relativo Keepde la
(40
value
insalida)
mind that
bits) to
of thehas de
hold
input
in
la
the
IIR
señalfilters,
largest
cannotresolutionde the output
entrada.
absolute
exceed the
samples
El
value
maximum criterio
that may
are
más
absolute
used
occur
in the
due to these
value of the
al
ope
output
the output a higher than the input, the accumulator needs to
conservador para evitar el desbordamiento en la in
7 Keep
shows
according
salida
this
mind indica
criterion.
to the that que
in
output’sIIRlaresolution.
suma the
filters, absoluta
outputdesamples
la respuesta
are used in the filtering a
de impulso del filtro multiplicada con el valor absoluto máximo de la entrada
the output has a higher resolution than the input,no puede exceder the el
accumulator needs to
valor absoluto máximoOverflow
3.3.2 Avoiding de la salida.
in Output according7:toConservative
Equation the output’s resolution.
Criteria for Avoiding Overflows in Filter Output.
To avoid ∞overflow in the output stage, the filter gain must be limited so
3.3.2 Avoiding Overflow in Output
possible
n =0
∑ []
X MAX ⋅ to represent
h n ≤ YMAX the result with the resolution available in the output s
To on
limit avoid
the overflow
gain will,inofthe output
course, stage,on
depend thethe
filter gain must
spectrum and be limited (s
resolution

possible
output) of the Y
to represent
input
MAX signal. the result with the resolution available in the output
The
∑ []
h non ≤the gain will, of course, depend on the spectrum and resolution
limit
X
n = 0 most conservative criterion for avoiding overflow in the output state
output) of theMAX input signal.
absolute sum of the filter’s impulse response multiplied with the maximum
El criterio más conservador para evitar elvalue
desbordamiento
The of most
the input en
conservativela salida
cannot indica
criterion
exceed the que
for la sumaabsolute
avoiding
maximum overflow value
in theofoutput stat
the output
If absolute
themultiplicada
absoluta de la respuesta de impulso del 7filtro
showsimpulse
thissum response
ofcon doesabsoluto
theelfilter’s
criterion. valor not fulfillmáximo
impulse this criterion,
response la it simply
demultiplied with needs to be
the maximu
entrada no puede exceder el valor absolutowith a factor
máximo
value of the that
de la reduces
input salida.
cannot the absolute
exceed sum sufficiently.
the maximum absolute value of the outpu
6 AVR223 7 shows this criterion.
Equation 7: Conservative Criteria for Avoiding Overflows in Filter Output.
∞ 252
h[Conservative
MAX ⋅ ∑ 7:
XEquation n] ≤ YMAX Criteria for Avoiding Overflows in Filter Output.
n = 0∞
∞ X MAX ⋅ ∑Y h[n] ≤ YMAX 4
∑ h[n] ≤n =0
MAX

n = 0∞ X MAX
YMAX

Escalamiento

Una cuestión importante es la representación de los coeficientes de filtro en las arquitecturas de


punto fijo; no sólo se puede tratar con número enteros, sino , también con números fraccionarios.
Naturalmente, para representar con mayor exactitud un número, uno debe usar tantos bits como
sea posible. Con el fin de utilizar coeficientes de filtro fraccionario en multiplicaciones de números
enteros, esta cuestión se reduce a escalar todos los coeficientes por el factor común más grande
que no causa ningún desbordamiento en su representación.

El principio de escala de coeficientes y posterior reducción de escala del resultado se muestra a


continuación:
Equation 10: Scaling of Filter Coefficients and Downscaling of Result.
M N
2 k ⋅ ∑ ai y[n − i ] = 2 k ⋅ ∑ b j x[n − j ]
i =0 j =0

⎛ ⎞
( ) ( )
N M
y[n] = ⎜⎜ ∑ 2 k ⋅ b j ⋅ x[n − j ] + ∑ − 2 k ⋅ ai ⋅ y[n − i ]⎟⎟ >> k
⎝ j =0and Downscaling of Result.
Equation 10: Scaling of Filter Coefficients i =1 ⎠
M N
2 k ⋅ ∑ ai y[n − i ] = 2 k ⋅ ∑ b j x[n − j ]
Teniendo ien =0 cuenta quej =el0 Note bit dethat signo se debe
the sign bit must conservar
be preservedal reducir la escala. Esto
when downscaling. This se hace done with
is easily
fácilmente
y[n ] =con⎜ ∑ la
⎛ N
(2 k instrucción
⋅ b j ⋅ x[n − j ] +ASR
) the
∑=1 − 2(desplazamiento
M
(
ASR k
⋅ ai ⋅ y[n − i ]⎟⎟ >> k aritmético a la derecha).
)
instruction ⎞
(arithmetic shift right).

⎝ j =0 As ian example, consider ⎠ the filter coefficients bj = {0.9001, -0.6500, 0.3000}. If 16-bit
Como ejemplo, considerando signed integer representation
los coeficientes de filtroisbjto=be{0.9001,
used, the-0.6500,
scaled coefficients
0.3000}. Si mustse have
va avalues
Note that the sign bit must be inpreserved
the range [-215downscaling.
when 215-1] = [-32768 32767].
This is easily Naturally, the coefficient with the largest
done with
usar una
the ASRrepresentación deabsolute
instruction (arithmetic números value
shift right). enteros
will befirmados de 16 the
the one limiting bits,maximum
los coeficientes escalados
scaling factor. In this case, the
debenAstener valores en el rango
largest [-215
possible215-1] =
scaling [-32768
factor 32767].
without
an example, consider the filter coefficients bj = {0.9001, -0.6500, 0.3000}. If 16-bit anyNaturalmente,
overflow is 2 15
.el coeficiente
Rounding conscaled
of the
signed integer representationcoefficients
is to be used, results
the scaledincoefficients
the values {29494, -21299, 9830} and the approximate
mayorinvalor absoluto será el(downscaled)
the range [-215 215-1] = [-32768
que 32767].
limite Naturally,
el factorrounding
absolutethe
decoefficient
escala máximo.
must have
errors -5En este
values
{1.5·10
with the
-6 caso, el
largest, 6.1·10 , 1.2·10 }.
-5 factor de

escalaabsolute
más grande
value willposible sinlimiting
be the one ningún desbordamiento
the maximum scaling factor.es
In 215.
this case, the
Optimization
largest possible scaling factor of the downscaling
without any overflow is 215. Roundingis possible if the factor k is above a multiple of 8. If
of the scaled
coefficients results in the this is the
values case,
{29494, the program
-21299, 9830} and may
thesimply “ignore” bytes of the result. An example is
approximate
La optimización del escalamiento es posible, si el factor k es múltiplo de 8, si esté es el caso, el
(downscaled) absolute rounding errors {1.5·10
illustrated
-5
, 6.1·10
in Figure
-6
3-1,, 1.2·10 -5
where}. a 32-bit result should be downscaled by 218. This is
programa puedeofsimplemente
Optimization accomplished
the downscaling ingnorar
is by
thebit
possible ifbits enshifting
factor the 16
elk isresultado.
above Most
UnSignificant
a multiple ejemplo
of 8. If Bits (MSB) en
se ilustra twola
times.
Figura 1.1,
this is the case, the program may simply “ignore” bytes of the result. An example is
en la illustrated
que unin Figure
resultado de a32
3-1, where bits
32-bit debe
result shouldser reducidoby en
be downscaled 218.is Esto se logra mediante el
2 . This 18

Figure 3-1:
accomplished by bit shifting the Optimized Downscaling (Grey Blocks are Unused Bits).
desplazamiento de bits de los1616Most bitsSignificant Bits (MSB)
más significativos two times.
(MSB) dos veces.
8 bits 8 bits
Figure 3-1: Optimized Downscaling (Grey Blocks are Unused Bits). 16-bit
8 bits 8 bits 6 bits 10 bits
16-bit Filter input
18
6 bits 10 bits x·2
Filter input
x·2
4 bits
18
28 bits
4 bits 32-bit 28 bits
Figura 1.1 Reducción de escala
32-bit
Accumulator
Accumulator optimizada.
ACC >> 2
ACC >> 2

6 bits 10 bits 6 bits 10 bits


16-bit 16-bit
Filter output Filter output

Efecto
3.4.1 Effect of Downscaling
3.4.1 deoflaDownscaling
Effect reducción de escala
One may wonder why one adds bits to avoid overflow in the sub-results, then
basically “throws them away” Oneto may
fit thewonder whya one
result into addsresolution.
specified bits to avoidThe overflow in the sub-results, then
Los bits son necesarios para la precisión durante los cálculos, el filtro tiene ganancia unitaria, y la
explanation is that the bits are needed for
basically precisionthem
“throws during away”
calculations,
to fitthethe
filter result
has into a specified resolution. The
salida debe interpretarse como un entero.
unity gain, and the output should be interpreted
explanation as an
is that integer.
the bits are needed for precision during calculations, the filter has
For filters with unity gain, the unity gain, and
coefficients will the output should
be fractional, bethan
i.e., less interpreted
one, andas an integer.
Para los
thusfiltros con ganancia
the multiplications will add unitaria,
bits that los coeficientes
actually serán
represent fractional fraccionales,
values. The es decir, menores que
uno, y por lo tanto las multiplicaciones agregarán bits que representan realmentei.e.,
summations will, however, For
add filters
bits that with
representunity gain,
higher the coefficients
significance. But due will
to thebe fractional, less than one, and
valores
unity gain of the filter, thesethus thenever
bits will multiplications
be used in the will addThe
result: bitsoutput
that ofactually
the represent fractional values. The
fraccionarios. Singetembargo,
filter will not las
valuesumas
an absolutesummations añaden
higher will,
than that ofbits
however, quebits
the add
input, representan
thus allowing
that theuna
represent mayor
higher significación.
significance. But due to the
Pero debido a la ganancia unitaria del filtro, estos bits nunca se utilizarán en el resultado:
output to be represented with the same integer range as the input.
unity gain of the filter, these bits will never be used in the result: La of the
The output
filter will not get an absolute value higher than that of the input, thus allowing the
8 salida del filtro no obtendráoutput
AVR223 un valor absoluto más alto que el integer
to be represented with the same
de la entrada, permitiendo así que
range as the input.
la salida sea representada con el mismo intervalo entero como la entrada.
2527B-AVR-07/08

8 AVR223
2527B-AVR-07/08

También podría gustarte