PROCESOR S PODATKOVNO PRETOKOVNO ARHITEKTURO INFORMATICA 4/86 Institut Jožef Stefan, Ljubljana UDK: 681.3.02 Jurij Šilc, Borut Robič Clanek predstavlja prvi procesor s podatkovno pretokovno arhitekturo. Notranja kroiina pipeline org anizaci ja, ki teoelji na podatkovnea vodenju, daje procesorju veliko moC. Bogat nabar ukazov je prirejen tako, da je procesar lelo uporaben za hitro obdelavo sllkovnih in govornih signalov. Potreba po takšnih obdelavah se pojavlja v raflunalnikih pete generacije. Data Flou Architecture Based Processor - A new data flow architecture based processor is described. The processor employs token based data Mou and pipelined architecture to achieve a very high throughput rate in the reala of digital image and speech processing. 1 . UVOD Pri naCrtovdnJu sisteaov za obdelavo slik smo obiCajno prisiljeni poiskati kooproais asd hitrostjo in fleksibilnostJo sieteaa. Okornost in poCasnost sistema, kl ga sestavljata ainira- Cunalnik ZJ obdelavo slike in masovni poanilnik za njeno shranjevanje, sta nesprejealjivl za delo v realnem Casu. l dodatkoa posebne aatori- alne oprsae se hitrost obdelave povefia, toda lal na ratiun I leksibllnosti, saj vsaka spreaaa- ba prograaske opreme narekuje spreaeabo oateri- alne opreme. Oaenjeni razkorak oed hitrostjo in ileksibllnostja sistena je mofi onillti z upora- bo progranabilnega slikovnega procesorja, ki ae odliVuje s podatkavno vodeno arhitekturo. 2. PODATKOVNO PRETOKOVNl PROCESOR V nasprotju s von Neuaannovioi procasorji, ki delujejo na podlagi dostave ukazov,. teaelji clplo podčtkovno pretokovnega procasorja na zbi- ranju in obdelavl paketov (tokens). ?•1• Osnovnd arhitektura orocesoria PodatKovno pretokovni procaear ne rabi do- stave ukaza. Naaesto tega vsebuje grafni poa- nilnik ftabeli povezav in toCk), v katerega •• pred priCetkom izvrSevanJa vpiSe prograaski podgraf. Pretok podatkov ee vrfii s poaofljo pa- ketov, ki vsebujejo naslov procesorja, identi- (ikatar, podatkovno ter krailno polje. Had pre- tokon po procesorju paket 6e nekajkrat Epreaenl vsebino in dol2ino, kot bo razvidno iz kasnoj- Sega opisa. Notranja kroiTna pipellne arhitektura (Sli- ka 1) omogofla pracesni enoti neprekinjeno dalo- vanje. Procesna enota vsebuje anoitilnik ln AUU, ki omogoCd standardne aritaetifino logiflne opa- racije. Nabor ukazov je 8ir6i kot pri veflinl klasiCnih procesorjev. Slika 1i Kroina pipeline arhitektura podatkovno pretokovnega procesorja. 2.2. Veeprooesorski podatkovno oretokovni VeCprocesorski podatkovno pretokovni sis- teu sestavlja kaskada podatkovno pretokovnih procesorjev, povezanih z glavnia procesorjea, kot je prikazano na Sliki 2. GLAVNI PHOCESOf PRETOK PAKETOV J —4 Slika 2: Podatkovno pre.tokovni raCunalnik. 75 Koaunikaci ja oied podatkovno pretokovnla procesorjeo in okolico poteka s poso&jo vhodno- lzhodnega krnilnlka. Glavni procesor poBlJe pa- ket podatkovna pretokovnim prooesorjea. Iz nas- lovnega polja paketa podatkovno pretokovni pro- cesor ugotovi, Ce Je paket namenjen njeau ter ? a v teo prineru sprejoe, izlotJi naslovno polje n pošlje v pretok - najprej v gratni poanilnlk (tabelo povezav). Paket, ki ni naaenjan daneau procesarju, se nespreasnjen poSlje v istea oik- lu preka vhodno-izhodnega krailnika naslednjeau procesorju. Procesor je tako za tuje pakete transparenten. Torej vsak podatkovno pretokovni procesor zbira svoje pakete. 2.3. Delovanie podatkovno pretokovneoa slsteaa Delovanje podatkovno pretovnega raflunalni- ka, kot ga prikazuje Slika 2, llustrirajao z naslednjio prioiero«. Dan naj bo prograa za iz- raCun E =• (A+8)»(A-B), opisan s podatkovno pre- tokovnia programski« grafoa 6 (Slika 3). Graf 6 lahko razbljemo na tri podgrafe &, ,62 in 63. Ker se lahka izvrSujeta 61 in 62 vzporedno, ju je seiselno vpisati v dva razlifina podatkovno pro- tokovna procesorja P, in P2 . 63 lahko vpiteao v katerikoli procesor, npr. v P, . Prograa «e pri- ene izvrSevati takoj, ko glavni procesor potlje vhodna paketa A in B. Tako aora >a lzvrttitav operacije C = A + B procesor P, prejetl pakata, ki rtDsita vrednosti A in B, ttalo nato lahko izvrSi operacijo '+'. Vhodna paketa lahko pri- spetf} v poljubnem zaporedju, saj je proceeor sposoben razpoznavati pakete in Jih hranitl v paketnec poanilniku. Iz opisa podgrafa 61, ki se nahaja v njegoveo grafneo pomnilniku, P, ugo- tovi, da paketa A in B pripadata preko oparacl- Ja '+' paketu C, zato ju zdruZi ln poSlJe v pracesno enoto. Vrednost, kl Je rezultat lzvr- Sitve v procesni enoti, ss vstavi v paket in opreni z oznako C. Istoflasno se v procesorju P2 izrafiuna paket D, ki ga P2 poSlJe gtavneau pro- cesorju. Ker je C vhodni paket nove operacijg, ki se aora izvrSiti v isteo procesorju P) , sa shrani v njegov paketni poonilnlk, dokler lz glavnega procesorja ne prispe pakot D. TedaJ sta v procesorju P, oba paketa za lzvrVltBv op»- racije '«' in 5e prej opisanl postopok «B pono- vi. Vidioo, da zagotavlja pravilna lzblra prad- hodno vpisanega podgrafa izkoriBflanJe veebovana viporednosti ter neprekinjeno dolo praoasorjav. 3. PODATKOVNO PRETOKOVNI PROCESOH MPD7281 Priner podatkovno prstokovnaga procesorja Je NEC (1PD72S1, katerega «oC teaelji n* krozno organizirani pipelina arhitekturi ter bogatea naboru ukazov. |iPD7281 je prvi VLSI Oip, ki de- luje po naflalih podatkovno pretokovno arhitek- ture C33. Ta ooogoOa veCJo uflinkovitoBt proco- eorja v nnogih vefiprooesorskih aplikacijah, kot sta procesiranje slik ter razpoznavanja vzoroev na podrottju uoetns lntellgence, kjer se uporab- ljajo algorltol za dvadonenzlonalno kanvoluci- Jo, povefiavo, poaanJSavo In rotaoijo. Njegova uCinkovitoBt postane ofiitna predvsea pri proca- siranju slik v realnea Casu, kjer dodobra izko- riSCa vsebovane vzporednosti uporabljenlh algo- ritoov. pPD7281 ni uporaben la prl prooasirah- ju slik, teavaC tudi pri zahtevnih nuaoriOnih izraCunih, kot so matriflno oatriCno anojienje, matriflno vektorsko anotenje, aritastlka s pla- va joGo vejico ter izratiuni transcendantnih funkcij v raalnea Casu. 3.1. Pipeline oraanlzaolia nrocesoria Kot je prikazano na Sllki 4 sestavlja pro- cesor deset funkcionalnih anoti vhodnl krallnik CIC), lzhodnl krmilnlk (OC), tabala povazav (LT), tabela tofik (FT>, pakatnl poanilnik (OH), vrsta (S), procesna enota (PU), izhodna vrsta (08), generator naslovov ln krailnik pretoka (ASIFC) ter osve?evalni krailnik + buCk) y(k) ° cx(k) + du(k), kjer so A, b, c in d usrezne aatrike in vsktor- ji. Prograit bi se v prioeru, ko so oatrike ln vektorjl enodimenzionalni, glasili EQUATE MODULE INPUT OUTPUT HNK LINK LINK LINK LINK LINK LINK LINK FUNCTION FUNCHON FUNCTION FUNCTION FUNCTION FUNCTION FUNCTION FUNCTION MEMORY MEHORY flEMORV MEMORV HEMORV MEMORV HOST PR0C1 P1 ,"" 0) 1 P13,P14| P7 = T1 ; PB = T2 CP3, P4) •, DO — T*Z /DO DC\ • PB = T2 CP3, P4) •, P9 = T3 T6 = ADD,QUEUE(Q6,1) " - 0UT1(H0ST,0)| OUTKHOST.O) } AREAd) • AREAd) Q3 = AREAd) Q4 = AREAC1) Q5 = AREAd) G& - AREAd) T6 T7 T8 Q1 02 Zgarnji prograa se izvaja saao v procesorju PR0C1, Ceprav je v algoritau prisotna doloCena stapnja vzporednosti. Tetava je v te«, da je potencialna vzporednost slabo razvidna, saj je to le enodimenzlonalni zapis prograoskega (pod)gra(a. Zato obidajno poteka prograairanje tako, da najprej konstruiraoo prograoski .gral, dolotJimo vzporedno lzvrSljive podgrale ter jih zapiSeno v zbirnlku. Zgornjl pragran izhaja iz grafa, kl je podan na Sliki 13. Opaziao, da se Uhko levi Cizrafiun x(k+1)) ln desni (izraiiun y(k)) del grafa izvrfiujeta vzporedno, zato levi del priredimo procesorju PR0C1, desni del pa procesorju PR0C2. Ustrezna prograaa, ki sta v tea prioeru zelo podobna, sta podana na Sliki 13. Razlika med njina je le v teo, da PR0C1 po- Silja rezultat procesorju PR0C2, oedtem ko pro- cesor PR0C2 poSilja rezultat glavnenu procesor- ju HOST. 80 EGUATE MODULE INPUT OUTPUT LINK LINK LINK LINK FUNCTION FUNCTION FUNCTION FUNCTION MEMORY MEMORY MEMORY PROC2 PROC1 P1 ,P2 P13-, P7 = P8 = P11 = P13 = T1 = T2 = T5 = T7 = ai = Q2 = Q5 = = 2; = 1 i .P3,P*j T1 (P1, P2); T2 (P3, P4)) T5 [ nUL,QUEUE(Q1 ,1); nUL,SUEUE(Q2,1); ADD,QUEUE(QS,1) ; 0UT1(PR0C2,0)i AREAd) ; AREAC1)j AREAC1); * «( k) \ P2 s b P7\ / \/ T5LJ ••- T7( P« |OUT P13 u(k) ~P4 ^PIO OUTOT8 P14 EflUATE MODULE INPUT OUTPUT LINK LINK LINK LINK FUNCTION FUNCTION FUNCTION FUNCTION MEMORV MEHORV MEMORV HOST PR0C2 P2.P4 P14j P9 P1O P12 P14 T3 T4 T6 T8 Q3 Q4 06 0; • 2) ,PS,P6j T3 (P2, P5) | T4 nUL,QUEUE(Q4,1)| A0D,QUEUECQ6,1)| OUTKHOST.O) l ADCA /41* Auu,autut OUTKHOST AREAC1)| AREAC1); AREAC1); Slika 13: Realizacija digitalnega filtra v prostoru stanj. Pri vefiini progranskih grafov je doloCanje vzporedno izvrSljivih podgrafov zahtevno, kar narekuje razvoj metod za avtomatiCno iskanje vzporednosti ter optimizacijo glede na fitevilo uporabljenih procesorjev C43. Zelo dobrodoSel bi bil grafifini zbirnik za generiranje kode ne- posredno iz programskega grafa ter pascalski ali C prevajalnik za generiranje in optimizaci- jo progranskih grafov. je v vseh procesorjih cel prograoski graf, vanj pa vstopajo le podatki o pripadajofii podsliki. Razbitje glede na graf (progra«) pa poaeni, da pc-vi procesor opravi preoik slike, drugi norai- ranje, tretji rotacijo itd. To poaeni, da Je v vsakem pracesorju dcug podgraf in vanj vstopajo podatki o celi sliki. Seveda pa js razbitje grafa smiselno le tedaj, ko se lahko podgrafi izvrSujejo vzporedno. 4. ZAKLJUttEK Rezultati testov opravifiujejo uporabo vefipracesarske arhitekture z pPD7281 C1]. Tako npr. i-atacija binarne slike velikosti 512 X 512 to«k zahteva 0.6s pri kra2ni povezavi treh pro- cesorjev; en procesor pa potrebuje 1.5s. Za iz- raCun (unkcije COS(K) potrebuje en procesor ^Ojis, kaskada treh proceeorjev pa 1SJJS. V splo- Snen se Cas obdelave eksponentno zoanjSuje z veCanje« Stevila uporabljenih procasorjev, 2al pa ne neomejeno, saj se pri veCjen Stevilu pro- cesorjev pojavijo zastoji pri pretoku vhodno- izhodnih paketov med procesorji. Zato Je odvis- no od sane aplikacije, ali jo bono razbili gle- de na podatke ali na programski graf . Vzeaiao npr. abdelavo slike, ki absega naloge kot so preisik, normiranje, rotacija itd. tte se odlofii- mo za razbitje glede na podatke, razbijemo sli- ka na padslike, tako da se vsaka podslika isto- Casno obdela v svojera procesarju. To poneni, da 5. LITERATURA C13 Chong Y.M. Processing, pp.97-103 Data Flou Chip Optimizes laage Comouter Design. Oct. 15, 198*, C21 Jeflery T.: The jiPD7281 Prooessor, Bvta. November 1985, pp.237-2*6 C32 MPD7281 Iaage Pipelined Processor, NEC Electronics, Februar/ 1985 Cl RobiC B., J.SilCi On Choosing a Plan for the Executlon of Data Flow Prograa 6raph, Informattca 3/86 CSD Ohba N., T.Saito, V.Hoshiko: Signal Pracas- sing on a Data-Flow Processor, HicrooroceB- sino and Hlcropronraaaina 14,1984, pp.17-27