Agners Microarch PDF erklärt die Dekodierung und was passiert mit Multi-Uop-Anweisungen.
Wenn ein Multi-Uop-Befehl nicht der erste insn im Block ist, der decodiert wird, endet die Decodierung bei diesem insn. Im nächsten Zyklus beginnt die Decodierung bei multi-uop insn und trifft den komplexen Decodierer, der Multi-uop-Befehle verarbeiten kann.
Aus diesem Grund dekodiert ein 3-1-3-1 Wiederholungsmuster besser als ein 3-3-1-1 Wiederholungsmuster.
Die Vordecoder markieren nur Befehlslängen/-grenzen. Sie wissen noch nicht, welches insns zu mehreren ups entschlüsseln wird. Dies erfordert eine tatsächliche Dekodierung der Anweisungen, so dass es keine Möglichkeit gibt, den Befehlsstrom herum zu mischen, um die komplexen Anweisungen an den komplexen Dekodierer zu senden.
Aus diesem Grund ist die Reihenfolge der Befehle wichtig, wenn Sie an den Decodern einen Engpass haben. Bei CPUs mit einem UOP-Cache ist die Decodierleistung normalerweise nicht kritisch. Wenn dies der Fall ist, liegt ein Problem mit der Codegröße vor. Es ist hoffentlich selten, dass Code so oft ausgeführt wird, dass seine Leistung von Bedeutung ist, aber selten genug, dass er im UOP-Cache nicht zu heiß ist.