Genere
ND
Lingua
ND
PEGI
ND
Prezzo
ND
Data di uscita
ND

Core 2 Duo

Core 2 Duo Aggiungi alla collezione

Datasheet

Produttore
Intel
Anteprima

Core 2 Duo: i dettagli

Ricerca microarchitetturale spinta per riportare Intel sul tetto delle performance

di Antonino Tumeo, pubblicato il

È chiaro che di conseguenza sono state anche aumentate il numero di porte verso le unità di esecuzione e le unità di esecuzione stesse, perché avere più istruzioni a disposizione e poi non poterle eseguire sarebbe inutile. Le porte di "dispatching" verso le unità di esecuzione passano così da 5 a 6, le ALU a virgola fissa diventano 3 (dalle 2 di Yonah, e dalla particolare organizzazione con 2 ALU semplici Double Pumped e una ALU complessa nel P4) e 2 le AGU (Address Generation Unit). Troviamo poi 2 unità, una per Load e una per Store, e quattro unità floating point: addizione, moltiplicazione, load e store. Tre, simmetriche e a 128 bit per ciascuna, sono infine le unità SSE a disposizione, che si dimostrano estremamente potenti essendo in grado di eseguire operazioni su tutti i 128 bit in un solo ciclo di clock (ciò che Intel chiama Media Boost). Chiaramente, le differenti unità sono multiplexate sulle varie porte di dispatch, in particolare la parte di calcolo (SSE, ALU e unità ADD e DIV in Floating Point) sulle prime tre e la parte di memoria sulle altre tre.

INTEL SMART MEMORY ACCESS

L'esecuzione fuori ordine può, evidentemente, venire estesa anche alle operazioni di Load e di Store. Con queste istruzioni, però, deve essere garantito un ordine di completamento ben preciso, e tale da risultare idententico con quello del programma eseguito sequenzialmente lasciando dunque un'immagine di memoria coerente. Per garantire queste proprietà le attuali architetture se, per qualche motivo, l'indirizzo di una store deve ancora essere calcolato, fanno attendere il suo completamento a tutte le load in coda.
In questo modo, se la store va a scrivere nell'indirizzo poi letto da una load, si è sicuri che il valore letto è corretto. Come ulteriore garanzia di consistenza, inoltre, se ci sono in coda load per le quali non è ancora noto l'indirizzo di destinazione, load successive non possono venire eseguite. Molte delle load presenti in un blocco, sono però spesso indipendenti dalle store e da altre load, e dunque permettere la loro esecuzione in parallelo al resto può portare significativi vantaggi dal punto di vista prestazionale.
L'unica "accortezza" da adottare è una logica che permetta di valutare se l'indirizzo di origine di una load coincide con quello di destinazione di una store che non era stata ancora completata e, in tale caso, annullare e rifare la load. Tutto questo, denominato in gergo Memory Disambiguation, è supportato da Core 2 ed è chiamato da Intel Smart Memory.

INTEL SMART CACHE

Già con Yonah è stata introdotta sulle architetture Intel una cache di secondo livello unificata per entrambi i core delle soluzioni dual core. In Core 2 Duo questa soluzione è stata mantenuta e portata da 2 a 4 MB per le soluzioni più performanti.
Il disporre di una cache unificata di secondo livello, piuttosto che due memorie separate, consente a ciascun core di sfruttare la parte di essa realmente necessaria, in base al carico stesso delle unità computazionali, e di rendere più rapida la comunicazione stessa tra i core, che non devono così "fuoriuscire" dal chip per scambiarsi dati. Grazie alle modalità di risparmio energetico implementate in Core 2, come in Core, quando entrambi i core entrano in stato di deeper sleep, la cache viene svuotata e viene spenta per minimizzare la dissipazione energetica.
Proprio dal punto di vista della dissipazione energetica, si può evidenziare come i due core vengano gestiti indipendentemente tra di loro per quello che riguarda clock gating e voltage scaling, e di conseguenza possono operare a frequenze diverse a seconda del loro stato. Ciascuno di essi ha a disposizione un diodo termico privato con cui tenere sotto controllo le temperature, ed è inoltre disponibile, come meccanismo di sicurezza, un ulteriore diodo comune. In tale maniera può essere rispettato il concetto base dietro all'architettura, e cioè il tenere acceso solo ciò che serve, e per quanto serve.

CONCLUDENDO

Insomma, un'architettura volta a massimizzare l'efficienza e le prestazioni per la potenza dissipata, quella di Core 2 Duo, che riprende e migliora, nettamente, il cammino iniziato con Core Duo e prima ancora con Pentium M nelle sue varianti Banias e Dothan. Dynamic Wide Execution, Media Boost, Smart Memory e Smart Cache non sono solo delle civette marketing, ma sotto di esse ci sono effettivamente interessanti soluzioni architetturali, frutto di ricerca e studi approfonditi.
Ad esse si aggiungono poi l'atteso supporto ai 64 bit e alla virtualizzazione, legati non alla microarchitettura ma all'architettura stessa, che probabilmente proprio in questa generazione mostreranno veramente la loro utilità. Molta ricerca, ad onor del vero, era stata anche "inserita" in Pentium 4, ma poi, circostanze sfortunate e decisioni sbagliate hanno portato sulla cattiva strada ed hanno costretto a tagli "in corsa". Stavolta, invece, la strada intrapresa con Core 2 Duo, che parte da solide fondamenta, sembra proprio quella giusta ed in grado di ridare al gigante dei microprocessori quello slancio e quello smalto che, nell'ambito desktop, sembrava avere un po' perso. Con particolare attenzione ai giocatori. E a questo punto, non ci resta che attendere ancora poco per verificare se tutte queste promesse saranno mantenute!