The Gateway to Computer Science Excellence
First time here? Checkout the FAQ!
+22 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
asked in CO & Architecture by Boss (18.2k points)
edited by | 4.7k views

1 Answer

+40 votes
Best answer

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.


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.

answered by Veteran (400k points)
edited by
1. I understand the output of the example on the 2nd page of the pdf but steps are not given for it. Can you explain how that renaming is done with the help of that table?

2. Also is Tomasulo algo important?

3. Can you also explain example on page:

4. Any resource, especially reference book explaining this in detail?

By using register renaming can we eliminate all stalls created by a name dependency?

I think NO, bcz for a large program it requires large number of registers which may be  limited to some processor.

reena why are saying register renaming does not eliminate all name dependency in all this type of question if you read some where then share  reference

Related questions

Quick search syntax
tags tag:apple
author user:martin
title title:apple
content content:apple
exclude -tag:apple
force match +apple
views views:100
score score:10
answers answers:2
is accepted isaccepted:true
is closed isclosed:true
49,443 questions
53,648 answers
70,910 users