Approximate MAC Unit Using Static Segmentation
Approximate MAC Unit Using Static Segmentation
Original Line:
Explanation:
The authors propose a new Approximate MAC (Multiply-Accumulate) unit. A MAC performs:
Y=A\times B+C
Instead of calculating the exact result, it uses a technique called static segmentation to simplify the
hardware and save power.
Original Line:
The proposed architecture uses a unique carry-propagate adder and performs segmentation on
the three operands A, B, and C, to reduce hardware cost.
Explanation:
The proposed design uses only one carry-propagate adder (CPA) instead of multiple adders.
A (multiplier input)
B (multiplier input)
C (accumulator input)
Benefits:
Original Line:
Explanation:
Before manufacturing or implementing the circuit, the designer can adjust two settings
(parameters) to control the trade-off between:
Accuracy
Power consumption
Area
Original Line:
The first one controls the segmentation on A and B, while the second one controls the
segmentation on C and the adder length.
Explanation:
Parameter 1: m
Parameter 2: mC
Controls:
Segmentation of input C
Less area
Original Line:
Explanation:
To reduce these errors, the authors add a special error compensation circuit that estimates part of
the lost information and adds it back.
Result:
Better accuracy
Original Line:
Error analysis and implementation results in 28nm CMOS for 8-bits multiplier with 20-bits and 24-
bits addition are presented.
Explanation:
28 nm CMOS technology
8-bit multiplier
20-bit accumulator
24-bit accumulator
Error
Area
Power
Delay
to evaluate performance.
Original Line:
The proposed approximate MACs outperform the state of the art, showing the largest power
saving when the mean relative error distance (MRED) is larger than 2 × 10−3 and 4 × 10−5 for 20
and 24-bits addition, respectively.
Explanation:
The new design was compared with previous approximate MAC circuits.
This means that when a small amount of error is acceptable, the proposed MAC saves more power
than existing designs.
Original Line:
For MRED of about 6 × 10−3 the proposed approximate MAC with 20-bits addition exhibits a power
reduction larger than 60% compared to the exact MAC and larger than 27% compared to the state-
of-the-art approximate MACs.
Explanation:
Original Line:
Application examples to image filtering and template matching show that proposed approximate
circuits are good candidates in applications where their error performances are acceptable.
Explanation:
1. Image Filtering
Used in:
Cameras
Image enhancement
Noise removal
2. Template Matching
Used in:
Object detection
Pattern recognition
Computer vision
Even though the MAC is approximate, the output quality remained good.
Therefore, the design is suitable for applications where small errors do not significantly affect the
final result.
Approximate methods
Techniques that intentionally allow small errors to save power and area.
Low-power design
VLSI
Very Large Scale Integration, the process of designing integrated circuits with millions of
transistors.
The paper introduces a Static Segmented Approximate MAC (SSMAC) that segments inputs A, B,
and C, uses only one carry-propagate adder, applies error compensation, and achieves up to 60%
power reduction while maintaining acceptable accuracy for image-processing applications.
Original Line:
Explanation:
1. Multiply A and B
Mathematically:
Y=A\times B+C
Example:
A=4
B=5
C=3
Y = (4 × 5) + 3
Y = 20 + 3
Y = 23
Original Line:
and has a central role in several applications, including image and audio processing [1], [2],
convolutional neural networks, and adaptive filtering [3], [4], [5].
Explanation:
Examples:
Image Processing
Image filtering
Edge detection
Noise removal
Audio Processing
Sound filtering
Speech processing
Artificial Intelligence
Image recognition
Face detection
Adaptive Filters
Echo cancellation
Noise cancellation
Since these applications perform millions of multiply-add operations, MAC units are very
important.
Original Line:
This calls for optimized MAC implementations with reduced power and area.
Explanation:
Because MAC units are used so often, engineers want them to be:
Faster
Smaller
Lower power
Goals:
Less Area
+
Less Power
High Speed
Mobile phones
AI chips
Battery-powered devices
Original Line:
A MAC is usually realized by adding the row corresponding to the input C to the partial product
matrix (PPM) of the product A × B
Explanation:
Example:
A = 1010
B = 1100
1010
1010
0000
0000
Instead of calculating:
(A × B)
A×B+C
Explanation:
Normally:
Multiplier
Adder
Output
Instead, designers combine everything so that only one Carry Propagate Adder (CPA) is used.
An adder where the carry travels from one bit to the next.
Example:
1111
+ 0001
------
10000
✅ Reduces area
✅ Reduces power
✅ Improves efficiency
Original Line:
For error-resilient applications, further improvements in terms of power, area, and delay can be
achieved by resorting to approximate computing
Explanation:
Examples:
Can tolerate small errors
Images
Videos
AI inference
Machine learning
Approximate Computing
Idea:
Small Error
Less Power
Higher Speed
So instead of computing the exact answer every time, an approximate answer is produced that is
very close to the exact one.
Faster operation
Paragraph Summary
1. A MAC computes Y = A × B + C.
2. MAC units are widely used in image processing, audio processing, CNNs, and adaptive
filters.
3. Since MACs are used millions of times, designers try to reduce their power and area.
4. Traditional MACs insert C directly into the Partial Product Matrix (PPM) so only one carry-
propagate adder is required.
5. For applications that can tolerate small errors, Approximate Computing can further reduce
power, area, and delay.
Original Line:
achieved by resorting to approximate computing, a recent design paradigm aimed at improving the
hardware performance by intentionally introducing approximations into the design [6], [7], [8], [9].
Explanation:
To further reduce:
Power consumption
Chip area
Instead of always calculating the exact answer, the circuit allows a small error in the result.
Example:
Approximate Result = 99
✅ Smaller
✅ Faster
✅ Lower power
Image processing
Video processing
Artificial Intelligence
Original Line:
In literature, several efforts have been spent for investigating approximate multipliers.
Explanation:
Less Accuracy
Less Hardware
Less Power
Original Line:
Explanation:
8 × 8 Multiplier
2 × 2 Multipliers
or
4 × 4 Multipliers
Example:
8×8 Multiplier
┌────┴────┐
4×4 4×4
│ │
2×2 2×2
If the small blocks are approximate, the whole multiplier becomes approximate and consumes less
power.
Original Line:
Approximate compressors to sum the PPM are studied in [12], [13], [14], [15]
Explanation:
During multiplication, many partial products are generated.
Example:
a0b0
a0b1 a1b0
...
Examples:
3:2 Compressor
4:2 Compressor
Simplify logic
Benefits:
✅ Smaller area
✅ Lower power
❌ Small error
Original Line:
Explanation:
Normally:
A×B
Using logarithms:
log(A × B)
=
log(A) + log(B)
Process:
A → log(A)
B → log(B)
Add logs
Convert back
Power decreases
Original Line:
The Static Segmented Multipliers (SSMs), described in [18], [19], show remarkably good power
reduction.
Explanation:
Acceptable accuracy
Therefore the authors chose SSM as the starting point for their new MAC design.
Original Line:
The SSMs extract a segment of m contiguous bits from each of the two n-bits operands (m < n)
Explanation:
Suppose:
A = 8 bits
B = 8 bits
m bits
where:
m<n
Example:
n=8
m=5
Input:
A = 10110110
10110
Original Line:
Explanation:
8 × 8 multiplier
5 × 5 multiplier
Example:
n=8
m=5
Traditional:
8×8
Proposed:
5×5
Less area
Less power
Original Line:
Explanation:
Because only part of the original number is multiplied, the result must be placed back in its correct
position.
Example:
Suppose:
1010 << 3
1010000
Paragraph Summary
Recursive Multiplier Build large multiplier using approximate 2×2 or 4×4 blocks
Static Segmented Multiplier (SSM) Use only m important bits and a small m×m multiplier
The paper focuses on Static Segmented Multipliers (SSMs) because they provide excellent power
savings with acceptable accuracy, making them a good choice for designing an approximate MAC.
The study of approximate MACs has received less interest in the scientific literature.
Explanation:
Approximate multipliers
Approximate adders
So, compared to multipliers, the number of research papers on approximate MACs is relatively
small.
Original Line:
An approximate MAC can be obtained simply by cascading a multiplier and an adder, and by
appropriately approximating one (or both) blocks.
Explanation:
Approximate Multiplier
Approximate Adder
Output
or
Approximate Multiplier
Exact Adder
or
Exact Multiplier
Approximate Adder
Since one or both blocks are approximate, the overall MAC also becomes approximate.
Benefits:
✅ Lower power
✅ Smaller area
Original Line:
Explanation:
Instead of simply connecting an approximate multiplier and an approximate adder, researchers can
design a special MAC architecture from scratch.
Advantages:
Smaller area
Better speed
Therefore, customized MACs usually perform better than simple cascaded designs.
Original Line:
Explanation:
Approximate Counters
What is a Counter?
In multiplier hardware, many bits from the partial product matrix (PPM) must be added together.
Example:
5 input bits
Counter
↓
Sum + Carry
Result:
✅ Less hardware
✅ Less power
Original Line:
Explanation:
Recursive Means:
Example:
Large MAC
┌──┴──┐
Small Small
MAC MAC
Similarly:
8×8 MAC
4×4 MACs
2×2 MACs
Advantages:
✅ Lower complexity
✅ Reduced power
✅ Easier design
Original Line:
and [22] (using a cascade of an approximate multiplier and a modified approximate adder with
opposite mean error).
Explanation:
Approximate Multiplier
Mean Error
Suppose:
Approx Result = 98
Error = -2
It tends to underestimate.
Exact Result = 50
Approx Result = 52
Error = +2
It tends to overestimate.
So:
Multiplier Error = -2
Adder Error = +2
Total Error:
-2 + 2 = 0
The adder and multiplier are designed so that one compensates for the other's error.
Result:
✅ Better accuracy
Paragraph Summary
These are the main state-of-the-art approximate MAC designs that the proposed SSMAC is
compared against later in the paper.
This figure explains how the input A is divided into two parts in the Static Segmented Multiplier
(SSM).
Figure Explanation
Assume:
n = 8 bits
A = a7 a6 a5 a4 a3 a2 a1 a0
For example:
A = 10110110
Upper Segment: HA
HA = a7 a6 a5 a4
HA = 1011
HA (m MSBs)
Lower Segment: LA
LA = a3 a2 a1 a0
LA = 0110
LA (m LSBs)
εA (Discarded Region)
εA
Paragraph Explanation
Original Line
Explanation
Original Line
which is the basic building block used in the new MAC design.
Original Line
Section III describes the proposed SSMAC, with segmentation extended to the addend C.
Explanation
A and B
Original Line
The results in terms of error metrics and hardware performance are reported in Section IV.
Explanation
Section IV presents:
Error Metrics
NMED
MRED
PRED
NmaxED
Power
Area
Delay
Original Line
Image filtering
Original Line
The SSM described in [18], [19] employs an m × m multiplier for realizing an n × n product, with
n/2 ≤ m < n.
Explanation
Normally:
n-bit × n-bit
requires:
n × n multiplier
Example:
8 × 8 multiplier
m × m multiplier
Example:
5 × 5 multiplier
where:
n/2 ≤ m < n
For:
n=8
m = 4, 5, 6, 7
✅ Less area
✅ Less power
Original Line
Explanation
Original Line
The signal is segmented in a lower portion (LA), comprising its m least significant bits (LSBs)
Explanation
LA
It contains:
Mathematically:
LA = A[m−1 : 0]
Example:
A = 10110110
m=5
LA = 10110
Original Line
and an upper portion (HA), comprising its m most significant bits (MSBs)
Explanation
HA
It contains:
Mathematically:
HA = A[n−1 : n−m]
Example:
A = 10110110
m=5
HA = 10110
Equation (1)
L_A=A[m-1:0]
Meaning:
And:
H_A=A[n-1
Meaning:
Original Line
Explanation
Example settings:
Original Line
When the (n−m) MSBs of A are low, LA is selected for the multiplication.
Explanation
000
(for n=8, m=5)
then:
LA is used
Original Line
Explanation
then:
HA is selected
This may cause some error because the lower bits are ignored.
Original Line
Explanation
When HA is selected:
εA
is removed completely.
Example:
A = 10110110
Selected HA = 10110
Discarded εA = 110
Original Line
Let us define αA as the OR of the (n−m) MSBs of A
Explanation
αA
Example:
Then:
αA = 0
Example:
Then:
αA = 1
Original Line
Explanation
Assm
Original Line
Explanation
Selection rule:
If αA = 0
Assm = LA
If αA = 1
Assm = HA
Input A (n bits)
┌─────┴─────┐
│ │
HA (MSBs) LA (LSBs)
│ │
└─────┬─────┘
Control αA
Instead of multiplying all n bits, SSM selects only one m-bit segment (HA or LA), multiplies it using
a smaller multiplier, and later shifts the result to approximate the original multiplication. This
saves significant power and area at the cost of a small error.
This section explains how the Static Segmented Multiplier (SSM) works mathematically and how it
is extended to form the SSMAC.
Line 1
Explanation
Example:
A = a7 a6 a5 a4 a3 a2 a1 a0
When the (n−m) MSBs of A are low, LA is selected for the multiplication.
Explanation
For:
n=8
m=5
we have:
n−m=3
a7 a6 a5
If:
a7 a6 a5 = 000
then:
LA is selected
because the number is small and most information is already in the lower bits.
Line 3
Explanation
a7 a6 a5 ≠ 000
then:
HA is selected
Example:
A = 10110110
Upper bits:
101
Therefore:
HA is selected
Line 4
(since the least significant part εA is discarded, see Fig. 1).
Explanation
When HA is selected:
A = 10110110
Use:
HA = 10110
Discard:
εA = 110
Line 5
Explanation
Example 1:
αA = 0 OR 0 OR 0
αA = 0
Example 2:
αA = 1 OR 0 OR 1
αA = 1
Line 6
Explanation
Assm
Explanation
Selection rule:
If αA = 0
Assm = LA
If αA = 1
Assm = HA
Equation (2)
Explanation
where:
Assm
is either HA or LA.
Definition of KA
KA = 0 if αA = 0
KA = n − m if αA = 1
Case 1
If:
αA = 0
then:
A ≈ Assm × 2^0
Since:
2^0 = 1
No shifting is needed.
Case 2
If:
αA = 1
then:
A ≈ Assm × 2^(n−m)
For:
n=8
m=5
n−m = 3
Therefore:
A ≈ Assm × 2^3
which means:
Line 8
Explanation
αA = 1
Example:
A = 10110110
Approximation:
Use only HA
Discarded bits:
εA = 110
Explanation
Bssm
αB
KB
just like A.
Equation (3)
Explanation
Then:
Explanation
Instead of:
8×8 multiplier
5×5 multiplier
Equation (4)
KS = 0
if (αA,αB)=00
Meaning
No shift required.
KS = n−m
if (αA,αB)=01 or 10
Meaning
Shift by:
n−m
bits.
KS = 2(n−m)
if (αA,αB)=11
Meaning
Shift twice.
Example:
n=8
m=5
KS=2×3=6
Line 10
The (3) clearly shows that the SSM requires only a small m × m multiplier
Explanation
Instead of using:
8×8 multiplier
5×5 multiplier
or any m×m multiplier.
This reduces:
Area
Power
Delay
Line 11
Explanation
Assm × Bssm
Line 12
Explanation
The hardware block implementing this SSM is shown in Figure 2(a) of the paper.
Line 13
To obtain a multiplier-accumulator we can simply add the operand C to the output of the SSM, as
follows:
Explanation
Simply add C.
Equation (5)
Explanation
Thus:
Approximate Product
Line 14
Explanation
Example:
A = 8 bits
B = 8 bits
Product:
16 bits
Therefore:
C ≥ 16 bits
20-bit C
24-bit C
Line 15
since in most applications the multiply-accumulate unit is used sequentially to accumulate the
output of several multiplications.
Explanation
Y1 = A1×B1 + C
Y2 = A2×B2 + Y1
Y3 = A3×B3 + Y2
Small m×m
Multiplier
Shift KS
+C
SSMAC Output
The main contribution here is showing how a large n×n multiplication can be approximated using a
small m×m multiplier plus shifting, and then extended into a MAC operation by adding operand C.
This section explains why the simple SSMAC design is inefficient and how the authors improve it
using a single adder architecture.
Original Line
Explanation
Original Line
The left-shift needed to calculate PSSM does not allow to merge the final adder with the inner m ×
m multiplier Assm × Bssm.
Explanation
Small Multiplication
Left Shift
Because of this shift, the multiplier and the final addition with C cannot be combined into one
hardware block.
Multiplier
Shift
Adder
Original Line
Explanation
Adder 1
Adder 2
are needed.
This is called:
Problem:
❌ More area
❌ More power
❌ More delay
Original Line
Explanation
Example:
m=5
Then:
2m = 10
So a:
10-bit adder
Assm × Bssm
Original Line
Explanation
After multiplication:
If:
nC = 20
then a:
20-bit adder
is required.
Therefore:
Multiplier
10-bit Adder
↓
Shift
20-bit Adder
Original Line
The presence of the two adders in cascade negatively affects the performance of the circuit in Fig.
2(a).
Explanation
Having:
Adder 1
Adder 2
causes:
Higher Power
Larger Area
Higher Delay
Original Line
Explanation
Instead of computing Equation (5) directly, the authors mathematically rearrange it.
Y_{SSMAC}=(A_{ssm}\times B_{ssm}+C\cdot2^{-K_S})\cdot2^{K_S}
Originally:
Now:
Shift C Right
Final Shift
Original Line
According to (6), we right-shift the input C, before left shifting the product Assm × Bssm.
Explanation
to the right.
Example:
C = 100000
Right shift by 2:
100000 >> 2
001000
Original Line
This allows to eliminate the multiplexer between multiplier and adder
Explanation
Multiplier
MUX
Adder
Multiplier + Adder
can be merged.
Benefits:
✅ Less area
✅ Less power
Original Line
Explanation
PPM means:
Normally:
Partial Products
Adder
C × 2−KS
Explanation
Figure 2(b) shows the improved hardware architecture based on Equation (6).
Original Line
highlighting in red the differences with respect to the MAC of Fig. 2(a).
Explanation
Modified hardware
Original Line
Explanation
αA
αB
HA or LA
should be selected.
Example:
αA = 0
αA = 1
Original Line
that in turn program two 2-1 multiplexers used to segment A and B.
Explanation
αA
αB
HA
or
LA
for multiplication.
Original Line
Explanation
Its job:
Shift C
Original Line
Explanation
Case 1
No shift:
C[nC−1:0]
Entire C is used.
Case 2
Shift by:
n−m
Use:
C[nC−1:n−m]
Case 3
Shift by:
2(n−m)
Use:
C[nC−1:2(n−m)]
Original Line
Explanation
After computation, another multiplexer restores the result to its correct bit position.
Original Line
Thus, the architecture in Fig. 2(b) allows to merge the inner multiplication and the final sum in a
fused MAC structure
Explanation
Instead of:
Multiplier
Adder
Multiplier + Adder
This is called a:
Fused MAC
Benefits:
✅ Less hardware
✅ Lower power
✅ Faster operation
Original Line
Explanation
instead of:
Original Line
Explanation
Original Line
but this overhead is more than compensated by the elimination of the 2m-bits adder required in
Fig. 2(a).
Explanation
+ Small MUX
Therefore:
Total Area ↓
Total Power ↓
Total Delay ↓
Small Multiplier
2m-bit Adder
Shift
nC-bit Adder
Segment A
Segment B
Shifted C
Fused MAC
One adder only → Lower power, smaller area, and better performance.
👉 Not only are A and B segmented, but the addend C is also segmented.
This further reduces the size of the adder and lowers power consumption.
Original Line
As observed before, the architecture in Fig. 2(b), while more effective compared to Fig. 2(a),
requires an nC-bits adder to compute the output.
Explanation
The improved MAC architecture of Fig. 2(b) uses only one adder.
Example:
A = 8 bits
B = 8 bits
C = 20 bits
Therefore a:
20-bit adder
is still required.
More power
More area
More delay
Original Line
Explanation
Segment A ✓
Segment B ✓
Segment C ✓
This allows:
Smaller Adder
Less Area
Less Power
Original Line
By following an approach like Fig. 1, we subdivide the input C in a lower portion (LC) and an upper
portion (HC)
Explanation
HA and LA
HC = High Portion
LC = Low Portion
Structure:
┌──────┴──────┐
│ │
HC (MSBs) LC (LSBs)
Original Line
Explanation
mC
nC/2 ≤ mC < nC
Example:
nC = 20
Possible values:
mC = 10,11,12,...19
Equation (7)
Explanation
LC contains:
Example:
C = 10110010101100101100
mC = 12
LC:
001011001100
And:
H_C=C[n_C-1
Explanation
HC contains:
Example:
101100101011
Original Line
Thus, the proposed static-segmented MAC (SSMAC) can be configured at design time with two
parameters
Explanation
Accuracy
Area
Power
Original Line
m that controls the segmentation of A and B
Explanation
Parameter:
controls:
A segmentation
B segmentation
Example:
m=4
Original Line
Explanation
Parameter:
mC
controls:
C segmentation
Adder size
Smaller mC:
Lower Power
More Error
Larger mC:
Higher Accuracy
More Hardware
Original Line
Explanation
Example:
m=5
Then:
mC ≥ 10
This ensures the adder remains large enough to accommodate the multiplication result.
Original Line
Explanation
A control signal:
αC
is generated.
(nC−mC)
bits.
Example
Suppose:
C = 00000010101100101100
Upper bits:
00000000
Then:
αC = 0
Another example:
C = 10110010101100101100
Therefore:
αC = 1
Original Line
Explanation
Cssm
Original Line
Explanation
Selection rule:
Case 1
αC = 0
Select:
Cssm = LC
Case 2
αC = 1
Select:
Cssm = HC
Equation (8)
Explanation
Selected Segment
Shift Factor
KC Definition
The paper defines:
KC = 0
if αC = 0
Meaning:
Use LC directly
No shift.
And:
KC = nC−mC
if αC = 1
Meaning:
Use HC
Example
Suppose:
nC = 20
mC = 14
Then:
KC = 20−14
=6
Therefore:
C ≈ Cssm × 2^6
which means:
Equation (9)
A×B+C
Now:
A → Assm
B → Bssm
C → Cssm
Small Multiplication
Segmented C
Previous Architecture
Segment A
Segment B
Full C
Required:
Proposed Architecture
Segment A
Segment B
Segment C
Required:
Smaller Adder
The authors extend the static segmentation technique from A and B to C as well.
This introduces a new design parameter mC, allowing the designer to trade:
Accuracy
Power
Area
As a result, the SSMAC becomes even more power-efficient and area-efficient than the previous
segmented MAC architecture.
Figure 2 compares:
Fig. 2(a)
Conventional SSMAC
(Static Segmented Multiplier + Separate Adder)
Fig. 2(b)
Proposed SSMAC
(Fused Multiplier-Accumulator using only one adder)
The red blocks in Fig. 2(b) show the new modifications introduced by the authors.
A[n−1:n−m]
A[m−1:0]
These are:
HA = Upper m bits
LA = Lower m bits
Example:
A = 10110110
m=5
HA = 10110
LA = 10110
OR Gate (αA)
A[n−1:n−m]
and generates:
αA
Purpose
αA = 0 → Select LA
αA = 1 → Select HA
Inputs:
0 → LA
1 → HA
Control:
αA
Output:
Assm
Input B Segmentation
Generate:
αB
Select:
Bssm
m × m Multiplier
×
computes:
A_{ssm}\times B_{ssm}
Since:
Assm = m bits
Bssm = m bits
Output size:
2m bits
Example:
m=5
5×5 multiplier
instead of:
8×8 multiplier
Shifting Logic
KS
generated from:
αA
αB
Cases
αA αB = 00
KS = 0
No shift.
αA αB = 01 or 10
KS = n−m
n−m bits
αA αB = 11
KS = 2(n−m)
Shift twice.
Output PSSM
After shifting:
PSSM
Final Adder
Y_{SSMAC}=P_{SSM}+C
Problem
1. Inside multiplier
Therefore:
are required.
This increases:
❌ Area
❌ Power
❌ Delay
Input A Segmentation
Produces:
Assm
Input B Segmentation
Produces:
Bssm
Small Multiplier
Computes:
A_{ssm}\times B_{ssm}
Again only:
m×m multiplier
is required.
Instead of:
Multiplier
Adder
A_{ssm}\times B_{ssm}+C\cdot2^{-K_S}
Inputs:
C[nC−1:0]
C[nC−1:n−m]
C[nC−1:2(n−m)]
Why?
Depending on:
αA
αB
Control Cases
αA αB = 00
Use:
C[nC−1:0]
No shift.
αA αB = 01 or 10
Use:
C[nC−1:n−m]
Equivalent to:
C >> (n−m)
αA αB = 11
Use:
C[nC−1:2(n−m)]
Equivalent to:
C >> 2(n−m)
Y_{MAC}=A_{ssm}\times B_{ssm}+C\cdot2^{-K_S}
Control:
αA αB
Cases:
00
01
10
11
Function
Equivalent to performing:
Left Shift by KS
after computation.
Produces final:
YSSMAC
Adder Count 2 1
Multiplexer on C No Yes
Fig. 2(a)
Segment A
Segment B
m×m Multiplier
Shift
Adder with C
Requires:
Fig. 2(b)
Segment A
Segment B
Shifted C
Fused MAC
Single Adder
Output Rearrangement
Requires:
This reduction of one adder is the key reason the proposed SSMAC achieves lower power
consumption, lower area, and better efficiency than previous MAC architectures.
This section explains how the authors further reduce the adder size by approximating Equation (9).
Original Line
The word length of the product Assm × Bssm is 2m bits, and the word length of Cssm is mC.
Explanation
The multiplier inputs are:
Assm = m bits
Bssm = m bits
Therefore:
Assm × Bssm
produces:
2m bits
Example:
m=5
Then:
5 × 5 multiplication
gives:
10-bit result
Similarly:
Cssm
contains:
mC bits
Example:
mC = 14
Then:
Cssm = 14 bits
Original Line
Unfortunately, due to the term 2KC−KS (that can imply a left or a right shift of Cssm), we cannot
use a simple mC-bits adder to compute the output in (9).
Explanation
Y_{SSMAC}=(A_{ssm}B_{ssm}+C_{ssm}2^{K_C-K_S})2^{K_S}
Notice:
2^(KC−KS)
Sometimes:
KC−KS > 0
which means:
Left Shift
Sometimes:
KC−KS < 0
which means:
Right Shift
Because the position of bits changes, a simple fixed-size adder cannot always be used.
Original Line
We thus consider the various cases that can occur in (9), depending on the values of αC, αB, αA.
Explanation
αA
αB
αC
HA or LA
HB or LB
HC or LC
Case 1
Original Line
Explanation
Since:
αA = 0
αB = 0
αC = 0
the circuit selects:
LA
LB
LC
No shifting is required.
Therefore:
KS = 0
KC = 0
Equation (10)
Y_{SSMAC}=A_{ssm}B_{ssm}+C_{ssm}
Explanation
Substituting:
KS = 0
KC = 0
2^(KC−KS)=2^0=1
Multiplier Result
Cssm
Original Line
Explanation
Assm = LA
Bssm = LB
Cssm = LC
Only lower segments are used.
Original Line
Explanation
Cssm
which contains:
mC bits
mC-bit adder
is needed.
Benefits:
✅ Smaller hardware
✅ Less power
Remaining Cases
Original Line
In the other cases, we perform some additional approximations by truncating some of the terms in
(9)
Explanation
When:
αA = 1
or
αB = 1
or
αC = 1
shifts occur.
To keep the adder small, the authors deliberately discard some bits.
This process is called:
Truncation
Example:
101101.1101
truncate:
101101
Original Line
Explanation
KC−KS
is:
Positive
KC−KS > 0
or
Negative
KC−KS < 0
Original Line
Explanation
nC−mC ≥ 2(n−m)
Example:
nC = 20
mC = 14
20−14 = 6
If:
n=8
m=5
2(n−m)=6
Condition is satisfied.
Original Line
Explanation
KC−KS < 0
occurs is:
KC = 0
and
KS > 0
Original Line
Let us consider the case in which KC−KS is positive, that is KC−KS > 0.
Explanation
KC > KS
This means:
Cssm
Original Line
We have in this case αC = 1, independently on the values of αA and αB.
Explanation
If:
KC−KS > 0
then:
αC = 1
must be true.
Therefore:
HC
is selected.
Original Line
Explanation
Equation (11)
Y_{SSMAC}=(A_{ssm}B_{ssm}2^{-(K_C-K_S)}+C_{ssm})2^{K_C}
Explanation
Cssm
to:
Assm × Bssm
Original Line
Explanation
Assm × Bssm
>>
(KC−KS)
Equation (12)
Y_{SSMAC}\approx(\lfloor A_{ssm}B_{ssm}2^{-(K_C-K_S)}\rfloor+C_{ssm})2^{K_C}
Explanation
The symbol:
⌊⌋
Meaning:
Example:
13.75
becomes:
13
Original Line
Explanation
The notation:
[x]
Floor(x)
or:
Integer Part
Original Line
KC−KS
is an even number.
Example:
To achieve this:
Result:
Smaller Adder
Lower Power
Lower Area
This is the key approximation technique that enables the final low-power SSMAC architecture.
This section explains how the authors simplify Equation (12) so that the hardware implementation
becomes easier and requires a smaller adder.
Equation (11)
The paper starts with:
Y_{SSMAC}=(A_{ssm}\times B_{ssm}2^{-(K_C-K_S)}+C_{ssm})\cdot2^{K_C}
Explanation
Assm × Bssm
Original Line
Explanation
The term:
means:
Assm × Bssm
is shifted right.
Example:
11010110
Right shift by 2:
00110101
Truncation
Benefit:
✅ Simpler hardware
✅ Less area
✅ Less power
Drawback:
❌ Small error
Equation (12)
Y_{SSMAC}\approx(\lfloor A_{ssm}B_{ssm}2^{-(K_C-K_S)}\rfloor+C_{ssm})\cdot2^{K_C}
Explanation
The symbol:
⌊x⌋
means:
Floor Operation
Example:
15.75
becomes
15
In hardware, this means dropping some least significant bits after shifting.
Original Line
Explanation
[x]
to represent:
⌊x⌋
which means:
or
Original Line
Explanation
To make the mathematical derivation easier, the authors assume:
KC−KS
is an even number.
Examples:
This assumption allows the shift amount to be divided equally between Assm and Bssm.
Original Line
Explanation
Assm × Bssm
Assm
and
Bssm
Equation (13)
Y_{SSMAC}\approx(A'{ssm}\times B'{ssm}+C_{ssm})\cdot2^{K_C}
Explanation
A'ssm
and
B'ssm
Assm
Bssm
This simplifies the implementation.
Reduced Assm
Reduced Bssm
Cssm
followed by:
Left Shift by KC
Instead of:
Multiply
Large Shift
Adder
Pre-scaled Assm
Pre-scaled Bssm
Multiplier
Adder
Equation (14)
A'{ssm}=\left\lfloor A{ssm}\cdot2^{-(K_C-K_S)/2}\right\rfloor
Explanation
To create:
A'ssm
the original:
Assm
(KC−KS)/2
and truncated.
Example
Suppose:
Assm = 100110
KC−KS = 4
Then:
(KC−KS)/2 = 2
Right shift by 2:
100110 >> 2
001001
Therefore:
A'ssm = 001001
B'{ssm}=\left\lfloor B{ssm}\cdot2^{-(K_C-K_S)/2}\right\rfloor
Explanation
Bssm
Example
Suppose:
Bssm = 111000
Right shift by 2:
111000 >> 2
=
001110
Therefore:
B'ssm = 001110
Assm × Bssm
Shift Assm
Shift Bssm
This means:
Smaller Operands
Lower Power
into:
A'ssm × B'ssm
by:
Result:
Less Hardware
Lower Power
Smaller Adder
Acceptable Error
This mathematical manipulation is an important step that enables the final low-power SSMAC
architecture.
This section explains how Equation (13) is implemented in hardware and what happens when KC −
KS is odd.
Original Line
Thus, the approximation (13) can be implemented by truncating the (KC−KS)/2 rightmost bits of
Assm and Bssm.
Explanation
Multiplying by:
2^-n
means:
Therefore, to obtain A'ssm and B'ssm, we simply remove the rightmost bits.
Example
Suppose:
Assm = 101101
Bssm = 110011
KC−KS = 4
Then:
(KC−KS)/2 = 2
Assm = 1011
Bssm = 1100
Benefits:
✅ Lower power
✅ Smaller area
Original Line
In other words, A'ssm is simply a v-subsegment of HA or LA, and a similar observation holds for
B'ssm.
Explanation
Instead:
A'ssm
Example:
HA = 101101
A'ssm = 1011
So:
HA
└──► A'ssm
Similarly:
LA
└──► A'ssm
B'ssm
Original Line
In the case in which KC−KS is odd, we can still use (13), but A'ssm and B'ssm will have a number of
bits that differ by one
Explanation
KC−KS = even
Example:
2, 4, 6
Now consider:
KC−KS = odd
Example:
1, 3, 5
Then:
(KC−KS)/2
is not an integer.
Example:
3/2 = 1.5
Therefore:
As a result:
A'ssm
and
B'ssm
Original Line
and are given by the following equation
Explanation
The authors now define exactly how many bits should be removed from A and B when the shift
amount is odd.
Equation (15)
For A:
A'{ssm}=\left\lfloor A{ssm}\cdot2^{-\lceil(K_C-K_S)/2\rceil}\right\rfloor
Explanation
For A:
Example
Suppose:
KC−KS = 3
Then:
(3/2) = 1.5
Ceiling:
⌈1.5⌉ = 2
Therefore:
Remove 2 bits.
For B:
B'{ssm}=\left\lfloor B{ssm}\cdot2^{-\lfloor(K_C-K_S)/2\rfloor}\right\rfloor
Explanation
For B:
Example:
(3/2) = 1.5
Floor:
⌊1.5⌋ = 1
Therefore:
Remove 1 bit.
Original Line
Explanation
The symbol:
⌈x⌉
means:
Ceiling Operator
Examples:
⌈1.2⌉ = 2
⌈1.5⌉ = 2
⌈2.1⌉ = 3
Ceiling ⌈x⌉
⌊x⌋
Floor
Value
1.2 1 2
1.5 1 2
2.8 2 3
Suppose:
KC−KS = 3
Then:
⌈3/2⌉ = 2
⌊3/2⌋ = 1
If:
Assm = 101101
Bssm = 110011
Then:
A'
Remove 2 bits:
1011
B'
Remove 1 bit:
11001
Notice:
Difference:
1 bit
The authors show that Equation (13) can be implemented very efficiently:
Even KC−KS
Odd KC−KS
using:
Floor operator
Ceiling operator
Result:
No complex shifters
This makes the proposed SSMAC architecture very hardware-efficient while maintaining
acceptable accuracy.
Line-by-Line Explanation (Simple English)
This section explains Figure 3 and the second approximation case when KC − KS is negative.
Original Line
Explanation
A = 8 bits
B = 8 bits
m=5
Therefore:
Assm = 5 bits
Bssm = 5 bits
For C:
nC = 20 bits
mC = 14 bits
Original Line
Explanation
PPM means:
A×B+C
Original Line
The Fig. 3(b) highlights the portion of PPM considered for (αC, αB, αA) = 111.
Explanation
Now consider:
αC = 1
αB = 1
αA = 1
This means:
HC selected
HB selected
HA selected
Figure 3(b) shows which part of the exact PPM remains after approximation.
Original Line
In this case A'ssm and B'ssm include the five most-significant bits of A and B
Explanation
Since:
αA = 1
αB = 1
HA
HB
For:
n=8
m=5
these are:
a7 a6 a5 a4 a3
b7 b6 b5 b4 b3
Original Line
Explanation
The least significant bits are discarded.
For A:
a2
a1
a0
are removed.
For B:
b2
b1
b0
are removed.
Example:
A = a7 a6 a5 a4 a3 a2 a1 a0
becomes:
A' = a7 a6 a5 a4 a3
Original Line
Explanation
Because:
αC = 1
HC
which contains:
14 MSBs of C
Original Line
Explanation
Since:
nC = 20
mC = 14
the lower:
20 − 14 = 6 bits
are discarded.
Removed bits:
c5
c4
c3
c2
c1
c0
Figure 3(c)
Original Line
The Fig. 3(c) shows the portion of PPM considered for (αC, αB, αA) = 101.
Explanation
Now consider:
αC = 1
αB = 0
αA = 1
Selections become:
HC
LB
HA
Original Line
Due to the truncation explained earlier, only the top 3 bits of A remain.
Example:
A = a7 a6 a5 a4 a3 a2 a1 a0
becomes:
A'ssm = a7 a6 a5
Original Line
Explanation
For B:
B'ssm = b3 b2 b1
are retained.
Original Line
Explanation
b0
is discarded.
Original Line
Explanation
Since:
αB = 0
LB
is selected.
b6
b5
in the computation.
Negative KC − KS Case
Original Line
Let us now consider the case in which KC−KS is negative, that is KC = 0 and KS ≠ 0.
Explanation
Previously:
KC−KS > 0
Now:
KC−KS < 0
KC = 0
and
KS > 0
Original Line
Explanation
If:
αC = 0
then:
Cssm = LC
and
KC = 0
Original Line
Explanation
Possible combinations:
αA αB
01
10
11
Thus:
KS > 0
Original Line
Explanation
Substituting:
KC = 0
Equation (16)
Y_{SSMAC}=(A_{ssm}\times B_{ssm}+C_{ssm}\cdot2^{-K_S})\cdot2^{K_S}
Explanation
KS
before addition.
Original Line
Explanation
Instead of computing:
Cssm × 2^(-KS)
exactly,
Equation (17)
Y_{SSMAC}\approx(A_{ssm}\times B_{ssm}+C'_{ssm})\cdot2^{K_S}
Explanation
C'ssm
Multiplier Result
C'ssm
Equation (18)
C'{ssm}=\left\lfloor C{ssm}\cdot2^{-K_S}\right\rfloor
Explanation
To obtain:
C'ssm
the circuit:
Example
Suppose:
Cssm = 111010101100
KS = 3
Right shift:
111010101100 >> 3
000111010101
Therefore:
C'ssm = 000111010101
KC − KS < 0
Result
Instead of:
Exact Shifted C
they use:
Truncated Shifted C
Benefits:
Smaller Adder
Lower Power
Lower Area
Simpler Hardware
This is another key step that enables the low-power implementation of the proposed SSMAC.
This figure shows the partial-product reduction process of an 8×8 binary multiplier (typically a
Dadda or Wallace multiplier). Each symbol (a_i b_j) represents a partial product generated by an
AND gate.
[
P = A \times B
]
[
a_0b_0,; a_0b_1,; \ldots,; a_7b_7
]
Example:
c₀ a₀b₀
c₁ a₁b₀, a₀b₁
The center columns have the largest number of bits, creating the triangular shape shown in (a).
The dark terms are the bits retained after the first compression stage.
The light gray terms indicate bits that have already been reduced using:
For example:
[
a_7b_2,; a_6b_3,; a_5b_4,; a_4b_5,; a_3b_6,; a_2b_7
]
Notice:
Example:
Three bits
[
x+y+z
]
Therefore:
[
3 \text{ bits} \rightarrow 2 \text{ bits}
]
Although the bottom portion is cut off in your image, this stage typically leaves only two rows:
Row 1:
[
S_{15}S_{14}\cdots S_0
]
Row 2:
[
C_{15}C_{14}\cdots C_0
]
These two rows are then added using a Carry Propagate Adder (CPA) such as:
Brent-Kung Adder
Kogge-Stone Adder
to produce the final 16-bit multiplication result.
Meaning of Labels
Overall Flow
8×8 Multiplication
64 Partial Products
Figure (a)
Initial Matrix
Figure (b)
1st Compression
Figure (c)
2nd Compression
Figure (d)
2-row Matrix
Final Adder
16-bit Product
This diagram is essentially showing how a Dadda/Wallace tree multiplier reduces the partial-
product matrix stage by stage before the final addition.
The paragraph below Table I explains how the segmented multiplier selects portions of the
operands (A), (B), and (C) depending on the control signals ((\alpha_C,\alpha_B,\alpha_A)).
Line 1
Equation (17) (given earlier in the paper) computes the final result.
Here:
Meaning:
Only the selected (m_C)-bit segment is added, reducing hardware complexity.
Line 2
[
c_5,c_4,c_3,c_2,c_1,c_0
]
are discarded.
Why?
To save:
area
power
delay
Line 3
Reason:
[
\alpha_C = 0
]
Line 4
"Please note that (C'_{ssm}) is simply a segment of (C), obtained by truncating (L_C)."
Definitions:
So:
[
C'_{ssm}
]
Example:
If
[
L_C = c_{13}c_{12}c_{11}c_{10}c_9c_8c_7c_6c_5c_4c_3c_2c_1c_0
]
then
[
C'{ssm}=c{13}c_{12}c_{11}c_{10}c_9c_8c_7c_6
]
Line 5
"Table I summarizes the segmentation used to obtain (A'{ssm}), (B'{ssm}) and (C'_{ssm})
considering all possible values of (\alpha_C), (\alpha_B), and (\alpha_A)."
The table lists all combinations:
[
(\alpha_C,\alpha_B,\alpha_A)
]
Line 6
Example case:
[
\alpha_C=0,\quad
\alpha_B=1,\quad
\alpha_A=1
]
αC αB αA
011
in Table I.
Line 7
[
C'_{ssm}
c_{13}c_{12}c_{11}c_{10}c_9c_8c_7c_6
]
Notice:
Line 8
[
\alpha_B
]
and
[
\alpha_A
]
Line 9
The rightmost column (shift) tells how much the selected segment must be shifted.
For example:
If shift = (n-m),
then
[
Result = Segment \ll (n-m)
]
This restores the selected segment to its correct weight (bit position) in the final multiplication
result.
This segmentation allows the multiplier to process only the most important bits, reducing
hardware cost while maintaining acceptable accuracy.
This paragraph explains the segmentation choices used in the Static Segmented Multiplier-
Accumulator (SSMAC) shown in Fig. 4.
Line 1
"As it can be observed, there are six possible segmentations to be considered for the operand A"
Instead of always using the entire (n)-bit operand, the architecture selects only a portion of (A)
depending on the control signals.
This reduces:
Power consumption
Area
Computation complexity
Line 2
"the segments are (L_A), (H_A) (see (1)) and also (L'_A), (L''_A), (H_A), and (H''_A)."
A[n-1:m] A[m-1:0]
↑ ↑
HA LA
HA' , HA''
Line 3
Thus B has:
[
L_B,\ H_B,\ L'_B,\ L''_B,\ H'_B,\ H''_B
]
Line 4
Line 5
"In addition to (H_C) and (L_C) (7), the other segments are named (L'_C) and (L''_C) in Table I."
So:
[
C \rightarrow
{H_C,\ L_C,\ L'_C,\ L''_C}
]
Understanding Fig. 4
[
\alpha_A,\ \alpha_B,\ \alpha_C
]
select:
(A'_{ssm})
(B'_{ssm})
(C'_{ssm})
Step 2: Multiplication
[
A'{ssm}\times B'{ssm}
]
[
2m \text{ bits}
]
Error correction
Purpose:
[
C'_{ssm}
]
is added to the corrected product.
[
m_C\text{-bit adder}
]
The outputs:
[
y_1,\ y_2,\ y_3,\ y_4
]
[
y_1 = Y_{MAC}
]
[
y_2 = {Y_{MAC},1,{(n-m-1){0}}}
]
[
y_3 = {Y_{MAC},1,{2(n-m)-1{0}}}
]
[
y_4 = {Y_{MAC},1,{(n_C+m_C-1){0}}}
]
[
\alpha_A,\alpha_B,\alpha_C
]
The architecture does not multiply the full operands every time. Instead it:
This achieves a smaller, lower-power multiplier-accumulator with only a small loss in accuracy.
Line 1
Fig. 4 presents the actual hardware architecture of the Static Segmented Multiplier-
Accumulator (SSMAC).
It shows how operands A, B, and C are segmented, multiplied, added, and corrected.
Line 2
"Different from the MAC of Fig. 2(b), two 6-1 multiplexers are used to select the relevant segments
(A'{ssm}) and (B'{ssm}) for the inputs A and B, according to the values of (\alpha_C,\alpha_B,) and
(\alpha_A)."
[
L_A,;H_A,;L'_A,;L''_A,;H'_A,;H''_A
]
Similarly for B.
[
(\alpha_C,\alpha_B,\alpha_A)
]
Thus:
[
A \rightarrow A'_{ssm}
]
[
B \rightarrow B'_{ssm}
]
Line 3
"Similarly, the 4-1 multiplexer on the right selects the segment (C'_{ssm}) for the input C."
[
L_C,;H_C,;L'_C,;L''_C
]
[
C'_{ssm}
]
Line 4
"A small inner multiplier-accumulator computes the intermediate results named (Y_{MAC})."
After segmentation:
[
A'{ssm}\times B'{ssm}+C'_{ssm}
]
[
Y_{MAC}
]
Since the operands are smaller than the original ones, the hardware is much smaller and consumes
less power.
Line 5
"As shown in Table I, there are four possible shifts to obtain the result."
lower bits
upper bits
middle bits
[
(\alpha_C,\alpha_B,\alpha_A)
]
[
0,; n-m,; 2(n-m),; n_C-m_C
]
Line 6
"The multiplexer on the bottom in Fig. 4 is responsible for performing this shift to compute
(Y_{SSMAC})."
[
y_1,;y_2,;y_3,;y_4
]
For example:
[
y_1 = Y_{MAC}
]
(no shift)
or
[
y_2 = Y_{MAC}\ll(n-m)
]
[
Y_{SSMAC}
]
Line 7
"The high bit in the quantities (y_2,y_3,y_4) of Fig. 4 and the dashed box that adds the correction
term D allow to limit the error of the proposed SSMAC."
When shifting:
[
Y_{MAC}
]
[
D
]
Line 8
"The error sources in the proposed SSMAC are due to the truncation of the operands A, B, C."
[
A'{ssm},;B'{ssm},;C'_{ssm}
]
Define:
[
\epsilon_A
]
[
\epsilon_B
]
[
\epsilon_C
]
Equation (19)
[
A=A'_{ssm}+\epsilon_A
]
Meaning:
Original A
Selected segment
Discarded portion
Similarly:
[
B=B'_{ssm}+\epsilon_B
]
[
C=C'_{ssm}+\epsilon_C
]
Example
Suppose:
[
A=11010110
]
Selected segment:
[
A'_{ssm}=11010000
]
Discarded bits:
[
\epsilon_A=00000110
]
Then:
[
A=A'_{ssm}+\epsilon_A
]
Line 10
Exact MAC:
[
A\times B+C
]
Approximate MAC:
[
A'{ssm}\times B'{ssm}+C'_{ssm}
]
[
\epsilon
]
Equation (20)
[
\epsilon
A\times B+C
(A'{ssm}\times B'{ssm}+C'_{ssm})
]
[
A=A'_{ssm}+\epsilon_A
]
[
B=B'_{ssm}+\epsilon_B
]
[
C=C'_{ssm}+\epsilon_C
]
After expansion:
[
\epsilon
\epsilon_A B'{ssm}
+
\epsilon_B A'{ssm}
+
\epsilon_C
+
\epsilon_A\epsilon_B
]
First Term
[
\epsilon_A B'_{ssm}
]
Second Term
[
\epsilon_B A'_{ssm}
]
Error caused by truncating B.
Third Term
[
\epsilon_C
]
Fourth Term
[
\epsilon_A\epsilon_B
]
Usually small.
Final Paragraph
"The largest error component is due to the first two terms in (20)."
[
\epsilon_A B'_{ssm}
]
and
[
\epsilon_B A'_{ssm}
]
"Thus, the error is mainly due to the segmentation of operands A and B of the multiplier"
Since C is only added (not multiplied), its truncation error is much smaller.
"As a consequence, the approximation error can be widely mitigated by using the same approach
discussed in [19]"
Therefore, by applying the error-correction method (term (D)) introduced in reference [19], most
of the approximation error can be reduced.
Key Takeaway
[
\epsilon_A,\epsilon_B,\epsilon_C
]
and proves that the largest errors come from truncating A and B, not C. Therefore, the correction
block (D) is mainly designed to compensate for multiplier-input truncation errors.
This section explains how the error correction term (D) is generated to compensate for the error
introduced by truncating partial products in the segmented multiplier.
First Paragraph
"As an example, Fig. 5(a) shows the PPM for the case (m=5) and (m_C=12)."
o (m_C=12)
The figure shows which partial products are kept and which are discarded.
Line 2
"In the case ((\alpha_C,\alpha_B,\alpha_A)=011) the dropped terms with the largest weight (2^9)
are (a_7b_2) and (a_2b_7)."
[
(\alpha_C,\alpha_B,\alpha_A)=011
]
[
a_7b_2
]
and
[
a_2b_7
]
[
2^{7+2}=2^9
]
[
2^{i+j}
]
These are the largest discarded terms and therefore contribute most to the error.
Line 3
"We mitigate the error by performing the OR of these two terms and by including this value in the
column of weight (2^{10})."
[
a_7b_2 ; OR ; a_2b_7
]
If either term is 1:
[
d_0=1
]
This correction bit is then inserted into the next higher column:
[
2^{10}
]
Why?
Because:
[
2^9 + 2^9 = 2^{10}
]
So a single bit at (2^{10}) roughly approximates the contribution of the discarded terms.
Line 4
"A similar approach is used for the dropped terms with weight (2^8) (a_6b_2) and (a_2b_6)."
[
a_6b_2
]
[
a_2b_6
]
[
2^{6+2}=2^8
]
Again compute:
[
a_6b_2 ; OR ; a_2b_6
]
Next Paragraph
[
(\alpha_C,\alpha_B,\alpha_A)=111
]
Line
"Here, the terms considered for the error correction are: (a_7b_3) OR (a_3b_7)."
[
a_7b_3
]
[
a_3b_7
]
Weight:
[
2^{7+3}=2^{10}
]
Compute:
[
a_7b_3 ; OR ; a_3b_7
]
[
2^{11}
]
Next Line
[
a_6b_3
]
[
a_3b_6
]
Weight:
[
2^9
]
[
2^{10}
]
Equation (21)
Meaning
and
[
d_1
]
[
2^{2n-2m}
]
Equation (22)
d_k=(a_{k+n-m}b_{n-m-1};OR;b_{k+n-m}a_{n-m-1})
Meaning
For (k=0):
[
d_0=
(a_{n-m}b_{n-m-1})
\ OR
(b_{n-m}a_{n-m-1})
]
For (k=1):
[
d_1=
(a_{n-m+1}b_{n-m-1})
\ OR
(b_{n-m+1}a_{n-m-1})
]
One OR gate
Why Only Two Terms?
They found that correcting only the two most significant discarded terms gives:
Adding more terms increases area and power while giving diminishing returns.
Next Paragraph
Same equations
Line
"In this case come into play the terms (A'{ssm}) and (B'{ssm}) that are truncated versions of (H_A)
and (H_B)."
Instead of using:
[
L_A,\ L_B
]
[
A'_{ssm}
]
[
B'_{ssm}
]
derived from:
[
H_A,\ H_B
]
[
m'
\frac{(n_C-m_C)-2(n-m)}{2}
]
It tells how many MSBs are retained in the truncated upper segments.
Overall Idea
1. The largest approximation error comes from a few high-weight discarded partial products.
Result:
This figure (Fig. 5) illustrates how the error correction term (D) is generated in the SSMAC by
examining the most significant discarded partial products.
The blue terms are the important partial products that were discarded during segmentation.
Why?
[
7+2=9
]
[
2+7=9
]
[
2^9
]
[
d_0 = a_7b_2 ; OR ; a_2b_7
]
[
d_0=1
]
Placement of (d_0)
[
c_{10}
]
[
2^{10}
]
The green "1" in column (c_{10}) represents this correction bit.
[
a_6b_2,\quad a_2b_6
]
Weight:
[
6+2=8
]
[
c_8
]
(weight (2^8)).
Compute:
[
d_1 = a_6b_2 ; OR ; a_2b_6
]
[
c_9
]
(weight (2^9)).
Suppose:
(a_7b_2) (a_2b_7) OR
0 0 0
0 1 1
(a_7b_2) (a_2b_7) OR
1 0 1
1 1 1
Instead of recovering both terms exactly, the circuit uses one OR gate.
Advantages:
[
a_7b_3,\quad a_3b_7
]
Weight:
[
7+3=10
]
Column:
[
c_{10}
]
(weight (2^{10}))
Correction
Compute:
[
a_7b_3 ; OR ; a_3b_7
]
(weight (2^{11}))
[
a_6b_3,\quad a_3b_6
]
Weight:
[
6+3=9
]
Column:
[
c_9
]
Correction
Compute:
[
a_6b_3 ; OR ; a_3b_6
]
[
c_{10}
]
(weight (2^{10}))
Discarded column
OR operation
↓
Insert correction
Example:
Weight 2^9
(a7b2, a2b7)
↓ OR
Correction bit
The green "1" indicates the location where the correction bit is added.
Actually:
[
1 \equiv d_k
]
where
[
d_k = (\text{first discarded term})\ OR\ (\text{second discarded term})
]
The SSMAC discards many partial products to save area and power.
2. OR each pair.
Accuracy
Area
Power consumption
Hardware complexity
This section defines the error metrics used to evaluate the accuracy of the approximate SSMAC
compared to the exact MAC.
1. Error (E or D)
D=Y_{EXACT}-Y_{APP}
where:
Meaning
It is simply the difference between the correct result and the approximate result.
Example
If
[
Y_{EXACT}=100
]
and
[
Y_{APP}=95
]
then
[
D=100-95=5
]
Defined as:
ED=\left|Y_{EXACT}-Y_{APP}\right|
Meaning
ED measures how far the approximate result is from the exact result, regardless of sign.
Example
If
[
Y_{EXACT}=100
]
and
[
Y_{APP}=105
]
then
[
D=-5
]
but
[
ED=|-5|=5
]
Defined as:
RED=\frac{ED}{|Y_{EXACT}|}
Meaning
Example
If
[
Y_{EXACT}=100
]
and
[
ED=5
]
then
[
RED=\frac{5}{100}=0.05
]
or
[
5%
]
Consider:
Case 1
Error = 5
[
RED=5%
]
Case 2
Error = 5
[
RED=0.5%
]
Defined as:
[
NM=\frac{\mu_E}{Y_{MAX}}
]
where:
Meaning
Defined as:
[
NMED=\frac{\mu_{ED}}{Y_{MAX}}
]
where:
[
\mu_{ED}
]
Meaning
Defined as:
[
MRED=\mu_{RED}
]
Meaning
Example
[
RED_2=3%
]
[
RED_3=2%
]
Then
[
MRED=\frac{1+3+2}{3}=2%
]
Defined as:
[
NmaxED=\frac{\max(ED)}{Y_{MAX}}
]
Meaning
Example
[
ED=100
]
and
[
Y_{MAX}=65535
]
then
[
NmaxED=\frac{100}{65535}
]
Thus:
Symbol Meaning
[
PRED
]
which means:
Mathematically:
[
PRED=P(RED>0.02)
]
Example
Suppose:
Then
[
PRED=\frac{300}{10000}=0.03
]
or
[
3%
]
E Signed error
ED Absolute error
Last Paragraph
"Error performance of investigated MACs have been obtained by simulating 10 million uniformly
distributed values of A, B and C."
This means:
o Error metrics
The reported NM, NMED, MRED, NmaxED, and PRED values are statistical results obtained from
these 10 million simulations.
Line 1
"the use of the architecture in Fig. 2(b), where segmentation on operand C is not performed."
In Fig. 2(b):
C is not segmented.
Line 2
Meaning:
So segmentation of C is beneficial.
Line 3
"For (m=4), using (m_C=12) (and hence a 12-bits adder) allows to obtain almost the same precision
as the architecture with (m_C=20) (using a 20-bits adder)."
Case:
[
m=4
]
[
m_C=12
]
bits of operand C.
[
12\text{ bits}
]
instead of
[
20\text{ bits}
]
[
m_C=12
]
[
m_C=20
]
even though:
[
20-12=8
]
Advantage
Smaller adder:
less area
less power
shorter delay
Line 4
"For (m=5), the SSMAC with (m_C=14) gives a precision very close to the one with (m_C=20)."
Now:
[
m=5
]
and
[
m_C=14
]
[
m_C=20
]
case.
Line 5
"The plots in Fig. 6 also show that the correction technique is efficacious"
[
D = \text{error compensation}
]
Line 6
"reducing by more than 50% NMED and MRED in all investigated cases."
NMED
[
NMED=\frac{\mu_{ED}}{Y_{MAX}}
]
and
MRED
[
MRED=\mu_{RED}
]
by more than:
[
50%
]
Next Paragraph
Line 7
Proposed SSMAC
Line 8
In Table II:
[
*
]
Without *:
No error correction.
With *:
Line 9
"and for several state-of-the-art MACs from literature in the case (n=8, n_C=20)."
[
n=8
]
and
[
n_C=20
]
20-bit accumulator.
Line 10
"Similarly, Table III shows results for (n=8, n_C=24) bits as further test case."
Another experiment uses:
[
n=8
]
and
[
n_C=24
]
to verify that the proposed method also works for larger accumulators.
Line 11
"The techniques [10], [12], [14] implement different types of approximate multipliers."
References:
[10]
[12]
[14]
Line 12
Reference [10]:
Line 13
"In [12], L represents the number of rows grouped for the compression with the OR-gates."
Reference [12]:
Parameter:
[
L
]
Larger (L):
More approximation
Line 14
"The reference [14] uses approximate 4-2 compressors that populate the n less significant columns
in the PPM."
Reference [14]:
Uses approximate:
[
4:2
]
compressors.
These compressors operate on the least significant columns of the Partial Product Matrix (PPM).
Line 15
CN configuration:
Line 16
"while the CNHYB version uses both the compressors of [14] and the ones proposed in [15]."
Uses:
Line 17
"The architectures in [20], [21], [22] are specifically designed for multiplier-accumulators."
Unlike [10], [12], [14], these works directly design complete MAC units.
Line 18
"The work [20] employs a mask able to define the accuracy of the PPM compression."
Reference [20]:
Accuracy
Hardware complexity
of partial-product compression.
Line 19
mask = 0
Maximum simplification.
Highest approximation.
mask = 127
Maximum precision.
Lowest approximation.
Line 20
Reference [21]:
Configuration:
[
ISH_1
]
[
2\times2
]
multipliers.
Line 22
Configuration:
[
ISH_2
]
Mixes:
Approximate multipliers
Exact multipliers
to improve accuracy.
Line 23
"The IBAM architecture [22] uses imprecise adders and multipliers, trying to compensate the error
of the two blocks."
Reference [22]:
Both:
Multiplier
Adder
are approximate.
The design attempts to balance their errors so that overall MAC accuracy remains acceptable.
3. The correction term (D) reduces NMED and MRED by more than 50%.
This figure shows the error performance of the proposed SSMAC for different values of (m_C)
(number of bits retained from operand (C)).
Axes Meaning
Y-axis:
Blue curve:
Orange curve:
Observation
Approximate values:
10 3.3×10⁻³ 1.25×10⁻³
11 2.5×10⁻³ 1.1×10⁻³
12 1.6×10⁻³ 0.63×10⁻³
After (m_C=12):
Conclusion
For (m=4),
[
m_C=12
]
is sufficient.
Observation
Without correction:
[
14\times10^{-3}
\rightarrow
7\times10^{-3}
]
With correction:
[
5.8\times10^{-3}
\rightarrow
2.8\times10^{-3}
]
at (m_C=12).
Beyond 12 bits:
Almost no improvement.
Effect of Correction
[
50%-60%
]
[
m=5
]
Observation
[
m_C=14
]
Approximate values:
10 3.2×10⁻³ 1.35×10⁻³
12 1.6×10⁻³ 0.7×10⁻³
14 0.75×10⁻³ 0.32×10⁻³
After (m_C=14):
Conclusion
For (m=5),
[
m_C=14
]
is sufficient.
Without correction:
[
0.0135
\rightarrow
0.003
]
With correction:
[
0.0063
\rightarrow
0.0013
]
as (m_C) increases.
[
m_C=14
]
Recall:
[
C'_{ssm}
]
Therefore:
[
NMED,\ MRED
]
decrease.
[
\text{Error with correction}
<
\text{Error without correction}
]
[
50% \text{ to } 60%
]
4. The correction term (D) reduces both NMED and MRED by more than 50%.
5. A 12-bit or 14-bit adder can achieve accuracy very close to a 20-bit adder, saving hardware
area and power.
Line 1
"The considered approximate multiplier truncates the VBL = 3 less significant columns of the
PPM."
Terms
The multiplier removes the 3 least significant columns of the partial-product matrix.
Example:
c7 c6 c5 c4 c3 c2 c1 c0
↑ ↑ ↑
truncated
Columns:
[
c_0,; c_1,; c_2
]
are discarded.
Why?
To reduce:
Area
Power
Delay
Line 2
"The results in Tables II, III show that the investigated MACs cover a wide range of precision."
Some are:
Highly accurate
Moderately accurate
Very approximate
Line 3
"The error performances of the proposed SSMACs with (m=4) are comparable with [10], [12], [20],
and [21]"
[
m=4
]
achieves approximately the same accuracy as the MAC architectures from references:
[10]
[12]
[20]
[21]
Line 4
"with NMED and MRED in the range (2.56\times10^{-4} - 3.3\times10^{-3}), and (1.12\times10^{-
3} - 1.44\times10^{-2}) for (n_C=20) respectively."
[
n_C=20
]
NMED
[
2.56\times10^{-4}
]
to
[
3.3\times10^{-3}
]
which is:
0.000256 to 0.0033
MRED
[
1.12\times10^{-3}
]
to
[
1.44\times10^{-2}
]
which is:
0.00112 to 0.0144
or
0.112% to 1.44%
relative error.
Line 5
"Similarly, NMED and MRED are in the range (1.69\times10^{-5}-4.21\times10^{-4}), and (1.17\
times10^{-4}-2.81\times10^{-3}) for (n_C=24)."
[
n_C=24
]
NMED
[
1.69\times10^{-5}
]
to
[
4.21\times10^{-4}
]
MRED
[
1.17\times10^{-4}
]
to
[
2.81\times10^{-3}
]
Line 6
[14]
[22]
NMED
[
2.19\times10^{-6}
]
to
[
2.97\times10^{-5}
]
MRED
[
1.11\times10^{-5}
]
to
[
1.42\times10^{-4}
]
Line 8
For:
[
n_C=24
]
Line 9
"We synthesize the proposed SSMACs and the state-of-the-art in TSMC 28nm CMOS technology"
Line 10
Cadence Genus
Line 11
Besides approximate MACs, the authors also implement an exact Dadda MAC.
Purpose:
To provide a baseline.
Area savings
Power savings
Accuracy loss
Line 12
[
100,000
]
Line 14
[
1\text{ GHz}
]
meaning:
[
10^9
]
Line 15
[
500\text{ ps}
]
[
\frac{1}{500\text{ ps}}
2\text{ GHz}
]
maximum clock frequency target.
Line 16
Iso-delay means:
Therefore:
Main Takeaways
6. All designs are constrained to 500 ps delay, ensuring a fair area/power comparison.
Line 1
"The minimum delay is instead computed by synthesizing each MAC at the minimum timing
constraint that allows to achieve a positive slack."
What is Slack?
In digital design:
[
\text{Slack} = \text{Required Time} - \text{Arrival Time}
]
Meaning
The authors keep tightening the clock period during synthesis until the design just barely meets
timing.
[
\text{Slack} > 0
]
Line 2
"As shown in Tables II the proposed SSMACs show a remarkable power reduction compared to the
exact MAC"
The proposed approximate MAC consumes much less power than the exact Dadda MAC.
Line 3
For (m=4)
Power reduction:
[
45% \text{ to } 66%
]
Example:
[
100;\mu W
]
[
34;\mu W \text{ to } 55;\mu W
]
For (m=5)
Power reduction:
[
16% \text{ to } 60%
]
Still significant but generally less than the (m=4) case.
Line 4
[
C
]
[
C'_{ssm}
]
This reduces:
Adder size
Switching activity
Power consumption
Line 5
"For example, the SSMAC architecture with (m=5,m_C=20) has a power consumption of 225 \mu
W"
Configuration 1
[
m=5
]
[
m_C=20
]
No segmentation of C.
Power:
[
225;\mu W
]
Line 6
"while the SSMAC with (m=5,m_C=14) exhibits a power consumption of 188 \mu W with almost
the same precision."
Configuration 2
[
m=5
]
[
m_C=14
]
Power:
[
188;\mu W
]
Power Saving
[
225-188=37;\mu W
]
Percentage:
[
\frac{37}{225}\times100
\approx16.4%
]
So:
Similar accuracy
Line 7
Line 8
[
42.4%-69.5%
]
power reduction.
For (m=5):
[
12.8%-63.6%
]
power reduction.
Line 9
"Among the other investigated approximate MACs, [12] (L=4) and [20] mask = 0 show the largest
power saving compared to the exact MAC"
Reference [12]
[
L=4
]
Reference [20]
[
mask=0
]
Line 10
For:
[
n_C=20
]
Power savings:
Design Saving
Line 11
For:
[
n_C=24
]
Design Saving
Line 12
Line 13
Best case:
[
m=4
]
[
m_C=10
]
Area reduction:
[
50%
]
This means the circuit occupies only half the silicon area of the exact MAC.
Line 14
For:
[
m=5
]
[
m_C=10
]
Area reduction:
[
34.4%
]
Still substantial.
Line 15
There is a trade-off.
Although:
Area decreases
Power decreases
Line 16
"due to the multiplexers that realize the shift and the segmentation."
Segmentation MUXes
Select:
[
A'_{ssm}
]
[
B'_{ssm}
]
[
C'_{ssm}
]
Selects:
[
y_1,y_2,y_3,y_4
]
Example:
Input
MUX
Multiplier
Adder
MUX
Output
Thus:
[
\text{Delay}_{SSMAC}
\text{Delay}_{Exact}
]
Metric Result
Reason for delay increase Additional multiplexers for segmentation and shifting
Key Takeaway
The proposed SSMAC achieves large reductions in power (up to ~70%) and area (up to 50%) while
maintaining nearly the same accuracy. The main cost is a small increase in delay due to the extra
multiplexers used for segment selection and output shifting.
This is Table II, which compares the proposed SSMAC with several existing approximate MAC
architectures and an exact MAC.
Column Meaning
Metric Value
Delay 249 ps
Power 276.6 μW
Since it is exact:
NM = 0
NMED = 0
MRED = 0
PRED = 0
Kulkarni [10]
Metric Value
NMED (8.11\times10^{-4})
MRED (2.91\times10^{-3})
Delay 224 ps
Power 231.1 μW
Qiqieh [12] L = 2
Metric Value
NMED (2.06\times10^{-4})
MRED (8.76\times10^{-4})
Metric Value
Delay 208 ps
Power 200 μW
Qiqieh [12] L = 4
Increasing (L):
More approximation
More savings
Metric Value
NMED (1.91\times10^{-3})
Power 152.7 μW
Area reduction:
[
54.8%
]
Power reduction:
[
44.8%
]
Strollo [14] CN
Metric Value
NMED (1.66\times10^{-5})
MRED (7.38\times10^{-5})
However:
Hybrid version.
Metric Value
NMED (2.97\times10^{-5})
MRED (1.42\times10^{-4})
Power reduction:
[
17.4%
]
Yang [20]
mask = 0
Aggressive approximation.
Metric Value
NMED (1.70\times10^{-3})
Power 173.3 μW
Power saving:
[
37.3%
]
mask = 127
More accurate.
Metric Value
NMED (5.99\times10^{-4})
Power 197.9 μW
MACISH [21]
ISH_1
Metric Value
NMED (1.36\times10^{-4})
Power 235.6 μW
ISH_2
[
NMED=7.05\times10^{-4}
]
IBAM [22]
Metric Value
NMED (2.19\times10^{-6})
MRED (1.11\times10^{-5})
Almost exact.
However:
SSMAC(...)
SSMAC*(...)
SSMAC (m=4)
mC = 10
Without correction:
Metric Value
NMED (3.30\times10^{-3})
Power 94 μW
Power reduction:
[
66%
]
Area reduction:
[
50.1%
]
mC = 12
Metric Value
NMED (1.60\times10^{-3})
Power 128 μW
Still:
[
53.7%
]
power reduction.
mC = 20
No segmentation of C.
Metric Value
NMED (1.57\times10^{-3})
Power 135.2 μW
Notice:
Effect of Correction
Compare:
Without correction
[
NMED=1.60\times10^{-3}
]
for (m=4,m_C=12)
With correction
[
NMED=6.33\times10^{-4}
]
for (m=4,m_C=12)
Improvement:
[
\frac{1.60-0.633}{1.60}
\approx 60%
]
SSMAC (m=5)
Increasing (m):
Improves accuracy
m=5, mC=14
Without correction:
Metric Value
NMED (7.44\times10^{-4})
Power 188.1 μW
With correction:
Metric Value
NMED (3.07\times10^{-4})
Power 210.4 μW
Notice:
Exact MAC:
[
249\ ps
]
[
275-296\ ps
]
Segment-selection multiplexers
Shift-selection multiplexers
Error-correction logic
Best Accuracy
IBAM [22]
Strollo [14]
[
10^{-6}
]
but modest power savings.
SSMAC:
[
m=4,;m_C=10
]
Power:
[
94\ \mu W
]
Reduction:
[
66%
]
Best Trade-off
SSMAC*(m=4,mC=12)
Metric Value
NMED (6.33\times10^{-4})
Power 135.8 μW
because it provides:
This is Table II, which compares the proposed SSMAC with several existing approximate MAC
architectures and an exact MAC.
Metric Value
Delay 249 ps
Power 276.6 μW
Since it is exact:
NM = 0
NMED = 0
MRED = 0
PRED = 0
Kulkarni [10]
Metric Value
NMED (8.11\times10^{-4})
MRED (2.91\times10^{-3})
Delay 224 ps
Power 231.1 μW
Metric Value
Qiqieh [12] L = 2
Metric Value
NMED (2.06\times10^{-4})
MRED (8.76\times10^{-4})
Delay 208 ps
Power 200 μW
Qiqieh [12] L = 4
Increasing (L):
More approximation
More savings
Metric Value
NMED (1.91\times10^{-3})
Power 152.7 μW
Area reduction:
[
54.8%
]
Power reduction:
[
44.8%
]
Strollo [14] CN
Metric Value
NMED (1.66\times10^{-5})
MRED (7.38\times10^{-5})
However:
Hybrid version.
Metric Value
NMED (2.97\times10^{-5})
MRED (1.42\times10^{-4})
Power reduction:
[
17.4%
]
Yang [20]
mask = 0
Aggressive approximation.
Metric Value
NMED (1.70\times10^{-3})
Power 173.3 μW
Metric Value
Power saving:
[
37.3%
]
mask = 127
More accurate.
Metric Value
NMED (5.99\times10^{-4})
Power 197.9 μW
MACISH [21]
ISH_1
Metric Value
NMED (1.36\times10^{-4})
Power 235.6 μW
ISH_2
[
NMED=7.05\times10^{-4}
]
IBAM [22]
NMED (2.19\times10^{-6})
MRED (1.11\times10^{-5})
Almost exact.
However:
SSMAC(...)
SSMAC*(...)
SSMAC (m=4)
mC = 10
Without correction:
Metric Value
NMED (3.30\times10^{-3})
Power 94 μW
Power reduction:
[
66%
]
Area reduction:
[
50.1%
]
mC = 12
Metric Value
NMED (1.60\times10^{-3})
Power 128 μW
Still:
[
53.7%
]
power reduction.
mC = 20
No segmentation of C.
Metric Value
NMED (1.57\times10^{-3})
Power 135.2 μW
Notice:
Effect of Correction
Compare:
Without correction
[
NMED=1.60\times10^{-3}
]
for (m=4,m_C=12)
With correction
[
NMED=6.33\times10^{-4}
]
for (m=4,m_C=12)
Improvement:
[
\frac{1.60-0.633}{1.60}
\approx 60%
]
SSMAC (m=5)
Increasing (m):
Improves accuracy
m=5, mC=14
Without correction:
Metric Value
NMED (7.44\times10^{-4})
Power 188.1 μW
With correction:
Metric Value
NMED (3.07\times10^{-4})
Power 210.4 μW
Notice:
Exact MAC:
[
249\ ps
]
[
275-296\ ps
]
Segment-selection multiplexers
Shift-selection multiplexers
Error-correction logic
Best Accuracy
IBAM [22]
Strollo [14]
[
10^{-6}
]
SSMAC:
[
m=4,;m_C=10
]
Power:
[
94\ \mu W
]
Reduction:
[
66%
]
Best Trade-off
SSMAC*(m=4,mC=12)
Metric Value
NMED (6.33\times10^{-4})
Power 135.8 μW
because it provides:
This paragraph explains the trade-off between accuracy and power saving shown in Figure 7.
Figure 7 Caption
"Tradeoff between (a) power saving and NMED and (b) power saving and MRED for (n=8, n_C=20)
bits."
for:
[
n=8,\quad n_C=20
]
Line 1
"To put results in perspective, the Fig. 7 represents the trade-off between power saving and the
metrics NMED and MRED."
Benefit
[
\text{Power Saving}
]
against
Cost
[
\text{Error (NMED, MRED)}
]
Line 2
"For the sake of simplicity, we focus our attention on the case with (n=8, n_C=20)."
[
n=8
]
[
n_C=20
]
Line 3
"since the MACs with (n_C=24) offer a comparable behavior both in terms of power and error
metrics."
[
n_C=24
]
Line 4
"In the plots of Fig. 7, the optimal point is located in the top-left corner"
Error metric
(NMED or MRED)
Smaller is better.
Y-axis
Power saving
Larger is better.
+----------------→ Error
Small Large
Top-left means:
Minimum error
Line 5
Why top-left?
Because:
Left
[
\text{Error} \rightarrow \text{Small}
]
Higher accuracy.
Top
[
\text{Power Saving} \rightarrow \text{Large}
]
Line 6
"As shown, the proposed SSMACs exhibit a favorable trade-off between accuracy and power"
This means:
Good accuracy
simultaneously.
Line 7
"defining the Pareto front for NMED > 5\times10^{-4} and MRED > 3\times10^{-3}."
In this paper:
Objectives are:
1. Lower error
Example:
A 0.001 50%
B 0.001 40%
A dominates B.
So B is not Pareto-optimal.
The paper says that for:
[
NMED > 5\times10^{-4}
]
or
[
MRED > 3\times10^{-3}
]
Meaning:
lower error
Line 8
"In this region, the proposed MACs overcome the designs of [10], [20] and [21]"
Compared with:
Kulkarni [10]
Yang [20]
MACISH [21]
Line 9
[
NMED
]
and
[
MRED
]
Example:
Line 10
"The figure highlights also that the MACs [14] and [22] offer the best accuracy"
The architectures:
Strollo [14]
IBAM [22]
[
10^{-6}
]
Line 11
[
10%-20%
]
only.
Thus:
Very Accurate
but
Less Energy Efficient
Final Conclusion
If the goal is
Maximum accuracy
choose:
Strollo [14]
IBAM [22]
If the goal is
Reasonable accuracy
choose:
SSMAC
Visual Summary
Power Saving
SSMACs ●
[10],[20],[21]
[14],[22]
●
----------------------------------------→ Error
Low High
[14] and [22] are far left (excellent accuracy) but lower on the graph (less power saving).
[10], [20], [21] have similar error to SSMAC but lower power savings, so they are
dominated by SSMAC in many operating points.
Section V: Applications
This section evaluates the proposed SSMAC in a real-world application rather than only using
mathematical error metrics.
A. Image Filtering
Noise removal
Blurring
Smoothing
Motion effects
Edge detection
[
A\times B + C
]
Line 1
MRED
Line 2
Example:
[
\begin{bmatrix}
1 & 2 & 1\
2 & 4 & 2\
1&2&1
\end{bmatrix}
]
Line 3
"the first one is a Gaussian low-pass filter with size 5 and standard deviation 2"
Gaussian Filter
Characteristics:
Standard deviation:
[
\sigma = 2
]
Purpose
Removes:
Noise
Fine details
Original Image
Gaussian Filter
Smooth Image
Line 4
"while the second kernel approximates the linear motion of a camera by 10 pixels, with an angle of
25 degrees."
Motion Blur
Parameters:
Direction = 25°
Example:
Camera movement
Blurred image
Line 5
"The Table IV shows the performances in terms of mean structural similarity index (SSIM) and peak
signal-to-noise ratio (PSNR) in dB"
SSIM
PSNR
SSIM compares:
Brightness
Contrast
Structure
Range:
[
0 \le SSIM \le 1
]
where:
1 = identical images
0 = completely different
Example
SSIM Quality
1.00 Perfect
0.99 Excellent
0.90 Acceptable
What is PSNR?
Higher is better.
Typical values:
PSNR Quality
>40 dB Excellent
30–40 dB Good
<20 dB Poor
Line 6
[
n=8
]
and
[
n_C=20
]
Line 7
"Here, we report the average values of SSIM and PSNR obtained by processing two test images,
'Lena' and 'Cameraman'."
Lena
Cameraman
Line 8
"The last column of Table IV reports the overall average SSIM and PSNR."
Table IV contains:
[
\text{Average SSIM}
]
and
[
\text{Average PSNR}
]
Line 9
"The proposed SSMACs with correction perform quite well in this application"
[
D
]
The corrected SSMAC produces filtered images very close to those obtained using the exact MAC.
Line 10
"exhibiting an average SSIM larger than 0.92 for all the investigated configurations"
[
SSIM > 0.92
]
This means:
Line 11
When:
[
m_C \ge 12
]
[
SSIM > 0.98
]
which is extremely close to the exact result.
Line 12
[
PSNR = 34.4; dB
]
Line 13
For:
[
m=5
]
and
[
m_C \ge 14
]
[
PSNR > 41; dB
]
This is excellent.
[
40; dB
]
to be visually lossless.
Line 14
"The SSMACs without correction, on the other hand, show a lower SSIM that is smaller than 0.9 for
(m_C=10)."
Without correction:
[
D=0
]
For:
[
m_C=10
]
[
SSIM < 0.9
]
Line 15
Line 16
"with the partial exceptions of [20] mask = 0 (SSIM about 0.88 and PSNR about 20 dB)"
[
mask=0
]
performs poorly.
Results:
[
SSIM \approx 0.88
]
[
PSNR \approx 20 dB
]
[
L=4
]
Observation Result
Key Takeaway
The proposed SSMAC with error correction achieves substantial power and area savings while still
maintaining excellent image quality (SSIM > 0.98 and PSNR > 41 dB in the best configurations),
making it suitable for practical image-filtering applications.
Line 1
This refers to the architecture discussed just before this paragraph (Qiqieh [12], (L=4)).
A PSNR of:
[
27\text{ dB}
]
means:
Distortion is noticeable.
Typical interpretation:
PSNR Quality
>40 dB Excellent
30–40 dB Good
20–30 dB Moderate
<20 dB Poor
Line 2
"The IBAM MAC [22] shows a remarkably good behavior, with SSIM about 1 and PSNR larger than
67 dB."
SSIM ≈ 1
[
SSIM \approx 1
]
PSNR > 67 dB
[
PSNR > 67\text{ dB}
]
is extraordinarily high.
For comparison:
PSNR Meaning
40 dB Excellent
PSNR Meaning
50 dB Nearly perfect
Line 3
Cameraman
Line 4
"The images computed with the proposed SSMACs without correction and (m=4, m_C=12,20) show
a slight degradation in the background."
Configurations:
[
m=4
]
[
m_C=12
]
or
[
m_C=20
]
without correction.
Observation
Line 5
"The images obtained using the SSMACs with the correction technique are instead very close to
the exact case."
[
D
]
is enabled.
Result:
Line 6
"The SSMAC without correction and (m=5, m_C=14,20) yield acceptable results."
Configurations:
[
m=5
]
[
m_C=14
]
or
[
m_C=20
]
without correction.
Why Better?
Because:
Larger (m) means more multiplier bits retained.
Therefore:
[
\text{Error} \downarrow
]
Line 7
"In order to compare the power performances with the accuracy, we plot in Fig. 9 the power
saving with respect to the average PSNR."
Figure 9 compares:
X-axis
Average PSNR
(image quality)
Y-axis
Power saving
Better Quality
Line 8
"In order to simplify the visualization, we have included in this Figure only the corrected SSMACs"
(corrected versions).
Reason:
Line 9
They achieve:
Higher SSIM
Higher PSNR
Line 10
"As it can be observed, the proposed SSMACs with (m=4,m_C=12,20) and (m=5,m_C=12) offer the
best trade-off between power and quality of results"
Recommended configurations
1.
[
m=4,\quad m_C=12
]
2.
[
m=4,\quad m_C=20
]
3.
[
m=5,\quad m_C=12
]
These configurations balance:
Image quality
Power consumption
Line 11
[
30 \le PSNR \le 35 \text{ dB}
]
Line 12
[
\text{Power Saving} > 40%
]
Line 13
"Template matching is a method for finding the location of a template image in a larger image"
Template matching is a computer vision technique.
Goal:
Example:
Large Image
+----------------+
| |
| FACE |
| |
+----------------+
Template
+------+
| FACE |
+------+
The algorithm searches for the face inside the large image.
Line 14
Applications include:
Face detection
Object recognition
Industrial inspection
Medical imaging
Robot vision
Line 15
"The basic algorithm involves sliding the template over the given image."
Position 1
Position 2
Position 3
...
Line 16
"At each position the template and the patch of the input image under the template are
compared."
[
A\times B + C
]
operations.
Line 17
The algorithm computes a similarity score at every position and chooses the position with the
highest similarity (maximum correlation) as the detected location of the template.
Main Takeaways
Configuration Result
PSNR 30–35 dB
Template Matching
Template matching searches for a small image inside a larger image by sliding the template and
computing similarity scores using many MAC operations, making it another suitable application for
evaluating the proposed SSMAC.
Caption:
Power saving
Axes
X-axis
Y-axis
Ideal Location
The best point is:
because it means:
High PSNR
Points in Figure
IBAM (VBL=3)
Located around:
PSNR ≈ 67 dB
Meaning:
Around:
PSNR ≈ 60 dB
Kulkarni [10]
Around:
PSNR ≈ 45 dB
MACISH
Around:
PSNR ≈ 40–43 dB
Moderate trade-off.
Yang [20]
mask=0
PSNR ≈ 20 dB
mask=127
PSNR ≈ 35 dB
Proposed SSMAC*
Labels:
4,10
4,12
4,20
5,12
5,14
5,20
mean:
[
(m,m_C)
]
SSMAC*(4,10)
Approximately:
PSNR ≈ 25 dB
Power saving ≈ 60%
SSMAC*(4,12)
Approximately:
PSNR ≈ 35 dB
Excellent trade-off.
SSMAC*(4,20)
Approximately:
PSNR ≈ 37 dB
SSMAC*(5,12)
Approximately:
PSNR ≈ 38 dB
SSMAC*(5,14)
Approximately:
PSNR ≈ 45 dB
Best trade-off
SSMAC*(4,12)
SSMAC*(4,20)
SSMAC*(5,12)
PSNR = 30–35+ dB
Line
The location with the highest score is assumed to contain the template.
Line
Correlation
Covariance
Line
"In our experiment, we used the covariance (corresponding to TM_CCOEFF mode in OpenCV)."
[
TM_CCOEFF
]
matching method.
Equation (28)
[
C(x,y)=
\sum_{i=0}^{d_1-1}
\sum_{j=0}^{d_2-1}
\left(I(x-i,y-j)-\mu_I\right)
\left(T(i,j)-\mu_T\right)
]
Meaning of Symbols
(T(i,j))
Template pixel.
(I(x-i,y-j))
(\mu_T)
[
\mu_T=
\frac{1}{d_1d_2}
\sum T(i,j)
]
(\mu_I)
[
\mu_I=
\frac{1}{d_1d_2}
\sum I(x-i,y-j)
]
(d_1)
Template width.
(d_2)
Template height.
Step 1
[
T(i,j)-\mu_T
]
[
I(x-i,y-j)-\mu_I
]
Step 2
Step 3
Result:
[
C(x,y)
]
Interpretation of (C(x,y))
Near Zero
Weak similarity.
[
C(x,y)\approx0
]
Negative Value
Poor match.
Example
Suppose:
Template:
10 20
20 30
Image patch:
11 19
22 31
Therefore:
[
C(x,y)
]
[
(I-\mu_I)(T-\mu_T)
]
multiplications and additions.
[
A\times B + C
]
operations.
The purpose of this section is to show that the proposed SSMAC still performs template matching
accurately while consuming much less power.
The table evaluates how different approximate MAC architectures perform in a template matching
application.
Columns Meaning
Column Meaning
[
C(x,y)
]
"yes"
The approximate MAC found exactly the same template location as the exact MAC.
"no"
The approximation error caused the algorithm to select the wrong location.
This is more important than PSNR because template matching is a decision-making task.
Analysis of Each MAC
Kulkarni [10]
49.6 dB No
Although PSNR is high, the correlation values were distorted enough to produce an incorrect
template location.
63.7 dB Yes
49.2 dB No
Increasing (L):
More approximation
More error
Strollo [14] CN
75.8 dB Yes
Excellent result.
59.5 dB Yes
PSNR Correct Match
Yang [20]
mask = 0
55.7 dB Yes
mask = 127
61.2 dB Yes
MACISH
ISH_1
49.1 dB No
ISH_2
50.0 dB Yes
IBAM [22]
90.2 dB Yes
(m=4, m_C=12)
49.7 dB No
(m=4, m_C=14)
50.8 dB Yes
Keeping more bits improves accuracy enough to obtain the correct match.
(m=4, m_C=24)
60.3 dB Yes
(m=4, m_C=12)
49.7 dB No
Interesting observation:
The correction improves many error metrics but still doesn't recover the correct match in this
configuration.
(m=4, m_C=14)
PSNR Correct Match
58.2 dB Yes
(m=4, m_C=24)
63.5 dB Yes
(m=5, m_C=12)
49.7 dB No
(m=5, m_C=14)
50.8 dB Yes
(m=5, m_C=16)
60.2 dB Yes
High-quality result.
(m=5, m_C=24)
65.9 dB Yes
Very accurate.
Corrected SSMAC* (m=5)
(m=5, m_C=12)
49.7 dB No
Still insufficient.
(m=5, m_C=14)
58.4 dB Yes
(m=5, m_C=16)
63.6 dB Yes
Very good.
(m=5, m_C=24)
71.7 dB Yes
Important Observation
Notice a pattern:
When (m_C=12)
Correct Match = No
Thus:
[
m_C = 14
]
Architecture PSNR
Strollo CN 75.8 dB
SSMAC*(m=5,mC=24) 71.7 dB
[
m_C \ge 14
]
Effect of Correction
For example:
[
m=4,;m_C=14
]
PSNR improves:
[
50.8 \rightarrow 58.2\text{ dB}
]
and
[
m=5,;m_C=14
]
improves:
[
50.8 \rightarrow 58.4\text{ dB}
]
Final Takeaway
The proposed SSMAC can successfully perform template matching with large power savings,
provided that at least 14 bits of operand (C) are retained. The error-correction technique further
improves PSNR by roughly 7–8 dB, making the approximate MAC suitable for practical vision
applications.
Figure 10
Caption:
"(a) 'Onion' template and (b) 'Peppers' image and template matching for three different
approximate MACs."
This figure demonstrates the template matching application discussed in the previous section.
Figure 10(a)
It is an image of an onion.
Template
Onion
This is the pattern the algorithm is trying to locate inside the larger image.
Figure 10(b)
Yellow Rectangle
Label:
[
\text{SSMAC}(m=4,m_C=14)
]
and
[
\text{SSMAC}^*(m=4,m_C=14)
]
Cyan Rectangle
Label:
[
\text{MACISH}_1
]
Correct Match = No
in Table V.
Correct Matching
SSMAC
Finds Onion
Incorrect Matching
MACISH1
Wrong Position
Even if two architectures have similar PSNR values, one may still fail the matching task.
Therefore:
Correct Match
Line 1
"MACs with (n=8) and (n_C=24) bits are employed to perform the sum of products in (28)."
[
n=8
]
and
[
n_C=24
]
[
C(x,y)
\sum
(I-\mu_I)(T-\mu_T)
]
Line 2
Table V summarizes:
PSNR
"The second column reports the PSNR computed by comparing the covariance (C(x,y)) obtained
with the exact calculation with the one computed with the approximate MACs."
[
C(x,y)
]
generated by:
Exact MAC
[
C_{exact}(x,y)
]
and
Approximate MAC
[
C_{approx}(x,y)
]
Line 4
"As shown, the proposed segmented MACs are able to offer a PSNR up to 60 dB without error
correction"
Without correction:
[
D=0
]
[
PSNR \approx 60\text{ dB}
]
This indicates very good agreement with the exact covariance computation.
From Table V:
Example:
[‘
gives:
[
60.2\text{ dB}
]
Line 5
[
D \neq 0
]
Example:
[
SSMAC^*(m=5,m_C=24)
]
achieves:
[
71.7\text{ dB}
]
Line 6
Strollo CN [14]
PSNR:
[
75.8\text{ dB}
]
IBAM [22]
PSNR:
[
90.2\text{ dB}
]
Line 7
PSNR:
[
49.2\text{ dB}
]
and
MACISH(_1)
PSNR:
[
49.1\text{ dB}
]
MACISH(_1) 49.1 dB No
Although the PSNR values are fairly close, only the SSMAC architectures correctly locate the onion.
Main Takeaway
Figure 10 demonstrates that the proposed SSMAC, especially with error correction:
Line 1
"The third column in Table V reports whether a correct match has been obtained or not."
Yes
No
Line 2
"It can be observed that all the SSMACs allow to obtain a correct match"
The proposed SSMAC architectures generally succeed in locating the template correctly.
This means the approximation error is not large enough to alter the position of the maximum
correlation.
Line 3
"with the exception of the two versions with: (m=4,m_C=12) and (m=5,m_C=12)."
Configuration 1
[
m=4,\quad m_C=12
]
Configuration 2
[
m=5,\quad m_C=12
]
These use the smallest (m_C) value.
[
\text{Error} \uparrow
]
Line 4
"The architectures [12] L=4, [21] ISH_1 and Kulkarni [10] are also unable to obtain the right
match."
Qiqieh [12]
[
L=4
]
MACISH(_1)
Reference [21]
Kulkarni [10]
These architectures produce enough error to move the correlation peak away from the correct
location.
Line 5
"The Fig. 10(b) represents the obtained matching for SSMAC(4,14), SSMAC(4,14), and [21] ISH_1."*
SSMAC(4,14)
Correct match.
SSMAC*(4,14)
MACISH(_1)
Incorrect match.
Line 6
Approximate MAC
(Multiply-Accumulate)
architecture.
Line 7
[
Y=A\times B+C
]
A is segmented
B is segmented
C is segmented
This is called:
Static Segmentation
Line 8
Line 9
Operand A
Segmented
Operand B
Segmented
Operand C
Segmented
Line 10
Example:
Instead of:
[
20\text{-bit adder}
]
[
12\text{-bit adder}
]
or
[
14\text{-bit adder}
]
which saves:
Area
Power
Line 11
[
D
]
which:
Line 12
Accuracy
Area
Power
Line 13
Parameter:
[
m
]
A
B
Larger (m):
Better accuracy
More hardware
Smaller (m):
Lower power
More error
Line 14
"while the second one controls the segmentation on C and the adder length."
Parameter:
[
m_C
]
controls:
and
Adder width
Larger (m_C):
Higher accuracy
Larger adder
Smaller (m_C):
Lower power
Smaller area
Line 15
"Analysis of error metrics and VLSI synthesis results in 28 nm CMOS technology are presented."
Accuracy
using:
NM
NMED
MRED
PRED
Hardware Cost
using:
Delay
Area
Power
in:
[
28\text{ nm CMOS}
]
technology.
Line 16
"The obtained results show that the proposed approximate MACs outperform the state of the art"
The authors claim that their design performs better than existing approximate MACs.
Line 17
Up to approximately:
[
66%
]
Up to approximately:
[
50%
]
While Maintaining
Good NMED
Good MRED
Line 18
Image Filtering
Gaussian blur
Motion blur
Template Matching
Line 19
"that proposed circuits are good candidates in applications where their error performances are
acceptable."
The SSMAC should be used in applications that can tolerate a small amount of error.
Examples:
✅ Image processing
✅ Computer vision
✅ Multimedia systems
❌ Financial calculations
❌ Cryptography
5. Achieves:
o Image filtering
o Template matching
The authors conclude that the proposed SSMAC offers one of the best accuracy–power trade-offs
among the approximate MAC architectures they evaluated.