L'anti HT di AMD si fa più vicino

AMD potrebbe presentare una nuova tecnologia in grado di abbinare la potenza di due core, così da meglio sfruttare le applicazioni single task
di Paolo Corsini pubblicata il 24 Giugno 2006, alle 08:09 nel canale ProcessoriAMD
Abbiamo segnalato, con questa notizia, come alcune indiscrezioni indicasseo come di prossima applicazione da parte di AMD una nuova tecnologia che opera in modo opposto a quella HyperThreading di Intel. HyperThreading, o HT, è il nome della tecnologia Intel che permette al sistema operativo di riconoscere due processori logici a partire da una unità fisica presente nel sistema. Detto in altro modo, HT permette ad un processore singolo core di essere riconosciuto dal sistema operativo come se fosse dotato di due core distinti.
I vantaggi della tecnologia HT sono evidenti nel momento in cui si utilizzano applicazioni multitasking, che possono beneficiare direttamente della presenza di più di un core. Ovviamente HT porta ad ottenere, con questo genere di applicazioni, benefici prestazionali rispetto ad un sistema con un singolo processore, ma inferiori a quanto si otterrebbe con due core fisici presenti nel sistema.
L'approccio che AMD starebbe studiando partirebbe da posizioni opposte: sfruttare le architetture dual e multicore in modo tale da poter affiancare, con alcune applicazioni, più core tra di loro, facendoli riconoscere dal sistema come un processore unico.
Xbitlabs riprende quelle informazioni, segnalando come potrebbe essere possibile che AMD possa presentare questa tecnologia in concomitanza con il debutto, da parte di Intel, delle proprie nuove cpu Core 2 Duo il prossimo mese di Luglio. Si tratterebbe, assieme all'iniziativa 4x4 della quale abbiamo già parlato in questo articolo, di una delle armi a disposizione di AMD per meglio contrastare le nuove architetture di processore Intel.
Un approccio di questo tipo potrebbe unire le potenzialità delle soluzioni dual core di AMD, rendendo disponibili al sistema per le applicazioni single task un'architettura di cpu che possa processare sino a 6 istruzioni contemporaneamente per ciclo di clock. Una funzionalità di questo tipo dovrebbe richiedere una sincronizzazione delle cache L1 integrate in ciascun core di processore, anche se un approccio parallelo potrebbe essere quello di disabilitare uno dei due core e overcloccare dinamicamente l'altro così da ottenere superiori performance in ambiti single task.
Una tecnologia di questo tipo, se e qualora verrà implementata, dovrà necessariamente operare in modo dinamico a seconda del tipo di applicazione utilizzato. E' ipotizzabile che per una sua implementazione sia necessario adottare particolari driver, oltre che abilitare alcune funzionalità della scheda madre con un bios aggiornato.
56 Commenti
Gli autori dei commenti, e non la redazione, sono responsabili dei contenuti da loro inseriti - infoQuesta tecnologia permetterà di avere certamente grossi boost prestazionali nel breve periodo su applicazioni per CPU a single core... Il futuro però stringe sempre più l'occhio alle applicazioni multithread e ciò richiede anche l'efficienza architetturale dei futuri processori multi-core nelle operazioni "parallele"...
Chissà, lo vedremo appena usciranno questi nuovi amd ed effettuando test con gli attuali dual core. Potrebbe essere l'asso nella manica di amd.
Parafrasando se maometto non va alla montagna, la montagna va da maometto, se i giochi non vanno nella direzione dei dual core, allora sono i dual core che vanno nella direzione dei videogiochi
Comunque sia la soluzione di AMD è abbastanza intelligente e utile, sopprattutto per sfruttare al meglio i processori multicore con il software attuale e il software che per svariati motivi non può avvantaggiarsi del multicore.
Sicuramente se fosse relativa all'overclock di un solo core sarebbe un'immane cavolata...anche se sortirebbe i suoi effetti...
Riguardo alla possibilità di sincronizzare le L1 dei due core...non sarebbe impossibile...
Ma poi come evolverebbe la CPU ? Ci sarebbe un doppio incremento dell'istruction pointer ?!?!? Ma non finirebbe qui la cosa perchè si dovrebbero sincronizzare sia lo scheduler out-of-order che il register file e probabilmente le due pipeline per gli eventuali flushing... Insomma...possibile è possibile, ma la vedo un tantino complicata...
una ulteriore possibilità sarebbe un'evoluzione dello stato della pipeline guidato da una sola CPU...in pratica entrambe le pipeline devono essere "pienate" dallo stesso scheduler ooo... Gruppi di istruzioni dipendenti vanno in una pipeline e gruppi di sitruzioni dipendenti, ma indipendenti dalle precedenti vanno nella seconda...
L'ultima, ma forse la più semplice...le unità di esecuzione di un core vengono messe a disposizione dell'altro...in pratica le CPU condividono una parte della pipeline aumentando il parallelismo...
Negli ultimi due casi la CPU risultante oitrebbe tenere comunque conto solo delle cache L1 e L2 di una sola CPU e delle unità fetch & decode di una sola CPU...
Sicuramente se fosse relativa all'overclock di un solo core sarebbe un'immane cavolata...anche se sortirebbe i suoi effetti...
Riguardo alla possibilità di sincronizzare le L1 dei due core...non sarebbe impossibile...
Ma poi come evolverebbe la CPU ? Ci sarebbe un doppio incremento dell'istruction pointer ?!?!? Ma non finirebbe qui la cosa perchè si dovrebbero sincronizzare sia lo scheduler out-of-order che il registry file e probabilmente le due pipeline per gli eventuali flushing... Insomma...possibile è possibile, ma la vedo un tantino complicata...
una ulteriore possibilità sarebbe un'evoluzione dello stato della pipeline guidato da una sola CPU...in pratica entrambe le pipeline devono essere "pienate" dallo stesso scheduler ooo... Gruppi di istruzioni dipendenti vanno in una pipeline e gruppi di sitruzioni dipendenti, ma indipendenti dalle precedenti vanno nella seconda...
L'ultima, ma forse la più semplice...le unità di esecuzione di un core vengono messe a disposizione dell'altro...in pratica le CPU condividono una parte della pipeline aumentando il parallelismo...
Negli ultimi due casi la CPU risultante oitrebbe tenere comunque conto solo delle cache L1 e L2 di una sola CPU e delle unità fetch & decode di una sola CPU...
Mah, la prima tua ipotesi mi pare un pò troppo complicata, sinceramente credo che ci sarebbe troppo OH di sincronizzazione, e la ritengo davvero complessa da gestire.
Sono d'accordo con la tua ultima ipotesi, aumentare il parallelismo mettendo a disposizione le pipeline di un core all'altro.
Per le unità di fetch e decode non la vedo così tragica, gli A64 sono sempre stati prodigi di fetch e decode, credo ne abbiano in abbondanza per riempire due core senza problemi (dato che ovviamente non viaggerebbero entrambe al 100% fisico).
Per la cache... Magari una connessione logica tra le due cache L1 e la duplicazione dei dati sarebbe la soluzione più logica, mentre per la L2 non ci sono problemi, è già condivisa tra i due core.
Più che altro la cosa che mi impressionerebbe in un sistema così sarebbe la gestione del reorder buffer, che dovrebbe operare con i dati provenienti da due core. Oppure si utilizzerebbero entrambe i ReB ed un qualche meccanismo per congiungerli alla fine? (ma mi sembra improbabile).
La cosa in sé, è interessante, perchè potrebbe portare a benefici tangibili per quelle applicazioni incapaci di sfruttare il multithreading.
Il problema è che un'implementazione corretta sarebbe stata usare una capacità di reggere dinamicamente il carico (ovvero il secondo processore mette a disposizione tutto o solo una parte della sua potenza a seconda della richiesta), mentre così mi sembra un banale "merge" dei due processori, che porta con sè tutte le vecchie problematiche single core che si pensava fossero state superate.
Non ultima, certamente, quella che gli sviluppatori si adagino un po' troppo sugli allori. Con i quad core alle porte, non ce lo possiamo permettere.
In ogni caso sembra che la funzionalità sia insita nei processori AM2 e per attivarla basti un aggiornamento del BIOS e l'installazione di un pacchetto driver.
Per chi non ha perso tempo per mandare frecciatine:
- una tecnologia del genere è facilmente replicabile da Intel (o affondabile, oliando le ruote giuste)
- Intel ha un know-how maggiore per sfruttare questa tecnologia in quanto è presente già dalle prime architetture Core la L2 unica e condivisa mentre AMD ci sta ancora lavorando su :P
- per ora non abbiamo nulla fra le mani, solo un forse e un chissà, mentre per Conroe ci sono bench esaustivi (addirittura pure sul quad core).
In ogni caso, l'ipotetica supremazia AMD, avverrebbe a che prezzo? I processori FX single core è quasi un anno che sono stati tolti per metter al loro posto i Dual Core. Ormai come bench, il 70% è dedito al multithreading. Mi sembra un controsenso.
Infatti...è per quello che mi viene da pensare che tutta la parte della pipeline antecedente e successiva alla fase di esecuzione di una CPU debba essere disabilitata...e tutto va a fare riferimento alle unità dell'altra CPU...
Però vedo che la frecciatina ti ha raggiunto
Devi effettuare il login per poter commentare
Se non sei ancora registrato, puoi farlo attraverso questo form.
Se sei già registrato e loggato nel sito, puoi inserire il tuo commento.
Si tenga presente quanto letto nel regolamento, nel rispetto del "quieto vivere".