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
