Innehåll Datorsystemteknik DAV A14 Föreläsning 1 Kursinformation Introduktion till datorsystem Programmeringsmodellen Större delen av materialet framtaget av :Jan Eric Larsson, Mats Brorsson och Mirec Novak IT-inst LTH Motivering till datortekniken. Varför studerar vi detta? Vilka är kursens mål? Kursinformation. Vem, var och när? Vad kommer att krävas av dig som student? Analys av något datorsystem. Programmeringsmodellen - från applikation till hårdvara. Innehåll (forts) Relationen mellan programvara och hårdvara. Vad representerar data i datorns minne? Exempeldatorn MIPS Varför studerar vi Datorteknik? Motivering med hjälp av ett exempel Utvecklats från analog elektronik till datorsystem Funktionsmässigt en framgång Gamla tekniken vore nästan omöjlig Vem behöver en sån? - Oregelbunden hjärtrytm - För långsamma hjärtslag - För lite blod till olika kroppsdelar - Svimning, död Normalt hjärta genererar elektriska pulser får hjärtmuskeln att dra ihop sig! Vissa fel hjärtat klarar inte att ge dessa pulser regelbundet. Personen kan svimma, eller dö! 1
genererar dessa pulser när hjärtat inte kan! Första pacemakern byggdes i USA 1952 (Zoll( Zoll) stationär! 1958 byggde Rune Elmqvist en som kunde opereras in i kroppen. Krav på : olika pulstakt vid olika ansträngning detektera hjärtflimmer mäta EKG, syrehalt i blodet, blodtryck etc. beräkna om och när en puls ska ges kommunicera med omvärlden EN MODERN PACEMAKER BYGGD PÅ ANALOG TEKNIK SKULLE BLI STOR SOM EN HINK! LÖSNING: byggs med ett datorsystem, som Arbetar med samplade data Kan utföra flera uppgifter på en gång Flexibel omprogrammerbar Kan anpassas och avläsas utan att tas ur kroppen Många funktioner i mjukvara ett av de system som utvecklats Tidiga system analog elektronik Idag: allt som går byggs med datorer pga enkelheten att förändra funktionen genom att ändra program Vad är en dator (filosofiskt)? Ett exempel på system med dator En dator är en generell logisk maskin vars funktion bestäms av dess program. I kursen Datorsystemteknik ska vi studera den generella maskinen, se hur den är uppbyggd och undersöka hur ett program kan påverka den. Spelkonsoll en vanlig julklapp Men hur fungerar den, och vad i den gör att den fungerar? 2
Exempel: Data för Sony PS2 Spelkonsoll blockschema (nivå 1) CPU: 128bit @294Mhz Cache:Instruktion 16 kb, Data 16+8 kb Minne 32 MB 6.2 GFLOPS MPEG2 avkodare Grafikenhet Ljudenhet CD-ROM 24x DVD Handkontroll med återkoppling Hur kan den här apparaten se ut inuti? Vi ritar ett blockschema! Spelkonsoll (nivå 2) Spelkonsoll Programvara För att vi ska kunna programmera datorn i t.ex. spelkonsollen, måste vi veta något om hur hårdvaran är organiserad. Maskinvara Vilka är kursens mål? Hur är kursen upplagd? Att du ska förstå hur datorns olika delar fungerar och samverkar. Att du ska förstå hur olika typer av processorer är uppbyggda och fungerar. Att du självständigt ska kunna kunna lösa programmeringsuppgifter i assembler samt förstå relationen mellan högnivå- och lågnivåspråk. Att du ska kunna förstå gränsytan mellan mjukvara och hårdvara i den mån som krävs för att effektivt utnyttja hårdvaran i mjukvarulösningar. Att du ska få god färdighet i assemblerprogrammering, eftersom detta är ett bra sätt att lära sig förstå datorn Föreläsningar 10 stycken (1 varje vecka,måndagar ) Övningar 8st med start andra veckan( Tisdagar) Labbar 5 st med start andra veckan. Inlämningsuppgifter i 4st. Kursens hemsida är: www.cs.kau.se/cs/education/courses/dava14 3
Kursbok Mats Brorsson Datorsystem program och maskinvara Kontaktinformation Hans Hedbom (fö, kursansvarig): 5A433, Hans.Hedbom@kau.se Nils Dåverhög (Övningar och Labbar): 5A432, Nils.Daverhog@kau.se Claire Ohlsson (Kurssekreterare) Kontakta oss om du har frågor, eller behöver hjälp! Vad kommer att krävas av dig? Godkända laborationer och inlämningsuppgifter Godkänd tentamen Men framförallt att du vill lära dig själv. Jag och Nils är resurser, som kan hjälpa er. Läs själv i boken och experimentera med labsystemet på din dator! Fråga om något är oklart! Det är ju DU som ska lära DIG. Vilka olika typer av datorsystem finns det? Väldig variation på datorsystem! Superdatorer (tex CRAY) Persondatorer (PC) avsedda för en användare Arbetsstationer Servers av olika slag Styr- och reglerdatorer av olika slag Störst marknad: Inbyggda datorer Inbyggda datorer runtomkring oss Kontorsdator 4
Inbyggd dator Kan detta vara en dator? Hur kan vi förändra datorns program? Vi kan programmera på många olika abstraktionsnivåer: Applikationer (tex Matlab, Webbrowsers etc.) Högnivåspråk (tex Java, C, C++, Pascal) Assemblerspråk (specifikt för varje processorarkitektur) Maskinspråk (binärkod för en specifik processor) Hårdvara (organisation av processor, instruktioner, minne och I/O-enheter) Programmeringsmodellen Applikationer Högnivåspråk Assemblerspråk Maskinspråk Ju lägre abstraktion, desto mer måste man veta om hårdvaran! Hårdvaruorganisation Hårdvarans viktigaste komponenter Minne Minne -RAM -ROM -PROM Adressbuss Processor Styrenhet ALU Register Databuss I/O- enheter RAM: Läs och skrivbart minne - (griffeltavla) ROM: Läsbart minne - (bok) PROM: Programmerbart minne för läsning - (bok med blanka sidor) EPROM: PROM som går att radera - (tvättbar bok) EEPROM: PROM som går enkelt att radera (whiteboard) 5
Processor Styrenheten: Hämtar och utför instruktioner från minnet ALU: Enhet som beräknar (aritmetiska och logiska operationer) Register: Plats för data. Processorn kan operera på data i registren. Vad kan ett bitmönster i minnet representera? Minnet är en följd av numrerade celler 0:01011001 1:11110000 2:01011000 3:11011100 osv binärt 0:59 1:F0 2:58 3:DC osv hexadecimalt På varje adress finns ett 8-bit 8 bitmönster (byte) Binärt till hexadecimalt Ofta skriver man binära bitmönster på hexadecimal form (för att öka läsbarheten för oss) Binärt Hex 0000 0 0001 1 0010 2 0011 3 0100 4 0101 5 0110 6 0111 7 Binärt Hex 1000 8 1001 9 1010 A 1011 B 1100 C 1101 D 1110 E 1111 F Olika beteckningar på bitgrupper Byte = 8 bitar Ord = 32 bitar (på MIPS, beror på datorarkitektur) Nibble = 4 bitar Halfword = 16 bitar Ett ord (32 bit) tar upp 4 konsekutiva adresser i minnet Vad kan ordet (02114020) 16 betyda? Samma bitmönster kan betyda olika saker beroende på sammanhang 1) Heltal. (02114020) 16 är decimaltalet 16777216 2) Flyttal. (02114020) 16 är talet 1.2695389*10-119 3) Instruktion. För MIPS-arkitekturen innebär denna att addera innehållen i register 16 och 17 och lägga i register 8. 4) Tecken. (02114020) 16 är ^C^Q@<space> Processorarkitektur Arkitekturen hos en processor är Instruktionsuppsättning Definition av data som instruktionerna manipulerar En arkitektur kan ha flera implementationer Intel Pentium Intel Pentium Pro Intel Pentium II, III,... 6
$0 $1 $2 $3... $30 $31 MIPS-arkitekturen Generella register Programräknare Minne Modern arkitektur av RISC-typ Mer än 100 miljoner sålda processorer MIPS har 32 register om 32 bitar Program Counter, PC P C Instruktionsuppsättning hos MIPS Alla instruktioner är 32 bitar långa (1 ord) Olika klasser av instruktioner: - Aritmetiska och logiska - Minnesinstruktioner - Programflödesinstruktioner (villkorliga och ovillkorliga hopp) Enkla MIPS-instruktioner Aritmetiska instruktioner add $8, $9, $10 # Lägg ihop innehållet i reg 9 och 10 till 8 addi $8, $9, 123 #Addera konstant till reg 9, lägg i 8 sub $8, $9, $10 Minnesinstruktioner lw $8, 0($10) #Läs ordet på adress som finns i reg 10 till reg8 sw $8, 24($10) #Spara $8 på adress i reg 10, offset 24 Lägg adress i register lui $10, 0x0800 #lägg först höga delen av adressen i reg10 ori $10, $10, 0x2000 #sedan den låga Sammanfattning föreläsning 1 Motivering: varför måste man veta nåt om datorsystem? Datorns byggstenar Kopplingen mellan program- och mjukvara Olika typer av datorsystem Programmeringsmodellen Vad representerar data? Processorarkitektur Lite inledning om MIPS - det kommer (mycket) mera! 7