03.03.2013 Views

4 Instruction tables - Agner Fog

4 Instruction tables - Agner Fog

4 Instruction tables - Agner Fog

SHOW MORE
SHOW LESS

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

Hooray! Your file is uploaded and ready to be published.

Saved successfully!

Ooh no, something went wrong!