Stating that previous, conventional CPUs do not offer true-multitasking abilities might sound like a bold statement, especially since Windows is all about multitasking. In essence conventional CPUs use various techniques to mimic multitasking behavior or shuffle instructions around and so does the Operating System. Modern CPUs for example, use out-of-order execution, OOE, which enables the CPU to make maximum use of processor resources.
An OOE processor combines multiple instruction sequences, meant to be executed in a specific order and reschedules them so that they can be executed with the highest efficiency. After execution they’re arranged back into their original order and the results are then written to main memory or are available for the next instruction sequence. To the user this process is transparent, only the CPU knows in what order the instructions were actually executed.
Fig 2. A typical SMP configuration featuring two Intel Xeon processors that feature Hyper-Threading.
Something similar actually happens when running Windows. To the user it appears that multiple programs are running at the same time, but in reality there’s only one program active at any given instant. A conventional single-threaded CPU can only execute one of these programs at a time and thus the Operating System mimics multitasking behavior by giving each program a piece of the available processor time and then rapidly alternating between the pieces. What you change when you give a certain program ‘Above Normal’ priority in the taskmanager is simply giving it more execution time.
With SMT, Simultaneous Multi Threading, and SMP, Symmetric Multi Processing, we have two ways of going beyond the limitations of a conventional single-threaded processor. SMP is simply the addition of another single-threaded processor and results in a configuration being able to execute two threads simultaneously; SMT is the presence of another logical processor within the same physical processor and again the ability to execute two threads simultaneously.
From that perspective it would mean that SMP and SMT are somewhat comparable and that Hyper-Threading is an alternative to SMP. Unfortunately this is not entirely accurate, although Hyper-Threading tackles a lot of the multitasking hurdles and does offer true-multitasking support there’s more going on in the processor’ core that needs attention.