Spoznali bomo dve osnovni arhitekturi, ki temeljita na preprostosti ali kompleksnosti strojnih računalniških ukazov. Spoznali bomo njune prednosti in slabosti. Ugotovili bomo, katero od teh zasnov uporabljajo najbolj popularni sodobni računalniki.
S stališča razvoja oziroma
načrtovanja arhitektur procesorjev moramo upoštevati, da vsak procesor vsebuje
krmilnik (Controller) in podatkovno pot (Datapath). Kot podatkovno pot razumemo
množico pomnilnih elementov (registre, zbirke registrov, pomnilnike), množico
funkcijskih enot (aritmetično logične enote, pomikanje, posebne funkcije) in
množico vodil. Vodila povezujejo vse te komponente. Vsaka od teh komponent
lahko za svoje izvajanje potrebuje enega ali več urinih ciklov. Vsaka
komponente je lahko z drugo povezana v cevovod (pipeline). Krmilnik določa
stanje procesorja in sproža krmilne signale v to podatkovno pot.
Poznamo več modelov arhitekture procesorjev, ki jih delimo predvsem na
kompleksnost ukazov (instrukcij). V nadaljevanju bomo podali značilnosti
teh modelov v skladu z njihovim zgodovinskim razvojem.
Računalniki z arhitekturo CISC
so bili popularni v letih 1970. Ker je bil programski pomnilnik (program
memory, PM) počasen, so skušali načrtovalci izboljšati hitrost z uvedbo
kompleksnih ukazov. Vsaka kompleksna instrukcija je za svojo izvedbo terjala
več urinih ciklov. krmilne besede za nadzor podatkovne poti so bile
shranjene v precej hitrejšem mikro programskem pomnilniku (mPM).
Koncept mikroprogramiranja je omogočal uvedbo in izvajanje kakršnegakoli
nabora ukazov in tvorbo specializiranih ukazov za pospeševanje izvajanja. |
Pred pojavom procesorjev RISC so skušali zagotoviti podporo visokonivojskim programskim jezikom z uvedbo “visoko nivojskih” ukazov, ki bi omogočali dostop do podatkovnih struktur oziroma polj kar z eno samo instrukcijo. Posledično so bili programi za take računalnike krajši. Včasih, ko so bili pomnilniki precej manjši od današnjih, je bilo to pomembno. Tudi klicev pomnilnika je bilo manj, kar naj bi omogočalo hitrejše izvajanje. Pomnilniki nekdanjih računalnikov niso bili le manjši, tudi počasnejši so bili.
Slabost nekdanjih procesorjev je bilo tudi relativno majhno število registrov v CPE. To je pomenilo, da je bilo potrebno bolj pogosto shranjevanje njihovih vrednosti v pomnilnik. In to je spet počasna operacija. To je bil dodaten razlog, da so od posameznega ukaza zahtevali čimveč (mikro) operacij. Da bi bili ukazi bolj učinkoviti, so taki procesorji poznali tudi veliko različnih načinov naslavljanja pomnilnika.
Izkazalo pa se je, da procesorji s takimi, kompleksnimi ukazi niso nujno dosegali večjo hitrost računalnikov. Bolj kompleksni ukazi so namreč terjali bolj kompleksno dekodiranje ukazov. Nasprotno, Izvajanje takih ukazov je bilo celo bolj počasno od ekvivalentnega izvajanja zaporedja bolj preprostih ukazov. Izvedba posameznega kompleksnega ukaza namreč potrebuje več taktov. Poleg tega so bili procesorji, ki so podpirali arhitekturo CISC, bolj kompleksni.
Primeri procesorjev, skladnih z arhitekturo CISC, so: System/360, VAX, PDP-11, Motorola 68000 in mikroprocesorji AMD ter Intel x86.
Računalniki z arhitekturo
RISC so postali popularni v poznih letih 1980 tako, da so odstranili
kompleksne ukaze in mikroprogramski pomnilnik. Cilj arhitekture RISC je, da bi bili vsi ukazi tako enostavni, da za
vsakega potrebujemo le en takt. Tako se cevovod komponent v
podatkovni poti (Datapath pipeline) izvede v 4-8 korakih. Procesorji iz te družine so: Alpha, ARM, AVR, MIPS, PA-RISC, Power Architecture in SPARC. Ker so ukazi bolj preprosti, je bolj preprost tudi sam mikroprocesor, ki potrebuje manjšo množico tranzistorjev. Kar smo tako pridobili, lahko izkoristimo drugače in uvedemo daljše dolžine registrov z večjim številom bitov. |
Izraz RISC pogosto napačno razumemo in mislimo, da imamo za procesor na voljo manjšo – reducirano množico ukazov. V resnici je ta množica še vedno obsežna. Resnična razlika v filozofiji RISC in CISC je v tem, da skušamo čimveč delati v registrih CPE. Poleg ukazov za spremembo vsebine v danem registru potrebujemo še relativno preprosta ukaza za nalaganje vsebine registra (load) in njeno shranjevanje nazaj v pomnilnik (store) . Namesto posameznih kompleksnih ukazov uporabljamo zaporedja preprostih. Seveda pa se v tem skriva tudi slabost arhitekture RISC: potrebno število dostopov do pomnilnika postane s tem večje.
Danes se oba pristopa, CISC in RISC zgledujeta med seboj in se približujeta. Tako imajo tudi popularni procesorji X86, ki so po svoji zasnovi tipa CISC, čedalje več enostavnih ukazov, kakor jih srečamo v arhitekturah RISC.