Performance Considerations
6-56
6.4.3
Memory Considerations
The ’C67x has a memory configuration typical of a DSP, with program memory
in one physical space and data memory in another physical space. Data loads
and program fetches have the same operation in the pipeline, they just use dif-
ferent phases to complete their operations. With both data loads and program
fetches, memory accesses are broken up into multiple phases. This enables
the ’C67x to access memory at a high speed. These phases are shown in
Figure 6–29.
Figure 6–29. Pipeline Phases Used During Memory Accesses
Program memory accesses use these pipeline phases
Data load accesses use these pipeline phases
PG
PS
PW
PR
DP
E1
E2
E3
E4
E5
To understand the memory accesses, compare data loads and instruction
fetches/dispatches. The comparison is valid because data loads and program
fetches operate on internal memories of the same speed on the ’C67x and per-
form the same types of operations (listed in Table 6–33) to accommodate
those memories. Table 6–33 shows the operation of program fetches pipeline
versus the operation of a data load.
Table 6–33. Program Memory Accesses Versus Data Load Accesses
ÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁ
Á
ÁÁÁÁÁÁÁÁÁÁÁÁÁÁ
Á
Á
ÁÁÁÁÁÁÁÁÁÁÁÁÁÁ
Á
ÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁ
Operation
ÁÁÁÁ
Á
ÁÁ
Á
Á
ÁÁ
Á
ÁÁÁÁ
Program
Memory
Access
Phase
ÁÁÁÁÁ
Á
ÁÁÁ
Á
Á
ÁÁÁ
Á
ÁÁÁÁÁ
Data
Load
Access
Phase
ÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁ
ÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁ
Compute address
ÁÁÁÁ
ÁÁÁÁ
PG
ÁÁÁÁÁ
ÁÁÁÁÁ
E1
ÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁ
ÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁ
Send address to memory
ÁÁÁÁ
ÁÁÁÁ
PS
ÁÁÁÁÁ
ÁÁÁÁÁ
E2
ÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁ
Á
ÁÁÁÁÁÁÁÁÁÁÁÁÁÁ
Á
ÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁ
Memory read/write
ÁÁÁÁ
Á
ÁÁ
Á
ÁÁÁÁ
PW
ÁÁÁÁÁ
Á
ÁÁÁ
Á
ÁÁÁÁÁ
E3
ÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁ
Á
ÁÁÁÁÁÁÁÁÁÁÁÁÁÁ
Á
ÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁ
Program memory: receive fetch packet at CPU boundary
Data load: receive data at CPU boundary
ÁÁÁÁ
Á
ÁÁ
Á
ÁÁÁÁ
PR
ÁÁÁÁÁ
Á
ÁÁÁ
Á
ÁÁÁÁÁ
E4
ÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁ
Á
ÁÁÁÁÁÁÁÁÁÁÁÁÁÁ
Á
ÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁ
Program memory: send instruction to functional units
Data load: send data to register
ÁÁÁÁ
Á
ÁÁ
Á
ÁÁÁÁ
DP
ÁÁÁÁÁ
Á
ÁÁÁ
Á
ÁÁÁÁÁ
E5
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 6.4.3.1,
Memory Stalls.