Rinominazione dei registriLa rinomina dei registri è una tecnica di ottimizzazione utilizzata dai microprocessori per incrementare l'Instruction level parallelism dei programmi eliminando alcuni vincoli durante l'esecuzione delle istruzioni nelle pipeline. Durante l'esecuzione di più istruzioni in parallelo all'interno di una pipeline alcune istruzioni non possono essere eseguite perché devono attendere anche alcuni registri utilizzati da altre istruzioni siano liberi. Per evitare di dover attendere l'esecuzione delle istruzioni in corso per la presenza di registri occupati si usa la rinomina degli stessi. Quando il processore individua delle istruzioni che non possono essere eseguite per la presenza di registri già occupati il processore assegna all'istruzione altri registri, dei registri temporanei da poter utilizzare fino a quando i registri di destinazione non siano liberi. Per esempio nel seguente frammento di codice: Questa tecnica mostra la sua utilità in congiunzione con l'esecuzione fuori ordine, le due tecniche in congiunzione eliminano la maggior parte dei vincoli sui dati delle istruzioni innalzando il livello di istruzioni eseguibili in parallelo dai processori e quindi innalzandone le prestazioni. La rinomina dei registri è fondamentale nell'architettura X86 dato che questa tipologia di processori è dotata di soli 8 registri per i numeri interi e 8 registri per i numeri in virgola mobile. In un'architettura con così pochi registri la probabilità che due istruzioni utilizzino gli stessi registri è molto elevata difatti fin dalla microarchitettura P6 (architettura del Pentium Pro e successori fino al Pentium III) i microprocessori Intel implementavano questa tecnica. Comunque anche i processori RISC, pur essendo usualmente dotati di molti registri, implementano questa tecnica per migliorare le prestazioni di calcolo. Per esempio il processore MIPS R10000 e il Alpha 21264 implementano la rinomina dei registri. |
Portal di Ensiklopedia Dunia