linux-kernel.vger.kernel.org archive mirror
 help / color / mirror / Atom feed
From: Ricardo Bugalho <ricardo.b@zmail.pt>
To: linux-kernel@vger.kernel.org
Subject: Re: Scaling noise
Date: Tue, 09 Sep 2003 17:07:30 +0100	[thread overview]
Message-ID: <pan.2003.09.09.16.07.28.847940@zmail.pt> (raw)
In-Reply-To: 200309090211.16136.rob@landley.net

On Tue, 09 Sep 2003 02:11:15 -0400, Rob Landley wrote:


> Modern processors (Athlon and P4 both, I believe) have three execution
> cores, and so are trying to dispatch three instructions per clock.  With

Neither of these CPUs are multi-core. They're just superscalar cores, that
is, they can dispatch multiple instructions in parallel. An example of a
multi-core CPU is the POWER4: there are two complete cores in the same
sillicon die, sharing some cache levels and memory bus.

BTW, Pentium [Pro,II,III] and Athlon are three way in the sense they have
three-way decoders that decode up to three x86 instructions into µOPs.
Pentium4 has a one-way decoder and the trace cache that stores decodes
µOPs.
As a curiosity, AMD's K5 and K6 were 4 way.

> four cores bus would be a nightmare.  (All the VLIW guys keep trying to
> unload this on the compiler.  Don't ask me how a compiler is supposed to
> do branch prediction and speculative execution.  I suppose having to
> recompile your binaries for more cores isn't TOO big a problem these
> days, but the boxed mainstream desktop apps people wouldn't like it at
> all.)

In normal instructions sets, whatever CPUs do, from the software
perspective, it MUST look like the CPU is executing one instruction at a
time. In VLIW, some forms of parallelism are exposed. For example, before
executing two instructions in parallel, non-VLIW CPUs have to check for
data dependencies. If they exist, those two instructions can't be executed
in parallel. VLIW instruction sets just define that instructions MUST be
grouped in sets of N instructions that can be executed in parallel and
that if they don't the CPU, the CPU will yield an exception or undefined
behaviour.
In a similar manner, there is the issue of avaliable execution units and
exeptions.
The net result is that in-order VLIW CPUs are simpler to design that
in-order superscalar RISC CPUs, but I think it won't make much of a
difference for out-of-order CPUs. I've never seen a VLIW out-of-ordem
implementation.
VLIW ISAs are no different from others regarding branch prediction --
which is a problem for ALL pipelined implementations, superscalar or not.
Speculative execution is a feature of out-of-order implementation.


> Transistor budgets keep going up as manufacturing die sizes shrink, and
> the engineers keep wanting to throw transistors at the problem.  The
> first really easy way to turn transistors into performance are a bigger
> L1 cache, but somewhere between 256k and one megabyte per running
> process you hit some serious diminishing returns since your working set
> is in cache and your far accesses to big datasets (or streaming data)
> just aren't going to be helped by more L1 cache.

L1 caches are kept small so they can be fast.

> Hyperthreading is just a neat hack to keep multiple cores busy.  Having

SMT (Simultaneous Multi-Threading, aka Hyperthreading in Intel's marketing
term) is a neat hack to keep execution units within the same core busy.
And its a cheap hack when the CPUs are alread out-of-order. CMP
(Concurrent Multi-Processing) is a neat hack to keep expensive resources
like big L2/L3 caches and memory interfaces busy by placing multiple cores
on the same die.
CMP is simpler, but is only usefull for multi-thread performance. With
SMT, it makes sense to add more execution units that now, so it can also
help single-thread performance.


> Intel's been desperate for a way to make use of its transistor budget
> for a while; manufacturing is what it does better than AMD< not clever
> processor design.  The original Itanic, case in point, had more than 3
> instruction execution cores in each chip: 3 VLIW, a HP-PA Risc, and a
> brain-damaged Pentium (which itself had a couple execution cores)... The
> long list of reasons Itanic sucked started with the fact that it had 3
> different modes and whichever one you were in circuitry for the other 2
> wouldn't contribute a darn thing to your performance (although it did
> not stop there, and in fact didn't even slow down...)

Itanium doesn't have hardware support for PA-RISC emulation. The IA-64 ISA
has some similarities with PA-RISC to ease dynamic translation though.
But you're right: the IA-32 hardware emulation layer is not a Good Thing™.

-- 
	Ricardo


  reply	other threads:[~2003-09-09 16:07 UTC|newest]

Thread overview: 154+ messages / expand[flat|nested]  mbox.gz  Atom feed  top
2003-09-03  4:03 Scaling noise Larry McVoy
2003-09-03  4:12 ` Roland Dreier
2003-09-03  4:20   ` Larry McVoy
2003-09-03 15:12   ` Martin J. Bligh
2003-09-03  4:18 ` Anton Blanchard
2003-09-03  4:29   ` Larry McVoy
2003-09-03  4:33     ` CaT
2003-09-03  5:08       ` Larry McVoy
2003-09-03  5:44         ` Mikael Abrahamsson
2003-09-03  6:12         ` Bernd Eckenfels
2003-09-03 12:09           ` Alan Cox
2003-09-03 15:10             ` Martin J. Bligh
2003-09-03 16:01               ` Jörn Engel
2003-09-03 16:21                 ` Martin J. Bligh
2003-09-03 19:41                   ` Mike Fedyk
2003-09-03 20:11                     ` Martin J. Bligh
2003-09-04 20:36               ` Rik van Riel
2003-09-04 20:47                 ` Martin J. Bligh
2003-09-04 21:30                 ` William Lee Irwin III
2003-09-03  8:11         ` Giuliano Pochini
2003-09-03 14:25         ` Steven Cole
2003-09-03 12:47           ` Antonio Vargas
2003-09-03 15:31             ` Steven Cole
2003-09-04  1:50               ` Daniel Phillips
2003-09-04  1:52                 ` Larry McVoy
2003-09-04  4:42                   ` David S. Miller
2003-09-08 19:40                     ` bill davidsen
2003-09-04  2:18                 ` William Lee Irwin III
2003-09-04  2:19                 ` Steven Cole
2003-09-04  2:35                   ` William Lee Irwin III
2003-09-04  2:40                     ` Steven Cole
2003-09-04  3:20                       ` Nick Piggin
2003-09-04  3:07                   ` Daniel Phillips
2003-09-08 19:27                 ` bill davidsen
2003-09-08 19:12           ` bill davidsen
2003-09-03 16:37         ` Kurt Wall
2003-09-06 15:08         ` Pavel Machek
2003-09-08 13:38           ` Alan Cox
2003-09-09  6:11             ` Rob Landley
2003-09-09 16:07               ` Ricardo Bugalho [this message]
2003-09-10  5:14                 ` Rob Landley
2003-09-10  5:45                   ` David Mosberger
2003-09-10 10:10                   ` Ricardo Bugalho
2003-09-03  6:28     ` Anton Blanchard
2003-09-03  6:55       ` Nick Piggin
2003-09-03 15:23         ` Martin J. Bligh
2003-09-03 15:39           ` Larry McVoy
2003-09-03 15:50             ` Martin J. Bligh
2003-09-04  0:49               ` Larry McVoy
2003-09-04  2:21                 ` Daniel Phillips
2003-09-04  2:35                   ` Martin J. Bligh
2003-09-04  2:46                   ` Larry McVoy
2003-09-04  4:58                     ` David S. Miller
2003-09-10 15:47                       ` Lock EVERYTHING (for testing) [was: Re: Scaling noise] Timothy Miller
2003-09-04  4:49             ` Scaling noise David S. Miller
2003-09-08 19:50             ` bill davidsen
2003-09-08 23:39               ` Peter Chubb
2003-09-03 17:16           ` William Lee Irwin III
2003-09-03 15:51         ` UP Regression (was) " Cliff White
2003-09-03 17:21           ` William Lee Irwin III
2003-09-03 18:53             ` Cliff White
2003-09-04  0:54           ` Nick Piggin
2003-09-03  5:02 Samium Gromoff
2003-09-03  7:10 John Bradford
2003-09-03  7:38 ` Mike Fedyk
2003-09-03 11:14   ` Larry McVoy
2003-09-08 20:05 ` bill davidsen
2003-09-03  9:41 Brown, Len
2003-09-03 11:02 ` Geert Uytterhoeven
2003-09-03 11:19 ` Larry McVoy
2003-09-03 11:47   ` Matthias Andree
2003-09-03 18:00   ` William Lee Irwin III
2003-09-03 18:05     ` Larry McVoy
2003-09-03 18:15       ` William Lee Irwin III
2003-09-03 18:15         ` Larry McVoy
2003-09-03 18:26           ` William Lee Irwin III
2003-09-03 18:32         ` Alan Cox
2003-09-03 19:46           ` William Lee Irwin III
2003-09-03 20:13             ` Alan Cox
2003-09-03 20:31               ` William Lee Irwin III
2003-09-03 20:48             ` Martin J. Bligh
2003-09-03 21:21               ` William Lee Irwin III
2003-09-03 21:29                 ` Martin J. Bligh
2003-09-03 21:51                   ` William Lee Irwin III
2003-09-03 21:46                     ` Martin J. Bligh
2003-09-04  0:07                       ` Mike Fedyk
2003-09-04  1:06                       ` Larry McVoy
2003-09-04  1:10                         ` Larry McVoy
2003-09-04  1:32                         ` William Lee Irwin III
2003-09-04  1:46                           ` David Lang
2003-09-04  1:51                             ` William Lee Irwin III
2003-09-04  2:31                           ` Martin J. Bligh
2003-09-04  2:40                             ` Mike Fedyk
2003-09-04  2:50                               ` Martin J. Bligh
2003-09-04  3:49                                 ` Mike Fedyk
2003-09-04  2:48                             ` Steven Cole
2003-09-04 17:05                             ` Daniel Phillips
2003-09-07 21:18                         ` Eric W. Biederman
2003-09-07 23:07                           ` Larry McVoy
2003-09-07 23:47                             ` Eric W. Biederman
2003-09-08  0:57                               ` Larry McVoy
2003-09-08  3:55                                 ` Eric W. Biederman
2003-09-08  4:47                                 ` Stephen Satchell
2003-09-08  5:25                                   ` Larry McVoy
2003-09-08  8:32                                     ` Eric W. Biederman
2003-09-04  0:58                     ` Larry McVoy
2003-09-04  1:12                       ` William Lee Irwin III
2003-09-04  2:49                         ` Larry McVoy
2003-09-04  3:15                           ` William Lee Irwin III
2003-09-04  3:38                           ` Nick Piggin
2003-09-05  1:34         ` Robert White
2003-09-03 19:11     ` Steven Cole
2003-09-03 19:36       ` William Lee Irwin III
     [not found] <rx83.88x.5@gated-at.bofh.it>
     [not found] ` <rxrp.8wt.1@gated-at.bofh.it>
     [not found]   ` <rxB3.gg.1@gated-at.bofh.it>
     [not found]     ` <rxB6.gg.5@gated-at.bofh.it>
     [not found]       ` <rydL.17V.1@gated-at.bofh.it>
     [not found]         ` <rGXO.5g9.7@gated-at.bofh.it>
2003-09-03 15:33           ` Ihar 'Philips' Filipau
2003-09-03 17:07 Brown, Len
2003-09-03 17:32 ` Larry McVoy
2003-09-03 18:07   ` William Lee Irwin III
2003-09-03 18:07     ` Larry McVoy
2003-09-03 18:25       ` William Lee Irwin III
2003-09-03 23:47         ` Larry McVoy
2003-09-03 23:52           ` William Lee Irwin III
2003-09-03 23:55           ` Martin J. Bligh
2003-09-03 18:28       ` Valdis.Kletnieks
2003-09-03 18:31       ` Alan Cox
2003-09-03 20:11       ` Diego Calleja García
2003-09-03 18:11   ` Alan Cox
2003-09-03 19:56     ` Daniel Gryniewicz
2003-09-03 18:17   ` Martin J. Bligh
2003-09-04  0:36     ` Larry McVoy
2003-09-04  2:21       ` Martin J. Bligh
2003-09-04  2:34         ` Larry McVoy
2003-09-04  2:48           ` Martin J. Bligh
2003-09-04  3:02             ` Larry McVoy
2003-09-04  3:46               ` Gerrit Huizenga
2003-09-04  4:41               ` Martin J. Bligh
2003-09-10 15:02               ` Timothy Miller
2003-09-10 15:12                 ` Larry McVoy
2003-09-28  1:51                   ` Paul Jakma
2003-09-28  3:13                     ` Steven Cole
2003-09-29  0:47                       ` Paul Jakma
2003-10-22  1:22                       ` Paul Jakma
2003-10-22  3:46                         ` Steven Cole
2003-09-04  3:16             ` David Lang
2003-09-04  3:45               ` William Lee Irwin III
2003-09-04  4:51               ` Martin J. Bligh
2003-09-04  3:47           ` Davide Libenzi
2003-09-04  4:16             ` Larry McVoy
2003-09-04  7:43               ` Davide Libenzi
2003-09-08  6:21 Brown, Len
2003-09-08  9:21 ` Eric W. Biederman
2003-09-10 10:01 John Bradford
2003-09-10 11:35 ` Alan Cox
2003-09-10 13:46 ` Bill Davidsen
2003-09-10 15:14 John Bradford

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=pan.2003.09.09.16.07.28.847940@zmail.pt \
    --to=ricardo.b@zmail.pt \
    --cc=linux-kernel@vger.kernel.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).