qemu-devel.nongnu.org archive mirror
 help / color / mirror / Atom feed
From: Markus Schiltknecht <markus@bluegap.ch>
To: Paul Brook <paul@codesourcery.com>
Cc: qemu-devel@nongnu.org
Subject: Re: [Qemu-devel] ARM CPU Speed simulated by Qemu?
Date: Tue, 12 Sep 2006 16:21:21 +0200	[thread overview]
Message-ID: <4506C261.5070309@bluegap.ch> (raw)
In-Reply-To: <200609121439.15226.paul@codesourcery.com>

Paul Brook wrote:
> IMHO a benchmarking setup that doesn't reliably correspond to real system 
> performance is worse than useless.

Agreed. So let's see what's needed to get a reliably corresponding 
system. I'm interested in three layers: CPU, hard disk and network.

Networking is the simplest, I think. I would need to be able to define 
throughput and latency and be able to simulate network collisions (i.e. 
packet loss percentage).

Emulating a hard disk is already more complicated. One could likewise 
define throughput and latency (= avg. seek time). But in most cases that 
would not be sufficient, because depending on the head position, seek 
time may vary wildly. Thus more like a rotation speed and head position 
emulation is necessary. Most disks today also have different zones with 
varying data density (more sectors on the outer tracks). And last but 
not least, there are caches in most drives...

Now, CPUs is where I have only a vague idea of what would be needed to 
simulate. I know there are up to three levels of caches and main memory, 
which all have different access times. The CPU itself has a pipeline and 
branch prediction and such which could invalidate the contents of 
pipeline up to a given point (of branching).

I think the most time consuming operation which should be properly 
simulated is memory access. For this to work properly, all levels of 
caches must be emulated, too.

How much do misses on the branch prediction level cost? How much 
pipeline interlocks? I don't think those would be _that_ dramatic. Since 
today's compilers are said to be optimizing quite well...

I agree that implementing all of that would be a significant amount of 
work, already. What else do I miss?

Regards

Markus

  reply	other threads:[~2006-09-12 14:21 UTC|newest]

Thread overview: 15+ messages / expand[flat|nested]  mbox.gz  Atom feed  top
2006-09-08 19:26 [Qemu-devel] Re: qemu-system-sparc video problem on 16 bitdisplays Blue Swirl
2006-09-12  0:17 ` Stuart Brady
2006-09-12  7:20   ` [Qemu-devel] ARM CPU Speed simulated by Qemu? Tieu Ma Dau
2006-09-12 11:03     ` nyos
2006-09-12 12:43     ` Paul Brook
2006-09-12 13:19       ` Markus Schiltknecht
2006-09-12 13:39         ` Paul Brook
2006-09-12 14:21           ` Markus Schiltknecht [this message]
2006-09-12 14:34             ` Paul Brook
  -- strict thread matches above, loose matches on Subject: below --
2006-09-12 14:44 Laurent DESNOGUES
2006-09-12 14:58 ` Markus Schiltknecht
2006-09-12 17:42 ` K. Richard Pixley
2006-09-12 15:08 Laurent DESNOGUES
2006-09-12 15:19 ` Markus Schiltknecht
2006-09-12 15:26 Laurent DESNOGUES

Reply instructions:

You may reply publicly to this message via plain-text email
using any one of the following methods:

* Save the following mbox file, import it into your mail client,
  and reply-to-all from there: mbox

  Avoid top-posting and favor interleaved quoting:
  https://en.wikipedia.org/wiki/Posting_style#Interleaved_style

* Reply using the --to, --cc, and --in-reply-to
  switches of git-send-email(1):

  git send-email \
    --in-reply-to=4506C261.5070309@bluegap.ch \
    --to=markus@bluegap.ch \
    --cc=paul@codesourcery.com \
    --cc=qemu-devel@nongnu.org \
    /path/to/YOUR_REPLY

  https://kernel.org/pub/software/scm/git/docs/git-send-email.html

* If your mail client supports setting the In-Reply-To header
  via mailto: links, try the mailto: link
Be sure your reply has a Subject: header at the top and a blank line before the message body.
This is a public inbox, see mirroring instructions
for how to clone and mirror all data and code used for this inbox;
as well as URLs for NNTP newsgroup(s).