1 / 12

Multithreaded Processors

Multithreaded Processors. Multithreading: What is a thread?. A thread is the smallest unit execution a piece of code. A process consists of one or more threads. Processes own system resources, e.g. memory, files etc. Threads share system resources of their process.

kapila
Télécharger la présentation

Multithreaded Processors

An Image/Link below is provided (as is) to download presentation Download Policy: Content on the Website is provided to you AS IS for your information and personal use and may not be sold / licensed / shared on other websites without getting consent from its author. Content is provided to you AS IS for your information and personal use only. Download presentation by click this link. While downloading, if for some reason you are not able to download a presentation, the publisher may have deleted the file from their server. During download, if you can't get a presentation, the file might be deleted by the publisher.

E N D

Presentation Transcript


  1. Multithreaded Processors

  2. Multithreading: What is a thread? • A thread is the smallest unit execution a piece of code. • A process consists of one or more threads. Processes own system resources, e.g. memory, files etc. • Threads share system resources of their process. • Threads have their own stack. • Usage • Programming of concurrent activities, e.g. internet browser uses threads to load of pages and handle user input. • Parallel computing

  3. Multithreading in a Processor • The processors supports multiple threads in hardware. • Enabling fast thread switches • Advantage • Latency hiding: While a load is serviced from main memory, another thread can fill the pipeline. • Improved utilization of functional units • Required architectural support • Multiple register files • Bookeeping hardware for threads

  4. Multithreading Approaches • Cycle-by-cycle Interleaving • Processor executes a number of threads • It switches in each cycle to another thread. • The next instructions of that thread are started. • Block Interleaving • Instructions of a thread are executed until a long latency instruction is executed. • Then, the processor provisionally switches to an other thread.

  5. Multithreading Approaches • Simultaneous Multithreading (SMT) • The issue unit starts instructions of multiple threads in a single cycle. • Each thread has its own register file. • Beispiele: • Intel Hyperthreading • IBM Power processors

  6. Visualization for a Scalar Processor

  7. Evaluation for Scalar Processor • Single-Threaded scalar • Stall cycles can only be hidden by out-of-order execution. • Cycle-by-cycle • Requirement: Processors supports as many threads as pipeline stages. • Advanatage: all instructions are indepent. • Block-Interleaving • Switch happens only for long latency instructions. • Advantage: reduced number of stall cycles • Common to all variants • Dependences within a thread are respected.

  8. Comparison for Superscalar Processors

  9. Evaluation for Superscalar Processors • Single Threaded • Stall cycles and unused functional units due to a lack of independent instructions. • Cycle-by-Cycle and block interleaving • Stall cycles can be eliminated. Functional units might be empty. • Simultaneous Multithreading • Threads are executed in parallel. • More insructions to fill the functional units • Common • A single thread will not be faster. • Increased throughput

  10. Intel Hyperthreading • Simultaneous multhreading • Minimal hardware extensions to improve utilization of processor hardware. • Advantageous only for throughput loads or parallel applications.

  11. Extensions to Pentium 4 for Hyperthreading

More Related