1Ben Bruidegom Hoe werkt een rekenmachine? Ben Bruidegom AMSTEL Instituut Universiteit van Amsterdam
2Ben Bruidegom Onderwerpen: Uit welke hardware-componenten bestaat de machine? Welke instructies kan de machine uitvoeren? Practicum met de rekenmachinesimulator I Uitbreiding van de machine voor het verwerken van constante getallen Practicum met de rekenmachinesimulator II
3Ben Bruidegom Hardware: Uit welke hardware-componenten bestaat de machine? Welke instructies kan de machine uitvoeren? Practicum met de rekenmachinesimulator I Uitbreiding van de machine voor het verwerken van constante getallen Practicum met de rekenmachinesimulator II
4Ben Bruidegom Vier hoofdcomponenten: Program Counter Instruction Memory Registetrs Arithmetic Logic Unit
5Ben Bruidegom Hoe zijn die componenten met elkaar verbonden? Instruction Memory Arithmetic Logic Unit (ALU) Program Counter (PC) Registers
6Ben Bruidegom Arithmetic Logic Unit (ALU) Instruction Memory Arithmetic Logic Unit (ALU) Program Counter (PC) Registers De ALU voert berekeningen uit op twee 16 bits-getallen. Het resultaat van de berekening gaat naar de registers. 16 bit
7Ben Bruidegom S1S0BewerkingFunctie 00+ (optellen)Y = A + B 01- (aftrekken)Y = A - B 10& (bitwise AND)Y = A & B 11ingang B doorlatenY = B A B Y Figuur 3: Schema ALU S0S0 S1S1 A A B Y S1 S0 Welke berekeningen kan de ALU uitvoeren? De ALU heeft twee ingangen S1 en S0. Hier mee kunnen vier verschillende bewerkingen op de getallen A en B worden uitgevoerd. Voorbeeld: Als S1 = ‘0’ en S0 = ‘1’ wordt er afgetrokken.
8Ben Bruidegom Registers Instruction Memory Arithmetic Logic Unit (ALU) Program Counter (PC) Registers In de registers worden de (tussen)resultaten van berekeningen opgeslagen.
9Ben Bruidegom Er zijn 16 registers, genummerd van 0 t/m 15. Dit registernummer wordt het registeradres genoemd. Ieder register bevat 16 bitjes die ‘0’ of ‘1’ zijn. 16 data uitgangen (16 bit) Hoeveel bits is dit geheugen totaal? registers ( register)adres Hoeveel bits zijn er nodig om één van deze 16 registers te kiezen? adre s
10Ben Bruidegom Antwoord: 4 bits. Voorbeeld: met het getal 0110 kies je register 6. Hoeveel bits is dit geheugen totaal? Hoeveel bits zijn er nodig om één van deze 16 registers te kiezen? Antwoord: 256 bits Ieder register bevat 16 bits. Er zijn 16 registers dus totaal 16 * 16 is 256 bits
11Ben Bruidegom Hoe zijn de registers aangesloten? First Register rs Address Data Second Register rt Address Data Destination Reg. rd Address Data adresingang (4bit) data uitgang (16 bits) data ingang (16 bits) data uitgang (16 bits) adresingang (4bit) adres ingang (4 bit) clock Op de adresingang van rs wordt het adres gezet van Gelijktijdig worden op de adresingangen rs en rt getallen gezet. Hierdoor wordrt
12Ben Bruidegom Registers First Register rs rs reg[rs] Second Register rt Address Data rt reg[rt] Destination Reg. rd Address rd Data adres ingang (4bit) data uitgang (16 bit) data ingang data uitgang adres ingang (4bit) adres ingang (4 bit) clock
13Ben Bruidegom Instruction Memory (IM) Instruction Memory Arithmetic Logic Unit (ALU) Program Counter (PC) Registers In het instructiegeheugen staat het (computer)programma. Iedere instructie is opgeslagen als een keten van enen en nullen.
14Ben Bruidegom Instruction Memory Address Data datauitgang (35 bit) adresingang (16 bit) Hoeveel bits is dit geheugen?
15Ben Bruidegom Hoeveel bits is dit geheugen? De adresingang is 16 bits. Er zijn dus 2 16 geheugenplaatsen. Iedere geheugenplaats bevat 35 bits. Het totaal aantal bits is: 2 16 X 35 = * 35 = bits.
16Ben Bruidegom Program Counter (PC) Instruction Memory Arithmetic Logic Unit (ALU) Program Counter (PC) Registers De PC houdt het nummer van de instructie bij die wordt uitgevoerd en geeft dat door aan het instructiegeheugen. Bij de eerste instructie heeft de PC de waarde 0.
17Ben Bruidegom Instructies: Uit welke hardware-componenten bestaat de machine? Welke instructies kan de machine uitvoeren? Practicum met de rekenmachinesimulator I Uitbreiding van de machine voor het verwerken van constante getallen Practicum met de rekenmachinesimulator II
18Ben Bruidegom Instructies Rekenkundige en logische instructies: ADD (optellen) SUB (aftrekken) AND (bitwise AND) Datatransfer COPY (Register Register)
19Ben Bruidegom Datapad van een rekenkundige/logische instructie: bijv. ADD Instruction Memory Registers ALU PC Instruction Address rs reg[rs] rt reg[rs] rd Data 4 bit address 16 bit data
20Ben Bruidegom Assembly Language Instruction Memory Registers ALU PC Instruction Address rs reg[rs] rt reg[rs] rd Data Voorbeeld: ADD rd, rs, rt Syntax: ADD $7, $5, $6 Betekenis: register 7 = register 5 + register 6
21Ben Bruidegom Meer instructies: Rekenkundige en logische instructies ADD SUB AND Immediate instructies (Instucties met één constant getal) LOAD ADDI SUBI ANDI Datatransfer MOVE
22Ben Bruidegom Datapad van een instructie met een constant getal Instruction Memory RegistersALU PC Instruction Address rs reg[rs] rt reg[rs] rd Data Constant getal 4 bit address 16 bit data
23Ben Bruidegom Assembly Language: Instruction Memory RegistersALU PC Instruction Address rs reg[rs] rt reg[rt] rd Data 100 Hex Voorbeeld: ADDI rd, rs, getal Syntax: ADDI $7, $5, 0x100 Betekenis: register 7 = register Hex
24Ben Bruidegom Voer opdracht 1 en opdracht 2 uit op bladz. 6 en 7
25Ben 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 bit address 16 bit data 3 bit control Registerfile (16) Control Multiplexer (Mux)
26Ben Bruidegom 16 bit calculator
27Ben Bruidegom ADDI $4, $3, 0200 Hex
28Ben Bruidegom Demo rekenmachine
29Ben Bruidegom Hoe werkt een computer precies? Les1: Hoe werkt een rekenmachine? Les 2: Rekenmachine met uitbreiding voor “loopjes” Practicum: Voer opdracht 3 t/m 4c uit op bladz. 5.8 t/m 5.9