1 / 82

IS1200 Datorteknik

IS1200 Datorteknik. Föreläsning CE F1 Computer Engineering Introduktion. Välkommen till IS1200 Datorteknik. ”Hur datorer fungerar” Kursens hemsida finns utpekad från: http://www.ict.kth.se/courses/IS1200 emailadress till lärare: is1200@ict.kth.se Kursansvarig: Johan Wennlund.

robert-page
Download Presentation

IS1200 Datorteknik

An Image/Link below is provided (as is) to download presentation Download Policy: Content on the Website is provided to you AS IS for your information and personal use and may not be sold / licensed / shared on other websites without getting consent from its author. Content is provided to you AS IS for your information and personal use only. Download presentation by click this link. While downloading, if for some reason you are not able to download a presentation, the publisher may have deleted the file from their server. During download, if you can't get a presentation, the file might be deleted by the publisher.

E N D

Presentation Transcript


  1. IS1200 Datorteknik Föreläsning CE F1 Computer Engineering Introduktion IS1200 Datorteknik föreläsning CE - F1

  2. Välkommen tillIS1200 Datorteknik ”Hur datorer fungerar” Kursens hemsida finns utpekad från: http://www.ict.kth.se/courses/IS1200 emailadress till lärare: is1200@ict.kth.se Kursansvarig: Johan Wennlund IS1200 Datorteknik föreläsning CE - F1

  3. IS1200 Datorteknik • Föreläsningar, 10 st (2x45min) • Övningar, 10 st (2x45min) • Laborationer, 6 st (4,5 hp) 3 st a’ 3-4 tim i lablokal, 2 elever per grupp 3 st redovisas muntligt ~50 min/2 elever • Tentamen, (5 tim) (3,0 hp) 6 uppgifter a’ 10p, 30p ger G • Kurs-anmälan vid Föreläsning 1 IS1200 Datorteknik föreläsning CE - F1

  4. IS1200 Datorteknikhttp://www.ict.kth.se/courses/IS1200 CE F1 CE F2 CE Ö1 CE F3 CE Ö2 Assemblerprogram CE F4 CE Ö3 lab nios2time C CE F5 CE Ö4 hemlab C In- och utmatning CE F6 CE Ö5 CE Ö6 lab nios2io Avbrott och "trap" CE F7 CE Ö7 lab nios2int Cacheminnen CE F8 CE Ö8 hemlab cache Trådar, synkronisering CE F9 CE Ö9 hemlab trådar CE F10 CE Ö10 tentamen IS1200 Datorteknik föreläsning CE - F1

  5. IS1200 DatorteknikLärare: • Johan Wennlund, kursledare, föreläsare, Övn och lab • Fredrik Lundevall, biträdande kursledare, föreläsare, Övn och lab • Artur Podoba, Övn och lab • William Sandqvist, Övn och lab • Jan Andersson, Övn och lab • Ananya Muddukrishna, lab • Gunnar Johansson, lab IS1200 Datorteknik föreläsning CE - F1

  6. LaborationerCE – Computer Engineering Assemblerprogrammering av Nios-processorn • Enkla program på Nios-processorn (nios2time) • I/O på Nios-processorn (nios2io) • Avbrottshantering på Nios-processorn (nios2int) (licens-sträng: @lic1.ict.kth.se) Hemlaborationer • Maskinnära programmering med C (”C-labben”) • Minnessystem med cache-minnen (”Cache-labben”)Prestanda påverkas av parametervärden • Operativsystem, (”OS-labben”) Fördelning av CPU-tidSamverkan mellan processer med semaforer IS1200 Datorteknik föreläsning CE - F1

  7. Kursen i förhållande till andra kurser Förkunskaper • Datalogi - programmering C/Java • Digitalteknik/Elektronik - NAND-grindar etc IS1200 Datorteknik föreläsning CE - F1

  8. IS1200 DatorteknikCE - Computer Engineering Datorns funktion på olika nivåer från JAVA/C-kod till NAND-grind • Programexempel: sum = 0 ; for (i=1; i<=17; i=i+1) sum = sum + i; • Exempel på digitala komponenter: NAND-grind D-vippa IS1200 Datorteknik föreläsning CE - F1

  9. Kursen i förhållande till andra kurser Förkunskaper • Datalogi - programmering C/Java • Digitalteknik/Elektronik - NAND-grindar etc Efterföljande kurser inom många områden t.ex. • Datorkomm. och Datornät • Operativsystem • Datorteknik fk, Datorarkitektur, Datorsystemarkitektur • Embedded Systems, SystemOnChip Architecture • Parallella Datorsystem • Concurrent Programming IS1200 Datorteknik föreläsning CE - F1

  10. KurslitteraturKårbokhandeln plan 5 • OH-bilder från föreläsningar 1-10, via kurshemsida http://www.ict.kth.se/courses/IS1200/kurslitt.html • Exempelsamling del 1-10, via kurshemsida • Lab-PM del 1-6, via kurshemsidan • Nios2 – manual Chap 3 och 8,(tillgänglig via kurshemsidan) • Enstaka blad från kurshemsidan • Mats Brorsson: Datorsystem Program- och maskinvara (cirka 350:-) IS1200 Datorteknik föreläsning CE - F1

  11. Skaffa er Nios2-Manual redan före övning 1 Nios II Processor Reference HandbookChap 3 & 8 Finns att köpa på kårbokhandeln 40:- t.ex. i pausen idag 12 – 13 och i morgon fm Finns att läsa/skriva ut via kurshemsidan IS1200 Datorteknik föreläsning CE - F1

  12. IS1200 Datorteknik • Föreläsning CE F1, innehåll • CPU - BUS – MEM – I/O • Fetch - Execute • Instruktioner och Data • Instruktionsformat • Operandutpekning - Adressering • Hoppinstruktioner IS1200 Datorteknik föreläsning CE - F1

  13. Litteraturhänvisningar • Kursboken, valda delar av kapitel 1,2 och 4 • 1.1 -- 1.3 läses kursivt • 1.4 -- 1.6 läses • Kap 2: principer, ej MIPS-kod, (ej 2.6) • 4.1 -- 4.3 principer, ej MIPS-kod • 4.4 Kopplingen till C, ej MIPS-kod IS1200 Datorteknik föreläsning CE - F1

  14. Nu börjar det !Programexempel • Java-/C-kod int A, B, C; /* data, variabler */ ... C = A + B; /* program, code/text */ ... IS1200 Datorteknik föreläsning CE - F1

  15. Program i Java/C-kodkompileras/översätts tillASSEMBLER-kod int A, B, C; /* variabler, data */ • översätts (kompileras) till assembler-kod .data # nu kommer data .align 2 # på adress delbar med 4 A: .word 0 # plats för en integer /32 bitar B: .word 0 # plats för en integer /32 bitar C : .word 0 # plats för en integer /32 bitar IS1200 Datorteknik föreläsning CE - F1

  16. Program i Java/C-kodkompileras/översätts tillASSEMBLER-kod C = A + B; /* program, code/text */ • översätts (kompileras) till assembler-kod .text # nu kommer programkod .align 2 # på adress delbar med 4 LOAD R1 <-- A LOAD R2 <-- B ADD R3 <-- R1 + R2 STORE C <-- R3 IS1200 Datorteknik föreläsning CE - F1

  17. Program i ASSEMBLER-kod assembleras/översätts tillMaskinkod / binärkod # maskinkod/binärkod #kommentarer 0010 1101 1111 …. 1101 #LOAD R1 <-- A 0010 1101 1110 …. 1101 #LOAD R2 <-- B 1001 1101 0101 …. 1111 #ADD R3 <-- R1+R2 0011 1111 1101 …. 0010 #STORE C <-- R3 # hur många bitar? IS1200 Datorteknik föreläsning CE - F1

  18. 4 Viktiga delar i en dator CPU BUS program I/O MEM data IS1200 Datorteknik föreläsning CE - F1

  19. 4 Viktiga delar i en dator • MEM - Memory/Minne lagrar program och data (Minne = Lagringsplats) • CPU - Central Processing Unit; den enhet som ”kör program” dvs hämtar och utför instruktioner • IO - Input/Output; enheter för kommunikation med omvärlden • BUS; överföring av information/bitar mellan CPU/MEM/IO IS1200 Datorteknik föreläsning CE - F1

  20. (decode) EXECUTE Programexekvering(i två steg / två faser) FETCH (update PC) HÄMTA UTFÖR IS1200 Datorteknik föreläsning CE - F1

  21. Program Counter - PC PC - Program Counter Är ett register (ett antal vippor) Innehåller i PC är en minnesadress (t.ex. 32 bitar) som pekar på en plats i minnet som innehåller information nämligen aktuell instruktion (t.ex. 32 bitar) IS1200 Datorteknik föreläsning CE - F1

  22. Programexekvering • FETCH - HÄMTA • PC - Program Counter innehåller en minnesadress som pekar ut aktuell instruktion. • Kopiera en instruktion från minne till processorns IR - Instruction Register • Uppdatera PC för att peka ut nästa instruktion (öka PC med 1/2/4 ...) IS1200 Datorteknik föreläsning CE - F1

  23. Programexekvering • EXECUTE - UTFÖR • Decode - Avkoda innehållet i IR – Instruction Register dvs lista ut vilken intruktion som bitkoden i IR motsvarar • Execute - Utför denna instruktion IS1200 Datorteknik föreläsning CE - F1

  24. Minne Generella register Programräknare R0 PC R1 R31 Processorn(t.ex Nios eller MIPS eller …) En förenklad bild av NiosII-arkitekturen med minne. IS1200 Datorteknik föreläsning CE - F1

  25. Programexempel 1 PROGRAMRÄKNAREE PROGRAM COUNTER MINNE uppdatera öka med vad? 4 eller 2 eller LOAD LOAD ADD STORE PROGRAM (.text) LOAD LOAD A:B:C: DATA (.data) ADD STORE IS1200 Datorteknik föreläsning CE - F1

  26. Assembler-instruktionervilka behövs ? exempel ! • LOAD kopiera från minne till CPU • ADD utför aritmetisk operation • STORE kopiera från CPU till minne • ... • SUB utför aritmetisk operation • ADDI Add Immediate • SUBI Subtract Immediate • ... flera ”införs” vid behov ... IS1200 Datorteknik föreläsning CE - F1

  27. Assembler-InstruktionenLOAD Rdst <-- A • LOAD: Läs/Kopiera från minne till register • Destinationsplats är Rdst • Källoperanden finns i minnet på adress A • Effektivadressen till källoperanden är A • En läsning från minnet i Fetch • En läsning från minnet i Execute IS1200 Datorteknik föreläsning CE - F1

  28. Assembler-InstruktionenSTORE C <-- Rsrc • STORE: Skriv/Kopiera från register till minne • Källoperand finns i Rsrc • Destinationsplats i minnet på adress C • Effektivadressen till destinationen är C • En läsning från minnet i Fetch • En skrivning till minnet i Execute IS1200 Datorteknik föreläsning CE - F1

  29. Assembler-InstruktionenADDITION • ADD Rdst, Rsrc1 , Rsrc2 Utför addition av två värden, som vardera upptar 32 bitar, hämtade från register Rsrc1 och Rsrc2 och skriver summan till register Rdst • En läsning från minnet (Fetch) • Rdst Rsrc1 + Rsrc2 IS1200 Datorteknik föreläsning CE - F1

  30. INSTRUKTIONSFORMAT binärkodsformat ADD Rdst, RsrcA, RsrcB ADD 6 5 5 5 bitar per fält Hur många bitar behövs ? 3 regadr + opcode ! Hur stor blir varje instruktion ? 21 bitar ! INSTRUKTIONSFORMAT enligt ovan IS1200 Datorteknik föreläsning CE - F1

  31. INSTRUKTIONSFORMAT Binärkod i Nios II, 32 bitar ADD Rdst, RsrcA, RsrcB 0x31 0x00 0x3a 5 5 5 6 5 6 bitar per fält Hur många bitar behövs ? 15 + op-code Hur stor är varje instruktion ? 32 bitar ! INSTRUKTIONSFORMAT enligt ovan IS1200 Datorteknik föreläsning CE - F1

  32. Assembler-InstruktionenSUBTRAKTION • SUB Rdst, Rsrc1 , Rsrc2 Utför subtraktion mellan två värden som vardera upptar 32 bitar hämtade från register Rsrc1 och Rsrc2 och skriver skillnaden till register Rdst • En läsning från minnet (Fetch) • Rdst Rsrc1 - Rsrc2 IS1200 Datorteknik föreläsning CE - F1

  33. Nytt Programexempel C = A + 17 ; • ”kan översättas” till LOAD R1 <-- A ADDI R3 <-- R1 + 17 #ny instruktion STORE C <-- R3 IS1200 Datorteknik föreläsning CE - F1

  34. Assembler-InstruktionenADDITION, Add Immediate • ADDI Rdst, Rsrc1 , datan Utför addition av två värden, som vardera upptar 32 resp. n bitar, hämtade från register Rsrc1 samt ??? och skriver summan till register Rdst • En läsning från minnet (Fetch) ??? • Rdst <-- Rsrc1 + datan IS1200 Datorteknik föreläsning CE - F1

  35. Assembler-InstruktionenSUBTRAKTION, Sub Immediate • SUBI Rdst, Rsrc1 , datan Utför subtraktion mellan två värden som vardera upptar 32 resp. n bitar hämtade från register Rsrc1 samt ??? och skriver skillnaden till register Rdst • En läsning från minnet (Fetch) ??? • Rdst <-- Rsrc1 - datan IS1200 Datorteknik föreläsning CE - F1

  36. INSTRUKTIONSFORMAT binärkodsformat ? Hur lagras instruktioner i minnet ! Binärkodat – med nollor och ettor ? Hur många bitar behövs för en instruktion? ! Så att all information finns med ? Vilken information innehåller en instruktion ! Operationskod, operandutpekning IS1200 Datorteknik föreläsning CE - F1

  37. INSTRUKTIONSFORMAT binärkodsformat ADDI Rdst, Rsrc, datan SUBI Rdst, Rsrc, datan ADDI/SUBI 6 5 5 n bitar per fält Hur många bitar behövs? 16 + n ! Hur stor blir varje instruktion? 16+n! INSTRUKTIONSFORMAT enligt ovan Vilket värde bör man välja för n? 16! IS1200 Datorteknik föreläsning CE - F1

  38. INSTRUKTIONSFORMAT Binärkod i Nios II, 32 bitar ADDI Rdst, RsrcA, Data 0x04 5 5 16 6 bitar per fält Intruktionen SUBI får man ”gratis” SUBI rB, rA, IMM16  ADDI rB, rA, -IMM16 IMM16 innehåller ett 2-komplement-tal ... IS1200 Datorteknik föreläsning CE - F1

  39. OperandutpekningAdressering Exempel på varianter ”Var finns operanden” • I register, till exempel i R4 Vilka register finns? t.ex. R0--R31 (”snabbt” register finns inne i CPU-chipet) • I minnet, på en viss adress t.ex. 0x046C (”långsamt” minnet finns utanför CPU-chipet) IS1200 Datorteknik föreläsning CE - F1

  40. Effektivadressvid operand i minnet • Vid operandutpekning i minnet gäller den Effektiva Adressen är adressen till den plats i minnet där operanden lagras IS1200 Datorteknik föreläsning CE - F1

  41. Operandutpekning medoperand i minnet • Effektivadress i instruktionens ”adressfält” • Effektivadress i ett register • Operand i instruktionens ”datafält” • Indexerad adressering • Självrelativ adressering, PC-relativ • … det finns fler varianter ... IS1200 Datorteknik föreläsning CE - F1

  42. Direkt adressAbsolut adress • Instruktionens adressfält innehållereffektivadressen (EA) • effektivadressen är adressen till den plats i minnet där operanden lagras till exempel: LOAD reg <- Addr # reg := mem(Addr) reg Addr LOAD IS1200 Datorteknik föreläsning CE - F1

  43. Direkt operand(Immediate addressing) • Instruktionens ”adressfält” innehålleroperandvärdet • effektivadress är inte relevant exempel: MOVI reg <- Data #reg := Data reg Data MOVI IS1200 Datorteknik föreläsning CE - F1

  44. Register operand(Register addressing) • Ett register innehålleroperandvärdet • effektivadress är inte relevant • Kan kallas direkt via register exempel: MOVE reg1 <- reg2 #reg1 := reg2 ??? reg reg MOVE IS1200 Datorteknik föreläsning CE - F1

  45. Register indirect addressing(Indirekt adress via register) • Ett register innehåller effektivadressen • Effektivadressen är adressen till den plats i minnet där operanden lagras exempel: LOAD reg1 <- (reg2) #reg1 := mem(reg2) ??? reg1 reg2 LOAD IS1200 Datorteknik föreläsning CE - F1

  46. Indexerad adressering(Displacement addressing) • Effektivadressen är adressen till den plats i minnet där operanden lagras • Effektivadressen är summan avinnehåll i instruktionens adressfält ochinnehåll i angivet indexregister exempel: LOAD reg <- offset(indexreg) reg := mem (offset+indexreg) offset reg LOAD indexreg IS1200 Datorteknik föreläsning CE - F1

  47. Indexerad adressering Exempel på specialfall LOAD Offset(Indexregister) • Offset = 0 ger ”adress i register” • Indexregister innehåller 0 ger direkt (absolut) adress • Indexregister = PC ger själv-relativ adressering PC-relativ adressering IS1200 Datorteknik föreläsning CE - F1

  48. Självrelativ adresseringPC-relativ adressering(specialfall av Indexerad adressering) • Effektivadressen är adressen till den plats i minnet där operanden lagras • Effektivadressen är summan avinnehåll i instruktionens adressfält och(aktuellt) innehåll i Program Counter (PC) IS1200 Datorteknik föreläsning CE - F1

  49. Next Body1 Body2 Cond ? Java/C-kod: if-sats ger behov av hopp If: if (cond) then body1 else body2; leder till flödes-schema enligt figur till höger Vi får behov av HOPP VILLKORLIGT HOPP OVILLKORLIGT HOPP True False IS1200 Datorteknik föreläsning CE - F1

  50. init start Next Body update Cond ? Java/C-kod: for-loop ger behov av hopp init; for (start; cond; update) body; leder till flödes-schema enligt figur till höger Vi får behov av HOPP OVILLKORLIGT HOPP VILLKORLIGT HOPP Test: False True IS1200 Datorteknik föreläsning CE - F1

More Related