Vol. 3 8-1
CHAPTER 8
MULTIPLE-PROCESSOR MANAGEMENT
The Intel 64 and IA-32 architectures provide mechanisms for managing and
improving the performance of multiple processors connected to the same system
bus. These include:
• Bus locking and/or cache coherency management for performing atomic
operations on system memory.
• Serializing instructions. These instructions apply only to the Pentium 4, Intel
Xeon, P6 family, and Pentium processors.
• An advance programmable interrupt controller (APIC) located on the processor
chip (see
Chapter 10, “Advanced Programmable Interrupt Controller (APIC)”).
This feature was introduced by the Pentium processor.
• A second-level cache (level 2, L2). For the Pentium 4, Intel Xeon, and P6 family
processors, the L2 cache is included in the processor package and is tightly
coupled to the processor. For the Pentium and Intel486 processors, pins are
provided to support an external L2 cache.
• A third-level cache (level 3, L3). For Intel Xeon processors, the L3 cache is
included in the processor package and is tightly coupled to the processor.
• Intel Hyper-Threading Technology. This extension to the Intel 64 and IA-32 archi-
tectures enables a single processor core to execute two or more threads concur-
rently (see Section 8.5, “Intel
®
Hyper-Threading Technology and Intel
®
Multi-
Core Technology”).
These mechanisms are particularly useful in symmetric-multiprocessing (SMP)
systems. However, they can also be used when an Intel 64 or IA-32 processor and a
special-purpose processor (such as a communications, graphics, or video processor)
share the system bus.
These multiprocessing mechanisms have the following characteristics:
• To maintain system memory coherency — When two or more processors are
attempting simultaneously to access the same address in system memory, some
communication mechanism or memory access protocol must be available to
promote data coherency and, in some instances, to allow one processor to
temporarily lock a memory location.
• To maintain cache consistency — When one processor accesses data cached on
another processor, it must not receive incorrect data. If it modifies data, all other
processors that access that data must receive the modified data.
• To allow predictable ordering of writes to memory — In some circumstances, it is
important that memory writes be observed externally in precisely the same order
as programmed.