Originally posted by: Idontcare
There seems to be a disconnect between your post and SUN's marketing...
With 8 cores, each supporting 4 threads, the UltraSPARC T1 processor executes 32 simultaneous threads within a design consuming only 72 watts of power
http://www.sun.com/processors/niagara/index.jsp
Eight cores and eight threads per core accelerate throughput as shown by two world-record, single-chip SPEC CPU scores, based on tests that delivered 78.3 est. SPECint_rate2006 and a 62.3 est. SPECfp_rate2006. The UltraSPARC T2 processor has twice the thread count of Sun's UltraSPARC T1 processor, which recently set a world record on ten Sun Blade T6300 Server Modules delivering 8253.21 SPECjAppServer2004 JOPS@Standard
http://www.sun.com/aboutsun/pr...unflash.20070807.1.xml
I don't know how SMT is implemented in the Niagara, but the above doesn't really contradict what degibson wrote. The CPU would be fed two threads, but instead of scheduling instructions from both in parallel, it alternates between them. I guess one could call it SMT since the CPU needs to be fed two threads at any time to achieve its full potential.
EDIT (I've read up...): Actually, it doesn't seem as if Sun calls it SMT either. They seem to refer to it mostly as "chip multi-threading". Looking at the UltraSparc T1, it's actually impossible for it to have SMT, since it's a single issue design. There simply aren't any extra execution units to utilize for parallel execution of a second thread in a given cycle.
And here comes the part were syadnom was somewhat right: The UltraSparc T2 has a dual issue design with two integer units. However, as opposed to HyperThreading, the T2 doesn't dynamically schedule instructions from any thread to any of the execution units. Instead it assigns four threads to each integer unit, effectively creating two separate paths (pipelines) for each thread group. So, it does infact execute two different threads simultaneously, but it's a much simpler approach than what Intel took with HyperThreading.
It's simply not fair to say that "T2 uses separate pipelines while Intel used a simple scheduling hack". The HyperThreading way of doing things can allow for much higher performance in less threaded scenarios, while (theoretically) retaining good throughput with more threads. The T2 way of doing things relies much more on applications or scenarios to be heavily threaded, since too few threads means that the already limited execution resources get underutilized. For example, in a single thread scenario, only one of the two integer units will get (inefficiently) utilized. On a a HyperThreaded Intel CPU, the large amount of functional units and the use of a superscalar, dynamically scheduled pipeline means that performance can remain high even with just one thread.
A good implementation of SMT (a.k.a. HyperThreading) with good load balancing between threads could possibly provide superior throughput over the T2. The main reason for not doing this would probably be complexity, which is something Sun doesn't want to deal with due to power and area constraints.