1

My question is if there are more instructions that are issued in a cycle than are able to get executed by functional units, what algorithm does the hardware use to decide which instruction get executed first?

For example, looking at the zen 2 architecture here let’s say in a cycle we have 4 instructions that are sent from the dispatched to the floating point unit. Also let’s assume there are no data dependencies in these 4 instructions. Now if these instructions can only be executed by 2 of the 4 function units in the floating point unit, how does the hardware determine which instructions to execute first in the scheduling queue?

Tomas
  • 11
  • 1
  • 1
  • See the linked duplicate for much more info, but basically, for each execution port separately, oldest-ready first. – Peter Cordes Oct 22 '20 at 01:46
  • Thank you for the link. I didn’t know the language I needed to express the problem but this helps a ton! – Tomas Oct 22 '20 at 02:06

0 Answers0