1Ben Bruidegom A Harvard Machine Calculator Calculator Computer
2Ben Bruidegom Hoofdcomponenten Calculator: Program Counter (PC) Instruction Memory Registerfile Arithmetic Logic Unit (ALU)
3Ben Bruidegom Instruction Memory Address Data data uitgang (35 bit) adres ingang (16 bit) Hoeveel bit is dit geheugen?
4Ben Bruidegom Blokschema Registerfile First Register Address Data Second Register Address Data Destination Reg. Address Data adres ingang (4bit) data uitgang (16 bit) data ingang data uitgang adres ingang (4bit) adres ingang (4 bit) Hoeveel bit is dit geheugen? clock
5Ben Bruidegom Blokschema Registerfile 4 to 16 deco-der Dest. Reg. # Register 15 Clock Data in 16 to 1 mux 1 st Register # 2 nd Register # Data out 1 st Reg. Figuur 13 De registerfile Data out 2 nd Reg. Register 0 16 to 1 mux & & Register Write &
6Ben Bruidegom ALU S1S1 S0S0 OperatorFunctie 00+ (plus)Y = A + B 01- (min)Y = A - B 10& (bitwise AND)Y = A & B 11(geen operator)Y = B A B Y Figuur 3: Schema ALU S0S0 S1S1 A A B Y S1S1 S0S0
7Ben Bruidegom Architectuur van de rekenmachine Instruction Memory ALU PC Instruction Address First Register Address Data Second Register Address Data Destination Reg. Address Data 4 bit address 16 bit data 3 bit control Registerfile (16) Control
8Ben Bruidegom Instructie types Rekenkundige en logische ADD SUB AND Immediate LOADI ADDI SUBI ANDI Datatransfer MOVE
9Ben Bruidegom Datapad van een Rekenkundige/logische instructie: bijv. ADD Instruction Memory Registers ALU PC Instruction Address 1 st register # 2 nd register # Dest. reg. # Data ADD $0, $1, $2 r0 = r1 + r2 Assembly Language
10Ben Bruidegom Datapad van een immediate instructie: bijv. ADDI Instruction Memory Registers ALU PC Instruction Address 1 st register # 2 nd register # Dest. reg. # Data ADDI $0, $1, 0x100 r0 = r1 + 0x100 Assembly Language
11Ben Bruidegom 16 bit calculator
12Ben Bruidegom SUBI $4, $3, 0100
13Ben Bruidegom Demo rekenmachine
14Ben Bruidegom Van rekenmachine processor Toevoegen: Data Memory Componenten om “loopjes” te kunnen executeren
15Ben Bruidegom Uitbreiding met Data Memory Instruction Memory Registers (16)Data Memory ALU PC Instruction Data in Address Register # Data Data out Bij een Harvard architectuur is het geheugen gescheiden in twee delen: instructiegeheugen en datageheugen
16Ben Bruidegom Uitbreiding instructieset Load Word (LW): Registers Data Memory Store Word (SW): Registers Data Memory
17Ben Bruidegom Instruction Memory RegistersData Memory ALU PC Instruction Data Address 1 st register # 2 nd register # Dest. reg. # Data SW r0, 100(r1) Memory[r ] = r0 100 Syntax SW rd, index(rs)Store Word to Memory SW $0, 0d100($1) r0 Address (100 + r1)
18Ben Bruidegom Instruction Memory RegistersData Memory ALU PC Instruction Data Address 1 st register # 2 nd register # Dest. reg. # Data LW r2, 100(r1) r2 = Memory[r ] 100 LW rd, index(rs)Load Word from Memory LW $2, 0d100($1) r2 Address (100 + r1)
19Ben Bruidegom Instruction Memory Registers Data Memory ALU PC Instruction Data out Address 1 st register # 2 nd register # Dest. reg. # Data in FFFB z Branch ADD & Offset LOAD Data out Uitbreiding hardware en instructieset voor ‘loopjes’: BRA offsetBranch Always to “label” BRA label PC PC + offset BZ rt, offsetBranch if rt = 0 BZ $6, endIf (r6 = 0) goto ‘end’ BEQ rs, rt, offsetBranch if rs = rt BEQ $6, $8, loopIf (r6 = r8) goto ‘loop’
20Ben Bruidegom De status van de Harvard machine na het uitvoeren van de instructie Load Immediate 0x01FD