• Registrid
  • Protsessori arhitektuur
  • Käskude tüübid
  • Mälupiirkonnad ja pinu
  • Alamprogrammid
  • Katkestused ja erandid
  • CISC ja RISC lähenemine protsessori ülesehituses
  • Arvuti komponendid ja arhitektuurid




    Download 145.06 Kb.
    bet3/6
    Sana21.03.2017
    Hajmi145.06 Kb.
    1   2   3   4   5   6

    C.1.2 Protsessorid

    C.1.2.1 Protsessori arhitektuur CISC ja RISC protsessori disain

    Protsessori põhiarhitektuur


    Protsessor koosneb järgmistest põhikomponentidest:

    • Töötlemisplokk, mis teostab operatsioone andmetega (tavaliselt loogilised ja elementaaroperatsioonid). Teostatavate operatsioonide kohta käiv informatsioon ja töötlemisele kuuluvad andmed saadakse juhtplokist

    • Registrifail, mis kujutab endast teatud liiki sisemälu protsessori sees

    • Juhtplokk, mis otsustab selle üle, milliseid operatsioone peab töötlemisplokk teostama ja milliseid väärtusi peab registrifail salvestama.



    Protsessori põhimõtteline arhitektuur

    Registrid


    Iga protsessor sisaldab teatud komplekti registreid. Registri mahtu, st bittide arvu (tüüpiliselt 8, 16, 32 või 64 bitti) nimetatakse protsessori parallelismiks.

    Registreid klassifitseeritakse tavaliselt järgmiselt:



    • Üldotstarbelised registrid. Neile saab ligi assembler programmiga ja need on mõeldud juhendite poolt kasutatavate andmete ja/või operandide hoidmiseks. Vahel jagatakse üldotstarbelised registrid omakorda püsikomaregistriteks ja ujukomaregistriteks.

    • Spetsialiseeritud registrid, millel on täita mõned spetsiaalsed funktsioonid protsessori töös.

    Registrifail on tavaliselt ühendatud aadressisiini ja andmesiiniga.

    Peamised "spetsialiseeritud" registrid, mis tavaliselt esinevad kaasaegsetes protsessorites, on muuhulgas järgmised:



    • Käsuloendur (PC): sisaldab mäluploki aadressi, kust tuleb teostada järgmise juhendi lugemist. Selle käivitab programmaator operatsioonisüsteemi poolt ning seda värskendatakse automaatselt protsessori poolt.

    • Käsuregister (IR): sisaldab mälust käsu hankimise etapil loetud käske

    • Mäluaadresside register (MAR): sisaldab mälupesade aadresse, mille poole protsessor jooksvalt pöördub

    • Mäluandmete register (MDR): sisaldab mälust loetud või mällu kirjutamiseks määratud andmeid

    • Olekuregister (SR): sisaldab protsessori tehete teostamise olekut .

    • Pinuviit (SP): haldab mälu seda osa, mida kasutatakse pinuna.

    Protsessori arhitektuur


    Ühesiiniline arhitektuur

    Protsessori sisemine arhitektuur võib olla üles ehitatud ühesiinilise arhitektuurina. Sellisel juhul kõigi üldotstarbeliste registrite sisend- kui ka väljundliinid ja kõik ALU sisendid on ühendatud üheleainsale siinile. Muud ALU sisendid on ühendatud vahemälu registriga (joonisel tähistatud Y)

    Operatsioonid, mis vajavad kaht operandi, teostatakse kaheastmeliselt: esimene operand on laetud siini kaudu registrisse Y. Seejärel järgneva sammu ajal viiakse teine operand siinile sel viisil, et mõlemad operandid oleksid saadaval kui ALU sisendid.

    ALU väljundid on tavaliselt ühendatud väljundregistrisse (joonisel tähistatud Z), kust me saame lugeda tulemuse ning on võimalik kirjutada see registrisse.

    Ühesiiniline arhitektuur

    Mitmesiinilised arhitektuurid

    Kuigi oma ehituselt lihtsamad, on ühesiinilistel arhitektuuridel üks oluline piirang: iga kellatsükli jooksul teostavad nad täpselt ühe ülekande või ALU operatsiooni. Seega üksainus siin osutub pudelikaelaks tööjõudluse seisukohast.

    Selle probleemi ületamiseks on kaasaegsed protsessorid reeglina varustatud rohkemate sisemiste siinidega ja samaaegselt saab käivitada rohkem kui ühe operandi mitmest erinevast registrist.

    Allpool toodud joonisel on esitatud tüüpilise mitme siiniga protsessori arhitektuur. Üks siin on otse ühendatud ALU väljundiga ning kaks ülejäänud siini on ühendatud kahe ALU sisendiga. Registrite väljundid on ühendatud ALU sisendsiinidega. Seega saame korraga lugeda nii ALU mõlemat operandi kui ka lugeda tulemusi, et neid salvestada registrisse.




    Mitmesiiniline mälu

    Käskude tüübid


    Protsessori poolt teostatavad masinkäskudele vastavad operatsioonid on tavaliselt liigitatavad järgmiselt:

    • andmete ülekanne (registritest registritesse, mälust registrisse ja vastupidi)

    • loogilis-aritmeetilised tehted (liitmine, lahutamine, operandi bittide rotatsioon, paremnihutus, vasaknihutus jne)

    • bittide käitlus

    • stringide käitlus

    • käsuvoog (tingimuslikud ja mittetingimuslikud hargnemised, alamprogrammid jne)

    • eranditöötlus

    • Sisendi/väljundi haldus

    • protsessori töö juhtimine

    Mälupiirkonnad ja pinu


    Arvutisüsteemi põhimälu on üldiselt korraldatud erinevate piirkondadena, millest igaüks toetab mingit spetsiifilist funktsiooni. Programmi käivitamine võib näiteks jaotada selle mälu "koodi" piirkonnaks, mis sisaldab programme, ning "andmete" piirkonnaks.

    Kasutada oleva mälu lihtsamaks jagamiseks spetsialiseeritud piirkondadeks kasutavad protsessorid tavaliselt spetsialiseeritud registreid, mis haldavad eri alade siseseid aadresse.

    Peaaegu kõik protsessorid toetavad põhimälu struktuuri, mida kutsutakse pinuks. Mõned protsessorid, nagu näiteks Motorola 68000, suudavad toetada erisuguseid pinusid, sõltuvalt täitmise viisist (näit kasutaja/haldur). Sellisel juhul tehakse vahet kasutaja pinu ja halduri pinu vahel.

    Alamprogrammid


    Tavaliselt sisaldab programm käskude jadasid, mida täidetakse rohkem kui üks kord programmi töötamise ajal. Tüüpiliseks näiteks on koodifragment, mis võtab sisendina vastu tähtede jada ning teisendab kõik jadas ilmnevad suurtähed väiketähtedeks.

    Sellisel juhul ei korrata iga kord vajaduse tekkides koodisegmenti uuesti, lihtsam on tekitada mehhanism, mis võimaldab täita sama segmenti erinevatel puhkudel ja võimalusel ka erinevate andmete puhul.

    Koodi segmente nimetatakse alamprogrammideks ja nende korralikuks haldamiseks vajatakse teatud mehhanisme (masinkäske), mis toetavad:


    • lülitused alamprogrammile ja naasmine kutseprogrammi juurde

    • andmete parameetri vahetamine

    • alamprogrammile võimaluse andmine mõne teise alamprogrammi väljakutsumiseks

    Katkestused ja erandid


    Von Neumanni mudel itereerib lõpmatuseni tsüklit väljakutse/dekodeering/rakendamine.

    Selle alusmudeliga pole võimalik toime tulla sellistes olukordades (nimetatakse eranditeks), kus süsteem peab reageerima välistele sündmustele juhtumitel, mis pole programmile teada.

    Tüüpilisteks näideteks on suhtlemine operatsioonisüsteemiga, andmevahetus välisseadmetega, silumise operatsioonid, viga, käsu viga jne.

    Erandite korralikuks haldamiseks on vaja spetsiaalseid käske, mis suudavad katkestada protsessorit (st. ajutiselt peatada programmi rakendamist), käivitada alamprogrammi, mis haldab seda spetsiifilist erandit (katkestusrutiin ISR) ning kui katkestusrutiin on lõpetanud, taastada katkestatud programmi täpselt samas punktis, kus see oli peatatud.


    CISC ja RISC lähenemine protsessori ülesehituses


    Protsessori arhitektuuri paradigmad on tavaliselt jagatud kaheks: CISC ja RISC (vastavalt komplekskäsustikuga (täisprotsessoriga) ja kärbitud käsustikuga arvuti). Põhimõtteliselt erinevad need käsustiku iseloomult, mida nende keskprotsessor tõlgendab.

    CISC protsessorite peamiseks iseloomustavaks jooneks on nende kalduvus vähendada käskude arvu programmis, pakkudes suurt hulka käske, mis hõlmavad suurt valikut erinevaid ülesandeid. Käsud tõlgitakse sageli keskprotsessori poolt reaks mikrokäskudeks, mis teostavad keerulisemaid CISC käsu poolt nõutud operatsioone. Teostatavate ülesannete eripalgelisuse tõttu vajavad CISC käsud muutuval arvul bittide kodeerimist ja rohkem kui üht hankimise ja rakendamise tsüklit.


    RISC -süsteemidel on aga kalduvus lühendada aega, mis kulub elementaaroperatsioonidele (takt), lihtsustades protsessori poolt toetavaid käske. Sellisel juhul selliseid käske ei tõlgita mikrokäskudeks vaid need rakendatakse otse riistvara skeemide poolt. Varjuküljeks on selle lähenemise juures tavaliselt see, et mingi programmi teostamiseks vajatakse rohkem käske võrreldes CISC-protsessoritega ning tõlkimine programmide ja masinkäskude vahel on tavaliselt keerulisem. Teisalt sobivad RISC-süsteemid paremini protsessi käskude töötlemiseks paralleelselt konveierrakendustes. Sellisel juhul keskprotsessor töötab korraga rohkem kui ühe käsuga, osaliselt kattuvate järjestikuste käskude teostamisega, mis suurendab tunduvalt läbilaskevõimet. Sellel põhjusel on RISC-süsteemide puhul usutud, et need on kiiremad kui CISC -süsteemid.

    Motorola 680x0 perekonna protsessorid on näiteks CISC -tüüpi lahendusest. RISC -protsessorite näiteks võiks esitada ka PowerPC, SPARC, MIPS ja Alpha. Protsessorid Intel x86 (IA-32) perekonnast on sageli liigitatud CISC-protsessorite hulka. Oma sisemistes rakendustes kalduvad need ühendama mõlemat lähenemisviisi.


    1   2   3   4   5   6


    Download 145.06 Kb.

    Bosh sahifa
    Aloqalar

        Bosh sahifa


    Arvuti komponendid ja arhitektuurid

    Download 145.06 Kb.