Mange graduate- og undergraduate - nivå kurs i Very Large Scale Integration - VLSI - har prosjekter knyttet til ett eller flere aspekter av mikroprosessor design. Fokus for disse prosjektene er å teste studentenes evne til å anvende teoretisk kunnskap i et praktisk miljø . Slike prosjekter hjelpe studenten få erfaring med programvare og verktøy som brukes i VLSI design. Målet bør være å holde prosjektene enkelt nok slik at studenten kan gjennomføre dem innen rimelig tid , mens presentere en utfordring for studenten å tenke utover læreboka. Enkel Redusert Instruction Set Computing - RISC - prosessor
I dette prosjektet skal studenten å lage en veldig enkel RISC -prosessor . Elementet behandler seks instruksjoner: legge til, trekke fra, multiplisere, dividere , last og lagre . Anta at det er tre kasser: R1, R2 og R3. De aritmetiske operasjoner - nemlig legge til, trekke fra, gange og dele - utføres på verdiene som er lagret i registre R1 og R2. Derfor , før du utfører operasjonen, må registrene lastes. Utgangen av operasjonen vil bli lagret i register R3. Før det utføres en ny operasjon , bør verdien av R3 være lagret i minnet.
For dette prosjekt, bør en hukommelse iverksettes. Minnet kan deles inn data og instruksjon del hhv . RISC -prosessor bør lese instruksjonene fra instruksjonen - minne fra adresse 0x0 gjennom en maksimal verdi , og utføre tilsvarende handlinger. Minne kan være lastet med et sett med instruksjoner for testing.
Pipelined RISC -prosessor
I dette prosjektet skal RISC -prosessor ovenfor skal gjennomføres som en pipe -lined prosessor . En typisk RISC -prosessor har fem rør - linje stadier : " Fetch ", " Decode ", " Execute ", "Memory " og " Skriv Back" . Pipe -fôr gjør at flere instruksjoner å være aktive på samme tid , og dermed forbedre systemytelsen.
Pipe -lined prosessorer kan lide av bobler eller tid sykluser hvor ingen nyttig operasjon utføres . I en ideell prosessor rør - linje , er det forutsatt i alle stadier av rørledningen fylt i en tids- syklus, og det er ingen avhengighet av en instruksjon på den andre. Imidlertid ofte et resultat av den foregående instruksjon kan være nødvendig av den neste instruksjon. I slike tilfeller kan ingen nyttig operasjonen bli utført før den forrige instruksjonen fullføres. Studenter som endrer prosessor arkitektur for å minimalisere disse døde syklusene kan bli gitt ytterligere kreditt .
Ytelse Analyse av aritmetiske Units
For dette prosjektet , ulike implementeringer av aritmetiske funksjoner kan studeres for gate -count versus ytelse fordeler. For eksempel kan huggorm bli gjennomført som en krusning - carry adder eller en bære -look -ahead huggorm . En krusning -carry adder krusninger bære fra ett tillegg scene til en annen , og det endelige resultatet er tilgjengelig når den siste fasen har utført tillegg . Dette huggorm er treg i den forstand at det tar mange sykluser for at resultatet skal være tilgjengelig. Imidlertid kan rippel - carry adder gjennomføres med en lav gate -count .
Carry -look -ahead huggorm bestemmer verdien av carry av et tillegg på forhånd. Siden bære verdi beregnes på forhånd, kan addisjonskretsen beregne resultere i færre sykluser. Men utfører carry -look -ahead huggorm flere beregninger , og dermed er høyt på gate -count .
Multiplikator kunne gjennomføres som en Booth multiplikator eller et skift - legg baserte multiplikator. Skiftet - legg ordning er den vanlige papir - og - blyant metode for skiftende og legge gjentatte ganger til resultatet er ferdig . Den Booth multiplikator representerer multiplikatoren på en mer optimal måte til vesentlig å redusere antallet av nødvendige tilsetninger . Derfor tar det mindre antall tid sykluser for å beregne det endelige resultatet .
Enkel Cache Controller
En enkel cache -kontrolleren kan bygges. Cache-kontrolleren kan være fire-veis set- assosiativ , med en minste - nylig brukt - LRU - basert erstatning politikk. Når en cache blokk må skiftes , velger LRU politikken som ble brukt for cache blokk, og erstatter den blokken.
I en fire -veis set- assosiativ cache , kan hvert minne blokk kan plasseres i en av fire steder i cache . Sammenlignet med direkte kartlagte cache der hvert minne blokk kan være plassert på nøyaktig ett sted i cache, fire -veis set- assosiativ cache gir mer fleksibilitet for blokken plassering og tilsvarende , bedre cache ytelse.
bufferen skal gjennomføres med både skrive -back og skrive gjennom politikk. Når data i cache er endret , tilbakeføring policyoppdateringer hovedminnet bare når cache blokken er erstattet . På den annen side , det skrive -through policyoppdateringer hovedminnet hver gang dataene i bufferen er endret .
Simple Cache sammenhengende system
En enkel to - prosessor cache sammenhengende system med en modifisert eksklusivt -shared -invalid - ordning kan iverksettes. Hver prosessor har sin egen cache -minne. I dette skjema kan en linje eller en blokk av bufferminnet være i en av de fire tilstander nemlig " modifisert ", "eksklusiv ", "delt " eller " ugyldig ". En linje er i "modifisert " state hvis dataene i denne linjen er kun gyldig i cache på prosessoren . En linje er "eksklusiv" hvis dataene i at linjen er til stede i bufferen av prosessoren , så vel som i hoved- hukommelsen . En linje er "delt" hvis dataene er gyldig i cache av begge prosessorene . En linje er " ugyldig " hvis dataene ikke er gyldig i cache på prosessoren .
Både katalog -basert cache sammenheng og snusing - baserte cache sammenheng bør gjennomføres , og skalerbarhet av hver algoritme med økende antall av prosessorer bør studeres . En katalog -basert cache sammenheng mekanisme opprettholder en katalog av tilstanden i cache i hovedminne. Denne katalogen er så brukt til å sende meldinger til prosessoren om tilstanden i hver cache blokk . I en snoop - ordning , hver endring av cache blokk resulterer i en kringkasting mekanismen som cacher av de andre prosessorene er varslet om endringen i cache blokken .