scusa cesare, ma non capisco una cosa: se la ppe è identica(anche se mi sembra di aver capito che identica sol in parte) a un 970 come può avere prestazioni inferiori avendo un clock + alto. non mi pare ci sia mai stato nessun g5 clockato a 3,2 GHz.
Hai ragione: il G5 è arrivato al massimo a 2,7Ghz, se non ricordo male, e quindi dal punto di vista della sola frequenza risulterebbe inferiore a Cell, che gira a 3,2Ghz.
Il nocciolo della questione, infatti, sta nella diversa implementazione della stessa ISA.
Per ISA si intende l'Instruction Set Architecture, ossia l'insieme delle istruzioni dell'architettura. Insomma, le istruzioni che una determinata architettura mette a disposizione ed è in grado di eseguire.
Da questo punto di vista, quindi, G5 e Cell hanno sostanzialmente la stessa ISA, quindi stesso numero di registri e stesse istruzioni. In soldoni: lo stesso programma può (potenzialmente) girare tranquillamente su G5 o sulla PPE di Cell.
Veniamo al dunque: l'implementazione. E' qui che le differenze fra i due processori si fanno sentire pesantemente.
Cell è un'architettura in-order, questo vuol dire (in maniera MOLTO approssimativa) che è in grado di eseguire le istruzioni in sequenza, se e solo se non si presentano:
- dipendenze dai risultati (un'istruzione necessita del risultato elaborato da quella precedente);
- dipendenza dalle unità di esecuzione (es: un'istruzione necessita dell'FPU, ma questa risulta impegnata dalla precedente istruzione);
- cache miss (un'istruzione necessita di un dato che, però, non si trova né nella cache L1 né in quella L2);
- branch misprediction (nell'esecuzione di un salto condizionato il processore si è accorto di non aver "azzeccato" la previsione su quale sarebbe stato il risultato, ed è quindi costretto a buttare i calcoli effettuati e ricominciare da nuovo punto dell'esecuzione).
Il tutto, ripeto, in maniera molto approssimativa.
La PPE è in grado di eseguire soltanto due istruzioni in-order, quindi in sequenza, e le può eseguire tutte e due SE E SOLO SE queste condizioni sono soddisfatte.
Quindi in linea teorica potrebbe anche eseguire soltanto la prima (perché per la seconda si verifica una di quelle condizioni) oppure addirittura nessuna (perchè per la prima si verifica una di quelle condizioni, e la seconda, anche se potrebbe venir eseguita, deve per forza di cose aspettare che la prima "risolva i suoi problemi").
Quelle sopra esposte NON sono condizioni rare a verificarsi, ma tanto più il codice è "general purpose", tanto più facilmente il processore incapperà in una di esse, stallando la pipeline (o addirittura richiedendone il completo svuotamento, come nel caso di un branch misprediction).
Il G5, invece, è un processore appositamente progettato per lavorare al meglio con codice general purpose, e infatti, al contrario di Cell (ma anche di XCPU) è un processore out-of-order, in grado quindi di eseguire le istruzioni in un ordine diverso rispetto a quello necessario al completamento di un algoritmo.
Ordine diverso NON vuol dire che il programma calcola cose diverse: vuol dire semplicemente che le istruzioni internamente vengono "riordinate" in modo da evitare stalli dovuti alle condizioni sopra esposte, e "ricomposte" una volta eseguite in modo da riformare il corretto flusso di esecuzione.
Perché tutto ciò? Perché se, ad esempio, ho 3 istruzioni da eseguire, e la seconda per qualche motivo non può essere eseguita, ma la prima e la terza sì, il processore le esegue, e successivamente, dopo che anche la seconda sarà stata eseguita, rimetterà a posto i risultati in modo che venga rispettato il regolare flusso dell'esecuzione.
Per far questo G5 preleva un'intera linea di cache L1, pari a 32 byte, corrispondente a 8 istruzioni PPC (le istruzioni sono di lunghezza fissa a 32 bit, pari a 4 byte), e le "scandaglia" alla ricerca di un massimo 5 istruzioni che è possibile prelevare e schedulare per l'esecuzione.
Queste istruzioni sono poi decodificate e raggruppate in un bundle (fino a 5 istruzioni, appunto), e smistate a una delle code d'esecuzione, che per poi venire eseguite non appena le condizioni lo permetteranno.
G5, infatti, è in grado di tenere "sospese" fino a 200 istruzioni, fino alla loro definitiva esecuzione.
Da qui già s'intuisce il diverso, e ben più efficiente, approccio di G5. Ma ciò non basterebbe da solo a spiegarne le migliori capacità di esecuzione, perché esso ha altri elementi che concorrono a tutto ciò:
- una cache L1 più capiente;
- una cache L2 più veloce (e negli ultimi modelli più capiente, pari a 1MB);
- una sezione di branch prediction (in soldoni: è la logica che si occupa di "azzeccare" il risultato di un salto condizionato, in modo da evitare lo svuotamento della pipeline) nettamente superiore (probabilmente la più avanzata di tutti i processori attuali);
- un elevato numero di unità di esecuzione intere, floating point e vettoriali;
- una pipeline con un minor numero di stadi (16 anziché 21);
- un bus con l'esterno con una latenza nettamente inferiore, collegato a memorie DDR che hanno anch'esse una latenza d'accesso inferiore alle XDR.
Insomma, il G5 è un processore che è stato pensato e costruito in modo da avere elevate prestazioni con qualunque tipo di codice.
Ecco perché, anche se con un clock inferiore, è in grado di surclassare alla grande la PPE di Cell, che viaggia a frequenze più elevate, e che può vantare delle discrete prestazioni soltanto con codice "ordinato" (piuttosto raro nelle applicazioni "tradizionali").
Spero che la spiegazioni di massima possano bastare.
quindi non riesco a inquadrare che prestazioni possa avere su ps3, anche tenendo in considerazione la poca ram e x che gira su framebuffer.
Il fatto che giri su framebuffer vuol dire che tutte le operazioni di gestione della grafica saranno a carico della CPU, quindi della PPE, che già di suo non brilla certo a livello prestazionali, come ho spiegato sopra.
La poca RAM implicherà un maggior ricorso alla memoria virtuale, sfruttando il file o la partizione di paginazione, e di conseguenza facendo rallentare anche di molto l'esecuzione.
diciamo che con x si può risolvere, il resto la vedo dura perchè comunque le spe non sono adatte a certi compiti, mentre invece sono molto funzionali in altri.
Esatto, ma finché non saranno sfruttate Linux girerà male persino con applicazioni multimediali, per le quali la PS3 è particolarmente votata...