Computation Unit
2-9MSP50C6xx Architecture
Figure 2–4. Overview of the Arithmetic Logic Unit
ALU INPUTS
ALU-A 16-bit
- selects between ...
all 0’s
Offset Accumulator Register
Data Memory
ALU-B 16-bit
- selects between ...
(PH)
(PL)
ARITHMETIC LOGIC UNIT
performs arithmetic, comparison, and logic
ALU OUTPUTS
THE ACCUMULATOR BLOCK
Accumulator Register OFFSET Accumulator Register
AC0, AC1, AC2, AC3, AC4, AC5, AC6, AC7, AC8,
AC9, AC10, AC11, AC12, AC13, AC14, AC15
16 × 16-bit registers ... 16 × 16-bit registers ...
Program Memory
Product High†
Product Low†
all 0’s
Accumulator Register
AC16, AC17, AC18, AC19, AC20, AC21, AC22,
AC23, AC24, AC25, AC26, AC27, AC28, AC29,
AC30, AC31
†
For multiply-accumulate operations.
2.2.2.2 Accumulator Pointer Block
There are four 5-bit registers which are used to store pointers to members of
the accumulator block. The accumulator pointers (AP0, AP1, AP2, AP3) are
used in two modes: 1) as a direct reference to one of 32, or 2) as an indirect
reference. The indirect reference includes a direct reference to one of 16 and
an offset (optional) which increments the reference by 16: AC(N+16). For
example, AC0 has its offset register located at AC16. AC1 has an offset
register located at AC17, and so on. The block is circular: address 31, when
incremented, results in address 0. The offsets of AC16 through AC31,
therefore, are AC0 through AC15, respectively (see Figure 2–5). Indirect
referencing by the AP pointers is supported by most of the C6xx’s
accumulator-referenced instructions.