Quote:
Originariamente inviato da scorpionkkk
Non esiste la frase "ha parecchio in comune"...
|
Guarda che non hai preso la frase, ma un pezzo della frase:
"a LIVELLO DI IMPLEMENTAZIONE [...] ha parecchio in comune"
l'avevo scritto anche a caratteri cubitali...
Quote:
i processori in produzione attualmente(in realtà da 15 anni) sono RISC...e l'unica reminiscenza del cosiddetto CISC è solo il set d'istruzioni..
|
Al contrario, da questo punto di vista non ci sono molte differenze fra CISC e RISC moderni: hanno tutti un set d'istruzioni vasto e abbastanza "complesso".
La caratteristicha che ancora oggi distingue sicuramente un processore CISC da un RISC è la presenza di un set d'istruzioni con opcode a lunghezza variabile, al contrario di quello fisso usato da questi ultimi.
Poi ci sarebbe da considerare anche la presenza di modalità d'indirizzamento più complesse (i RISC ne hanno di molto semplici) e la presenza di istruzioni non di load/store che accedono direttamente alla memoria (i RISC hanno soltanto load/store per accedere alla memoria, e tutte le altre istruzioni fanno uso di registri).
Questo in generale e prendendo soltanto gli elementi più significativi (non ho parlato di istruzioni specifiche, come può essere una AAD in un x86, né di microcodice, ad esempio).
Quote:
Tra l'altro i processori attuali (ma questo ragionamento è vero praticamente dal Pentium in poi a livello commerciale) sono una evoluzione del RISC essendo in realtà dei processori VLIW vettoriali e superscalari.
|
Bisogna vedere cosa intendi con ciò.
A livello implementativo i CISC hanno iniziato a utilizzare tecnologie prima apparse sui RISC (che sono stati il "fiore all'occhiello" della ricerca e sviluppo nel campo dei microprocessori) per migliorare le prestazioni: mi riferisco alla presenza della cache (L1 e poi L2 ed L3), della separazione fra cache codice e dati, l'uso di bus multipli, di superpipeline che permettevano di eseguire più istruzioni, di esecuzione fuori ordine, di politiche di aggiornamento / consistenza dei dati (write through, write-back, bus snooping, ecc.).
80386, 80486, Pentium, 68020, 68030, 68040, 68060, ecc. hanno fatto parecchio uso di tutto ciò, ma sono pur sempre rimasti dei CISC...
Soltanto a partire dal K5 di AMD (a cui ha fatto seguito Intel col PentiumPro) è stata integrata un'unità RISC-like per l'esecuzione delle istruzioni, per cui le istruzioni x86 veniva "tradotte" in una o più istruzioni "RISC-86" e poi eseguite.
Ma il K5 è rimasto sempre un CISC: non è diventato un RISC soltanto perché A LIVELLO IMPLEMENTATIVO (lo voglio sottolineare ancora una volta), si è fatto uso di un'architettura basata sulla "filosofia RISC".
E si badi bene: non a caso ho parlato di "filosofia". Questo perché arrivare alla conclusione che "i RISC sono migliori dei CISC perché ormai questi ultimi ne integrano uno" è quanto di più sbagliato si possa pensare di fare.
Quei "RISC" hanno motivo di esistere soltanto in seno all'architettura per cui sono stati pensati e utilizzati: non è possibile ipotizzare, ad esempio, che se fossero costruiti dei processori senza tutto "l'orpello" di cui sono circondati, e quindi con un'ISA "nativa" (verrebero eseguite direttamente le istruzioni RISC senza alcuna traduzione), avrebbero buone prestazioni e forse anche molto migliori; al contrario, il decadimento prestazionale sarebbe notevole.
Conclusione: i CISC continuano a rimanere sempre tali, e lo stesso vale per i RISC...