C6x programming (1/3)
C6x code development
Programming levels ◼ C (for the C/C++ compiler) ◼ Linear assembly (for the assembly optimizer ) units and registers may be specified ◼ Assembly (for the assembler) units and registers are specified (* non parallel assembly : instruction latency is taken into account) * parallel assembly : instruction latency is taken into account + instructions are put in parallel
Pipeline ◼ C30: | fetch | decode | read | execute | ◼ C5x: | prefetch+fetch | decode | access+read | execute | ◼ C6x: | 4 phases | 2 phases | 1 to 5 phases |
Pipeline (just to have an idea on what happens in the various phases…)
◼ The number of execute phases (E1... E5) depends on the instruction
Pipeline and branches ◼ The branch target is fetched during E1 (only one E phase is used), so ◼ the branch is delayed by 5 cycles [spru189e]
Recommend
More recommend