1. BENVENUTO SU CONSOLE TRIBE

    Benvenuto, stai navigando nella nostra community come ospite

    Avere un account su Console Tribe ti permetterà di creare e partecipare alle discussioni e al mercatino, organizzare tornei e partite online, iniziare conversazioni personali con gli altri giocatori del forum e di utilizzare tutte le funzioni di questo sito.

    Registra il tuo account in meno di 5 secondi, se vuoi puoi sfruttare i login social via Facebook, Google Plus o Twitter.

(Richiesto) Risc e Cisc

Discussione in 'Computer & Technology' iniziata da ConteZero, 3 Aprile 2005.

  1. ConteZero

    ConteZero Tribe Member

    Registrato:
    16 Marzo 2005
    Messaggi:
    7.682
    "Mi Piace" ricevuti:
    1
    Punteggio:
    36
    Bisogna fare un salto indietro nel tempo per capire dov'è nato questo abisso che ha separato in due il mondo dell'informatica...
    Quando i processori avevano migliaia di transistor anzichè milioni e la frequenza di 1MHz era un tetto allora insuperabile i processori erano delle cose orripilanti, progettati con set d'istruzioni impossibili e programmati da gente che scriveva codice direttamente in assembler.
    A quei tempi, proprio perchè si scrivevano i programmi in assembler avere un set d'istruzioni molto vasto e articolato era il sogno degli sviluppatori di software che, vuoi per risparmiare memoria, vuoi per semplificare il loro lavoro, desideravano che le istruzioni fossero estremamente complesse.
    Intel per prima si fece carico di ovviare alle carenze nei set d'istruzioni dei processori rilasciando il primo processore con microcodice.
    Il microcodice è un programma messo all'interno della CPU che si limita a leggere le istruzioni e svolgerle come un sottoinsieme di istruzioni più semplici.
    In pratica i processori senza microcodice hanno una circuiteria che è programmata per eseguire direttamente tutte le istruzioni "in un singolo ciclo di clock" o, per meglio dire, come dei comandi veri e propri.
    I processori con microcodice d'altrocanto sono delle macchine molto piccole e molto semplici, con pochissimi comandi (a volte ancora meno di quelli senza microcodice) che eseguono un programma (il microcodice appunto) all'interno del processore.
    Il microcodice è un programma che esegue le istruzioni assembler, la differenza è che, essendo un programma egli stesso, è più flessibile e può implementare (su un hardware molto modesto) un numero molto maggiore di operazioni.
    Lo scotto dei processori con microcodice è che (riferendoci al modello teorico, nella pratica oramai si lavora con modelli ibridi estremamente ottimizzati) è possibile effettuare solo una microistruzione per ciclo di clock mente una macchina senza microcodice esegue esattamente un istruzione a ciclo di clock; d'altro canto essendo il "core" di un processore con microcodice (la macchina vera e propria) più piccola e più semplice è possibile accelerarla maggiormente ottenendo, in cambio, maggiori frequenze operative che, nella maggior parte dei casi, controbilanciano l'utilizzo del microcodice stesso.

    Dallo scontro estremamente duro fra i sostenitori delle macchine microprogrammate e ed i convinti assertori dei processori lisci sono nate due scuole di pensiero, quella RISC (Reduced Instruction Set Computer) e quella CISC (Complex Instruction Set Computer); in effetti RISC e CISC non dividono esattamente le CPU in base alla presenza o meno del microcodice ma a seconda della complessità del set d'istruzioni fornito.

    Negli anni i programmatori a livello assembler si sono estinti (per fortuna) ed il loro posto è stato preso da compilatori molto efficienti che non hanno, in effetti, bisogno di set d'istruzioni molto estesi per lavorare al meglio; tuttavia è vero che comunque i processori RISC tendono a generare codice più prolisso ed ad avere bisogno di maggiori quantitativi di RAM e di cache per girare ottimamente rispetto alle controparti CISC.

    Dalle due compagini comunque si sono distinti diversi gruppi che hanno sviluppato diverse "ideologie" e scuole di pensiero:
    - Gli ascetici del processore RISC senza microcodice hanno progettato MIPS (i processori Rx0000) usati sulle Silicon Graphics, sulla PlayStation ed in diversi computer di IBM; MIPS è noto perchè discretamente ostico da programmare.

    - I moderati del modello RISC hanno optato per il modello SPARC, presente ad oggi sulle SUN di fascia medio-alta; SPARC ha delle piccole unità funzionali dove c'è del microcodice per migliorare le prestazioni soprattutto nel calcolo di moltiplicazioni e matematica "complessa".

    - I moderati del modello CISC hanno preso la via degli acronimi, tirando fuori i CRISP (Complex and Reduced Instruction Set Processor) che è in pratica una nutrita fetta dei processori in giro, ovvero processori che hanno microcodice per le operazioni poco usate e molto complesse e codice "hardwired" come i RISC per le operazioni semplici, a tutto guadagno delle performance.

    - Gli amanti del CISC hanno sviluppato l'idea del microcodice a livelli estremi generando programmi con nanooperazioni o macrooperazioni (terminologia stranamente familiare a chi ha letto specifiche AMD e Intel) e si è arrivati alla VLIW (Very Long Instruction Word) ed alla tecnologia EPIC degli Itanium, dove una singola istruzione è interpretato come "blocco" di istruzioni messe tutte insieme per non patire nel collo di bottiglia RAM -> CPU.

    Su tutto questo è poi calato lo spettro delle pipeline, che richiedono l'ulteriore divisione di una qualsiasi operazione in diversi "stage" (pezzi dell'operazione stessa) che vanno svolti in parallelo per migliorare la resa (principalmente nei CISC e derivati).
    Non mi soffermo molto, buona parte di questi concetti sono già abbastanza rognosi ed ho solo un infarinatura scolastica del Tanenbaum e del mio prof.di Architetture comunque l'argomento è molto lungo e complesso e si arriva a parlare per ore.
    RISC e CISC propriamente detti sono oramai lungamente defunti e sostituiti da modelli ibridi dove si è fatto di tutto per migliorare le prestazioni (uno studio anche leggero dei meccanismi delle pipeline e dei branch prediction tira fuori una marea di concetti che stanno più nella statistica che nell'informatica propriamente detta).
  2. SeV3n

    SeV3n Administrator

    Registrato:
    3 Novembre 2002
    Messaggi:
    9.801
    "Mi Piace" ricevuti:
    311
    Punteggio:
    419
    Località:
    Polimi / Monza Beach
    Grandioso :)
  3. GiG][O

    GiG][O Tribe Newbie

    Registrato:
    16 Marzo 2005
    Messaggi:
    44
    "Mi Piace" ricevuti:
    0
    Punteggio:
    6
    conte mi fa paura tanta saggezza