Simultaneous multithreading

Simultaneous multithreading, acronym SMT, is a technique for improving the overall efficiency of superscalar CPUs with Hardware multithreading. SMT permits multiple independent threads of execution to better utilize the resources provided by modern computer architectures.
Multithreading is similar in concept to multitasking but is implemented at the thread level of execution in modern superscalar processors.
In processor design, there are two ways to increase on-chip parallelism with less resource requirements: 
There are many ways to support more than one thread inside a chip, namely:
The key factor to distinguish them is to look at how many instructions the processor can issue in one cycle and how many threads from which the instructions come.