Die Verwendung eines Mikroinstruktionscaches

592
Kraken

Ich habe kürzlich erfahren, dass Sandy Bridge einen Mikrobefehls-Cache verwendet, der dem Ausführungs-Trace-Cache in Netburst ähnelt. Soweit ich weiß, werden viele der einfacheren x86-Anweisungen (die in 4 Mikrobefehle oder weniger übersetzt werden) von festverdrahteten Decodern ohne Hilfe des Mikrocode-ROMs decodiert. Dies ist ein ziemlich schneller und einfacher Prozess, der keine Tabellensuche erfordert. Warum sollte man die decodierten Mikrobefehle zwischenspeichern und später nach ihnen suchen, wenn sie von der Decodiererschaltung leichter übersetzt werden können.

Wird der Cache nur für komplexere Anweisungen verwendet, die das Nachschlagen von Mikrocode-ROMs betreffen? Oder geht es um höhere Weisheit?

0
Intel hat den Befehlsabruf im Allgemeinen auf 16-Byte-Blöcke beschränkt. Der Micro-Op-Cache kann aus einem 32-Bit-Block bis zu 4 Operationen pro Zyklus bereitstellen. Bei x86 ist das Speichern von dekodierten Befehlen energieeffizienter als ein dichter nicht dekodierter Anweisungscache mit dynamischer Dekodierung. Der decodierte Cache kann auch als L0-Cache betrachtet werden (geringere Latenz bei guter Trefferquote). Es gibt auch Potenzial für die Dekodierzeitoptimierung. Siehe http://www.realworldtech.com/haswell-cpu/2/ Paul A. Clayton vor 8 Jahren 1
Ja. Ich verstehe es jetzt ziemlich gut, danke. Kraken vor 8 Jahren 0
Also, es geht um die Lagerung ... Kraken vor 8 Jahren 0

0 Antworten auf die Frage