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-componenten: 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
Hardwarecomponenten Rekenmachine bestaat uit 4 hoofdcomponenten: Arithmetic Logic Unit (ALU) ProgramCounter (PC) Instruction Memory Registers
Hoe werkt een rekenmachine? Rekenmachine bestaat uit 4 hoofdcomponenten: Arithmetic Logic Unit (ALU) ProgramCounter (PC) Instruction Memory Registers De ALU voert de berekeningen uit
ALU Data-ingangen A en B en uitgang Y zijn 16 bits Ingangen S1 en S2 selecteren de operator A B Y S0 S1 S1 S0 Operator Functie + (plus) Y = A + B 1 - (min) Y = A - B & (bitwise AND) Y = A & B B-doorlaten Y = B
Architectuur van de rekenmachine 4 hoofdcomponenten: Arithmetic Logic Unit (ALU) ProgramCounter (PC) Instruction Memory Registers Registers bewaren (tussen)resultaten van berekeningen
Registers Hoeveel bits is het adres? Hoeveel bits is dit geheugen? 15 1111 14 1110 13 1101 12 1100 11 1011 10 1010 9 1001 8 1000 7 0111 6 0110 5 0101 4 0100 1010110110111000 3 0011 2 0010 1 0001 0000 16 data uitgangen (16 bits) ( register)adres Hoeveel bits is het adres? Hoeveel bits is dit geheugen?
Hoeveel bits is het adres? 4 bits Hoeveel bits is dit geheugen? 16 * 16 = 256 bits
In- en uitgangen registers First Register rs Adres Data Second Register rt Destination Reg. rd Addres Data Adres-ingang rs (4bits) Data-uitgang rs (16 bits) Adres-ingang rt (4bits) Data-uitgang rt (16 bits) Adres-ingang rd (4 bits) Data-ingang rd clock
Architectuur van de rekenmachine 4 hoofdcomponenten: Instruction Memory ProgramCounter (PC) Arithmetic Logic Unit (ALU) Registers In het instructiegeheugen worden de instructies opgeslagen
Instruction Memory Iedere instructie is 14 bits Address Data adres ingang (16 bits) data uitgang (14 bits) Hoeveel bits kan je opslaan in dit geheugen?
Hoeveel bits kan je opslaan in dit geheugen. Totaal: 216 x 14 = 65 Hoeveel bits kan je opslaan in dit geheugen? Totaal: 216 x 14 = 65.536 x 14 = 917.504 bits
Architectuur van de rekenmachine 4 hoofdcomponenten: ProgramCounter (PC) Arithmetic Logic Unit (ALU) Instruction Memory Registers Program Counter houdt bij welke instructie wordt uitgevoerd
Software: 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 instructies: Logische instructie Datatransfer ADD (optellen) SUB (aftrekken) Logische instructie AND (bitwise AND) Datatransfer COPY (Register Register)
Datapad van een rekenkundige/logische instructie: bijv. ADD Instruction Memory Registers rs Adres Data ALU PC rt Adres Data Instruction Address Adres rd Data rd 4 bits adres 16 bits data
Instructieformaat Voorbeeld: ADD rd, rs, rt Syntax: ADD $7, $5, $6 Instruction Memory Registers rs Adres Data ALU PC rt Adres Data Instruction Address Adres rd Data rd Voorbeeld: ADD rd, rs, rt Syntax: ADD $7, $5, $6 Betekenis: register 7 = register 5 + register 6
Instructieformaat Syntax: ADD rd, rs, rt Voorbeeld: ADD $7, $5, $6 Instruction Memory Registers rs Adres Data ALU PC rt Adres Data Instruction Address Adres rd Data rd Syntax: ADD rd, rs, rt Voorbeeld: ADD $7, $5, $6 Instructie ADD Adres rs Adres rt Adres rd 00 0101 0110 0111
Rekenmachine I
SIM-PL: 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
Practicum met de Rekenmachine I Voer opdrachten van paragraaf 3.4 uit
Vervolg 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
Rekenen met constante getallen Waarom zijn constante getallen zo belangrijk? Heel veel instructies bevatten een constant getal Waar worden constante getallen opgeslagen? In het instructiegeheugen Welke instructies werken met constante getallen? Immediate instructies
Welke immediate instructies zijn er: LOADI ADDI SUBI ANDI
Alle instructies: Rekenkundige en logische instructies ADD SUB AND Immediate instructies (Instructies met één constant getal) LOADI ADDI SUBI ANDI Datatransfer COPY
Datapad van een instructie met een constant getal Instruction Memory Registers ALU rs Adres Data PC rt Adres Data Instruction Address Adres rd Data rd 4 bits address 16 bits data
Assembly Language: Syntax: ADDI rd, rs, getal 100Hex Instruction Memory Registers ALU rs Adres Data PC rt Adres Data Instruction Address Adres rd Data rd Syntax: ADDI rd, rs, getal Voorbeeld: ADDI $7, $5, 0x100 Betekenis: register 7 = register 5 + 100Hex
“Control” van de rekenmachine Instruction Memory Registerfile (16) ALU operatie First Register rs Address Data Second Register rt Address Data Destination Reg. rd Address Data PC Instruction Address Multiplexer (Mux) 4 bits address 16 bits data 3 bits control ADDI $7, $5, 0x100 ADDI rs rt rd Constant getal 000 0101 x 0111 000 1000 0000 0000 Instructieformaat
Rekenmachine II
SIM-PL: 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 Opdrachten Practicum met de rekenmachinesimulator II
Voer opdrachten van paragraaf 3.6 en paragraaf 3.7 uit.