Thread: Hyper threading
View Single Post
Old 06-24-2005, 10:54 PM   #2 (permalink)
Cromewell
Moderator
 
Cromewell's Avatar
 
Join Date: Dec 2004
Location: Canada
Age: 25
Posts: 10,368
Default

He was actually referring to me, but here we go:

Hyperthreading makes one physical processor look like 2 (or potentially more) processors to the OS and other applications. Each logical processor holds the state of the architecture in it's own set of registers and they share access to the execution units of the CPU (ALU, FPU, etc).

When 2 tasks are executed there are 2 next instruction pointers (for each logical processor) and each takes turns (alternating each cycle) reading from the trace cache. If only 1 task is active, there is no sharing of resources, the logical processor has full access to all the resources of the CPU. All elements of the CPU are shared in this way.

Unfortunately it isn't perfect. One problem occurs when one logical core goes into an 'idle' look for work state instead of using the halt state when no work is available or the pause state when it is necessary to wait for x cycles. If this happens the logical core takes up resources to look for work/do nothing and impacts performance.
__________________

You know what the chain of command is? It's the chain I go get and beat you with 'til ya understand who's in ruttin' command here.

www.userfriendly.org
Cromewell is offline   Reply With Quote