Re: [Gems-users] Help with Opal Tester


Date: Sat, 9 Jul 2005 20:28:51 -0500 (CDT)
From: Luke Yen <lyen@xxxxxxxxxxx>
Subject: Re: [Gems-users] Help with Opal Tester
Ankit,

  I have looked into this problem before (trying to do the same thing),
and I think there are a couple options.

1) As I have mentioned before there is no perfect BP flag in Opal, and I
recommended using the Opal trace utility to generate branch traces and
then feeding it back into Opal.  I am not sure if that is currently
an option for Opal, or if it just works for the tester.  I can imagine
someone modifying Opal to read from the branch trace in real time, while
simulating a workload.

2) Carl Mauer (author of Opal) was experimenting with some runahead type
ideas, because Opal has some initial code to construct a control flow
graph.  You can find this code in pseq.C.  Search for flow_inst_t, which
are instructions that are linked together to form a CFG.  However one of
the problems I saw is that in order to construct the CFG one must actually
step Simics, which will conflict with simulating the OoO timing of the
processor.  I haven't figured out a solution to this problem, and maybe
you can figure out how to get this working and post a solution.

3) I am not sure if MAI has some perfect branch prediction options but
maybe one can write a simple MAI module that can hook up to Opal whenever
it sees a branch instruction, and then choose the correct path.

  Regards,
   Luke

On Fri, 8 Jul 2005, Ankit Jalote wrote:

> Hi,
> Thanks for the reply. I will look at the code to figure this out.
> I have one additional question though. I am trying to simulate perfect
> branch prediction in gems. Can you please give me some pointers to do this?
> One way I can think of is by creating the trace and then running the
> created trace through tester. But is there a better way to implement
> perfect prediction?
> Thanks a lot,
> Ankit
>
[← Prev in Thread] Current Thread [Next in Thread→]