Intel® 64 and IA-32 Architectures Software Developer Manuals

ID 767375
Updated 10/31/2024
Version Latest
Public

author-image

By

Overview

These manuals describe the architecture and programming environment of the Intel® 64 and IA-32 architectures.

Electronic versions of these documents allow you to quickly get the information you need and print only the pages you want. The Intel® 64 and IA-32 architectures software developer's manuals are now available for download via one combined volume, a four-volume set, or a ten-volume set. All content is identical in each set; see details below.

The downloadable PDFs of all IA-32 Architectures Software Developer's Manual volumes are at version 085.
The downloadable PDF of the Intel® 64 and IA-32 Architectures Optimization Reference Manual Volume 1 is at version 050, and Volume 2 is at version 050.
Additional specifications, application notes, and technical papers may also be downloaded.

Note: If you would like to be notified of updates to the Intel® 64 and IA-32 Architectures Software Developer's Manuals, you may utilize a third-party service, such as Visualping*, to be notified of changes to this page (please reference 1 below).

Note: We no longer offer the Intel® 64 and IA-32 Architectures Software Developer's Manuals on CD-ROM. Hard copy versions of the manual are available for purchase via a print-on-demand fulfillment model through a third-party vendor, Lulu (please reference 1 and 2 below): http://www.lulu.com/spotlight/IntelSDM.

  1. Terms of use
  2. The print vendor sets the order price of each volume; Intel uploads the finalized master with zero royalty.

 

Combined Volume Set of Intel® 64 and IA-32 Architectures Software Developer’s Manuals

Document Description
Intel® 64 and IA-32 Architectures Software Developer’s Manual Combined Volumes: 1, 2A, 2B, 2C, 2D, 3A, 3B, 3C, 3D, and 4 This document contains the following:

Volume 1: Describes the architecture and programming environment of processors supporting IA-32 and Intel® 64 architectures.

Volume 2: Includes the full instruction set reference, A-Z. Describes the format of the instruction and provides reference pages for instructions.

Volume 3: Includes the full system programming guide, parts 1, 2, 3, and 4. Describes the operating-system support environment of Intel® 64 and IA-32 architectures, including memory management, protection, task management, interrupt and exception handling, multi-processor support, thermal and power management features, debugging, performance monitoring, system management mode, virtual machine extensions (VMX) instructions, Intel® Virtualization Technology (Intel® VT), and Intel® Software Guard Extensions (Intel® SGX).
NOTE: Performance monitoring events can be found here: https://perfmon-events.intel.com/

Volume 4: Describes the model-specific registers of processors supporting IA-32 and Intel® 64 architectures.
Intel® 64 and IA-32 Architectures Software Developer's Manual Documentation Changes Describes bug fixes made to the Intel® 64 and IA-32 architectures software developer's manual between versions.

NOTE: This change document applies to all Intel® 64 and IA-32 architectures software developer’s manual sets (combined volume set, 4 volume set, and 10 volume set).

 

Four-Volume Set of Intel® 64 and IA-32 Architectures Software Developer’s Manuals

This set consists of volume 1, volume 2 (combined 2A, 2B, 2C, and 2D), volume 3 (combined 3A, 3B, 3C, and 3D), and volume 4. This set allows easy navigation of the instruction set reference and system programming guide through a functional cross-volume table of contents, references, and index.

Document Description
Intel® 64 and IA-32 Architectures Software Developer's Manual Volume 1: Basic Architecture Describes processors' architecture and programming environment supporting IA-32 and Intel® 64 architectures.
Intel® 64 and IA-32 Architectures Software Developer's Manual Combined Volumes 2A, 2B, 2C, and  2D: Instruction Set Reference, A- Z This document contains the full instruction set reference, A-Z, in one volume. It describes the format of the instructions and provides reference pages for them. A functional cross-volume table of contents, references, and index allow for easy navigation of the instruction set reference.
Intel® 64 and IA-32 Architectures Software Developer's  Manual Combined Volumes 3A, 3B, 3C, and 3D: System Programming Guide This document contains the full system programming guide in one volume, parts 1, 2, 3, and 4. Describes the operating-system support environment of Intel® 64 and IA-32 architectures, including Memory management, protection, task management, interrupt and exception handling, multi-processor support, thermal and power management features, debugging, performance monitoring, system management mode, virtual machine extensions (VMX) instructions, Intel® Virtualization Technology (Intel® VT), and Intel® Software Guard Extensions (Intel® SGX). This document allows for easy navigation of the system programming guide through a functional cross-volume table of contents, references, and index.
NOTE: Performance monitoring events can be found here: https://perfmon-events.intel.com/
Intel® 64 and IA-32 Architectures Software Developer's  Manual Volume 4: Model-specific Registers Describes the model-specific registers of processors supporting IA-32 and Intel® 64 architectures.

 

Ten-Volume Set of Intel® 64 and IA-32 Architectures Software Developer's Manuals

This set contains identical information as the four-volume set. For convenience, it is separated into ten shorter PDFs: volume 1, volume 2A, volume 2B, volume 2C, volume 2D, volume 3A, volume 3B, volume 3C, volume 3D, and volume 4. This set is better suited to those with slower connection speeds.

Document Description
Intel® 64 and IA-32 Architectures Software Developer's Manual Volume 1: Basic Architecture Describes the architecture and programming environment of processors supporting IA-32 and Intel® 64 architectures.
Intel® 64 and IA-32 Architectures Software Developer's  Manual Volume 2A: Instruction Set Reference, A-L Describes the format of the instruction and provides reference pages for instructions (from A to L). This volume also contains the table of contents for volumes 2A, 2B, 2C, and 2D.
Intel® 64 and IA-32 Architectures Software Developer's Manual Volume 2B: Instruction Set Reference, M-U Provides reference pages for instructions (from M to U).
Intel® 64 and IA-32 Architectures Software Developer's Manual Volume 2C: Instruction Set Reference, V Provides reference pages for instructions (V).
Intel® 64 and IA-32 Architectures Software Developer's Manual Volume 2D: Instruction Set Reference, W-Z Provides reference pages for instructions (from W to Z), including the safer mode extensions reference. This volume also contains the appendices and index support for volumes 2A, 2B, 2C, and 2D.
Intel® 64 and IA-32 Architectures Software Developer's Manual Volume 3A: System Programming Guide, Part 1 This volume describes the operating-system support environment of the IA-32 and Intel® 64 architectures, including memory management, protection, task management, interrupt and exception handling, and multi-processor support. It also contains the table of contents for volumes 3A, 3B, 3C, and 3D.
Intel® 64 and IA-32 Architectures Software Developer's Manual Volume 3B: System Programming Guide, Part 2 Continues the coverage of system programming subjects begun in volume 3A. Volume 3B covers thermal and power management features, debugging, and performance monitoring.
NOTE: Performance monitoring events can be found here: https://perfmon-events.intel.com/
Intel® 64 and IA-32 Architectures Software Developer's Manual Volume 3C: System Programming Guide, Part 3 Continues the coverage of system programming subjects begun in volume 3A and volume 3B. Volume 3C covers system management mode, virtual machine extensions (VMX) instructions, and Intel® Virtualization Technology (Intel® VT).
Intel® 64 and IA-32 Architectures Software Developer's Manual Volume 3D: System Programming Guide, Part 4 Volume 3D covers system programming with Intel® Software Guard Extensions (Intel® SGX). This volume also contains the appendices and indexing support for volumes 3A, 3B, 3C, and 3D.
Intel® 64 and IA-32 Architectures Software Developer's Manual Volume 4: Model-specific Registers Describes the model-specific registers of processors supporting IA-32 and
Intel® 64 architectures.

 

Intel® Architecture Instruction Set Extensions Programming Reference and Related Specifications

Document Description
Intel® Architecture Instruction Set Extensions Programming Reference This document covers new instructions and features slated for future Intel® processors.
Intel® Advanced Performance Extensions (Intel® APX) Architecture Specification This document specifies the Intel® APX extension of the encodings and the semantics of Intel architecture. See article: Introducing Intel® Advanced Performance Extensions (Intel® APX)
Intel® Advanced Performance Extensions (Intel® APX) Software Enabling Introduction This document outlines the changes needed to enable Intel® APX in compilers, ABIs, operating systems, and hypervisors. See article: Introducing Intel® Advanced Performance Extensions (Intel® APX)
Intel® Advanced Performance Extensions (Intel® APX) Assembly Syntax Recommendations Intel® Advanced Performance Extensions (Intel® APX) introduces several new concepts that require new notations in assembly syntax. This document discusses recommendations for the new notations.
Intel® Advanced Vector Extensions 10.1 (Intel® AVX10.1) Architecture Specification This document describes the Intel® Advanced Vector Extensions 10.1 Instruction Set Architecture.
Intel® Advanced Vector Extensions 10.2 (Intel® AVX10.2) Architecture Specification This document describes the Intel® Advanced Vector Extensions 10.2 Instruction Set Architecture.
The Converged Vector ISA: Intel® Advanced Vector Extensions 10 Technical Paper This document provides introductory information regarding the converged vector ISA: Intel® Advanced Vector Extensions 10.

 

Intel® 64 and IA-32 Architectures Optimization Reference Manual

The Intel® 64 and IA-32 Architectures Optimization Reference Manual (ORM) provides information on current Intel microarchitectures. These two volumes describe code optimization techniques that enable you to tune your application for highly optimized results when running on current Intel® processors. Please visit the Intel® 64 and IA-32 Architectures Optimization site for the manual and many more optimization guides and tools.

 

Public Repositories on GitHub

Repository Description
https://github.com/intel/SDM-Processor-Topology-Enumeration A public repository with open-source code samples to accompany the Intel® 64 Architecture Processor Topology Enumeration Technical Paper.
https://intelxed.github.io The X86 Encoder Decoder (XED) is a software library for encoding and decoding X86 (IA32 and Intel64) instructions.

 

Related Specifications, Application Notes, and Technical Papers

Document Title Description
Hardware Prefetch Controls for Intel® Atom® Cores A description of tuning methods used to optimize the performance of hardware prefetchers, thus enabling them to increase a multicore system's performance.
Intel Analysis of Speculative Execution Side Channels This document provides an overview of the variants and related Intel security features.
Speculative Execution Side Channel Mitigations This document provides a detailed explanation of the security vulnerabilities and possible mitigations.
Complex Shadow-Stack Updates (Intel® Control-Flow Enforcement Technology) Intel’s Control-Flow Enforcement Technology (CET) uses shadow stacks to ensure the correctness of certain control-flow transfers. Some control-flow transfers update a shadow stack with multiple accesses, which is said to be complex. Certain events encountered during a complex shadow-stack update in a virtual machine may lead to unexpected behavior. This paper presents recommendations that operating systems and virtual machine monitors can use to prevent these unexpected behaviors. These recommendations are based on new CPU support planned by Intel.
Intel® Resource Director Technology (Intel® RDT) Architecture Specification This document defines the architecture specification of the Intel® Resource Director Technology (Intel® RDT) feature set.
Intel® 64 Architecture Processor Topology Enumeration Technical Paper This technical paper covers the topology enumeration algorithm for single-socket to multiple-socket platforms using Intel® 64 and IA-32 processors.

A public repository with open-source samples accompanies this technical paper. These code samples are released under a 0-Clause BSD license.

Public repository: https://github.com/intel/SDM-Processor-Topology-Enumeration
Runtime Microcode Update Technical Paper This document describes architectural enhancements and a software methodology to load microcode updates during runtime efficiently.
Optimizing Software for x86 Hybrid Architecture This technical document provides information on optimizing software for Intel® Core™ processors that support x86 hybrid architecture. The document provides an overview of x86 hybrid architecture, hybrid core usage with Windows, and details on how software applications and drivers can ensure optimal core usage. Key Windows Processor Power Management Settings (PPM Settings) that can be used on Intel Core processors that support x86 hybrid architecture to meet system performance vs. power goals are also described.
Flexible Return and Event Delivery Specification This specification describes a new feature for the Intel® 64 instruction set called flexible return and event delivery (FRED).
Intel Key Locker Specification This document describes the software programming interface for the Intel® Architecture instruction set extensions about the Key Locker feature.
Intel® Data Streaming Accelerator Architecture Specification This document describes the architecture of the Intel® Data Streaming Accelerator (Intel® DSA).
Intel® Data Streaming Accelerator User Guide This document provides guidelines for systems administrators wanting to configure Intel® Data Streaming Accelerator (Intel® DSA) devices and developers wishing to enable application support and use libraries providing interfaces to Intel® DSA.
Intel® In-Memory Analytics Accelerator Architecture Specification This document describes the architecture of the Intel® In-Memory Analytics Accelerator (Intel® IAA).
Intel® In-Memory Analytics Accelerator (Intel® IAA) User Guide This document provides concise instructions for configuring the Intel® In-Memory Analytics Accelerator (Intel® IAA).
Intel® In-Memory Analytics Accelerator Plugin for RocksDB* Storage Engine (Intel® IAA Plugin for RocksDB* Storage Engine) This document describes performance improvements and cost savings for data analytics workloads using the Intel® In-Memory Analytics Accelerator (Intel® IAA) with the RocksDB* Storage Engine.
Intel® Architecture Memory Encryption Technologies Specification This document describes the memory encryption support available on Intel® processors.
bfloat16 - Hardware Numerics Definition This document describes the bfloat16 floating-point format.
5-Level Paging and 5-Level EPT white paper This document describes planned extensions to the Intel 64 architecture to expand the size of addresses that can be translated through a processor’s memory-translation hardware.
MCA Enhancements in Intel® Xeon® Processors This document describes Enhanced MCA Logging software architecture and associated flows.
Intel® Carry-less Multiplication Instruction and its Usage for Computing the GCM Mode white paper This paper provides information on the instruction and its usage for computing the Galois Hash. It also provides code examples for using PCLMULQDQ and the Intel® AES New Instructions (Intel® AES-NI) to efficiently implement AES in Galois Counter Mode (AES -GCM).
Performance Monitoring Unit Sharing Guide This paper provides guidelines between multiple software agents sharing the PMU hardware on Intel® processors.
Intel® Virtualization Technology FlexMigration (Intel® VT FlexMigration) application note This application note discusses virtualization capabilities in Intel® processors that support Intel® VT FlexMigration usages.
Intel® Virtualization Technology for Directed I/O Architecture Specification This document describes the Intel® Virtualization Technology for Directed I/O.
Intel® Scalable I/O Virtualization Technical Specification This document describes Intel® Scalable I/O Virtualization, a scalable and composable approach for virtualizing I/O devices.
Secure Access of Performance Monitoring Unit by User Space Profilers This paper proposes a software mechanism targeting performance profilers that would run at user-space privilege to access performance monitoring hardware. The latter requires privileged access in kernel mode securely without causing unintended interference with the software stack.
Timestamp-Counter Scaling for Virtualization The information contained in this white paper has been merged into Volume 3C of the Intel® 64 and IA-32 architectures software developer's manual.
Intel® 64 Architecture x2APIC Specification The information contained in this specification has been merged into Volumes 2 and 3 of the Intel® 64 and IA-32 architectures software developer's manual.
Intel® 64 and IA-32 Architectures Application Note TLBs, Paging-structure Caches, and their Invalidation The information contained in this application note has been merged into Volumes 3A and 3B Intel® 64 and IA-32 architectures software developer's manual.
Intel® 64 Architecture Memory Ordering white paper This document has been merged into Volume 3A of the Intel® 64 and IA-32 architectures software developer’s manual.
Page Modification Logging for Virtual Machine Monitor white paper The information contained in this white paper has been merged into Volume 3C of the Intel® 64 and IA-32 architectures software developer's manual.