BBranch Using a Displacement

Pipeline

 

 

 

 

 

 

 

 

 

Target Instruction

 

 

 

 

Pipeline

 

 

 

 

 

 

 

 

 

 

E1

 

PS

 

PW

PR

DP

DC

E1

 

 

Stage

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

Read

 

 

 

 

 

 

 

 

 

 

 

 

Written

 

 

 

 

 

 

 

 

 

 

 

Branch

 

 

 

 

 

 

 

 

n

 

 

Taken

 

 

 

 

 

 

 

 

 

 

 

Unit in use

.S

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

Instruction Type

Branch

 

 

 

 

 

 

 

 

 

Delay Slots

5

 

 

 

 

 

 

 

 

 

 

Example

Table 3−13 gives the program counter values and actions for the following

 

code example.

 

 

 

 

 

 

 

 

 

 

0000

0000

 

B

.S1

LOOP

 

 

 

 

0000

0004

 

ADD

.L1

A1, A2, A3

 

 

 

 

0000

0008

ADD

.L2

B1, B2, B3

 

 

 

 

0000

000C

LOOP:

MPY

.M1X A3, B3, A4

 

 

 

 

0000

0010

SUB

.D1

A5, A6, A6

 

 

 

 

0000

0014

 

MPY

.M1

A3, A6, A5

 

 

 

 

0000

0018

 

MPY

.M1

A6, A7, A8

 

 

 

 

0000

001C

 

SHR

.S1

A4, 15, A4

 

 

 

 

0000

0020

 

ADD

.D1

A4, A6, A4

 

 

 

Table 3−13. Program Counter Values for Example Branch Using a Displacement

 

 

 

 

 

 

 

 

 

 

 

Cycle

Program Counter Value

Action

 

 

 

 

 

 

 

 

 

 

 

 

 

 

Cycle 0

0000

0000h

 

 

Branch command executes

 

 

 

 

 

 

 

 

 

 

(target code fetched)

 

 

 

Cycle 1

0000

0004h

 

 

 

 

 

 

 

 

Cycle 2

0000

000Ch

 

 

 

 

 

 

 

 

Cycle 3

0000

0014h

 

 

 

 

 

 

 

 

Cycle 4

0000

0018h

 

 

 

 

 

 

 

 

Cycle 5

0000

001Ch

 

 

 

 

 

 

 

 

Cycle 6

0000

000Ch

 

 

Branch target code executes

 

 

Cycle 7

0000

0014h

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

3-70

Instruction Set

SPRU733

Page 130
Image 130
Texas Instruments TMS320C67X/C67X+ DSP manual Delay Slots Example, Cycle Program Counter Value Action