Presentation is loading. Please wait.

Presentation is loading. Please wait.

Protsessori ja mälu osa andmetöötluses

Similar presentations


Presentation on theme: "Protsessori ja mälu osa andmetöötluses"— Presentation transcript:

1 Protsessori ja mälu osa andmetöötluses
Protsessor (CPU-Central Processing Unit) CPU Andmed & programm Andmed Mälu Sisend väljund Käsud Mälu (Memory System) Käsud Instructions Andmed Data CPU ALU Juht automaat Control Unit Registrid Registers Operatsioon automaat (Datapath) Sisend/väljund (Input/output) 9/22/2018 T. Evartson

2 9/22/2018 T. Evartson

3 Kõrgtaseme keel-assembler-masinkood
High-level language If n<100 then a:= b else v[i]:=k[j-1] end; Assembler keel Assembly language ADD a,b,c MOV d, M XOR c,d Masinkood Binary machine language 9/22/2018 T. Evartson

4 Mälu Mälu Andmevahetus mäluga Aadress Andmed & programm Andmed
Lug./kirj. Mälu Mälu aadressi ja andmete registrid Aadress Mälu aadressi register (MAR) Käsk 1 Käsk 2 Mälu Käsk 3 Andmed Andmed Mälu puhver register (MBR) 9/22/2018 T. Evartson

5 Käsuloendur Program Countrer, Instruction Pointer
Mälu Järjestikuste käskude lugemine käsuloenduri (PC) aadressi järgi Aadress Käsuloendur (PC) Käsk 1 Käsk 2 Inc. (+1) Käsk 3 Andmed 9/22/2018 T. Evartson

6 Käsu register ja käsu dekodeerimine
Käsuregister (IR) Käsukood Aadress/Operand Dekooder ADD OR MUL 9/22/2018 T. Evartson

7 Käsu täitmise juhtimine
Mälu aadressi register (MAR) Käsuloendur (PC) Mälu Inc. (+1) IR Käsukood Aadress Mälu puhver register (MBR) Käsu dekooder Andmed Aadressid Juht- automaat (CU) Juhtsignaalid 9/22/2018 T. Evartson

8 Mälujaotus ilma siirdekäskude ja vahetute operandide, ning otsese adresseerimiseta
Käsuloendur Käsk2 Käsk 3 Käsk4 Käsk 5 9/22/2018 T. Evartson

9 Protsesor ilma vahetute operandide ja siirde käskudeta
Käsuloendur (PC) Mälu aadressi register (MAR) Mälu Inc. (+1) Käsuregister(IR) Käsukood Aadress Mälu puhver register (MBR) Käsu dekooder Andmeregistrid (registermälu) ALU Juht- automaat (CU) Juhtsignaalid Andmed Aadressid Lippude register Juhtimine 9/22/2018 T. Evartson

10 Käsu täitmise tsükkel ( von Neumanni tsükkel)
Fetch – Decode – Execute Cycle Käsukoodi laadimine (Fetch) Käsuloenduri modifitseerimine PC: =PC +1 Käsu täitmine Käsukoodi dekodeerimine 9/22/2018 T. Evartson

11 Käsukoodi dekodeerimine
PC M Käsukoodi laadimine (Instruction fetch) PC + 1 M IR Käsukoodi dekodeerimine . . . . . . Käsu täitmine (instruction execute) 9/22/2018 T. Evartson

12 Mälu jaotus siirdekäskudega programmiga
Käsuloendur Käsk2 Siirdekäsk (Branch) Järgmise käsu aadress Käsk3 Andmed Käsk1a Käsk2a 9/22/2018 T. Evartson

13 Siirdekäsud protsessoris
Käsuloendur (PC) Mälu aadressi register (MAR) Mälu Järgmise käsu aadress Inc. (+1) Käsuregister(IR) Käsukood Aadress Mälu puhver register (MBR) Käsu dekooder Andmeregistrid (registérmälu) ALU Juht- automaat (CU) Juht- signaalid Lippude register Siirde (Branch) tingimus 9/22/2018 T. Evartson

14 Käsukoodi dekodeerimine
PC M Käsukoodi laadimine (Instruction fetch) PC + 1 M IR Käsukoodi dekodeerimine Siirdekäsk . . . 1 Tingimus . Käsu täitmine (instruction execute) PC M PC + 1 Uus PC 9/22/2018 T. Evartson

15 Mälu jaotus operandi otsese adresserimisega käsu koral
Käsk1 Käsuloendur Käsk2 Operandi aadress Käsk3 Andmed Operand Käsk n 9/22/2018 T. Evartson

16 Käsukoodiga antakse koos operandi aadress
Käsuloendur (PC) Mälu aadressi register (MAR) Mälu Inc. (+1) Operandi aadress Käsuregister(IR) Operandi aadress Käsukood Mälu puhver register (MBR) Käsu dekooder Andmeregistrid (registérmälu) ALU Juht- automaat (CU) Juht- signaalid Lippude register Siirde (Branch) tingimus 9/22/2018 T. Evartson

17 Käsukoodi dekodeerimine
PC M Käsukoodi laadimine (Instruction fetch) PC + 1 M IR Käsukoodi dekodeerimine Otsese adresseerimisega käsk . . . PC M . . . . Käsu täitmine (instruction execute) M IR PC + 1 . . . 9/22/2018 T. Evartson

18 Mälu jaotus vahetu operandiga käskude korral
Käsuloendur Käsk2 Operand Käsk3 Käsk4 Käsk n 9/22/2018 T. Evartson

19 Vahetu operandiga käsud
Käsuloendur (PC) Mälu aadressi register (MAR) Mälu Inc. (+1) Käsuregister(IR) Operand (Aadress) Käsukood Mälu puhver register (MBR) Käsu dekooder Andmeregistrid (registérmälu) Operand ALU Juht- automaat (CU) Juht- signaalid Lippude register Siirde (Branch) tingimus 9/22/2018 T. Evartson

20 Käsukoodi dekodeerimine
PC M Käsukoodi laadimine (Instruction fetch) PC + 1 M IR Käsukoodi dekodeerimine Vahetu operandiga käsk . . . PC M . . . . Käsu täitmine (instruction execute) M IR PC + 1 . . . 9/22/2018 T. Evartson

21 Lippude register (Flags)
Operatsioonautomaat Operatsioonautomaat - vahetu andmete teisendaja (Data path) Andmed mälust ja I/O seadmetest Register 1 Registermälu Register 2 Register 3 Register n Ope- rand 1 Resultaat Ope- rand 2 ALU Lippude register (Flags) 9/22/2018 T. Evartson

22 Protsessori üldstruktuur
Käsuloendur (PC) Mälu aadressi register (MAR) Mälu Järgmise käsu aadress Inc. (+1) Operandi aadress Käsuregister(IR) Operand (Aadress) Käsukood Mälu puhver register (MBR) Käsu dekooder Andmeregistrid (registérmälu) Operand ALU Juht- automaat (CU) Juht- signaalid Lippude register Siirde (Branch) tingimus 9/22/2018 T. Evartson

23 9/22/2018 T. Evartson

24 9/22/2018 T. Evartson

25 Jäiga loogikaga juhtautomaat Hard Wired
Juhtautomaat (CU) Milline käsk täidetakse Juhtsignaalid protsessori eri osadele Tagaiside protsessori eri osadest 9/22/2018 T. Evartson

26 Kombinarsioonskeemid (Combinational Circuits)
Boole`i funktsioon x 1 y = f (x1,x2,… xn) x 2 y Teades sisendite loogilisi väärtusi antud ajahetkel saame vastava Boole`i funktsiooni kaudu arvutada väljundi väärtuse. Puudub sõltuvus eelmistest sisendite väärtustest. x n Järjestikskeemid (Sequential Circuits) Boole`i funktsioon + olek Selleks, et määrata väljundi väärtust antud ajahetkel on vaja teada sisendite väärtusi antud ajahetkel ja olekut mis sõltub eelmistest sisendite väärtustest. Taktsisendi t kaudu määratakse millal toimub üleminek ühest olekust teise. x 1 x 2 y x n x 1 y Väljund funktsioon x n t Ülemineku funktsioon Uus olek am as Mälu Vana olek t 9/22/2018 T. Evartson

27 Mealy automaadi struktuur
Yj=fv(as,Xi) Yj Xi am=fü(as,Xi) Ergutus mis viib olekusse am Praeguse oleku kood as Mälu t 9/22/2018 T. Evartson

28 9/22/2018 T. Evartson Algus a1 1 Start y1 a2 x 1 y1, y3 y2 a3 y2 a1
Start y1 a2 x 1 y1, y3 y2 a3 y2 a1 Lõpp start/- start/y1 a1 x/y2 -/y2 a1 a1 x/y1, y3 9/22/2018 T. Evartson

29 Moore automaadi struktuur
Yj=fv(as,Xi) Yj Xi am=fü(as,Xi) Ergutus mis viib olekusse am Praeguse oleku kood as Mälu t 9/22/2018 T. Evartson

30 9/22/2018 T. Evartson Algus a1 y1 a2 x 1 a4 y1 y2 a3 Lõpp a1 - a1 - x
a4 y1 y2 a3 Lõpp a1 - a1 - x a2 y1 a4 y1 a3 y2 x x x 9/22/2018 T. Evartson

31 (mikroprogrammi mälu)
Tingimused {X} Käsuregister Aadressi generaator t Aadressi register Püsimälu (mikroprogrammi mälu) Tingimuse valik Järgmise sõna aadress Juhtsignaalid {Y} 9/22/2018 T. Evartson

32 9/22/2018 T. Evartson

33 9/22/2018 T. Evartson

34 9/22/2018 T. Evartson Algus a1 y1 a2 x 1 a3 y2 y3 a4 Lõpp a1 00 - a1 -
a3 y2 y3 a4 Lõpp a1 00 - a1 - x a2 y1 - 01 a4 y3 11 a3 y2 x 10 9/22/2018 T. Evartson

35 9/22/2018 T. Evartson R t a1 R Püsimälu TT c Tingimused {X} D Aadress
Väljundid {Y} a0 R TT c D Aadress y3 1 y2 y1 s 1 s & x 9/22/2018 T. Evartson

36 Mikroprogrammeeritav juhtautomaat
Käsukood Aadress/Operand Käsuregister (IR) INC.(+1) Mikrokäsuloendur CLK Mikroprogrammi mälu (tavaliselt püsimälu) Aadress Andmed Järgmise käsu aadress Laadi- mine/ inc Tingimuse valik Protsessori juhtimine Protsessorisse teistesse komponentidesse MUX Tingimused protsessorist 9/22/2018 T. Evartson

37 A:=E B:=E C:=E A D:=E B C D TMP1:=A TMP2:=A TMP1:=B TMP2:=B TMP1:=C TMP2:=C TMP1:=D TMP2:=D Laadida TMP1 Laadida TMP2 TMP1 TMP2 ALU V P {AND, OR, SHL1, SHR1, +, INC, DEC, ...} Lipud Y E Laadida E 9/22/2018 T. Evartson

38 C:=0 D:=0 1 B(0)=0 C:=C+A C:=R1(C) B:=R1(B) D:=D+1 D=4 1 9/22/2018 T. Evartson

39 Käsukoodi dekodeerimine
PC M Käsukoodi laadimine (Instruction fetch) PC + 1 M IR Käsukoodi dekodeerimine . . . ADD A,B,C MUL A,B,C TMP1:=A Laadida TMP1 ALU : const =0 Laadida E TMP2:=B Laadida TMP2 C:=E ALU : liitmine Laadida E ALU : const =0 Laadida E C := E D := E . 9/22/2018 T. Evartson

40 RISC ja CISC protsessorite erinevus
CISC - Complex Instruction Set Computer ISA (Instruction Set Architecture Level) Mikroprogramm Microprogram control Hardware   RISC  - Reduced Instruction Set Computer ISA (Instruction Set Architecture Level) Hardware 9/22/2018 T. Evartson

41 9/22/2018 T. Evartson

42 RISC protsessori projekteerimise põhimõtted
9/22/2018 T. Evartson

43 9/22/2018 T. Evartson

44 Konveier I Pipeline IF Instruction Fetch (Käsu laadimine)+Instruction Decode OF Operand Fetch (Operandi laadimine) OE Operand Execute ( Operatsioni täitmine ALU-s) OS Operand Store ( Resutaadi salvestamine) Programmi täitmine ilma konveierita 1. käsk 2. käsk IF OF OE OS IF OF OE OS IF Konveieriga programmi täitmine (Pipeline) Takt 1 Takt 2 Takt 3 Takt 4 Takt 5 Takt 6 Takt 7 Takt 8 Käsk IF OF OE OS 1 IF OF OE OS 2 IF OF OE OS 3 IF OF OE OS 4 IF OF OE OS 5 9/22/2018 T. Evartson

45 Käsk 1 Käsk 2 Käsk 3 IFU IR IFU IR IFU IR Reg. Reg. Reg. A B A B A B ALU ALU ALU C C C IFU IR IFU IR IFU IR Reg. Reg. Reg. A B A B A B ALU ALU ALU C C C IFU IR IFU IR IFU IR Reg. Reg. Reg. A B A B A B ALU ALU ALU C C C IFU IR IFU IR IFU IR Reg. Reg. Reg. A B A B A B ALU ALU ALU C C C 9/22/2018 T. Evartson

46 Siirdekäsu mõju konveieri tööle
IF OF OE OS i-1 IF OF OE OS i BRA to n IF OF OE OS i+1 IF OF OE OS i+2 BUBBLE n IF OF OE OS ń+1 IF OF OE OS 9/22/2018 T. Evartson

47 Viivitusega siire programmis ( Delayed Branch)
IF OF OE OS i-1 IF OF OE OS Uue aadressi arvutamine toimub käsu täitmise ajal i BRA to n IF OF OE OS Käsk täidetakse väljaspool järekorda i+1 IF OF OE OS i+2 n IF OF OE OS ń+1 IF OF OE OS 9/22/2018 T. Evartson

48 Andmete sõltuvus ja konveier
IF ADD A,B,C OF Get A,B OE A + B OS C:=A+B IF SUB C,B,D OF Get C,B OE C - B OS D:=C-B BUBBLE Andmete edastus otse IF ADD A,B,C OF Get A,B OE A + B OS C:=A+B C IF SUB C,B,D OF Get C,B OE C - B OS D:=C-B 9/22/2018 T. Evartson

49 Laadimise käsu mõju konveierile
Takt 1 Takt 2 Takt 3 Takt 4 Takt 5 Takt 6 Takt 7 Takt 8 Käsk 1 IF OF OE OS 2 IF OF OE OS 3 Tühjad taktid IF OF OE OS 4 IF OF OE OS 9/22/2018 T. Evartson

50 Hargnemiste ennustamine I ( Branch Prediction)
ÕIGE Siiret eeldati ja tuli Predict taken branch taken Siire toimub Branch taken Ei ole siirdekäsk not Branch Inst p c VALE Siiret ei eeldatud siire tuli Predict not taken branch taken 1-p b 1-p c p t c p b ÕIGE Siiret ei eeldatud ja ei tulnud Predict not taken branch not taken d p c 1-p t Siirdekäsk Branch Inst. VALE Siiret eeldati aga siiret ei tulnud Predict taken branch not taken 1-p c b C ave = a(pt pc)+b(1-pt)(1-pc)+ +c pt(1-pc)+d(1-pt)pc 9/22/2018 T. Evartson

51 Hargnemiste ennustamine II
Strateegiad : Fikseeritud hargnemiste ennustamine Fixed Branch Prediction Staatiline hargnemiste ennustamine Static Branch Prediction Dünaamiline hargnemiste ennustamine Dynamic Branch Prediction Hargnemist ei tulnud 00 Ennustus: hargnemist ei tule Hargnemine 01 Ennustus: hargnemist ei tule Hargnemist ei tulnud Hargnemist ei tulnud Hargnemine 10 Ennustus: hargnemine 11 Ennustus: hargnemine Hargnemine Hargnemist ei tulnud Hargnemine Hargnemine Ennustus b b2 9/22/2018 T. Evartson

52 a) Säilitatakse kaks ennustuse bitti igale hargnemise käsule
a) Säilitatakse kaks ennustuse bitti igale hargnemise käsule. Töötab kui aadress kuhu juhtimine läheb on käsukoodi juures. b) Kui hargnemise koha aadress selgub alles käsu täitmise ajal eeldatakse, et hargnemine toimub sina kuhu eelmisel korral. Ilma selle aadressita ei saaks käivitada konveierit sellest harust. 9/22/2018 T. Evartson

53 Ennustuse bitid Ennustuse bitid Siirdekäsu aadress Siirdekäsu aadress Siirde aadress Kehtivuse bit Kehtivuse bit b1 b2 b1 b2 . . . 9/22/2018 T. Evartson

54 SISD - Single Instruction Single Data-stream
Käsu taseme paralleelsus Instruction-Level Parallelism Konveier Pipeline S1 Käsu laadimine S2 Käsu deko- deerimine S3 Operandide laadimine S4 Käsu täitmine S5 Resultadi salvesta- mine S1 1 2 3 4 5 S2 1 2 3 4 5 S3 1 2 3 4 S4 1 2 3 S5 1 2 Aeg 9/22/2018 T. Evartson

55 Protsessori töö kiirendamine
Super konveieriga protsessor. (Superpipelined Processor) Takt 1 Takt 2 Takt 3 Takt 4 Takt 5 Takt 6 Käsk 1 IF OF OE OS 2 IF OF OE OS 3 IF OF OE OS Takt 1 Takt 2 Takt 3 Takt 4 Takt 5 Takt 6 Käsk 1 IF 1 IF 2 OF 1 OF 2 OE 1 OE 2 OS 1 OS 2 2 IF 1 IF 2 OF 1 OF 2 OE 1 OE 2 OS 1 OS 2 3 IF 1 IF 2 OF 1 OF 2 OE 1 OE 2 OS 1 OS 2 4 IF 1 IF 2 OF 1 OF 2 OE 1 OE 2 OS 1 OS 2 IF 1 IF 2 OF 1 OF 2 OE 1 OE 2 OS 1 OS 2 5 Väga pika käsuga arhitektuur. (Very Long Instruction Word Architecture -VLIW ) 9/22/2018 T. Evartson

56 Protsessori töö kiirendamine
Superskalaarne arhitektuur Superscalar Architestures. Käsu laadimine Käsu deko- deerimine Operandide laadimine Käsu täitmine Resultadi salvesta- mine Käsu deko- deerimine Operandide laadimine Käsu täitmine Resultadi salvesta- mine Operatsioon täisarvuga Operatsioon täisarvuga Käsu laadimine Käsu deko- deerimine Operandide laadimine Resultadi salvesta- mine Operatsioon ujukoma arvuga Operatsioon ujukoma arvuga Spekulatiivne täitmine. (Speculative Execution) Data Speculation(Read-After-Write, Write-After-Read, Write-After-Write) Control Speculation 9/22/2018 T. Evartson

57 Protsessori töö kiirendamine
SIMD - Single Instruction Multiple Data-stream Architecture x4 x3 x2 x1 y4 y3 y2 y1 op op op op I x4 op y4 x3 op y3 x2 op y2 x1 op y1 9/22/2018 T. Evartson

58 Paralleelarvutid Parallel Computer Architectures
Pp Pp Ps Ps Pp Pp Lõpp Pp Pp T . f 1-f n CPU-d aktiivsed Järjestik osa Paralleliseeritav osa Üks CPU aktiivne f 1-f Kiirus fT (1-f)T/n CPU-de arv 9/22/2018 T. Evartson

59 Klassifikatsioon (Flynn´s taxonomy)
Arvutid SISD SIMD MIMD MISD Vektor protsessor Vector Processor Konveier protsessorid Pipeline Processors Konveier Pipeline Maatriks protsessor Array Processor Mitme ALU-ga Superscalar Architecture Multi- protsessor Multiprocessors Multiarvuti Multicomputers UMA Uniform Memory Acess COMA Cashe Only Memory Acess NUMA NonUniform Memory Acess MPP Massively Parallel Processors NOW Network of Worksations Bus Switched CC-NUMA NC-NUMA Võrk Grid Hüperkuup Hypercube Shared memory Message passing 9/22/2018 T. Evartson

60 SIMD - Single Instruction Multiple Data-stream
Protsessori tasandi parlleelsus Processor-Level Parallelism Maatriksprotsessor Array Processor Juhtautomaat Control Unit Mälu Mälu Mälu Mälu Protsessor Protsessor Protsessor Protsessor Mälu Mälu Mälu Mälu Protsessor Protsessor Protsessor Protsessor Mälu Mälu Mälu Mälu Protsessor Protsessor Protsessor Protsessor Mälu Mälu Mälu Mälu Protsessor Protsessor Protsessor Protsessor Vektorprotsessor Vector Processor Sisendvektorid ALU Vektor ALU ALU ALU 9/22/2018 T. Evartson

61 MISD – Multi Instruction Single Data
Mälu CU 1 CU 2 CU n ... Data Instructions Data Protsessor 1 Protsessor 1 Protsessor 1 ... 9/22/2018 T. Evartson

62 MIMD- Multiple Instruction Multiple Data-stream
Multiprotsessor- Multiarvuti Multiprotsessor Multiprocessor CPU CPU Mälu CPU CPU CPU CPU CPU CPU Multiarvuti Multicomputer Mälu Mälu CPU CPU Message- passing interconnection network Mälu CPU CPU Mälu Mälu CPU CPU Mälu CPU CPU Mälu Mälu 9/22/2018 T. Evartson

63 9/22/2018 T. Evartson

64 Probleemid: 1. Mälu. 2. Paraleliseeritavus. 3. Energia tarve. 9/22/2018 T. Evartson

65 9/22/2018 T. Evartson

66 Message-Passing Multicomputers
MPPs - Massively Parallel Processors CPU CPU Mälu CPU CPU Mälu . . . . . . Disk I/O Disk I/O Communucation Processor Communucation Processor High-prformance interconnection network NOW - Network of Workstations COW - Cluster of Workstations Computer Computer Computer Packet Packet 9/22/2018 T. Evartson


Download ppt "Protsessori ja mälu osa andmetöötluses"

Similar presentations


Ads by Google