Veel graduate - en cursussen undergraduate - niveau in Very Large Scale Integration - VLSI - hebben projecten die betrekking hebben op een of meer aspecten van microprocessor ontwerp . De focus van deze projecten is om het vermogen van de student om theoretische kennis toe te passen in een praktische omgeving te testen . Dergelijke projecten helpen de student ervaring opdoen met software en tools gebruikt in VLSI-ontwerp . Het doel moet zijn om de projecten eenvoudig genoeg zodat de student ze kan voltooien binnen een redelijke termijn te houden , terwijl het voorstellen van een uitdaging om de student te denken dan het leerboek . Eenvoudige Reduced Instruction Set Computing - RISC - Processor In dit project wordt de student verwacht dat hij een zeer eenvoudige RISC-processor te creëren . Het product verwerkt zes instructies : optellen, aftrekken , vermenigvuldigen, delen , belasting en winkel. Veronderstel dat er drie registers : R1 , R2 en R3 . De rekenkundige bewerkingen - namelijk optellen, aftrekken , vermenigvuldigen en delen - worden uitgevoerd op de waarden die zijn opgeslagen in de registers R1 en R2 . Daarom , voordat u de operatie , de registers moeten worden geladen . De uitgang van de operatie wordt opgeslagen in register R3 . Voordat een nieuwe operatie moet de waarde van R3 wordt opgeslagen in het geheugen . Dit project dient een geheugen uitgevoerd . Het geheugen kan worden opgedeeld in data en instructie deel resp . De RISC-processor moet de instructies van de instructie - geheugen vanaf adres 0x0 lezen via een maximale waarde , en de bijbehorende acties uit te voeren . Geheugen kan worden geladen met een reeks instructies voor het testen . Pipelined RISC Processor In dit project , moet de RISC-processor hierboven worden geïmplementeerd als een pipe -lined processor . Een typische RISC processor heeft vijf pipe -line stadia : " Fetch ", " Decode ", " Uitvoeren ", "Memory " en " Write Back " . Pipe - voering kunnen meerdere instructies om actief te zijn op hetzelfde moment , waardoor de systeemprestaties te verbeteren . Pipe omzoomde processors kunnen last hebben van luchtbellen of tijd cycli waarin geen nuttige bewerking wordt uitgevoerd . In een ideale processor pijp - lijn , wordt verondersteld in alle stadia van de pijp - lijn volledig in een tijd - cyclus , en er is geen afhankelijkheid van een instructie aan de andere kant . Soms worden de resultaten van de vorige instructie kan nodig zijn door de volgende instructie . In dergelijke gevallen kan geen nuttige werking worden uitgevoerd zolang de vorige instructie voltooid . Studenten die veranderen de processor architectuur om deze dode cycli te minimaliseren kan worden gegeven extra krediet . Prestatie-analyse van Arithmetic Units Voor dit project , verschillende implementaties van de rekenkundige functies kunnen worden bestudeerd voor gate - count versus prestatie voordelen . Zo zou de adder worden geïmplementeerd als een rimpel - carry adder of een carry - look-ahead adder . Een ripple -carry adder rimpelingen de carry van de ene naast het podium naar de andere , en het eindresultaat is beschikbaar wanneer de laatste fase van de toevoeging heeft uitgevoerd . Deze uitbreiding is traag in de zin dat het vele cycli om de resultaten beschikbaar zijn . Echter , kan de rimpel - carry adder worden geïmplementeerd met een lage gate - count . Een carry -look -ahead adder bepaalt de waarde van de carry van een toevoeging van tevoren. Sinds de carry waarde van tevoren wordt berekend , kan de adder het resultaat in minder cycli te berekenen . Echter , de carry - look-ahead adder presteert meer berekeningen , en dus is het hoog op de gate - count . De multiplier kan worden geïmplementeerd als een Boothmultiplicator of een shift - voegen gebaseerde multiplier . De shift - add gebaseerde regeling is de reguliere papier - en - potlood methode van het verschuiven en herhaaldelijk te voegen totdat het resultaat wordt afgerond . De Boothmultiplicator vertegenwoordigt de multiplier in een meer optimale wijze het aantal toevoegingen vereist aanzienlijk. Daarom duurt het minder aantal tijdcycli om het uiteindelijke resultaat te berekenen . Eenvoudige Cache Controller Een eenvoudige cache controller kan worden gebouwd . De cache controller kan vier - weg set - associatief , met een minst recent gebruikte - LRU - gebaseerde vervangingsbeleid . Wanneer een cache blok moet worden vervangen , de LRU beleid kiest het minst recent gebruikte cache blok , en vervangt dat blok . In een vier -weg set - associatieve cache , kan elk geheugen blok in een van geplaatst worden vier locaties in de cache . Vergeleken met de direct - mapped cache waarbij elk geheugenblok kan worden gevestigd op precies een plaats in de cache , de vierweg set - associatieve cache biedt meer flexibiliteit voor de bloklocatienummer en dienovereenkomstig , betere prestaties cache . de cache moet worden uitgevoerd met zowel write - back en write-through beleid . Wanneer de gegevens in de cache wordt gewijzigd , de write-back beleid updates het hoofdgeheugen alleen wanneer de cache blok wordt vervangen . Aan de andere kant , de write -through beleid updates het hoofdgeheugen wordt elke keer dat de gegevens in de cache gewijzigd. Eenvoudige Cache Coherent systeem Een eenvoudige twee - processor cache- coherent systeem met een gemodificeerde - exclusieve - shared - ongeldige gebaseerde regeling kan worden geïmplementeerd . Elke processor heeft zijn eigen cache -geheugen . In deze regeling , kan een lijn of blok van cachegeheugen in een van de vier staten, namelijk , " bewerkt ", " exclusieve ", " gedeeld " of " ongeldig . " Een lijn is in "gewijzigde " staat als de gegevens in die lijn is alleen geldig in de cache van de processor . Een lijn is " exclusieve" indien de gegevens op die regel in de cache van de processor en in het hoofdgeheugen . Een lijn is " gedeeld " als de gegevens is geldig in de cache van beide processors . Een lijn is " ongeldig " als de gegevens is niet geldig in de cache van de processor . Zowel directory - gebaseerde cache coherentie en spionage - gebaseerde cache coherentie moet worden uitgevoerd , en de schaalbaarheid van elk algoritme met een toenemend aantal processors worden onderzocht . Een directory - gebaseerde cache coherentie mechanisme onderhoudt een directory van de staat van de cache in het hoofdgeheugen . Deze map wordt vervolgens gebruikt om berichten naar de processor over de status van elke cache blok . In een snoop - gebaseerde regeling , elke wijziging van de cache blok resulteert in een uitzending mechanisme waardoor caches van de andere processors worden geïnformeerd over de verandering in de cache blok .
|