Enkle Mikro Prosjekter

Enkle Mikro Prosjekter


Mange graduate- og lavere 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 studentens evne til å anvende teoretisk kunnskap i en 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 fullføre dem innen rimelig tid, mens presentere en utfordring til studenten å tenke utover læreboka.

Enkelt Reduced Instruction Set Computer - RISC - Prosessor

I dette prosjektet skal studenten til å lage en veldig enkel RISC-prosessor. Elementet behandler seks instruksjoner: addere, subtrahere, multiplisere, dividere, last og lagre. Anta at det er tre registre: R1, R2 og R3. De aritmetiske operasjoner - nemlig legge til, trekke fra, multiplisere og dividere - utføres på lagret i registrene R1 og R2 verdier. Derfor før du utfører operasjonen, registrene må lastes. Utgangen av operasjonen vil bli lagret i register R3. Før å utføre 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 instruksjoner fra instruksjons-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 implementeres som en pipe-lined prosessor. En typisk RISC-prosessor har fem Gassrør stadier:. "Fetch", "Decode", "Execute", "Memory" og "Skriv Back" Rør-foring gjør at flere instruksjoner for å være aktive samtidig, og dermed forbedre systemytelsen.

Pipe-lined prosessorer kan lide av bobler eller tidssykluser der ingen nyttig operasjonen er utført. I en ideell prosessor rør-linje, er det antatt at alle stadier av rør-linje fullstendig i en tidssyklus, og det er ingen avhengighet av en instruksjon på den andre. Men ofte et resultat av den foregående instruksjon kan være nødvendig av den neste instruksjon. I slike tilfeller kan ingen nyttig operasjon utføres før det tidligere instruksjon er fullført. Studenter som endrer prosessorarkitekturen for å minimalisere disse døde sykluser kan gis ekstra kreditt.

Ytelse Analyse av Aritmetiske Units

For dette prosjektet, kan forskjellige implementeringer av aritmetiske funksjoner bli undersøkt for gate-count kontra ytelse fordeler. For eksempel kan huggorm skal gjennomføres som en krusning-carry adder eller en carry-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-bære adderer implementeres med en lav port-teller.

En carry-look-ahead huggorm bestemmer verdien av transportering av et tillegg på forhånd. Siden bære verdien beregnes på forhånd, kan addereren beregne resultere i færre sykluser. Men utfører carry-look-ahead adder flere beregninger, og dermed er høyt på gate-teller.

Multiplikatoren kan gjennomføres som et Booth multiplikator eller et skift-add basert multiplikator. Skiftet-add basert ordning er den vanlige papir-og-blyant metode for å skifte og legge gjentatte ganger inntil resultatet er ferdig. Booth multiplikatoren representerer multiplikatoren på en mer optimal måte for å betraktelig redusere antall tilsetninger som kreves. Derfor tar det mindre antall tidssykluser for å beregne det endelige resultatet.

Enkelt 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 politikk minst nylig brukte cache blokk, og erstatter den blokken.

I en fire-veis set-assosiativ buffer, kan hver minneblokk plasseres i en av fire steder i hurtigbufferen. I forhold til den direkte-tilordnede hurtigbuffer, hvor hver minneblokk kan være plassert på en nøyaktig plassering i hurtigbufferen, gir den fire-veis set-assosiativ buffer mer fleksibilitet for blokken plassering og tilsvarende bedre buffer ytelse.

Den bufferen bør iverksettes med både tilbakeføring og skrive gjennom politikk. Når data i bufferen er endret, oppdaterer tilbakeføring politikk hovedminnet bare når cacheblokk erstattes. På den annen side, oppdaterer write-through policy hovedlagerenheten hver gang data i hurtigbufferen er modifisert.

Enkelt Cache Coherent System

En enkel to-prosessor cache sammenhengende system med en modifisert-eksklusiv-delt-invalid basert ordning kan implementeres. Hver prosessor vil ha sin egen cache-minne. I denne ordningen, kan en linje eller blokk med cacheminnet være i en av de fire statene nemlig "modifiserte", "eksklusiv", "felles" eller "ugyldig." En linje er i "modifisert" tilstand hvis dataene i denne linjen er kun gyldig i cache på prosessoren. En linje er "eksklusiv" hvis dataene på at linjen er til stede i bufferen for prosessoren, så vel som i hovedminnet. 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 katalogbasert cache sammenheng og snusing basert cache sammenheng bør gjennomføres, og skalerbarheten av hver algoritme med økende antall prosessorer bør studeres. En katalog-basert cache sammenheng mekanisme opprettholder en katalog av tilstanden i cache i hovedminnet. Denne katalogen blir så brukt til å sende meldinger til prosessoren om tilstanden i hver cache blokk. I en snoop basert ordning, hver modifisering av bufferen blokk resulterer i en kringkastings mekanisme ved hvilken hurtigbuffere av de andre prosessorene blir varslet om endringen i bufferblokken.