protsessori ja mälu osa andmetöötluses
DESCRIPTION
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. - PowerPoint PPT PresentationTRANSCRIPT
04/21/23 T. Evartson 1
Protsessor (CPU-Central Processing Unit)
Andmed &programm
CPU
Sisend
väljund
Andmed
Käsud
Mälu
Protsessori ja mälu osa andmetöötluses
ALURegistridRegisters
Juht automaatControl Unit
CPU
Mälu (Memory System)
KäsudInstructions
AndmedData
Sisend/väljund (Input/output)
Operatsioon automaat (Datapath)
04/21/23 T. Evartson 2
04/21/23 T. Evartson 3
Kõrgtaseme keelHigh-level language
If n<100 then a:= b else v[i]:=k[j-1]
end;
Assembler keelAssembly language
ADD a,b,cMOV d, MXOR c,d
MasinkoodBinary machinelanguage
00110111001110110001100101001111010000010111110000011100
Kõrgtaseme keel-assembler-masinkood
04/21/23 T. Evartson 4
Andmed &programm
Aadress
Andmed
Lug./kirj.
Mälu
Käsk 1
Käsk 2
Käsk 3
Andmed
Andmevahetus mäluga
Mälu
Mälu aadressiregister (MAR)
Mälu puhverregister (MBR)
Andmed
Aadress
Mälu aadressi ja andmete registrid
04/21/23 T. Evartson 5
Käsuloendur (PC)
Inc. (+1)
Mälu
Käsk 1
Käsk 2
Käsk 3
Andmed
Järjestikuste käskude lugemine käsuloenduri (PC) aadressi järgi
Aadress
Käsuloendur Program Countrer, Instruction Pointer
04/21/23 T. Evartson 6
Käsukood
Käsuregister (IR)
Dekooder
Aadress/Operand
OR ADD MUL
Käsu register ja käsu dekodeerimine
04/21/23 T. Evartson 7
Käsuloendur (PC)
Mälu
Mälu aadressiregister (MAR)
Mälu puhverregister (MBR)
Käsukood Aadress
Juht-automaat
(CU)
Käsu dekooder
Juhtsignaalid
Andmed
Aadressid
Käsu täitmise juhtimine
Inc. (+1)
IR
04/21/23 T. Evartson 8
Mälujaotus ilma siirdekäskude ja vahetute operandide, ning otsese adresseerimiseta
Käsk1
Käsk2
Käsk 3
Käsk4
Käsk 5
Käsuloendur
04/21/23 T. Evartson 9
Mälu
Mälu aadressiregister (MAR)
Mälu puhverregister (MBR)
Käsuregister(IR)
Käsukood Aadress
Juht-automaat
(CU)
Käsu dekooder
Juhtsignaalid
Andmeregistrid(registermälu)
ALU
Andmed Aadressid
Käsuloendur (PC)
Inc. (+1)
Lippude register
Protsesor ilma vahetute operandide ja siirde käskudeta
Juhtimine
04/21/23 T. Evartson 10
Käsukoodilaadimine
(Fetch)
Käsuloendurimodifitseerimine
PC: =PC +1Käsu täitmine
Käsukoodidekodeerimine
Käsu täitmise tsükkel ( von Neumanni tsükkel)Fetch – Decode – Execute Cycle
04/21/23 T. Evartson 11
PC M
Käsukoodi dekodeerimine
M IR
PC + 1
.
.
.
.
.
.
.
.
.
. . .
Käsukoodi laadimine(Instruction fetch)
Käsu täitmine(instruction execute)
04/21/23 T. Evartson 12
Käsk1
Käsk2 Siirdekäsk (Branch)
Järgmise käsu aadress
Käsk3
Andmed
Käsk1a
Käsk2a
Mälu jaotus siirdekäskudega programmiga
Käsuloendur
04/21/23 T. Evartson 13
Mälu
Mälu aadressiregister (MAR)
Mälu puhverregister (MBR)
Käsuregister(IR)
Käsukood Aadress
Juht-automaat
(CU)
Käsu dekooder
Juht-signaalid
Andmeregistrid(registérmälu)
ALU
Käsuloendur (PC)
Inc. (+1)
Lippude registerSiirde (Branch) tingimus
Järgmisekäsu aadress
Siirdekäsud protsessoris
04/21/23 T. Evartson 14
PC M
Käsukoodi dekodeerimine
M IR
PC + 1
.
.
.
PC M
. . .
Käsukoodi laadimine(Instruction fetch)
Käsu täitmine(instruction execute)Tingimus
Siirdekäsk
Uus PC
01
PC + 1
04/21/23 T. Evartson 15
Käsk1
Käsk2
Operandi aadress
Käsk3
Andmed
Operand
Käsk n
Mälu jaotus operandi otsese adresserimisega käsu koral
Käsuloendur
04/21/23 T. Evartson 16
Mälu
Mälu aadressiregister (MAR)
Mälu puhverregister (MBR)
Käsuregister(IR)
KäsukoodOperandiaadress
Juht-automaat
(CU)
Käsu dekooder
Juht-signaalid
Andmeregistrid(registérmälu)
ALU
Käsuloendur (PC)
Inc. (+1)
Lippude registerSiirde (Branch) tingimus
Operandiaadress
Käsukoodiga antakse koos operandi aadress
04/21/23 T. Evartson 17
PC M
Käsukoodi dekodeerimine
M IR
PC + 1
.
.
.
PC M
. . .
Käsukoodi laadimine(Instruction fetch)
Käsu täitmine(instruction execute)
Otsese adresseerimisegakäsk
M IR
PC + 1. . .
. . .
04/21/23 T. Evartson 18
Mälu jaotus vahetu operandiga käskude korral
Käsk1
Käsk2
Operand
Käsk3
Käsk4
Käsk n
Käsuloendur
04/21/23 T. Evartson 19
Mälu
Mälu aadressiregister (MAR)
Mälu puhverregister (MBR)
Käsuregister(IR)
KäsukoodOperand(Aadress)
Juht-automaat
(CU)
Käsu dekooder
Juht-signaalid
Andmeregistrid(registérmälu)
ALU
Käsuloendur (PC)
Inc. (+1)
Lippude registerSiirde (Branch) tingimus
Operand
Vahetu operandiga käsud
04/21/23 T. Evartson 20
PC M
Käsukoodi dekodeerimine
M IR
PC + 1
.
.
.
PC M
. . .
Käsukoodi laadimine(Instruction fetch)
Käsu täitmine(instruction execute)
Vahetu operandigakäsk
M IR
PC + 1. . .
. . .
04/21/23 T. Evartson 21
Operatsioonautomaat - vahetu andmete teisendaja (Data path)
Registermälu
ALU
Register 1
Register 2
Register 3
Register nOpe-rand 1
Ope-rand 2
Resultaat
Andmedmälust ja
I/O seadmetest
Lippude register (Flags)
Operatsioonautomaat
04/21/23 T. Evartson 22
Mälu
Mälu aadressiregister (MAR)
Mälu puhverregister (MBR)
Käsuregister(IR)
KäsukoodOperand(Aadress)
Juht-automaat
(CU)
Käsu dekooder
Juht-signaalid
Andmeregistrid(registérmälu)
ALU
Käsuloendur (PC)
Inc. (+1)
Lippude registerSiirde (Branch) tingimus
Järgmisekäsu aadress
Operand
Operandiaadress
Protsessori üldstruktuur
04/21/23 T. Evartson 23
04/21/23 T. Evartson 24
04/21/23 T. Evartson 25
Milline käsktäidetakse
Juhtsignaalidprotsessorieri osadele
Tagaiside protsessorieri osadest
Juhtautomaat (CU)
Jäiga loogikaga juhtautomaat Hard Wired
04/21/23 T. Evartson 26
Kombinarsioonskeemid (Combinational Circuits)
Boole`ifunktsioon
x 1
x 2
x n
y
y = f (x1,x2,… xn)
Teades sisendite loogilisi väärtusiantud ajahetkel saame vastava Boole`ifunktsiooni kaudu arvutada väljundiväärtuse. Puudub sõltuvus eelmistestsisendite väärtustest.
Järjestikskeemid (Sequential Circuits)
Boole`ifunktsioon +
olek
x 1
x 2
x n
y
Selleks, et määrata väljundi väärtust antud ajahetkel on vaja teada sisenditeväärtusi antud ajahetkel ja olekut mis sõltub eelmistest sisendite väärtustest.Taktsisendi t kaudu määratakse millal toimub üleminek ühest olekust teise.
tVäljund
funktsioon
Üleminekufunktsioon
Mälu
x 1
x ny
Vana olek
t
Uus olek
am as
04/21/23 T. Evartson 27
Yj=fv(as,Xi)
am=fü(as,Xi)
Mälu
t
Xi
Ergutusmis viibolekusse
am
Praeguseolekukood
as
Yj
Mealy automaadi struktuur
04/21/23 T. Evartson 28
Algus
Start
y1
x
Lõpp
y1, y3
y2
y2
0
0
1
1
a1
a1
a3
a2
a1
a1
a1
start/-
start/y1
x/y2
x/y1, y3
-/y2
04/21/23 T. Evartson 29
Yj=fv(as,Xi)
am=fü(as,Xi)
Mälu
t
Xi
Ergutusmis viibolekusse
am
Praeguseolekukood
as
Yj
Moore automaadi struktuur
04/21/23 T. Evartson 30
Algus
x
Lõpp
y1 y2
y1
01
a1
a2
a3a4
a1
a1-
a2y1
a3y2
a4y1
-
x
x
x
x
04/21/23 T. Evartson 31
Aadressi generaator
Aadressi register
Püsimälu(mikroprogrammi mälu)
Käsuregister
Tingimused {X}
Tingimusevalik
Järgmise sõnaaadress
Juhtsignaalid {Y}
t
04/21/23 T. Evartson 32
04/21/23 T. Evartson 33
04/21/23 T. Evartson 34
Algus
x
Lõpp
y2 y3
y1
01
a1
a2
a4a3
a1
a1-
a2y1
a3y2
a4y3
-
x
x
00
01
10
11
-
a11 a0
1 a12 a0
2 x` y1 y2 y3 Olek 0 0 0 1 - - 0 0 0 0 a1 0 1 1 1 1 0 1 1 0 0 a2 1 0 0 0 - - 0 0 1 0 a3 1 1 0 0 - - 0 0 0 1 a4
04/21/23 T. Evartson 35
s
0
1
s
0
1
&
x
y1
y2
y3
TT
cR
D
TT
cR
D
Aadress
a0
a1
tR
AadressA1
AadressA2
Väljundid{Y}
Tingimused{X}
Püsimälu
04/21/23 T. Evartson 36
Käsukood Käsuregister (IR)Aadress/Operand
Mikrokäsuloendur
INC.(+1)
Mikroprogrammi mälu(tavaliselt püsimälu)
Aadress
Andmed
Protsessorijuhtimine
Protsessorisseteistesse komponentidesse
Järgmisekäsuaadress
Laadi-mine/inc
Tingimusevalik
MUXTingimused protsessorist
CLK
Mikroprogrammeeritav juhtautomaat
04/21/23 T. Evartson 37
A
B
D
C
TMP2TMP1
ALULipud
V P
Y
TMP2:=BTMP2:=CTMP2:=D
TMP2:=ATMP1:=BTMP1:=CTMP1:=D
TMP1:=A
B:=EC:=ED:=E
A:=E
E Laadida E
LaadidaTMP2
LaadidaTMP1
{AND, OR, SHL1,SHR1, +, INC, DEC, ...}
04/21/23 T. Evartson 38
C:=0
D:=0
B:=R1(B)
B(0)=0
D:=D+1
01
C:=R1(C)
C:=C+A
D=40 1
04/21/23 T. Evartson 39
PC M
Käsukoodi dekodeerimine
M IR
PC + 1
.
.
.
TMP1:=ALaadida TMP1
. . .
Käsukoodi laadimine(Instruction fetch)
TMP2:=BLaadida TMP2
ADD A,B,C
ALU : liitmineLaadida E
C := E
ALU : const =0Laadida E
C:=E
MUL A,B,C
ALU : const =0Laadida E
D := E
04/21/23 T. Evartson 40
ISA (Instruction Set Architecture Level)
MikroprogrammMicroprogram control
Hardware
RISC - Reduced Instruction Set Computer
ISA (Instruction Set Architecture Level)
Hardware
CISC - Complex Instruction Set Computer
RISC ja CISC protsessorite erinevus
04/21/23 T. Evartson 41
04/21/23 T. Evartson 42
RISC protsessori projekteerimise põhimõtted
suhetliselt vähe käske (eelistatavalt alla 100) ja vältida
tuleb keerulisi käske vähe adresseerimise viise (eelistatavalt üks või kaks) vähe erinevaid käsu formaate (eelistatavalt üks või kaks),
et kiiredada dekodeerimist kõik käsud tuleb täita otse riistvaras ühe taktiga, ilma
mikroprogrammita maksimaalne käskude täitmise kiirus, mis viib
paralleelsuseni ainult LOAD ja STORE käsud pöörduvad mälu poole võimas register mälu (ulatudes32 kuni 132-ni), et
võimalikult palju oleks register-register tüüpi käske ja vähe pöördumisi mälu poole
jäiga loogikaga (hardwired) juhtautomaat, mis võib ka tehnoloogia arenedes asenduda mikroprogrammeeritavaga
efektiivne andmevahetus alamprogrammidega effektiivne käskude järjekorra juhtimine (siirded ja
alamprogrammid)
04/21/23 T. Evartson 43
04/21/23 T. Evartson 44
IF Instruction Fetch (Käsu laadimine)+Instruction DecodeOF Operand Fetch (Operandi laadimine)OE Operand Execute ( Operatsioni täitmine ALU-s)OS Operand Store ( Resutaadi salvestamine)
IF OF OE OS
IF OF OE OS
IF OF OE OS
IF OF OE OS
IF OF OE OS
Takt 1 Takt 8Takt 2 Takt 7Takt 3 Takt 6Takt 4 Takt 5Käsk
1
2
3
4
5
Konveieriga programmi täitmine (Pipeline)
Programmi täitmine ilma konveierita
IF OF OE OS IF OF OE OS IF
1. käsk 2. käsk
Konveier I Pipeline
04/21/23 T. Evartson 45
IFU IR
Reg.
ALU
A B
C
IFU IR
Reg.
ALU
A B
C
IFU IR
Reg.
ALU
A B
C
IFU IR
Reg.
ALU
A B
C
IFU IR
Reg.
ALU
A B
C
IFU IR
Reg.
ALU
A B
C
IFU IR
Reg.
ALU
A B
C
IFU IR
Reg.
ALU
A B
C
IFU IR
Reg.
ALU
A B
C
IFU IR
Reg.
ALU
A B
C
IFU IR
Reg.
ALU
A B
C
IFU IR
Reg.
ALU
A B
C
Käsk 1 Käsk 2 Käsk 3
Siirdekäsu mõju konveieri tööle
04/21/23 T. Evartson 46
IF OF OE OS
IF OF OE OS
IF OF OE OS
IF OF OE OS
IF OF OE OS
i-1
i
i+1
i+2
n
BRA to n
ń+1 IF OF OE OS
BUBBLE
Viivitusega siire programmis ( Delayed Branch)
04/21/23 T. Evartson 47
IF OF OE OS
IF OF OE OS
IF OF OE OS
IF OF OE OS
IF OF OE OS
i-1
i
i+1
i+2
n
BRA to n
ń+1 IF OF OE OS
Uue aadressi arvutamine toimub käsu täitmise ajal
Käsk täidetakse väljaspooljärekorda
04/21/23 T. Evartson 48
IFADD A,B,C
OFGet A,B
OEA + B
OSC:=A+B
IFSUB C,B,D
OFGet C,B
OEC - B
BUBBLE
Andmete edastus otse
IFADD A,B,C
OFGet A,B
OEA + B
OSC:=A+B
IFSUB C,B,D
OFGet C,B
OEC - B
C
OSD:=C-B
OSD:=C-B
Andmete sõltuvus ja konveier
04/21/23 T. Evartson 49
IF OF OE OS
IF OF OE OS
Takt 1
Takt 8
Takt 2
Takt 7
Takt 3
Takt 6
Takt 4
Takt 5Käsk
1
2
3
4
IF OF OE OS
IF OF OE OS
Tühjad taktid
Laadimise käsu mõju konveierile
04/21/23 T. Evartson 50
b
d
c
a
SiirdekäskBranch Inst.
Ei ole siirdekäsknot Branch Inst
Siire toimubBranch taken
ÕIGESiiret eeldati ja tuliPredict takenbranch taken
VALESiiret eeldati aga siiret ei tulnudPredict takenbranch not taken
VALESiiret ei eeldatud siire tuliPredict not takenbranch taken
ÕIGESiiret ei eeldatud ja ei tulnudPredict not takenbranch not taken
p b
1-p b
p t
p c
1-p t
1-p c
1-p c
p c
C ave = a(pt pc)+b(1-pt)(1-pc)++c pt(1-pc)+d(1-pt)pc
Hargnemiste ennustamine I ( Branch Prediction)
04/21/23 T. Evartson 51
Hargnemiste ennustamine II
Strateegiad :1. Fikseeritud hargnemiste ennustamine Fixed Branch Prediction2. Staatiline hargnemiste ennustamine Static Branch Prediction3. Dünaamiline hargnemiste ennustamine Dynamic Branch Prediction
00Ennustus:
hargnemist eitule
01Ennustus:
hargnemist eitule
11Ennustus:
hargnemine
10Ennustus:
hargnemine
Hargnemine
Hargnemine
Hargnemine
Hargnemist ei tulnud
Hargnemist ei tulnud
Hargnemist ei tulnud
Hargnemist ei tulnud
Hargnemine
b1 b2
Ennustus Hargnemine
04/21/23 T. Evartson 52
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 hargneminetoimub sina kuhu eelmisel korral. Ilma selle aadressita ei saaks käivitada konveierit sellest harust.
04/21/23 T. Evartson 53
Siirdekäsuaadress
Ennustuse bitid
b1 b2Kehtivuse
bit
.
.
.
Siirdekäsuaadress
Ennustuse bitid
b1 b2Kehtivuse
bit
.
.
.
.
.
.
Siirdeaadress
04/21/23 T. Evartson 54
Käsu taseme paralleelsus Instruction-Level Parallelism
Konveier Pipeline
S1Käsu
laadimine
S2Käsudeko-
deerimine
S3Operandidelaadimine
S4Käsu
täitmine
S5Resultadisalvesta-
mine
1
1
1
1
1
2
2
2
2
2
3
3
3
3
4
4
4
5
5S1
S3
S2
S5
S4
Aeg
SISD - Single Instruction Single Data-stream
04/21/23 T. Evartson 55
Protsessori töö kiirendamine
IF OF OE OS
IF OF OE OS
Takt 1
Takt 2
Takt 3
Takt 6
Takt 4
Takt 5Käsk
1
2
3IF OF OE OS
IF1
Takt 1
Takt 2
Takt 3
Takt 6
Takt 4
Takt 5Käsk
1
2
3
4
5
IF2
OF1
OF2
OE1
OE2
OS1
OS2
IF1
IF2
OF1
OF2
OE1
OE2
OS1
OS2
IF1
IF2
OF1
OF2
OE1
OE2
OS1
OS2
IF1
IF2
OF1
OF2
OE1
OE2
OS1
OS2
IF1
IF2
OF1
OF2
OE1
OE2
OS1
OS2
Super konveieriga protsessor. (Superpipelined Processor)
Väga pika käsuga arhitektuur. (Very Long Instruction Word Architecture -VLIW )
Protsessori töö kiirendamine
04/21/23 T. Evartson 56
Superskalaarne arhitektuur Superscalar Architestures.
Käsudeko-
deerimine
Operandidelaadimine
Käsutäitmine
Resultadisalvesta-
mineKäsu
laadimineKäsudeko-
deerimine
Operandidelaadimine
Käsutäitmine
Resultadisalvesta-
mine
Käsudeko-
deerimine
Operandidelaadimine
Operatsioontäisarvuga
Resultadisalvesta-
mine
Käsulaadimine
Operatsioontäisarvuga
Operatsioonujukomaarvuga
Operatsioonujukomaarvuga
Spekulatiivne täitmine. (Speculative Execution)
Data Speculation(Read-After-Write,Write-After-Read, Write-After-Write)
Control Speculation
04/21/23 T. Evartson 57
Protsessori töö kiirendamine
SIMD - Single Instruction Multiple Data-stream Architecture
x4 x1x2x3
y4 y1y2y3
x4 op y4 x1 op y1x2 op y2x3 op y3
op op op op
I
04/21/23 T. Evartson 58
Ps Ps
Pp
Pp
Pp
Pp
Pp
Pp Lõpp
f 1-f
Järjestikosa
Paralleliseeritavosa
T
f 1-f
.
.
.
fT (1-f)T/n
Üks CPUaktiivne
n CPU-daktiivsed
Kiirus
CPU-de arv
Paralleelarvutid Parallel Computer Architectures
04/21/23 T. Evartson 59
Arvutid
SISD
KonveierPipeline
Mitme ALU-ga
SuperscalarArchitecture
MISDSIMD MIMD
Vektorprotsessor
VectorProcessor
Maatriksprotsessor
ArrayProcessor
Konveierprotsessorid
Pipeline Processors
Multi-protsessor
Multiprocessors
MultiarvutiMulticomputers
UMAUniformMemory
Acess
Bus Switched
COMACashe Only
MemoryAcess
NUMANonUniform
MemoryAcess
MPPMassivelyParallel
Processors
NOWNetwork of
Worksations
CC-NUMA NC-NUMAVõrkGrid
HüperkuupHypercube
Shared memory Message passing
Klassifikatsioon (Flynn´s taxonomy)
04/21/23 T. Evartson 60
Protsessori tasandi parlleelsus Processor-Level ParallelismMaatriksprotsessor Array Processor
Mälu
Protsessor
JuhtautomaatControl Unit
Mälu
Protsessor
Mälu
Protsessor
Mälu
Protsessor
Mälu
Protsessor
Mälu
Protsessor
Mälu
Protsessor
Mälu
Protsessor
Mälu
Protsessor
Mälu
Protsessor
Mälu
Protsessor
Mälu
Protsessor
Mälu
Protsessor
Mälu
Protsessor
Mälu
Protsessor
Mälu
Protsessor
Vektorprotsessor Vector Processor
ALUALU
ALU
Sisendvektorid
Vektor ALU
SIMD - Single Instruction Multiple Data-stream
04/21/23 T. Evartson 61
MISD – Multi Instruction Single Data
Mälu
CU 1 CU 2 CU n...
Protsessor 1 Protsessor 1 Protsessor 1
Data
...
DataInstructions
04/21/23 T. Evartson 62
Multiprotsessor Multiprocessor
Mälu
CPU
CPU CPU
CPU
CPU CPU
CPU CPU
Multiarvuti Multicomputer
Message-passing
interconnectionnetwork
CPU
CPU CPU
CPU
CPU CPU
CPU CPU
Mälu
Mälu
Mälu Mälu
Mälu
Mälu
MäluMälu
Multiprotsessor- Multiarvuti MIMD- Multiple Instruction Multiple Data-stream
04/21/23 T. Evartson 63
04/21/23 T. Evartson 64
Probleemid:1. Mälu.2. Paraleliseeritavus.3. Energia tarve.
04/21/23 T. Evartson 65
Tuumade arv
Nimetus Näited
1 single-core 2 dual-core AMD
Phenom II X2, Intel Core Duo
3 tri-core 4 quad-core AMD
Phenom X4, Intel
Core i5 750,
760, 750s
5 penta-core 6 hexa-core AMD
Phenom X6, Intel
i7 Extreme Edition 980X
7 hepta-core 8 octa-core Intel
Xeon E7-2820,
AMD FX-8350
9 nona-core 10 deca-core Intel
Xeon E7-2850
12 dodeca-core
04/21/23 T. Evartson 66
MPPs - Massively Parallel Processors
CPU CPU. . . Mälu
DiskI/O
CommunucationProcessor
CPU CPU. . . Mälu
DiskI/O
CommunucationProcessor
High-prformance interconnection network
NOW - Network of WorkstationsCOW - Cluster of Workstations
ComputerComputer Computer
PacketPacket
Message-Passing Multicomputers