Ich studiere JIT Design in Bezug auf dynamische Sprachen VM-Implementierung. Ich habe seit den 8086/8088 Tagen nicht viel Assembly gemacht, nur ein bisschen hier oder dort, also sei nett, wenn ich nicht in Ordnung bin.P6 Architektur - Register Umbenennung, führen die begrenzten Benutzer-Register zu mehr Operationen verschwendet/laden?
Wie ich es verstehe, hat die x86 (IA-32) -Architektur immer noch die gleichen grundlegenden begrenzten Register gesetzt, wie sie es immer tat, aber die interne Registerzahl ist enorm gewachsen, aber diese internen Register sind nicht allgemein verfügbar und sind verwendet mit Registerumbenennung, um paralleles Pipelining von Code zu erreichen, der ansonsten nicht parallelisierbar wäre. Ich verstehe diese Optimierung ziemlich gut, aber mein Gefühl ist, während diese Optimierungen im Gesamtdurchsatz und für parallele Algorithmen helfen, der begrenzte Registersatz immer noch mit mehr Registerüberlauf-Overheads zu tun hat, so dass x86 doppelt oder vierfach die Register hatte verfügbar für uns, kann es deutlich weniger Push/Pop-Opcodes in einem typischen Befehlsstrom geben? Oder gibt es andere Prozessoroptimierungen, die das auch optimieren, von denen ich nichts weiß? Grundsätzlich, wenn ich eine Code-Einheit habe, die 4 Register hat, um mit Integer-Arbeit zu arbeiten, aber meine Unit hat ein Dutzend Variablen, habe ich potentiell einen Push/Pop für jede 2 oder so viele Anweisungen.
Irgendwelche Verweise auf Studien, oder besser noch, persönliche Erfahrungen?
EDIT: x86_64 hat 16 Register, die doppelt x86-32 ist, danke für die Korrektur und Info.
denken Dank CrashWorks, große Antwort. Hast du eine gute Referenz dafür? Ich habe mehrere Architekturbücher und keiner von ihnen erwähnt dies, aber es war mein Verdacht, dass so etwas vorging. – codenheim
Sie können einen Großteil dieser Informationen aus Kapitel 2 des Optimierungshandbuchs von Intel (http://www.intel.com/products/processor/manuals/) ableiten. Sie können auch einige kontrollierte Experimente durchführen, um einige der "Black Box" -Einbauten herauszufinden. Und Sie könnten immer wieder durch Intels Patente stochern: Schließlich ist es das Ziel eines Patents, Ihnen zu sagen, wie es funktioniert! # 5740414 könnte ein Ort zum Starten sein. – Crashworks
Danke, gute Punkte. Der erste Schritt besteht darin, neuere Handbücher zu bestellen als meine 15 Jahre alten.:) – codenheim