Les 1: Inleiding Computer Science is a science of abstraction -creating the right model for a problem and devising the appropriate mechanizable techniques to solve it. - A. Aho and J. Ullman ca1-1 Overzicht • Een beetje geschiedenis • Het von Neumann model – Logisch zicht – Fysiek zicht • Abstractieniveaus in computersystemen • Architectuur vs. organisatie • Hardwarecomponenten ca1-2 Een beetje geschiedenis • Computer = rekenaar • Materiële ondersteuning van rekenen is zeer oud • Essentieel bij deze ondersteuning: algoritme een recept om via een opeenvolging van kleine transformaties een resultaat te berekenen ca1-3 Algoritme Transformaties controle Toestand ca1-4 Uitvoering van een algoritme controle transformaties toestand 1 1181 +++ + 237 14 1 8 ca1-5 Automatiseringsgeschiedenis • Automatisering van de toestand: extern toestandsgeheugen – Vingers, keitjes, knoopjes – Telraam (13e eeuw; China) – geschreven symbolen Wolfsbeenderen 5000 v.C. Steentijdperk ca1-6 Automatiseringsgeschiedenis • Automatisering van de transformaties – Zeventiende eeuw – Rekenlat (1622) – Mechanische calculatoren 1622 William Schickard 1642 sommen Blaise Pascal 1673 producten Gotfried Leibniz ca1-7 Automatiseringsgeschiedenis • Automatisering van de controle – Jacquardweefgetouw met ponskaarten (begin 19e eeuw) – Babbage: eerste samenvoeging van toestand, transformatie en controle in één model. Speeltrommel beiaard 1659, Belfort Gent ca1-8 The difference engine 18226 decimalen Eenvoudige wiskundige bewerkingen Charles Babbage (1791-1871) http://www.youtube.com/watch?v=0anIyVGeWOI http://www.youtube.com/watch?v=BlbQsKpq3Ak ca1-9 The analytical engine Charles Babbage (1791-1871) Ada Lovelace (1815-1852) 1837ca1-10 Automatiseringsgeschiedenis • Echte doorbraak in de automatisering van de controle – Ontwikkelingen in de telefonie (begin 20e eeuw) – Konrad Zuse: eerste elektromechanisme computer: Z1 (1938-1943, 1989) – Mauchly & Eckert: eerste computer: ENIAC: Electronic Numerical Integrator And Computer (1946) – John von Neumann: eerste stored program computer: EDVAC (1949) ca1-11 Z-1 (1938-1943,1989-) Mechanisch Konrad Zuse (1910-1995) 1 vermenigvuldiging = 5s ca1-12 Z-3 (1941) met relais Eerste volwaardige elektromechanische computer Plankalkül (1945) Rekende binair Vermenigvuldiging: 3s Deutsches Museum in München ca1-13 Harvard Mark I (1944) met relais IBM automatic sequence controlled calculator (ASCC) Howard Aiken (19001973) Optelling = 6s "Only six electronic digital computers would be required to satisfy the computing needs of the entire United States." — Howard Aiken ca1-14 Eerste bug: 9 september 1947 – Mark II ca1-15 “I think there is a world market for maybe five computers” 1943 Thomas Watson (1874 - 1956) IBM Chairman ca1-16 ENIAC: Electronic Numerical Integrator And Computer (14 feb 1946) Mauchly Eckert 23 m2, 30 ton, 17468 buizen, 200 kW 14 vermenigvuldigingen per s ca1-17 "Computers in the future may weigh no more than 1.5 tons.“ — Popular Mechanics, 1949 ca1-18 Programmeren van de ENIAC ca1-19 Logisch zicht ENIAC Transformaties rekeneenheid controle Toestand programma gegevens ca1-20 Electronic Discrete Variable Automatic Computer EDVAC 1949 John von Neumann (1903-1957) 300 vermenigvuldigingen per s ca1-21 Logisch zicht EDVAC Transformaties rekeneenheid controle Toestand programma gegevens Het ontstaan van software ca1-22 Overzicht • Een beetje geschiedenis • Het von Neumann model – Logisch zicht – Fysiek zicht • Abstractieniveaus in computersystemen • Architectuur vs. Organisatie • Hardwarecomponenten ca1-23 Von Neumann-machine Logisch zicht O1 O2 R, S Controle data Geheugen instructies klok ca1-24 Von Neumann-machine Fysiek zicht BUS adres data controle CVE Controle klok cache registers Geheugen Invoer/Uitvoer ca1-25 Overzicht • Een beetje geschiedenis • Het von Neumann model – Logisch zicht – Fysiek zicht • Abstractieniveaus in computersystemen • Architectuur vs. organisatie • Hardwarecomponenten ca1-26 Abstractieniveaus • Een computersysteem bestaat uit een hiërarchie van lagen • Elke laag heeft een goed gedefinieerde interface naar de bovenliggende en onderliggende lagen • Essentieel bij de ondersteuning van opwaartste compatibiliteit ca1-27 Lagen Toepassingsprogramma’s Hoog-niveauprogrammeertalen Machinetaal Datapad + Controlepad RTL-niveau Poortnetwerken Transistors en verbindingen ca1-28 Lagen Toepassingsprogramma’s Door de programmeur Door codegeneratoren Hoog-niveauprogrammeertalen Machinetaal Datapad + Controlepad RTL-niveau Poortnetwerken Transistors en verbindingen ca1-29 Lagen Toepassingsprogramma’s Hoog-niveauprogrammeertalen Door de compiler (= vertaler) Machinetaal Datapad + Controlepad RTL-niveau Poortnetwerken Transistors en verbindingen ca1-30 Lagen Toepassingsprogramma’s Hoog-niveauprogrammeertalen Machinetaal Controle-eenheid Datapad + Controlepad RTL-niveau Poortnetwerken Transistors en verbindingen ca1-31 Lagen Toepassingsprogramma’s Hoog-niveauprogrammeertalen Machinetaal Datapad + Controlepad Micro-architectuur RTL-niveau Poortnetwerken Transistors en verbindingen ca1-32 Lagen Toepassingsprogramma’s Hoog-niveauprogrammeertalen Machinetaal Datapad + Controlepad RTL-niveau VHDL-compiler (vhsic hardware description language) Poortnetwerken Transistors en verbindingen ca1-33 Lagen Toepassingsprogramma’s Hoog-niveauprogrammeertalen Machinetaal Datapad + Controlepad RTL-niveau Poortnetwerken Chip-ontwerper Routing-software Transistors en verbindingen ca1-34 Overzicht • Een beetje geschiedenis • Het von Neumann model – Logisch zicht – Fysiek zicht • Abstractieniveaus in computersystemen • Architectuur vs. organisatie • Hardwarecomponenten ca1-35 Lagen Toepassingsprogramma’s Hoog-niveauprogrammeertalen Architectuur Machinetaal Datapad + Controlepad RTL-niveau Poortnetwerken Organisatie Transistors en verbindingen ca1-36 Architectuur vs. Organisatie “zichtbaar” Architectuur Architectuur 1 Architectuur 2 Hardware/software interface Organisatie 1 Organisatie Organisatie2 Organisatie 3 “onzichtbaar” ca1-37 Compatibiliteit Toepassingsprogramma’s Hoog-niveauprogrammeertalen Binaire compatibiliteit Machinetaal Hardware 1 Hardware 2 Hardware 3 ca1-38 Compatibiliteit Toepassingsprogramma’s Broncodecompatibiliteit Hoog-niveauprogrammeertalen Machinetaal1 Machinetaal2 Machinetaal3 Hardware 1 Hardware 2 Hardware 3 ca1-39 Platform Toepassingsprogramma’s Besturingssysteem Machinetaal Hardware ca1-40 Porteren Toepassingsprogramma’s Hoog-niveauprogrammeertalen porteren OS 1 OS 2 Machinetaal 1 Hardware 1 Machinetaal 2 Hardware 2 Platform 1 Platform 2 ca1-41 Emulatie Toepassingsprogramma’s Hoog-niveauprogrammeertalen Machinetaal 1 Emulatie Machinetaal 2 Hardware ca1-42 Java Virtuele Machine Toepassingsprogramma Java (java-files) Java bytecode (class-files) Java virtuele machine (JVM) Interpreter (=vertolker) Machinetaal Hardware ca1-43 Java Virtuele Machine Toepassingsprogramma Java (java-files) Bytecodecompatibel Java bytecode (class-files) JVM 1 JVM 2 JVM 3 Machinetaal1 Machinetaal2 Machinetaal3 Hardware 1 Hardware 2 Hardware 3 ca1-44 Voorbeelden interpreters • • • • • • • • • Java virtuele machine .NET Visual Basic interpreter Web-browser Postscript interpreter Pdf-interpreter Perl interpreter Lisp, Prolog … ca1-45 Overzicht • Een beetje geschiedenis • Het von Neumann model – Logisch zicht – Fysiek zicht • Abstractieniveaus in computersystemen • Architectuur vs. organisatie • Hardwarecomponenten ca1-46 Moederbord ca1-47 Processor ca1-48 Socket ca1-49 Koeler ca1-50 Warmtegeleiding ca1-51 Chipset Integreert verschillende functies: klokgenerator, busregelaar, timer, onderbrekingsregelaar, DMA-regelaar, klok, toetsenbordregelaar ca1-52 Systeemarchitectuur ca1-53 ca1-54 Geheugenmodules ca1-55 Geheugemodules op het moederbord ca1-56 PCI-kaart (Peripheral Component Interconnect) ca1-57 PCI-slots ca1-58 PCI express ca1-59 PCI-Express slots ca1-60 Harde schijf ca1-61 EIDE (Enhanced Integrated Device Electronics) ca1-62 Harde schijf met EIDE connector ca1-63 Harde schijf met SATA connector ca1-64 Videokaart NVIDIA GeForce 9800 GTX ca1-65 Processorslot Moederbord Chip-set PCI-slots Geheugen slots IDE SATA ca1-66 Pauze ca1-67