1 TDT4160 Datamaskiner Grunnkurs 2011 Gunnar Tufte
2 Dagens forelesing Kven er Eg? Kva gjer eg Kva kan eg TDT4160 2011 Fagstab Førelesningar Øvingar Pensum Kapittel 1 Structured Computer Organization Historie og anekdotar Datamaskinsystem Kapitel 2 Processors
3 Gunnar Fakta Datamaskingruppa (http://www.idi.ntnu.no/grupper/dm/) Multicore and CMP challenges (http://research.idi.ntnu.no/multicore/) Unconventional Machines (http://www.idi.ntnu.no/grupper/dm/start/bim) Cellular Computing Artificial Development Artificial Evolution http://idi.ntnu.no/~gunnart Er også med i Soundscape Studios (eigar og arbeidar) Elektronikk, data, kunst osv http://www.soundscape-studios.no Har dysleksi, prøv å ikkje bli for irtitert på skrvie fiel
4 Mål (Gunnar) Nye datamaskintypar Massiv parallellitet Mange enkle prosessorar Lokal kommunikasjon Nye måtar å konstruere og produsere Sjølv-organisering Sjølv-replisering Biologisk inspirasjon
5 TDT4160 2011 Fagstab Alexandru! Førelesar: Gunnar Tufte Rom 403 IT-vest Vit.ass: Alexandru Ciprian Iordan Rom 446 IT-vest Alle henvendelsar om øvingar/aoc til Alexandru Øvingar AOC Dei fleste spørsmål + mange flinke student assistentar
6 TDT4160 2011 Førelesningar Dag Tid Kvar Kva Tirsdag 10.15 11.00 S7 Førelesing Fredag 8.15 9.00 S3 Førelesing Øvingar info om AOC kjem seinare
7 TDT4160 2011 Øvingar Age of Computers Dataspill-inspirert øvingsopplegg Flerspiller, nettbasert, chat Løys oppgåver, lær historikk, lær fakta Inneholder assembly-simulator (Dark) Ikke 100 % match mot rekkefølgen i læreboka Demo øvingsinfo TBA (Alexandru ). http://aoc.idi.ntnu.no Obligatorisk
8 TDT4160 2011 Pensum (ikkje endeleg) Tanenbaum: Structured Computer Organization (5th edition) Kapittel 1,2 Kapittel 3 unntatt 3.1 (kjent) Kapittel 4 Kapittel 5 unntatt 5.7 Appendiks B Artikkel innan ChipMulti Processor Tilgjengeleg på it s learning i forbindelse med forelesing Øvingsopplegg (Age of Computers) Foiler fra forelesningene (ligg på It s L.)
9 Kva kan datamaskiner (eks) Leggje saman to tal (manipulere data) Kontrolere om eit tal er 0 (test) Flytte data frå ein plass til ein anna (kommunikasjon) Gjere sekvensar av desse operasjonane (FORT) Program Beregne alle beregnbare funksjonar Utføre sekvensar av oprasjonar
10 Kva er datamaskiner Samling av transistorar Set av instruksjonar Leggje saman to tal Kontrolere om eit tal er 0 Flytte data frå ein plass til ein anna Gjere desse operasjonane FORT Beregne alle beregnbare funksjonar Utføre sekvensar av oprasjonar
11 Kva er datamaskiner System Design Datamaskin arkitektur Beregne alle beregnbare funksjonar
12 Kva er datamaskiner System Design Datamaskin arkitektur Beregne alle beregnbare funksjonar
13 Historie: Gunnar sine favoritar edit
14 Kva er datamaskiner System Design Datamaskin arkitektur Beregne alle beregnbare funksjonar
15 Kva skal me bruke datamaskiner til (og korleis) Ønskjer å løyse komplekse oppgåver Konstruere samling med transistorar (maskinvare einingar) Konstruere system av einingar; DATAMASKINER Skrive program til maskinvare (programvare) Vanskeleg å konstruere transistor for transistor > 100 millionar transistorar (2,600,000,000 (Intel 2011)) Vanskeleg å programere med enkle instruksjonar Add, move, zero
16 Hirarki og Abstraksjon Hirarki av abstraksjonar: Structured Computer Organization Hierarki av abstraksjoner Språk L0: Det datamaskinen kan Definerer språk L1: Nærmere hvordan me tenker Alle instruksjoner i L1 kan uttrykkes med en eller flere instruksjoner i L0 Hvordan utføre L1-program Oversetting hele programmet oversettes til L0 Ein gang for alle Tolking en og en instruksjon oversettes hver gang programmet skal utføres (Interpretering)
17 Hirarki av abstraksjonar: Virtuelle maskiner
18 Hirarki av abstraksjonar: Nivå i moderne maskiner
19 Nivå 0: Digtalekretsar Fundamentale komponenter AND, OR, NOT, XOR porter D-vipper for lagring av ett bit Sammensette komponenter Aritmetiske kretser adderere, skiftere, Registre 8, 16, 32, 64 vipper
20 Nivå 1: Mikroarkitektur
21 Nivå 1: Mikroarkitektur Styreenhet (control unit) Styrer den utførende enhet Enten vha. mikroprogram eller via maskinvare (hardwired) Utførende enhet (datapath) Samling av registre (registerfil) ALU: Aritmetisk-logisk enhet
22 Nivå 2: Instruksjonssetarkitektur (ISA) Instruksjonssettark. (ISA) Første nivå tilgjengelig for (ekspert-)brukere Grense mellom maskinvare og programvare Opprinnelig det eneste nivået Språk: Maskinkode Logikk og aritmetikk Minne Kontroll Simens Semiconductor Group 8051 processor
23 Nivå 2: Instruksjonssetarkitektur (ISA) Internal Processor Bus Simens Semiconductor Group 8051 processor
24 Nivå 3: Operativsystem Operativsystem (NIVÅ 3) Hybridnivå Kan utelatast mesteparten av språket er rett frå nivå 2 Legger til støtte for fleire programmer samtidig Virtuelt minne Filsystem Ikkje pensum
25 Nivå 4 og 5 Assembly Symbolsk språk ADD R1, R2, R3 Symbolsk versjon av nivå 2/3. Ca. 1-1 oversettelse Ikke direkte forelest, men via Dark i AoC Høynivå-program.språk Symbolsk språk frukt = eple + banan Java, C, C++, Typisk kompilert (oversatt) til maskinkode Enkelt å uttrykke algoritmer naturlig Ikke pensum
26 Status så langt Patterson and Hennessy,
27 Datamaskinsystemer Tradisjonelle datamaskiner PCer, arbeidsstasjoner, superdatamaskiner osv. Skal sjå på: Intel Pentium 4 og Sun UltraSPARC III Embedded systems (innebygde systemer) Mobiltelefoner, kopimaskiner, kvitevarer, osv Skal sjå på Intel 8051
28 Skal sjå på P4, SUN, 8051 etter kapittel 2 Input/output
29 Kapittel 2: Prosessorar 2.1
30 Overordna organisering
31 Kva er ein CPU Hjernen i ei datamaskin Køyrer program: hentar instruksjonar finner ut kva dei gjer utførar Hovueddeler Styreining (control unit) Aritmetisk-logisk eining (ALU) Register Programteljar (PC) - Adresse til neste instr. Instruksjonsregister (IR) - Instruksjon som utføres nå Generelle heiltallsregistre, flyttallregister... Ingen hjerne ikkje noko moro
32 Prosessor (CPU) Buss
33 Kva er inni ein CPU PC: Program Counter IR: Instruction Register MAR: Memory Address Register MDR: Memory Data Register ALU: Arithmetic Logic Unit
34 Korleis vert eit program utført Styre einheit gjer som følgjer: Hent instruksjon (Fetch) Dekodar instruksjonen (Decode) Utfør instruksjonen (Execute) Utførande einheitar gjer som følgjer: Execute: brukar utførande einheitar til å utføre instruksjonen
35 Liten avsporing: Program Frå kapitel 1 Ein prosessor kan: Leggje saman to tal Kontrolere om eit tal er 0 Flytte data frå ein plass til ein anna Ein CPU består av styreeinheit utførandeeinheiter Program Ei rekkje av enkle instruksjonar Kvar instruksjon utfører ein bit av ei oppgåve Instruksjonar og data ligg i minne Programminne Programmet ligg i minne Dataminne
36 Liten avsporing: Program 2 Enkelt eksempel Leggje saman to tal X og Y som ligg i minne Program: Hent X Hent Y Summer X og Y Summer X og Y Hent Y Hent X 0002 0001 0000 Memory
37 Liten avsporing: Program 3 MEN program (instruksjonar) og data ligg i forskjeligge deler av minne Programminne og Dataminne Program: Hent X Hent Y Summer X og Y Summer X og Y Hent F002 Y Hent F001 X 0002 Data Y 0001 Data X 0000 F002 F001 F000 Memory Programminne Memory Dataminne I programminne ligg det peikar (pointer) til data Data (variablar) får si minne adresse av kompilatoren Peikar på ei adresse i minne Les/skriv data frå/til adressa
38 Liten avsporing: Program 4 MEN kva med minne som er byte adresserbart? Ikkje plass til (f.eks) 16 bit som må til for F0XX Program: Hent X Hent Y Summer X og Y Summer X og Y 0002 Data Y Hent F002 0001 Data X Hent F001 0000 F002 F001 F000 Memory Programminne Memory Dataminne
39 Korleis vert eit program utført 2 Nokre viktige utførande einheitar ALU (Arithmetic Logical Unit) ALU Register Register for eksternt minne Program Counter (PC) register Instruksjons Register (IR) General Purpose Registers Hukselapp: Hent instruksjon (Fetch) Dekodar instruksjonen (Decode) Utfør instruksjonen (Execute)
40 Dathpath
41 Instruksjonset og styreeinheit 1 To hovud typar styreeinheit Microprogram Instruksjonar er bygd opp av mikroinstruksjonar Maskin i styreeinheiten som utfører instruksjonane stegvis Fleksibel (kan endre på instruksjonssete) Mange typar instruksjonar og adresseringsmåtar Hardwired Kunn maskinvare Ei maskinvare statemaskin som styreeinheit (eller helst berre logic) Kan ikkje endrast (oppdaterast) Rask
42 Instruksjonset og styreeinheit 2 Microprogrammed Hardwired Add
43 1 maskin fleire implementasjonar Beregne alle beregnbare funksjonar
44 Auka yting CPU
45 Auka yting, MEN... kva er det som aukar, må noko minke? Fart Antal personar Antal personar/liter Antal personar flytta/ tid tid på å reise strekning x -> y køyre på månen Ytelse avhengig av måling (metrikk, benchmark)
46 Instruksjonsett type CISC/RISC CISC (Complex Instruction Set Computer) Avanserte instruksjonar (kan utføre mykje) Bruke fleire einheitar ADD MinneAdrX, MinneAdrY, MinneAdrSvar Nærare høgnivå språk Fleksibelt instruksjonsett (Viss mikroprogram kan oppdaterast/endrast) Variabel lengde på instruksjonar Variabel tid på å utføre instruksjonar Mikroprogram (ikkje alltid) Mange typar instruksjonar og adresseringsmåtar RISC (Reduced Instruction Set Computer) Enkle instruksjonar Register til register instruksjonar Bruke mange enkle instruksjonar på å utføre oppgåver Fast instruksjonsett (Hardwired) Fast lengde på instruksjonar Fast tid på å utføre instruksjonar Ei maskinvare statemaskin som styreeinheit (eller helst berre logic) Kunn ein type adresering LOAD/STORE Rask ADD R0, R1
47 CISC: ADD MinneAdrX, MinneAdrY, MinneAdrSvar RISC: ADD R0, R1 CISC RISC
48 CISC/RISC Prosessorar
49 Parallellitet Essensielt for å øke ytelse To typer: 1) Instruksjonsnivåparallellitet Flere instruksjoner utføres samtidig (1 prosessor) Samlebånd Eks: Unødvendig at ALU er ledig mens CPU leser instruksjon Superskalaritet: Duplisering av CPU-komponenter 2) Prosessornivåparallellitet En prosessor er bra, fleire er bedre
50 Samlebånd (Pipelining)
51 Samlebånd (Pipelining) 2 Fetch Decode Execute Dei tre prinsipiele stega i instruksjonutføring Lagar oss ein tretrinns styreeinheit 1: Fetch 2: Decode 3: Execute Kan startast uavhengig av kvarandre Raskare Enkle trinn Kortare tid
52 Samlebånd (Pipelining) 3
53 Samlebånd (Pipelining) 4 Gitt 5 steg, hvert steg tar en klokkesyklus Instruksjon 1: 5 klokkesykler Deretter: 1 instruksjon ferdig per klokkesyklus Uten samlebånd 1 instruksjon ferdig per klokkesyklus (RISC) Hvorfor er samlebånd raskere da? Klokkesyklene kan gjøres mye kortere! 1/5 av arbeidet skjer hver klokkesyklus Lengde på klokkesyklus bestemt av tregeste steg
54 Superskalaritet Henter to instruksjoner om gangen Dupliserer steg 2-5 Har dermed opptil 10 instruksjoner under utføring Figuren tilsvarer ca. den første Pentium prosessoren
55 Parallellitet Essensielt for å øke ytelse To typer: 1) Instruksjonsnivåparallellitet Flere instruksjoner utføres samtidig (1 prosessor) Samlebånd Eks: Unødvendig at ALU er ledig mens CPU leser instruksjon Superskalaritet: Duplisering av CPU-komponenter 2) Prosessornivåparallellitet En prosessor er bra, flere er bedre?
56 Superskalaritet 2 Dyrt å duplisere alt 4x (Areal (antal transistorar)) Utføring tar mest tid Figur tilsvarer Pentium II Dupliserar mest tidkrevande steg
57 Meir parallellitet 1
58 Meir parallellitet 2
59 Meir parallellitet 3
60 Lager 2.1 2.2 Hard disc Tape storage RAM Module Optical disc Register bank Core memory
61 Referansegruppe For dykk (mest) Odd M. Trondrud, trondrud@stud.ntnu.no Marthe F Bekkevold, marthebekkevold@msn.com Kan ein til melde seg så me får ei gruppe så er det fint.
62 Neste forelesing Fredag 2/9. (2.4 I/O + litt dingsar)