2-20 Vol. 3
SYSTEM ARCHITECTURE OVERVIEW
See also: Section 11.5.3, “Preventing Caching,” and Section 11.5, “Cache
Control.”
NW Not Write-through (bit 29 of CR0) — When the NW and CD flags are
clear, write-back (for Pentium 4, Intel Xeon, P6 family, and Pentium proces-
sors) or write-through (for Intel486 processors) is enabled for writes that hit
the cache and invalidation cycles are enabled. See
Table 11-5 for detailed
information about the affect of the NW flag on caching for other settings of
the CD and NW flags.
AM Alignment Mask (bit 18 of CR0) — Enables automatic alignment checking
when set; disables alignment checking when clear. Alignment checking is
performed only when the AM flag is set, the AC flag in the EFLAGS register is
set, CPL is 3, and the processor is operating in either protected or virtual-
8086 mode.
WP Write Protect (bit 16 of CR0) — When set, inhibits supervisor-level proce-
dures from writing into read-only pages; when clear, allows supervisor-level
procedures to write into read-only pages (regardless of the U/S bit setting;
see Section 4.1.3 and Section 4.6). This flag facilitates implementation of the
copy-on-write method of creating a new process (forking) used by operating
systems such as UNIX.
NE Numeric Error (bit 5 of CR0) — Enables the native (internal) mechanism
for reporting x87 FPU errors when set; enables the PC-style x87 FPU error
reporting mechanism when clear. When the NE flag is clear and the IGNNE#
input is asserted, x87 FPU errors are ignored. When the NE flag is clear and
the IGNNE# input is deasserted, an unmasked x87 FPU error causes the
processor to assert the FERR# pin to generate an external interrupt and to
stop instruction execution immediately before executing the next waiting
floating-point instruction or WAIT/FWAIT instruction.
The FERR# pin is intended to drive an input to an external interrupt
controller (the FERR# pin emulates the ERROR# pin of the Intel 287 and
Intel
387 DX math coprocessors). The NE flag, IGNNE# pin, and FERR# pin
are used with external logic to implement PC-style error reporting. Using
FERR# and IGNNE# to handle floating-point exceptions is deprecated by
modern operating systems; this non-native approach also limits newer
processors to operate with one logical processor active.
See also: “Software Exception Handling” in Chapter 8, “Programming with
the x87 FPU,” and Appendix A, “EFLAGS Cross-Reference,” in the Intel® 64
and IA-32 Architectures Software Developer’s Manual, Volume 1.
ET Extension Type (bit 4 of CR0) — Reserved in the Pentium 4, Intel Xeon, P6
family, and Pentium processors. In the Pentium 4, Intel Xeon, and P6 family
processors, this flag is hardcoded to 1. In the Intel386 and Intel486 proces
-
sors, this flag indicates support of Intel 387 DX math coprocessor instruc-
tions when set.
TS Task Switched (bit 3 of CR0) — Allows the saving of the x87
FPU/MMX/SSE/SSE2/SSE3/SSSE3/SSE4 context on a task switch to be