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. • De instructiecyclus Alle processoren werken volgens het principe van instructie ophalen, analyseren en uitvoeren 1. De Control Unit kopieert de instructie waarvan het adres in de programcounter staat uit het werkgeheugen naar het instructieregister. 2. De Control Unit analyseert de instructie. Uitvoeren De ALU voert de instructie bewerking uit. 3. Ophalen instructie Dit proces wordt steeds herhaald: de INSTRUCTIECYCLUS Analyseren instructie 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 1. 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. 2. 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. 3. 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 1. Om programma’s te kunnen uitvoeren beschikt de CPU over een aantal soorten instructies: 1. Rekenkundige of logische instructies ADD, CMP 2. Spronginstructies JNG 3. Instructies voor datatransport LOAD LOAD LOOP: ADD CMP JNG LOAD R0, 1234 R0, #1 R0, #12 LOOP 1234, R0