MARSS/PTLsim has branch prediction and speculative execution. When we
rename for false dependencies, it's important to track what
instructions were correctly predicted and and executed/executing and
which ones are still ambiguous. The rename stage works directly with
the specRRT and when the instruction is known to be predicted
correctly, the commitRRT is updated. This way, in the event of a a
branch misprediction, the misspeculated instructions can be annulled
simply by replacing the the specRRT with the commitRRT and flushing
the pipeline. In reality PTLsim doesn't have to flush the entire
pipeline, just the misspeculated instructions. The process is
described in chapter 20.3.2 of the manual.

As for register renaming, take a look at section 18.4.1. It's a simple
approach with an architectural to physical map and a list of free
physical registers. When an uop is renamed, its destination register
is renamed and mapped to one of the free physical registers. That way,
when a newer instruction that uses the previous result as an operand,
it uses the physical register pointed to by the RRT (map).

Hope that's clear

On 17 May 2012 17:41, Xin Tong <[email protected]> wrote:
> I am reading the OOO simulation register renaming code. There are a couple
> of things i do not understand
>
> 1. There seem to be 2 register rename table, specRRT and commitRRT, why 2
> tables ?
>
> 2. It seems that the architecture register (i.e. uop.ra, uop.rb, etc) is
> used to index into the specRRT in the rename stage to get the corresponding
> physical register. From what iĀ understand, the whole purpose of register
> renaming is to have a single arhcitectural register mapped to multipl
> physical register in order to eliminate anti and output dependence. what is
> this doing above seem to be a 1 to 1 mapping to me ? may be i am looking at
> the wrong code ...
>
> Helps are greatly appreciated.
>
> Thanks
>
> Xin
>
> _______________________________________________
> http://www.marss86.org
> Marss86-Devel mailing list
> [email protected]
> https://www.cs.binghamton.edu/mailman/listinfo/marss86-devel
>

_______________________________________________
http://www.marss86.org
Marss86-Devel mailing list
[email protected]
https://www.cs.binghamton.edu/mailman/listinfo/marss86-devel

Reply via email to