Instruction Set Restrictions
SC140 DSP Core Reference Manual
6-17
6.3.4.1 Implicit Push/Pop Memory Timing
Instructions with implicit push/pop memory access (such as JSR, RTE, and so on) execute the memory
access after all other accesses in the execution set have been performed.
Delayed instructions with implicit push/pop memory access (such as JSRD, RTED, and so on) access
memory after all other accesses in the delay slot have been performed.
Consequently, these instructions do not cause contention when they are executed in parallel with other
instructions that access memory.
6.3.4.2 Memory Stall Conditions
The SC140 can generate three memory accesses per cycle consisting of one program fetch and two data
accesses. The extent to which the specific memory on-chip configuration can support various kinds of
simultaneous accesses to memory modules may vary from chip to chip. The memory system identifies
access combinations (usually by means of a bus controller) that cannot be supported simultaneously. The
memory system stalls the SC140, which results in the serialization of the contending accesses. For
example, a stall occurs when a memory unit that can support only one access at a time receives a
simultaneous request for two data accesses (or for one program access and one data access). Stalls can also
occur if the memory itself is not in a zero wait-state, which may be a characteristic of the memory
technology (such as flash or DRAM), or may occur with off-chip memory.
6.4 Instruction Set Restrictions
This section describes the various SC140 assembly programming restrictions. At assembly time, the
assembler marks errors in the source code. Assembly does not take place if errors exist. The restrictions
described in this section should be taken into consideration when writing software for the SC140 in order
to ensure that applications execute correctly and produce expected results.
Various terms and abbreviations appear frequently in this section. These are defined elsewhere in this
manual as follows:
The loop count (LC) and start address (SA) registers are described in
Section 5.2.1, “Hardware Loop
Programming Model,”
on page 5-12.
The execution set addresses LA, LA-1, LA-2 (Last loop address) and SA, SA+1, SA+2 (Loop start
address) are defined in
Section 5.2.2, “Assembly Syntax for Hardware Loops,”
on page 5-13.
The term
active loop
is defined in
Section 5.2.4, “Loop Nesting,”
on page 5-15.
The following instructions are grouped under the term
move-like instructions
as follows:
All explicit move instructions
Pop/push instructions
Bit mask instructions (BMSET/BMCLR/BMCHG/BMTSET/BMTSTC/BMTSTS)
A subset of the move-like instructions is used in the following cases:
When register sources are restricted, the move-like instructions exclude the pop instructions.
When register destinations are restricted, the move-like instructions exclude the push and bit mask
test instructions.