MSC8144E Reference Manual, Rev. 3
2-8
Freescale
Semiconductor
SC3400 Core Overview
2.2 Programming Model
The three main units of the SC3400 DSP core programming model are the Address Generation
Unit (AGU), the Data Arithmetic Logic Unit (Data ALU), and the PSEQ (see Figure 2-3). This
section gives a brief overview of each of these units.
2.2.1 AGU Programming Model
The address registers can be programmed for linear, modulo (regular or multiple wrap-around),
and bit-reverse addressing. Automatic updating of address registers is available when address
register indirect addressing is used.
Address Registers (R[0–15]). The sixteen 32-bit address registers R[0–15] contain
addresses or general-purpose data. These are 32-bit read/write registers. The 32-bit
address in a selected address register is used in calculating the effective address of an
operand. The contents of an address register point directly to memory or are used as an
offset. R[0–15] are composed of two separate banks, a lower bank (R[0–7]) and an upper
bank (R[8–15]). The lower bank registers can be used for linear, modulo, or bit reverse
addressing. An upper bank register can be used in linear addressing modes only if the
respective register in the lower bank is not using modulo addressing mode. In modulo
addressing mode, each lower bank register Rn is assigned a corresponding base address
register Bn. Registers B[0–7] and R[8–15] are mapped to the same physical register,
respectively. Therefore, for example, R8 is available only if R0 is not being used in
modulo addressing, since this requires the base address register B0. See Section 2.2.2,
Data Arithmetic Logic Programming Model, on page 2-11 for further information.
If an address register is updated, one of the modifier control registers (MCTL) specifies
the type of update arithmetic. Offset registers (Ni) are used for post-addition and indexing
by offset. The address register modification is performed by either of the two AAUs.
Stack Pointer Registers (NSP, ESP). The MSC8144E has two stack pointer registers: the
Normal Stack Pointer (NSP) and the Exception Stack Pointer (ESP). These 32-bit registers
are used implicitly in all PUSH and POP instructions. Only one stack pointer is active at a
time, according to the mode:
— In Normal mode, the NSP is used.
— In Exception mode, the ESP is used.
The Status Register EXP bit determines the active mode. The active stack pointer (SP) is
used explicitly for memory references in the address register indirect modes. The stack
pointers point to the next unoccupied location in the stacks. They are post-incremented on
all the implicit PUSH operations and pre-decremented on all the implicit POP operations.
Note:
You must explicitly initialize both stack pointer registers after reset.
Summary of Contents for MSC8144E
Page 1: ...MSC8144E Reference Manual Quad Core Media Signal Processor MSC8144ERM Rev 3 July 2009 ...
Page 48: ...MSC8144E Reference Manual Rev 3 xlviii Freescale Semiconductor ...
Page 86: ...MSC8144E Reference Manual Rev 3 1 38 Freescale Semiconductor Overview ...
Page 168: ...MSC8144E Reference Manual Rev 3 3 60 Freescale Semiconductor External Signals ...
Page 242: ...MSC8144E Reference Manual Rev 3 5 26 Freescale Semiconductor Reset ...
Page 314: ...MSC8144E Reference Manual Rev 3 8 24 Freescale Semiconductor General Configuration Registers ...
Page 414: ...MSC8144E Reference Manual Rev 3 10 14 Freescale Semiconductor MSC8144E SC3400 DSP Subsystem ...
Page 452: ...MSC8144E Reference Manual Rev 3 11 38 Freescale Semiconductor Internal Memory Subsystem ...
Page 520: ...MSC8144E Reference Manual Rev 3 12 68 Freescale Semiconductor DDR SDRAM Memory Controller ...
Page 1070: ...MSC8144E Reference Manual Rev 3 21 28 Freescale Semiconductor Timers ...