1 / 50

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. Informacijos tipai kompiuter iuose P ozicinės skaičiavimo sistemos

metea
Download Presentation

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

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. Content is provided to you AS IS for your information and personal use only. Download presentation by click this link. While downloading, if for some reason you are not able to download a presentation, the publisher may have deleted the file from their server. During download, if you can't get a presentation, the file might be deleted by the publisher.

E N D

Presentation Transcript


  1. Kompiuterių architektūra ir operacinės sistemos Doc. Stasys Maciulevičius Kompiuterių katedra stasys@ecdl.lt stasys.maciulevicius@ktu.lt

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

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

  4. Kompiuterių architektūra ir operacinės sistemos KOMANDŲ SISTEMA 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 operandus Daugumos kompiuterių komandų sistemos apima tokias komandų grupes: 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) 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. 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ą? 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) S.Maciulevičius

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

  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. S.Maciulevičius

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

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

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

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

  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. 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 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. S.Maciulevičius

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

  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 priklausooperando nuorodai skirto lauko ilgis. registras ar ląstelė, nurodomi adresu 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 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: AddR4, 9(R1) R4 := R4 + M[R1+9] 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: 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

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

  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ą 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 S.Maciulevičius

  27. IBM/360 komandų formatai Kai kurie IBM/360 šeimos kompiuterių komandų formatai: S.Maciulevičius

  28. IBM/360 komandų pavyzdžiai IBM/360 šeimos kompiuterių sudėties komandų variantai: AR 5, 9 A 4, 8(1,2) S.Maciulevičius

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

  30. + + 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

  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 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 % 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 S.Maciulevičius

  34. CISC ir RISC architektūrų palyginimas S.Maciulevičius

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

  36. Kompiuterių architektūra ir operacinės sistemos KONVEJERIS S.Maciulevičius

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

  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. S.Maciulevičius

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

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

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

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

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

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

  45. Duomenųkliūtys Apylankos Duomenų magistralė Apylanka duomenųįkrovimui Registrų failas Apylanka rezultatui Pagrindinė atmintis Mux Mux ALU Rezultato buferis S.Maciulevičius

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

  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. S.Maciulevičius

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

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

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

More Related