From: nedbrek on
Hello all,

"Andy "Krazy" Glew" <ag-news(a)patten-glew.net> wrote in message
news:4B5C999C.9060301(a)patten-glew.net...
> nedbrek wrote:
>> That's where my mind starts to boggle. I would need see branch predictor
>> and serialization data showing a window this big would deliver
>> significant performance gains. We were looking at Itanium runs of Spec2k
>> built by Electron (i.e. super optimized). We were assuming very heavy
>> implementation (few serializing conditions). We were unable to scale this
>> far.
>
> That's almost exactly what Jim Smith told me at Wisconsin - except then we
> were talking about 256 entry instruction windows. Although I will freely
> admit that even then I was thinking in terms of instruction windows in the
> thousands and larger. It has just taken years to invent the pieces, the
> mechanisms, that make it buildable.
>
> In terms of academic research, look at ... well, I wanted to refer to the
> kilo instruction processor papers, but I don't have access to the ACM
> Digital Library. But, anyway, if memory serves they show some benefit
> for large instruction windows, which they justify but mecahnisms to reduce
> window cost. I just go further.
>
> As for stuff that you can do on your own, here are some very simple limit
> studies:

Ok, my curiosity is killing me... :)

Someone was previously asking about simulators. Consensus seemed to be
there is only Simplescalar out there, which is, frankly a terrible sim - and
it is encumbered by a poor license.

If someone (aka, me) were to build a free and open simulator, is there any
suggestions on which platform to use?

I am think Bochs will be the most easy to integrate into (being a per
instruction emulation), but Sun's Virtual box offers more performance and
possibly more features. Virtual box uses Qemu for its CPU emulation, I am
not familiar with it. I looked at Bochs in the past, but at that time the
license was not as open (it is now LGPL).

Any advice is appreciated. Feature requests will also be considered.

Ned


From: "Andy "Krazy" Glew" on
nedbrek wrote:
>> As for stuff that you can do on your own, here are some very simple limit
>> studies:
>
> Ok, my curiosity is killing me... :)
>
> Someone was previously asking about simulators. Consensus seemed to be
> there is only Simplescalar out there, which is, frankly a terrible sim - and
> it is encumbered by a poor license.
>
> If someone (aka, me) were to build a free and open simulator, is there any
> suggestions on which platform to use?
>
> I am think Bochs will be the most easy to integrate into (being a per
> instruction emulation), but Sun's Virtual box offers more performance and
> possibly more features. Virtual box uses Qemu for its CPU emulation, I am
> not familiar with it. I looked at Bochs in the past, but at that time the
> license was not as open (it is now LGPL).
>
> Any advice is appreciated. Feature requests will also be considered.

PTLsim has a good reputation.

I know a guy who started off with QEMU, and made a real simulator out of it.

Bochs apparently gives you enough that you can emulate full system code, for an old (odd) set of devices.

The overall problem s is that you really want a simulator which is a library, not a full program. I.e. you don't want
your microarchitecture simulator to have a function that is called every instruction or basic block - because then it is
hard to do stuff like speculation on branches, or skipping to control independence points. Instead, you want your
microarchitecture simulator to be in control, and you want to call library functions, e.g. to tell you what an
instrction would do, or what an I/O device would do. But you don't want the library functions to do it, because their
notion of memory is different than yours. Rather, you want them to tell you what thy would do, e.g. by callbacks or by
recording results in a log.

I suspect that much of the reason that people have not looked at advanced microarchitectures is that their simulators
just aren't good enough.

However, you can do a lot of work just with an instruction feeder. Certainly good enough for limit studies.
From: nedbrek on
Hello all,

"Andy "Krazy" Glew" <ag-news(a)patten-glew.net> wrote in message
news:4B5DA73E.60408(a)patten-glew.net...
> nedbrek wrote:
>> Someone was previously asking about simulators. Consensus seemed to be
>> there is only Simplescalar out there, which is, frankly a terrible sim -
>> and it is encumbered by a poor license.
>>
>> Any advice is appreciated. Feature requests will also be considered.
>
> PTLsim has a good reputation.

Thanks, I will take a look at it. It is GPL, and uses git for SCM, so it is
basically where I was going to start anyway...

> I know a guy who started off with QEMU, and made a real simulator out of
> it.

Looks like their next version PTLsim 3, will integrate with QEMU.

> I suspect that much of the reason that people have not looked at advanced
> microarchitectures is that their simulators just aren't good enough.

That, and no one is interested in building advanced uarchs :( It's all
multi-core, multi-core, multi-core! And low power.

Ned