Multithreading (computer architecture)
Through hardware -side multithreading (rarely also multithreading ) to work on multiple programs at the same time virtually certain processors with only one full processor core. Such a processor is called multithreaded.
The change between the programs is in contrast to the program or thread switch of an operating system here by the hardware in very rapid succession and without additional processor cycles. To this end, each thread has its own set of registers, including stack pointer and Program Counter. A multithreaded processor is thus logically and to settle in the hardware complexity between a simple processor and a multi-core processor.
Benefits of Multithreading
The benefits of multithreading is a better utilization of the resources of the CPU.
It is true that in modern processors, all of which have a pipeline, for example, by out-of- order execution already tried the workload to increase, yet studies have shown that many part works of the pipeline, for example, simultaneous multithreading can be utilized in addition even better. One reason for this pipeline hazards that can stop the pipeline shortly ( engl. to stall ).
Therefore Multithreadingfähige processors edit multiple threads quasi- simultaneously. This can be done in different versions:
Multithreadingfähige PC processors
In the PC area "Dual Core", "Quad Core" or " hexacore " processors in use today that are working with two, four or six parallel pipelines (see simultaneous multithreading and hyperthreading ). They are treated similarly, two separate processor cores of a symmetrical multi-processor system on the operating system.
Multithreadingfähige processors for embedded applications
In applications in the embedded systems offer multi-threaded processors in addition to pure performance gain additional opportunities through explicit use of multithreading. Such processors are programmable algorithms for controlling the individual program threads (called " context"). For example, deterministic occupy a certain amount of cycles and thus the processor performance a context. The contexts can also compete with a priority control at the computation time.
The individual contexts may be offset by corresponding commands in a wait state and be woken up by hardware events. This very fast reactions of the system are possible because (in contrast to classical hardware interrupt ) no overhead of context switch is necessary.
Contexts that occupy only a small part of the clock cycles can run permanently cyclically, without significantly affecting the performance of the system and fast signals are used, eg for generating or decrypting.
Thus it can be waived by the use of processors by multithreadingfähigen little effort in the processor chip on dedicated hardware or additional processors or digital signal processors.
Since considerably more than two threads are useful in these applications, not multiple pipelines are implemented in multithreadingfähige, embedded processors, but the first stage of the pipeline determines the context to be executed next.
Examples of multi-threaded processors for embedded application:
- Ubicom 3K ( 8 threads )
- Ubicom 5K Family ( 10 threads )
- MIPS 34K family (5 threads)
- Innovasic fido 1100 ( a main processor with 5 threads, 4 additional I / O processors )