Specifications

Chapter 2. Architecture and technical overview 43
2.1.3 Simultaneous multithreading
An enhancement in the POWER7 processor is the addition of the SMT4 mode to enable four
instruction threads to execute simultaneously in each POWER7 processor core. Thus, these
are the instruction thread execution modes of the POWER7 processor:
򐂰 SMT1: Single instruction execution thread per core
򐂰 SMT2: Two instruction execution threads per core
򐂰 SMT4: Four instruction execution threads per core
SMT4 mode enables the POWER7 processor to maximize the throughput of the processor
core by offering an increase in processor-core efficiency. SMT4 mode is the latest step in an
evolution of multithreading technologies introduced by IBM. Figure 2-4 shows the evolution of
simultaneous multithreading in the industry.
Figure 2-4 Evolution of simultaneous multi-threading
The various SMT modes offered by the POWER7 processor allow flexibility, enabling users to
select the threading technology that meets an aggregation of objectives such as
performance, throughput, energy use, and workload enablement.
Intelligent Threads
The POWER7 processor features Intelligent Threads that can vary based on the workload
demand. The system either automatically selects (or the system administrator can manually
select) whether a workload benefits from dedicating as much capability as possible to a
single thread of work, or if the workload benefits more from having capability spread across
two or four threads of work. With more threads, the POWER7 processor can deliver more
total capacity as more tasks are accomplished in parallel. With fewer threads, those
workloads that need very fast individual tasks can get the performance that they need for
maximum benefit.
Multi-threading evolution
Thread 1 ExecutingThread 0 Executing No Thread Executing
FX0
FX1
FP0
FP1
LS0
LS1
BRX
CRL
1995 single thread out of order
FX0
FX1
FP0
FP1
LS0
LS1
BRX
CRL
1997 hardware multi-thread
FX0
FX1
FP0
FP1
LS0
LS1
BRX
CRL
2004 2-way SMT
FX0
FX1
FP0
FP1
LS0
LS1
BRX
CRL
2010 4-way SMT
Thread 3 ExecutingThread 2 Executing