Download presentation
Presentation is loading. Please wait.
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
Similar presentations
© 2025 SlidePlayer.com. Inc.
All rights reserved.