Temporal multithreading is one of the two main forms of multithreading that can be implemented on computer hardware processor, the other being simultaneous multithreading . The distinguishing différence entre the two forms is the maximum number of concurrent threads That can execute in Any Given pipeline internship in a Given cycle . In temporal multithreading the number is one, while in multithreading multithreading the number is greater than one. Some authors use the term super-threading synonymously. 
There are many possible variations of temporal multithreading, but most can be classified into two sub-forms:
- The main processor pipeline contains only one thread at a time. The processor must effectively perform a rapid context switch before executing a different thread. This fast context switch is sometimes referred to as a thread switch . There may be no additional penalty cycles when switching.
- There are many possible variations of coarse-grained temporal multithreading. This algorithm can be based on a number of different factors, including cycle counts, cache misses , and fairness .
- Fine-grained (or interleaved)
The main processor pipeline may contain multiple threads, with context switches between pipes and processes (eg, in the barrel processor ). This form of multithreading can be more expensive than the coarse-grained forms of execution that multiple stages of pipe can have to deal with multiple threads. Also, it is possible that this design can not be optimized around the concept of a “background” thread – any of the concurrent threads implemented by the hardware might require its state to be read or written on any cycle. 
Comparison to simultaneous multithreading
In any of its forms, temporal multithreading is similar in many ways to simultaneous multithreading. As in the simultaneous process, the hardware must be a complete set of states per competitor thread implemented. The hardware must also preserve the illusion that a thread has the processor resources to itself. Fairness algorithms must be included in both types of multithreading situations.
Temporal multithreading has an advantage over simultaneous multithreading in that it causes lower processor heat output; however, it only allows one thread to be executed at a time.
- Simultaneous multithreading , another implementation of hardware multithreading
- Thread (computer science) , the fundamental software entity scheduled by the operating system kernel to execute on a CPU or processor (core)
- Symmetric multiprocessing , where the system (or partition of a larger computer hardware platform) contains more than one CPU or processor (core) and where the operating system is not limited to which of the available CPUs (cores) a given thread can be scheduled to execute on.
- Barrel processor
- Jump up^ Superthreading with a multithreaded processor
- Jump up^ Silberschatz, Abraham (2012). Operating System Concepts . Wiley, 9th Edition. p. 283. ISBN 1118063333 .