Quote:
Originariamente inviato da Jon_Snow
L'essere in grado di inserire logiche raffinate non deriva deriva solo dal numero di transistori.
Anche se si superano i problemi spaziali della barra di silicio, anche se si risolvono i problemi di routing dei componenti elettronici, non è così scontato come potrebbe sembrare l'implementazione di logiche di funzionamento innovative.
Se un ingegnere elettronico viene accecato dal nuovo processo produttivo ed implementa hardware la funzione più complessa che conosce senza ponderare altri aspetti, rischia di imbattersi in effetti collaterali. I ritardi delle porte in una circuteria estremamente più complessa si fanno sentire e si deve vedere se il guadagno temporale dei nuovi transistori controbilancia tale gap. Senza dimenticarsi i problemi di interferenza elettromagnetica che troppi collegamenti possono portare. Questo giusto per fare un paio di esempi molto estremi, ovviamente quando si scende nei dettagli ne sbucano altri.
L'aumento del numero dei transistori è solo uno degli aspetti poi ve ne sono altri da dover controbilanciare.
|
Non credo che sia così difficile capire cosa sto dicendo (e che affronta un discorso parallelo al tuo, ma da un altro punto di vista): per aumentare le prestazioni, visto che la corsa verso l'alto delle frequenze (che in passato era la via più semplice per fare salire le prestazioni) si è quantomento molto rallentata, occorre fare salire l'IPC (numero di istruzioni per clock) per core. Il che non è possibile soltanto aumentando le unità di esecuzione come si fa per le GPU - e come si sta tentando di fare con le CPU multicore - perchè non tutto è parallelizzabile. Occorre quindi utilzzare logiche di funzionamento più complesse, che non è detto che siano per forza innovative (ad esempio la micro ops fusion è utilizzata sin dal primo Pentium M, il K8 ha da sempre una sorta di macro-ops fusion, gli algoritimi di prefetching non sono una novità ma costano spazio sul die se devono essere particolarmente prestanti, aumentare le dimensioni dei TLB o dei buffer OOO "costa" ecc.).
Quindi tecnologicamente ci sono dei limiti, come giustamente dici, ma dall'altro avere più transistors serve per aumentare le prestazioni. Quindi ogni architettura è un
compromesso tra necessità di aumentare le prestazioni rispetto al passato (che dipendono moltissimo dal numero di transistors utilizzati) e i limiti tecnologici che citi (che limitano la complessità raggiungibile), che vengono influenzati comunque dal processo produttivo, in quanto diminuendo le dimensioni del die si diminuiscono i ritardi di propagazione dei segnali elettrici, ma non ultimo c'è anche il fattore economico, dovuto in larga parte alle dimensioni del die. Quindi è ovvio che non si devono implementare funzioni più complesse per il puro piacere di farlo, bensì vengono implementate soluzioni più complesse quando il processo e i fattori economici lo rendono possibile e conveniente.