Tek-Tips is the largest IT community on the Internet today!

Members share and learn making Tek-Tips Forums the best source of peer-reviewed technical information on the Internet!

  • Congratulations SkipVought on being selected by the Tek-Tips community for having the most helpful posts in the forums last week. Way to Go!

Win 2K, multiple processors

Status
Not open for further replies.

Parke

Programmer
Jan 10, 2001
51
0
0
US
We are attempting to set up Win 2K, advanced server with 4 Xeon 1.6 MHz cpus and 8G Ram. The server is "telling" us that we have 8 cpus and 4G Ram. Are we doing something wrong? This is a fresh install.

Any and all help appreciated. This is my first multiprocessor Xeon box.

Thanks,

Parke
 
Is this by any chance a Dell hardware? I am experiencing a similar problem where my Dell servers' BIOS report 2 CPUs and the OS sees 4 CPUs. I have been looking for any reference to this problem but have come up empty so far.
 
These CPUs are Pentium 4 HTs.

When a CPU is HT (Hyper Threading), the OS will see it as being 2 CPUs. It is physically only one CPU so the BIOS will see it as such.

The processors you see in TM are actually virtual abstracted processesors, acting like another cache to take advantage of wait states. There are 5 interger execution stages in the CPU when the cache can only handle 3. This is why. See below.

More:


When Hyper Threading is enabled, the single Pentium 4 processor will appear to most software to be two separate processors. Windows 98, Windows Me, and Windows 2000 [(non-SP3)-ed-TS], which were released long before Hyper Threading, don't "see" the second virtual processor. Windows XP does, and will allow two separate programs (or two threads within the same program) to run simultaneously without time slicing between the two.

But here is the catch: the core of the processor is shared by the two virtual processors. So you don't really have double the computing power because you're sharing the single memory bus, you're sharing the same on-chip cache, and sharing the same execution units. The trick to Hyper Threading is that it relies on the fact that as any software is running, parts of the processor are not being used. A processor will spend some of its time stalled, typically waiting on memory operations. Sometimes the processor can do other operations while it waits. This is called "out-of-order execution". But if the other instructions depend, say, on the result of a memory read that's still taking place, then even OOO execution stalls. While the processor is stalled, clock cycles are simply being wasted. Having two virtual processors means that there is less chance that BOTH are stalled.

Think of it in terms of phone calls. If you have a single telephone and you get put on hold, you sit and wait. You're stalled. Think of a single telephone as a single processor. If you had two telephone lines, think of that as having a dual processor system. Now think of Hyper Threading as having a single telephone with Call Waiting. You can handle two phone calls at once, provided that one of them is on hold. Only when both calls put you on hold do you stall.

Hyper Threading is actually a little more advanced than my phone analogy. As it turns out, when I first looked at the Pentium 4 back in December 2000, I had noted a seemingly idiotic capability of the Pentium 4 to execute five integer operations per clock cycle, despite the cache's ability to only generate 3 of these operations per clock cycle. As we now see in hindsight, this was done with Hyper Threading in mind, to better accommodate the second virtual processor.


-- Regards,
Tim Scarfe <tim [at] developer-x .com>
.developer-x. com
 
Status
Not open for further replies.

Part and Inventory Search

Sponsor

Back
Top