Presentation is loading. Please wait.

Presentation is loading. Please wait.

Datorteknik DelayedBranch bild 1 Delayed Branch All problems solved? NO, what will happen if...... b loop add $4 $6 $1... loop sub.

Similar presentations


Presentation on theme: "Datorteknik DelayedBranch bild 1 Delayed Branch All problems solved? NO, what will happen if...... b loop add $4 $6 $1... loop sub."— Presentation transcript:

1 Datorteknik DelayedBranch bild 1 Delayed Branch All problems solved? NO, what will happen if...... b loop add $4 $6 $1... loop sub

2 Datorteknik DelayedBranch bild 2 Branch logic Sgn/Ze extend Zero ext. ALU A B 31 0 4 + + = = = = B loopAdd

3 Datorteknik DelayedBranch bild 3 Branch logic Sgn/Ze extend Zero ext. ALU A B 31 0 4 + + = = = = B loopAddsub

4 Datorteknik DelayedBranch bild 4 Delayed Branch - Throughput might decrease, (nop). - Assembler/Compiler dependent. + Keep critical path short

5 Datorteknik DelayedBranch bild 5 All problems solved now? NO, what will happen if........ bal loop add $4 $6 $1 xor.... loop: sub..... j $ra

6 Datorteknik DelayedBranch bild 6 Branch logic Sgn/Ze extend Zero ext. ALU A B 31 0 4 + + = = = = > ADDR 0x00400000 bal loop bal loop ADDR 0x00400004

7 Datorteknik DelayedBranch bild 7 Branch logic Sgn/Ze extend Zero ext. ALU A B 31 0 4 + + = = = = ADDR 0x00400000 bal loop > ADDR 0x00400004 add ADDR 0x00400004 bal loop add

8 Datorteknik DelayedBranch bild 8 Branch logic Sgn/Ze extend Zero ext. ALU A B 31 0 4 + + = = = = ADDR 0x00400004 bal loop add ADDR 0x00400000 bal loop ADDR 0x00400004 add >loop: sub sub

9 Datorteknik DelayedBranch bild 9 Branch logic Sgn/Ze extend Zero ext. sub.. j $ra ALU A B 31 0 4 + + = = = = ADDR 0x00400004 jr $ra

10 Datorteknik DelayedBranch bild 10 Branch logic Sgn/Ze extend Zero ext. Oooh not again!!! ALU A B 31 0 4 + + = = = = 0x00400004 add

11 Datorteknik DelayedBranch bild 11 Branch logic Sgn/Ze extend Zero ext. ALU A B 31 4 4 + + = = = = ADDR 0x00400004 ADDR 0x00400008 Continue at 0x00400008 bal loop add sub

12 Datorteknik DelayedBranch bild 12 Branch logic Sgn/Ze extend Zero ext. sub.. j $ra ALU A B 31 0 4 + + = = = = ADDR 0x00400008 jr $ra

13 Datorteknik DelayedBranch bild 13 All Hazards Fixed but: One “delayed branch” slot

14 Datorteknik DelayedBranch bild 14 What about “delayed Branch” Can we avoid it? How?

15 Datorteknik DelayedBranch bild 15 IM Reg DMReg Delayed Branch Direct Branch Branch Logic IM Reg DMReg Branch Logic

16 Datorteknik DelayedBranch bild 16 Branch logic Sgn/Ze extend Zero ext. ALU A B 31 0 4 + + = = = = Delayed Branch

17 Datorteknik DelayedBranch bild 17 Branch logic Sgn/Ze extend Zero ext. ALU A B 31 0 4 + + = = = = Branch logic Direct Branch

18 Datorteknik DelayedBranch bild 18 What about the instruction set? beq $t0 $t0 label? jr $ra? NO, DE is not in path! b label? OK, but the new branch logic needs an ALU to compute the address

19 Datorteknik DelayedBranch bild 19 Different branch logic? Can both branch types coexist? Yes, no problem, but: Old type still uses “delay slot”


Download ppt "Datorteknik DelayedBranch bild 1 Delayed Branch All problems solved? NO, what will happen if...... b loop add $4 $6 $1... loop sub."

Similar presentations


Ads by Google