Architetture dei processori/Architettura Pentium 4: differenze tra le versioni
Contenuto cancellato Contenuto aggiunto
G4 (discussione | contributi) avanzamento 100% |
Nessun oggetto della modifica |
||
Riga 3:
Il Pentium 4 è un processore progettato da Intel quando la strada maestra per aumentare le prestazioni sembrava essere l'innalzamento della frequenza operativa. Il Pentium 4 infatti implementa un'architettura chiamata NetBurst, architettura nata originariamente per spingere il processore fino a frequenze di 10 Gigahertz (in realtà il più velece Pentium 4 non arriva ai 4 GHz) e difatti dotata di pipeline molto lunghe che possono arrivare fino a 31 stadi con alcuni stadi che servono per trasferire le informazioni tra diverse unità. Pipeline così lunghe subiscono penalizzazioni elevatissime in caso di salti non predetti correttamente o in caso di istruzioni devono stallare per la mancanza di qualche risorsa. Per ridurre al minimo il problema il Pentium 4 implementa praticamente tutte le tecniche disponibili per ridurre le condizioni di stallo delle pipeline e implementa internamente più pipeline per sfruttare il parallelismo del codice.
Il funzionamento del Pentium 4
*Il processore carica le operazioni da eseguire fino ad un massimo di 32.
*Le operazioni x86 di lunghezza variabile vengono tradotte in microperazioni tipo RISC di lunghezza fissa da 118 bit. Le operazione x86 possono venir tradotte anche in 4 microoperazioni nel caso delle istruzioni più complesse.
Riga 10:
[[Image:Architettura Pentium 4.png|centre|thumb|800px|Architettura del processore]]
Come si è detto l'obiettivo dell'architettura NetBurst era ottenere frequenza di funzionamento molto elevate e tutto è stato progettato seguendo questo obiettivo. Il processore inizialmente carica i dati, li converte in microoperazioni e li pone in un buffer chiamato Instruction Window, oltre a segnalare le microoperazioni decodificate in un buffer
Appena un'unità funzionale compatibile con un'istruzione libera da conflitti diventa disponibile lo scheduler della coda trasferisce l'istruzione nell'unità funzionale. Gli scheduler sono in grado di allocare fino a sei operazioni elementari per ciclo di clock. Difatti le ALU per le operazioni semplici lavorano a frequenza di clock doppia quindi per ogni ciclo di clock sono in grado di processare quattro istruzioni, le altre due unità funzionali possono eseguire un'operazione a testa e quindi in teoria si possono eseguire fino a sei operazioni per ciclo anche se in realtà questo si verifica molto di rado. Il processore per contrastare i tempi di accesso alla memoria che con frequenza di funzionamento prossime a 4 Gigahertz sono estremamente importanti implementa un meccanismo di precaricamento dei dati. Questo è gestito sia da quattro istruzioni SSE per il codice appositamente compilato,
== Prestazioni ==
|