Število ukazov, ki jih imajo računalniki je po letu 1980 postalo predmet razprav z zelo nasprotujočimi si mnenji. Obstaja več načinov štetja ukazov, povejmo, da tu pod njim mislimo vse mogoče kombinacije operacijskih kod in načinov naslavljanja. Po mnenju enih soboljši računalniki z velikim številom ukazov, ki jih imenujemo CISC računalniki. Po mnenju drugih pa je prednost na strani računalnikov z majhnim številom ukazov, ki jih imenujemo RISC računalniki. RISC je izumil Johncocke v IBM Yorktown raziskovalnem laboratoriju leta 1974. Pojav različnih mnenj je na eni strani posledica tehnološkega razvoja in na drugi sprememb v načinu gledanja na gradnjo in uporabo računalnikov. Razlike posegajo v samobistvoarhitekture računalniških sistemov in zato zaslužijo, da si jih ogledamo podrobneje.
Razvoj računalnikov kaže, da se je število ukazov stalno povečevalo. Že večkrat omenjeni IAS iz leta 1951 je imel na primer samo 23 ukazov in samo en način naslavljanja pomnilniških operandov. Pri računalnikih iz 70-tih let je to število naraslo na več sto, pri nekaterih pa še na veliko več. Meritve dinamične pogostosti uporabe ukazov na različnih CISC računalnikih kažejo, da se velik del ukazov uporablja zelo redko. Meritve tudi kažejo, da se najbolj pogosto uporabljajo ravno najpreprostejše operacije in načini naslavljanja.
Kakšen smisel ima namreč dajati računalnikom ukaze, ki se potem skoraj ne uporabljajo, vendar stvari niso preproste - tako povečevanje števila ukazov, kot pretežna uporaba njihovega majhnega dela, sta posledica zapletenih medsebojnih vplivov tehnoloških in programskih lastnosti računalnikov terciljev, ki se želijo doseči pri njihovem razvoju. Oboje, lastnosti incilji, se s časom spreminjajo, s tem pa se spreminja tudi naše videnje računalnikov.
Za povečevanje števila ukazov lahko rečemo, da je posledica kombinacije naslednjih med seboj povezanih razlogov.
Z manjšanjem stroškov za fizično izdelavo računalnikov se je stalno povečeval delež stroškov za programiranje. Že v 50-tih letih so ljudje ugotavljali, da je pri večini računalnikov med njihovo uporabo v programe treba vložitibistveno več denarja kot v strojno opremo. Ena od posledic tega spoznanja je pojav višjih programskih jezikov, ki zmanjšujejo stroške programiranja, vendar istočasno povzročajo nek drug problem. Temu problemu pravimo semantični prepad; z njim označujemo razliko med računalnikom kot ga vidi programer v višjem programskem jeziku in med tistimi, kar vidi programer v strojnem jeziku. Ta razlika je v resnici velika in v drugi polovici 60-tih let so semantični prepad označevali kot krivica za prevelike in počasne programe ter za zapletenost prevajalnikov. Proizvajalci so se na te kritike odzivali ta tako, da so skušali prepad zmanjšati s povečanjem števila operacij in načinov naslavljanja ter z vključevanjem nekaterih ukazov, ki se pojavljajo v višjih programskih jezikih, posledica teh poskusov je povečanje števila ukazov
Poskusi zmanjševanja semantičnega prepada s povečevanjem števila ukazov so se časovno ujeli z razširjenostjo mikroprogramiranja. Na mikroprogamiranih računalnikih je dodajanje novih ukazov preprosto in pogosto zadošča, da se v CPE poveča kontrolni pomnilnik, v katerem so shranjeni mikroprogrami. Če je povečanje veliko, je običajno potrebno dodati nov nivo logike za dekodiranje mikroukazov, kar ima posledico nekoliko počasnejše izvajanje vseh ukazov (tako imenovani n + 1 pojav). Vendar je ta upočasnitev majhna in večina proizvajalcev jebila prepričana, da se več kot nadoknadi s koristjo, ki jo prenese večje število ukazov.
Hitrost dostopa do informacije v CPE (do mikroukazov v kontrolnem pomnilniku in do registrov) je bila v 60 in 70-tih letih tipično več kot 10-krat višja kot pri dostopu do glavnega pomnilnika. Jemanje ukazov iz glavnega pomnilnika jebilo počasno. En kompleksen ukaz se je zato izvršil hitreje kot ekvivalentno zaporedje preprostih ukazov. To pomeni, da jebilo dodajanje kompleksnih smiselno i ni imelo negativnih posledic za hitrost delovanja.
S povečevanjem števila ukazov so proizvajalci skušali doseči naslednje tricilje:a) zmanjšati velikost programov,b) poenostaviti gradnjo prevajalnikov inc) povečati hitrost delovanja.cilji so vsekakor pravilni in jim ni mogoče oporekati. Tudi uporaba velikega števila ukazov kot sredstva za dosegociljev je glede na povedano videti pravilna. Kaj je potem sploh narobe scISC računalniki? Od kod ideja o RISC računalnikih, po kateri jebolje imeti manj ukazov? Odgovori na ta vprašanja niso preprosti in so, podobno kot razlogi za povečanje števila ukazov, posledica več med seboj odvisnih dejavnikov
Osnovni razlog za spremembo v načinu gledanja na število ukazov je čas - tisto, kar jebilo pred dvajset in več leti dobro, je zaradi sprememb v tehnologijo postalo slabo. Če k temu prištejemo še neizpolnjena pričakovanja uvajanja kompleksnih ukazov, je vzrokov za spremembo v načinu gledanja dovolj. Razloge lahko podamo v naslednjih treh točkah.
Kljub navidezni samoumevnosti uporabe kompleksnih ukazov kot sredstva za zmanjševanje semantičnega prepada, se je kmalu pokazalo, da ti ukazi pogosto niso izpolnili pričakovanj. To je razvidno iz rezultatov meritve, ki so pokazali, da se velik del ukazov uporablja zelo redko, in da prevladujejo najpreprostejši ukazi in načini naslavljanja. Razlogov za to je več. Kompleksni ukazi so zelo splošni in pogosto naredijo več, kot potrebuje ukaz v višjem programskem jeziku. Povrhu pogosto ne ustrezajo popolnoma natanko ukazom v višjih programskih jezik in jih je zato prevajalniku težje uporabiti kot preproste ukaze.
W. Wulf je leta 1981 analiziral vzroke za težave pri uporabi kompleksnih ukazov in ugotovil, da "prevelika semantična vsebina ukaza povzroči, da je ukaz uporaben samo v majhnem število primerov". Ta pojav je imenoval semantični trk (angl. semantic clash). Po mnenju Wulfa je bolje, čearhitektura računalnika daje preproste elemente za reševanje, ne pa kar rešitve, ki jih pogosto ni mogoče uporabiti. Še pogosteje so taki ukazi preprosto premočni - naredijo več kot je običajno potrebno, kar ima za posledico nepotrebno delo in počasen ukaz.
Problem uporabe kompleksnih ukazov v prevajalnikih je v začetku 80-tih let raziskovalo še več drugih. Nekateri so trdili, da je bolje imeti majhno število preprostih ukazov, drugi pa so temu ugovarjali in dokazovali prednosti kompleksnih ukazov. Do neke mere so imeli prav oboji. Ker je prevajanje v bistvu analiza velikega števila raznih možnosti, je pri preprostih ukazih delo prevajalnika veliko lažje in hitrejše. Res pa je tudi, da pri velikem številu ukazov dober prevajalnik (če mu damo dovolj časa) lahko naredi prevod, ki ima manj ukazov. Vendar je narediti dober prevajalnik zacISC Računalnikih dosti lažje koti pri RISC računalnikih.
Spremenjeno razmerje med hitrostjo glavnega pomnilnika in CPE je še posebej pomembno. Zaradi njega je postala mikroprogramska realizacija počasna v primerjavi s fiksno ožičeno, kompleksni ukazi pa sobrez mikroprogramiranja težki za realizacijo. Razmere med hitrostjo glavnega pomnilnika in CPE si ni spremenilo zaradi hitrejšega glavnega pomnilnika, temveč zaradi upora predpomnilnika. Hitrost je pogosto enaka; kadar ni, je razlika manj kot 2-kratna. Ta sprememba v hitrosti postavlja mikroprogramiranje in kompleksne ukaze v povsem drugačno luč. Ker je hitrost dostopa do predpomnilnika le malo nižja od hitrosti dostopa do kontrolnega pomnilnika, v katerem so shranjeni mikroukazi, ne velja več, da se en kompleksen ukaz izvrši hitreje kot ekvivalentno zaporedje preprostih ukazov.
Namesto velikega števila mikroprogramsko prostih ukazov, ki so realizirani s trdo ožičeno logiko. Izvrševanje teh ukazov je skoraj enako hitro kot izvrševanje mikroukazov. Iz tega sledi naslednja ugotovitev. PricISC računalnikih so v kontrolnem pomnilniku zmrznjena zaporedja mikroukazov (običajni strojni ukazi), za katere se je pri razvoju odločil proizvajalec. Pri RISC računalnikih pa ta zaporedja ukazov vsakič sproti tvori prevajalnik, ki jih prilagaja programu. Ta zaporedja ukazov so zatoboljša od naprej zamrznjenih.
Razvoj mikroelektronskih vezij omogoča, da se v CPE vse več dela izvaja paralelno. Glavni način, s katerim se to doseže, je cevovodno procesiranje. Realizacija cevovodov je pri preprostih ukazih bistveno lažja kot pri kompleksnih, kjer se pojavlja veliko problemov. Višja je tudi hitrost. Prednost računalnikov s preprostimi ukazi je zato še večja.
Vse to je počasi pripeljalo do ideje o RISC računalnikih. Prvi RISC računalnik jebil IBM 801 iz leta 1975. Njegov oče jebil J.cocke, ki je za določitev ukazov porabil naslednja dva kriterija:
Ta dva kriterija sta še vedno osnovno izhodišče za RISC računalnike. Zelo pomembno je tudi, da so že pri prvem upoštevali vlogo prevajalnika ter povezali njegove lastnosti s številom in vrsto ukazov. IBM 801 je bil eksperimentalen stroj, ki ni nikoli prišel v proizvodnjo. Pri firmi IBM so se namrečbali, dabo konkuriral računalnikom njihove serije IBM 370. Danes vemo, da so s tem naredili veliko napako, ki pa takrat nibila tako očitna. Toda ideja o RISC računalnikih jebila rojena in se počasi širila. Leta 1980 se je naberkeley University (v okviru podiplomskega študija!) pričel projekt, v okviru katerega stabila narejena računalnika RISC-I in RISC-II. Približno v istem času je nedaleč proč na Stanford University stekel projekt, v okviru katerega jebil narejen računalnik MIPS. Vsi trije - IBM 801, RISC-II in MIPS - so imeli podobne lastnosti:
Teh pet lastnosti je še danes značilnih za vse RISC računalnike.
Meritve, ki so jih opravili zagovorniki RISC-ov so pokazale da sobili pri približno enaki ceni RISC skoraj vedno hitrejši od CISC. Raziskave vzrokov za višjo hitrost so pokazale, da je osnovni vzrok preprosto to, da RISC opravijo precej večje število ukazov na eno urino periodo CPE kot SICS. Pojem RISC arhitektura so objavili v šestih točkah. Po njen ima nek računalnik RISC arhitekturo takrat, kadar izpolnjuje naslednje pogoje:
Po več kot 20-letni zgodovini je danes, odgovor na RISC-CISC dilemo znan: tako rekoč vsi po letu 1990 razviti računalniki so tipa RISC. Ta podatek bolj kot vse drugo potrjuje, da so njihove prednosti resnične in ne namišljene. Seveda pa to ne pomeni, da CISC ni več. Nasprotno, Intelova serija 80x86, ki je daleč najbolj razširjena vrsta računalnikov, spada med CISC računalnike. Zanimivo je tudi, da je že od 60-tih let naprej obstajala serija uspešnih hitrih računalnikov, ki ustrezajo vsem RISC kriterijem. To so stroji serij 6000, 7000, Cyber 70 in Cyber 170 firme CDC, ki sobili v svojem času superračunalniki. Zasnoval jih je Seymour Cray (1925-1996), ki je med prvimi spoznal pomen preprostih ukazov pri gradnji hitrih računalnikov. To velja tudi za današnje superračunalnike firme Cray, ki so pravzaprav nadaljevanje razvoja omenjenih serij. RISC računalniki torej sploh niso nekaj tako novega, kot se običajno misli.
SERŠ Maribor, Strokovna gimnazija, leto: 2002, avtor: Tine Horvat