3. Architettura Bulldozer - Parte 1

 

Bulldozer rappresenta la 15esima generazione di core AMD e sarà la base di partenza per le future generazioni di CPU desktop e non solo.

L’architettura “Bulldozer” è orientata al bilanciamento di prestazioni, costi e consumi negli applicativi multi-thread, potendo però contare su elevate frequenze di funzionamento.

Quale approccio ha seguito AMD per raggiungere questo ambizioso traguardo?

 

AMD FX-8150: Il primo Bulldozer ... 3. Architettura Bulldozer - Parte 1 1


Nel corso degli anni sono state sviluppate due tecnologie per il supporto all’esecuzione di più threads in contemporanea:

  • SMT (Simultaneous Multi Threading): forza l’esecuzione di due threads in un solo core sfruttando il non completo utilizzo di tutte le risorse disponibili; ogni thread deve “combattere” per ottenere le risorse di cui ha bisogno ed eventualmente attendere l’esecuzione dell’altro thread per proseguire.
  • CMP (Chip Level Multiprocessing): ogni thread ha un core dedicato per cui costituisce un approccio "più brutale" rispetto alla tecnologia SMT; la condivisione di risorse è a livello più alto e, in caso di numerose risorse condivise, un intero core può restare in attesa della terminazione degli altri processi causando un grande sottoutilizzo del sistema.

SMT è stato il primo approccio al multi threading ed ha portato a notevoli incrementi prestazionali riuscendo a recuperare i tempi morti (es. caricamento dei dati dalla memoria) e sfruttarli per l’esecuzione di altre operazioni: l’incremento di un 10% dell’elettronica può portare ad incrementi delle prestazioni fino al 50% contrariamente al raddoppio della circuiteria necessaria per un approccio CMP su due core.

 

AMD FX-8150: Il primo Bulldozer ... 3. Architettura Bulldozer - Parte 1 2 


AMD ha scelto questa volta un approccio ibrido al problema creando i Bulldozer Module.

Ogni modulo Bulldozer è dotato di due core x86 che condividono tra loro alcune unità di elaborazione e tutta la logica di gestione e controllo.

Questo scelta porta ad una drastica riduzione del numero di circuiti necessari per un approccio CMP, senza però aver gli svantaggi della schedulazione introdotta dal SMT.

I componenti condivisi in Bulldozer sono i circuiti dedicati al Fetch e alla decodifica delle istruzioni, che sono stati migliorati ed ampliati rispetto al passato, passando da un decoder a 4 vie in grado di fondere branch di istruzioni x86 e aumentare così l’efficienza complessiva; un simile approccio è già stato proposto da Intel nelle CPU Nehalem.

 

AMD FX-8150: Il primo Bulldozer ... 3. Architettura Bulldozer - Parte 1 3 

Bulldozer Module

1 Fetch Unit
1 Decode Unit
2 Integer Scheduler
2 L1 DCache
1 FP Scheduler
2 128-bit FMAC
1 Shared L2 Cache 2MB


Un altro componente condiviso tra i due “core” è l’unità per l’elaborazione Floating Point: AMD ha infatti messo in evidenza, come circa l'80% delle elaborazioni comuni siano basate solo su interi ed ha quindi deciso questo taglio rispetto al passato.

Seppur vero che in ambito consumer e lavorativo la maggior parte dell’elaborazione riguarda proprio gli interi, in ambito High Performance Computing e Server si ha sempre una maggior richiesta di potenza di calcolo in Floating Point, basti ricordare che NVIDIA ha dovuto modificare la sua GPU G80 al fine di supportare completamente le specifiche per il calcolo a doppia precisione, richieste per l’elaborazione con la tecnologia CUDA in ambito scientifico.

AMD ha comunque una risposta a questa obiezione, ovvero le nascenti tecnologie di calcolo parallelo basate sulle GPU e all’introduzione di specifiche istruzioni nelle sue CPU AMD FX.