doc stasys maciulevi ius kompiuteri katedra stasys@ecdl lt stasys maciulevicius@ktu lt n.
Download
Skip this Video
Loading SlideShow in 5 Seconds..
Doc. Stasys Maciulevičius Kompiuterių katedra stasys@ecdl.lt stasys.maciulevicius@ktu.lt PowerPoint Presentation
Download Presentation
Doc. Stasys Maciulevičius Kompiuterių katedra stasys@ecdl.lt stasys.maciulevicius@ktu.lt

Loading in 2 Seconds...

play fullscreen
1 / 50

Doc. Stasys Maciulevičius Kompiuterių katedra stasys@ecdl.lt stasys.maciulevicius@ktu.lt - PowerPoint PPT Presentation


  • 206 Views
  • Uploaded on

Kompiuterių architektūra ir operacin ė s sistemos. Doc. Stasys Maciulevičius Kompiuterių katedra stasys@ecdl.lt stasys.maciulevicius@ktu.lt. Ant rosios paskaitos santrauka. Informacijos tipai kompiuter iuose P ozicinės skaičiavimo sistemos

loader
I am the owner, or an agent authorized to act on behalf of the owner, of the copyrighted work described.
capcha
Download Presentation

PowerPoint Slideshow about 'Doc. Stasys Maciulevičius Kompiuterių katedra stasys@ecdl.lt stasys.maciulevicius@ktu.lt' - metea


An Image/Link below is provided (as is) to download presentation

Download Policy: Content on the Website is provided to you AS IS for your information and personal use and may not be sold / licensed / shared on other websites without getting consent from its author.While downloading, if for some reason you are not able to download a presentation, the publisher may have deleted the file from their server.


- - - - - - - - - - - - - - - - - - - - - - - - - - E N D - - - - - - - - - - - - - - - - - - - - - - - - - -
Presentation Transcript
doc stasys maciulevi ius kompiuteri katedra stasys@ecdl lt stasys maciulevicius@ktu lt

Kompiuterių architektūra ir operacinės sistemos

Doc. Stasys Maciulevičius

Kompiuterių katedra

stasys@ecdl.lt

stasys.maciulevicius@ktu.lt

ant rosios paskaitos santrauka
Antrosios paskaitos santrauka
  • Informacijos tipaikompiuteriuose
  • Pozicinės skaičiavimo sistemos
  • Dvejetainiai, aštuonetainiai, šešioliktainiai sveikieji skaičiai
  • Dvejetainėstrupmenos
  • 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

S.Maciulevičius

t r e i osios paskaitos turinys
Trečiosios paskaitos turinys

KOMANDŲ SISTEMA

  • komandųsistemossamprata
  • pagrindiniai komandųsistemų tipai
  • bendrosios paskirties registrų tipo architektūra
  • komandų formatai
  • operandų adresavimo būdai
  • komandų formatų pavyzdžiai
  • CISC ir RISC

KOMANDŲ VYKDYMO KONVEJERIS

  • konvejerio esmė
  • kliūtys konvejeryje

S.Maciulevičius

slide4

Kompiuterių architektūra ir operacinės sistemos

KOMANDŲ SISTEMA

S.Maciulevičius

komand sistema
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 operandus

Daugumos kompiuterių komandų sistemos apima tokias komandų grupes:

S.Maciulevičius

komand sistema1
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)

S.Maciulevičius

operand tipai ir dydis
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.

S.Maciulevičius

pagrindiniai komand sistem tipai
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ą?

S.Maciulevičius

pagrindiniai komand sistem tipai1
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)

S.Maciulevičius

steko tipo architekt ra

SR

SR

Stekas

SR

ALU

ALU

Steko tipo architektūra

Procesorius

Procesorius

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

push

pop

SR – steko rodyklė

ALU – aritmetinis-loginis įtaisas

(Arithmetic-Logic Unit)

Atmintis

Atmintis

S.Maciulevičius

pagrindiniai komand sistem tipai2
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.

S.Maciulevičius

akumuliatoriaus tipo architekt ra

SR

SR

ALU

Akumuliatoriaus tipo architektūra

Procesorius

Procesorius

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

AC

ALU

store

load

AC – akumuliatorius

ALU – aritmetinis-loginis įtaisas

(Arithmetic-Logic Unit)

Atmintis

Atmintis

S.Maciulevičius

reg atm tipo architekt ra

Procesorius

Procesorius

Rk

SR

SR

Ri

ALU

ALU

store

load

Atmintis

Atmintis

Reg-Atm tipo architektūra

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

Ri, Rk – registrai

ALU – aritmetinis-loginis įtaisas

(Arithmetic-Logic Unit)

S.Maciulevičius

load store tipo architekt ra

Procesorius

Procesorius

Rk

SR

Rj

SR

Ri

store

load

ALU

ALU

Atmintis

Atmintis

load-store tipo architektūra

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

Ri, Rj,Rk – registrai

ALU – aritmetinis-loginis įtaisas

(Arithmetic-Logic Unit)

S.Maciulevičius

pagrindiniai komand sistem tipai3
Pagrindiniai komandų sistemų tipai

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

Steko Akumuliatoriaus Reg-Atm load-store

PUSH A LOAD A LOAD R1, A LOAD R1, A

PUSH B ADD B ADD R3, R1, B LOAD R2, B

ADDSTORE CSTORE C, R3 ADD R3,R1,R2

POP CSTORE C, R3

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

S.Maciulevičius

bendrosios paskirties registr tipo architekt ra
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.

S.Maciulevičius

bendrosios paskirties registr tipo architekt ra1
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

S.Maciulevičius

k omand formatai
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.

S.Maciulevičius

k omand formatai1
Komandų formatai

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

Č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.

S.Maciulevičius

o perand nuorodos
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 priklausooperando nuorodai skirto lauko ilgis.

registras ar ląstelė,

nurodomi adresu

S.Maciulevičius

o perand adresavimo b dai
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

S.Maciulevičius

o perand adresavimo b dai1
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:

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

S.Maciulevičius

o perand adresavimo b dai2
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:

AddR4, (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:

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

S.Maciulevičius

o perand adresavimo b dai3
Operandų adresavimo būdai

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

AddR4, (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:

AddR4, #7 R4:= R4+ 7

S.Maciulevičius

o perand adresavimo b dai4
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ą

S.Maciulevičius

komand adresavimo b dai
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

S.Maciulevičius

ibm 360 k omand formatai
IBM/360 komandų formatai

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

S.Maciulevičius

ibm 360 k omand pavyzd iai
IBM/360 komandų pavyzdžiai

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

AR 5, 9

A 4, 8(1,2)

S.Maciulevičius

intel k omand formatai
Intel komandų formatai

Intel šeimos procesorių komandų formatai:

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.

S.Maciulevičius

x86 adres skai iavimo schema

+

+

Išrink. teisė SS

Riba

Bazės adresas

Išrink. teisė GS

Riba

Bazės adresas

Išrink. teisė FS

Riba

Bazės adresas

Išrink. teisė ES

Riba

Bazės adresas

Išrink. teisė DS

Riba

Bazės adresas

+

Išrink. teisė CS

Riba

Bazės adresas

x86 adresų skaičiavimo schema

Bazės registras

Segmentų registrai

Selektorius

Indekso registras

SS

Selektorius

GS

Selektorius

FS

Selektorius

ES

Selektorius

DS

Selektorius

Mastelis (1,2,4,8)

CS

Poslinkis(komandoje)

LA (loginis adresas)

ATM

Objekto vieta

Segmentų deskriptoriai

Segmento riba

Segmento pradžia

FA (fizinis adresas)

S.Maciulevičius

cisc ir risc
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

S.Maciulevičius

cisc ir risc1
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 %

S.Maciulevičius

cisc ir risc2
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

S.Maciulevičius

risc powerpc

OpK D/S A immediate

OpK D/S A B OpK RC

OpK D/S A B C OpK RC

RISC: PowerPC

PowerPC:

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

0 5 6 10 11 15 16 20 21 31

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

RC=0 – ne

S.Maciulevičius

komandos vykdymo spartinimas

Komanda

Komanda

Rezultatai

Komandos išrinkimas

Operacijos vykdymas

Laukti

Naujas adresas

Komanda

Komanda

Rezultatai

Komandos išrinkimas

Operacijos vykdymas

Atmesti

Komandos vykdymospartinimas

Komandos vykdymo procesą

galima paspartinti:

Tiksliau:

Laukti

S.Maciulevičius

komandos vykdymas
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.

S.Maciulevičius

konvejeris

F

D

O

X

W

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

S.Maciulevičius

konvejeris1

F

D

O

X

W

F

D

O

X

W

Konvejeris

Konvejerizuotam komandų

vykdymui reikia, kad konvejeris dirbtų ritmingai:

Etapo (fazės)

trukmė:tF tD tO tX tW

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

S.Maciulevičius

konvejeris2

F

F

F

F

D

D

D

D

O

O

O

O

X

X

X

X

W

W

W

W

Konvejeris

Tuomet (i+1)-ji komanda

pradedama vykdyti vienu etapu

vėliau, nei i-ji komanda:

i)

i+1)

i+2)

i+3)

S.Maciulevičius

powerpc k omandos vykdymas

IQ-7

IQ-6

IQ-5

IQ-4

IQ-3

IQ-2

IQ-1

IQ-0 (IU dekod.)

FPU buferis

IU buferis

FPU dekodavimas

IU vykdymas

BPU dekodavimas/ vykdymas

FPU vykdymas 1

Load/Store

FPU vykdymas 2

Įrašymas

Įrašymas

Įrašymas

PowerPC komandos vykdymas

Konvejeriai:

Iš vidinės spartinančiosios atminties

S.Maciulevičius

duomen kli tys

F

D

O: r1

X

W

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

S.Maciulevičius

duomen kli ty s

F

D

O

X

W:  r1

F

D

O: r1

X

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

S.Maciulevičius

duomen kli tys1
Duomenųkliūtys

Apylankos

Duomenų magistralė

Apylanka duomenųįkrovimui

Registrų failas

Apylanka rezultatui

Pagrindinė atmintis

Mux

Mux

ALU

Rezultato buferis

S.Maciulevičius

valdymo kli ty s

F

D

O

X:PC

W

F

BLOK

BLOK

X

W

i+1

F

D

O: r1

X

W

BLOK

BLOK

BLOK

F

X

D

W

O: r1

X

i+2

BLOK

BLOK

BLOK

F

D

O: r1

i+3

BLOK

BLOK

BLOK

F

D

i+4

Valdymo kliūtys

Sąlyginiai ir besąlyginiai perėjimai

branch

Atpažinus branch, konvejeris blokuojamas.

S.Maciulevičius

valdymo kli ty s1
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.

S.Maciulevičius

superk onvejeris

F

D

O

X

W

F1

F2

D

O

X1

X2

W1

W2

Superkonvejeris

Konvejerio ritmą galima pasiekti

ir kitaip:

Etapo (fazės)

trukmė:tF tD tO tX tW

  •       
  • = max(tX/2, tD)

S.Maciulevičius

superk onvejeris1

F1

F1

F1

F1

F1

F1

F2

F2

F2

F2

F2

F2

D

D

D

D

D

D

O

O

O

O

O

O

X1

X1

X1

X1

X1

X1

X2

X2

X2

X2

X2

X2

W1

W1

W1

W1

W1

W1

W2

W2

W2

W2

W2

W2

Superkonvejeris

Tokio superkonvejerio darbas:

S.Maciulevičius

kit kart
Kitą kartą

PROCESORIUS

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

PROCESORIAUS NAŠUMAS

  • bendrosios procesorių našumo didinimo priemonės

S.Maciulevičius