Presentation laddar. Vänta.

Presentation laddar. Vänta.

4 August 2015 IS1200 Datorteknik föreläsning CE - F91 IS1200 Datorteknik Övning 10.

Liknande presentationer


En presentation över ämnet: "4 August 2015 IS1200 Datorteknik föreläsning CE - F91 IS1200 Datorteknik Övning 10."— Presentationens avskrift:

1 4 August 2015 IS1200 Datorteknik föreläsning CE - F91 IS1200 Datorteknik Övning 10

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

3 4 August 2015 IS1500 Datorteknik o k, föreläsning CE - F103 Tentamen innehåller 1.Maskinaritmetik med mera 2.Assemblerprogrammering,subrutiner 3.Assemblerprogrammering pollning/avbrott 4.Cache-minnen 5.Processorkonstruktion 6.CPU scheduling och semaforer 4 August 2015 IS1200 Datorteknik föreläsning CE - F93

4 4 August 2015 IS1200 Datorteknik föreläsning CE - F94 CPU-scheduling Round Robin OS Tråd 1 Tråd 2 Tråd 3 time-slice time-out context switches...

5 4 August 2015 IS1200 Datorteknik föreläsning CE - F95 Kartbild av fysiska minnet varje tråd har egna platser adress ? 7 0.data.text heap stack (fetch-execute) (malloc-free) (push-pop) (load-store) SP PC +n.bss adress ? 7 0.data.text heap stack (fetch-execute) (malloc-free) (push-pop) (load-store) SP PC +n.bss..

6 4 August 2015 IS1200 Datorteknik föreläsning CE - F96 CPU-scheduling Exit (System Call) OS Tråd 1 Tråd 2 Tråd 3 time-slice time-out exit time-out Round Robin Tråd 2 borta ur RQ !

7 4 August 2015 IS1200 Datorteknik föreläsning CE - F97 OS Tråd 1 Tråd 2 Tråd 3 Tråd 4 time-slice time-out Round Robin CPU-scheduling Create (System Call) create Tråd 4 tillkom i RQ ! time-out

8 4 August 2015 IS1200 Datorteknik föreläsning CE - F98 OS Tråd 1 Tråd 2 Tråd 3 time-slice time-out Sound Robin CPU-scheduling Yield (System Call) yield < time-slice Tråd 2 vilar i RQ !

9 4 August 2015 IS1200 Datorteknik föreläsning CE - F99 Nios-II (repris) Process Control Block - PCB Thread Control Block - TCB r1—r23 r26 (gp) r28 (fp) sp r31 #returadress r29 (ea) 27 register 108 bytes Varje register som en tråd använder ska sparas/skyddas

10 4 August 2015 IS1200 Datorteknik föreläsning CE - F910 Exceptions in Nios-II Suggested software structure trap 0x800020:”jmp ExcHand” Int ?Trap ? ExcHand: ElseHand Yes No NoInt: IRQ00IRQ10 IRQ31 error IntHand: No irq00Hand Yes irq10Hand Yes irq31Hand Yes subi r29, r29, 4 eret No trap0 trap1 trapn error TrapHand: No trap0Hand Yes trap1Hand Yes trapnHand Yes eret No instr int No

11 4 August 2015 IS1200 Datorteknik föreläsning CE - F911 Hemlaboration 3 Suggested software structure trap 0x800020:”jmp ExcHand” Int ?Trap ? ExcHand: ElseHand Yes No NoInt: IRQ10 error IntHand: Yes subi r29, r29, 4 instr int No TimerIntHand: Context Switch 100? Yes eret No

12 4 August 2015 IS1200 Datorteknik föreläsning CE - F912 OS Tråd 1 Tråd 2 Tråd 3 Tråd 4 time-slice time-out Round Robin CPU-scheduling Create (System Call) create Tråd 4 tillkom i RQ ! time-out

13 4 August 2015 IS1200 Datorteknik föreläsning CE - F913 Samverkande processer Användning av semaforer vid  Synkronisering  Ömsesidig uteslutning

14 4 August 2015 IS1200 Datorteknik föreläsning CE - F914 Semafor, vad är det  En heltalsvariabel (0, 1, 2, 3 … -1, -2 ??)  (men med) Speciella egenskaper  Operationer (atomära - odelbara)  signal (sem) ~ öka med 1  wait (sem) ~ minska med 1 om det går (annars ”vänta” tills det går)  Binär semafor, kan anta värde 0 eller 1

15 4 August 2015 IS1200 Datorteknik föreläsning CE - F915 Semafor korgbollsanalogi KORG BOLL

16 4 August 2015 IS1200 Datorteknik föreläsning CE - F916 anrop … wait … wait … wrfifo … signal … signal … retur PUT-FIFO nrempty wrmut nrfull

17 4 August 2015 IS1200 Datorteknik föreläsning CE - F917 GET-FIFO nrempty rdmut nrfull retur … signal … signal … rdfifo … wait … wait … anrop

18 4 August 2015 IS1200 Datorteknik föreläsning CE - F918 CPU-scheduling OS Prod 1 Prod 2 Prod 3 Cons 1 Cons 2 time-slice

19 4 August 2015 IS1200 Datorteknik föreläsning CE - F919 function: Signal med C-kod inparameter: pekare till semafor void Signal ( int * sem) { oslab_begin_critical_region() ; *sem = *sem + 1 ; oslab_end_critical_region() ; }

20 4 August 2015 IS1200 Datorteknik föreläsning CE - F920 function: Wait med C-kod inparameter: pekare till semafor void Wait (int * sem) { oslab_begin_critical_region() ; while ( *sem <= 0) { oslab_end_critical_region() ; /*os_lab_yield();*/ oslab_begin_critical_region() ; } *sem = *sem -1 ; oslab_end_critical_region() ; }

21 4 August 2015 IS1200 Datorteknik föreläsning CE - F921 OS Idle (gör inte yield) Prod 1 time-slice Round Robin CPU-scheduling Idle-tråd och en Producer Idle tar cirka 50% av tiden Prod 1 får cirka 50% av tiden

22 4 August 2015 IS1200 Datorteknik föreläsning CE - F922 OS Idle (Idle gör yield) Prod 1 time-slice Round Robin CPU-scheduling Idle-tråd och en Producer Idle tar cirka 0% av tiden Prod 1 får nästan 100% av tiden

23 4 August 2015 IS1200 Datorteknik föreläsning CE - F923 OS Idle (Idle gör yield) Proc 1 Proc 2 Proc 3 time-slice Round Robin CPU-scheduling Idle-tråd och tre Processer Proc 1 får cirka 33% av tiden

24 4 August 2015 IS1200 Datorteknik föreläsning CE - F924 OS Idle Proc 1 Proc 2 Proc 3 Proc 4 Proc 5 time-slice Round Robin CPU-scheduling Idle-tråd och fem Processer Proc 1 får cirka 20% av tiden

25 4 August 2015 IS1200 Datorteknik föreläsning CE - F925 CPU-scheduling endast Idle-tråd som yieldar OS Idle gör yield time-slice Robin Hood Idle får cirka 100% av tiden (bränner/slösar)

26 4 August 2015 IS1200 Datorteknik föreläsning CE - F926 Med time-slice 10 millisekunder Hur många instruktioner? $Antag 1 GHz processor $Antag 1 instruktion per CPU-cykel $1 000 000 000 instruktioner per sekund $1 000 000 instruktioner per millisekund $10 000 000 instruktioner per time slice

27 4 August 2015 IS1200 Datorteknik föreläsning CE - F927 Windows OS ctrl-alt-del öppnar Windows Task Manager Klicka på Processes och studera längst ner:... System Idle Process SYSTEM många %

28 4 August 2015 IS1200 Datorteknik föreläsning CE - F928 OS Idle P1 P2 P3 C1 C2 Round Robin Exempel på figur Exempelsamling del 9 time-slice

29 4 August 2015 IS1200 Datorteknik föreläsning CE - F929 OS Idle Prod 1 Prod 2 Prod 3 Cons 1 Cons 2 time-slice Round Robin Hemlab 3, figurexempel yield i Consumer och i Wait() Första varvetvarv 3 och senare

30 Viktiga delar i en dator CPU MEM BUS I/O program data 4 August 201530 IS1200 Datorteknik föreläsning CE – F2 4 August 2015 IS1200 Datorteknik föreläsning CE - F930

31 Programexekvering i två steg (decode) EXECUTE FETCH (update PC) 4 August 201531 IS1200 Datorteknik föreläsning CE – F2 4 August 2015 IS1200 Datorteknik föreläsning CE - F931

32 September 15, 2010 IS1500 Datorteknik o k, föreläsning CE - F232 Fenomen pga PIPE-LINE 1. Data Dependency 2. Delayed Branch 3. Load Delay 4. Structural Hazard 4 August 2015 IS1200 Datorteknik föreläsning CE - F932

33 Program Memory m x 8 ALU ADD IR0 IR1 IR2 RWM CPU med 4 stegs PIPE-LINE Register File 32 x 32 Register File 32 x 32 PC+ Imm PC+ 4 PC (Vissa register är “dubletter” !) 4 August 201533 IS1200 Datorteknik föreläsning CE – F2 4 August 2015 IS1200 Datorteknik föreläsning CE - F933

34 September 15, 2010 IS1500 Datorteknik o k, föreläsning CE - F234 CPU med 5 stegs PIPE-LINE Register File 32 x 32 Program Memory n x 16 ALU PC ADD IR0 IR1 IR2 IR3 +2 Register File 32 x 32 RWM PC+n PC+Imm ALU/EXE FO MEM FI WB NYTT 4 August 2015 IS1200 Datorteknik föreläsning CE - F934

35 2.Branch Delay Slot (Fenomen pga PIPE-LINE) Instruktionen i minnespositionen närmast efter en hoppinstruktion kommer hämtas och utföras innan hoppet verkställs Programexempel 16: BRA 64 20: ADD …# hämtas och utförs 24: … … 84: SUB... 4 August 201535 IS1200 Datorteknik föreläsning CE – F2

36 Efter FI av 16: BRA 64 Execute Fetch Operand Write Back Fetch Instruction 16: BRA 64 20: ADD … ALU ADD IR0 IR1 IR2 20 BRA 64 6420 16: BRA 64 20: ADD … 24: … … 84: SUB … 88:... Register File 32 x 32 Register File 32 x 32 PC PC+ Imm PC+ 4 20 4 August 201536 IS1200 Datorteknik föreläsning CE – F2 84

37 Efter FI av 20: ADD Execute Fetch Operand Write Back Fetch Instruction ALU ADD IR0 IR1 IR2 ADD BRA 64 80: … 84: SUB … 84 Register File 32 x 32 Register File 32 x 32 PC 16: BRA 64 20: ADD … 24: … … 84: SUB … 88:... 84 4 August 201537 IS1200 Datorteknik föreläsning CE – F2 4 88 PC+ Imm PC+ 4

38 Efter FO av 20: ADD Execute Fetch Operand Write Back Fetch Instruction ALU ADD IR0 IR1 IR2 SUB BRA 64 88 ADD Register File 32 x 32 Register File 32 x 32 PC 16: BRA 64 20: ADD … 24: … … 84: SUB … 88:... 88 4 August 201538 IS1200 Datorteknik föreläsning CE – F2 4 84: SUB … 88: … PC+ Imm PC+ 4

39 FIFO EXEWB 4 Avkoda instruktion samt leta fram operander 2 Leta fram instruktion ur Program Memory 5 Skriv nytt värde till Program Counter = hoppa 3 Skriv instruktion till Instruction Register 1 Skriv nytt värde till Program Counter clock Skrivning utförs vid positiv flank på clock, samtidigt till varje vippa/register/minne Ovillkorliga hopp (BRA/JUMP) när kan hoppet tidigast utföras ? (Ledig tid: ”Kislet kallnar” eller... ) (Skriv till R0 eller inte alls) (Skriv till tmp-reg eller inte alls) 4 August 201539 IS1200 Datorteknik föreläsning CE – F2

40 Viktiga delar i en dator CPU MEM BUS I/O program data 4 August 201540 IS1200 Datorteknik föreläsning CE – F2 I$ D$D$ 4 August 2015 IS1200 Datorteknik föreläsning CE - F940

41 Level 1 cache – L1$ CPU 4 August 201541 IS1200 Datorteknik föreläsning CE – F2 I$ D$D$ MEM program data L1 – Level 1 Cache 4 August 2015 IS1200 Datorteknik föreläsning CE - F941

42 CPU 4 August 201542 IS1200 Datorteknik föreläsning CE – F2 I$ D$D$ MEM program data L1 – Level 1 Cache L2 cache L2 – Level 2 Cache Register File 4 Gbyte 2 Mbyte 2 * 32 Kbyte 32 x 4 byte 4 August 2015 IS1200 Datorteknik föreläsning CE - F942

43 CPU 4 August 201543 IS1200 Datorteknik föreläsning CE – F2 I$ D$D$ MEM program data L1 – Level 1 Cache L2 cache L2 – Level 2 Cache L3 cache L3 – Level 3 Cache Register File 4 Gbyte 256 Kbyte 2 * 32 Kbyte 32 x 4 byte 6 Mbyte 4 August 2015 IS1200 Datorteknik föreläsning CE - F943

44 4 August 2015 IS1500 Datorteknik o k, föreläsning CE - F144 Dual-core / Multi-core / Many-core CPU MEM BUS I/O CPU... 4 August 2015 IS1200 Datorteknik föreläsning CE - F944

45 4 August 2015 IS1500 Datorteknik o k, föreläsning CE - F145 Dual-core / Multi-core / Many-core Cache Coherence MEM BUS I/O CPU... L3$ L2$ L1-I$L1-D$ CPU L3$ L2$ L1-I$L1-D$ 4 August 2015 IS1200 Datorteknik föreläsning CE - F945


Ladda ner ppt "4 August 2015 IS1200 Datorteknik föreläsning CE - F91 IS1200 Datorteknik Övning 10."

Liknande presentationer


Google-annonser