doc. stasys maciulevičius kompiuterių katedra [email protected] [email protected]
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 PresentationTRANSCRIPT
![Page 1: Doc. Stasys Maciulevičius Kompiuterių katedra stasys@ecdl.lt stasys.maciulevicius@ktu.lt](https://reader030.vdocuments.pub/reader030/viewer/2022012900/5681472e550346895db46a9f/html5/thumbnails/1.jpg)
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](https://reader030.vdocuments.pub/reader030/viewer/2022012900/5681472e550346895db46a9f/html5/thumbnails/2.jpg)
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](https://reader030.vdocuments.pub/reader030/viewer/2022012900/5681472e550346895db46a9f/html5/thumbnails/3.jpg)
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](https://reader030.vdocuments.pub/reader030/viewer/2022012900/5681472e550346895db46a9f/html5/thumbnails/4.jpg)
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](https://reader030.vdocuments.pub/reader030/viewer/2022012900/5681472e550346895db46a9f/html5/thumbnails/5.jpg)
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](https://reader030.vdocuments.pub/reader030/viewer/2022012900/5681472e550346895db46a9f/html5/thumbnails/6.jpg)
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](https://reader030.vdocuments.pub/reader030/viewer/2022012900/5681472e550346895db46a9f/html5/thumbnails/7.jpg)
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](https://reader030.vdocuments.pub/reader030/viewer/2022012900/5681472e550346895db46a9f/html5/thumbnails/8.jpg)
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](https://reader030.vdocuments.pub/reader030/viewer/2022012900/5681472e550346895db46a9f/html5/thumbnails/9.jpg)
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](https://reader030.vdocuments.pub/reader030/viewer/2022012900/5681472e550346895db46a9f/html5/thumbnails/10.jpg)
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](https://reader030.vdocuments.pub/reader030/viewer/2022012900/5681472e550346895db46a9f/html5/thumbnails/11.jpg)
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](https://reader030.vdocuments.pub/reader030/viewer/2022012900/5681472e550346895db46a9f/html5/thumbnails/12.jpg)
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](https://reader030.vdocuments.pub/reader030/viewer/2022012900/5681472e550346895db46a9f/html5/thumbnails/13.jpg)
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](https://reader030.vdocuments.pub/reader030/viewer/2022012900/5681472e550346895db46a9f/html5/thumbnails/14.jpg)
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](https://reader030.vdocuments.pub/reader030/viewer/2022012900/5681472e550346895db46a9f/html5/thumbnails/15.jpg)
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](https://reader030.vdocuments.pub/reader030/viewer/2022012900/5681472e550346895db46a9f/html5/thumbnails/16.jpg)
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](https://reader030.vdocuments.pub/reader030/viewer/2022012900/5681472e550346895db46a9f/html5/thumbnails/17.jpg)
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](https://reader030.vdocuments.pub/reader030/viewer/2022012900/5681472e550346895db46a9f/html5/thumbnails/18.jpg)
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](https://reader030.vdocuments.pub/reader030/viewer/2022012900/5681472e550346895db46a9f/html5/thumbnails/19.jpg)
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](https://reader030.vdocuments.pub/reader030/viewer/2022012900/5681472e550346895db46a9f/html5/thumbnails/20.jpg)
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](https://reader030.vdocuments.pub/reader030/viewer/2022012900/5681472e550346895db46a9f/html5/thumbnails/21.jpg)
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](https://reader030.vdocuments.pub/reader030/viewer/2022012900/5681472e550346895db46a9f/html5/thumbnails/22.jpg)
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](https://reader030.vdocuments.pub/reader030/viewer/2022012900/5681472e550346895db46a9f/html5/thumbnails/23.jpg)
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](https://reader030.vdocuments.pub/reader030/viewer/2022012900/5681472e550346895db46a9f/html5/thumbnails/24.jpg)
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](https://reader030.vdocuments.pub/reader030/viewer/2022012900/5681472e550346895db46a9f/html5/thumbnails/25.jpg)
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](https://reader030.vdocuments.pub/reader030/viewer/2022012900/5681472e550346895db46a9f/html5/thumbnails/26.jpg)
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](https://reader030.vdocuments.pub/reader030/viewer/2022012900/5681472e550346895db46a9f/html5/thumbnails/27.jpg)
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](https://reader030.vdocuments.pub/reader030/viewer/2022012900/5681472e550346895db46a9f/html5/thumbnails/28.jpg)
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](https://reader030.vdocuments.pub/reader030/viewer/2022012900/5681472e550346895db46a9f/html5/thumbnails/29.jpg)
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](https://reader030.vdocuments.pub/reader030/viewer/2022012900/5681472e550346895db46a9f/html5/thumbnails/30.jpg)
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](https://reader030.vdocuments.pub/reader030/viewer/2022012900/5681472e550346895db46a9f/html5/thumbnails/31.jpg)
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](https://reader030.vdocuments.pub/reader030/viewer/2022012900/5681472e550346895db46a9f/html5/thumbnails/32.jpg)
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](https://reader030.vdocuments.pub/reader030/viewer/2022012900/5681472e550346895db46a9f/html5/thumbnails/33.jpg)
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](https://reader030.vdocuments.pub/reader030/viewer/2022012900/5681472e550346895db46a9f/html5/thumbnails/34.jpg)
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](https://reader030.vdocuments.pub/reader030/viewer/2022012900/5681472e550346895db46a9f/html5/thumbnails/35.jpg)
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](https://reader030.vdocuments.pub/reader030/viewer/2022012900/5681472e550346895db46a9f/html5/thumbnails/36.jpg)
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](https://reader030.vdocuments.pub/reader030/viewer/2022012900/5681472e550346895db46a9f/html5/thumbnails/37.jpg)
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](https://reader030.vdocuments.pub/reader030/viewer/2022012900/5681472e550346895db46a9f/html5/thumbnails/38.jpg)
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](https://reader030.vdocuments.pub/reader030/viewer/2022012900/5681472e550346895db46a9f/html5/thumbnails/39.jpg)
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](https://reader030.vdocuments.pub/reader030/viewer/2022012900/5681472e550346895db46a9f/html5/thumbnails/40.jpg)
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](https://reader030.vdocuments.pub/reader030/viewer/2022012900/5681472e550346895db46a9f/html5/thumbnails/41.jpg)
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](https://reader030.vdocuments.pub/reader030/viewer/2022012900/5681472e550346895db46a9f/html5/thumbnails/42.jpg)
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](https://reader030.vdocuments.pub/reader030/viewer/2022012900/5681472e550346895db46a9f/html5/thumbnails/43.jpg)
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](https://reader030.vdocuments.pub/reader030/viewer/2022012900/5681472e550346895db46a9f/html5/thumbnails/44.jpg)
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](https://reader030.vdocuments.pub/reader030/viewer/2022012900/5681472e550346895db46a9f/html5/thumbnails/45.jpg)
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](https://reader030.vdocuments.pub/reader030/viewer/2022012900/5681472e550346895db46a9f/html5/thumbnails/46.jpg)
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](https://reader030.vdocuments.pub/reader030/viewer/2022012900/5681472e550346895db46a9f/html5/thumbnails/47.jpg)
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](https://reader030.vdocuments.pub/reader030/viewer/2022012900/5681472e550346895db46a9f/html5/thumbnails/48.jpg)
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](https://reader030.vdocuments.pub/reader030/viewer/2022012900/5681472e550346895db46a9f/html5/thumbnails/49.jpg)
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](https://reader030.vdocuments.pub/reader030/viewer/2022012900/5681472e550346895db46a9f/html5/thumbnails/50.jpg)
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