Author: Matt Taylor
Date: 19:52:18 12/10/02
Go up one level in this thread
On December 10, 2002 at 21:57:11, Jeremiah Penery wrote: >On December 10, 2002 at 21:19:18, Matt Taylor wrote: > >>On December 10, 2002 at 21:13:28, Robert Hyatt wrote: >> >>>As far as sharing pipes, that can happen. But if one thread is burning one >>>pipe up doing useless work, that is lost cycles that the other thread can't >>>get to. Which is _the_ point for the "pause" instruction... >> >>The integer pipe feeds into 5 integer execution units which can be accessed >>concurrently each cycle. However, a spin-wait loop will only be able to use 1 >>unit because of register dependenies. > >Yes, and if you can produce ANY real-world code that will actually fill up even >the 4 remaining pipes for the majority of the cycles, I'd be extremely >surprised. That's why Intel has done HyperThreading in the first place - >because a majority of the 'pipes' in any modern processor are going unused in >any given cycle. HT is a way to make better use of those resources. Particularly on the P4 since a careful observer will note that the micro-op cache is the bottleneck -- maximum of 3 u-ops/cycle to 7 execution units capable of executing 9 per cycle. It makes sense to use 2 logical CPUs to allow up to 6 to be used. It is possible to fill most of the execution units (or all of a specific group like integer) on other processors, but usually such programs don't do useful work. -Matt
This page took 0 seconds to execute
Last modified: Thu, 15 Apr 21 08:11:13 -0700
Current Computer Chess Club Forums at Talkchess. This site by Sean Mintz.