Skip site navigation (1)Skip section navigation (2)
Date:      Wed, 2 Apr 2003 02:15:27 +0000
From:      Anthony Naggs <tony@ubik.demon.co.uk>
To:        freebsd-questions@freebsd.org, "Paredes Snchez Martn A." <MPAREDES@telmex.com>
Subject:   Re: Which Processor and motherboard is better (new to FreeBSD)
Message-ID:  <rl0bXXA$eki%2BIwOq@ubik.demon.co.uk>
In-Reply-To: <35BC9957B8699C42AB3A665E3C5656556CACF0@is~tmxmailhmo1.intranet.telmex.com>
References:  <35BC9957B8699C42AB3A665E3C5656556CACF0@is~tmxmailhmo1.intranet.telmex.com>

next in thread | previous in thread | raw e-mail | index | archive | help
In article <35BC9957B8699C42AB3A665E3C5656556CACF0@is~tmxmailhmo1.intran
et.telmex.com>, Paredes Snchez Martn A. <MPAREDES@telmex.com> writes
>I found in the intel web site that the Hyper-Threading has this
>requirements:
>
>Hyper-Threading Technology requires a computer system with an
>Intel Pentium 4 processor at 3.06 GHz or higher, a chipset and BIOS
>that utilize this technology, and an operating system that includes
>optimizations for this technology.

Not exactly a "requirement", simply that Hyper-Threading is only
included in Intel's top spec processors Pentium 4 >= 3.06 GHz, and on
the Pentium 4 based Xeon.  These processors also need a different, more
expensive Intel support chip set.


A fairly short description of Hyper-Threading:
So that Pentium, II, 3 & 4 processors can be faster for the same clock
frequency Intel added more 'units'.  Where each unit can process a
logic, arithmetic, floating point, instruction, so the processor can
execute some slow operations at the same time as several faster ones.  

The limits to this are: 1. dependencies, the result of one instruction
are needed for the following one (Pentium optimised compilers can
sometimes rearrange instruction sequences to minimise this); 2. fetching
enough instructions and data; 3. because of (2) this kind of speed up
works best for loop where instructions are fetched once and repeated
many times - but the fastest loops are still the shortest, and short
loops tend to have lots of instructions that require the result of any
instruction only 1 or 2 steps earlier.

A processor with Hyper-Threading presents itself to the operating system
(BSD, Linux, or even Windows 2000/XP) as two processors.  The processor
has more of most types of processing 'unit', and shares these, (when
enabled), between two processes.

The sounds very nice but a Hyper-Threaded processor less than double the
number of each processor unit.  For example it may have only one
floating point unit to share between the two processes.  In which case
running one process doing floating point and another doing integer
operations will run maybe 50% faster than without Hyper-Threading.
However running two processes that both do floating point math will be
about as fast as a non-Hyper Threaded system.

A system with two Hyper Threaded processors could pick up the speed
again if the two floating point tasks are split between the processors.

So you can see that getting good performance from Hyper-Threading is
quite hard.  A 3 GHz Pentium 4 may get an average of 25% extra work done
with Hyper Threading enabled.  While a system with two 2 GHz Pentium 4s
will probably be more powerful, and (due to Intel's exponential pricing
for faster processors) probably cheaper too.

Hyper-Threading will become more mainstream for Intel systems over next
year or two.  CPU clocks already much faster than memory (RAM) speeds.
To carry on adding performance Intel are likely to increase the number
of processing units and the amount of Hyper Threading further on their
fastest processors, to support 3 or 4 concurrent processes.


I hope that helps!

Regards,
Tony



Want to link to this message? Use this URL: <https://mail-archive.FreeBSD.org/cgi/mid.cgi?rl0bXXA$eki%2BIwOq>