Ti ringrazio per la risposta.
Avevo già un po' spulciato tomshw, ma i dettagli erano e restano piuttosto scarni...
Chiaramente se i registri dello scheduler per il calcolo in virgola mobile devono essere precaricati con la solita auto-conversione di tipi (e dunque dalle alu) è piuttosto logica l'idea di due code di prefetch separate per ciascuno, sebbene al di là della struttura interna della fpu essa possa processare solamente un'istruzione alla volta, condivisa fra le due alu e i due generatori di indirizzi. Resta solo da supporre che ci sarà un qualche genere di controller di mezzo, per la gestione della priorità.
Suppongo (e questo da tomshw non si intende) che il generatore di indirizzi sia limitato alla cache L2, dato che dalle slide amd sembra che il controller L3 sia integrato direttamente nel modulo del northbridge.
Comunque, la coda della fpu resta sempre singola, costringendo l'unità a lavorare (indipendentemente dal tipo di istruzioni processate) alla medesima frequenza della alu.
Da quel che capisco dalla slide che hai postato, non è che lavora strettamente come "doppia", almeno non relativamente al prefetch dalle alu visto che comunque la coda è singola e condivisa.
Verosimilmente le due unità double a 128 bit possono eseguire più di una istruzione per volta dalla coda (come, proprio non saprei. Forse un doppio buffer) per un totale di due "double" contemporaneamente e una AVX a 256 bit usandole due insieme. Ma se fosse così, uno scheduler condiviso non avrebbe senso, a meno che il loro scopo non fosse esclusivamente quello di consentire quelle precise estensioni consentendo a due alu di lavorare sullo stesso insieme di dati vettoriali, generando dato+indirizzo per ciascuna e poi unendoli a livello di fpu. Francamente, se ho capito bene la logica, mi sembra un approccio decisamente perverso.
Ricapitolando: scheduler singolo, doppia esecuzione. Un normale programma (per esempio in C) dispone sulla cpu di 8 alu e 8 coprocessori matematici alla medesima frequenza.
Per impostare un calcolo su AVX (256), servono due cicli di una alu oppure un ciclo contemporaneo delle due alu, unite (due processi che operano sul medesimo insieme di dati?). Approccio obbligato dalla cache, che da quanto ho capito è a parole di 128 bit (flag esclusi).
Pertanto, la pipeline dello scheduler fpu dovrebbe risultare doppia rispetto a quello della semplice alu, in quanto predisposto a contenere "coppie" di istruzioni in caso di indirizzamenti congiunti, oppure parole singole più indicazioni di attesa.
Se è così, questo è effettivamente un 8 interi e 8 fpu, poco importa la gestione interna, e a questo punto disabilitare una alu dovrebbe/potrebbe essere sconsigliabile, visto che fra l'altro come hai ricordato il controller non lo permette (se le premesse sono queste, dovrebbe essere disattivata anche una parte dell'fpu).
Altrimenti, c'è la seria probabilità che io non abbia capito niente