Slide 18 of 67
Notes:
If you look at the output of the A accumulator, it goes back to the multiplier and the adder. The output of the B accumulator can only feed back to the adder. This is useful feature. If we have an algorithm in which we want to make an assignment such as to have a coefficient times some memory value plus a memory value, and we want to add that to one of the accumulators, it begins to look like a great many operations. With this design of the multiplier/adder, we can use one data bus for one operand, and another data bus for the other operand. We can bring the coefficient in on the program bus, and perform the addition and assign that to the A accumulator. Since the A accumulator can be fed back to the multiplier, we can do this multiply and have the MAC result accumulate in the B accumulator. The point is that with two accumulators we can accumulate a sum in one accumulator, and a different sum in the other accumulator. This enables computation of two additions in the same cycle.