Simultaneous Multi-threading is a technique in hardware which focuses to improve efficiency of CPUs which support speculative execution. It is designed by allowing multiple execution pipelines in one physical core. It is based on the principle that accessing memory in RAM is eternally very long as compared to execution at the CPU level. Whenever the processor reads/writes data to or from physical memory then it remains idle for a considerable amount of time. That time can be utilized to execute other instructions in alternative execution pipelines.