La strada della condivisione

Recensione - Test del nuovo processore AMD FX-8150, basato su architettura Bulldozer.

Avatar di Tom's Hardware

a cura di Tom's Hardware

La strada della condivisione

Gli architetti di AMD hanno certamente deciso con molta attenzione quali parti del core potevano essere condivise, tenendo consumi ed efficienza in mente. Per esempio, in caso di branch misprediction, il front-end di un core tradizionale dev'essere ripulito, sprecando sia bandwidth che energia. Condividere quell'hardware tra i due core aiuta a migliorare l'uso di quelle risorse. AMD inoltre ha cercato aree che poteva permettersi di condividere senza rallentare le operazioni critiche, e per questo ha convidiso lo scheduler in virgola mobile, che non è stato considerato così sensibile dal punto di vista delle latenze come le unità integer.

Al sistema operativo il risultato appare come un paio di core, come accade con i processori Intel dotati di Hyper-Threading. AMD naturalmente desidera chiarire che Bulldozer si comporta in modo simile all'Hyper-Threading (o SMT), affermando che il proprio design facilita una migliore scalabilità rispetto a due thread che convidividono un singolo core. Anche questa è un'affermazione sensata: un modulo Bulldozer non si può essere definire come un singolo core perché molte delle sue risorse sono duplicate.

Clicca per ingrandire

Questo tuttavia chiama in causa la relazione tra l'hardware AMD e il software che inevitabilmente dovrà girarci sopra. Nell'articolo "Core i5 e Core i7, le nuove CPU di Intel, AMD trema" abbiamo parlato delle specifiche ottimizzazioni in Windows 7 che erano frutto della collaborazione tra Intel e Microsoft - tra cui il cosiddetto core parking: Windows 7 si rivolge in modo intelligente ai core fisici prima di usare quelli logici (Hyper-Threaded).

In teoria AMD potrebbe beneficiare della stessa cosa. Se Windows fosse in grado di usare subito uno dei quattro moduli dell'FX-8150 e poi riempire il secondo core di ogni modulo, le prestazioni si potrebbero massimizzare con un massimo di quattro thread che lavorano simultaneamente. Secondo Arun Kishan, software design engineer di Microsoft, ogni modulo è attualmente rilevato come due core programmati in modo uguale.

Quindi in un'applicazione dual-thread potreste vedere un modulo attivo e tre moduli in idle - una grande cosa per i consumi, ma teoricamente non del tutto ideale dal punto di vista prestazionale. Questo crea confusione anche con l'affermazione di AMD secondo cui, quando solo un thread è attivo, si ha pieno accesso alle risorse condivise. Aggiungere solo un thread potrebbe vincolare queste risorse condivise, persino se altri moduli sono in idle.

Microsoft sta cercando di modificare questo comportamento, tuttavia. Arun afferma che i moduli dual-core hanno caratteristiche prestazionali molto simili a un SMT più che ai core fisici, quindi l'azienda sta cercando di rilevarli e trattarli allo stesso modo dell'Hyper-Threading in futuro. Le implicazioni sarebbero significative. Le prestazioni dovrebbero migliorare, mentre gli sforzi di AMD di portare in idle in moduli sarebbero resi meno efficaci.