1/ 2IC20: eindhoven university of technology Computersystemen Week 1: inleiding / faculty of Computer Science 1/ eindhoven university of technology Huishoudelijke mededelingen Docent: Michael Franssen Vak ‘homepage’: http://www.win.tue.nl/michaelf/2IC20/ / practicum handleiding programmatuur voor practicum laptop! powerpoint slides van college oude tentamens met uitwerkingen (pré-IDaSS) faculty of Computer Science 2 1/ eindhoven university of technology Onderdelen van de cursus College: 2 uur/week dinsdag uur 3+4 Practicum: 3 uur/week vanaf week 2 (9 sessies) 2 groepen do. uur 5-7 & vr. uur 2-4 telkens in zaal MA144 (Matrixgebouw) 2 studenten per groepje, 1 laptop! Twee onderwerpen in practicum: µProcessor simuleren Programmeren in assembler Zelfstudie: gemiddeld 2 uur/week! / faculty of Computer Science 3 1/ eindhoven university of technology Doel van dit vak Bruikbare basiskennis computerarchitectuur Richten op raakvlak ‘hardware’ - ’software’: Processor bezien vanuit software ‘instructieset architectuur’ en ‘assembleertalen’ Processor bezien vanuit hardware computer- en processor ‘architectuur’, geheugens, in- en uitvoer Ondersteuning ‘hogere’ talen en besturingssystemen speciale instructies en geheugen-’modellen’, programma-onderbrekingen en parallelle processen / faculty of Computer Science 4 1/ eindhoven university of technology En dan nog dit... Examen in deelexamens: In tussenweek over weken 1-5, minimaal 5,0 halen! Eind wintertrimester over weken 6-10 (wederom minimaal 5,0 halen) plus herkansing over weken 1-5 punt is gemiddelde van niet afgerondde deelpunten Volledige herkansing medio lentetrimester Open boek tentamen (Boek, slides; géén laptop/aantekeningen) Oefenopgaven in boek van Tanenbaum / Aan het eind van ieder hoofdstuk: maak ze! faculty of Computer Science 5 1/ eindhoven university of technology De ‘computer’ is al heel oud... Mechanische rekenmachine (Pascal): 1642 Alleen + en – * en ÷ rond 1670 (von Leibniz) Mechanische computer (Babbage): 1834 / Ponskaart in- en uitvoer, programma op ponskaarten 1000 getallen geheugen faculty of Computer Science 6 1/ eindhoven university of technology De ‘Von Neumann-machine’: 1952 Binair rekenen met 40 bit getallen Programma en gegevens in één geheugen Geheugen Besturing / Dit alles met vacuumbuizen! Aritmetische en logische eenheid (ALU) Invoer Accumulator Uitvoer faculty of Computer Science 7 1/ eindhoven university of technology De PDP-8: een 12 bits minicomputer Circa 1965: losse transistoren, ‘slechts’ $16000 Belangrijkste vernieuwing: de ‘bus’ CPU Geheugen Consoleterminal Ponsband I/O Andere I/O De ‘Omnibus’ / faculty of Computer Science 8 1/ eindhoven university of technology De eerste microprocessor: Intel 4004 15 november 1971 2300 transistors 4 bits processor, 4096 byte programma, 640 x 4 bit gegevens 60000 instructies/sec Voor zakrekenmachine! / faculty of Computer Science 9 1/ eindhoven university of technology De toekomst: de ‘wet van Moore’ Voorspelling in 1965 door oprichter van Intel: “aantal transistoren per chip verdubbeld iedere 18 maanden” (60% groei per jaar) / Aantal bits op geheugenchips, ‘K’ = 1024, ‘M’ = 1048576 faculty of Computer Science 10 1/ eindhoven university of technology We vinden processoren overal... “Zingende wenskaart”: computer van 20 cent! “Embedded” in apparatuur: 1..5 euro Spelcomputer/PC: 50..500 euro Intel Pentium-Pro: 5,5 miljoen transistoren, 600 miljoen instructies/sec. / Weersvoorspelling: 5 miljoen euro monster faculty of Computer Science 11 1/ eindhoven university of technology Lagen in een computer Computers en op te lossen problemen complex Deel ze op in gestapelde lagen of schillen: / Iedere laag/schil gebruikt onderliggende lagen … voegt nieuwe functies toe … vormt een nieuwe (‘virtuele’) machine … kent eigen ‘machinetaal’ voor het beschrijven van het op te lossen probleem faculty of Computer Science 12 1/ Niveau n Niveau 2 eindhoven university of technology Virtuele machine Mn met machinetaal Tn Virtuele machine M2 met machinetaal T2 Vertaling in Tx: geschikt maken voor (directe) uitvoering op Mx Interpretatie op Mx: Tx programma op Mx ‘leest’ hoger niveau programma en voert het stap voor stap uit Niveau 1 Virtuele machine M1 met machinetaal T1 Programma’s in T1 worden eerst vertaald in T0, of geïnterpreteerd door een programma op M0 Niveau 0 Echte computer M0 met machinetaal T0 Programma’s in T0 worden direct door electronica uitgevoerd / faculty of Computer Science 13 1/ Niveau 5 Niveau 4 Niveau 3 Niveau 2 Niveau 1 / Niveau 0 eindhoven university of technology Probleemgerichte taal Niveaugrenzen Vertaling (compiler) verschuiven Assembleertaal steeds! Vertaling (assembler) Besturingssysteemmachine Gedeeltelijke interpretatie Instructiesetarchitectuur Interpretatie (‘microprogramma’) of directe uitvoering Microarchitectuur Hardware Digitale logica Hieronder: elektronische componenten! faculty of Computer Science 14 1/ eindhoven university of technology De lagen 0..2: Digitale logica: schakeltechniek! Microarchitectuur: ‘datapad’ binnen processor ‘registers’, ‘rekenorganen’ en ‘bussen’ per ‘klok’ uitgevoerde bewerkingen eventueel ‘besturing’ om complexe bewerkingen op te delen over meerdere klokken (‘microprogramma’) Instructiesetarchitectuur: zo gebruik je ‘m / beschikbare instructies (basisbewerkingen) geheugens en invoer/uitvoer faculty of Computer Science 15 1/ eindhoven university of technology De lagen 3..5: De besturingssysteemmachine: VIRTUEEL Voegt algemeen bruikbare complexe functies toe Is al vertaald uit assembleer- en/of hogere taal Assembleertaal: een-op-een met instructies Symbolische namen in plaats van getallen! Hogere talen: concepten i.p.v. instructies / Standaard talen: BASIC, C, Java, LISP, Fortran Applicatietalen: databases, symbolische wiskunde faculty of Computer Science 16