corsi di laurea a livello di Very Large Scale Integration Molti laureati - e - VLSI - sono progetti relativi a uno o più aspetti della progettazione di microprocessori . Il focus di questi progetti è quello di testare la capacità dello studente di applicare le conoscenze teoriche in un ambiente pratico . Tali progetti aiutano l'esperienza di guadagno studente con software e strumenti utilizzati nella progettazione VLSI . L'obiettivo dovrebbe essere quello di mantenere i progetti abbastanza semplice in modo che lo studente possa completare entro un tempo ragionevole , pur presentando una sfida per lo studente a pensare oltre il libro di testo . Semplice Reduced Instruction Set Computing - RISC - Processore
In questo progetto , gli studenti si prevede di creare un processore molto semplice RISC . La voce elabora sei istruzioni : addizione, sottrazione , moltiplicazione, divisione , caricare e memorizzare . Assumono che ci sono tre registri : R1 , R2 e R3 . Le operazioni aritmetiche - cioè aggiungere, sottrarre, moltiplicare e dividere - vengono eseguite sui valori memorizzati nei registri R1 ed R2 . Pertanto , prima di eseguire l'operazione , i registri devono essere caricati . L' output dell'operazione verrà salvato in R3 di registro. Prima di eseguire una nuova operazione , il valore di R3 deve essere memorizzato nella memoria .
Per questo progetto , una memoria dovrebbe essere attuato . La memoria può essere partizionato in dati e quote di istruzioni rispettivamente . Il processore RISC dovrebbe leggere le istruzioni dalla istruzione - memoria da 0x0 affrontandoli con un valore massimo ed eseguire le azioni corrispondenti . Memoria può essere caricato con un set di istruzioni per i test .
Pipelined RISC Processor
In questo progetto , il processore RISC di cui sopra dovrebbe essere implementato come un processore pipe- lined . Un processore RISC tipico ha cinque stadi pipe -line : " Fetch ", " Decode ", " Esegui ", " Memory " e " Write Back " . Pipe- rivestimento consente a più istruzioni di essere attivi allo stesso tempo , migliorando così le prestazioni del sistema .
Processori Tubo -allineati
possono soffrire di bolle o cicli di tempo in cui non viene eseguita alcuna operazione utile . In un processore ideale pipe-line , si assume in tutte le fasi della tubazione completa in un tempo - ciclo , e non vi è alcuna dipendenza di una istruzione sull'altra . Tuttavia, a volte il risultato dell'istruzione precedente può essere necessaria per la successiva istruzione . In tali casi , nessuna operazione utile può essere eseguita prima dell'istruzione precedente completata . Gli studenti che alterano l'architettura del processore per ridurre al minimo i cicli di morte può essere dato credito aggiuntivo .
Analisi delle prestazioni di Aritmetica Unità
Per questo progetto , diverse implementazioni di le funzioni aritmetiche possono essere studiati per cancello -count contro benefici prestazionali . Ad esempio , la vipera potrebbe essere implementato come un sommatore ripple-carry o un carry - look-ahead adder . Un ripple carry adder increspature riporto da uno stadio oltre a un altro , e il risultato finale è disponibile quando l'ultima tappa si è esibito l'aggiunta . Questa tolleranza è lento nel senso che tiene molti cicli per il risultato sia disponibile . Tuttavia, il sommatore ripple-carry può essere implementato con un basso cancello -count .
Carry- look-ahead adder determina il valore di riporto di un aggiunta prima del tempo . Poiché il valore di riporto viene calcolato prima del tempo , il sommatore può calcolare il risultato in meno cicli . Tuttavia, il sommatore carry- look-ahead esegue più calcoli , e di conseguenza è alto sulla porta -count .
Il moltiplicatore potrebbe essere implementato come un moltiplicatore di Booth o un moltiplicatore basato shift- aggiungere . Il passaggio -add schema basato è il metodo di carta e matita regolare spostando e aggiungendo ripetutamente fino a quando il risultato è finalizzato. Il moltiplicatore Booth rappresenta il moltiplicatore in modo più ottimale di ridurre notevolmente il numero di aggiunte previste . Quindi , ci vuole meno il numero di cicli di tempo per calcolare il risultato finale .
Semplice cache del controller
Un controllore di cache semplice può essere costruito . Il controller della cache potrebbe essere a quattro vie set- associativa , con un meno utilizzato di recente - politica di sostituzione a base - LRU . Quando un blocco di cache deve essere sostituito , la politica LRU sceglie il blocco di cache utilizzato meno di recente , e sostituisce quel blocco .
In una cache quattro vie set-associative , ciascun blocco di memoria può essere posizionato in uno dei quattro sedi nella cache. Rispetto alla cache direct -mapped dove ogni blocco di memoria può essere situato a esattamente una posizione nella cache , a quattro vie di cache set- associativa offre una maggiore flessibilità per la posizione di blocco e di conseguenza , una migliore performance della cache .
la cache dovrebbe essere attuata sia con le politiche write-through e write-back . Quando i dati nella cache vengono modificati , gli aggiornamenti dei criteri write -back della memoria principale solo quando il blocco di cache viene sostituito . D'altro canto , la scrittura attraverso gli aggiornamenti dei criteri della memoria principale ogni volta che i dati nella cache viene modificata .
Semplice Cache Coherent Sistema
Una semplice a due cache di sistema coerente processore con uno schema modificato esclusiva -shared - invalid- based può essere implementato . Ogni processore avrà una propria memoria cache . In questo schema, una linea o un blocco di memoria cache può essere in uno dei quattro stati e cioè , " modificati ", " esclusivo ", " condiviso " o "non valido . " Una linea è in stato "modificato" se i dati in quella linea è valida solo nella cache del processore . Una linea è " esclusivo" se i dati in quella riga è presente nella cache del processore , nonché nella memoria principale . Una linea è "condivisa ", se i dati sono validi nella cache di entrambi i processori . Una linea è "non valido ", se i dati non sono validi nella cache del processore .
Sia coerenza basata su directory cache e snooping basata coerenza della cache dovrebbe essere attuato , e la scalabilità di ogni algoritmo con un numero crescente di processori dovrebbero essere studiati . Un meccanismo di coerenza della cache basata su directory mantiene una directory dello stato della cache nella memoria principale . Questa directory viene poi utilizzato per inviare messaggi al processore sullo stato di ogni blocco di cache . In uno schema di snoop -based , ogni modifica dei risultati del blocco di cache in un meccanismo di trasmissione dai quali cache degli altri processori vengono informati del cambiamento nel blocco di cache.