Dan,
I think the problem with hyperthreading is a tradeoff between latency and throughput. The PC processors have been concentrating on latency, since a PC is an interactive machine, and when a user issues a command, he wants the result ASAP.
The whole inside of the CPU is geared to processing a single thread ASAP. We have speculative execution, looking for dependencies, and executing code that doesn't have dependencies in separate execution units, etc.
Now Intel whants to utilize resources to increase throughput, and if they achieve that, more power to them. One way they can go about it is to dedicate an one execution unit to 1 thread. I don't know about P4, but Athlon has 3, I believe, so you can have 3 simultaneous threads. This would kill the latency, but would increase the throughput.
I think the key to a successful implementation of Hyperthreading is to know when to turn it off selectively, which seems to be a very complicated algorithm, and only a close collaboration of OS and hardware could achieve it. I don't think we are there yet.
I am looking forward to some of the more brainy guys on the web (Aces, Lost Circuits, and even Anand) to get their hands on this technology and present their opinions.
Joe |