asdfldsfdfjjfddjf
asdfldsfdfjjfddjf

Reputation: 360

What do the letters in port usage on uops.info mean?

What do the letters in the ports of the uops.info table mean?

For example ADD (R64, R64) lists 1*p0156B at ports. The documentation says 1*p0156 means one microinstruction can be executed at ports 0, 1, 5, or 6, but I cannot find anywhere what the B means.

Upvotes: 1

Views: 37

Answers (1)

Peter Cordes
Peter Cordes

Reputation: 363912

Sunny Cove (Ice Lake) had 10 execution ports.
Golden Cove (Alder Lake P-cores, and Sapphire Rapids) has 12:

  • Five ALU ports: 0, 1, 5, 6, and B
  • Three load: 2, 3, and A
  • Two each store-address (7,8) and store-data (4, 9), unless I have that reversed.

Chips and Cheese has a block diagram but doesn't name/number the ports.
Intel's optimization guide probably does.

Given existing usage like p015 in various contexts like https://uops.info/ and Agner Fog's tables it's much nicer to keep using single-character "numbers" for new ports, rather than calling them port 10 and port 11. PMU event names like uops_dispatched_port.port_0 would have been fine with 2-digit numbers I guess.

I don't expect Sandybridge-family with its P6 heritage of port numbering and a unified scheduler will ever get to the point where we run out of letters in the alphabet. Maybe not even running out of hex digits (up to F).

Upvotes: 3

Related Questions