Zoals in het begin van deze lessenreeks reeds vermeld, is het uiteindelijke doel het maken van een processor. De voorbij labo’s is hiervoor de basis gelegd. De volgende componenten, die jullie reeds gemaakt hebben, dienen samengebracht te worden:
Bij de ingang van de ALU, de bovenkant (register D) is ALU ingang x en de onderkant is ALU ingang Y.
De architectuur van de Central Processing Unit (CPU) die we voor ogen hebben, is reeds ontworpen en maakt deel uit van de Hack computer. De Hack computer heeft de volgende componenten:
Aangezien de CPU werkt met 16-bit operanden en de bussen ook 16 bits in parallel aan- en afvoeren, is dit een 16-bit processor.
De architectuur van de Central Processing Unit (CPU) die we voor ogen hebben, is hiernaast weergegeven. De Hack CPU heeft de volgende componenten:
Een computer is eigenlijk een dom beest. Hij draait rondjes, zolang hij aan staat. Het rondje dat de Hack computer maakt is het volgende:
Zoals we in het voorgaande hoofdstuk gezien hebben, is er één signaal dat ervoor zorgt dat alles in goede banen geleid wordt: de klok. Alles gebeurt synchroon ten opzicht van deze klok.
De instructie wordt opgehaald uit het instructie geheugen (ROM). Om te bepalen welke instructie opgehaald dient worden, fungeert de program counter als pointer. De program counter die jullie in het vorige hoofdstuk gemaakt hebben voldoet hiervoor, met deze uitzondering dat het ROM geheugen maar 32'768 instructies diep is (en dus maar 15 bits breed is).
Om de instructie uit te voeren, wordt er gebruik gemaakt van de ALU. Deze hebben jullie reeds 2 hoofdstukken geleden gemaakt.
Omdat er soms meer geheugen nodig is om bewerkingen te kunnen doen en omdat er randapparatuur aanwezig is, is er nog een data geheugen (RAM) aanwezig. Instructies die uitgevoerd worden kunnen hun inputs hieruit halen en/of hun resultaat hiernaar schrijven. De breedte van deze RAM is dan ook 16 bits. Een eenvoudige manier om de randapparatuur te gebruiken is om deze een sectie uit het RAM geheugen toe te kennen. Aangezien er 2 toestellen zijn, zijn er ook 2 vast-gedefinieerde regio’s hiervoor:
Tenslotte, na het ophalen en uitvoeren van een instructie, dient de program counter aangepast te worden naar de volgende instructie.