ISSN 0351-6652 Letnik 22 (1994/1995) Številka 4 Strani 200-205 Aleksander Vesel: RAČUNALNIKI RISC Ključne besede: računalništvo, zmanjšan nabor operacij, kompleksen nabor operacij, računalniška grafika, transputerji. Elektronska verzija: http://www.presek.si/22/1224-Vesel.pdf © 1994 Društvo matematikov, fizikov in astronomov Slovenije © 2010 DMFA - založništvo RRCUÎIHLHISIPO RAČUNALNIKI RISC V prejšnji številki Preseka ste lahko prebrati nekaj več o vzporednih računalnikih in o njihovi delitvi. V tem sestavku pa se bomo posvetili računalnikom s procesorjem RISC, ki jih krajše imenujemo kar računalniki RISC. Na kratko bomo opisali tudi računalnike, ki uporabljajo posebne procesorje RISC -transputerje. Kratica RISC izvira, kot to velja za večino računalniških izrazov, iz angleškega jezika in dobesedno pomeni računalnik z majhnim (zmanjšanim) naborom operacij oziroma angleško Reduced Instruction Set Computer. V zvezi Z imenom RISC prihaja večkrat do nesporazumov. Majhen nabor operacij namreč še ne pomeni nujno, da spada računalnik v skupino računalnikov RISC. Spomnimo se samo pionirskih Časov računalništva, ko so bili računalniki v primerjavi z današnjimi veliko počasnejši, imeli so manjši pomnilnik in večinoma tudi majhen nabor operacij, pa jih zaradi tega še ne moremo uvrstiti med računalnike RISC! Kot zanimivost omenimo še, da se je prvi računalnik RISC tako tudi imenoval (torej kar RISC) Njegov procesorje poznal zelo malo operacij, to pa predvsem zaradi tega, ker je bil razvit za raziskovalne namene in ne za komercialno uporabo. V strokovni literaturi lahko najdemo več definicij računalnikov RISC. V zadnjem Času se je število različnih računalniških sistemov, ki jih uvrščamo med računalnike RISC, zelo povečalo. Zato je tudi definicija, ki zajema to široko paleto računalnikov, splošna. Računalnik RtSC omogoča generiranje programske kode z optimiziranim prevajanjem in učinkovito izvajanje programov na cevovodnem ("pipeline") procesorju z majhnim naborom operacij. Značilnosti, ki označujejo računalnik RISC, so torej tri: • (razmeroma) majhen nabor operacij, • cevovodna obdelava podatkov, • dobro optimizirano prevajanje programov iz višjega v strojni jezik. O cevovodni obdelavi si lahko preberete v prejšnji številki Preseka, zato v nadaljevanju sestavka nekaj več le o preostalih dveh značilnostih računalnikov RISC. Preden pa se lotimo opisovanja še nekaj pojasnil Verjetno že veste, da je srce vsakega računalnika procesor. Procesorje del računalnika, ki lahko izvaja računske operacije (seštevanje, množenje), primerja podatke, bere podatke iz pomnilnika ter zapisuje podatke v pomnilnik in še kaj bi se našlo, odvisno pač od zapletenosti procesorja, če hočemo, da računalnik izvrši neko zaporedje operacij, moramo napisati ustrezni program. Programe pišemo večinoma v višjih programskih jezikih (npr, v pascalu). Da lahko računalnik izvede naš program, ga moramo prevesti v strojni jezik, to je jezik, ki vsebuje le ukaze, kijih lahko procesor neposredno izvrši. RISC in CISC Nasprotje računalnikov RISC so računalniki CISC. Kratica CISC pomeni računalnik z obsežnim (kompleksnim) naborom operacij, ali po angleško Complex Instruction Set Computer, Razlika med računalniki RISC in CISC je. kot povesta že obe kratici, predvsem v velikosti nabora operacij. Različna pa je tudi zapletenost operacij. Operacije, ki jih izvajajo procesorji računalnikov CISC, so lahko zelo zapletene in so večinoma sestavljene iz zaporedja preprostejših (osnovnih) operacij Temu pravimo, da so operacije mikroprogramirane. Tudi ukazi višjega programskega jezika se praviloma prevedejo v zaporedje ukazov strojnega jezika, če so ukazi strojnega jezika zapleteni, je prevajanje iz višjega programskega jezika preprosto, a tudi razmeroma neučinkovito. Ker operacije računalnikov CISC niso enostavne, je njihovo izvajanje zaradi tega počasnejše, velikokrat pa se tudi zgodi, da se kaka od osnovnih operacij izvede po nepotrebnem. Procesorji računalnikov RISC znajo izvajati le razmeroma zelo preproste operacije, ki praviloma niso mikroprogramirane. Zaradi tega je prevajanje iz višjega v strojni jezik zahtevnejše. Ker pa lahko z optimiziranim prevajanjem zelo oklestimo Število potrebnih osnovnih operacij, je izvajanje prevedenega programa zaradi tega mnogo hitrejše. Naj omenim še nekaj že uveljavljenih procesorjev, ki jih uvrščamo v skupino RISC. Največji razvoj so računalniki RISC doživeli po letu 1985, ko začne razvoj praktično vseh grafičnih delovnih postaj temeljiti na tehnologiji RISC. Tudi znani procesorji SPARC, ki so jih razvili v podjetju Sun, so le ena od obtik procesorjev RISC. Tržno vrednost blagovne znamke RISC so poskušali vnovčiti tudi pri prodaji osebnih računalnikov. Tako so zadnja tipa Intelovih procesorjev za osebne računalnike najavljali kot procesorja RISC. Po nekaterih značilnostih (cevovodna obdelava podatkov) je Pentium blizu procesorjem RISC. Zaradi zgodovinskih razlogov oziroma zaradi združljivosti s svojimi predhodniki pa ima še vedno zelo obsežen nabor (tudi kompleksnih) operacij, kar ga uvršča med procesorje CISC. RISC v računalniški grafiki Prvi so začeli uvajati računalnike RISC v računalniško grafiko pri podjetju Apollo leta 1985. Grafične delovne postaje Apollo so bile zaradi prednosti, ki jo je imelo podjetje pri uvajanju računalnikov RISC pred konkurenco v drugi polovici osemdesetih let, pojem za visoko zmogljive, a razmeroma cenene računalnike. Mirno lahko tudi trdimo da so računalniki RISC doživeli svojo pravo uveljavitev prav v računalniški grafiki oziroma na področjih, povezanih z njo. Nekatera področja v računalniški grafiki so računsko zelo zahtevna: izračunavanje osvetlitve in senčenje predmetov, preračunavanje geometrije teles, animacija itd. Zahtevnost izračuna se še dodatno poveča, kadar želimo prikazati sliko na zaslonu z visoko ločljivostjo in z velikim Številom barv. Danes je običajno, da uporabljamo prikazovalnike, ki imajo ločljivost približno 1000x1000 pik. Tako mora računalnik skrbeti za pravilno osvetljenost približno milijona pik. Ker se pri animaciji zamenja okoli 25 slik na sekundo, to pomeni, da mora procesor samo za potrebe prikaza izvesti več milijonov operacij v sekundi. To pa je hud zalogaj za še tako zmogljiv procesor (Mimogrede: potreben je tudi zelo velik grafični pomnilnik.) Pred pojavom računalnikov RISC so poskušali premagati težave, povezane z veliko računsko zahtevnostjo, tako da so opravila razdelili na več manjših. Uporabljali so računalnike, ki so imeli več specializiranih procesorjev. Vsak izmed procesorjev je reševal svojo specifično nalogo, za katero je bil konstruiran. Nekatere visoko zmogljive grafične postaje so tako imele posebne procesorje za izvedbo geometrijskih transformacij, obrezovanje likov, izračun različnih osvetlitvenih modelov in izvedbo različnih metod senčenja (Gouraudo-vo in Phongovo hitro senčenje) Zaporedje zahtevanih akcij je bilo shranjeno v posebnem prikazovalnem seznamu, ki seje nahajal v navideznem pomnilniku. Nekateri uporabniki grafičnih delovnih postaj, npr. v avtomobilski industriji, vesoljskih raziskavah in drugje, so zahtevali možnost realističnega prikaza tudi zelo zapletenih objektov. To je imelo za posledico, da so postajali prikazovalni seznami vedno bolj obsežni Vključevali so tudi zahtevnejše osnovne grafične gradnike, npr. Bezierove ploskve in ploskve B-zlepkov. Še najbolj pa je na računsko zahtevnost algoritmov vplival razvoj novih osvetlitvenih modelov in tehnik senčenja. Vsi ti algoritmi so praviloma računsko zelo zahtevni in temeljijo na operacijah s plavajočo vejico Dodatno težavo predstavlja velika raznolikost algoritmov Zaradi te raznolikosti so morali število namenskih pro- cesorjev ves Čas povečevati, če so hoteli ohraniti zadovoljivo hitrost prikaza objektov. S številom namenskih procesorjev v delovnih postajah pa je rasla tudi njihova cena, zato so bile širšemu krogu uporabnikov le težko dostopne. Raziskovalci pri Apollu so kmalu sprevideli, da ima opisani pristop svoje omejitve, zato so poskušali poiskati drugačno rešitev. Naredili so, vsaj navidezno, korak nazaj in začeli razmišljati o grafični delovni postaji z enim samim grafičnim procesorjem. Poglavitno prednost so videli v njeni večji prilagodljivosti in enostavnejšem programiranju. Seveda pa ni šlo brez problemov. Poglavitna težava je bila, da v tistem času še ni bilo razvitega dovolj zmogljivega procesorja. Pri iskanju pravega pristopa so se spomnili računalnikov RISC oziroma prvih poskusov njihove uporabe, ki so se začeli nekaj let poprej. Na podlagi rezultatov teh raziskav so več kot uspešno razvili nov grafični procesor. V ta namen so oklestili nabor operacij, ki jih procesor lahko izvaja. Namesto prikaza zahtevnih grafičnih gradnikov zmore procesor RISC le prikaz najpreprostejših gradnikov: posamezne pike, lomljene črte in rnno-gokotnika Prikaz teh gradnikov je razmeroma preprost, število operacij, ki jih mora procesor poznati zelo majhno, njihovo izvajanje pa je lahko zaradi tega zelo hitro. Slika 1. Grafični sistem Apollo. Slika 1 prikazuje zgradbo grafičnega sistema delovne postaje Apollo. Prek posebnega hitrega vodila je grafični procesor povezan z drugimi komponentami delovne postaje: splošno namenskim procesorjem, pomnilnikom in vhodno-izhodnimi enotami. Splošno namenski procesor prav tako spada v skupino procesorjev RISC, uporabljena pa je bila arhitektura PRfSM (takrat novost), ki omogoča vzporedno izvedbo celoštevitskih operacij in operacij s plavajočo vejico. Optimizirano prevajanje so dosegli s pomočjo posebnega diagrama pretoka podatkov. Transptiterji O vzrokih za uvedbo vzporednih računalnikov ste si lahko prebrali v prejšnji številki Preseka. Čeprav se o vzporednih računalnikih že mnogo let veliko govori, je danes vetika večina računalnikov (če odštejemo cevovodno obdelavo podatkov) še vedno dokaj klasično zasnovana. Vzrokov za to je več, eden od njih pa tiči v preteklosti Dolgo časa je namreč veljalo, da je cena pomnilnika majhna v primerjavi s ceno procesorja. Posledica tega je, da je postalo vodilo med procesorjem in (navadno velikim) pomnilnikom premajhno oziroma prepočasno. 1 istemu delu računalnika, ki njegovo hitrost najbolj zavira, pravimo ozko grlo. Klasično zasnovo računalnika so poimenovali po von Neumannu, zato večkrat govorimo tudi o von Neumannovem ozkem grlu. Danes so razmere na tržišču računalniške opreme drugačne. En čip lahko vsebuje nekaj 10MB pomnilnika ali nekaj sto konvencionalnih mikroprocesorjev. Da bi lahko izkoristili tak procesorski potencial, je potrebno zgraditi računalnik z veliko stopnjo vzporednosti. Transputer je načrtovan posebej zato, da ga lahko uporabimo kot komponento z možnostjo programiranja in shranjevanja podatkov, ki sestavlja vzporedni računalnik. Izraz transputer opisuje prav to sposobnost. Sestavljen je iz besed "transistor" in "computer", kar pomeni dvojnost: računalnik na enem čipu in tranzistorju podoben sestavljivi element. Transputer je 32-bitni procesor RISC z veliko zmogljivostjo (več 10 MIPS-ov). Shematična zgradba procesorja je vidna na sliki 2. pomnilnik vmesnik skupnega pomnilnika procesor komunikacijski kanali Slika 2, Transputer. Štirje povezovalni kanali omogočajo zelo hiter dvosmerni prenos podatkov, torej tudi hkratno oddajo in sprejem. Računalnik, sestavljen iz trans-puterjev, omogoča učinkovito izvedbo procesnega modela računalniškega sistema Proces je samostojna enota s svojim lastnim programom in podat- ki, ki fahko komunicira z drugimi procesi. Najboljše rezultate dosežemo, če so programi napisani v posebnem jeziku za programiranje transputerjev, v OCCAM-u, Slika 3. Zaporedna in mrežna povezava. Vsak transputer lahko uporabljamo tudi kot samostojen procesor. Svojo pravo moč pa pokaže, če je povezan v skupino transputerskih elementov. Najpomembnejša primera povezav transputerskih elementov sta zaporedna povezava m mrežna povezava (glej sliko 3). Zaporedna povezava je zelo primerna za izvedbo nekaterih algoritmov v računalniški grafiki, v bazah podatkov »n pri hitri Founerjevi transformaciji. Način povezovanja je tak, da predstavlja izhod prvega procesa vhod za naslednji proces. Mrežno povezavo pa lahko zelo naravno izkoristimo za algoritme s področja obdelave sltk, analize končnih elementov, telekomunikacij in na splošno povsod tam, kjer je potrebno veliko računanja z matrikami. Aleksander Vesel