630 likes | 912 Views
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.
E N D
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) T. Evartson
Kõrgtaseme keel-assembler-masinkood Kõrgtaseme keel 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 00110111001110 11000110010100 11110100000101 11110000011100 T. Evartson
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) T. Evartson
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 T. Evartson
Käsu register ja käsu dekodeerimine Käsuregister (IR) Käsukood Aadress/Operand Dekooder ADD OR MUL T. Evartson
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 T. Evartson
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) T. Evartson
Mälujaotus ilma siirdekäskude ja vahetute operandide, ning otsese adresseerimiseta Käsk1 Käsuloendur Käsk2 Käsk 3 Käsk4 Käsk 5 T. Evartson
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 Lippude register Aadressid Juhtimine Andmed T. Evartson
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 T. Evartson
PC M Käsukoodi laadimine (Instruction fetch) PC + 1 M IR Käsukoodi dekodeerimine . . . . . . . . . . . . Käsu täitmine (instruction execute) T. Evartson
Mälu jaotus siirdekäskudega programmiga Käsk1 Käsuloendur Käsk2Siirdekäsk (Branch) Järgmise käsu aadress Käsk3 Andmed Käsk1a Käsk2a T. Evartson
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 T. Evartson
PC M Käsukoodi laadimine (Instruction fetch) PC + 1 M IR Käsukoodi dekodeerimine Siirdekäsk . . . 1 Tingimus 0 . . . Käsu täitmine (instruction execute) PC M PC + 1 Uus PC T. Evartson
Mälu jaotus operandi otsese adresserimisega käsu koral Käsk1 Käsuloendur Käsk2 Operandi aadress Käsk3 Andmed Operand Käsk n T. Evartson
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 T. Evartson
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 . . . T. Evartson
Mälu jaotus vahetu operandiga käskude korral Käsk1 Käsuloendur Käsk2 Operand Käsk3 Käsk4 Käsk n T. Evartson
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 T. Evartson
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 . . . T. Evartson
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 T. Evartson
Jäiga loogikaga juhtautomaatHard Wired Juhtautomaat (CU) Milline käsk täidetakse Juhtsignaalid protsessori eri osadele Tagaiside protsessori eri osadest T. Evartson
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 T. Evartson
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 T. Evartson
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 T. Evartson
Tingimused {X} Käsuregister Aadressi generaator t Aadressi register Püsimälu (mikroprogrammi mälu) Järgmise sõna aadress Tingimuse valik Juhtsignaalid {Y} T. Evartson
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 T. Evartson
A:=E B:=E C:=E D:=E A 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 Laadida E E T. Evartson
C:=0 D:=0 1 B(0)=0 0 C:=C+A C:=R1(C) B:=R1(B) D:=D+1 D=4 0 1 T. Evartson
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 . . . T. Evartson
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 T. Evartson
RISC protsessori projekteerimise põhimõtted T. Evartson
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 T. Evartson
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 T. Evartson
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 T. Evartson
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 T. Evartson
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 T. Evartson
Laadimise käsu mõju konveierile Takt 1 Takt 2 Takt 3 Takt 4 Takt 5 Takt 6 Takt 7 Takt 8 Käsk IF OF OE OS 1 2 IF OF OE OS 3 IF OF OE OS Tühjad taktid 4 IF OF OE OS T. Evartson
Hargnemiste ennustamineI ( Branch Prediction) a Õ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 T. Evartson
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 b1 b2 T. Evartson
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. T. Evartson
Ennustuse bitid Ennustuse bitid Siirdekäsu aadress Siirdekäsu aadress Siirde aadress Kehtivuse bit Kehtivuse bit b1 b2 b1 b2 . . . . . . . . . T. Evartson
SISD - Single Instruction Single Data-stream Käsu taseme paralleelsusInstruction-Level Parallelism KonveierPipeline 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 T. Evartson