DLX
Da Wikipedia, l'enciclopedia libera.
DLX è un'architettura di microprocessori RISC sviluppata da John L. Hennessy e David A. Patterson, i principali sviluppatori dell'architettura MIPS e del progetto Berkeley RISC i due progetti che diedero via all'epoca RISC. L'architettura DXL è sostanzialmente una versione semplificata e ripulita dell'architettura MIPS sviluppata per scopo didattico in ambito universitario. L'architettura DLX è un'architettura a 32 bit del tipo load/store che essendo progettata come esempio di studio per i corsi universitari non comprende tutte le complicazioni di una moderna architettura RISC.
Le istruzioni DLX sono di tre tipi, le istruzioni R le istruzioni I e le istruzioni J. Le istruzioni R lavorano esclusivamente tra registri, utilizza un operando e tre registri contenuti in una parola di 32 bit. L'istruzione I è simili solo che utilizza un solo registro mentre i 16 bit lasciati liberi dagli altri due registi vengono utilizzati per inserire un valore assoluto. Le istruzioni J invece sono istruzioni di salto e contiene un operatore e un indirizzo assoluto da 26 bit.
Le istruzioni sono lunghe 6 bit e quindi forniscono al massimo 64 istruzioni, 4 bit sono utilizzati per selezionare uno dei 16 registri disponibili. Nel caso delle istruzioni R solo i primi 18 bit sono utilizzati direttamente dalle istruzioni, 6 bit sono utilizzati per definire delle istruzioni aggiuntive. Queste istruzioni aggiuntive (che possono lavorare solo con i registri) sono comode se si volesse aggiungere il supporto per la FPU o per altre estensioni.
Il DLX come i processori MIPS si basano sull'utilizzo di pipeline per incrementare le prestazioni. la pipeline è una semplice versione a cinque stadi, la classica pipeline di un'architettura RISC.
- IF - Instruction Fetch unit
- Unità di caricamento delle istruzioni, la terminologia moderna utilizza il nome di load unit
- ID - Instruction Decode unit
- Questa unità riceve le istruzioni caricate, estrae l'opcode e gli operando dall'istruzione. Questa unità inoltre recupera i valori dai registri.
- EX - Execution unit
- Questa unità riceve gli operandi ed esegue le operazioni aritmetiche e logiche. Viene indicata come ALU con la terminologia moderna.
- MEM - Memory access unit
- Questa unità carica i dati dalla memoria principale sotto il controllo delle unità ID e EX
- WB - WriteBack unit
- Questa unità memorizza i risultati, la terminologia moderna la identifica come store unit
L'architettura MIPS prevedeva che tutte le operazioni fossero eseguite in un ciclo di clock per ottenere elevate prestazioni. Nel caso di operazioni più lunghe (come l'accesso alla memoria) il compilatore inseriva delle NOP per fermare la pipeline.
Nell'architettura DLX invece si segue un approccio più moderno. Il processore usa il data-forwording e il riordino delle istruzioni. Quando il processore incontra delle istruzioni non eseguibili in un ciclo di clock le istruzioni vengono bloccate nelle unità funzionali e reinserite nel flusso di esecuzione quando sono pronte. Esternamente le istruzioni vengono eseguite nell'ordine indicato dal programma.