EasyManuals Logo

Intel ARCHITECTURE IA-32 User Manual

Intel ARCHITECTURE IA-32
568 pages
To Next Page IconTo Next Page
To Next Page IconTo Next Page
To Previous Page IconTo Previous Page
To Previous Page IconTo Previous Page
Page #120 background imageLoading...
Page #120 background image
IA-32 Intel® Architecture Optimization
2-48
and cross-modifying code (when more than one processor in a
multi-processor system are writing to a code page) should be avoided
when high performance is desired.
Software should avoid writing to a code page in the same 1 KB subpage
of that is being executed or fetching code in the same 2 KB subpage of
that is currently being written. In addition, sharing a page containing
directly or speculatively executed code with another processor as a data
page can trigger an SMC condition that causes the entire pipeline of the
machine and the trace cache to be cleared. This is due to the
self-modifying code condition.
Dynamic code need not cause the SMC condition if the code written
fills up a data page before that page is accessed as code.
Dynamically-modified code (for example, from target fix-ups) is likely
to suffer from the SMC condition and should be avoided where possible.
Avoid the condition by introducing indirect branches and using data
tables on data (not code) pages via register-indirect calls.
Write Combining
Write combining (WC) improves performance in two ways:
On a write miss to the first-level cache, it allows multiple stores to
the same cache line to occur before that cache line is read for
ownership (RFO) from further out in the cache/memory hierarchy.
Then the rest of line is read, and the bytes that have not been written
are combined with the unmodified bytes in the returned line.
Write combining allows multiple writes to be assembled and written
further out in the cache hierarchy as a unit. This saves port and bus
traffic. Saving traffic is particularly important for avoiding partial
writes to uncached memory.
There are six write-combining buffers (on Pentium 4 and Intel Xeon
processors with CPUID signature of family encoding 15, model
encoding 3, there are 8 write-combining buffers). Two of these buffers
may be written out to higher cache levels and freed up for use on other

Table of Contents

Questions and Answers:

Question and Answer IconNeed help?

Do you have a question about the Intel ARCHITECTURE IA-32 and is the answer not in the manual?

Intel ARCHITECTURE IA-32 Specifications

General IconGeneral
Instruction Setx86
Instruction Set TypeCISC
Memory SegmentationSupported
Operating ModesReal mode, Protected mode, Virtual 8086 mode
Max Physical Address Size36 bits (with PAE)
Max Virtual Address Size32 bits
ArchitectureIA-32 (Intel Architecture 32-bit)
Addressable Memory4 GB (with Physical Address Extension up to 64 GB)
Floating Point Registers8 x 80-bit
MMX Registers8 x 64-bit
SSE Registers8 x 128-bit
RegistersGeneral-purpose registers (EAX, EBX, ECX, EDX, ESI, EDI, ESP, EBP), Segment registers (CS, DS, SS, ES, FS, GS), Instruction pointer (EIP), Flags register (EFLAGS)
Floating Point UnitYes (x87)

Related product manuals