43 TRANSPUTERS INFORMATICA 1/89 Borut Jereb,* Ljubo Pipan,** Aleš Klofutar Institut J. Stefan * Gorenje raziskave in razvoj, T. Velenje Descriptors: TRANSPUTERS, PARALLEL PROCESSING ** Fakulteta za elektrotehniko, Ljubljna Za doseganje večje tmogljivosti računalnikov, je znanih veliko teoretičnih pristopov. Nekatere od njih je moino realiiirati, nekatere delno, nekateri pristopi pa so s sedaj poznanimi tehnologijami nerealni. Pri transputerjih je načrtovalcem uspelo realiiirati nekaj sanimivih zamisli. Članek je pregleden in obravnava predvsem najnovejši transputer T800, ki je relativno cenen in smogljiv gradnik v eno ali večprocesorskem sistemu. Pri večprocesorskem sistemu so lahko transputeiji močno ali šibko povešani. Model T800 Ima obenem veliko nnmerično moč. Ta moč je posledica nekaterih isvirnih rešitev, ki so opisane v članku. TRANSPUTERS Several theoretical principles for the achievement of greater computer capability already exist. Some of these can be carried out, some are only partially aplicable, while many theories can not yet be realised, given today's technology. Since experts have succesed in discovering several good and applicable ideas and possibilities b transputer designing, this paper is meant to give the reader a lucid survey of transputers, with special emphasis placed on the newest model: T800. This is a relatively cheap and capable unit, designed (or um in both single or multiprocessor systems. In the latter, the transputers can be either tightly or loosely linked and the T800 model has, at the same time, great numerical power - a result of the several original solutions presented further on in this paper. 0 UVOD Članek opisuje družbo transputerjev. To so izdelki podjetja In-moe, ki se od klasičnih mikroprocesorjev razlikujejo po prilagojenosti paralebemu procesiranju. Prva Itiri poglavja podajajo splošen opis dražbe transputerjev. Peto poglavje na kratko opisuje nekatere zmoSnoeti transpu-terja IMS T800 (predvsem enoto ta delo s Števili v plavajoči vejici). Sledi Se saključek. 1 KONCEPT IN ARHITEKTURA TRANSPUTERJA VLSI tehnologija omogoča ceneno iadelavo velikega Števila enakih integriranih veiij velike »mogljivosti. Z uporabo več enakih bte-griranih vetij lahko realiziramo sistem t neko mero paralelizma os. sočasnosti. slika 1 Bločni diagram transputerja IMS T800 TVanaputer je VLSI btegrirano ve«je, ki vsebuje: procesor (CPU), pomnilnik (RAM), komunikacijske kanale (LINKS) za direktno povesavo i ostalimi transpnterji v tako imenovani mreži transputerjev b vmesnik ta zunanji pomnibik (MEMORY INTERFACE); nekateri, odvisno od tipa, tudi enoto ta delo s Števili v plavajoči vejici (FPU), (slika 1). Načrtovalcem tega vetja je uspelo napraviti vesje, ki je dobro prilagojeno paralebemu procesiranju. Dodatek k paralelitmu realiziranem s večimi transputeiji je velika mera notranjega paraleliima v samem transpnterju. Samostojen sistem lahko predstavlja ie en sam transputer ali pa več v mrežo povečanih transputerjev. Kot primer slika 1 podaja bločni diagram transputerja IMS T800. 1.1 PROCESOR IN POMNILNIK NA SKUPNEM VEZJU V sistemih sestavljenih ii več VLSI veiij (procesor, pomnilnik itd), je hitrost prenosa podatkov med vefji, glede na hitrost delovanja samih veiij, zelo majhna. Obenem pa vsaka operacija, ki jo izvede procesor, sahteva uporabo pomnilnika. Zaradi slednjega sta pri transputerjih procesor b pomnibik sestavna dela enega samega vetja. Tipična velikost pomnilnika na vetju je pri sedanjih transputerjih nekaj Ki logov. 1.2 KOMUNIKACIJE MED TRANSPUTERJI Povetave med vetji b dodatna vetja ta upravljanje povešav pomenijo glavno omejitev pri tmanievanju velikosti celotnega sistema sestavljenega ii integriranih vetij. It omenjenega sledi, da Selimo zmanjšati Število povezav med btegriranimi vetji in obenem to povezavo čim bolj poenostaviti ot. uporabiti čim manj dodatnih vetij ta upravljanje povetav. Transputer lahko povežemo s ostalimi transpnterji s serijskimi enosmernimi "pobt-to-point" povezavami. Pri tem ne potrebujemo nikakržnih dodatnih vezij. 44 S tem i manj temo število povetav med integriranimi ves j i in Belo poenostavimo upravljanje komunikacij. 1.3 ENOSTAVEN PROCESOR Z MIKROKODIRANIM RAZPOREJEVALCEM OPRAVIL Ttansputer vsebuje enostaven sekvenčni procesor t majhnim itevilom instrukcij. Dodani sta specializirani skupini instrukcij la aritmetične operacije v plavajoči vejici in la raiporejanje opravil. Proces, ki se izvaja v transputeiju lahko, vsebuje večje Število sočasnih procesov, katerih sočasnost transputer podpira interno. Tb je omogočeno z mikrokodiranim raiporejevalcem opravil, ki odmerja procesorjev čas sočasnim procesom. Ratporejevalec omogoča dva prioritetna nivoja. 1.4 TIPI TRAN8PUTERJEV IMS T414 je 32 bitni procesor s pomnilnikom dveh Kilogov na vetju. Ima 32 bitno povesavo s zunanjim pomnilnikom in Štiri kanale la povezavo t ostalimi transputerji. Hitrejša venija tega itdelka IMS T414-20 omogoča tipično 10 MIPS. IMS T212 je zelo podoben pravkar opisanemu tipu. Razlika je v širini podatkovnih poti. Povezava s tunanjim pomnilnikom je 16 bitna. Obstajajo Se procesoiji serije T212 za kontrolo diskovnih in disketnih pogonov in procesorji, ki omogočajo priključevanje tran-sputerskih sistemov na običajne sisteme preko vodila. IMS T800 je najnovejli isdelek Inmosa. To je 32 bitni procesor. Na vetju so Štirje Kzlogi pomnilnika in enota sa računanje s Števili, katerih zapis je po ANSI/IEEE Standardu |6|. Iivedba IMS T800-30 omogoča 2.5 MFLOFS. Pri tem vesju je ohranjena kompatibilnost i vetjem T414-20 na nivoju noiic vetja[lj. 3 PROGRAMIRANJE Če je osnovni gradnik paralelnega sistema transputer, potem nam proces predstavlja osnovni programski gradnik. Sistem transpu-teijev lahko načrtujemo in programiramo t jetikom, ki ga ponuja proimjalec transputerjev - to je t jetikom Occam. Zaenkrat je poleg Occama na voljo Se nekaj visokoni vojakih jetikov. To so C, Fortran, Pascal in Fiftb (podoben programskemu jeziku Forth) [1,6,8,9,10], Program pisan v enem od viaokonivojskih jetikov in nato preveden predstavlja modul. Z occam modulom nato povetu-jemo in konfiguriramo module neodvisno od originalnega jesika, v katerem je bil nek modul napisan, pred prevajanjem v kodo. Pri itvajanju programa lahko pride do nekaterih usodnih napak (aritmetične prekoračitve, prekoračitve pri indeksiranju polj, deljenje t nič...), Id ustavijo procesor. Ko se pojavi takšna napaka, se postavi tastavica ta napako in napaka se lahko obdela interno s programsko opremo ali pa se obdela tunaj s primerno strojno opremo (npr sosednji transputer v mreii transputerjev). V slednjem primeru tunanja logika tatna posebno stanje, v katerem se nahaja procesor na posebni noiici integriranega vetja. 2.1 OSNOVNI KONCEPT PROGRAMSKEGA JEZIKA OCCAM Programski jetik Occam so rasvili sa programiranje sočasnih djstribuiranih sistemov. Poudarek je na besedi diatribuirani, saj dosedanji jetiki praviloma niso podpirali distribuiranih sistemov in temu ekvivalentnega razmišljanja. Program na enem tranaputoju Program na treh tranipaterjih slika 2 Realitacija procesov pri transputeijih Rasvoj jesika Occam je potekal sočasno s ratvojem transputer] a in ga nekateri jemljejo kot ibimi jetik ta transputerje. Ima telo malo (32 besed) reserviranih besed, kar daje slutiti veliko prilagojenost jetika sami arhitekturi transputeija. Irvajanje procesa v Occamu, je formalno ekvivalentno izva.-janju programa na transputerju. Tako postane proces materialni in programski gradnik večprocesorskega sistema. Sočasni procesi so realizirani na mreii transputeijev; komunikacija med njimi in t zunanjimi napravami pa je realizirana s kanali. Konfiguracijo programa na mreii omogoča konstrukt PLACE PAR (pojem kon-strukta je ratloien kasneje). Occamov program je motno uvajati tudi na enem procesorju, ki deli čas med 'sočasne' procese. Glej sliko 2. Pri tem konfiguracija in Število transputerjev nimata nikakršnega vpliva na logično obnašanje programa. Sintaksa Occama uporablja sami kanje od levega roba ta na-tnačevanje programske strukture. Vsak proses in vsak konstrukt je predstavljen t vrstico v programu. 2.1.1 PROCESI Po sagonu procesa le ta izvaja akcije in se nato ustavi ali pa je ustavljen. Program pisan v Occamu je sestavljen is treh osnovnih procesov. Ti so: prireditveni, vhodni in ithodni proces. Njihov zapis je naslednji: v := e prireditev izraza e spremenlj ivki v c I e izhod itrata e v kanal c c ? v vhod spremenljivke v iz kanala c Vsak Occamov kanal omogoča komunikacijsko pot med dvema sočasnima procesoma. Komunikacija je sinhronitirana in se iivede, ko sta oba - to je oddajajoči in sprejemajoči proces -pripravljena. Po končanem prenosu podatkov se oba procesa nadaljujeta. 3.1.4 KONSTRUKTI Osnovne procese kombiniramo v konstrukte. Konstrukt je sam tase proces in ga lahko uporabimo kot del naslednjega kon-strukta. Osnovna tnačilnost konstruktov je, da se začnejo s karakteristično otnačbo, ki ji v naslednji vrstici - t zamikom glede na zgornjo - sledi lista osnovnih procesov ali/in konstruktov. Osnovni konstrukti so: SEQuential procesi se isvajajo en sa drugim PAIlallel procesi se izvajajo sočasno IF proces se izvede ob izpolnjenosti pogoja ALTernative prvi pripravljen proces se izvede Pri sekvenčnem izvajanju, se komponente procesov izvajajo ena za drugo. Sekvenčni konstrukt se konča s koncem izvajanja zadnje komponente konstrukta. Komponente paralelnega konstrukta se itvajajo sočasno. Vsaka komponenta procesa operira na svojih spremenljivkah in komunicira z ostalimi sočasno delujočimi procesi preko kanalov. Paralelni konstrukt se konča le, če so se končale vse komponente konstrukta. Tako je naslednji program sestavljen iz dveh paralelnih procesov. Prvi proces bo sprejel spremenljivko next .problem iz kanala source. Drugi proces pa je sestavljen iz dveh procesov, ki »e bosta itvedla zaporedno: prvi računa computr.next.solution, drugi pa po zaključku prvega pošlje solution v kanal result. PAR source ? next.problem SEQ compntr.nextsolution (this.problem, solution) result ! solution Klasične sekvenčne programe lahko v Occamu napišemo tako, da uporabimo spremenljivke in prireditve v sekvenčnih konstruktih. Pri pogojnem konstrukta se testirajo komponente zaporedno, če je komponenta pravilna se itvrSi odgovaijujoči proces. Vedno se isvrii le en proces. Naslednji primer prikazuje uporabo konstrukta IF pri primerjavi Števil a in b. 45 IF a > b order := gt a < b order := It TRUE order:= eq Alternativni konstrukt omogoča večim procesom hkratno pripravljenost »a sprejem podatkov is kateregakoli od motnih kanalov. Sprejem se bo izvriil najprej ii tistega kanala, ki ga prvega uporabi nek drug proces za izhod. Pri tem imamo možnost dela z Bimanjimi in notranjimi dogodki. V klasičnih mikroprocesorjih se takšne stvari rešujejo na nivoju ibirnika s prekinitvami. Za primer si oglejmo primer, kjer čakamo na signal na kanalu count in total. Če pride signal na kanal count povečamo spremenljivko counter ta ena, v drugem primeru pa polijemo skosi kanal out vrednost counter, ki jo nato še postavimo na nič. ALT count 7 signal counter := counter -I- 1 total ? signal SEQ out ! counter counter := 0 Tudi ponavljanje je uporabljeno kot konstrukt. V spodnjem primeru se proces P irvriuje dokler ni pogoj condition napačen (false). Primer: WHILE condition proces Uporaba konstrukta kopiranja je razvidna is naslednjega primera: SEQ i = base FOR count a[i| := i Slednje je ekvivalentno zapisu: SEQ a [base) a[base + 1] := base := base + 1 a [base + count - 1) := base + count - 1 V običajnih jesikih uporabljamo sa takšno nalogo okas FOR. 2.1.3 TIPI Sedanja versija Occama podpira več podatkovnih tipov, kakor tudi večdimenzionalna polja. (Tipi:CHAN OF type (kanal tipa ...), TIMER, BOLL, BYTE, INT, INT16, INT32, INT64, REAL32, REAL64, [n,m,...]' type). Polja se lahko prirejajo, prenašajo med procesi in uporabljajo kot parametri v procedurah. Occam obenem omogoča, da del polja obravnavamo kot polje. Za primer si oglejmo naslednji program, ki deklarira celoštevilčno polje desetih elementov s imenom a. Vrednosti elementov zajema paralelno iz kanalov c in d (prvih pet elementov ii kanala c, drugih pet pa ii kanala d). (10] INT a PAR c 7 la FROM 0 FOR 5 d ? [a FROM 5 FOR 5] 2.1.4 PROCEDURE, IZRAZI, ČASOVNIK IN ZUNANJE ENOTE Procedura je proces, ki mu lahko damo ime. Npr: PROČ square (INT d) sqrt := n*n Izrasi so sestavljeni is operatorjev, ki jih najdemo v tabeli 2, is spremenljivk, števil, logičnih israsov ter predklepaja in zaklepaja. .+, /, REM integer, real PLUS, MINUS, TIMES, AFTER integer =i <> enostaven is. >i <> ¿i > integer, real AND, OR, NOT boolean A (bitwise and), V (bitwise or) >< (bitwise xor), ~ (bitwise not) integers «, » (premikanje) integer Tabela 1 Operatorji v Occamu Vsak proces lahko ima svoj neodvisen časovnik, ki ga uporabi ta svoje meritve ali ga rasdeljevanje dela v realnem času. Časovnik prebere vrednost v spremenljivko tipa INT. Npr: tim ? v postavi spremenljivko v na trenutno vrednost prostotekoče ure, ki je deklarirana kot časovnik tim. Dostop do zunanjih enot je v Occamu omogočena i mehania-mom vhodno/izhodnih vrat. Vrata se uporabljajo podobno kot kanali. Podobno lahko le en proces bere iz v/i vrat in le eden daje na v/i vrata. 8 KODIRANJE EN8TRUKCIJ Vsi transputeiji imajo enak osnovni nabor maloštevilčnih instruk-cij. Vsaka instrukcija vsebuje osem bitov, ki so razdeljeni v dve skupini po štiri bite. (Glej sliko 3.) Funkcija Podatek 7 4 3 0 slika 3 ibnnat transputerjeve instrukcije. Pomembnejši štirje biti tvorijo funkcijsko kodo, preostali Štirje so podatki. Dobimo 16 'direktnih* funkcij (nalaganje, shranjevanje, skoke, klice...). Vse instrukcije se izvedejo tako, da se spodnji štirje biti prepišejo v spodnje štiri bite operandskega registra, katerega vsebina se kasneje uporabi kot operand instrukcije (glej sliko 4). Pri tem se vse instrukcije, rasen Prefix instrukcij (njihova funkcija bo ra-zloiena kasneje), končajo z brisanjem operandskega registra. Tako je le ta pripravljen sa naslednjo instrukcij o. Ker pa takšno kodiranje dopušča samo štiri bitne operand«, imamo med zgornjimi 16. funkcijami dve, ki omogočata rasširjavo velikosti operandcrv. To sta Prefix in Negative Prefix. Prefix instrukcija napolni spodnje štiri bite operandskega registra s svojim podatkovnim poljem in potem premakne vsebino operandskega registra za štiri mesta v levo (šiftanje). Negative Prefix instrukcija je podobna pravkar opisani Prefix instrukciji, le da komplemen-tira operandski register pred premaknitvijo vsebine sa štiri mesta. Tako lahko operand z uporabo Prefix instrukcij povečujemo do velikosti operandskega registra. Naslednja od zgornjih 16. funkcij je Operate, ki tretira svoj operandski del - oziroma vrednost operandskega registra - kot operacijo nad vrednostmi v registrih procesorja. Ta funkcija omogoča kodiranje še dodatnih 16. operacij v enem zlogu. slika 4 Polnjenje operandnega registra pri IMS T800. 46 S Prefix funkcijo lahko razširimo tudi operande funkcije Operate, kar je ekvivalentno povečanju nabora instrukcij. Seveda so instrukcije kodirane tako, da io najpogosteje uporabljane instruk-cije predstavljene brez Prefix instrukcij. Merjenja so pokazala, da je okoli 70% instrukcij, ki se isvajajo, kodiranih v enem »logu. [3] T800 ima dodatne instrukcije la delo i FPU. Pravtako vsebuje instrukcije «a barvno grafiko, razpoznavanje viorcev in implementacijo kod za odpravljanje napak. To je realizirano i zgoraj opisano motnostjo, ki omogoča razširitev nabora instrukcij. [5,7] 4 KOMUNIKACIJSKE POVEZAVE Štiri identične dvosmerne poveiave omogočajo sinhronizirano komunikacijo med procesorji in komunikacijo i sunanjim svetom. Vsaka povezava vsebuje vhodni in izhodni kanal. Poveiava med dvema transputerjema je realiiirana s povezovanjem vmesnika poveiave enega transputeija na vmesnik poveiave drugega transputer] a. Vsak poslan podatkovni slog mora biti potrjen preko vhodnega kanala iste poveiave. Tb je sinhronizacija, ki poteka na vseh Itirih povezavah transputeija avtomatično in ne zahteva dodatnega programiranja. Ko linija ni aktivna je iihodni kanal na niskem nivoju. Vsak podatkovni ilog se prenese kot laporedje visokega start bita, enega visokega bita, tema bitoma sledi osem podatkovnih bitov in nisek stop bit. Potrditev, ki jo čaka oddajnik vsebuje visok in niiek bit (glej sliko 5) in je indikator sa dvoje: proces je sprejel podatek in vmesnik je pripravljen «a sprejem naslednjega sloga. Po£ljanje potrditvenih paketov, preden se podatkovni paket popolnoma sprejme, poveča zmoinoet povezav. IMS T414 nima implementiranega pravkar opisanega pošiljanja in dosega le 0.8 Mzlogov na sekundo. Z implementacijo prekrivanja in zadostnih iiravnalnikov za povezavo, je IMS T800 omogočena več kot dvakrat višja hitrost prenosa. [1,2,3,6,7] Tudi FPU ima tri registre (AF, BF in CF) v obliki sklada ta računanje. Naslovi ta podatke, ki so lapisani v plavajoči vejici se formirajo na skladu CPU. Obenem je pod kontrolo CPU prenos vrednosti med naslovljenimi pomnilniškimi lokacijami in FPU. Ker je CPU sklad uporabljan le sa naslavljanje vrednosti v plavajoči vejici, je doliina besede CPU neodvisna od dolline besede FPU. Tako doseiemo, da isti FPU na veiju T800 lahko uporabljata T212 (16 bitna beseda) in T414 (32 bitna beseda). Registrski sklad FPU je podvojen. Pomembnost tega se vidi ob preklopu T800 v delovanje i visoko prioriteto, ne da bi bilo potrebno prepisovanje vsebine sklada v pomnilnik. Rezultat slednjega je zelo ugoden časovni odliv na prekinitve [3,6,7], 5.2 ORGANIZACIJA NASLOVNEGA POLJA Celoten pomnilniški prostor je nastavljiv po slogih. Naslovi med #80000000 in #80000FFF naslavljajo pomnilnik na vezju (to je 4 Kiloge). Uporabnim pomnilnik se lačenja na naslovu #80000070. Lokacija s tem naslovom je označena kot MemStart (Memory Start) |3]. Glej sliko 6. Naslovi povezav so v spodnjem delu pomnilnika na veiju. Znnanji pomnilnik Pomnilnik na vezju 1 1 Podatek 0 Poveiave Uporabniško doetop«n pomnilnik MemStart Podatkovni ilog 1 0 Potrditveno «poročilo slika 5 Elementi komunikacijskega protokola S IMS T 800 IMS T800 je naslednik T414, ki je bil prvi širše uporabljen predstavnik ii druline transputeijev. T800 vsebuje, sa ra-iliko s T414, integrirano enoto sa delo s Števili v plavajoči vejici (FPU). To predstavlja, glede na običajne rešitve s koprocesorji, le malo površino dodatnega silicija. Običajno sahteva zadovoljivo povečanje numerične zmogljivosti dodatno površino silicija, ki se giblje v rasredu velikosti površine silicija, porabljene za izvedbo mikroprocesorja. Seveda to avtomatično zahteva eno ali več integriranih vesij i vso logiko, ki je potrebna ia delovanje samega vezja (Weitek WTL1167 koprocesor za mikroprocesor Intel 80386 zahteva tri integrirana vezja). FPU deluje sočasno s centralno procesno enoto (CPU) in pod kontrolo CPU. (Glej sliko 1.) 5.1 ARHITEKTURA Procesor transputerja T800 ima malo registrov, kar je kompenzirano z zelo hitrim pomnilnikom na vezju, šest registrov in enostaven instrukcijski nabor omogoča enostavno kontrolno logiko in enostavne ter hitre podatkovne poti. Registri procesorja so: kasalec na delovno področje, kjer so shranjene lokalne spremenljivke; kazalec instrukcij, ki kaie na naslednjo instrukcijo, ki se naj izvrši; operandni register, kjer se nahaja operand instrukcije; registri A, B in C, ki predstavljajo strojno izveden sklad. Slednji trije registri se uporabljajo sa aritmetiko pri naslavljanju, sa celoštevilčno aritmetiko ter za logične operacije. slika 6 Organizacija naslovnega polja 5.3 INSTRUKCIJE ZA DELO S ŠTEVILI V PLAVAJOČI VEJICI Jedro mnolice instrukcij sa delo v plavajoči vejici so določili v fazi pred načrtovanjem IMS T800. To jedro vsebuje enostavne operacije vpisovanja in branja FP operandov ter osnovne aritmetične operacije. Po drugi strani pa je statistika, ki je bila isdelana na osnovi fortranskih programov pokazala, da bi s dodatkom nekaterih bolj kompleksnih instrukcij povečali učinkovitost in kompaktnoet kode. Odločiti so se morali za najustreznejši nabor instrukcij. Zato so opravljali raziskave učinkovitosti predlaganih razširjav naborov instrukcij. Tak nabor so potem testirali v numerično orientiranih programih. Pri tem so za vsak predlagan nabor instrukcij skonstruirali prevajalnik, program prevedli s njim in tako dobljeno kodo testirali na simulatorju. V nadaljevanju sledi opis rezultirajočega nabora instrukcij. IMS T800 prenaša operande med pomnilnikom transputerja in skladom FPU i uporabo instrukcij za shranjevanje in nalaganje števil v plavajoči vejici. Obstajata dve skupini takšnih instrukcij: ena sa števila enojne dolline in ena za števila dvojne dolline. Naslov operandov v plavajoči vejici se izračuna na CPU skladu, nakar se operand naloži iz naslovljene pomnilniške lokacije na FPU sklad. Omogočena sta dva načina naslavljanja FP operandov: direktni in indirektni. Slednji način naslavljanja olajša delo s polji. Operandi na FPU skladu imajo osnake, ki predstavljajo njihovo doliino. Oznaka operanda se nastavi, ko operand naloiimo oz. izračunamo. Te oznake zmanjšajo število instrukcij, ki jih rabimo pri aritmetiki v plavajoči vejici. Npr. ne rabimo instrukcije za seštevanje dolgih besed in sa seštevanje kratkih besed, temveč preprosto le instrukcijo za seštevanje. 47 Operaciji «a branje rezultatov ii FPU shranita prebrano vrednost ii FPU «klada v transputerjev pomnilnik. Za branje ne obstajajo indeksne instrukcije. To »gleda na prvi pogled presenetljivo, vendar izvira i« dejstvi, da je v programih manj operacij branja i z FPU, kot pa vpisovanja v FPU. Zato indeksno naslavljanje pri branju ni realiiirano. Enojne instrukcije omogočajo najpogostejie operacije v FP: seštevanje, odštevanje, mnoienje, deljenje in primerjavo. Rezultat primerjave se prenese v register CPU. Zaradi pogostega seštevanja in mnoienja v programih so v smislu čim večje kompaktnosti kode in hitrosti iivajanja nekatere instrukcije sestavili is več osnovnih instrukcij. Npr instrukcij a prištevanja operanda operandu na skladu je enakovredna dvema operacijama: vpisu operanda na sklad in seštevanju operandov na skladu. [3,6,7] 5.4 SOČASNE OPERACIJE FPU IN CPU Pri IMS T800 dela FPU sočasno z CPU. Ta sočasnost Belo iiboljla inačilnosti v realnih problemih, kjer so elementi polja relativno teiko dostopni. To je razvidno is "Livermore Loops* testa, ki bo opisan v nadaljevanju. Ta test je mnošica majhnih jeder napravljenih tako, da predstavljajo medne tipe isračunov. Posebno vsebuje dostope do dvo in trodimeniionalnih polj, to je tam kjer transputeijeva sočasnost pokale selo dobre rezultate. Prevajalnik i»bere najugodnejši vrstni red računanja naslovov in s tem poveča časovno prekrivanje. Pri testu "Livermore Loops® je IMS T800-30 dosegel 2.25 M FLOPS, IMS T800-20 1.5 MFLOPS, T414-20 0.09 MFLOPS in VAX 11/780 (i PF pospeševalnikom) 0.54 MFLOPS. Program napisan v Occamu za ta test ima obliko (7j: - LIVERMORE LOOP 7 SEQ k = 0 FOR n x[k] := ujk] + ((( r*(.[k] + (r*y[k]))) + £8: k+3 k+6 + M» + (r*(n k+2 k+5 + (r*u + (r*u k+1 k+4 5.5 ZMOŽNOST IMS T800 ZA FP OPERACIJE časi izvajanj FP operacij niso zanesljivo merilo hitrosti izvajanja pravih numerično orientiranih programov. Zaradi tega primerjamo numerično učinkovitost procesorjev s Whetstonovim preizkusom. Tb je program, ki je dobra imitacija inanstveno-tehničnega programa. Vsebuje ustrezno Število in strukturo operacij v plavajoči vejici, klicov procedur, indeksiranja polj in računanja transcendentnih funkcij. Tabela 2 podaja imoinosti IMS T414 in IMS T800 v primerjavi z ostalimi procesorji glede na Whetstonov test. IMS T414 je trikrat počasnejši kot koprocesor MC68881, vendar ima kombinacija MC68000/MC68881 le 25% večje zmoinosti kot T414. To je zato ker je hitrost izračuna FP izraza odvisna od dveh stvari: prvič od hitrosti prenosa operandov v in iz koprocesorja in od hitrosti same FP enote. S skrbnim uravnoteienjem teh faktorjev, postane eno samo integrirano vezja IMS T800-20 več kot petkrat hitrejše od kombinacije MC68000/MC68881 [7]. Procesor Tip Količina/s Intel 80286/80287 8 MHz 300K D4S T414-20 20 Mhz 663K NS 32332-32081 15 Mhz 728K MC68000/MC68881 16/12 Mhz Sun3 860K VAX 11/780 FPA Unix 4.3 BSD 1083K IMS T800-20 20 Mhz 4000K IMS T800-30 30 Mhz 6000K Drugi pomembni kriteriji so še učinkovitost glede na po vrtino silicija, zasedanje prostora na tiskanem vezju in potrebno it. dodatnih vezij. Poleg tega IMS T800 v mnogih aplikacijah ne potrebuje zunanjega pomnilnika, saj ga je na čipn le 4 Kzloge. štirje IMS T800-30 zavzemajo enako površino na tiskanem vezju kot 80386 z WTL1167, obenem pa omogočajo šestkratno učinkovitost v vsaki sočasni aplikaciji. Procesor IMS T414-20 Intel 80286/80287 NS 32332-32081 MC68000/MC68881 IMS T800-20 IMS T800-30 Količina/s 33K 37.5K 48.5K 54K 200K 200K Tabela 2 Primerjava procesorjev na osnovi Whetstonovega testa Tabela 3 1 Normirana primerjava procesorjev na osnovi Whetstonovega testa pri taktu 1MHz Tudi iz tabele 3 je razvidna moč T800 v primerjavi a predhodnikom T414. Ta moč izvira iz naslednjih dejstev: - V testih T800 uporablja 4 Kiloge velik pomnilnik, ki je integriran v vezju. - FPU je prav tako integrirana v vezje. • FPU in CPU delujeta sočasno, pri čemer CPU računa naslove operandov v FP operacijah. Rezultati bi bili za T800 manj ugodni, če bi naslavljal pomnilnik, ki ni na vezju: še slabši bi bili, če bi uporabljal serijske povezave sa doseganje operandov. 6 ZAKLJUČEK IMS T800 transputer je zelo zmogljiv gradnik za paralelne sisteme. Obenem dokazuje, da ni potrebno uporabljati koprocesorja, če Selimo veliko numerično računalniško moč. Pri transputerju T800 najdemo na enem integriranem vezju centralno procesno enoto, numerično enoto za delo s števili v plavajoči vejici, pomnilnik in komunikacijski sistem. Skratka cel računalnik na enem vezju. Na primer: štiri Kzloge pomnilnika je v aplikacijah, kjer obdelujemo signale, ponavadi dovolj. Pri tem ne potrebujemo zunanjega pomnilnika. Zanimivo je tudi dejstvo, daje zmogljivost T800 pri računanja v plavajoči vejici večja od zmogljivosti mnogih drugih procesorjev pri računanju v številskih sistemih z fiksno piko. Tb vezje bo osnova najmočnejšega evropskega guperračunal-nika, ki ga načrtujejo na univerzi v Edinburgu. Vsebovalo bo 1000 transputerjev in 1 Gzlog pomnilnika. S takšno rešitvijo bo super-računalnik velik le slab kubičnih meter. Današnja tehnologija a katero je izdelan T800-20 ali T800-30 nudi 1.5 GFLOPS na 0.028 kubičnega metra atrojne opreme. Literatura 1 Inmos reference manual for transputers, 1986 2 Engineering data - IMS T414 transputer, 1986 3 Engineering data - IMS T800 transputer, 1987 4 Inmos product overwiew (transputer development system), 1986 5 Inmos compilers writer's guide, 1987 6 IMS T800 Architecture • technical note 6, 1988 M Homewood, D May, D Shepherd, R Shepherd: The IMS T800 transputer IEEE Micro, October 1987 [81 B Mihovílovií, S Mavrif, P Kolbezen: Transputer - osnovni gradnik veCprocesorskih sistemov: Informática 4,1986 [9| F Mayer-Lindenberg: FIFTH on the transputer: Microprocessing and microprogramming, December 1987