De processor
De processor CPU - Central Processing Unit CVE - Centrale VerwerkingsEenheid De CPU is de component die de programma’s uitvoert. Daarvoor haalt de processor via de bus instructies op en voert die uit.
De onderdelen ALU databus adresbus REGISTERS CONTROL UNIT controlebus ALU - Aritmetic and Logic Unit voert de rekenkundige en logische bewerkingen uit. Registers functioneren als een tijdelijk geheugen (kladblok) waar data kan worden opgeslagen zodat de ALU die kan bewerken. Control Unit gebruikt de ALU en de registers om de stroom instructies die over de bus gaan uit te voeren.
Analyseren instructie De instructiecyclus Alle processoren werken volgens het principe van instructie ophalen, analyseren en uitvoeren Ophalen instructie De Control Unit kopieert de instructie waarvan het adres in de programcounter staat uit het werkgeheugen naar het instructieregister. De Control Unit analyseert de instructie. Uitvoeren instructie Analyseren instructie De ALU voert de bewerking uit. Dit proces wordt steeds herhaald: de INSTRUCTIECYCLUS
Verwerking van de instructies Iedere instructie bestaat uit een rij bits. In een machinetaal zou de instructie voor het optellen van de inhoud van twee registers er als volgt kunnen uitzien: 01101101000010010000001100000100 operatiecode: 01101101 optellen van de inhoud van twee registers operandcode: 00001001 register 9 operandcode: 00000011 register 3 operandcode: 00000100 register 4 Deze opdracht kan betekenen: Tel de inhoud van de registers 3 en 4 bij elkaar op en zet het resultaat in register 9.
De instructiecyclus in detail De Control Unit kopieert de instructie waarvan het adres in de programcounter staat uit het werkgeheugen naar het instructieregister: 01101101 00001001 00000011 00000100 Vervolgens wordt de programcounter verhoogd. De Control Unit analyseert de instructie. In het voorbeeld staan in de registers 3 en 4 de operanden. Deze moeten voordat de instructie kan worden uitgevoerd vanuit het werkgeheugen naar de registers worden gekopieerd. De Control Unit kopieert de registers naar de ALU en geeft de operatiecode door. De ALU voert de bewerking uit. De volgende instructie kan verwerkt worden.
Assembleertaal en Assembler Programmeren in machinecode is veel werk en leidt tot het maken van fouten. Eenvoudiger is een assembleertaal: elke bitrij wordt vervangen door gewone cijfers en letters. 01101101 00001001 00000011 00000100 wordt ADD R9, R3, R4 Om de notatie in assembleertaal te vertalen naar machinecode is een programma nodig: een assembler. Een assembleertaal is processor-afhankelijk.
Instructies Om programma’s te kunnen uitvoeren beschikt de CPU over een aantal soorten instructies: Rekenkundige of logische instructies ADD, CMP Spronginstructies JNG Instructies voor datatransport LOAD LOAD R0, 1234 LOOP: ADD R0, #1 CMP R0, #12 JNG LOOP LOAD 1234, R0