Sto studiando la progettazione JIT per quanto riguarda l'implementazione di linguaggi dinamici VM. Non ho fatto molte assemblee dal giorno 8086/8088, solo un po 'qua e là, quindi sii gentile se sono fuori di testa.Architettura P6 - Registra la rinomina a parte, i registri utente limitati risultano in più operazioni di spargimento/caricamento spesi?
A quanto ho capito, l'architettura x86 (IA-32) ha ancora lo stesso set di registri di base limitato che ha sempre fatto, ma il numero di registri interni è cresciuto enormemente, ma questi registri interni non sono generalmente disponibili e sono utilizzato con la rinomina del registro per ottenere un pipelining parallelo di codice che altrimenti non potrebbe essere parallelizzabile. Capisco bene questa ottimizzazione, ma il mio sentimento è che, mentre queste ottimizzazioni aiutano nel throughput complessivo e per gli algoritmi paralleli, il set di registri limitati siamo ancora bloccati con risultati in più overhead del registro in modo tale che se x86 avesse il doppio o quadruplicasse i registri a nostra disposizione, ci possono essere molti meno codici opzionali push/pop in un flusso di istruzioni tipico? O ci sono altre ottimizzazioni del processore che ottimizzano questo aspetto di cui non sono a conoscenza? Fondamentalmente se ho un'unità di codice che ha 4 registri con cui lavorare per il lavoro intero, ma la mia unità ha una dozzina di variabili, ho potenzialmente un push/pop per ogni 2 o più istruzioni.
Eventuali riferimenti a studi o, meglio ancora, esperienze personali?
MODIFICA: x86_64 ha 16 registri, che è doppio x86-32, grazie per la correzione e le informazioni.
Grazie CrashWorks, ottima risposta. Hai un buon riferimento per questo? Ho diversi libri di architettura e nessuno di loro menziona questo, ma era il mio sospetto che stesse succedendo qualcosa del genere. – codenheim
È possibile dedurre molte di queste informazioni dal capitolo 2 del manuale di ottimizzazione di Intel (http://www.intel.com/products/processor/manuals/). Puoi anche eseguire alcuni esperimenti controllati per cercare di capire alcuni degli interni della "scatola nera". E potresti sempre dare un'occhiata ai brevetti di Intel: dopotutto, lo scopo di un brevetto è che devono dirti come funziona! # 5740414 potrebbe essere un punto di partenza. – Crashworks
Grazie, buoni punti. Il primo passo è ordinare nuovi manuali rispetto a quelli di 15 anni.:) – codenheim