t0 must always return 0, and writes to it must always be ignored (or
overwritten before the next instruction). You're corrupted program counter
might be because you're using physical registers which aren't actually
there, accessing beyond the end of an array and reading/writing something
random.

The way zero registers are handled has been something I've wanted to change
in the past, and I had a plan to make the whole concept obsolete. It never
happened, though.

Gabe

On Thu, Jan 8, 2015 at 8:06 AM, Dutu, Alexandru via gem5-dev <
[email protected]> wrote:

> Hi everyone,
>
> I have been trying to run with SMT enabled in SE mode, using x86. It seems
> ZeroRegister gets mapped to index 16 for the first hardware thread, which
> is also register t0 that is used by the microcode. For the following
> hardware threads the ZeroRegister will get mapped to 54, 92, 130 and so on,
> as there are 16 architectural registers and 22 microcode and additional
> registers which leads to 38 total registers per hardware thread. All these
> registers are renamed and because of all this the following assert(prev_reg
> == zeroReg) fails in SimpleRenameMap::rename.
>
> Mapping the ZeroReg to some huge index into the register file introduces
> new issues as t0 is not maintained 0 anymore and effective address
> computations  which include t0 will be wrong. On the other hand if the
> rename logic is modified to keep the initial mapping to the physical
> register file for register index 16 of all hardware threads (mapped to 16,
> 54, 92 etc.) the program counter gets corrupted to 0 and a fault is
> produced as it tries to execute from address 0.
>
> From the observed behavior it seems that register t0 needs to play the
> role of a zero register with the current microcode implementation. Can
> somebody please comment if this is required?
>
> Thank you,
> Alex
> _______________________________________________
> gem5-dev mailing list
> [email protected]
> http://m5sim.org/mailman/listinfo/gem5-dev
>
_______________________________________________
gem5-dev mailing list
[email protected]
http://m5sim.org/mailman/listinfo/gem5-dev

Reply via email to