Auf dem Intel Intrisics Guide finden Sie die meisten Anweisungen, aber auch Latenz und Durchsatz. Beispiel:
__ m128i _mm_min_epi32
%Vor%Was genau bedeuten diese Zahlen? Ich denke, eine langsamere Latenz bedeutet, dass der Befehl länger dauert, aber Durchsatz 1 für Nehalem und 0,5 für Ivy bedeutet, dass der Befehl auf Nehalem schneller ist?
Die "Latenz" für eine Anweisung ist, wie viele Taktzyklen die Ausführung einer Anweisung dauert (wie lange dauert es, bis die Anweisung abgeschlossen ist).
Normalerweise ist der Durchsatz die Anzahl der Befehle pro Taktzyklus, aber hier ist der Durchsatz die Anzahl der Taktzyklen pro unabhängigem Befehlsstart - also bedeuten 0,5 Taktzyklen, dass 2 Befehle in einem Taktzyklus ausgegeben werden können und das Ergebnis bereit ist beim nächsten Taktzyklus.
Intel dokumentiert das hier: Ссылка
Nachfolgend finden Sie ein Zitat von Intels Seite Messbefehlslatenz und -durchsatz .
Latenz und Durchsatz
Latenz ist die Anzahl der Prozessortakte, die für eine Anweisung benötigt werden seine Daten für die Verwendung durch eine andere Anweisung verfügbar zu machen. Deshalb, Ein Befehl mit einer Latenz von 6 Takten hat seine Daten verfügbar für eine andere Anweisung, dass viele Uhren, nachdem es beginnt Ausführung.
Durchsatz ist die Anzahl der Prozessortaktgeber, die für einen Anweisung zum Ausführen oder Ausführen von Berechnungen. Eine Anweisung bei einem Durchsatz von 2 Takten würde dafür seine Ausführungseinheit binden viele Zyklen, die einen Befehl verhindern, der diese Ausführungseinheit benötigt von der Ausführung. Erst nachdem der Befehl mit dem Befehl ausgeführt wurde Ausführungseinheit kann die nächste Anweisung eingeben.