Revision notes for Advanced Computer Architecture

2. Pipeline SPARC Microprocessor


2014
What is dynamic branch prediction?

2016
How do you code a loop of three instructions
	XXX
	YYY
	ZZZ
to use Bicc,a?

2018
What is a critical path? How is it related to critical paths in project management?

2019
Why can't we give priority to instruction fetch?

2021
What are the advantages of a single Princeton style main memory?

2024
Identify all true data dependencies in the following code:
	ADD   R1, R2, R3
	LSR   R3, 4,  R4
	SETHI 50100,  R1
	XOR   R3, -1, R5
	ANDN  R3, R6, R7
	ASR   R4, 12, R8
	SUB   R7, R5, R4
you should find six true dependencies (there are also two false dependencies).

2026
Which of the above data dependencies will cause a hazard on the processor on page 2017 given that the register file is transparent?

2027
Which of the above data dependencies will cause a hazard on the processor on page 2028 (the register file is of course transparent)?

2029
Which of the above data dependencies will cause a hazard on the processor on page 2030 (the register file is of course transparent)?

2031
How many cycles will the following code take when executing on the processor shown on page 2030?
	LD  [R2+3], R1
	ADD R1, 5, R13
	AND R13, 255, R14
	AND R4, 768, R15
	OR  R14, R15, R16

How many cycles would it take assuming that the processor supports delayed load? Why will the result with a delayed load be different from the result with a standard load?

Re-arrange the code such that the original semantics are maintained when executing on a machine supporting delayed load. You should find that the re-arranged code will run faster on the original machine - why?

2039
A new cheaper SPARC doesn't support SETHI. What is the effect on the CPI for the pipelined machine if each SETHI instruction is replaced with:
	ADD R0, n1, Rx
	SLL Rx, 10, Rx
	ADD Rx, n2, Rx
	SLL Rx, 10, Rx
Note that the total number of instructions per task will change. Consider an original sequence of 1000 instructions How many instructions will be run if SETHI instructions are replaced?

Has the CPI value improved? Can you explain this change?

Has the performance of the machine improved? Can you explain this in relation to the power of the instruction set?