Vol. 3 8-35
MULTIPLE-PROCESSOR MANAGEMENT
8.5 INTEL® HYPER-THREADING TECHNOLOGY AND INTEL® MULTI-CORE TECHNOLOGY
Intel Hyper-Threading Technology and Intel multi-core technology are extensions to
Intel 64 and IA-32 architectures that enable a single physical processor to execute
two or more separate code streams (called threads) concurrently. In Intel Hyper-
Threading Technology, a single processor core provides two logical processors that
share execution resources (see Section 8.7, “Intel® Hyper-Threading Technology
Architecture”). In Intel multi-core technology, a physical processor package provides
two or more processor co re s. Both co nfigur ations requ ire chipsets and a BIOS t hat
support the technologies.
Software should not rely on processor names to determine whether a processor
supports Intel Hyper-Threading Technology or Intel multi-core technology. Use the
CPUID instruction to determine processor capability (see Section 8.6.2, “Initializing
Multi-Core Processors”).
8.6 DETECTING HARDWARE MULTI-THREADING SUPPORT AND TOPOLOGY
Use the CPUID instruction to detect the presence of hardware multi-threading
support in a physical processor. Hardware multi-threading can support several vari-
eties of multigrade and/or Intel Hyper-Threading Technology. CPUID instruction
provides several sets of parameter information to aid software enumerating topology
information. The relevant topology enumeration parameters provided by CPUID
include:
Hardware Multi-Threading feature flag (CPUID.1:EDX[28] = 1)
Indicates when set that the physical package is capable of supporting Intel
Hyper-Threading Technology and/or multiple cores.
Processor topology enumeration parameters for 8-bit APIC ID:
Addressable IDs for Logical processors in the same Package
(CPUID.1:EBX[23:16]) — Indicates the maximum number of addressable
ID for logical processors in a physical package. Within a physical package,
there may be addressable IDs that are not occupied by any logical
processors. This parameter does not represents the hardware capability of
the physical processor.2
Addressable IDs for processor cores in the same Package3
(CPUID.(EAX=4, ECX=04):EAX[31:26] + 1 = Y) — Indicates the maximum
2. Operating system and BIOS may implement features that reduce the number of logical proces-
sors available in a platform to applications at runtime to less than the number of physical pack-
ages times the number of hardware-capable logical processors per package.