01-09-2012, 12:39 PM
Hyper-Threading
Hyper.ppt (Size: 270.5 KB / Downloads: 159)
Threading Algorithms
Time-slicing
A processor switches between threads in fixed time intervals.
High expenses, especially if one of the processes is in the wait state.
Switch-on-event
Task switching in case of long pauses
Waiting for data coming from a relatively slow source, CPU resources are given to other processes
Multiprocessing
Distribute the load over many processors
Adds extra cost
Simultaneous multi-threading
Multiple threads execute on a single processor without switching.
Basis of Intel’s Hyper-Threading technology.
Hyper-Threading Concept
At each point of time only a part of processor resources is used for execution of the program code.
Unused resources can also be loaded, for example, with parallel execution of another thread/application.
Extremely useful in desktop and server applications where many threads are used.
Hyper-Threading Architecture
Operating systems and user programs can schedule processes or threads to logical processors as if they were in a multiprocessing system with physical processors.
From an architecture perspective we have to worry about the logical processors using shared resources.
Caches, execution units, branch predictors, control logic, and buses.
Advantages
Extra architecture only adds about 5% to the total die area.
No performance loss if only one thread is active. Increased performance with multiple threads
Better resource utilization.
Disadvantages
To take advantage of hyper-threading performance, serial execution can not be used.
Threads are non-deterministic and involve extra design
Threads have increased overhead
Shared resource conflicts
Hyper.ppt (Size: 270.5 KB / Downloads: 159)
Threading Algorithms
Time-slicing
A processor switches between threads in fixed time intervals.
High expenses, especially if one of the processes is in the wait state.
Switch-on-event
Task switching in case of long pauses
Waiting for data coming from a relatively slow source, CPU resources are given to other processes
Multiprocessing
Distribute the load over many processors
Adds extra cost
Simultaneous multi-threading
Multiple threads execute on a single processor without switching.
Basis of Intel’s Hyper-Threading technology.
Hyper-Threading Concept
At each point of time only a part of processor resources is used for execution of the program code.
Unused resources can also be loaded, for example, with parallel execution of another thread/application.
Extremely useful in desktop and server applications where many threads are used.
Hyper-Threading Architecture
Operating systems and user programs can schedule processes or threads to logical processors as if they were in a multiprocessing system with physical processors.
From an architecture perspective we have to worry about the logical processors using shared resources.
Caches, execution units, branch predictors, control logic, and buses.
Advantages
Extra architecture only adds about 5% to the total die area.
No performance loss if only one thread is active. Increased performance with multiple threads
Better resource utilization.
Disadvantages
To take advantage of hyper-threading performance, serial execution can not be used.
Threads are non-deterministic and involve extra design
Threads have increased overhead
Shared resource conflicts