Många kandidat - och grundutbildning - kurser i mycket stor skala - VLSI - har projekt som hänför sig till en eller flera aspekter av mikroprocessor design. Fokus för dessa projekt är att testa studentens förmåga att tillämpa teoretiska kunskaper i en praktisk miljö . Sådana projekt hjälper upplevelsen studenten vinst med mjukvara och verktyg som används i VLSI-konstruktion . Målet bör vara att hålla projekten enkel nog så att studenten kan genomföra dem inom rimlig tid , samtidigt presentera en utmaning för eleven att tänka bortom läroboken . Enkel Minskad Instruction Set Computing - RISC - Processor
I detta projekt förväntas studenten att skapa en mycket enkel RISC -processor . Posten hanterar sex instruktioner : Addera, subtrahera , multiplicera , dividera , belastning och butik . Antag att det finns tre register : R1 , R2 och R3 . De aritmetiska operationer - nämligen addera, subtrahera , multiplicera och dividera - utförs på de värden som lagras i registren R1 och R2 . Därför , innan du utför operationen , måste registren laddas . Utgången av operationen kommer att sparas i register R3 . Innan du gör en ny operation , bör värdet på R3 lagras i minnet .
För detta projekt , bör ett minne genomföras . Minnet kan delas upp i uppgifter och instruktioner delen resp . RISC -processor ska läsa instruktioner från instruktionen - minnet från adress 0x0 genom ett maximalt värde , och utföra motsvarande handlingar . Minnet kan laddas med en uppsättning instruktioner för provning . Pipelined RISC Processor
I detta projekt
bör RISC-processor ovan implementeras som en pipe - lined processor . En typisk RISC -processor har fem pipe - line stadier : " Fetch , " " Decode ", " Kör ", " Memory " och " Skriv Back " . Pipe -lining kan flera instruktioner för att vara aktiva på samma gång , vilket förbättrar systemets prestanda .
Pipe -fodrade processorer kan drabbas av bubblor eller tidscykler där ingen användbar åtgärd utförs . I en idealisk processor pipe - line , antas det i alla skeden av rörledningen komplett i en gång - cykel , och det finns inget beroendeförhållande av en instruktion på andra . Men ibland resultatet av den tidigare instruktionen kan behövas av nästa instruktion . I sådana fall , kan ingen användbar funktionen utföras tills den tidigare instruktionen är klar. Studenter som förändrar processorarkitektur för att minimera dessa döda cykler kan ges ytterligare krediter .
Prestanda Analys av aritmetiska enheter
För detta projekt , olika implementationer av de aritmetiska funktioner kan studeras för gate - count kontra fördelar prestanda . Till exempel skulle adderare implementeras som en krusning - carry adderare eller en carry - look -ahead adderare . En krusning carry adderare krusningar carry från ett tillägg stadium till ett annat , och det slutliga resultatet är tillgängligt när den sista etappen har utfört tillägget . Justeringen är långsam i den meningen att det tar många cykler för att resultatet ska vara tillgänglig . Däremot kan det rippel - carry adderare implementeras med en låg grind - count .
En carry - look -ahead adderare bestämmer värdet på carry av ett tillägg i förväg . Eftersom carry värde beräknas i förväg, kan adderaren beräkna resultatet i färre cykler . Däremot utför carry - look -ahead adderare fler beräkningar , och därmed är högt på gate - count .
Multiplikator skulle kunna genomföras som ett Booth multiplikator eller ett skift - lägg baserad multiplikator . Skiftet - lägga baserade system är det vanligt papper och penna metod för växling och tillsätta tills resultatet är klart . Den Booth multiplikator representerar multiplikator på ett mer optimalt sätt för att avsevärt minska antalet nödvändiga kompletteringar . Därför tar det mindre antal tidscykler för att beräkna det slutliga resultatet .
Enkel Cache Controller
En enkel fickminnesstyrenhet kan byggas . Fickminnesstyrenheten kunde vara fyrvägs set - associativt , med en minst nyligen använt - LRU - baserad ersättning politik . När en depåblock måste bytas ut , väljer LRU politik den minst nyligen använd depåblock , och ersätter det blocket .
En fyrvägs set - associativt cacheminne , kan varje minnesblock placeras i en av fyra platser i cachen . Jämfört med direkt - mappade cache där varje minnesblock kan placeras på exakt samma plats i cachen , de fyra -vägs set - associativ cache ger mer flexibilitet för blocket läge och motsvarande , bättre cache prestanda .
cachen bör genomföras med både write - back och skriv - genom politik . När data i cachen modifieras , huvudminnet återläggning politiska uppdateringar endast när depåblock ersätts . Å andra sidan , write -through politiska uppdaterar huvudminnet varje gång data i cachen är modifierad .
Enkel Cache sammanhängande system
En enkel två - processor cache sammanhängande system med en modifierad exklusiv - delad - invalid - baserade system kan genomföras . Varje processor kommer att ha sin egen cache-minne . I detta system , kan en linje eller ett block av cacheminnet vara i en av de fyra påstår nämligen , " modifierad ", " exklusiva ", " delad " eller "ogiltigt . " En linje är i " modifierad " tillståndet om uppgifterna i den raden är endast giltig i cachen på processorn . En linje är " exklusiva " om uppgifterna i denna linje finns i cachen på processorn samt i huvudminnet . En linje är " delad " Om uppgifterna är giltiga i cachen för båda processorerna . En linje är " ogiltig " om uppgifterna inte är giltiga i cachen på processorn .
Både katalogbaserad cache koherens och snooping - baserade cache konsekvens bör genomföras , och skalbarhet för varje algoritm med ökande antal processorer bör studeras . En katalog - baserad cache konsekvens mekanism upprätthåller en katalog av tillståndet i cachen i primärminnet . Denna katalog används sedan för att skicka meddelanden till processorn om tillståndet för varje depåblock . I en snoop - baserade system , varje ändring av resultaten depåblock i en sändning mekanism genom vilken cachar i de andra processorerna meddelas om förändringen i depåblock .