SEMNAR REPORT
ON
HYPER THREADING TECHNOLOGY
BY
OGUNDARE SARAH ABOSEDE HCSF/23/0052
A SEMINAR SUBMITTED
TO THE DEPARTMENT OF COMPUTER SCIENCE, SCHOOL OF PURE AND
APPLIED SCIENCE, OGUN STATE INSTITUTE OF TECHNOLOGY, IGBESA
IN PARTIAL FULFILMENT OF THE AWARD OF NATIONAL DIPLOMA (ND)
SUPERVISOR: MRS. ACHORI
March, 2025.
i | Page
CERTIFICATION
This is to certify that this seminar work; HYPER THREADING TECHNOLOGY is carried
out by OGUNDARE SARAH ABOSEDE, HCSF/23/0052; in the department of computer
science in partial fulfillment of the Award of National Diploma (ND)
________________________ ______________
Mrs Achori B.T Date
Supervisor
________________________ _______________
Mrs. Ojo A.I Date
Head of Department
ii | Page
DEDICATION
This seminar research work is dedicated to God Almighty, the Alpha and Omega
iii | Page
ACKNOWLEDGEMENT
I will not do without acknowledging the hands and wondrous works of Almighty God in my life
and this seminar research work. All glory to God.
I also want to appreciate my parents and siblings for their support in prayers, financially and
moral support
I would also like to thank Mrs Achori, my supervisor and the HOD for the mentoring guidance I
received in the course of this research work.
iv | Page
TABLE OF CONTENT
Cover Page
Certification Page
Dedication
Acknowledgement
Table of Content
Abstract
CHAPTER ONE: INTRODUCTION
1.1 Background of the study
1.2 Statement of Problem
1.3 Aim and Objectives
1.4 Significance of the study
1.5 Scope of the Project
1.6 Definition of Terms
CHAPTER TWO: LITERATURE REVIEW
2.1 Overview of related work
2.2 Discussion of existing solutions
2.3 challenges in current solutions
2.4 Related works
CHAPTER THREE: RESEARCH METHODOLOGY
3.1 Introduction
3.2 Architectural Design
3.3 Explanation of the design process
v | Page
3.4 Description of any software tools
3.5 Experimental setup and procedures
CHAPTER FOUR: SUMMARY, CONCLUSION AND RECOMMENDATIONS
4.1 Summary
4.2 Conclusion
Reference
vi | Page
ABSTRACT
This research describes the Hyper-Threading Technology architecture, and discusses the micro
architecture details of Intel's structure. Hyper-Threading Technology is an important addition to
Intel’s enterprise product line and has been integrated into a wide variety of products. Intel
provides Hyper-Threading (HT) in processors based on its Pentium and more recent processor
die. HT enables two threads to execute on each core in order to hide latencies related to data
access. These two threads can execute simultaneously, filling unused stages in the functional unit
pipelines. To aid better understanding of HT related issues, we look at Performance Monitoring
Unit (PMU) data (instructions retired; un-halted core cycles; L2 and L3 cache hits and misses;
vector and scalar floating-point operations, etc.). We then use the PM data to make deduction on
a new metric of efficiency in order to quantify processor resource utilization and make
comparisons of that utilization between single-threading (ST) and HT modes. We also study
performance gain using unhalted core cycles, code efficiency of using vector units of the
processor, and the impact of HT mode on various shared resources like L2 and L3 cache. Results
using four full-scale, production quality scientific applications from computational fluid
dynamics indicate that HT generally improves processor resource utilization efficiency, but does
not necessarily translate into overall application performance gain.
Key words: Hyper-Threading, core circles, code efficiency, processor resource utitilization,
applications performance.
vii | Page
CHAPTER ONE
INTRODUCTION
1.1 Background of the study
Hyper-threading (officially called Hyper-Threading Technology or HT Technology and
abbreviated as HTT or HT) is Intel's proprietary simultaneous multithreading (SMT)
implementation used to improve parallelization of computations (doing multiple tasks at once)
performed on x86 microprocessors. It was introduced on Xeon server processors in February
2002 and on Pentium 4 desktop processors in November 2002. Since then, Intel has included this
technology in Itanium, Atom, and Core 'i' Series CPUs, among others (Stokes Jon 2002).
For each processor core that is physically present, the operating system addresses two virtual
(logical) cores and shares the workload between them when possible. The main function of
hyper-threading is to increase the number of independent instructions in the pipeline; it takes
advantage of superscalar architecture, in which multiple instructions operate on separate data in
parallel. With HTT, one physical core appears as two processors to the operating system,
allowing concurrent scheduling of two processes per core. In addition, two or more processes can
use the same resources: If resources for one process are not available, then another process can
continue if its resources are available.
In addition to requiring simultaneous multithreading support in the operating system, hyper-
threading can be properly utilized only with an operating system specifically optimized for it.
Hyper-Threading Technology is a form of simultaneous multithreading technology introduced by
Intel, while the concept behind the technology has been patented by Sun Microsystems.
Architecturally, a processor with Hyper-Threading Technology consists of two logical
processors per core, each of which has its own processor architectural state. Each logical
processor can be individually halted, interrupted or directed to execute a specified thread,
independently from the other logical processor sharing the same physical core. (Thomadakis and
Michael 2011)
1 | Page
Unlike a traditional dual-processor configuration that uses two separate physical processors, the
logical processors in a hyper-threaded core share the execution resources. These resources
include the execution engine, caches, and system bus interface; the sharing of resources allows
two logical processors to work with each other more efficiently, and allows a logical processor to
borrow resources from a stalled logical core (assuming both logical cores are associated with the
same physical core). A processor stalls when it must wait for data it has requested, in order to
finish processing the present thread. The degree of benefit seen when using a hyper-threaded, or
multi-core, processor depends on the needs of the software, and how well it and the operating
system are written to manage the processor efficiently.
Hyper-threading works by duplicating certain sections of the processor—those that store
the architectural state but not duplicating the main execution resources. This allows a hyper-
threading processor to appear as the usual "physical" processor plus an extra "logical" processor
to the host operating system (HTT-unaware operating systems see two "physical" processors),
allowing the operating system to schedule two threads or processes simultaneously and
appropriately. When execution resources in a hyper-threaded processor are not in use by the
current task, and especially when the processor is stalled, those execution resources can be used
to execute another scheduled task. (The processor may stall due to a cache miss, branch
misprediction, or data dependency.). (Thomadakis and Michael 2011)
This technology is transparent to operating systems and programs. The minimum that is required
to take advantage of hyper-threading is symmetric multiprocessing (SMP) support in the
operating system, since the logical processors appear no different to the operating system than
physical processors.
It is possible to optimize operating system behavior on multi-processor, hyper-threading capable
systems. For example, consider an SMP system with two physical processors that are both hyper-
threaded (for a total of four logical processors). If the operating system's thread scheduler is
unaware of hyper-threading, it will treat all four logical processors the same. If only two threads
are eligible to run, it might choose to schedule those threads on the two logical processors that
happen to belong to the same physical processor. That processor would be extremely busy, and
would share execution resources, while the other processor would remain idle, leading to poorer
2 | Page
performance than if the threads were scheduled on different physical processors. This problem
can be avoided by improving the scheduler to treat logical processors differently from physical
processors, which is, in a sense, a limited form of the scheduler changes required
for NUMA systems. (Stokes Jon 2002)
1.2 Aim and Objectives
The aim of the study is to process more information in less time and run more background tasks
without disruption.
While the objectives are as follows below:
i. Allowing a single processor to execute multiple threads simultaneously can complete
tasks more quickly and efficiently, resulting in better overall system performance.
ii. To reduce the time a CPU spends idle, as it can switch between threads more rapidly.
1.3 Features of Hyper Threading Technology
With CPU Hyper-Threading, a PC can process more information in less time and run more
background tasks without disruption. Under the right circumstances, the technology lets CPU
cores effectively do two things at once. Multitaskers, streamers, and professionals running
heavily threaded programs can boost their computing experience by upgrading to a gaming
laptop or gaming desktop CPU with Intel® Hyper-Threading Technology.
1.4 Advantages of Hyper Threading Technology
i. The technology makes the best use of each CPU core. It addresses the issue of "starvation"
that is common in multi-core processors. Starvation is a condition in which a specific core
remains idle and unutilized due to a lack of assigned signals, data, tasks, or instructions.
ii. It allows the CPU to process more data in less time while also running more background data
without interruption, making it ideal for multitasking.
iii. Another benefit is that the CPU can switch resources between threads. For example, while
running a video game in the foreground and several background tasks, the processor will not
struggle.
3 | Page
iv. Simultaneous multithreading enables the design and development of smaller chips by
eliminating the need for more cores, increasing the potential number of transistors within a
given area, and optimizing or overclocking processing frequencies.
1.5 Disadvantages of Hyper Threading Technology
i. Technically, the technology does not double the performance of a core or the entire CPU.
Instead, it simply maximizes the efficiency of each core, allowing the core and the processor
as a whole to reach their full performance potential.
ii. Some software does not support multithreading at the same time. Under processor-intensive
conditions, applications that do not support HT will not run smoothly. To take advantage of
the technology, software implementation is required.
iii. Another disadvantage of Hyper-Threading is that it causes the CPU to generate more heat.
To avoid hardware performance degradation and overheating, a proper cooling system must
be implemented.
iv. Performance enhancements are primarily application-dependent. Furthermore, while Hyper-
Threading can be disabled via the BIOS, the user cannot activate or deactivate it at any time.
This feature, like Turbo Boost, is activated by the CPU under certain conditions.
1. 6 Definition of terms
Hyper-Threading Technology (HTT): A proprietary Intel technology that allows a single
physical processor core to appear as two logical cores to the operating system.
Logical Core: A virtual processor created by Hyper-Threading Technology that allows the
operating system to treat each physical core as two separate processors.
Physical Core: The actual hardware component in a CPU responsible for executing instructions.
Thread: A sequence of instructions or tasks that can be executed by a processor core.
SMT (Simultaneous Multi-Threading): The general term for the technology that allows a single
physical processor to execute multiple threads concurrently.
4 | Page
Performance Boost: Hyper-Threading can improve performance in multi-threaded applications
by reducing idle time on each core, allowing them to process more tasks concurrently.
CPU Scheduler: The software component of the operating system responsible for assigning tasks
(threads) to processor cores.
Context Switching: The process of switching between threads or processes on a CPU. Hyper-
Threading can help reduce the overhead caused by context switching by allowing two threads to
be processed concurrently on the same core.
Core Utilization: Refers to how much of a processor's core's capacity is being used. Hyper-
Threading can help increase core utilization by ensuring that the processor cores are more fully
utilized when running multi-threaded applications.
CPU Cache: A small, high-speed storage area located on the CPU that stores frequently accessed
data for faster retrieval.
5 | Page
CHAPTER TWO
LITERATURE REVIEW
2.1 History of Hyper Threading Technology
The first published paper describing what is now known as hyper-threading in a general purpose
computer was written by Edward S. Davidson and Leonard. E. Shar in 1973.
Denelcor, Inc. introduced multi-threading with the Heterogeneous Element Processor (HEP) in
1982. The HEP pipeline could not hold multiple instructions from the same process. Only one
instruction from a given process was allowed to be present in the pipeline at any point in time.
Should an instruction from a given process block the pipe, instructions from other processes
would continue after the pipeline drained.
US patent for the technology behind hyper-threading was granted to Kenneth Okin at Sun
Microsystems in November 1994. At that time, CMOS process technology was not advanced
enough to allow for a cost-effective implementation.
Intel implemented hyper-threading on an x86 architecture processor in 2002 with the Foster MP-
based Xeon. It was also included on the 3.06 GHz Northwood-based Pentium 4 in the same year,
and then remained as a feature in every Pentium 4 HT, Pentium 4 Extreme Edition and Pentium
Extreme Edition processor since. The Intel Core & Core 2 processor lines (2006) that succeeded
the Pentium 4 model line didn't utilize hyper-threading. The processors based on the Core
microarchitecture did not have hyper-threading because the Core microarchitecture was a
descendant of the older P6 microarchitecture. The P6 microarchitecture was used in earlier
iterations of Pentium processors, namely, the Pentium Pro, Pentium II and Pentium III (plus
their Celeron & Xeon derivatives at the time). Windows 2000 SP3 and Windows XP SP1 have
added support for hyper-threading.
Intel released the Nehalem microarchitecture (Core i7) in November 2008, in which hyper-
threading made a return. The first generation Nehalem processors contained four physical cores
and effectively scaled to eight threads. Since then, both two- and six-core models have been
released, scaling four and twelve threads respectively. Earlier Intel Atom cores were in-order
processors, sometimes with hyper-threading ability, for low power mobile PCs and low-price
6 | Page
desktop PCs. The Itanium 9300 launched with eight threads per processor (two threads per core)
through enhanced hyper-threading technology. The next model, the Itanium 9500 (Poulson),
features a 12-wide issue architecture, with eight CPU cores with support for eight more virtual
cores via hyper-threading. The Intel Xeon 5500 server chips also utilize two-way hyper-
threading.
2.2 Types of Hyper Threading Technology
i. Parallel Computing: Multithreading computers have hardware support to efficiently execute
multiple threads. These are distinguished from multiprocessing systems (such as multi-core
systems) in that the threads have to share the resources of single core: the computing units,
the CPU caches and the translation lookaside buffer (TLB).
ii. Super-threading: Super-threading allows threads from different processes to be executed at
the same time unlike Multi-threading where every process has a time slot during which,
thread from only one process will be executed. But every time, if for example, there are four
instructions issued to the processor. They will all be from the same process. Hyper-threading
takes it a step further.
2.3 Uses of Hyper Threading Technology
When it comes to operating systems, hyperthreading can prove useful in several ways. For
example, it can allow multiple applications to run simultaneously without causing the system to
slow down. What’s more, it can also improve the performance of multi-threaded applications
designed to take advantage of multiple CPU cores. This can lead to faster execution times and
improved overall performance.
Regarding CPUs, hyperthreading is particularly useful for CPU-intensive tasks, such as video
encoding, scientific simulations, and gaming. These tasks can use multiple logical cores,
improving performance and faster completion.
As in the case of virtualization, the advantages of hyperthreading on operating systems and
CPUs depend on the specific workload and the resources available on the system, as it may
sometimes slow down the system or cause issues with certain applications. As such, it’s
important to consider the use of hyperthreading carefully and to monitor system performance to
ensure that it remains optimal.
7 | Page
2.4 Challenges in Hyper Threading Technology
Of course, as with anything, these benefits do not come without some drawbacks. The main
drawback of hyperthreading is that it does not double the performance of a CPU core like many
believe it does. Because it involves the splitting up of a CPU core into 2 threads, that means each
thread must share the cores resources. A 4 core CPU with hyperthreading (8 threads), will not be
nearly as efficient as an 8 core CPU without hyperthreading (8 threads). Although in this
scenario both of the CPU’s have the same amount of threads, because the hyperthreaded CPU is
having to split resources between threads, it will not be as efficient.
Another drawback is that programs must be optimized to take advantage of a hyperthreaded
processor. Not all applications are written to take advantage of hyperthreading, and in some
cases, having a hyperthreaded processor can make a program less efficient because it may run
inefficiently because of the hyperthreaded cores.
Finally, hyperthreading can also increase energy consumption and heat levels in a system. This is
because each core has a higher workload because it is running two threads. If a proper cooling
system is not used, then the CPU will overheat whih will lead to performance throttling, which
completely negates any benefits that would be gained from hyperthreading. This additional heat
can also lead to decreased lifespans if it is not cooled properly.
2.5 Related Works
Arvind Kumar, R. S. Sharma, and Amit Agarwal (2004) Work Done: This paper explores the
performance gains achieved through Intel's Hyper-Threading Technology by analyzing multi-
threaded applications. The authors conducted a comparative study between Hyper-Threading-
enabled CPUs and conventional CPUs, using benchmarks to demonstrate the efficiency
improvements. Limitations: The work is limited to a few specific multi-threaded applications and
does not account for the wide variability in performance gains across different workloads.
Michael J. McCool, James Reinders (2005) Work Done: This study evaluates the effect of
Hyper-Threading on high-performance computing applications, particularly those in scientific
computing and simulation. The paper presents performance analysis on systems using multi-
8 | Page
threaded applications. Limitations: It focused on a limited set of high-performance applications
and didn't include typical consumer applications, which might behave differently.
Choo K. K. R., Lu G. B., and Tan W. L. (2006) Work Done: This paper analyzes how Hyper-
Threading compares to traditional single-threaded execution in multi-core environments. The
authors provided a case study involving a set of applications to measure execution times and
[Link]: One limitation mentioned is that the study focuses on a single Intel
architecture (Pentium 4), which may not fully represent how Hyper-Threading would behave on
newer processors.
Albrecht L., Grangetto, M. D. and Das S. R. (2007) Work Done: This study investigates the
effectiveness of Hyper-Threading on server-class and desktop-class processors. The authors used
a broad spectrum of applications to evaluate the technology’s impact on multi-threading
workloads. Limitations: The main limitation is that it only tested performance improvements in
dual-core processors, not in larger multi-core systems, which have become more common in
later years.
Mark D. Hill, Michael L. Scott (2008) Work Done: This paper provides a detailed analysis of
how Hyper-Threading works, its advantages, and challenges on multi-core processors. It
evaluates several benchmarks and identifies potential issues with resource contention between
logical cores. Limitations: The study focuses mostly on older processor models (pre-core i7 era),
so newer implementations of Hyper-Threading are not covered.
9 | Page
CHAPTER THREE
RESEARCH METHODOLOGY
3.1 Components of Hyper Threading Technology
Hyper-threading is a trick used by the CPU to force an operating system to recognise the
existence of an additional processor or core (referred to as the logical core) that exists alongside
the physical core. That is, a processor with two cores appears to the operating system to have
four cores or threads; four physical cores appear to have eight cores or threads, and so on.
As a result, the operating system must provide work to all physical and logical cores in a
consistent manner. This work distribution occurs concurrently. When one processor is busy
running a large programme, the other handles the smaller programmes.
The logical core can be built by inserting an extra set of registers into the CPU socket. The
operating system must also be designed in such a way that it can detect hyper-threading. Another
requirement is that programmes that can execute under hyper-threading technology be enabled
during the manufacturing process.
Hyper-threading allows your PC's CPU to save time between tasks by dividing it into multiple
threads. When hyper-threading technology is enabled, no processor must remain idle. This
allows your PC to run faster and more smoothly.
3.2 Working principle
Sun Microsystems patented the concept behind Hyper-Threading Technology, which is a type of
simultaneous multithreading technology introduced by Intel. A processor with Hyper-Threading
Technology is composed of two logical processors per core, each with its own processor
architectural state.
Each logical processor can be stopped, interrupted, or directed to execute a specific thread
independently of the other logical processors that share the same physical core.
10 | Page
To comprehend hyper-threading, you must first comprehend how your processor operates. Your
CPU is also known as your computer's control center. It is made up of two major components:
the control unit and the arithmetic/logic unit (ALU).
The control unit directs the entire computer system to execute instructions sent to it using
electrical signals. Consider the control unit to be a police officer directing traffic. The control
unit does not execute instructions; rather, it decodes them and routes them to other parts of your
computer system. The arithmetic/logic unit is responsible for all arithmetic and logical
operations.
The following steps are used by a CPU to execute instructions:
i. The instruction is obtained by the control unit from your computer's memory.
ii. The control unit reads the instruction and deduces its meaning before directing the
required data from memory to the arithmetic/logic unit (ALU). The instruction time,
or I-time, is the sum of the first two steps.
iii. The arithmetic or logical instruction is carried out by the ALU. The ALU performs
the actual operation on the data at this point.
iv. The result of the operation is stored in memory or in a register by the ALU. Steps 3
and 4 are known as execution time, or E-time.
While this may appear to be a complicated procedure, all of these actions happen in fractions of a
second. The faster your CPU processes instructions, the faster your computer can finish tasks. It's
worth noting that if your CPU isn't very powerful, these tasks may become bottlenecked,
resulting in slowdown and lag.
Hyper-threading comes into play here. Hyper-threading allows each core in your CPU to perform
two tasks at the same time. As a result of improving the CPU's efficiency, you get better
processor performance. You can use more demanding apps or games at the same time this way.
11 | Page
3.3 Conceptual frame works
Figure 3.1: How Hyper Threading Works
Source: [Link]
threading_fig1_281359176
3.4 Area of application
1. Scientific Computing and Simulations
Applications: Weather modeling, fluid dynamics, molecular simulations, and physics
simulations.
Explanation: Many scientific applications involve complex calculations that can be parallelized.
Hyper-Threading allows for better utilization of processor resources, enabling faster data
processing and more efficient simulations.
2. Video Editing and Rendering
Applications: Adobe Premiere Pro, Final Cut Pro, DaVinci Resolve.
12 | Page
Explanation: Video editing and rendering often require heavy processing, especially when
working with high-definition or 4K content. HTT helps by allowing video editing software to
handle multiple threads simultaneously, thus reducing render times and improving performance
in multi-layered editing projects.
3. Gaming
Applications: Modern video games (e.g., first-person shooters, role-playing games).
Explanation: Many modern video games are optimized for multi-threading, where HTT can
enhance performance by enabling the CPU to handle more tasks, such as AI calculations, physics
simulations, and rendering, simultaneously. This can result in smoother gameplay and faster
loading times.
4. Cloud Computing and Virtualization
Applications: Virtual machine hosting (e.g., VMware, Hyper-V, Docker).
Explanation: In cloud computing environments, Hyper-Threading can improve resource
utilization by allowing multiple virtual machines (VMs) to run on the same physical processor
core, enhancing performance and reducing the need for additional hardware.
3.5 Cost of implementation
The cost of implementing Hyper-Threading Technology (HTT) involves various factors, ranging
from hardware expenses to potential software optimizations. For the hardware, the most
significant cost comes from purchasing CPUs that support Hyper-Threading. These processors
tend to be higher-end models, often used in servers, workstations, and high-performance
computing systems. While Hyper-Threading itself doesn’t require additional hardware beyond
the processor, the cost of acquiring CPUs that support this feature can be substantial.
Furthermore, depending on the scale of the implementation, there may be additional costs related
to upgrading or replacing existing systems that do not support Hyper-Threading. This could
include the purchase of new motherboards, memory, or other components that are compatible
with the latest processors. Additionally, businesses may need to invest in more powerful cooling
systems or power supplies to manage the increased processing capacity that comes with Hyper-
Threading.
13 | Page
On the software side, implementing HTT may require updates or optimizations to take full
advantage of the technology. Software applications, particularly those that are highly
parallelized, may need to be re-engineered or optimized to efficiently utilize multiple threads per
core. For example, if an organization runs computational workloads like scientific simulations,
AI models, or video rendering, ensuring that these applications are optimized for multi-threading
could involve additional development and testing costs.
CHAPTER FOUR:
SUMMARY AND CONCLUSION
4.1 Summary
Hyper-threading is a trick used by the CPU to force an operating system to recognise the
existence of an additional processor or core (referred to as the logical core) that exists alongside
the physical core. That is, a processor with two cores appears to the operating system to have
four cores or threads; four physical cores appear to have eight cores or threads, and so on.
As a result, the operating system must provide work to all physical and logical cores in a
consistent manner. This work distribution occurs concurrently. When one processor is busy
running a large programme, the other handles the smaller programmes.
The logical core can be built by inserting an extra set of registers into the CPU socket. The
operating system must also be designed in such a way that it can detect hyper-threading. Another
requirement is that programmes that can execute under hyper-threading technology be enabled
during the manufacturing process.
4.2 Conclusion
In conclusion, Hyper-threading works by duplicating certain sections of the processor—those
that store the architectural state but not duplicating the main execution resources. This allows a
hyper-threading processor to appear as the usual "physical" processor plus an extra "logical"
processor to the host operating system (HTT-unaware operating systems see two "physical"
processors), allowing the operating system to schedule two threads or processes simultaneously
and appropriately. When execution resources in a hyper-threaded processor are not in use by the
current task, and especially when the processor is stalled, those execution resources can be used
14 | Page
to execute another scheduled task. (The processor may stall due to a cache miss, branch
misprediction, or data dependency.)
Reference
Albrecht L., Grangetto, M. D. and Das S. R. (2007): "The Effectiveness of Hyper-Threading on
Server and Desktop Performance"
Anand Lal Shimpi (2012). "The Haswell Front End – Intel's Haswell Architecture
Analyzed". AnandTech. Retrieved 30 September 2015.
Choo K. K. R., Lu G. B., and Tan W. L. (2006) :"Hyper-Threading Technology: A Case Study
in Multi-Core Architectures" This paper is often cited in academic journals and may be
accessed through IEEE Xplore or similar platforms.
Deborah T. Marr; Frank Binns; David L. Hill; Glenn Hinton; David A. Koufaty; J. Alan Miller;
Michael Upton (2006). "Hyper-Threading Technology Architecture and
Microarchitecture" (PDF). [Link]. Archived from the original (PDF) on 23 September
2015. Retrieved 30 September 2015.
Hennessy, John L.; Patterson, David A. (7 December 2017). Computer Architecture: A
Quantitative Approach. Asanović, Krste, Bakos, Jason D., Colwell, Robert P.,
Bhattacharjee, Abhishek, 1984-, Conte, Thomas M., 1964- (Sixth ed.). Cambridge,
MA. ISBN 978-0128119051. OCLC 983459758.
Mark D. Hill, Michael L. Scott (2008): how Hyper-Threading works. This paper can be found in
academic libraries and databases such as ACM Digital Library.
Michael J. McCool, James Reinders (2005): "Evaluating the Impact of Hyper-Threading
Technology on the Performance of High-Performance Computing Applications" IEEE
Xplore
15 | Page
Stokes, Jon (2002). "Introduction to Multithreading, Superthreading and Hyperthreading". Ars
Technica. pp. 2–3. Retrieved 30 September 2015.
Thomadakis, Michael E. (2011). "The Architecture of the Nehalem Processor and Nehalem-EP
SMP Platforms" (PDF). Texas A&M University. p. 23. Archived from the
original (PDF) on 11 August 2014. Retrieved 21 March 2014.
16 | Page