290 likes | 614 Views
Hoe werkt een rekenmachine?. Ben Bruidegom AMSTEL Instituut Universiteit van Amsterdam. Onderwerpen:. Uit welke hardware-componenten bestaat de machine? Welke instructies kan de machine uitvoeren? Practicum met de rekenmachinesimulator I
E N D
Hoe werkt een rekenmachine? Ben Bruidegom AMSTEL Instituut Universiteit van Amsterdam
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
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
Vier hoofdcomponenten: • Program Counter • Instruction Memory • Registetrs • Arithmetic Logic Unit
Hoe zijn die componenten met elkaar verbonden? Arithmetic Logic Unit (ALU) ProgramCounter (PC) Instruction Memory Registers
Arithmetic Logic Unit (ALU) De ALU voert berekeningen uit op twee 16 bits-getallen. Het resultaat van de berekening gaat naar de registers. Arithmetic Logic Unit (ALU) ProgramCounter (PC) Instruction Memory Registers 16 bit 16 bit 16 bit
S0 S1 A Y B Figuur 3: Schema ALU Welke berekeningen kan de ALU uitvoeren? S1 S0 A 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. A Y B
Registers In de registers worden de (tussen)resultaten van berekeningen opgeslagen. Arithmetic Logic Unit (ALU) ProgramCounter (PC) Instruction Memory Registers
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 registers adres 15 14 13 12 11 10 9 8 7 6 5 4 3 2 1 0 16 data uitgangen (16 bit) 1010110110111000 ( register)adres Hoeveel bits zijn er nodig om één van deze 16 registers te kiezen? Hoeveel bits is dit geheugen totaal?
Hoeveel bits is dit geheugen totaal? Hoeveel bits zijn er nodig om één van deze 16 registers te kiezen? Antwoord: 4 bits. Voorbeeld: met het getal 0110 kies je register 6. Antwoord: 256 bits Ieder register bevat 16 bits. Er zijn 16 registers dus totaal 16 * 16 is 256 bits
Hoe zijn de registers aangesloten? Op de adresingang van rs wordt het adres gezet van Gelijktijdig worden op de adresingangen rs en rt getallen gezet. Hierdoor wordrt First Register rs Address Data Second Register rt Address Data Destination Reg. rd Address Data adresingang (4bit) data uitgang (16 bits) data uitgang (16 bits) adresingang (4bit) adres ingang (4 bit) data ingang (16 bits) clock
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 uitgang adres ingang (4bit) adres ingang (4 bit) data ingang clock
Instruction Memory (IM) In het instructiegeheugen staat het (computer)programma. Iedere instructie is opgeslagen als een keten van enen en nullen. Instruction Memory Arithmetic Logic Unit (ALU) ProgramCounter (PC) Registers
Instruction Memory Instruction Memory Address Data datauitgang (35 bit) adresingang (16 bit) Hoeveel bits is dit geheugen?
Hoeveel bits is dit geheugen? De adresingang is 16 bits. Er zijn dus 216 geheugenplaatsen. Iedere geheugenplaats bevat 35 bits. Het totaal aantal bits is: 216 X 35 = 65.536 * 35 = 2.293.760 bits.
Program Counter (PC) 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. ProgramCounter (PC) Arithmetic Logic Unit (ALU) Instruction Memory Registers
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
Instructies • Rekenkundige en logische instructies: • ADD (optellen) • SUB (aftrekken) • AND (bitwise AND) • Datatransfer • COPY (Register Register)
4 bit address 16 bit data Datapad van een rekenkundige/logische instructie: bijv. ADD Instruction Memory Registers ALU rs reg[rs] PC Instruction rt reg[rs] Address rd Data
Assembly Language Instruction Memory Registers ALU rs reg[rs] PC Instruction rt reg[rs] Address rd Data Voorbeeld:ADD rd, rs, rt Syntax:ADD $7, $5, $6 Betekenis: register 7 = register 5 + register 6
Meer instructies: • Rekenkundige en logische instructies • ADD • SUB • AND • Immediate instructies (Instucties met één constant getal) • LOAD • ADDI • SUBI • ANDI • Datatransfer • MOVE
4 bit address 16 bit data Datapad van een instructie met een constant getal Constant getal Instruction Memory Registers ALU rs reg[rs] PC Instruction rt reg[rs] Address rd Data
Assembly Language: 100Hex Instruction Memory Registers ALU rs reg[rs] PC Instruction rt reg[rt] Address rd Data Voorbeeld:ADDI rd, rs, getal Syntax:ADDI $7, $5, 0x100 Betekenis: register 7 = register 5 + 100Hex
First Register rs Address Data Second Register rt Address Data Destination Reg. rd Address Data “Control” van de rekenmachine Control Instruction Memory Registerfile (16) ALU operatie PC Instruction Address Multiplexer (Mux) 4 bit address 16 bit data 3 bit control
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