Re: Adjusting PC Hyperthreading for Spice Simulation
- From: Nobody <nobody@xxxxxxxxxxx>
- Date: Mon, 26 Jan 2009 03:25:26 +0000
On Sun, 25 Jan 2009 10:59:31 -0800, JosephKK wrote:
It depends how fast your RAM is. At one point (I guess around 5 years
ago), 350 CPU cycles for a code cache miss was not atypical, but RAM
speed has been consistently increasing faster than CPU speed for the
last few years.
To remove a possible source of confusion: cycle "costs" take into account
the fact that each core can execute multiple instructions concurrently
(superscalar architecture). So a cost of e.g. "100 cycles" refers to a
delay in which a sequence of instructions totalling 100 cycles could be
executed, not 100 times the CPU clock period.
So you have heard of pipeline bubbling. The pipelines are not that
deep, about 7 stages max due to complexity increases.
Current and recent processors (about 5 years for x86, more for SPARC
and others) support speculative execution and out of order execution
to reduce this problem.
Indeed. But while that mitigates data cache misses, it doesn't do anything
for a code cache miss.
Especially on x86, where instructions are variable length and so can't
even be decoded if prior instructions are missing, let alone executed.
Even on a RISC architecture, it makes such techniques much less efficient.
If the missing instructions include a branch which will usually be taken,
speculatively executing subsequent instructions is a waste of cycles.
Similarly for an instruction which uses the contents of a register which
is modified by a missing prior instruction.
If anything, it is the reliance upon caching and instruction re-ordering
which makes code cache misses such a performance killer, as they mitigated
the problems with slow RAM to such an extent that there was little
incentive to increase RAM speed.
Although such techniques worked well for "classical" procedural code, they
often worked rather less well for e.g. object-oriented code making heavy
use of virtual functions, or interpreted languages where a substantial
portion of the interpreter can be required for even the simplest functions.
.
- Follow-Ups:
- Re: Adjusting PC Hyperthreading for Spice Simulation
- From: krw
- Re: Adjusting PC Hyperthreading for Spice Simulation
- From: JosephKK
- Re: Adjusting PC Hyperthreading for Spice Simulation
- References:
- Adjusting PC Hyperthreading for Spice Simulation
- From: D from BC
- Re: Adjusting PC Hyperthreading for Spice Simulation
- From: Helmut Sennewald
- Re: Adjusting PC Hyperthreading for Spice Simulation
- From: D from BC
- Re: Adjusting PC Hyperthreading for Spice Simulation
- From: D from BC
- Re: Adjusting PC Hyperthreading for Spice Simulation
- From: Joel Koltner
- Re: Adjusting PC Hyperthreading for Spice Simulation
- From: JosephKK
- Re: Adjusting PC Hyperthreading for Spice Simulation
- From: Nobody
- Re: Adjusting PC Hyperthreading for Spice Simulation
- From: Nobody
- Re: Adjusting PC Hyperthreading for Spice Simulation
- From: JosephKK
- Adjusting PC Hyperthreading for Spice Simulation
- Prev by Date: Re: Very low noise JFET amplfiier references
- Next by Date: Re: Adjusting PC Hyperthreading for Spice Simulation
- Previous by thread: Re: Adjusting PC Hyperthreading for Spice Simulation
- Next by thread: Re: Adjusting PC Hyperthreading for Spice Simulation
- Index(es):