Simultaneous Multithreading: Exploiting Instruction-Level and Thread-Level Parallelism in Microprocessors

TRICERATOPS

TriCollege Digital Repository

Simultaneous Multithreading: Exploiting Instruction-Level and Thread-Level Parallelism in Microprocessors

View Dublin Core Metadata

Title: Simultaneous Multithreading: Exploiting Instruction-Level and Thread-Level Parallelism in Microprocessors
Author: Butera, Jeffrey
Advisor: Wonnacott, David G.
Department: Haverford College. Dept. of Computer Science
Type: Thesis (B.S.)
Issue Date: 2011
Abstract: Increasing the performance of microprocessors has always been a pressing issue in the fields of Computer Science and Computer Engineering. The first processors functioned by executing a single stream of sequential instructions. The initial approach to increasing the speed of instruction execution involved using smaller and faster transistors so that the clock frequency could be increased. This approach was stymied by slow memory accesses that could not keep up with a fast clock cycle. Cache memories were developed to keep frequently accessed data closer to the processor to prevent the types of stalls. RISC, reduced instruction set computing, architectures were also designed to allow for faster clock cycles and execution. After RISC, the focus shifted away from speeding up the execution of a single instruction and moved towards increasing the number of instructions that can be active in a single clock cycle. Different designs, such as pipelining and superscalars, allowed multiple instructions to be issued in the same clock cycle, but were limited by increased power consumption, heat, and chip size. Multi-core and multiprocessor designs allowed multiple threads of instructions to be simultaneously executed on different processors or cores. These designs were improved by the development of multithreading, which aimed to increase threadlevel parallelism on a single core. This thesis addresses the intricacies of a specific type of hardware multithreading: Simultaneous Multithreading (SMT). SMT is a technique used to increase the performance of a microprocessor by exploiting parallelism in all available forms. SMT combines instruction-level and thread-level parallelism and enables multiple instructions from multiple threads to be issued in the same clock cycle. This paper is a detailed examination of Simultaneous Multithreading and will specifically address: how multiple instructions are fetched and issued simultaneously, how hardware resources are designated amongst threads, the performance upgrade associated with SMT in terms of instructions per cycle, the energy-efficiency of the design, and how SMT is utilized in general purpose microprocessors such as in the Intel Pentium 4 Hyper-Threading processor.
Subject: Simultaneous multithreading processors
Subject: Parallel processing (Electronic computers)
Terms of Use: http://creativecommons.org/licenses/by-nc/3.0/us/
Permanent URL: http://hdl.handle.net/10066/7570

Files in this item

Files Description Size Format
2011ButeraJ_release.pdf **Archive Staff Only** 85.14Kb PDF
2011ButeraJ_thesis.pdf Thesis 153.8Kb PDF

Citation

Butera, Jeffrey. "Simultaneous Multithreading: Exploiting Instruction-Level and Thread-Level Parallelism in Microprocessors". 2011. Available electronically from http://hdl.handle.net/10066/7570.

This item appears in the following Collection(s)

View Dublin Core Metadata

http://creativecommons.org/licenses/by-nc/3.0/us/ Except where otherwise noted, this item's license is described as http://creativecommons.org/licenses/by-nc/3.0/us/