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 #322 background imageLoading...
Page #322 background image
IA-32 Intel® Architecture Optimization
6-32
Mix Software Prefetch with Computation Instructions
It may seem convenient to cluster all of the prefetch instructions at the
beginning of a loop body or before a loop, but this can lead to severe
performance degradation. In order to achieve best possible performance,
prefetch instructions must be interspersed with other computational
instructions in the instruction sequence rather than clustered together. If
possible, they should also be placed apart from loads. This improves the
instruction level parallelism and reduces the potential instruction
resource stalls. In addition, this mixing reduces the pressure on the
memory access resources and in turn reduces the possibility of the
prefetch retiring without fetching data.
Example 6-6 illustrates distributing prefetch instructions. A simple and
useful heuristic of prefetch spreading for a Pentium 4 processor is to
insert a prefetch instruction every 20 to 25 clocks. Rearranging prefetch
instructions could yield a noticeable speedup for the code which stresses
the cache resource.

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