4 Instruction tables - Agner Fog
4 Instruction tables - Agner Fog
4 Instruction tables - Agner Fog
Create successful ePaper yourself
Turn your PDF publications into a flip-book with our unique Google optimized e-Paper software.
Pentium II and III<br />
Intel Pentium II and Pentium III<br />
List of instruction timings and μop breakdown<br />
Explanation of column headings:<br />
Operands:<br />
i = immediate data, r = register, mm = 64 bit mmx register, xmm = 128 bit xmm<br />
register, sr = segment register, m = memory, m32 = 32-bit memory operand, etc.<br />
μops: The number of μops that the instruction generates for each execution port.<br />
p0: Port 0: ALU, etc.<br />
p1: Port 1: ALU, jumps<br />
p01: <strong>Instruction</strong>s that can go to either port 0 or 1, whichever is vacant first.<br />
p2: Port 2: load data, etc.<br />
p3: Port 3: address generation for store<br />
p4: Port 4: store data<br />
Latency:<br />
This is the delay that the instruction generates in a dependency chain. (This is<br />
not the same as the time spent in the execution unit. Values may be inaccurate<br />
in situations where they cannot be measured exactly, especially with memory<br />
operands). The numbers are minimum values. Cache misses, misalignment, and<br />
exceptions may increase the clock counts considerably. Floating point operands<br />
are presumed to be normal numbers. Denormal numbers, NAN's and infinity increase<br />
the delays by 50-150 clocks, except in XMM move, shuffle and Boolean<br />
instructions. Floating point overflow, underflow, denormal or NAN results give a<br />
similar delay.<br />
Reciprocal throughput:<br />
The average number of clock cycles per instruction for a series of independent<br />
instructions of the same kind.<br />
Integer instructions (Pentium Pro, Pentium II and Pentium III)<br />
<strong>Instruction</strong> Operands μops Latency<br />
p0 p1 p01 p2 p3 p4<br />
MOV r,r/i 1<br />
MOV r,m 1<br />
MOV m,r/i 1 1<br />
MOV r,sr 1<br />
MOV m,sr 1 1 1<br />
MOV sr,r 8 5<br />
MOV sr,m 7 1 8<br />
MOVSX MOVZX r,r 1<br />
MOVSX MOVZX r,m 1<br />
CMOVcc r,r 1 1<br />
CMOVcc r,m 1 1 1<br />
XCHG r,r 3<br />
XCHG r,m 4 1 1 1 high b)<br />
XLAT 1 1<br />
PUSH r/i 1 1 1<br />
POP r 1 1<br />
POP (E)SP 2 1<br />
PUSH m 1 1 1 1<br />
POP m 5 1 1 1<br />
PUSH sr 2 1 1<br />
POP sr 8 1<br />
Page 64<br />
Reciprocal<br />
throughput