1Ben Bruidegom A Harvard Machine Recapitulatie Calculator Calculator Calculator met “loopjes” Calculator met “loopjes” Processor
2Ben Bruidegom Recapitulatie rekenmachine II Instruction Memory Registers ALU PC Instruction Address Constant getal 4 bits address 16 bits data rs Adres Data Adres rd Data rd rt Adres Data
3Ben Bruidegom Instructies: Rekenkundige en logische instructies ADD SUB AND Immediate instructies (Instructies met één constant getal) LOADI ADDI SUBI ANDI Datatransfer COPY
4Ben Bruidegom “Control” van de rekenmachine Instruction Memory ALU operatie PC Instruction Address First Register rs Address Data Second Register rt Address Data Destination Reg. rd Address Data 4 bits address 16 bits data 3 bits control Registerfile (16) Control Multiplexer (Mux) ADDIrsrtrdConstant getal x Instructieformaat ADDI $7, $5, 0x100
5Ben Bruidegom Rekenmachine II
6Ben Bruidegom Calculator Calculator met “loopjes”
7Ben Bruidegom Uitbreiding instructieset: Rekenkundige en logische instructies ADD SUB AND COPY Immediate instructies (Instucties met één constant getal) ADDI SUBI ANDI LOADI Branch instucties BZ (Branch if zero) BEQ (Branch if equal) BRA (Branch always)
8Ben Bruidegom Voorwaarden Branch-instructie Een sprong in een programma wordt alleen uitgevoerd als: - er een Branch-instructie geprogrammeerd is én - de Zero-uitgang van de ALU 1 is.
9Ben Bruidegom ALU met Zero-flag A B 11 Z Y(y 15, y 14,….,y 0 )
10Ben Bruidegom Wanneer wordt een branch-instructie uitgevoerd? Instruction Memory Registers (16) Load PC ALU PC Instruction & Address Register Rs Register Rt Register Rd Data Branch AND-poort Evaluatie conditie (zero) ?
11Ben Bruidegom Hoe wordt de nieuwe waarde van de Program Counter berekend? Instruction Memory Registers (16) Load PC ALU PC Instruction & Address Register Rs Register Rt Register Rd Data Branch Opteller AND-poort Huidige waarde PC Offset Nieuwe waarde PC Evaluatie conditie (zero)
12Ben Bruidegom Instruction Memory Registers (16) Load PC ALU PC Instruction & Address Register Rs Register Rt Register Rd Data Branch Opteller AND-poort Huidige stand PC Offset Nieuwe stand PC Evaluatie conditie Syntax : BEQ rs, rt, label Voorbeeld: BEQ $7, $5, loop Betekenis: if (register 7 = register 5) goto loop Zero Welke operatie moet de ALU uitvoeren?
13Ben Bruidegom Uitbreiding met ‘loopjes’ Waarom is er een RegWrite-lijn nodig?
14Ben Bruidegom Rekenmachine II
15Ben Bruidegom Opgaven paragraaf 7.4 Toelichting opdracht 7: uur
16Ben Bruidegom Vermenigvuldigen op de basisschool Multiplicand a 1210 Multiplier b Product
17Ben Bruidegom Vermenigvuldigen binair Multiplicand a 1010 Multiplier b Product
18Ben Bruidegom Multiplicand a 1010 Multiplier b Product Vermenigvuldigen binair
19Ben Bruidegom Multiplicand a 1010 Multiplier b Product Vermenigvuldigen
20Ben Bruidegom Uitbreiding met Data Memory Instruction Memory Registers (16)Data Memory ALU PC Instruction Data in Address Register Rs Register Rt Register Rd Data Data out Bij een Harvard architectuur is het geheugen gescheiden in twee delen: het instructiegeheugen en het datageheugen
21Ben Bruidegom Uitbreiding instructieset Load Word (LW): Registers Data Memory Store Word (SW): Registers Data Memory Slechts twee instructies communiceren met het datageheugen Load/Store Machine
22Ben Bruidegom ALU en Data Memory Data Memory ALU Data in Address Data out First register Instructie Memory (index) Second register Destination register
23Ben Bruidegom Store Word Instruction Memory Registers (16)Data Memory ALU PC Instruction Data in Address Register Rs Register Rt Register Rd Data Data out SW rt, index, rs SW $0, 0x10, $1 Memory[R HEX ] = R0
24Ben Bruidegom Load Word Instruction Memory Registers (16)Data Memory ALU PC Instruction Data in Address Register Rs Register Rt Register Rd Data Data out LW rd, index, rs LW $0, 0x10, $1 R0 = Memory[R HEX ]
25Ben Bruidegom Uitbreiding met Data Memory (Harvard machine )
26Ben Bruidegom Vijf fases van een instructie Instruction Memory Registers (16)Data Memory ALU PC Instruction Data in Address 1 st register rs 2d register rt Dest. reg. rd Data in 1: Instruction fetch 2: Instruction decode 3:Execute 4: Memory Access 5: Write back Data out
27Ben Bruidegom Vijf fases van een instructie Instruction Memory Registers (16)Data Memory ALU PC Instruction Data in Address 1 st register rs 2d register rt Dest. reg. rd Data in 1: Instruction fetch 2: Instruction decode 3:Execute 4: Memory Access 5: Write back Data out
28Ben Bruidegom Vijf fases van een instructie Instruction Memory Registers (16)Data Memory ALU PC Instruction Data in Address 1 st register rs 2d register rt Dest. reg. rd Data in 1: Instruction fetch 2: Instruction decode 3:Execute 4: Memory Access 5: Write back Data out
29Ben Bruidegom Vijf fases van een instructie Instruction Memory Registers (16)Data Memory ALU PC Instruction Data in Address 1 st register rs 2d register rt Dest. reg. rd Data in 1: Instruction fetch 2: Instruction decode 3:Execute 4: Memory Access 5: Write back Data out
30Ben Bruidegom Vijf fases van een instructie Instruction Memory Registers (16)Data Memory ALU PC Instruction Data in Address 1 st register rs 2d register rt Dest. reg. rd Data in 1: Instruction fetch 2: Instruction decode 3:Execute 4: Memory Access 5: Write back Data out
31Ben Bruidegom Vijf fases van een instructie Instruction Memory Registers (16)Data Memory ALU PC Instruction Data in Address 1 st register rs 2d register rt Dest. reg. rd Data in 1: Instruction fetch 2: Instruction decode 3:Execute 4: Memory Access 5: Write back Data out