How Simultaneous Multithreading Works Under the Hood

omnivore hardware computer-architecture high-priority

Read on Omnivore | Read Original

Highlights

Simultaneous multithreading (SMT) is a feature that lets a processor handle instructions from two different threads at the same time. ⤴️

Instruction pipelining and superscalar architecture significantly improve the instruction throughput and resource utilization of the processor. However, in practice, this max utilization can be difficult to achieve. To execute so many instructions in parallel, the processor needs to find enough independent instructions in the program, which is very hard. ⤴️

simultaneous multithreading was introduced. It enables the processor to issue instructions for multiple threads in the same cycle without any overhead of context switching. By definition, instructions of different threads are independent and can be executed in parallel which ultimately results in full utilization of the execution resources. ⤴️