Author: Gianluca AndriniGianluca Andrini
Date: Apr 17, 2008 22:44
I primi processori x86, fino al 486, eseguivano le operazioni in sequenza,
cioè non potevano eseguire operazioni in parallelo. Il pentium è stato il
primo processore in grado di eseguire più di una operazione per ciclo, con
una occupazione di circa il 95%% della prima pipeline, e di un 70%% della
seconda pipeline. Infatti l'incremento prestazionale del pentium sul 486 è
all'incirca del 70%%, a parità di frequenza.
Non tutte le istruzioni assembler sono parallelizzabili, anzi. Se si esegue
ad esempio una sola operazione di somma con un salto condizionato il massimo
parallelismo possibile è di 2 istruzioni per clock. E' vero che i processori
moderni hanno anche esecuzioni speculative, ma più di tanto comunque non si
può parallelizzare.
Il k8 ha sviluppato parecchio l'esecuzione su 2 pipeline, con una terza di
supporto usata relativamente poco. Il core 2 è un pò più elastico, e riesce
a mantenere più occupato tutte e 4 le pipeline. Il pentium originale aveva
una struttura rigida di parallelismo, cosa che all'atto pratico limitava
comunque l'ipc reale. Il k8 e il core 2, invece, sono molto più flessibili.
|