Temporal multithreading is one of the two main forms of multithreading that can be implemented on computer processor hardware, the other being simultaneous multithreading. The distinguishing difference between the two forms is the maximum number of concurrent threads that can execute in any given pipeline stage in a given cycle. In temporal multithreading the number is one, while in simultaneous multithreading the number is greater than one. Some authors use the term superthreading synonymously.[1]

Variations

edit

There are many possible variations of temporal multithreading, but most can be classified into two sub-forms:

Coarse-grained
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 or may not be additional penalty cycles when switching.
There are many possible variations of coarse-grained temporal multithreading, mainly concerning the algorithm that determines when thread switching occurs. This algorithm may be based on one or more of many different factors, including cycle counts, cache misses, and fairness.
Fine-grained (or interleaved)
The main processor pipeline may contain multiple threads, with context switches effectively occurring between pipe stages (e.g., in the barrel processor). This form of multithreading can be more expensive than the coarse-grained forms because execution resources that span multiple pipe stages may have to deal with multiple threads. Also contributing to cost is the fact that this design cannot 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.[2]

Comparison to simultaneous multithreading

edit

In any of its forms, temporal multithreading is similar in many ways to simultaneous multithreading. As in the simultaneous process, the hardware must store a complete set of states per concurrent thread implemented. The hardware must also preserve the illusion that a given thread has the processor resources to itself. Fairness algorithms must be included in both types of multithreading situations to prevent one thread from dominating processor time and/or resources.

Temporal multithreading has an advantage over simultaneous multithreading in that it causes lower processor heat output; however, it allows only one thread to be executed at a time.

See also

edit

References

edit
  1. ^ Stokes, Jon (October 3, 2002). "Introduction to Multithreading, Superthreading and Hyperthreading". Ars Technica. Superthreading with a multithreaded processor.
  2. ^ Silberschatz, Abraham (2012). Operating System Concepts. Wiley, 9th Edition. p. 283. ISBN 978-1118063330.

📚 Artikel Terkait di Wikipedia

Simultaneous multithreading

Simultaneous multithreading (SMT) is one of the two main implementations of multithreading, the other form being temporal multithreading (also known as

Multithreading (computer architecture)

of event. This type of multithreading is known as block, cooperative or coarse-grained multithreading. The goal of multithreading hardware support is to

Parallel computing

issue multiple instructions per clock cycle from multiple threads. Temporal multithreading on the other hand includes a single execution unit in the same

Barrel processor

also known as "interleaved" or "fine-grained" temporal multithreading. Unlike simultaneous multithreading in modern superscalar architectures, it generally

Central processing unit

physical CPUs, called processor cores, can also be multithreaded to support CPU-level multithreading. An IC that contains a CPU may also contain memory

Qualcomm Hexagon

toward efficient signal processing. Hardware multithreading is implemented as barrel temporal multithreading - threads are switched in round-robin fashion

PIC instruction listings

instructions and 2 cycles for control transfers; and some models support temporal multithreading, having multiple execution contexts whose execution is interleaved

MT

Station in the GSM system architecture Multithreading (computer architecture), in computer hardware Multithreading (software), in computer software Multi-topology