Performance Considerations
4-61
Pipeline
SPRU733
Depending on the type of memory and the time required to complete an
access, the pipeline may stall to ensure proper coordination of data and
instructions. This is discussed in section 4.4.3.1.
In the instance where multiple accesses are made to a single ported memory,
the pipeline will stall to allow the extra access to occur. This is called a memory
bank hit and is discussed in section 4.4.3.2.
4.4.3.1 Memory Stalls
A memory stall occurs when memory is not ready to respond to an access from
the CPU. This access occurs during the PW phase for a program memory
access and during the E3 phase for a data memory access. The memory stall
causes all of the pipeline phases to lengthen beyond a single clock cycle,
causing execution to take additional clock cycles to finish. The results of the
program execution are identical whether a stall occurs or not. Figure 4
−
32
illustrates this point.
Figure 4
−
32. Program and Data Memory Stalls
Clock cycle
Fetch
packet
(FP)
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
ÁÁÁ
ÁÁÁ
n
PG
PS
PW
PR
DP
DC
E1
E2
ÉÉ
ÉÉ
E3
E4
E5
ÁÁÁ
ÁÁÁ
n+1
ÁÁÁ
ÁÁÁ
PG
PS
PW
PR
DP
DC
E1
E2
E3
E4
ÁÁÁ
ÁÁÁ
n+2
ÁÁÁ
ÁÁÁ
ÁÁ
ÁÁ
PG
PS
PW
PR
DP
Program
DC
E1
E2
E3
ÁÁÁ
ÁÁÁ
n+3
PG
PS
PW
PR
memory stall
DP
DC
Data
E1
E2
ÁÁÁ
ÁÁÁ
n+4
PG
PS
ÉÉÉ
ÉÉÉ
PW
PR
DP
memory stall
DC
E1
ÁÁÁ
n+5
PG
PS
PW
PR
DP
DC
ÁÁÁ
ÁÁÁ
n+6
ÁÁÁ
ÁÁÁ
PG
PS
PW
PR
DP
ÁÁÁ
ÁÁÁ
n+7
ÁÁÁ
ÁÁÁ
ÁÁÁ
ÁÁÁ
PG
PS
PW
PR
ÁÁÁ
ÁÁÁ
n+8
ÁÁÁ
ÁÁÁ
ÁÁÁ
ÁÁÁ
ÁÁÁ
ÁÁÁ
PG
PS
PW
ÁÁÁ
ÁÁÁ
n+9
ÁÁÁ
ÁÁÁ
ÁÁÁ
ÁÁÁ
ÁÁÁ
ÁÁÁ
ÁÁ
ÁÁ
ÁÁÁ
ÁÁÁ
ÁÁÁ
ÁÁÁ
ÁÁ
ÁÁ
PG
PS
ÁÁÁ
n+10
ÁÁÁ
ÁÁÁ
ÁÁÁ
ÁÁ
ÁÁÁ
ÁÁÁ
ÁÁ
ÁÁÁ
PG