PAE/NX/SSE2 Support
Requirement Guide for Windows 8
June 13, 2012
Abstract
This document details the processor support for the PAE/NX/SSE2 requirement in
Windows 8, error cases and scenarios that customers encounter when machines fail
to meet the requirement, and what to do to install Windows 8 on their PCs.
This information applies to the following operating systems:
Windows 8
Windows Server 2012
References and resources discussed here are listed at the end of this paper.
The current version of this paper is maintained on the Web at:
PAE/NX/SSE2 Support Requirement Guide for Windows 8
Disclaimer: This document is provided “as-is”. Information and views expressed in this document, including
URL and other Internet website references, may change without notice. Some information relates to prereleased product which may be substantially modified before it’s commercially released. Microsoft makes no
warranties, express or implied, with respect to the information provided here. You bear the risk of using it.
Some examples depicted herein are provided for illustration only and are fictitious. No real association or
connection is intended or should be inferred.
This document does not provide you with any legal rights to any intellectual property in any Microsoft
product. You may copy and use this document for your internal, reference purposes.
© 2012 Microsoft. All rights reserved.
PAE/NX/SSE2 Support Requirement Guide for Windows 8 - 2
Contents
Overview ........................................................................................................................ 3
NX ............................................................................................................................... 3
PAE ............................................................................................................................. 3
SSE2 ............................................................................................................................ 4
Scope of Implications ..................................................................................................... 4
Support Requirements ................................................................................................... 4
Windows 8 Logo Requirement................................................................................... 5
Hardware Compatibility Check in Windows Setup .................................................... 5
Kernel Enhancement.................................................................................................. 6
FAQ ................................................................................................................................. 6
How do I know if my system supports NX or SSE2? .................................................. 6
If NX is supported on my system, how do I turn on NX? ........................................... 8
What should I do when Windows 8 failed to install on a VM with error 0x0000260?8
June 13, 2012
© 2012 Microsoft. All rights reserved.
PAE/NX/SSE2 Support Requirement Guide for Windows 8 - 3
Overview
No-eXecute (NX) is a processor feature that allows marking of memory pages as nonexecutable. The feature allows the CPU to help guard the system from attacks by
malicious software. When the NX feature is enabled on a system, it prevents
malicious software code from being placed in accessible regions of memory to be
executed when control reaches that memory location. Windows 8 requires that
systems must have processors that support NX, and NX must be turned on for
important security safeguards to function effectively and avoid potential security
vulnerabilities.
Streaming SIMD Extensions 2 (SSE2) is a previous standard that is supported in Intel
and AMD processors. All processors that support NX also support SSE2. Many
Windows 8 applications have code paths with the SSE2 instruction set. Performance
optimizations in the latest versions of Visual Studio are enhanced to generate SSE2
instructions by default. To prevent these applications from crashing when running on
a system without SSE2 support, the SSE2 support requirement is also enforced in
Windows 8.
NX
The term "NX" referred to in this document is defined as the NX processor bit defined
by AMD, or the equivalent XD processor bit defined by Intel for the Data Execution
Prevention (DEP) feature support in Microsoft Windows.
The DEP support was first introduced in Windows XP SP2 and Windows Server 2003
SP1 to help prevent malicious code execution from data pages. The 32-bit version of
Windows uses one of the following for DEP support features:

The AMD-defined No-eXecute (NX) page protection processor feature

The Intel-defined eXecute Disable (XD) bit feature
To use these processor features, the x86 (32-bit) processor must be running in
Physical Address Extension (PAE) mode. The 64-bit version of Windows uses the NX
processor feature on 64-bit extensions and certain values of the access rights Page
Table Entry (PTE) field on Intel’s Itanium Processor Family (IPF) processors.
Other than DEP, another defensive enhancement introduced in Windows XP SP2 and
Windows Server 2003 SP1 is the Address Space Layout Randomization (ASLR). ASLR
moves executable images into random locations when a system boots, making it
harder for malicious code to operate predictably. ASLR and DEP are only effective
when they are used together. NX must be enabled for these two important Windows
security safeguards to remain effective. More details can be referenced at Windows
ISV Software Security Defenses.
PAE
As described in previous section, to use the NX processor feature, the processor must
be running in Physical Address Extension (PAE) mode. PAE is a processor feature that
enables x86 processors to access more than 4 GB of physical memory on capable
versions of Windows. The Intel Itanium and x64 processor architectures can access
June 13, 2012
© 2012 Microsoft. All rights reserved.
PAE/NX/SSE2 Support Requirement Guide for Windows 8 - 4
more than 4 GB of physical memory natively, and do not provide the equivalent of
PAE. PAE is supported only by 32-bit versions of Windows running on x86-based
systems.
PAE is automatically enabled when DEP is enabled on a system with a processor that
supports the NX feature.
SSE2
Streaming SIMD Extensions 2 (SSE2) is one of the Intel Single Instruction Multiple
Data (SIMD) processor supplementary instruction sets initially introduced with
Pentium 4 in 2001. AMD also added the SSE2 support with Opteron and Athlon 64
ranges of AMD64 processors in 2003. All processors that support NX also support
SSE2, and SSE2 is also a requirement for Windows 8.
Scope of Implications
NX has been supported in x86 and x64 processors since Windows XP SP2 and
Windows Server 2003 SP1. All modern processors support NX. NX can be turned off in
the BIOS. Based on available telemetry data, it is believed that 1% of the systems of
the Windows 7 population are running with NX off due to misconfiguration in the
BIOS setting.
NX requires PAE-capable processors on 32-bit version of Windows. All 64-bit
processors support NX, as they are Address Windowing Extensions (AWE) aware.
Therefore, the issue of old 32-bit processors that are not PAE-capable has no WOA
implications or Windows Server (Windows Server 2012 is 64-bit only) implications.
The processor requirement won't impact customers on modern systems, or on
systems that meet logo requirements for Windows 7 because these systems have
PAE-capable 32-bit processors that support NX and allow NX to be turned on. Only a
small set of customers who have Windows 7 running on very old 32-bit processors
without PAE/NX support will be impacted.
Windows 8 Consumer Preview and Windows Server 2012 Beta were released with
the requirement for PAE, which impacted a small number of customers with old
hardware that did not support PAE. Many of these installation failures occurred when
installing Windows 8 on misconfigured Virtual Machines (VMs). Windows Setup
would fail the installation with error 0xc0000260 and roll back to Windows 7.
Visual Studio 2010 started emitting SSE2 instructions by default since its release.
Applications that hit those code paths would crash on systems with old processors
that do not support SSE2 as described in SSE2 instructions generated when /arch:SSE
is specified. The CLR in Windows 8 Consumer Preview and Windows Server 2012 Beta
was emitting SSE2 instructions, while Windows Setup would allow the installation on
a system with old processor that does not support SSE2. In this case, applications, as
simple as running the Computer Management task, could easily hit those code paths
and crash.
Support Requirements
This section details the measurements that we have taken to ensure processors on
systems running Windows 8 meet the PAE, NX, and SSE2 support requirements.
June 13, 2012
© 2012 Microsoft. All rights reserved.
PAE/NX/SSE2 Support Requirement Guide for Windows 8 - 5
Windows 8 Logo Requirement
It is a Windows 8 Hardware Certification Requirement that all drivers must operate
normally with Execution Protection to ensure proper device and driver behavior in
systems. Drivers must not execute code out of the stack, paged pool, and session
pool. Drivers must not fail to load when PAE mode is enabled. In addition, the system
firmware must have NX on and DEP policy must not be set to Always Off. A
certification test was added to certify a given system meeting this NX support
requirement.
Refer to Windows 8 Hardware Certification Requirements for more details.
Hardware Compatibility Check in Windows Setup
Windows Setup is enhanced to add hardware compatibility check for PAE, NX, and
SSE2 support on the install system. Systems that failed the requirement of processor
support for PAE, NX, and SSE2 are reported as hard blocks for Windows 8 in the
compatibility issue report with the message “Your PC's CPU isn't compatible with
Windows 8.”
Note that this support requirement check is only available in new Windows Setup and
Upgrade Assistant. Windows 8 includes an alternate version of Windows setup in the
sources folder of the installation media that does not include this check. Customers
who attempt to use this alternate version of Windows Setup on a system that does
not meet the PAE/NX/SSE2 support requirements will encounter an error during the
Setup process and roll back to their previous operating system.
June 13, 2012
© 2012 Microsoft. All rights reserved.
PAE/NX/SSE2 Support Requirement Guide for Windows 8 - 6
Also, in the case of boot from media or network installation such as Windows
Deployment Services (WDS) installation, there is no compatibility check during
Windows Setup. For such scenarios, a system without NX or SSE2 support will result
in bugcheck described in Kernel Enhancement, when Setup attempts the first boot of
Windows.
Kernel Enhancement
To align with the requirement that Windows 8 systems must have NX feature and
SSE2 instructions support, the Windows 8 kernel is enhanced to check for the
presence of these features during initialization. All systems that do not support NX or
SSE2 will no longer be able to initialize a Windows 8 kernel. Systems that can disable
NX in firmware will have that option overridden, so any misconfigured firmware will
not cause boot to fail. Attempting to boot a system without NX or SSE2 support will
result in bugcheck. Users will get the UNSUPPORTED_PROCESSOR code (0x0000005D)
along with four lines of information on a 32-bit system:
Line 1 – a code indicating a feature is missing and an identifier for the CPU
Line 2-4 – Vendor ID strings
On a 64-bit system, the bugcheck shows the same UNSUPPORTED_PROCESSOR code
as on a 32-bit system along with four different lines of information:
Line 1 – the contents of the standard features register
Line 2 – the contents of the extended features register
Line 3-4 – both 0
FAQ
How do I know if my system supports NX or SSE2?
You can use the Coreinfo command-line utility to get the processor information on
your system and review PAE, NX, and SSE2 entries in the output list. A supported
processor feature will have the * character displayed next to the feature name, and a
- character if not supported. For example:
June 13, 2012
© 2012 Microsoft. All rights reserved.
PAE/NX/SSE2 Support Requirement Guide for Windows 8 - 7
Coreinfo v3.04 - Dump information on system CPU and memory topology
Copyright (C) 2008-2012 Mark Russinovich
Sysinternals - www.sysinternals.com
AMD Athlon(tm) 64 X2 Dual Core Processor 4600+
x86 Family 15 Model 75 Stepping 2, AuthenticAMD
HTT
*
Hyperthreading enabled
HYPERVISOR Hypervisor is present
VMX
Supports Intel hardware-assisted virtualization
SVM
*
Supports AMD hardware-assisted virtualization
EM64T
*
Supports 64-bit mode
SMX
SKINIT
EIST
-
Supports Intel trusted execution
Supports AMD SKINIT
Supports Enhanced Intel Speedstep
NX
PAGE1GB
PAE
PAT
PSE
PSE36
PGE
SS
VME
*
*
*
*
*
*
*
Supports no-execute page protection
Supports 1 GB large pages
Supports > 32-bit physical addresses
Supports Page Attribute Table
Supports 4 MB pages
Supports > 32-bit address 4 MB pages
Supports global bit in page tables
Supports bus snooping for cache operations
Supports Virtual-8086 mode
FPU
MMX
MMXEXT
3DNOW
3DNOWEXT
SSE
SSE2
SSE3
SSSE3
SSE4.1
SSE4.2
……..
……..
*
*
*
*
Implements i387 floating point instructions
Supports MMX instruction set
Implements AMD MMX extensions
Supports 3DNow! instructions
*
Supports 3DNow! extension instructions
Supports Streaming SIMD Extensions
Supports Streaming SIMD Extensions 2
Supports Streaming SIMD Extensions 3
Supports Supplemental SIMD Extensions 3
Supports Streaming SIMD Extensions 4.1
Supports Streaming SIMD Extensions 4.2
*
*
*
-
If PAE is displayed as not supported in Coreinfo output, your system has a processor
that is not PAE-capable, and cannot support NX. If PAE is shown as supported, but NX
is displayed as not supported in Coreinfo output:

Consult the feature set published by the CPU manufacturer to determine if
NX is supported by the processor on your system.

If the processor on your system does have the NX support, then your system
may have misconfigured BIOS setting for NX support option.
June 13, 2012
© 2012 Microsoft. All rights reserved.
PAE/NX/SSE2 Support Requirement Guide for Windows 8 - 8
If NX is supported on my system, how do I turn on NX?
On a system that has the NX support, you can refer to the manufacturer’s guide for
your system to go into the BIOS settings option and look for the NX or XD settings
under the Security tab to turn on the NX support. If the BIOS setting for the NX
support option is not available on your system, you may need to contact the
manufacturer for updating the BIOS.
Note that on a 64-bit system, if NX is supported by the system, the system
configuration settings do not allow setting DEP policy to Always Off. More
information about system-wide configuration of DEP can be referenced in A detailed
description of the Data Execution Prevention (DEP) feature in Windows XP Service
Pack 2, Windows XP Tablet PC Edition 2005, and Windows Server 2003.
Starting with Windows 8 Release Preview, processors on a system must support NX
and SSE2 for the system to boot successfully. If your system has the support but the
settings are misconfigured, the options will be overridden before kernel boots up the
system. This kernel enhancement is not available in Windows 8 prior to the Release
Preview.
What should I do when Windows 8 failed to install on a VM with error
0x0000260?
If the Virtual Machine (VM) is hosted on a system that supports NX, you must enable
PAE/NX in the virtualization product’s settings or configuration manager when setting
up the Windows 8 virtual environment. Refer to the user or system guide of the
virtualization product you are using for instructions of enabling PAE/NX for the VM.
Note that if you tried to install Windows 8 on the VM hosted on a system running a
previous version of Windows with NX disabled, you must follow the instructions
described in How Do I Know if My System Supports NX or SSE2? and IF NX Is
Supported on My System, How Do I Turn on NX? to enable NX on the system before
PAE/NX can be enabled for the VM.
June 13, 2012
© 2012 Microsoft. All rights reserved.