background image

8-32 Vol. 3A

MULTIPLE-PROCESSOR MANAGEMENT

In general, each processor core has dedicated microarchitectural resources identical to a single-processor imple-
mentation of the underlying microarchitecture without hardware multi-threading capability. Each logical processor 
in a dual-core processor (whether supporting Intel Hyper-Threading Technology or not) has its own APIC function-
ality, PAT, machine check architecture, debug registers and extensions. Each logical processor handles serialization 
instructions or self-modifying code on its own. Memory order is handled the same way as in Intel Hyper-Threading 
Technology.
The topology of the cache hierarchy (with respect to whether a given cache level is shared by one or more 
processor cores or by all logical processors in the physical package) depends on the processor implementation. 
Software must use the deterministic cache parameter leaf of CPUID instruction to discover the cache-sharing 
topology between the logical processors in a multi-threading environment.

8.8.1 

Logical Processor Support

The topological composition of processor cores and logical processors in a multi-core processor can be discovered 
using CPUID. Within each processor core, one or more logical processors may be available. 
System software must follow the requirement MP initialization sequences (see Section 8.4, “Multiple-Processor 
(MP) Initialization”) to 
recognize and enable logical processors. At runtime, software can enumerate those logical 
processors enabled by system software to identify the topological relationships between these logical processors. 
(See Section 8.9.5, “Identifying Topological Relationships in a MP System”). 

8.8.2 

Memory Type Range Registers (MTRR)

MTRR is shared between two logical processors sharing a processor core if the physical processor supports Intel 
Hyper-Threading Technology. MTRR is not shared between logical processors located in different cores or different 
physical packages. 
The Intel 64 and IA-32 architectures require that all logical processors in an MP system use an identical MTRR 
memory map. This gives software a consistent view of memory, independent of the processor on which it is 
running. 
See Section 11.11, “Memory Type Range Registers (MTRRs).”

8.8.3 

Performance Monitoring Counters

Performance counters and their companion control MSRs are shared between two logical processors sharing a 
processor core if the processor core supports Intel Hyper-Threading Technology and is based on Intel NetBurst 
microarchitecture. They are not shared between logical processors in different cores or different physical packages. 
As a result, software must manage the use of these resources, based on the topology of performance monitoring 
resources. Performance counter interrupts, events, and precise event monitoring support can be set up and allo-
cated on a per thread (per logical processor) basis. 
See Section 18.16, “Performance Monitoring and Intel Hyper-Threading Technology in Processors Based on Intel 
NetBurst

®

 Microarchitecture.”

8.8.4 IA32_MISC_ENABLE 

MSR

Some bit fields in IA32_MISC_ENABLE MSR (MSR address 1A0H) may be shared between two logical processors 
sharing a processor core, or may be shared between different cores in a physical processor. See Chapter 35, 
“Model-Specific Registers (MSRs),”
.

8.8.5 

Microcode Update Resources

Microcode update facilities are shared between two logical processors sharing a processor core if the physical 
package supports Intel Hyper-Threading Technology. They are not shared between logical processors in different