edited by
15,580 views
37 votes
37 votes

Register renaming is done in pipelined processors:

  1. as an alternative to register allocation at compile time
  2. for efficient access to function parameters and local variables
  3. to handle certain kinds of hazards
  4. as part of address translation
edited by

2 Answers

Best answer
58 votes
58 votes

Register renaming is done to eliminate WAR (Write after Read) and WAW (Write after Write) dependency between instructions which could have caused pipieline stalls. Hence, (C) is the answer.

Example:

I1: Read $A$ to $B$
I2: Write $C$ to $A$

Here, there is a WAR dependency and pipeline would need stalls. In order to avoid it register renaming is done and 

Write $C$ to $A$
will be 
Write $C$ to $A$' 

WAR dependency is actually called anti-dependency and there is no real dependency except the fact that both uses same memory location. Register renaming can avoid this. Similarly WAW also. 

people.ee.duke.edu/~sorin/ece252/lectures/4.2-tomasulo.pdf

edited by
3 votes
3 votes
→ Register renaming is used to eliminate hazards that arise due to WAR (Write After Read) and WAW(Write After Write) dependencies.
Answer:

Related questions

35 votes
35 votes
6 answers
2
Kathleen asked Oct 9, 2014
12,511 views
Relative mode of addressing is most relevant to writing:Co – routinesPosition – independent codeShareable codeInterrupt Handlers
34 votes
34 votes
1 answer
4
Arjun asked Sep 25, 2014
19,292 views
In the IPv4 addressing format, the number of networks allowed under Class $C$ addresses is:$2^{14}$$2^{7}$$2^{21}$$2^{24}$