"Robert W. Cunningham" wrote:
> 
> Kevin Lawton wrote:
> 
> > >From ChangeLog:
> >
> >  - "Kevin P. Lawton" <[EMAIL PROTECTED]>: Fri Jan 12 01:13:29 EST 2001
> >     Created new dir dt-testbed/proto2.  Check out README in that dir.
> >
> > Attached is the README in case you're interested in the lightweight
> > dynamic translation progress.
> 
> Wow.  A 7:1 ratio already.  Have you tried to determine the theoretical
> minimum for this operation?  My SWAG is that 4:1 will be unreachable.

Using the current scenario, which doesn't do any data flow
analysis on the instructions it passes through, I don't think
we'll get much better than this for the locality of the
branch instruction tcode.  Sometimes one can recode or reoder
sequences to fit the parallel pipes better and squeeze
some extra clocks.  I'm always open for trying.  Though,
there is a certain amount of work to do per static out-of-page
branch, if you want to let the tcode itself assist in
the dynamic backpatching for revalidation of target tcode
addresses.

To do the token compare, I had to save the eflags, do the
compare and restore eflags before the jump.  Oh, and optionally
switch to the ring3 handler stack to do the eflags save/restore op.

But that test case thrashes the pipelines (and just about everything
else) weaving back and forth.  When preceded by real code, sometimes
some clock cycles would be buried because of the pipelines.

Anyways, in-page static branches can actually be 1:1, like they
are in SBE.  So looking at the big-picture, having a large percentage
of instructions executing at 1:1 and a few at 7:1 or even 20:1
doesn't make a great difference.

There's a more complicated strategy of just using straight
branches to the target tcode (after it has been translated).
This would be 1:1, but as I talk about in the email I'm going
to send in a few minutes, it comes with costs.

-Kevin

-- 
=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-
Kevin Lawton                        [EMAIL PROTECTED]
MandrakeSoft, Inc.                  Plex86 developer
http://www.linux-mandrake.com/      http://www.plex86.org/

Reply via email to