As I was testing the XPC SB81P, some of my benchmark numbers were coming out much, much lower than expected. I'd already confirmed that all the basic system settings were correct (like memory speed, CPU frequency, and the like), so I decided to do some testing to see if CPU thermal throttling might be the culprit. For those of you not familiar, the Pentium 4 includes an internal facility to cool itself down when it gets too hot by reducing the amount of work that it does. Without getting too technical, the CPU doesn't exactly lower its own clock speed, but the effect is the same. Thermal throttling is a failsafe, and it shouldn't be encountered in normal use because the CPU should never get so hot that it's necessary.
I've found that thermal throttling is a startlingly common problem on the fastest new Intel processors, especially the Pentium 4 "Prescott" 3.6GHz and the P4 Extreme Edition 3.4GHz. In fact, I struggled mightily with thermal throttling problems in preparing my review of the new LGA775 processors when the CPUs were running on an open test bench with a massive Intel cooler. After a tortured conversation with an Intel thermal engineer ("Is the heatsink seated properly?" "Did you use enough thermal paste?"), I got the impression that Intel knows the Prescott chips, in particular, are running especially close to the edge of the thermal envelope. With some work, I was able largely to banish thermal throttling on my desktop test rigs, but in my experience, this sort of problem is not uncommon on the highest speed Intel processors these days.
In order to test whether throttling was happening in the XPC SB81P, I used the same basic methodology described in this article. The RightMark CPU Stability Test measures computational throughput over time. It can be configured with multiple threads to make full use of Hyper-Threading, so the processor gets a rigorous workout. (Hyper-Threading has been known to increase the Pentium 4's heat output quite a bit.)
When everything is properly cooled and thermal throttling is not active, computational throughput is steady, as this screenshot shows:
However, in the XPC SB81P, RightMark's output almost immediately began looking uneven:
Not only was the performance erratic, but it was much lower than normal, as well. Thermal throttling was going to town. The screenshots above were taken with a Pentium 4 Extreme Edition 3.4GHz processor, but I saw the same thing, or worse, with the Prescott 3.6GHz. Both CPUs were experiencing severe thermal problems with the default fan speed settings in the SB81P's BIOS.
Naturally, I popped into the BIOS to see what I could do to fix it. Shuttle's fan speed control BIOS menu looks like this:
Note the little table/diagram on the right of the screenshot above. The XPC SB81P uses Intel's new Prescott fan speed control mechanism, with linear fan speed control rather than a simple multi-stage arrangement. This setup, at least in theory, should provide better cooling and better acoustics, with fewer distracting transitions from one fan speed grade to the next and back.
This arrangement isn't entirely linear, though. Only a specified range of temperatures triggers a change in fan speed. Below the trigger temperature, the CPU fan should run at some constant, low speed (or, in cases where the cooling design is capable enough, the fan could stop.) Between the trigger temp and the maximum temperature, fan speeds should ramp up in a linear fashion. Here's a simple example where the trigger temp is 30C and the max temp is 70C.
That's pretty much as it should be. I believe it's also acceptable for the system designer to have the CPU fan speed kick into high gear once the max temperature threshold is reached. In that case, the diagram would look like so:
The system would get noisy in a hurry, but only in cases of extreme heat.
However, in the case of the SB81P, Shuttle has set the default trigger temp for its two CPU cooling fans at 70C. The max temp is setunalterable in the BIOSat 80C. The SB81P's fan speeds would look something like this:
Now, if you're wanting to keep the system as quiet as possible until absolutely necessary, concentrating the dynamic range of fan speeds near the high end of the CPU's recommended operating temperatures might make some sense. However, in this case, our 3.6GHz Prescott processor starts thermal throttling right at 70Cor the same spot where, by default, the SB81P only begins to ramp up its fan speed from the lowest level. In fact, during our throttling testing with the SB81P's BIOS defaults, I could never audibly detect a fan speed increase from the SB81P. The CPU would throttle itself back, and thus cool itself off, before the CPU fans would start to provide any extra help.
One option for addressing this problem is to lower the minimum trigger temp in the BIOS so that fan speeds begin ramping up sooner. Turning it to 50C helped, but didn't solve the problem. With the trigger temp set at 40C, I still saw notable performance dips in the RightMark CPU Stability Test. At 30C, things were better, but the SB81P was running pretty darn loud at that pointbeyond what I'd consider acceptable.
You can see the problem with adjusting the lower temperature limit illustrated on the graph below. Say you set the temp tag to 50C. This is what you will get:
The CPU fans start ramping up at lower temperatures, but they still won't reach their peak cooling potential before the CPU begins throttling. Bottom line: the 80C max temperature threshold is simply incorrect for the Pentium 4 3.6GHz. For comparison, the max temp threshold on the Abit AA8 motherboard is 65C. Monkeying with the trigger temp on the lower end of the spectrum isn't the appropriate fix.
I took this information to Shuttle, and they were able to confirm the throttling problem with a Prescott 3.6GHz. They proposed to address it in two ways. First, they have promised a BIOS update, likely with a new max temp threshold around 70C. Second, they sent me a beta copy of their Windows-based XPC Tools utility that they're preparing for eventual public release.
Using this nifty little program, I was able to create my own custom fan speed profiles. I set the trigger temp at 50C, the max temp at 68C, and chose the upper and lower fan speeds associated with each. I set the upper speed in the linear range for both fans well below the maximum possible speed, creating a "broken" line of possible fan speeds similar to the second graph example above. Once I'd properly tuned everything, the XPC SB81P was able to run the CPU Stability Test for long periods of time without throttling and without excessive noise. In the confines of Damage Labs, the system generally kept the fully loaded P4 3.6GHz CPU below 68C without kicking up to maximum fan speeds. Running 3DMark03 on a GeForce 6800GT alongside the CPU Stability Test didn't tend to invoke max fan speeds, either.
So it seems Shuttle's P-series chassis can indeed manage to power and cool a blowtorch-like Intel Prescott processor and a massive NVIDIA GeForce 6800GT GPU without sounding like a C-130. It truly is a wonder. The current SB81P BIOS, however, needs to be fixed.