50
1 Doc. Stasys Maciulevičius Kompiuterių katedra [email protected] [email protected] t Kompiuterių architektūra ir operacinės sistemos

Doc. Stasys Maciulevičius Kompiuterių katedra [email protected] [email protected]

  • Upload
    metea

  • View
    90

  • Download
    5

Embed Size (px)

DESCRIPTION

Kompiuterių architektūra ir operacin ė s sistemos. Doc. Stasys Maciulevičius Kompiuterių katedra [email protected] [email protected]. Ant rosios paskaitos santrauka. Informacijos tipai kompiuter iuose P ozicinės skaičiavimo sistemos - PowerPoint PPT Presentation

Citation preview

Page 1: Doc.  Stasys Maciulevičius Kompiuterių katedra stasys@ecdl.lt  stasys.maciulevicius@ktu.lt

1

Doc. Stasys MaciulevičiusKompiuterių katedra

[email protected] [email protected]

Kompiuterių architektūra ir operacinės sistemos

Page 2: Doc.  Stasys Maciulevičius Kompiuterių katedra stasys@ecdl.lt  stasys.maciulevicius@ktu.lt

2009-2010 S.Maciulevičius 2

Antrosios paskaitos santrauka

• Informacijos tipai kompiuteriuose• Pozicinės skaičiavimo sistemos• Dvejetainiai, aštuonetainiai, šešioliktainiai sveikieji

skaičiai• Dvejetainės trupmenos• Neigiamų skaičių kodavimas • Sveikųjų skaičių sudėtis ir atimtis • Slankaus kablelio skaičiai • Dešimtainiai skaičiai• Simbolių kodavimas• Grafinės informacijos kodavimas

Page 3: Doc.  Stasys Maciulevičius Kompiuterių katedra stasys@ecdl.lt  stasys.maciulevicius@ktu.lt

2009-2010 S.Maciulevičius 3

Trečiosios paskaitos turinys

KOMANDŲ SISTEMA• komandų sistemos samprata• pagrindiniai komandų sistemų tipai• bendrosios paskirties registrų tipo architektūra• komandų formatai• operandų adresavimo būdai• komandų formatų pavyzdžiai• CISC ir RISCKOMANDŲ VYKDYMO KONVEJERIS• konvejerio esmė• kliūtys konvejeryje

Page 4: Doc.  Stasys Maciulevičius Kompiuterių katedra stasys@ecdl.lt  stasys.maciulevicius@ktu.lt

2009-2010 S.Maciulevičius 4

KOMANDŲ SISTEMA

Kompiuterių architektūra ir operacinės sistemos

Page 5: Doc.  Stasys Maciulevičius Kompiuterių katedra stasys@ecdl.lt  stasys.maciulevicius@ktu.lt

2009-2010 S.Maciulevičius 5

Komandų sistema

Skaičiavimams reikalingą operacijų rinkinį kompiuteryje realizuoja komandų sistema, kurioje vieną operaciją gali atitikti ir kelios komandos, besiskiriančios operandų tipais, adresacijos būdais ir pan. Komanda – informacinis žodis, nurodantis procesoriaus atliekamą operaciją ir jai reikalingus operandusDaugumos kompiuterių komandų sistemos apima tokias komandų grupes:

Page 6: Doc.  Stasys Maciulevičius Kompiuterių katedra stasys@ecdl.lt  stasys.maciulevicius@ktu.lt

2009-2010 S.Maciulevičius 6

Komandų sistema

• Aritmetinės ir loginės (sveikųjų skaičių: +. -, *, /; loginės: IR, ARBA)

• Duomenų persiuntimo (registrų įkrovimas, įrašymas į atmintį)

• Valdymo (perėjimai, procedūrų iškvietimas ir grįžimas, ciklai)

• Slankaus kablelio (slankaus kablelio skaičių: +. -, *, /)

• Dešimtainės (dešimtainių skaičių: +. -, *, /)• Eilučių apdorojimo (eilučių persiuntimas,

palyginimas, paieška)• Sisteminės (OS iškvietimas, virtualios atminties

valdymas)

Page 7: Doc.  Stasys Maciulevičius Kompiuterių katedra stasys@ecdl.lt  stasys.maciulevicius@ktu.lt

2009-2010 S.Maciulevičius 7

Operandų tipai ir dydis

Kadangi kompiuteriai apdoroja įvairių tipų duomenis (sveikuosius ir slankaus kablelio skaičius, dešimtainius skaičius, logines reikšmes ir simbolius), kaip nurodomas operando tipas?

Žinomi du būdai:1) duomenys yra palydimi požymių (vadinamų

tegais), kuriuos analizuoja procesorius; pagal jų reikšmes procesorius sužino, kokia operacija turi būti vykdoma (rečiau naudojamas);

2) operandų tipas užkoduojamas operacijos kode - dažniausiai naudojamas būdas.

Page 8: Doc.  Stasys Maciulevičius Kompiuterių katedra stasys@ecdl.lt  stasys.maciulevicius@ktu.lt

2009-2010 S.Maciulevičius 8

Pagrindiniai komandų sistemų tipai

Nagrinėjant komandų sistemas, galima išskirti 5 požymius,pagal kuriuos būtų galima jas klasifikuoti:

1) Operando saugojimas CPU: kur dar (be atminties) saugomi operandai?

2) Komandoje aiškiai nurodomų operandų skaičius.3) Operandų vieta: ar aritmetinių ir loginių komandų

operandai gali būti atmintyje, ar visi operandai turi būti CPU viduje (registruose)? Jei operandai yra atmintyje, tai kaip nurodoma jų vieta?

4) Operandų tipas ir dydis: kokie ir kaip jie nurodomi?

5) Operacijos: kokios operacijos įeina į komandų sistemą?

Page 9: Doc.  Stasys Maciulevičius Kompiuterių katedra stasys@ecdl.lt  stasys.maciulevicius@ktu.lt

2009-2010 S.Maciulevičius 9

Pagrindiniai komandų sistemų tipai

Vidinės CPU atminties tipas yra pagrindinis skiriamasis požymis. Čia yra 3 alternatyvos:

1) stekas,2) akumuliatorius,3) registrų grupė.

Stekas – specialiai suprojektuota atmintis, į kurią informacija įrašoma nuosekliai, iš jos informacija perskaitoma taip pat tik nuosekliai. Informacijos vietą steke rodo steko rodyklė (stack pointer)

Page 10: Doc.  Stasys Maciulevičius Kompiuterių katedra stasys@ecdl.lt  stasys.maciulevicius@ktu.lt

2009-2010 S.Maciulevičius 10

Steko tipo architektūra

Stekas: operandai saugomi steke, rezultatas - taip pat, operandų išrinkimas ir įrašymas - procedūros push, pop. Pavyzdys: B5500

SR – steko rodyklėALU – aritmetinis-loginis įtaisas (Arithmetic-Logic Unit)

Procesorius

SR

SR

ALU

Atmintis

Procesorius

StekasSR

ALU

Atmintis

pus

h po

p

Page 11: Doc.  Stasys Maciulevičius Kompiuterių katedra stasys@ecdl.lt  stasys.maciulevicius@ktu.lt

2009-2010 S.Maciulevičius 11

Pagrindiniai komandų sistemų tipai

Akumuliatorius: vienas iš operandų saugomas akumuliatoriuje, rezultatas - taip pat, operandų išrinkimas ir įrašymas - load, store. Pavyzdžiai: PDP-8, Motorola 6809

Registrų grupė: operandai saugomi registruose, rezultatas - taip pat, operandų išrinkimas ir įrašymas - load, store. Pavyzdžiai: IBM 370, DEC VAX, PowerPC.

Page 12: Doc.  Stasys Maciulevičius Kompiuterių katedra stasys@ecdl.lt  stasys.maciulevicius@ktu.lt

2009-2010 S.Maciulevičius 12

Akumuliatoriaus tipo architektūra

Akumuliatorius: specialus registras (kaupiantysis registras), į kurį informacija įrašoma prieš operaciją; iš jo rezultatai grąžinami į atmintį.

AC – akumuliatoriusALU – aritmetinis-loginis įtaisas (Arithmetic-Logic Unit)

Procesorius

SR

SR

ALU

Atmintis

Procesorius

AC

ALU

Atmintis

loa

d sto

re

Page 13: Doc.  Stasys Maciulevičius Kompiuterių katedra stasys@ecdl.lt  stasys.maciulevicius@ktu.lt

2009-2010 S.Maciulevičius 13

Reg-Atm tipo architektūra

Registrų failas: 8-16-32-… registrų grupė procesoriuje, į kuriuos vienas iš operandų įrašomas prieš operaciją;

Ri, Rk – registraiALU – aritmetinis-loginis įtaisas (Arithmetic-Logic Unit)

Procesorius

SR

SR

ALU

Atmintis

Procesorius

Ri

ALU

Atmintis

Rk

loa

d sto

re

Page 14: Doc.  Stasys Maciulevičius Kompiuterių katedra stasys@ecdl.lt  stasys.maciulevicius@ktu.lt

2009-2010 S.Maciulevičius 14

load-store tipo architektūra

Registrų failas: 8-16-32-… registrų grupė procesoriuje, į kuriuos abu operandai įrašomi prieš operaciją;

Ri, Rj, Rk – registraiALU – aritmetinis-loginis įtaisas (Arithmetic-Logic Unit)

Procesorius

SR

SR

ALU

Atmintis

Procesorius

Ri

ALU

Atmintis

Rj

Rk

loa

d sto

re

Page 15: Doc.  Stasys Maciulevičius Kompiuterių katedra stasys@ecdl.lt  stasys.maciulevicius@ktu.lt

2009-2010 S.Maciulevičius 15

Pagrindiniai komandų sistemų tipai

Operatorius C := A + B šiose keturiose klasėse realizuojamas tokiomis komandų sekomis:

Steko Akumuliatoriaus Reg-Atm load-storePUSH A LOAD A LOAD R1, A LOAD R1, APUSH B ADD B ADD R3, R1, B LOAD R2, BADD STORE C STORE C, R3 ADD R3,R1,R2POP C STORE C, R3

Čia vienos ar kitos architektūros pranašumai nėra akivaizdūs. Išraiškai A*B + B*C - A*D paskaičiuoti juos jau pastebėtume

Page 16: Doc.  Stasys Maciulevičius Kompiuterių katedra stasys@ecdl.lt  stasys.maciulevicius@ktu.lt

2009-2010 S.Maciulevičius 16

Bendrosios paskirties registrų tipo architektūra

Pastaruoju metu vyrauja bendrosios paskirties registrų tipo architektūra. Tai paaiškinama tuo, kad:

1) registrai, kaip ir kiti CPU mazgai, greitesni, nei atmintis;2) kompiliatoriai juos panaudoja kodo generavimui

efektyviau, nei kitas vidines CPU atminties formas (pvz., steką);

3) saugant operandus ir tarpinius rezultatus registruose, sumažėja kreipinių į atmintį skaičius, tuo atlaisvinant ją kitiems tikslams (pvz., įvedimui ar išvedimui);

4) generuojamas kompaktiškesnis kodas, nes registrams nurodyti reikia mažiau vietos.

Page 17: Doc.  Stasys Maciulevičius Kompiuterių katedra stasys@ecdl.lt  stasys.maciulevicius@ktu.lt

2009-2010 S.Maciulevičius 17

Bendrosios paskirties registrų tipo architektūra

Kiek gi registrų turėtų būti procesoriuje? Atsakymas priklauso nuo to, kaip juos panaudoja

kompiliatorius. Dauguma kompiliatorių dalį registrų rezervuoja išraiškoms skaičiuoti, kai kuriuos naudoja parametrams perduoti, o likusius - kintamiesiems saugoti

Kiek gi registrų yra žinomuose procesoriuose?• x86 procesoriuose - 8• IBM/360 sistemos procesoriuose - 16• RISC procesoriuose - 32• IA-64 procesoriuose - 128

Page 18: Doc.  Stasys Maciulevičius Kompiuterių katedra stasys@ecdl.lt  stasys.maciulevicius@ktu.lt

2009-2010 S.Maciulevičius 18

Komandų formatai

Aukščiau pateiktuose pavyzdžiuose sutikome tokias procesorių komandas:

• LOAD A • LOAD R1, A• ADD• ADD B • ADD R3, R1, B• ADD R3, R1, R2

Kaip matome, visose pirmojoje pozicijoje yra operacijos pavadinimas (LOAD – įkrovimas, ADD – sudėtis), o po jos – operandų nuorodos, kurių skaičius pateiktuose pavyzdžiuose įvairus – nuo 0 iki 3.

Page 19: Doc.  Stasys Maciulevičius Kompiuterių katedra stasys@ecdl.lt  stasys.maciulevicius@ktu.lt

2009-2010 S.Maciulevičius 19

Komandų formatai

Bendruoju atveju procesoriaus komandų formatą galima būtų pavaizduoti taip:

OpK Op1 Op2 … Opn

Čia:OpK – operacijos kodo laukas,Op1, …, Opn – operandų nuorodos

Nuorodų skaičius priklauso nuo konkretaus atvejo ir gali būti lygus 0, 1, 2 ir t.t.

Page 20: Doc.  Stasys Maciulevičius Kompiuterių katedra stasys@ecdl.lt  stasys.maciulevicius@ktu.lt

2009-2010 S.Maciulevičius 20

Operandų nuorodos

Operando nuorodos pavidalas priklauso nuo to, koks yra operandas, kur jis saugomas. Operandu gali būti:

• kurio nors registro turinys,• atminties ląstelės turinys,• konstanta,• adresas,• sąlyga.

Nuo to priklauso operando nuorodai skirto lauko ilgis.

registras ar ląstelė,nurodomi adresu

Page 21: Doc.  Stasys Maciulevičius Kompiuterių katedra stasys@ecdl.lt  stasys.maciulevicius@ktu.lt

2009-2010 S.Maciulevičius 21

Operandų adresavimo būdai

Operandų vietai nurodyti kompiuteriuose naudojama daug įvairių adresavimo būdų, kurie tinka vienai ar kitai situacijai. Aprašydami juos, pateiksime ir pavyzdžius, iliustruojančius operando išrinkimą. M[A] žymės atminties ląstelę, kurios adresas A.

1. Registrinė adresacija - operandas yra registre, kurio numeris nurodytas komandoje, pavyzdžiui:

Add R4, R1 R4 := R4 + R1

Page 22: Doc.  Stasys Maciulevičius Kompiuterių katedra stasys@ecdl.lt  stasys.maciulevicius@ktu.lt

2009-2010 S.Maciulevičius 22

Operandų adresavimo būdai

2. Netiesioginė registrinė - operando adresas yra registre, kurio numeris nurodytas komandoje, pavyzdžiui:

Add R4, (R1) R4 := R4 + M[R1]

3. Santykinė (bazinė arba su poslinkiu) - operando adresas paskaičiuojamas prie registro turinio pridedant nurodytą poslinkio reikšmę; tinka lokaliniams kintamiesiems pasiekti. Pavyzdžiui:

Add R4, 9(R1) R4 := R4 + M[R1+9]

Page 23: Doc.  Stasys Maciulevičius Kompiuterių katedra stasys@ecdl.lt  stasys.maciulevicius@ktu.lt

2009-2010 S.Maciulevičius 23

Operandų adresavimo būdai

4. Indeksinė - operando adresas paskaičiuojamas

sumuojant bazės ir indekso registrų turinius; tinka masyvo

elementams išrinkti (R1 - masyvo bazinis adresas, R2 -

indekso reikšmė). Pavyzdžiui:

Add R4, (R1+R2) R4 := R4 + M [R1 + R2]

4a. Indeksinė masteliuоta - nuo indeksinės skiriasi tik tuo,

kad indekso reikšmė padauginama iš koeficiento,

atitinkančio duomenų elemento ilgį (m). Pavyzdžiui:

Add R4, 8(R1) [R2] R4 := R4 + M[8 + R1 + R2*m]

Page 24: Doc.  Stasys Maciulevičius Kompiuterių katedra stasys@ecdl.lt  stasys.maciulevicius@ktu.lt

2009-2010 S.Maciulevičius 24

Operandų adresavimo būdai

5. Tiesioginė arba absoliutinė - adreso reikšmė (pilna ar jo dalis) nurodoma komandoje; tinka statiniams duomenims nurodyti. Pavyzdžiui:

Add R4, (704) R4 := R4 + M[704]

6. Betarpiškoji - operandas yra komandos formato dalis. Tai gali būti interpretuojama, kaip adreso nuoroda yra komandų skaitiklyje. Pavyzdžiui:

Add R4, #7 R4:= R4 + 7

Page 25: Doc.  Stasys Maciulevičius Kompiuterių katedra stasys@ecdl.lt  stasys.maciulevicius@ktu.lt

2009-2010 S.Maciulevičius 25

Operandų adresavimo būdai

7a. Autoinkrementinė - operando adresas yra registre, kurio turinys automatiškai didinamas, pvz.:

Add R4, (R1)+ R4 := R4 + M[R1]

R1 := R1 + d

7b. Autodekrementinė - operando adresas yra registre, kurio turinys automatiškai didinamas, pvz.:Add R4, -(R1) R1 := R1 - d

R4 := R4 + M[R1]

Patogu apdorojant masyvus. Pradžios adresas įrašomas į lauke R1 nurodytą registrą

Page 26: Doc.  Stasys Maciulevičius Kompiuterių katedra stasys@ecdl.lt  stasys.maciulevicius@ktu.lt

2009-2010 S.Maciulevičius 26

Komandų adresavimo būdai

Perėjimo komandos leidžia pakeisti komandų vykdymo tvarką. Jose paskesnės (“sekančios”) komandos adresui nurodyti naudojami du būdai: 1. Tiesioginė adresacija - komandoje nurodomas paskesnės komandos adresas, pavyzdžiui:

Jmp Adr PC := Adr

2. Santykinė adresacija - komandoje nurodomas poslinkis, kurį reikia pridėti prie programos skaitiklio turinio, pavyzdžiui:Jmp Posl PC := PC + Posl

Page 27: Doc.  Stasys Maciulevičius Kompiuterių katedra stasys@ecdl.lt  stasys.maciulevicius@ktu.lt

2009-2010 S.Maciulevičius 27

IBM/360 komandų formatai

Kai kurie IBM/360 šeimos kompiuterių komandų formatai:

RR OpK R1 R28 bitai 4 bitai 4

bitai

RS OpK R3 R1 B2 D28 bitai 4 bitai 4

bitai4

bitai12 bitų

RX OpK R1 X2 B2 D28 bitai 4 bitai 4

bitai4

bitai12 bitų

Page 28: Doc.  Stasys Maciulevičius Kompiuterių katedra stasys@ecdl.lt  stasys.maciulevicius@ktu.lt

2009-2010 S.Maciulevičius 28

IBM/360 komandų pavyzdžiai

IBM/360 šeimos kompiuterių sudėties komandų variantai:

RR 0001 1010 0101 1001

RX 0101 1010 0100 0001 0010 0000 0000 1000

AR 5, 9

A 4, 8(1,2)

Page 29: Doc.  Stasys Maciulevičius Kompiuterių katedra stasys@ecdl.lt  stasys.maciulevicius@ktu.lt

2009-2010 S.Maciulevičius 29

Intel komandų formatai

Intel šeimos procesorių komandų formatai:

Dalys Prefix OpK Mode SIB Displ Immed

8088 0-3 1 0-1 0 0-2 0-2

80286 0-3 1 0-1 0 0-2 0-2

80386 0-5 1-2 0-1 0-1 0-4 0-4

Kaip matome, 8088 ir 80286 formatai panašūs, o 80386 - jau skiriasi:a) čia į kai kurias komandas įvestas SIB (Scale, Index, Base) baitas, specifikuojantis indeksaciją;b) kai kurie laukai gali būti ilgesni.

Page 30: Doc.  Stasys Maciulevičius Kompiuterių katedra stasys@ecdl.lt  stasys.maciulevicius@ktu.lt

2009-2010 S.Maciulevičius 30

x86 adresų skaičiavimo schema

ATM

FA (fizinis adresas)

LA (loginis adresas)

Indekso registras

Bazės registras

SelektoriusSelektorius

SelektoriusSelektorius

SelektoriusSelektorius

CSESDS

FSGS

SS

Išrink. teisė SSRibaBazės adresas

Išrink. teisė GSRibaBazės adresas

Išrink. teisė FSRibaBazės adresas

Išrink. teisė ESRibaBazės adresas

Išrink. teisė DSRibaBazės adresas

Segmentų registrai

Segmentų deskriptoriai

Išrink. teisė CSRibaBazės adresas

Objekto vieta

Mastelis (1,2,4,8)

+

+ Poslinkis (komandoje)

+

Segmento riba

Segmento pradžia

Page 31: Doc.  Stasys Maciulevičius Kompiuterių katedra stasys@ecdl.lt  stasys.maciulevicius@ktu.lt

2009-2010 S.Maciulevičius 31

CISC ir RISC

CISC - Complex Instruction Set Computing - sudėtinga komandų sistema

RISC - Reduced Instruction Set Computing - supaprastinta komandų sistema

Kodėl CISC? Prielaidos:• turtingesnė sistema - trumpesnė programa (pvz.,

8080 - nėra daugybos)• turtingesnė sistema - lengviau sukurti

kompiliatoriųPasekmė - kuriami kompiuteriai, orientuoti aukšto

lygmens programavimo kalboms palaikyti

Page 32: Doc.  Stasys Maciulevičius Kompiuterių katedra stasys@ecdl.lt  stasys.maciulevicius@ktu.lt

2009-2010 S.Maciulevičius 32

CISC ir RISC

Ką parodė praktika?• sunku pasiekti komandų visišką atitikimą

ALPK operatoriams• CISC atveju sunkiau optimizuoti kodą,

užtikrinti efektyvų konvejerio darbą• kompiliatoriaus sugeneruotame kode

panaudojama tik dalis komandų• programos ilgis (komandų skaičius)

svyruoja nedaug – 10-20 %

Page 33: Doc.  Stasys Maciulevičius Kompiuterių katedra stasys@ecdl.lt  stasys.maciulevicius@ktu.lt

2009-2010 S.Maciulevičius 33

CISC ir RISC

Kodėl RISC?• trumpos komandos (dauguma įvykdomos

per 1 ciklą)• registras-registras tipo komandos

(load/store architektūra)• paprastesni adresavimo būdai• paprastesni komandų formatai• efektyvūs kompiliatoriai• efektyvus konvejerizavimas

Page 34: Doc.  Stasys Maciulevičius Kompiuterių katedra stasys@ecdl.lt  stasys.maciulevicius@ktu.lt

2009-2010 S.Maciulevičius 34

CISC ir RISC architektūrų palyginimas

CISC RISC

Parametras IBM 370/168

VAX 11/780

Intel 80486

SPARC MIPS R4000

Sukurta 1973 1978 1989 1987 1991

Komandų sk. 208 303 235 69 94

Komandos ilg. 2-6 2-57 1-11 4 4

Adresav. būdų 4 22 11 1 1

Registrų sk. 16 16 8 40-520 32

Page 35: Doc.  Stasys Maciulevičius Kompiuterių katedra stasys@ecdl.lt  stasys.maciulevicius@ktu.lt

2009-2010 S.Maciulevičius 35

RISC: PowerPC

PowerPC :• 3 operaciniai įtaisai• 32 bendrosios paskirties registrai• 32 bitų komandos; jų formatų pavyzdžiai:

OpK D/S A immediate

OpK D/S A B OpK RC

0 5 6 10 11 15 16 20 21 31

OpK D/S A B C OpK RC

RC=1 – požymių reikšmės įrašomos į požymių registrą,RC=0 – ne

Page 36: Doc.  Stasys Maciulevičius Kompiuterių katedra stasys@ecdl.lt  stasys.maciulevicius@ktu.lt

2009-2010 S.Maciulevičius 36

KONVEJERIS

Kompiuterių architektūra ir operacinės sistemos

Page 37: Doc.  Stasys Maciulevičius Kompiuterių katedra stasys@ecdl.lt  stasys.maciulevicius@ktu.lt

2009-2010 S.Maciulevičius 37

Komandos vykdymo spartinimas

Komandos vykdymo procesą galima paspartinti:

Komandos išrinkimas

Operacijos vykdymas

Komanda Komanda Rezultatai

Komandos išrinkimas

Komanda Komanda RezultataiOperacijos vykdymas

LauktiNaujas adresas

Atmesti

Tiksliau:Laukti

Page 38: Doc.  Stasys Maciulevičius Kompiuterių katedra stasys@ecdl.lt  stasys.maciulevicius@ktu.lt

2009-2010 S.Maciulevičius 38

Komandos vykdymas

Kompiuteryje vykdomi procesai - tai mašinos komandų sekos I1, I2, I3, ... , In. Kiekvieną komandą Ii logiškai sudaro kelios

fazės, kurias, pavyzdžiui, galima nusakyti taip:– F - komandos išrinkimas,– D - komandos dekodavimas,– O - operandų išrinkimas,– X - operacijos vykdymas,– W - rezultato įrašymas.

Toks komandos suskirstymas į fazes nėra vienintelis.

Page 39: Doc.  Stasys Maciulevičius Kompiuterių katedra stasys@ecdl.lt  stasys.maciulevicius@ktu.lt

2009-2010 S.Maciulevičius 39

Konvejeris

Esant nuosekliam komandų vykdymui, (i+1)-ji komanda pradedama

vykdyti tik po to, kai baigiama vykdyti i-ji komanda:

Apie etapų trukmę

F D O X W

F D O X W

F D

Page 40: Doc.  Stasys Maciulevičius Kompiuterių katedra stasys@ecdl.lt  stasys.maciulevicius@ktu.lt

2009-2010 S.Maciulevičius 40

Konvejeris

Konvejerizuotam komandų vykdymui reikia, kad konvejeris dirbtų

ritmingai:

F D O X W

F D O X W

Etapo (fazės) trukmė: tF tD tO tX tW

= max(tF, tD , tO, tX , tW) ?

Page 41: Doc.  Stasys Maciulevičius Kompiuterių katedra stasys@ecdl.lt  stasys.maciulevicius@ktu.lt

2009-2010 S.Maciulevičius 41

Konvejeris

Tuomet (i+1)-ji komandapradedama vykdyti vienu etapu vėliau, nei i-ji komanda: i) i+1)

i+2)

i+3)

F D O X W

F D O X W

F D O X W

F D O X W

Page 42: Doc.  Stasys Maciulevičius Kompiuterių katedra stasys@ecdl.lt  stasys.maciulevicius@ktu.lt

2009-2010 S.Maciulevičius 42

PowerPC komandos vykdymas

Konvejeriai: Iš vidinės spartinančiosios atminties

IQ-7IQ-6IQ-5IQ-4IQ-3IQ-2IQ-1

IQ-0 (IU dekod.)

IU buferis

IU vykdymas

Įrašymas

FPU buferisFPU dekodavimas

FPU vykdymas 1

FPU vykdymas 2

Įrašymas

BPU dekodavimas/ vykdymas

Įrašymas

Load/Store

Page 43: Doc.  Stasys Maciulevičius Kompiuterių katedra stasys@ecdl.lt  stasys.maciulevicius@ktu.lt

2009-2010 S.Maciulevičius 43

Duomenų kliūtys

add r1, r2, r3 ; r1 := r2 + r3

sub r4, r1, r5 ; r4 := r1 – r5

ld r1, a ; r1 := ATM[a]

add r4, r1, r5 ; r4 := r1 + r5

F D O X W: r1

F D O: r1 X W

Page 44: Doc.  Stasys Maciulevičius Kompiuterių katedra stasys@ecdl.lt  stasys.maciulevicius@ktu.lt

2009-2010 S.Maciulevičius 44

Duomenų kliūtys

Galimos išeitys:• programinės:

– įterpti NOOP

– pakeisti komandų eilės tvarką

• aparatinės:– blokuoti konvejerio darbą

– pridėti papildomas duomenų linijas – apylankas

F D O X W: r1

F D O: r1 X

Page 45: Doc.  Stasys Maciulevičius Kompiuterių katedra stasys@ecdl.lt  stasys.maciulevicius@ktu.lt

2009-2010 S.Maciulevičius 45

Duomenų kliūtys

ApylankosDuomenų magistralė

Pagrindinė atmintis

Registrų failas

Mux Mux

Rezultato buferis

ALU

Apylanka duomenų įkrovimui Apylank

a rezultatui

Page 46: Doc.  Stasys Maciulevičius Kompiuterių katedra stasys@ecdl.lt  stasys.maciulevicius@ktu.lt

2009-2010 S.Maciulevičius 46

Valdymo kliūtys

Sąlyginiai ir besąlyginiai perėjimai

branch

Atpažinus branch, konvejeris blokuojamas.

F D O X:PC W

F BLOK X W

X W

F D O: r1

F D

F D O: r1 X W

F D O: r1 X

BLOK

BLOK BLOK

BLOK BLOK

BLOK BLOK

i+1

i+2

i+3

i+4

BLOK

BLOK

BLOK

Page 47: Doc.  Stasys Maciulevičius Kompiuterių katedra stasys@ecdl.lt  stasys.maciulevicius@ktu.lt

2009-2010 S.Maciulevičius 47

Valdymo kliūtys

Ką daryti, kad sumažinti

galimus laiko nuostolius?• anksčiau išsiaiškinti, ar bus perėjimas• anksčiau paskaičiuoti naują PC reikšmę

Priemonės perėjimo vėlinimui sumažinti:• Prognozuojama, kad perėjimo nebus• Komandų eilės tvarkos pakeitimas.

Page 48: Doc.  Stasys Maciulevičius Kompiuterių katedra stasys@ecdl.lt  stasys.maciulevicius@ktu.lt

2009-2010 S.Maciulevičius 48

Superkonvejeris

Konvejerio ritmą galima pasiektiir kitaip:

F D O X WEtapo (fazės) trukmė: tF tD tO tX tW

= max(tX/2, tD)

F1 D O X1 W1F2 X2 W2

Page 49: Doc.  Stasys Maciulevičius Kompiuterių katedra stasys@ecdl.lt  stasys.maciulevicius@ktu.lt

2009-2010 S.Maciulevičius 49

Superkonvejeris

Tokio superkonvejerio darbas:

F1 D O X1 W1F2 X2 W2

F1 D O X1 W1F2 X2 W2

F1 D O X1 W1F2 X2 W2

F1 D O X1 W1F2 X2 W2

F1 D O X1 W1F2 X2 W2

F1 D O X1 W1F2 X2 W2

Page 50: Doc.  Stasys Maciulevičius Kompiuterių katedra stasys@ecdl.lt  stasys.maciulevicius@ktu.lt

2009-2010 S.Maciulevičius 50

Kitą kartą

PROCESORIUS• programos rengimas ir vykdymas• procesoriaus struktūra• procesorių vystymasis

PROCESORIAUS NAŠUMAS• bendrosios procesorių našumo

didinimo priemonės