Ich analysiere Agner Fog's "Optimizing subroutines in assembly language: An optimization guide for x86 platforms". Besonders versuche ich Kapitel 12.7 zu verstehen. Und es gibt ein Problem, das ich nicht verstehen kann. Der Autor schreibt:Muster der Decodieranweisung
Befehlsdecodierung im PM-Prozessor folgt dem 4-1-1-Muster. Das Muster von (fusionierten) μops für jeden Befehl in der Schleife in Beispiel 12.6b ist 2-2-2-2-2-1-1-1. Dies ist nicht optimal, und es wird 6 Takte dauern, um zu dekodieren. Das ist mehr als die Ruhestandszeit, also können wir daraus schließen, dass die Befehlsdecodierung der Flaschenhals in Beispiel 12.6b ist. Die gesamte Ausführung Zeit beträgt 6 Taktzyklen pro Iteration oder 3 Taktzyklen pro berechnetem Y [i] -Wert.
- Was bedeutet es, dass die Befehlsdecodierung folgt das 4-1-1-Muster und wie es wissen?
- Muster für Schleife ist 2-2-2-2-2-1-1-1. Ok, aber warum dauert es 6 Zyklen zu dekodieren, weiß ich nicht. Warum?
Dank :) Wie Muster für patricular Prozessor wissen? – Gilgamesz
Agners Guide sollte einige Informationen haben. Wenn nicht, suchen Sie nach Artikeln zur CPU-Architektur auf Ars Technica – Nayuki
Für einige aktuelle Intel-Prozessoren (bisher Skylake und Haswell) - finden Sie eine detaillierte Untersuchung des Anweisungsholverhaltens [in dieser Antwort] (http://stackoverflow.com/a/39940932/149138). – BeeOnRope