1 Hoe werkt een computer nu precies? Ben Bruidegom & Wouter Koolen-Wijkstra AMSTEL Instituut Universiteit van Amsterdam Met steun van stichting Edict
2 Kern Huidige informatica-onderwijs mist Digitale techniek tussen poort en processor Hardware/software interface Urenuitbreiding: behandelen van deze onderwerpen wel mogelijk Wij bieden een geïntegreerd lespakket Boek met opgaven SIM-PL SIM-PL simulatie, visualisatie en ontwerp van digitale schakelingen assembler programmeren
3 Menu Overzicht cursusmateriaal Eisen commissie UUI2007 Drie voorbeelden met SIM-PL Poortschakeling: Multiplexer Multiplexer met ‘klok’ 4 bit opteller Rekenmachine Bijdrage commissie UUI2007
4 Overzicht cursusmateriaal
5 Materiaal: cursusboek Voor wie bestemd: Basisstof voor havo- en vwo-leerlingen Uitbreiding voor vwo-leerlingen vwo-leerlingen met belangstelling voor logica Voor projecten & werkstukken
6 Materiaal: cursusboek Les 1: Poorten en poortschakelingen Poorten: Inverter, AND, OR, XOR Schakelingen met poorten Veel voorkomende poortschakelingen Les 2: Hoe rekent een computer? Binaire & hexadecimale code Half adder, Full adder, Optelschakeling voor twee getallen van 4 bit Two’s complement code Optel/aftrekschakeling voor twee getallen van 4 bit ALU
7 Materiaal: cursusboek Les 3: Hoe werkt een programmeerbare rekenmachine? Registers Program Counter & Instructie Memory Getallen & adressen Assembler code Les 4: Hoe krijg ik een constant getal in een register? Instructies met constante getallen Operator en operanden Instuctieset Timing & klokpuls
8 Materiaal: cursusboek Les 5: Wat gebeurt er precies als een loopje wordt uitgevoerd? Branch instructies Les 6: Van rekenmachine naar (Harvard) processor? Von Neumann versus Harvard (CISC RISC) Data Memory Load- & Store -instructie Slim algoritme om te vermenigvuldigen
9 Materiaal: cursusboek Les 7: Het ontwerpen van schakelingen met Boole algebra Boole algebra Van waarheidstabel “Boole” uitdrukking De NAND-poort Probleem tabel “Boole” uitdrukking Vereenvoudigde “Boole” uitdrukking implementatie in poortschakeling Les 8: Schakelingen met geheugenwerking Sequentiële schakelingen (flipflops) Tellers, registers DRAM, SRAM De geheugenhiërarchie
10 Materiaal: implementatiegids Les 9: Het ontwerpen van “Eindige automaten” (Finite State Machines) Wat is een Finite State Machine? Voorbeelden van Finite State Machines Hoe ontwerp je een Finite State Machine? Les 10: Hoe bouw ik zelf een machine met instructieset? Hoe maak ik een basiscomponent? Hoe bouw een machine met instructieset. Voorbeeld: Mastermindspel
11 Eisen commissie UUI2007
12 Materiaal: eisen UUI2007 Welke leerdoelen? Inzicht in de opbouw van een computer. Inzicht in de werking van een computer Inzicht wat er gebeurt met de hardware als een programma wordt uitgevoerd. (Software-hardware-interface) Voor welke leerlingen? Les 1 t/m 4 voor havo Les 1 t/m 9 voor het vwo Les 10 voor praktische opdrachten, projecten en profielwerkstukken. Voorkennis? Kennen: geen specifieke voorkennis vereist. les 10: kennis van expressies in Java of C Kunnen: omgaan met de computer
13 Materiaal: eisen UUI2007 Hoeveel studielasturen ? Onze kennis hierover is gering. Graag willen wij hierover met de commissie van gedachten wisselen. Het materiaal is flexibel inzetbaar. Eigen lespakket per doelgroep Toetsing leerdoelen? Schriftelijk; oefenopgaven in boek. Met Editor zijn op eenvoudige wijze schema’s te genereren. Middels “hardcopy’s” van ontwerpopdrachten. Is het materiaal getest? Vorige versie met drie scholen Resultaten Editor niet robuust Stof te moeilijk voor havo.
14 Materiaal: eisen UUI2007 Gebruiks-, installatie- en beheerinstructies (met name bij software) Installatie van de Java Runtime Engine is vereist. Website: Kosten en verkrijgen van onderwijsmateriaal Vrij te downloaden via website: De software Componenten Powerpoint presentaties SIM-PL Tutorial Een boek(je) zal tegen redelijke vergoeding verkrijgbaar zijn.
15 Drie voorbeelden met SIM- PL
16 Voorbeeld 1: Multiplexer (H1, p. 7) Wisselschakelaar a,b: data S: kanaalkeuze
17 Voorbeeld 2: 4 bits opteller (H2) Illustratie binair en hexadecimaal rekenen Half-adder (2 bit) en Full-adder (3 bit)
18 Voorbeeld 3: Rekenmachine (H4, p.19)
19 Hoe werkt een rekenmachine? Instruction Memory Arithmetic Logic Unit (ALU) Program Counter (PC) Registers Rekenmachine bestaat uit 4 hoofdcomponenten:
20 ALU Instruction Memory Arithmetic Logic Unit (ALU) Program Counter (PC) Registers
21 ALU (16 bit) Y = B(geen operator)11 Y = A & B& (bitwise AND)01 Y = A - B- (min)10 Y = A + B+ (plus)00 FunctieOperatorS0S0 S1S1 A B Y Figuur 3: Schema ALU S0S0 S1S1 A A B Y S1S1 S0S0
22 Registers Instruction Memory Arithmetic Logic Unit (ALU) Program Counter (PC) Registers
23 Registers 16 data uitgangen (16 bit) Hoeveel bit is dit geheugen? registers ( register)adres Hoeveel bit is het adres? adre s
24 Instruction Memory Arithmetic Logic Unit (ALU) Program Counter (PC) Registers
25 Instruction Memory Address Data data uitgang (31 bit) adres ingang (16 bit) Aantal bits in dit geheugen: 2 16 x 31 = * 31 =
26 Program Counter Instruction Memory Arithmetic Logic Unit (ALU) Program Counter (PC) Registers
27 Instructies: Rekenkundige en logische instructies ADD SUB AND MOVE Immediate instructies (Instucties met één constant getal) ADDI SUBI ANDI LOAD
28 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
29 Assembly Language Instruction Memory Registers ALU PC Instruction Address rs reg[rs] rt reg[rs] rd Data Syntax : ADD rd, rs, rt Voorbeeld: ADD $7, $5, $6 Betekenis: register 7 = register 5 + register 6
30 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
31 Assembly Language: Instruction Memory RegistersALU PC Instruction Address rs reg[rs] rt reg[rs] rd Data 100 Hex Syntax : ADDI rd, rs, getal Voorbeeld : ADDI $7, $5, 0x100 Betekenis: register 7 = register Hex
32 “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)
33 Demonstratie 16 bit calculator
34 Bijdrage commissie UUI2007
35 Gewenste bijdrage commissie UUI2007 Onderwijsmateriaal Discussie commissie over “lessenserie” Is vier lessen algemene basiskennis over werking computer goed idee? Zijn de opgestuurde conceptteksten van les 1 en les 3 ook geschikt voor havo-leerlingen? Deze zomer werkt Ben verder aan het cursusboek. Van het AMSTEL instituut is Cees Mulder bereid gevonden mee te lezen. Het is nuttig een tweede meelezer te hebben die uit het voortgezet onderwijs komt. Wie van de commissieleden voelt zich geroepen? Software: op- en aanmerkingen over: de user-interface het gebruikersgemak ontbrekende functionaliteit.
36 Gewenste bijdrage commissie UUI2007 Testen op school van het nieuwe materiaal Betapartners heeft een budget van € 2000 beschikbaar voor testen op school. Voor betapartnerscholen (maar niet alleen bij die) kan Ben: een presentatie verzorgen en/of lessen komen bijwonen. Er wordt gezorgd voor het schriftelijke materiaal. Het testen dient wel voor november 2006 plaats te vinden. Wie van van de commissie wil zijn leerlingen hieraan blootstellen? Ik reken op meerdere leden!
37 Gewenste bijdrage commissie UUI2007 Financiering DU-project “Van Flipflop tot Pentium”. Doel is SIM-PL implemetatie bij een zevental cursussen aan de Hogeschool van Amsterdam, de Fontys Hogeschool voor Informatica en bij de UvA. Tijdsbesteding: Wouter en Ben ieder één dag per week Extra financiering mogelijk mits verklaring dat SIM-PL ook echt gebruikt gaat worden. Als de commissie UUI 2007 van mening is dat de SIM-PL software goed bruikbaar is voor het vo dan verzoek ik de commissie dat voor eind juni aan mij te mailen. Deze mail moet mede als aanbevelingsbrief dienen voor aanvullende financiering van de DU. Resultaat: verdere ontwikkeling van de software bouw componenten maken lesmateriaal
38 Vragen? Software Executer (Simulator) Editor Bibliotheek modellen Van poort tot processor Lesmateriaal Presentaties Practica