> On 2011-01-17 00:44:14, Gabe Black wrote:
> > It's great that this is contained within ARM and won't affect other ISAs. 
> > How does it affect performance for ARM? Since this is frequently executed 
> > code it would be a good idea to quantify what impact there is and also see 
> > if it can be minimized.
> > 
> > For instance, in the instructions that change itstate, why not actually 
> > have a nextItstate variable which will get moved into itstate on update? 
> > That sounds sort of like what you have, except you could make nextItstate 
> > always the nextItstate. If it's 0 it's inert, and if it isn't it gets 
> > advanced as per the rules. Then you don't need any special handling as far 
> > as whether it's valid, injecting new values, etc.
> > 
> > Also, control flow is supposed to be illegal inside or into an IT block, 
> > right? Why do you need to handle that case in a particular way? As long as 
> > the simulator doesn't melt down it should (I'm guessing) be ok to do 
> > whatever is easiest.
> 
> Ali Saidi wrote:
>     There hasn't been any appreciable difference in performance. After we get 
> the o3 cpu working with arm we're planning to do some profiling to see where 
> it can be sped up. It is a bit slower than Alpha, but it's the same speed as 
> SPARC. You're correct that flow control is illegal inside an IT block, but 
> interrupts and faults are not. The mechanism exists to handle faults that 
> occur in the middle of an IT block.
>     
>

Have you checked with something like the simple timing CPU? This code would 
still get used there, and there would be a lot less other stuff to mask the 
overhead. One way or the other since this is contained within ARM (which is a 
big plus) and is most likely functionally correct, we can do performance tuning 
and/or simplification later.


- Gabe


-----------------------------------------------------------
This is an automatically generated e-mail. To reply, visit:
http://reviews.m5sim.org/r/421/#review742
-----------------------------------------------------------


On 2011-01-12 09:11:45, Ali Saidi wrote:
> 
> -----------------------------------------------------------
> This is an automatically generated e-mail. To reply, visit:
> http://reviews.m5sim.org/r/421/
> -----------------------------------------------------------
> 
> (Updated 2011-01-12 09:11:45)
> 
> 
> Review request for Default, Ali Saidi, Gabe Black, Steve Reinhardt, and 
> Nathan Binkert.
> 
> 
> Summary
> -------
> 
> O3: Fix itstate prediction and recovery.
> 
> Any change of control flow now resets the itstate to 0 mask and 0 condition,
> except where the control flow alteration write into the cpsr register. These
> case, for example return from an iterrupt, require the predecoder to recover
> the itstate.
> 
> As there is a window of opportunity between the return from an interrupt
> changing the control flow at the head of the pipe and the commit of the update
> to the CPSR, the predecoder needs to be able to grab the ITstate early. This
> is now handled by setting the forcedItState inside a PCstate for the control
> flow altering instruction.
> 
> That instruction will have the correct mask/cond, but will not have a valid
> itstate until advancePC is called (note this happens to advance the 
> execution).
> When the new PCstate is copy constructed it gets the itstate cond/mask, and
> upon advancing the PC the itstate becomes valid.
> 
> Subsequent advancing invalidates the state and zeroes the cond/mask. This is
> handled in isolation for the ARM ISA and should have no impact on other ISAs.
> 
> Refer arch/arm/types.hh and arch/arm/predecoder.cc for the details.
> 
> 
> Diffs
> -----
> 
>   src/arch/arm/isa/insts/data.isa 5d0f62927d75 
>   src/arch/arm/isa/insts/ldr.isa 5d0f62927d75 
>   src/arch/arm/isa/insts/macromem.isa 5d0f62927d75 
>   src/arch/arm/isa/insts/misc.isa 5d0f62927d75 
>   src/arch/arm/isa/operands.isa 5d0f62927d75 
>   src/arch/arm/predecoder.hh 5d0f62927d75 
>   src/arch/arm/predecoder.cc 5d0f62927d75 
>   src/arch/arm/types.hh 5d0f62927d75 
> 
> Diff: http://reviews.m5sim.org/r/421/diff
> 
> 
> Testing
> -------
> 
> 
> Thanks,
> 
> Ali
> 
>

_______________________________________________
m5-dev mailing list
m5-dev@m5sim.org
http://m5sim.org/mailman/listinfo/m5-dev

Reply via email to