Memory-Optimized Software Synthesis from Dataflow Program Graphs withlargesizedatasamples

Size: px
Start display at page:

Download "Memory-Optimized Software Synthesis from Dataflow Program Graphs withlargesizedatasamples"

Transcription

1 EURSIP Journl on pplied Signl Processing 2003:6, c 2003 Hindwi Publishing orportion Memory-Optimized Softwre Synthesis from tflow Progrm Grphs withlrgesizetsmples Hyunok Oh The School of Electricl Engineering nd omputer Science, Seoul Ntionl University, Seoul 5-742, Kore Emil: oho@comp.snu.c.kr Soonhoi H The School of Electricl Engineering nd omputer Science, Seoul Ntionl University, Seoul 5-742, Kore Emil: sh@comp.snu.c.kr Received 28 Februry 2002 nd in revised form 5 October 2002 In multimedi nd grphics pplictions, dt smples of nonprimitive type require significnt mount of memory. This pper ddresses the problem of minimizing the memory requirement for such pplictions in embedded softwre synthesis from grphicl dtflow progrms bsed on the synchronous dtflow (SF) model with the given execution order of nodes. We propose memory minimiztion technique tht seprtes globl memory s from locl pointer s: the globl s store live dt smples nd the locl s store the pointers to the globl entries. The proposed lgorithm reduces 67% memory for JPEG encoder, 40% for n H.263 encoder compred with unshred versions, nd 22% compred with the previous shring lgorithm for the H.263 encoder. Through extensive shring optimiztion, we believe tht utomtic softwre synthesis from dtflow progrm grphs chieves the comprble code qulity with the mnully optimized code in terms of memory requirement. Keywords nd phrses: softwre synthesis, memory optimiztion, multimedi, dtflow.. INTROUTION Reducing the size of memory is n importnt objective in embedded system design since n embedded system hs tight re nd power budgets. Therefore, ppliction designers usully spend significnt mount of code development time to optimize the memory requirement. On the other hnd, s system complexity increses nd fst design turn-round time becomes importnt, it ttrcts more ttention to use high-level softwre design methodology: utomtic code genertion from block digrm specifiction. OSSP [], GRPE [2], nd Ptolemy [3] re wellknown design environments, especilly for digitl signl processing pplictions, with utomtic code synthesis fcility from grphicl dtflow progrms. In hierrchicl dtflow progrm grph, node, or block, represents function tht trnsforms input dt strems into output strems. The functionlity of n tomic node is described in high-level lnguge such s or VHL. n rc represents chnnel tht crries strems of dt smples from the source node to the destintion node. The number of smples produced (or consumed) per node firing is clled the output (or the input) smple rte of the node. In cse the number of smples consumed or produced on ech rc is stticlly determined nd cn be ny integer, the grph is clled synchronous dtflow grph (SF) [4] which is widely dopted in forementioned design environments. We illustrte n exmple of SF grph in Figure. Ech rc is nnotted with the number of smples consumed or produced per node execution. In this pper, we re concerned with memory optimized softwre synthesis from SF grphs though the proposed techniques cn be esily extended to other SF extensions. To generte code from the given SF grph, the order of block executions is determined t compile time, which is clled scheduling. Since dtflow grph specifies only prtil orders between blocks, there re usully more thn one vlid schedule. Figure b shows one of mny possible scheduling results in list form, where 2() mens tht block is executed twice. The schedule will be repeted with the strems of input smples to the ppliction. code templte ccording to the schedule of Figure b is shown in Figure c. When synthesizing softwre from n SF grph, spce is llocted to ech rc to store the dt smples

2 Memory-Optimized Softwre Synthesis from tflow Progrm Grphs with Lrge Size t Smples ()2() min() { for(i = 0; i<2; i++){ { { for(i = 0; i<2; i++){ (c) (d) Figure : SF grph exmple, scheduling result, (c) code templte, nd (d) lloction. T 8 8 Zigzg 8 8 Q 8 8 Q 8 8 Zigzg 8 8 T b c d e Figure 2: Imge processing exmple. between the source nd the destintion blocks. The number of llocted entries should be no less thn the mximum number of smples ccumulted on the rc t runtime. fter block is executed twice, two dt smples re produced on ech output rc s explicitly depicted in Figure d. We define llocted on ech rc s locl tht is used for dt trnsfer between two ssocited blocks. If the dt smples re of primitive types, the locl s store dt vlues nd the generted code defines locl with n rry of primitive type dt. Required memory spces in the synthesized code consist of code segments nd dt segments. The ltter stores constnts nd prmeters s well s dt smples. We regrd memory spce for dt smples s memory, or shortly, in this pper. There re severl clsses of pplictions tht del with nonprimitive dt types. The typicl dt type of n imge processing ppliction is mtrix of fixed block size s illustrted in Figure 2. Grphic pplictions usully need to del with structure-type dt smples tht contin informtion on vertex coordintes, viewpoints, light sources, nd so on. Networked multimedi pplictions exchnge pckets of dt smples between blocks. In those pplictions, the requirements re likely to be more significnt thn others. For exmple, the code size of H.263 encoder [5] is bout 00 K bytes but the size is more thn 300 K bytes. Since the requirement of n SF grph depends on the execution order of nodes, there hve been severl pproches [6, 7, 8] to tke the size minimiztion s one of the scheduling objectives. However, they do not consider either shring possibilities nor nonprimitive dt types. Finding out n optiml schedule for minimum requirements considering both is future reserch topic. In this pper, insted, we propose shring technique for nonprimitive type dt smples to minimize the memory requirement ssuming tht the execution order of nodes is lredy determined t compile time. Thus, this work is complementry to existent scheduling lgorithms to further reduce the requirement. Figure 2 demonstrtes simple exmple where we cn reduce the significnt mount of memory by shring s. Without shring, five locl s of size 64 (= 8 8) re needed. On the other hnd, only two s re needed if shring is used so tht, c,nde s shre,ndb nd d s shre. Such shring decision cn be mde t compile time through lifetime nlysis of dt smples, which is well-known compiltion technique. key difference between the proposed technique nd the previous pproches is tht we seprte the locl pointer s from globl dt s explicitly in the synthesized code. In Figure 2, we use five locl pointer s nd two globl s. This seprtion provides more memory shring chnces when the number of locl entries becomes more thn one. If the locl size becomes one fter optimiztion, no seprtion is needed. We exmine Figure 3 which illustrtes simplified version of n H.263 encoder lgorithm where ME node indictes motion estimtion block, Trns is trnsform coding block which performs T nd Quntiztion, nd InvTrns performs inverse trnsform coding nd imge reconstruction. Ech smplebetweennodesisfrmeof76 44 byte size which is lrge enough to ignore locl size. The dimond symbol on the rc between ME nd InvTrns denotes n initil dt smple, which is the previous frme in this exmple. If we do not seprte locl s from globl s, then we need three frme s s shown in Figure 3b since s nd c overlp their lifetimes t ME, nd b t Trns, nd b nd c t InvTrns. Even though two frmes re sufficient for this grph, we cnnot shre ny without seprtion of locl s nd globl s.infct,wecnuseonly two frme s if we use seprte locl pointer s. Figure 3c shows the lloction of locl s nd globl

3 56 EURSIP Journl on pplied Signl Processing g g 2 ME Trns ME Trns b ME Trns InvTrns c InvTrns InvTrns (c) Figure 3: Simplified H.263 encoder in which dimond between InvTrns nd ME indictes n initil smple dely, nd (c) minimum lloction without nd with seprtion of globl s nd locl s, respectively. 2 b Schedule: Smples s(b, 3) s(, 2) s(b, 2) s(b, ) s(, ) 2 2 n itertion cycle t g(3) s(b, 2) g(2) s(b, ) g() s(, ) s(b, 3) s(, 2) 2 2 t (b, 2) (b, ) (, ) Locl s(b, 2) s(b, ) s(, ) s(b, 3) s(, 2) 2 2 t (c) (d) Figure 4: n exmple of SF grph with n initil dely between nd illustrted by dimond, the smple lifetime chrt, (c) globl lifetime chrt, nd (d) locl lifetime chrt. s, nd the mpping of locl s to globl s. The detiled lgorithm nd code synthesis techniques will be explined in Section 4. It is NP-hrd to determine the optiml locl, globl sizes, nd their mppings in generl cses where there re feedbck structures in the grph topology. The problem becomes hrder if we consider shring mong different size dt smples. Therefore, we devise heuristic tht focuses on globl minimiztion first nd pplies n optiml lgorithm next to find the minimum locl pointer sizes nd to mp the locl pointer s to the minimum globl s. The proposed heuristic results in less thn 5% overhed thn n optiml solution on verge. In Section 2, we define new shring problem for nonprimitive dt types, nd survey the previous works briefly. The overview of the proposed technique is presented in Section 3. Section 4 explins how to minimize the size of locl s nd their mppings to the minimum globl s ssuming tht ll dt smples hve the sme size. In Section 5, we extend the technique to the cse where dt smples hve the different sizes. Grphs with initil smples re discussed in Section 6. Finlly, we present some experimentl results in Section 7, nd mke conclusions in Section PROLEM STTEMENT N PREVIOUS WORKS In the proposed technique, globl s store the live dt smples of nonprimitive type while the locl pointer s store the pointers for the globl entries. Since multiple dt smples cn shre the spce s long s their lifetimes do not overlp, we should exmine the lifetimes of dt smples. We denote s(, k) s the kth stored smple on rc nd TNSE s the totl number of smples exchnged during n itertion cycle. onsider n exmple of Figure 4 with the ssocited schedule. TNSE becomes 2 nd two smples, s(, ) nd s(, 2),reproducedndconsumedonrc. rcb hs n initil smple s(b, ) nd two more smples, s(b, 2) nd s(b, 3), during n itertion cycle. The lifetimes of dt smples re displyed in the smple lifetime chrt s shown in Figure 4b, where the horizontl xis indictes the bstrct notion of time: ech invoction of node is considered to be one unit of time. The verticl xis indictes the memory size nd ech rectngle denotes the lifetime intervl of dt smple. Note tht ech smple lifetime defines single time intervl whose strt time is the invoction time of the source block nd the stop time is the completion time of the destintion block. For exmple, the lifetime intervl of smple s(b, 2) is [,].Wetkespecilcreof initil smples. The lifetime of smple s(b, ) is crried forwrd from the lst itertion cycle while tht of smple s(b, 3) is crried forwrd to the next itertion cycle. We denote the former-type intervl s til lifetime intervl, or shortly til intervl, nd the ltter s hed lifetime intervl, or hed intervl. In fct,smples(b, 3) t the current itertion cycle becomes s(b, ) t the next itertion cycle. To distinguish itertion cycles, we use s k (b, 2) to indicte smple s(b, 2) t the kth itertion. Then, in Figure 4, s (b, 3) is equivlent to s 2 (b, ).

4 Memory-Optimized Softwre Synthesis from tflow Progrm Grphs with Lrge Size t Smples 57 nd the smple lifetime tht spns multiple itertion cycles is defined s multicycle lifetime. Note tht the smple lifetime chrt is determined from the schedule. From the smple lifetime chrt, it is obvious tht the minimum size of globl memory is the mximum of the totl memory requirements of live dt smples over time. We summrize this fct s the following lemm without proof. Lemm. The minimum size of globl memory is equl to the mximum totl size of live dt smples t ny instnce during n itertion cycle. We mp the smple lifetimes to the globl s: n exmple is shown in Figure 4c where g(k) indictes the kth globl. In cse ll dt types hve the sme size, n intervl scheduling lgorithm cn successfully mp the smple lifetimes to the minimum size of globl memory. Smple lifetime is distinguished from locl lifetime since locl my store multiple smples during n itertion cycle. onsider n exmple of Figure 4 where the locl sizes of rcs nd b re set to be nd 2, respectively. We denote (, k) s the kth locl entry on rc.then, the locl lifetime chrt becomessdrwninfigure 4d. uffer (, ) stores two smples, s(, ) nd s(, 2), to hve multiple lifetime intervls during n itertion cycle. Now, we stte the problem this pper ims to solve s follows. Problem. etermine L(g,s(g)) nd G(g,s(g)) in order to minimize the sum of them, where L(g,s(g)) is the sum of locl sizes on ll rcs nd G(g,s(g)) is the globl size with given grph g nd given schedule s(g). Since the simpler problems re NP-hrd, this problem is NP-hrd, too. onsider specil cse when ll smples hve the sme type or the sme size. For given locl size, determining the minimum globl size is difficult if locl my hve multiple lifetime intervls, which is stted in the following theorem. Theorem. If the lifetime of locl myhvemultiple lifetime intervls nd ll dt types hve the sme size, the decision problem whether there exists mpping from given number of locl s to given number of globl s is NP-hrd. Proof. We will prove this theorem by showing tht the grph coloring problem cn be reduced to this mpping problem. onsider grph G(V, E) wherev is vertex set nd E is n edge set. simple exmple grph is shown in Figure 5. We ssocite new grph G (Figure 5b) where pir of nodes re creted for ech vertex of grph G nd connected to the dummy source node S nd the dummy sink node K of the grph G. In other words, vertex in grph G is mpped to locl in grph G. The next step is to mp n rc of grph G to schedule sequence in grph G. For instnce, n rc in grph G is mpped to schedule segment ( ) to enforce tht two locl s on Figure 5: n exmple instnce of grph coloring problem, nd the mpped grph for the proof of Theorem. S rcs nd my not be shred. s we trverse ll rcs of grph G, we generte vlid schedule of grph G. Trversing rcs nd in grph G genertes schedule: S( )( )K. From this schedule, we find out tht the lifetime on rc consists of two intervls. The constrint tht two djcent nodes in G my not hve the sme color is trnslted to the constrint tht two locl s my not be shred in G. Therefore, the grph coloring problem for grph G is reduced to the mpping problem for grph G. The register lloction problem in trditionl compilers is to shre the memory spce for the vribles of nonoverlpped lifetimes [9]. If the vrible sizes re not uniform, the lloction problem, known s the dynmic storge lloction problem [0, ], is NP-complete. In our context, this problem is equivlent to minimize the globl memory ignoring the locl sizes nd mpping problems. e Greef et l. [2] presented systemtic procedure to shre rrys for multimedi pplictions in synthesis tool clled TOMIUM. They nlyze lifetimes of rry vribles during single itertion trce of progrm nd do not consider the cse where lifetimes spn multiple itertion cycles. Iftheprogrmisretimed,somevriblescnbelivelonger thn single itertion cycle. nother extension we mke in the proposed pproch is tht we consider ech rry element seprtely for shring decision when ech rry element is of nonprimitive type. Recently, Murthy nd httchryy [3] proposed scheduling technique for SF grphs to optimize the locl memory size by shring. Since they ssume only primitive type dt, their shring decision considers rry vribles s whole. However, their reserch result is complementry to our work since the schedule reduces the number of live dt smples t runtime, which reduces the globl memory size in our frmework. They compred their reserch work with Ritz et l. s [4] whose schedule pttern does not llow nested loop structure. They showed tht nested loop structure my significntly reduce the locl memory size. Even though memory shring techniques hve been reserched extensively from compiler optimiztion to high level synthesis, no previous work hs been performed, to the uthors knowledge, to solve the problem we re solving in this pper. K

5 58 EURSIP Journl on pplied Signl Processing : U is set of smple lifetimes; P is n empty globl lifetime chrt. 2: While (U is not empty){ 3: Tke out smple lifetime x with the erliest strt time from U. 4: Find out globl whose lifetimeends erlier thn the strt timeof x. 5: Priority is given to the tht stores smples on the sme rc if exists. 6: If no such globl exists in P, crete nother globl. 7: Mp x to the selected globl 8: Figure 6: Intervl scheduling lgorithm. Smples 2 3 2() s(, 6) s(, 5) s(, 4) s(, 3) s(, 2) s(, ) g(4) g(3) g(2) g() s(, 4) s(, 3) s(, 2) s(, 5) s(, ) s(, 6) () (2) (3) (4) g() g(2) g(3) g(4) (c) (d) Figure 7: n SF subgrph with given schedule, the smple lifetime chrt, (c) the globl lifetime chrt, nd (d) locl lloction nd mpping. 3. PROPOSE TEHNIQUE In this section, we sketch the proposed heuristic for the problem stted in the previous section. Since the size of nonprimitive dt type is usully much lrger thn tht of pointer type in multimedi pplictions of interest, reducing the globl size is more importnt thn reducing the locl pointer s. Therefore, our heuristic consists of two phses: the first phse is to mp the smple lifetimes within n itertion cycle into the minimum number of globl s ignoring locl sizes, nd the second phse is to determine the minimum locl sizes nd to mp the locl s to the given globl s. 3.. minimiztion Recll tht smple lifetime hs single intervl within n itertion cycle. When ll smples hve the sme dt size, the intervl scheduling lgorithm is known to be n optiml lgorithm [5] to find the minimum globl size. We summrize the intervl scheduling lgorithm in Figure 6. onsider n exmple of Figure 4 whose globl lifetime chrt is displyed in Figure 4c. fter smples s(, ), s(b, ), nd s(b, 2) re mpped into three globl s, s(, 2) cn be mpped to ll three s. mong the cndidte globl s, we select one tht lredy stores s(, ) ccording to the policy of line 5 of Figure 6. The reson of this priority selection is to minimize the locl sizes, which will be discussed in the next section. When the dt smples hve different sizes, this mpping problem becomes NP-hrd since specil cse cn be reduced to 3-prtition problem [0]. Therefore, we develop heuristic, which will be discussed in Section Locl size determintion Theglobl minimiztion lgorithm in the previous phse runs for one itertion cycle while the grph will be executed repetedly. The next phse is to determine the minimum locl sizes tht re necessry to store the pointers of dt smples mpped to the globl s. Initilly we ssign seprte locl to ech live smple during n itertion cycle. Then, the locl size on ech rc becomes the totl number of live smples within n itertion cycle: ech smple occupies seprte locl. In Figure 4,for instnce, two locl s re llocted on rc while three locl s on rc b. Wht is the optiml locl size? The nswer depends on when we set the pointer vlues, or when we bind the locl s to the globl s. If binding is performed stticlly t compile time, we cll it sttic binding. If binding cn be chngedtruntime,itisclleddynmic binding. In generl, the dynmic binding cn reduce the locl size significntly with smll runtime overhed of globl mngement ynmic binding strtegy Since we cn chnge the pointer vlues t runtime in dynmic binding strtegy, the locl size of n rc cn be s smll s the mximum number of live smples t ny time instnce during n itertion cycle. onsider nother exmple of Figure 7 with given scheduling result nd globl lifetime chrt s shown in Figure 7c. Since the mximum number of live smples is four, we need t lest four locl s on rc. Suppose we hve the minimum number of locl s on rc. Locl (, ) stores two

6 Memory-Optimized Softwre Synthesis from tflow Progrm Grphs with Lrge Size t Smples 59 smples, s(, ) nd s(, 5), which re unfortuntely mpped to different globl s. It mens tht the pointer vlue of locl (, ) should be set to g() t the first invoction of node but to g(2) t the third invoction, dynmiclly. We repet this pointer ssignment t every itertion cycle t runtime. If there re initil smples on n rc, cre should be tken to compute the repetition period of pointer ssignment. rc b of Figure 4 hs n initil smple nd needs only two locl s since there re t most two live smples t the sme time. Unlike the previous exmple of Figure 7, the globl lifetime chrt my not repet itself t the next itertion cycle. The lifetime ptterns of locl s (b, ) nd (b, 2) re interchnged t the next itertion cycle s shown in Figure 8. In other words, the repetition periods of pointer ssignment for rcs with initil smples my spn multiple itertion cycles. Section 4 is devoted to computing the repetition period of pointer ssignment for the rcs with initil smples. Suppose n rc hs M locl s. Since the locl sre ccessedsequentilly, ech locl entry hs t most TNSE/M smples nd the pointer to smple s(, k) is stored in (, k mod M). fter the first phse is completed, we exmine the mpping results of the llocted smple in locl to the globl s t the code genertion stge. If the mpping result of the current smple is chnged from the previous one, code segment is inserted utomticlly to lter the pointer vlue t the current schedule instnce. Note tht it incurs both memory overhed of code insertion nd time overhed of runtime mpping Sttic binding strtegy If we use sttic binding, we my not chnge the pointer vlues of locl struntime.itmensthtlllloctedsmples to locl should be mpped to the sme globl. For exmple of Figure 7, we need six locl s for sttic binding: two more s thn the dynmic binding cse since s(, ) nd s(, 5) re not mpped to the sme globl. On the other hnd, rc of Figure 4 needs only one locl for sttic binding since two llocted smples re mpped to the sme globl. How mny s do we need for rc b of Figure 4 for sttic binding? To nswer this question, we extend the globl lifetime chrt over multiple itertion cycles until the smple lifetime ptterns on the rc become periodic. We need to extend the lifetime chrt over two itertion cycles s displyed in Figure 8. Note tht the hed intervl of s 2 (b, 3) is connected to the til intervl of s 3 (b, ) in the next repetition period. Therefore, four live smples re involved in the repetition period tht consists of two itertion cycles. The problem is to find the minimum locl size M such tht ll llocted smples on ech locl re mpped to the sme globl. The minimum number is four in this exmple since s 3 (b, ) cn be plced t the sme locl s s (b, ). How mny itertion cycles should be extended is n equivlent problem to computing the repetition period of pointer ssignment for dynmic binding cse. We refer to the next section for detiled discussion. g(3) s (b, 2) g(2) s (b, ) g() s (, ) Itertion boundry s (b, 3) = s 2 (b, ) s 2 (b, 2) s 2 (b, 3) s (, 2) s 2 (, ) s 2 (, 2) Figure 8: The globl lifetime chrt spnning two itertion cycles for the exmple of Figure REPETITION PERIO OF SMPLE LIFETIME PTTERNS Initil smples my mke the repetition period of the smple lifetime chrt longer thn single itertion cycle since their lifetimes my spn to multiple cycles. In this section, we show how to compute the repetition period of smple lifetime ptterns to determine the periodic pointer ssignment for dynmic binding or to determine the minimum size of locl s for sttic binding. For simplicity, we ssume tht ll smples hve the sme size in this section. This ssumption will be relesed in Section 5. First, we compute the itertion length of smple lifetime. Suppose d initil smples sty live on n rc nd N smples re newly produced for ech itertion cycle. Then, N smples on the rc re consumed from the destintion node. If d is greter thn N, the newly produced smples ll live longer thn n itertion cycle. Otherwise, N d newly creted smples re consumed during the sme itertion cycle while d smples live longer. We summrize this fct in the following lemm. Lemm 2. If there re d initil smples on n rc, the lifetime intervl of (dmodtnse) newly creted smples on the rc spns d/ TNSE +itertion cycles nd tht of (TNSE (dmodtnse)) smples spns d/ TNSE itertion cycles. Let p be the number of itertion cycles in which smple lifetime intervl lies. Figure 9 illustrtes two ptterns tht smple lifetime intervl cn hve in globl lifetime chrt. smple strts its lifetime t the first itertion cycle with hed intervl nd ends its lifetime t the pth itertion with til intervl. Note tht the til intervl t the pth itertion lso ppers t the first itertion cycle. The first pttern, s shown in Figure 9, occurs when the til intervl is mpped to the sme globl s the hed intervl. The intervl mpping pttern repets every p itertion cycles in this cse. The second pttern ppers when the til intervl is mpped to different globl. To compute the repetition period, we hve to exmine when new hed intervl cn be plced t the sme globl. Figure 9b shows simple cse tht new hed intervl cn be plced t the next itertion cycle. Then, the repetition period of the smple t

7 520 EURSIP Journl on pplied Signl Processing Itertions 2 p 2 p p + p Til Hed intervl Til intervl p Til intervl Figure 9: Illustrtion of smple lifetime intervl: when the til intervl is mpped to the sme globl s the hed intervl, nd when the til intervl is mpped to different globl nd there is no chined multicycle smple lifetime intervl. t n h t h 2 t h 2 t 2 h 3 t n h n t n h t h 2 t n h n t n h n k k + p k+ p + p 2 k + p + + p n k + p + + p n t n t n t n h t h 2 t h 2 t 2 h 3 t n h n t n h t h 2 t n h n t n h n k k + k++p k ++ p + p 2 k++p + + p n k++p k+2+p + + p n + + p n Figure 0: Smple lifetime ptterns when multicycle lifetimes re chined so tht til intervl t i is chined to the lifetime of smple j +. se : t n is chined bck to the lifetime of smple. The repetition period of smple lifetime ptterns becomes n i= p i.se2:t n is chined to none. The repetition period becomes n i= p i +. Here, we ssume tht the lifetime of smple k spns p k + itertion cycles. lifetime pttern becomes p. More generl cse occurs when nother multicycle smple lifetime on different rc is chined fter the til intervl. multicycle lifetime is clled chined to til intervl when its hed intervl is plced t the sme globl. The next theorem concerns this generl cse. Theorem 2. Let t i be the til intervl nd h i thehedintervl of smple i, respectively. ssume the lifetime of smple i spns p i +nd t i is chined to the lifetime of smple i +for i = to n. The intervl mpping pttern repets every n i= p i itertion cycles if intervl t n is chined bck to the lifetime of smple. Otherwise it repets every n i= p i +itertion cycles. Proof. Figure 0 illustrtes two ptterns where chined multicycle lifetime intervls re plced. The horizontl xis indictes the itertion cycles. The lifetime intervl of smple strts t k with hed intervl h nd finishes t k + p with til intervl t. Since the lifetime of smple 2 is chined, its hed intervl h 2 is plced t the sme globl s t.the lifetime of smple 2 ends k+ p + p 2. If we repet this process, we cn find tht the lifetime of smple n ends t k + n i= p i. Now, we consider two cses seprtely. se : when intervl t n is chined bck to the lifetime of smple, the repetition period becomes n i= p i s illustrted in Figure 0. se2: when intervl t n is chined to no more lifetime, we should prove tht smple is mpped to the sme globl t

8 Memory-Optimized Softwre Synthesis from tflow Progrm Grphs with Lrge Size t Smples 52 c b Intervls s(c, 2) s(b, ) s(, ) s(c, ) offset 0 s(, ) s(c, 2) s(c, ) s(b, ) Repetition period s(c, ), s(c, 2) : 2 s(, ) : 2 s(b, ) : 2 (c) (d) struct frme g[2]; min() { struct G, b, c[2] = {g,g +; int in = 0, out = ; for(int i = 0; i < mx itertion; i++) { { = c[(i +)%2]; // s codes. Use c[in ]nd. in = (in +)%2; { b = c[i %2]; // s codes. Use nd b. { // s codes. Use b ndc[out ]. out = (out +)%2; struct frme g[2]; min() { struct G [2] = {g +,g, b[2] = {g,g +, c[2] = {g,g +; int in = 0, out = 0, in = 0, out = 0, in = 0, out = ; for(int i = 0; i < mx itertion; i++) { { // s codes. Use c[in ]nd[out ]. in = (in +)%2;out = (out +)%2; { // s codes. Use [in ]ndb[out ]. in = (in +)%2;out = (out +)%2; { // s codes. Use b[in ]ndc[out ]. in = (in +)%2;out = (out +)%2; (e) (f) Figure :grphwhichisequivlenttofigure 3, lifetime intervls of smples for n itertion cycle, (c) n optiml globl lifetime chrt, (d) repetition periods of smple lifetime ptterns, (e) generted code with dynmic binding, nd (f) generted code with sttic binding. the next itertion cycle s shown in Figure 0b. Then, the period becomes n i= p i +. Since the smple lifetime ptterns over itertion cycles re permuttions of ech other, smple should be mpped to mong n globl s ssigned to smples throughn during previous itertions. s illustrted in Figure 0b, other globl s re occupied by other smples t k + n i= p i + except the globl mpped to t n. Therefore, smple is mpped to the sme globl t the next itertion cycle. We pply the bove theorem to the cse of Figure 4b where hed intervl s(b, 3) nd til intervl s(b, ) re mpped to the different globl s. nd the smple lifetime spns two itertion cycles. Therefore, the repetition period becomes 2 nd Figure 8 confirms it. nother exmple grph is shown in Figure, which is identicl to the simplified H.263 encoder exmple of Figure 3. There is dely symbol on rc with number inside which indictes tht there is n initil smple s(c, ). ssume tht the execution order is. uring n itertion cycle, smple s(c, ) is consumed by nd new smple s(c, 2) is produced by s shown in Figure b. Ifwe expnd the lifetime chrt over two itertion cycles, we cn notice tht hed intervl s (c, 2) is extended to til intervl s 2 (c, ) t the second itertion cycle. y intervl scheduling, n optiml mpping is found like Figure c.ytheorem 2, the mpping ptterns of s(c, ) nd s(c, 2) repet every other itertion cycles since hed intervl s(c, 2) is not mpped to the sme globl s til intervl s(c, ). Initil smples lso ffect the lifetime ptterns of smples on the other rcs if they re mpped to the sme globl s s the initil smples. In Figure c, smple s(b, ) re mpped to the sme globl with s(c, ) while s(, ) with s(c, 2). s result, their lifetime ptterns lso repet themselves every other itertion cycles. The summry of repetition periods is displyed in Figure d. Recll tht the repetition periods determine the period of pointer updte in the generted code with dynmic binding strtegy, nd the size of locl s in the generted code with sttic binding strtegy. Figures e nd f show the code segments tht highlight the difference. The dynmic binding scheme lloctes locl pointer onto rc since the number of smples ccumulted on rc is no greter thn one. Similrly, locl is lloctedonrc. Figure e shows code with dynmic

9 522 EURSIP Journl on pplied Signl Processing 2 6 b c offset s(b, ) s(, 2) (til) s(, 8) (hed) s(, ) (til) s(c, ) s(, 7) (hed) s(, 6) s(, 5) s(, 4) s(, 3) Repetition period s(, ),s(, 3),s(, 5),s(, 7) : 4 s(, 2),s(, 4),s(, 6),s(, 8) : 3 s(b, ) : s(c, ) : 4 (c) struct Gg[8]; min() { struct G 0[4] = {g +4,g,g+2,g+5, [3] = {g +6,g+,g+3, b[] = {g +7, c[] = {0; for(int i = 0; i < mx itertion; i++) { { struct G output = 0[(i +3)%4]; // s codes { struct G input[2]; input[0] = 0[i %4]; input[] = [i %3]; // s codes { c[0] = 0[i %4]; // s codes { struct G output = [(i +2)%3]; // s codes { // s codes (d) Figure 2: n SF grph with lrge initil smples, n optiml globl lifetime chrt, (c) repetition periods of smple lifetime ptterns, nd (d) generted code with dynmic binding fter dividing locl s on rc into two locl rrys. binding. When the size of locl is the sme s the number of newly produced smples within n itertion, no index is needed for the in the generted inlined code. The mpped offset of smple s(, ) repets every other cycles s tht of s(c, 2) does. The mpped offset of s(b, ) follows tht of s(c, ). For rc, the minimum size of locl s is one since there is t most live smple on the rc. ut we notice tht if we hve locl on the rc, we need to updte the pointer vlue of ech locl t every ccess since the repetition period is two. Therefore, we llocte two locl s on rc nd fix the pointers. Insted, we updte the locl indices, in for block nd out for block. The decision of the binding scheme is utomticlly tken cre of by the lgorithm. The sttic binding requires two locl pointer s for rc nd, respectively, since the mpping ptterns of smples on repet every other itertion cycles. The locl size for rc is two nd hs the sme binding s Figure e. Figure f represents generted code with sttic binding, which dditionlly requires indices for locl s on rc nd [6]. Hence, we dd dditionl code of updting indices before nd fter the ssocited block s execution. We should consider this overhed to compre the sttic binding with the dynmic binding strtegies. In this exmple, using the dynmic binding strtegy is more dvntgeous. We illustrte n exmple grph which hs lrge initil delys nd thus hs long repetition period of smple lifetime ptterns in Figure 2. The schedule is ssumed to be given s. Interestingly enough, smples on the sme rc hve different repetition periods. The mpping ptterns repeteveryfouritertioncyclesforsmpless(, ), s(, 3), s(, 5), nd s(, 7) since ech smple spns four itertion cycles nd til intervl s(, ) is not mpped to the sme globl

10 Memory-Optimized Softwre Synthesis from tflow Progrm Grphs with Lrge Size t Smples 523 : Procedure LOES(U is set of smple lifetimes) { 2: P { 3: While(U is not empty) { 4: /* compute fesible offsets of every intervl in U with P */ 5: compute lowest offset(u, P); 6: /* st step: choose intervls with the smllest fesible offset from U */ 7: find intervls with lowest offset(u); 8: /* 2nd step(tie breking) : intervl scheduling */ 9: select intervl x with the erliest rrivl time from ; 0: remove x from U. : P P U{x. 2: 3: Figure 3: Pseudocode of LOES lgorithm. s hed intervl s(, 7). On the other hnd, smples s(, 2),s(, 4),s(, 6), nd s(, 8) repet their lifetime ptterns every three itertion cycles since til intervl s(, 2) nd hed intervl s(, 8) re mpped to the sme globl. The sttic binding method lloctes twelve locl s to rc since the overll repetition period of locl s on rc becomes twelve tht is equl to the lest common multiple of 4nd3(= LM(4, 3)). The dynmic binding method, however,llotstwolocl rrys tht hve four nd three s, respectively, to rc. Hence the dynmic binding method cn reduce five locl pointer s thn the sttic binding. code templte with inlined coding style is displyed in Figure 2d. The locl pointer for rc follows tht of smple s(, ). Up to now, we ssume tht ll smples hve the sme size. The next two sections will discuss the extension of the proposed scheme to more generl cse, where smples of different sizes shre the sme globl spce. 5. UFFER SHRING FOR IFFERENT SIZE SMPLES WITHOUT ELYS We re given smple lifetime intervls which re determined from the scheduled execution order of blocks. The optiml ssignment problem of locl pointers to the globl s is nothing but to pck the smple lifetime intervls into single box of globl spce. Since the horizontl position of ech intervl is fixed, we hve to determine the verticl position, which is clled the verticl offset or simply offset. The bottom of the box, or the bottom of the globl spce hs offset 0. The objective function is to minimize the globl spce. Recll tht if ll smples hve the sme size, intervl scheduling lgorithm gives the optiml result. Unfortuntely, however, the optiml ssignment problem with intervls of different sizes is known to be NP-hrd. The lower bound is evident from the smple lifetime chrt; it is the mximum of the totl smple sizes live t ny time instnce during n itertion. We propose simple but efficient heuristic lgorithm. If the grph hs no delys (initil smples), we cn repet the ssignment every itertion cycle. Grphs with initil smples will be discussed in the next section. The proposed heuristic is clled LOES (lowest offset nd erliest strt time first). s the nme implies, it ssigns intervls in the incresing order of offsets, nd in the incresing order of strt times s tie breker. t the first step, the lgorithm chooses n intervl tht cn be ssigned to the smllest offset, mong unmpped intervls. If more thn one intervl is selected, then n intervl is chosen which strts no lter thn others. The erliest strt time first policy llows the plcement lgorithm to produce n optiml result when ll smples hve the sme size since the lgorithm is equivlent to the intervl scheduling lgorithm. The detiled lgorithm is depicted in Figure 3. In this pseudocode, U indictes set of unplced smple lifetime intervls nd P set of plced intervls. t line 5, we compute the fesible offset of ech intervl in U. Set contins intervls whose fesible offsets re lowest mong unplced intervls t line 7. We select the intervl with the erliest strt time in t line 9 nd plce it t its fesible offset to remove it from U nd dd it to P. This process repets until every intervl in U is plced. Since the LOES lgorithm cn find intervls with lowest offset in O(n) time nd choose the erliest intervl mong them in O(n), where n is the number of lifetime intervls, it hs O(n) time complexity to ssign n intervl. Therefore the time complexity of the lgorithm is O(n 2 )forn intervls. Figure 4 shows n exmple grph where the circled number on ech rc indictes the smple size. Figure 4b presents schedule result nd the resultnt smple lifetime intervls. Figure 5 shows the procedure of the LOES lgorithm t work. t first, we select d with the erliest strt time first mong the intervls tht cn be mpped to lowest offset 0. Next, f is selected nd plced since it is the only intervl tht cn be plced t offset 0. In this exmple, the LOES lgorithm produces n optiml ssignment result. With rndomly generted grphs, it gives ner-optiml results most of the time s shown lter. e Greef et l. proposed similr heuristic tht considers the offset first nd smple size next in [2]. Even though

11 524 EURSIP Journl on pplied Signl Processing Smples d b e E 99 c 00 f F b d e c E f F Figure 4: n input grph with smples of different sizes nd schedule (= EF) nd the resultnt smple lifetime chrt. ottom(, b, c, d, e, f ) = (0, 0, 0, 0, 0, 0) Lowest bottom = {, b, c, d, e, f Erliest = {d ottom(, b, c, d, e, f ) = (99, 99, 99, 99, 0) Lowest bottom = { f Erliest = { f ottom(, b, c, e) = (99, 99, 00, 00) Lowest bottom = {, b Erliest = { d d f d f ottom(e) = (99) Lowest bottom = {e Erliest = {e b d e c f ottom(b, e) = (99, 99) Lowest bottom = {b, e Erliest = {b b d c f ottom(b, c, e) = (99, 00, 00) Lowest bottom = {c, e Erliest = {c d c f Figure 5: The proposed plcement lgorithm t work. their heuristic gives similr performnce with rndomly generted grphs, it does not gurntee to produce optiml results when ll smples hve the sme size. 6. UFFER SHRING FOR IFFERENT SMPLE SIZES WITH INITIL SMPLE ELYS In this section, we discuss the most generl cse where grph hs initil smples nd smples hve different sizes. The LOES lgorithm is not directly pplicble to this cse. Figure 6 illustrtes the difficulty with simple exmple. Figure 6 shows mpping result fter the LOES lgorithm is pplied to the first itertion period. We ssume tht h nd t indicte the hed intervl nd the til intervl of the sme smple lifetime, respectively. t the second itertion, intervl h should be plced s shown in Figure 6b since it is extended from the first cycle. The hed intervl h prohibits intervl x from lying on contiguous memory spce t the second itertion. Such splitting is not llowed in the generted code since the code regrds ech smple s unit of ssignment. To overcome this difficulty, we enforce tht multicycle intervls do not shre the globl spce with other intervls with different smple size. Figure 7 displys the min procedure, SSIGN MIN, for the proposed technique. We first clssify intervls into severl groups (lines 2 3 in Figure 7); new group is formed with ll intervls of the sme size if there is t lest one multicycle intervl, nd is denoted s (x) where x is the smple size. If there is no multicycle intervl, ll remining intervls form the lst group R. onsider n exmple of Figure 8 where smple sizes re indicted s circled numbers on the rcs. The smple lifetimes re displyed in Figure 8b. We mke three groups of intervls for this grph. Group (00) includes ll smple intervls ssocited with rcs b, c, ndd while group (200) includes ll intervls ssocited with rcs nd e. Initilly group R is empty in this exmple. The next step is to pply the LOES lgorithm for ech group (x) since (x) contins smples of the sme size only (lines 4 7). We slightly modify the LOES lgorithm so tht the lgorithm finishes the mpping s soon s ll multicycle intervls re mpped: compre line 24 of Figure 7 nd line 2 of Figure 3. The remining unmpped intervls re moved to group R. In Figure 8c, the modified LOES lgorithm plces intervls in (00) in the order of [s(c, ),s(b, 2),s(d,2),s(d,),s(b, ),s(c, 3)]. fter plcing s(c, 3), it completes nd moves remining intervl s(c, 2)

12 Memory-Optimized Softwre Synthesis from tflow Progrm Grphs with Lrge Size t Smples 525 offset t x y h offset st itertion x h t y 2nd itertion Split y t Figure 6: globl lifetime chrt with different size smples where t is til intervl nd h is hed intervl. Intervl x should be split t the second itertion, which is not llowed in the generted code. : Procedure SSIGN MIN(U is set of smple lifetimes) { 2: R { 3: for ech x in U{/* clssify intervls nd sort them */ 4: if (x is delyed intervl) 5: (size(x)) (size(x)) {x 6: else R R {x 7: 8: for ech x in R{/* dd ordinry intervls into (x)*/ 9: if(there is delyed intervl whose size is equl to tht of x) { 0: (size(x)) (size(x)) {x : R R {x 2: 3: 4: for ech (size){ /* plce intervls in (x)*/ 5: cll M LOES ((size)). 6: R R (size) 7: 8: /* plce ordinry intervls in R */ 9: cll LOES(R). 20: 2: 22: Procedure M LOES(U is set of smple lifetimes) { /* slightly modified LOES */ 23: P { 24: While(U hs delyed intervls) { Figure 7: Pseudocode of the proposed lgorithm for grph with delys. into R. Similrly, ordinry intervl s(e,2) nd s(, ) re moved into R fter s(e, 3) is plced for group (200). t lst we pply the originl LOES lgorithm to group R (line 9 of Figure 7) s shown in Figure 8e. The lgorithm loctes intervls s(c, 2), s(e, 2), nd s(, ) in R s shown in Figure 8e. fter ll intervls re mpped to the globl s, we move to the next stge of determining the locl sizes, which is lredy discussed in Section 4. Repetition periods for s(c, ) nd s(c, 3) become two since til intervl s(c, ) spns two itertion cycles nd is not mpped to the sme globl s s(c, 3) is. Repetition periods of s(e, ), s(e, 2), nd s(e, 3) become ll two. generted code with sttic binding is displyed in Figure 8f. 7. EXPERIMENT In this section, we demonstrte the performnce of the proposed technique with three rel-life exmples nd rndomly generted grphs. First, we experimented three rel-life pplictions: JPEG encoder, n MP3 decoder, nd n H.263 encoder. We hve implemented the proposed technique in design environment clled PeE Ptolemy extension s odesign Environment ( in which dtflow progrm grphs for JPEG encoder nd n H.263 encoder re displyed in Figures 9 nd 20, respectively. From the utomticlly synthesized codes, we compute the memory requirements nd summrize the

13 526 EURSIP Journl on pplied Signl Processing b c d e E offset offset s(b, ) s(c, 3) s(d, ) s(c, ) s(b, 2) s(d, 2) (c) E Smple lifetime intervls s(e, ) s(e, 2) s(e, 3) s(e, ) s(e, 3) s(b, ) s(c, 3) s(d, ) s(c, ) s(b, 2) s(d, 2) (d) E s(c, ) s(, ) s(d, ) s(b, 2) s(b, ) s(c, 2) s(d, 2) s(c, 3) E offset s(e, ) s(e, 3) s(b, ) s(c, 3) s(d, ) s(c, ) s(b, 2) s(d, 2) s(, ) (e) s(e, 2) s(c, 2) E chr g[900]; min() { struct G00 b[4] = {g + 200,g,g,g+ 200, c[4] = {g,g + 700,g+ 200,g+ 700, d[4] = {g + 00,g,g+ 00,g+ 200; struct G200 [] = {g + 700, e[2] = {g + 300,g+ 500; for(int i = 0; i<mx itertion; i ++){ { // s codes { // s codes { // s codes { // s codes { // s codes { // s codes { // E s codes (f) Figure 8: grph with smples of different sizes nd delys, smple lifetime chrt, (c) LOES plcement of smples whose size is 00, (d) LOES plcement of smples whose size is 200, (e) LOES plcement of the remined smples without dely, nd (f) generted code with sttic binding.

14 Memory-Optimized Softwre Synthesis from tflow Progrm Grphs with Lrge Size t Smples 527 Figure 9: JPEG encoder exmple tht represents grph of sme size smples without delys. Figure 20: H.263 encoder exmple tht represents grph of different size smples with delys. performnce comprison results in Tble. Since the function body of ech dtflow node is equivlent in ll experiments, only memory requirements re the min item of comprison nd the execution times re ll similr except for the copy overhed to be discussed below. JPEG encoder exmple represents the first nd the simplest clss of progrm grphs in which ll nonprimitive dt smples hve the sme size nd no initil dely exists. Since the locl size of ech rc is one in this exmple, we do not hve to seprte the locl pointer nd the globl dt, which is tken into ccount in the implementtion of the proposed technique. We cn reduce the memory requirements to one third s the third nd the fourth rows of Tble illustrte. The lst row indictes the lower bound of globl requirements tht given execution sequence of nodes needs. The lower bound is nothing but the mximum totl size of dt smples live t ny instnce of time during n execution period. No better result is possible since it is optiml. n MP3 decoder exmple is composed of three kinds of different size smples. It represents the second clss of grphs tht hve different size smples but no initil dely smple. In this exmple, we lso do not hve to seprte locl nd globl s becuse the locl size of ech rc is one. The proposed lgorithm tht shres the spce between different size smples reduces the memory requirement by 52% compred with ny shring lgorithm tht shres the spce mong only equl size smples. The fourth nd the fifth rows show the performnce difference. The proposed lgorithm lso chieves the lower bound in this exmple. s for n H.263 encoder exmple, we mke two versions: the simplified version s discussed in the first section nd the full version. The simplified version is n exmple of the third clss of grphs in which ll nonprimitive dt smples hve the equl size nd initil dely smples exist. s discussed erlier, seprtion of locl s from globl s llows us to reduce the spce to optimum s the sixth row revels. The full version of n H.263 encoder exmple represents the fourth nd the most generl clss of grphs tht consist of different size smples nd initil smples. The H.263 encoder exmple include four different size smple sizes nd eight initil dely smples on eight different rcs. The proposed technique cn reduce the memory requirement by 40% compred with the unshred version. On the other hnd, shring technique reduces the size only 23% if neither seprtion nor shring between different smples is considered. In this smple, we cnnot chieve the lower bound but 256 bytes lrger spce. Note tht the lower bound is usully not chievble if different size smples nd initil smples re involved in the sme grph. The SF model hs limittion tht it regrds smple of nonprimitive type s unit of dt delivery. In n H.263 encoder exmple, the SF model needs n dditionl block tht explicitly divides frme into 99 mcroblocks, pying nonnegligible dt copy overhed nd extr frme-size spce. In mnully written reference code, such dt copy is replced with pointer opertion. Tble 2 revels this observtion: tht even the lower bound of memory requirements of the synthesized code from the SF model is greter thn tht of the reference code. Therefore, we pply the proposed technique to n extended SF model, clled cyclo-sttic dtflow (SF) [7]. With the SF model, we could remove such dt copy overhed. nd the proposed shring technique further reduce the memory requirement by 7% more thn the reference code. In the experiments, we choose the better binding strtegy, sttic or dynmic, for ech dt smples, considering the memory nd the code overhed of index updtes. In the H.263 encoder exmple, sttic binding is preferred for plces where the repetition periods of smple lifetimes spn more thn one itertion cycle. In this exmple, the pointer referencing through locl s incurs runtime overhed, which is bout 0.6% compred with the totl execution time in the H.263 encoder. The second set of experiments s shown in Tble 3 hve been performed to evlute the proposed LOES heuristic. We compre it with n integer liner progrmming (ILP) solver, PLEX ( We rndomly generte the smple lifetimes within first itertion intervl, vrying the strt/end times, sizes, nd initil delys. When the number of smple intervls exceeds 20, the ILP solver tkes prohibitively long execution times. With smll size problems below 20 smple intervls, the overhed of LOES heuristic is less thn % on the verge for 50 experiments.

15 528 EURSIP Journl on pplied Signl Processing Tble : omprison of memory requirements for three rel-life exmples. Exmple JPEG MP3 Simplified H.263 encoder H.263 encoder lss Sme size ifferent size Sme size ifferent size No dely No dely With dely With dely # of smples Without shring K K 659 K Shring s of sme size only K K 50 K uffer shring without seprtion 52 K K 50 K uffer shring with seprtion 74 K 396 K Lower bound of globl size 52 K 74 K 396 K Tble 2: omprison of synthesize codes with reference code for the H.263 encoder. uffer shring without uffer shring with Exmple Reference code seprtion in SF seprtion in SF H.263 Encoder 350 K 29 K 290 K Tble 3: Performnce comprison of LOES lgorithm with integer liner progrmming (optiml) for rndomly generted grphs (unit: %). # of intervls vg. mx (LOES-ILP)/ILP ONLUSIONS We hve proposed shring technique for dt smples of nonprimitive type to minimize the memory requirements from grphicl dtflow progrms bsed on the SF model or its extension ssuming tht the execution order of nodes is lredy determined t compile time. In order to shre more s, the proposed technique seprtes globl memory s from locl pointer s: the globl s store live smples nd the locl s store the pointers to the globl entries. The technique minimizes the memory by shring globl s for dt smples of different size. No previous work is known to us to solve this shring problem especilly for the grphs with initil smples. It lso involves three subproblems of mpping locl pointer s onto the globl spce, determining the locl sizes, nd finding the repeting mpping ptterns. We first obtin the minimum size of globl spces ssuming tht locl pointer s tke negligible mount of spce compred with the globl spce. LOES lgorithm hs been developed for shring between smples of different sizes. The next step ws to bind the locl pointer s to the given globl s for the grph. We present both dynmic binding nd sttic binding methods nd compre them in terms of memory requirements nd code overheds. The proposed technique, including utomtic code genertion nd memory optimiztion, hs been implemented in block digrm design environment clled PeE. No mnul intervention is necessry for the proposed code genertion technique in PeE. The experimentl results show tht the proposed lgorithm is useful, especilly for the grphs with initil delys. The proposed lgorithm tht seprtes locl s nd globl s reduce more memory by 33% in the simplified H.263 encoder nd 22% in the H.263 encoder thn the shring lgorithm tht does not seprte locl s nd globl s. Through extensive shring optimiztions, utomtic softwre synthesis from dtflow progrm grph chieves the comprble code qulity with the mnully optimized code in terms of memory requirement. In this pper, we ssume tht the execution order of blocks is given from the compile-time scheduling. In the future, we will develop n efficient scheduling lgorithm which minimizes the memory requirement bsed on the proposed lgorithm. KNOWLEGMENTS This reserch is supported by Ntionl Reserch Lbortory Progrm (no. M ) nd rin Kore 2 Progrm. The RIT t Seoul Ntionl University provides reserch fcilities for this study.

16 Memory-Optimized Softwre Synthesis from tflow Progrm Grphs with Lrge Size t Smples 529 REFERENES [] OSSP User s Mnul, Synopsys, Mountin View, lif, US. [2] R. Luwereins, M. Engels, J.. Peperstrete, E. Steegmns, nd J. Vn Ginderdeuren, GRPE: SE tool for digitl signl prllel processing, IEEE SSP Mgzine,vol.7,no.2, pp , 990. [3] J. T. uck, S. H, E.. Lee, nd. G. Messerschmitt, Ptolemy: frmework for simulting nd prototyping heterogeneous systems, Interntionl Journl of omputer Simultions, vol. 4, no. 2, pp , 994. [4] E.. Lee nd. G. Messerschmitt, Sttic scheduling of synchronous dtflow progrms for digitl signl processing, IEEE Trns. on omputers, vol. 36, no., pp , 987. [5] Telenor Reserch, TMN (H.263) Encoder/ecoder Version 2.0, June 997, ftp://bonde.nt.no/. [6] P.K.Murthy,S.S.httchryy,ndE..Lee, Jointminimiztion of code nd dt for synchronous dtflow progrms, Journl of Forml Methods in System esign, vol., no., pp. 4 70, 997. [7] W. Sung, J. Kim, nd S. H, Memory efficient softwre synthesis from dtflow grph, in th Interntionl Symposium on System Synthesis (ISSS 98), pp , Hsinchu, Tiwn, ecember 998. [8] S.S.httchryy,P.K.Murthy,ndE..Lee, PGNnd RPM: omplementry heuristics for trnslting SP block digrms into efficient softwre implementtions, Journl of esign utomtion for Embedded Systems,vol.2,no.,pp.33 60, 997. [9] F. J. Kurdhi nd.. Prker, REL: progrm for register lloction, in Proc. 24th M/IEEE esign utomtion onference ( 87), pp , Mimi ech, Fl, US, June 987. [0] M. R. Grey,. S. Johnson, nd L. J. Stockmeyer, Some simplified NP-complete grph problems, Theoreticl omputer Science, vol., no. 3, pp , 976. [] J. Gergov, lgorithms for compile-time memory optimiztion, in Proc. 0th nnul M-SIM Symposium on iscrete lgorithms (SO 99), pp , ltimore, Md, US, Jnury 999. [2] E. e Greef, F. tthoor, nd H.. Mn, rry plcement for storge size reduction in embedded multimedi systems, in Proc. Interntionl onference on ppliction-specific rry Processors (SP), pp , Zurich, Switzerlnd, July 997. [3] P. K. Murthy nd S. S. httchryy, Shred implementtions of signl processing systems using lifetime nlysis techniques, IEEE Trnsctions on omputer-ided esign of Integrted ircuits nd Systems, vol. 20, no. 2, pp , 200. [4] S. Ritz, M. Willems, nd H. Meyr, Scheduling for optimum dt memory compction in block digrm oriented softwre synthesis, in Proc.IEEEInt.onf.coustics,Speech,Signl Processing, pp , etroit, Mich, US, My 995. [5] F. Gvril, lgorithms for minimum coloring, mximum clique, minimum covering by cliques, nd mximum independent set of chordl grph, SIM Journl on omputing, vol., no. 2, pp , 972. [6] S. S. httchryy nd E.. Lee, Memory mngement for dtflow progrmming of multirte signl processing lgorithms, IEEE Trns. Signl Processing, vol. 42, no. 5, pp , 994. [7] G. ilsen, M. Engels, R. Luwereins, nd J.. Peperstrete, yclo-sttic dt flow, IEEE Trns. Signl Processing, vol. 44, no. 2, pp , 996. Hyunok Oh is Ph.. cndidte in the School of omputer Science nd Engineering t Seoul Ntionl University, Kore. He received his.. degree (996) nd M.. degree (998) in computer engineering from Seoul Ntionl University, nd he is in Ph.. progrm from 998 to He is interested in hrdwre-softwre codesign, model of computtion, hrdwresoftwre cosynthesis, memory optimiztion, nd multimedi pplictions. Soonhoi H is currently n ssocite Professor in the School of Electricl Engineering nd omputer Science t Seoul Ntionl University. From 993 to 994, he worked for Hyundi Electronics Industries orportion. He received his.. degree (985) nd M.. degree (987) in electronics engineering from Seoul Ntionl University, nd Ph.. (992) degree in electricl engineering nd computer science from University of liforni, erkeley. He hs worked on Ptolemy project. His reserch interests include hrdwre-softwre codesign, design methodology for embedded systems, nd P clusters. He is member of the M nd IEEE omputer Society.

Midterm 2 Sample solution

Midterm 2 Sample solution Nme: Instructions Midterm 2 Smple solution CMSC 430 Introduction to Compilers Fll 2012 November 28, 2012 This exm contins 9 pges, including this one. Mke sure you hve ll the pges. Write your nme on the

More information

In the last lecture, we discussed how valid tokens may be specified by regular expressions.

In the last lecture, we discussed how valid tokens may be specified by regular expressions. LECTURE 5 Scnning SYNTAX ANALYSIS We know from our previous lectures tht the process of verifying the syntx of the progrm is performed in two stges: Scnning: Identifying nd verifying tokens in progrm.

More information

Complete Coverage Path Planning of Mobile Robot Based on Dynamic Programming Algorithm Peng Zhou, Zhong-min Wang, Zhen-nan Li, Yang Li

Complete Coverage Path Planning of Mobile Robot Based on Dynamic Programming Algorithm Peng Zhou, Zhong-min Wang, Zhen-nan Li, Yang Li 2nd Interntionl Conference on Electronic & Mechnicl Engineering nd Informtion Technology (EMEIT-212) Complete Coverge Pth Plnning of Mobile Robot Bsed on Dynmic Progrmming Algorithm Peng Zhou, Zhong-min

More information

An Efficient Divide and Conquer Algorithm for Exact Hazard Free Logic Minimization

An Efficient Divide and Conquer Algorithm for Exact Hazard Free Logic Minimization An Efficient Divide nd Conquer Algorithm for Exct Hzrd Free Logic Minimiztion J.W.J.M. Rutten, M.R.C.M. Berkelr, C.A.J. vn Eijk, M.A.J. Kolsteren Eindhoven University of Technology Informtion nd Communiction

More information

If you are at the university, either physically or via the VPN, you can download the chapters of this book as PDFs.

If you are at the university, either physically or via the VPN, you can download the chapters of this book as PDFs. Lecture 5 Wlks, Trils, Pths nd Connectedness Reding: Some of the mteril in this lecture comes from Section 1.2 of Dieter Jungnickel (2008), Grphs, Networks nd Algorithms, 3rd edition, which is ville online

More information

Fig.25: the Role of LEX

Fig.25: the Role of LEX The Lnguge for Specifying Lexicl Anlyzer We shll now study how to uild lexicl nlyzer from specifiction of tokens in the form of list of regulr expressions The discussion centers round the design of n existing

More information

MATH 25 CLASS 5 NOTES, SEP

MATH 25 CLASS 5 NOTES, SEP MATH 25 CLASS 5 NOTES, SEP 30 2011 Contents 1. A brief diversion: reltively prime numbers 1 2. Lest common multiples 3 3. Finding ll solutions to x + by = c 4 Quick links to definitions/theorems Euclid

More information

Dynamic Programming. Andreas Klappenecker. [partially based on slides by Prof. Welch] Monday, September 24, 2012

Dynamic Programming. Andreas Klappenecker. [partially based on slides by Prof. Welch] Monday, September 24, 2012 Dynmic Progrmming Andres Klppenecker [prtilly bsed on slides by Prof. Welch] 1 Dynmic Progrmming Optiml substructure An optiml solution to the problem contins within it optiml solutions to subproblems.

More information

9 Graph Cutting Procedures

9 Graph Cutting Procedures 9 Grph Cutting Procedures Lst clss we begn looking t how to embed rbitrry metrics into distributions of trees, nd proved the following theorem due to Brtl (1996): Theorem 9.1 (Brtl (1996)) Given metric

More information

L. Yaroslavsky. Fundamentals of Digital Image Processing. Course

L. Yaroslavsky. Fundamentals of Digital Image Processing. Course L. Yroslvsky. Fundmentls of Digitl Imge Processing. Course 0555.330 Lecture. Imge enhncement.. Imge enhncement s n imge processing tsk. Clssifiction of imge enhncement methods Imge enhncement is processing

More information

Unit #9 : Definite Integral Properties, Fundamental Theorem of Calculus

Unit #9 : Definite Integral Properties, Fundamental Theorem of Calculus Unit #9 : Definite Integrl Properties, Fundmentl Theorem of Clculus Gols: Identify properties of definite integrls Define odd nd even functions, nd reltionship to integrl vlues Introduce the Fundmentl

More information

From Dependencies to Evaluation Strategies

From Dependencies to Evaluation Strategies From Dependencies to Evlution Strtegies Possile strtegies: 1 let the user define the evlution order 2 utomtic strtegy sed on the dependencies: use locl dependencies to determine which ttriutes to compute

More information

Engineer To Engineer Note

Engineer To Engineer Note Engineer To Engineer Note EE-186 Technicl Notes on using Anlog Devices' DSP components nd development tools Contct our technicl support by phone: (800) ANALOG-D or e-mil: dsp.support@nlog.com Or visit

More information

Slides for Data Mining by I. H. Witten and E. Frank

Slides for Data Mining by I. H. Witten and E. Frank Slides for Dt Mining y I. H. Witten nd E. Frnk Simplicity first Simple lgorithms often work very well! There re mny kinds of simple structure, eg: One ttriute does ll the work All ttriutes contriute eqully

More information

2 Computing all Intersections of a Set of Segments Line Segment Intersection

2 Computing all Intersections of a Set of Segments Line Segment Intersection 15-451/651: Design & Anlysis of Algorithms Novemer 14, 2016 Lecture #21 Sweep-Line nd Segment Intersection lst chnged: Novemer 8, 2017 1 Preliminries The sweep-line prdigm is very powerful lgorithmic design

More information

Solving Problems by Searching. CS 486/686: Introduction to Artificial Intelligence Winter 2016

Solving Problems by Searching. CS 486/686: Introduction to Artificial Intelligence Winter 2016 Solving Prolems y Serching CS 486/686: Introduction to Artificil Intelligence Winter 2016 1 Introduction Serch ws one of the first topics studied in AI - Newell nd Simon (1961) Generl Prolem Solver Centrl

More information

Engineer-to-Engineer Note

Engineer-to-Engineer Note Engineer-to-Engineer Note EE-295 Technicl notes on using Anlog Devices DSPs, processors nd development tools Visit our Web resources http://www.nlog.com/ee-notes nd http://www.nlog.com/processors or e-mil

More information

Engineer To Engineer Note

Engineer To Engineer Note Engineer To Engineer Note EE-169 Technicl Notes on using Anlog Devices' DSP components nd development tools Contct our technicl support by phone: (800) ANALOG-D or e-mil: dsp.support@nlog.com Or visit

More information

CPSC 213. Polymorphism. Introduction to Computer Systems. Readings for Next Two Lectures. Back to Procedure Calls

CPSC 213. Polymorphism. Introduction to Computer Systems. Readings for Next Two Lectures. Back to Procedure Calls Redings for Next Two Lectures Text CPSC 213 Switch Sttements, Understnding Pointers - 2nd ed: 3.6.7, 3.10-1st ed: 3.6.6, 3.11 Introduction to Computer Systems Unit 1f Dynmic Control Flow Polymorphism nd

More information

such that the S i cover S, or equivalently S

such that the S i cover S, or equivalently S MATH 55 Triple Integrls Fll 16 1. Definition Given solid in spce, prtition of consists of finite set of solis = { 1,, n } such tht the i cover, or equivlently n i. Furthermore, for ech i, intersects i

More information

Solving Problems by Searching. CS 486/686: Introduction to Artificial Intelligence

Solving Problems by Searching. CS 486/686: Introduction to Artificial Intelligence Solving Prolems y Serching CS 486/686: Introduction to Artificil Intelligence 1 Introduction Serch ws one of the first topics studied in AI - Newell nd Simon (1961) Generl Prolem Solver Centrl component

More information

Spring 2018 Midterm Exam 1 March 1, You may not use any books, notes, or electronic devices during this exam.

Spring 2018 Midterm Exam 1 March 1, You may not use any books, notes, or electronic devices during this exam. 15-112 Spring 2018 Midterm Exm 1 Mrch 1, 2018 Nme: Andrew ID: Recittion Section: You my not use ny books, notes, or electronic devices during this exm. You my not sk questions bout the exm except for lnguge

More information

6.2 Volumes of Revolution: The Disk Method

6.2 Volumes of Revolution: The Disk Method mth ppliction: volumes by disks: volume prt ii 6 6 Volumes of Revolution: The Disk Method One of the simplest pplictions of integrtion (Theorem 6) nd the ccumultion process is to determine so-clled volumes

More information

Overview. Network characteristics. Network architecture. Data dissemination. Network characteristics (cont d) Mobile computing and databases

Overview. Network characteristics. Network architecture. Data dissemination. Network characteristics (cont d) Mobile computing and databases Overview Mobile computing nd dtbses Generl issues in mobile dt mngement Dt dissemintion Dt consistency Loction dependent queries Interfces Detils of brodcst disks thlis klfigopoulos Network rchitecture

More information

UNIT 11. Query Optimization

UNIT 11. Query Optimization UNIT Query Optimiztion Contents Introduction to Query Optimiztion 2 The Optimiztion Process: An Overview 3 Optimiztion in System R 4 Optimiztion in INGRES 5 Implementing the Join Opertors Wei-Png Yng,

More information

Parallel Square and Cube Computations

Parallel Square and Cube Computations Prllel Squre nd Cube Computtions Albert A. Liddicot nd Michel J. Flynn Computer Systems Lbortory, Deprtment of Electricl Engineering Stnford University Gtes Building 5 Serr Mll, Stnford, CA 945, USA liddicot@stnford.edu

More information

Lecture 10 Evolutionary Computation: Evolution strategies and genetic programming

Lecture 10 Evolutionary Computation: Evolution strategies and genetic programming Lecture 10 Evolutionry Computtion: Evolution strtegies nd genetic progrmming Evolution strtegies Genetic progrmming Summry Negnevitsky, Person Eduction, 2011 1 Evolution Strtegies Another pproch to simulting

More information

On the Detection of Step Edges in Algorithms Based on Gradient Vector Analysis

On the Detection of Step Edges in Algorithms Based on Gradient Vector Analysis On the Detection of Step Edges in Algorithms Bsed on Grdient Vector Anlysis A. Lrr6, E. Montseny Computer Engineering Dept. Universitt Rovir i Virgili Crreter de Slou sin 43006 Trrgon, Spin Emil: lrre@etse.urv.es

More information

Approximation by NURBS with free knots

Approximation by NURBS with free knots pproximtion by NURBS with free knots M Rndrinrivony G Brunnett echnicl University of Chemnitz Fculty of Computer Science Computer Grphics nd Visuliztion Strße der Ntionen 6 97 Chemnitz Germny Emil: mhrvo@informtiktu-chemnitzde

More information

Pointwise convergence need not behave well with respect to standard properties such as continuity.

Pointwise convergence need not behave well with respect to standard properties such as continuity. Chpter 3 Uniform Convergence Lecture 9 Sequences of functions re of gret importnce in mny res of pure nd pplied mthemtics, nd their properties cn often be studied in the context of metric spces, s in Exmples

More information

What are suffix trees?

What are suffix trees? Suffix Trees 1 Wht re suffix trees? Allow lgorithm designers to store very lrge mount of informtion out strings while still keeping within liner spce Allow users to serch for new strings in the originl

More information

COMP 423 lecture 11 Jan. 28, 2008

COMP 423 lecture 11 Jan. 28, 2008 COMP 423 lecture 11 Jn. 28, 2008 Up to now, we hve looked t how some symols in n lphet occur more frequently thn others nd how we cn sve its y using code such tht the codewords for more frequently occuring

More information

Data sharing in OpenMP

Data sharing in OpenMP Dt shring in OpenMP Polo Burgio polo.burgio@unimore.it Outline Expressing prllelism Understnding prllel threds Memory Dt mngement Dt cluses Synchroniztion Brriers, locks, criticl sections Work prtitioning

More information

a < a+ x < a+2 x < < a+n x = b, n A i n f(x i ) x. i=1 i=1

a < a+ x < a+2 x < < a+n x = b, n A i n f(x i ) x. i=1 i=1 Mth 33 Volume Stewrt 5.2 Geometry of integrls. In this section, we will lern how to compute volumes using integrls defined by slice nlysis. First, we recll from Clculus I how to compute res. Given the

More information

Section 10.4 Hyperbolas

Section 10.4 Hyperbolas 66 Section 10.4 Hyperbols Objective : Definition of hyperbol & hyperbols centered t (0, 0). The third type of conic we will study is the hyperbol. It is defined in the sme mnner tht we defined the prbol

More information

CS201 Discussion 10 DRAWTREE + TRIES

CS201 Discussion 10 DRAWTREE + TRIES CS201 Discussion 10 DRAWTREE + TRIES DrwTree First instinct: recursion As very generic structure, we could tckle this problem s follows: drw(): Find the root drw(root) drw(root): Write the line for the

More information

Fig.1. Let a source of monochromatic light be incident on a slit of finite width a, as shown in Fig. 1.

Fig.1. Let a source of monochromatic light be incident on a slit of finite width a, as shown in Fig. 1. Answer on Question #5692, Physics, Optics Stte slient fetures of single slit Frunhofer diffrction pttern. The slit is verticl nd illuminted by point source. Also, obtin n expression for intensity distribution

More information

1. SEQUENCES INVOLVING EXPONENTIAL GROWTH (GEOMETRIC SEQUENCES)

1. SEQUENCES INVOLVING EXPONENTIAL GROWTH (GEOMETRIC SEQUENCES) Numbers nd Opertions, Algebr, nd Functions 45. SEQUENCES INVOLVING EXPONENTIAL GROWTH (GEOMETRIC SEQUENCES) In sequence of terms involving eponentil growth, which the testing service lso clls geometric

More information

II. THE ALGORITHM. A. Depth Map Processing

II. THE ALGORITHM. A. Depth Map Processing Lerning Plnr Geometric Scene Context Using Stereo Vision Pul G. Bumstrck, Bryn D. Brudevold, nd Pul D. Reynolds {pbumstrck,brynb,pulr2}@stnford.edu CS229 Finl Project Report December 15, 2006 Abstrct A

More information

Epson Projector Content Manager Operation Guide

Epson Projector Content Manager Operation Guide Epson Projector Content Mnger Opertion Guide Contents 2 Introduction to the Epson Projector Content Mnger Softwre 3 Epson Projector Content Mnger Fetures... 4 Setting Up the Softwre for the First Time

More information

12-B FRACTIONS AND DECIMALS

12-B FRACTIONS AND DECIMALS -B Frctions nd Decimls. () If ll four integers were negtive, their product would be positive, nd so could not equl one of them. If ll four integers were positive, their product would be much greter thn

More information

pdfapilot Server 2 Manual

pdfapilot Server 2 Manual pdfpilot Server 2 Mnul 2011 by clls softwre gmbh Schönhuser Allee 6/7 D 10119 Berlin Germny info@cllssoftwre.com www.cllssoftwre.com Mnul clls pdfpilot Server 2 Pge 2 clls pdfpilot Server 2 Mnul Lst modified:

More information

ΕΠΛ323 - Θεωρία και Πρακτική Μεταγλωττιστών

ΕΠΛ323 - Θεωρία και Πρακτική Μεταγλωττιστών ΕΠΛ323 - Θωρία και Πρακτική Μταγλωττιστών Lecture 3 Lexicl Anlysis Elis Athnsopoulos elisthn@cs.ucy.c.cy Recognition of Tokens if expressions nd reltionl opertors if è if then è then else è else relop

More information

Preserving Constraints for Aggregation Relationship Type Update in XML Document

Preserving Constraints for Aggregation Relationship Type Update in XML Document Preserving Constrints for Aggregtion Reltionship Type Updte in XML Document Eric Prdede 1, J. Wenny Rhyu 1, nd Dvid Tnir 2 1 Deprtment of Computer Science nd Computer Engineering, L Trobe University, Bundoor

More information

Tool Vendor Perspectives SysML Thus Far

Tool Vendor Perspectives SysML Thus Far Frontiers 2008 Pnel Georgi Tec, 05-13-08 Tool Vendor Perspectives SysML Thus Fr Hns-Peter Hoffmnn, Ph.D Chief Systems Methodologist Telelogic, Systems & Softwre Modeling Business Unit Peter.Hoffmnn@telelogic.com

More information

Alignment of Long Sequences. BMI/CS Spring 2012 Colin Dewey

Alignment of Long Sequences. BMI/CS Spring 2012 Colin Dewey Alignment of Long Sequences BMI/CS 776 www.biostt.wisc.edu/bmi776/ Spring 2012 Colin Dewey cdewey@biostt.wisc.edu Gols for Lecture the key concepts to understnd re the following how lrge-scle lignment

More information

Small Business Networking

Small Business Networking Why network is n essentil productivity tool for ny smll business Effective technology is essentil for smll businesses looking to increse the productivity of their people nd processes. Introducing technology

More information

Mid-term exam. Scores. Fall term 2012 KAIST EE209 Programming Structures for EE. Thursday Oct 25, Student's name: Student ID:

Mid-term exam. Scores. Fall term 2012 KAIST EE209 Programming Structures for EE. Thursday Oct 25, Student's name: Student ID: Fll term 2012 KAIST EE209 Progrmming Structures for EE Mid-term exm Thursdy Oct 25, 2012 Student's nme: Student ID: The exm is closed book nd notes. Red the questions crefully nd focus your nswers on wht

More information

Stained Glass Design. Teaching Goals:

Stained Glass Design. Teaching Goals: Stined Glss Design Time required 45-90 minutes Teching Gols: 1. Students pply grphic methods to design vrious shpes on the plne.. Students pply geometric trnsformtions of grphs of functions in order to

More information

EECS150 - Digital Design Lecture 23 - High-level Design and Optimization 3, Parallelism and Pipelining

EECS150 - Digital Design Lecture 23 - High-level Design and Optimization 3, Parallelism and Pipelining EECS150 - Digitl Design Lecture 23 - High-level Design nd Optimiztion 3, Prllelism nd Pipelining Nov 12, 2002 John Wwrzynek Fll 2002 EECS150 - Lec23-HL3 Pge 1 Prllelism Prllelism is the ct of doing more

More information

Allocator Basics. Dynamic Memory Allocation in the Heap (malloc and free) Allocator Goals: malloc/free. Internal Fragmentation

Allocator Basics. Dynamic Memory Allocation in the Heap (malloc and free) Allocator Goals: malloc/free. Internal Fragmentation Alloctor Bsics Dynmic Memory Alloction in the Hep (mlloc nd free) Pges too corse-grined for llocting individul objects. Insted: flexible-sized, word-ligned blocks. Allocted block (4 words) Free block (3

More information

Fall 2018 Midterm 2 November 15, 2018

Fall 2018 Midterm 2 November 15, 2018 Nme: 15-112 Fll 2018 Midterm 2 November 15, 2018 Andrew ID: Recittion Section: ˆ You my not use ny books, notes, extr pper, or electronic devices during this exm. There should be nothing on your desk or

More information

P(r)dr = probability of generating a random number in the interval dr near r. For this probability idea to make sense we must have

P(r)dr = probability of generating a random number in the interval dr near r. For this probability idea to make sense we must have Rndom Numers nd Monte Crlo Methods Rndom Numer Methods The integrtion methods discussed so fr ll re sed upon mking polynomil pproximtions to the integrnd. Another clss of numericl methods relies upon using

More information

Agilent Mass Hunter Software

Agilent Mass Hunter Software Agilent Mss Hunter Softwre Quick Strt Guide Use this guide to get strted with the Mss Hunter softwre. Wht is Mss Hunter Softwre? Mss Hunter is n integrl prt of Agilent TOF softwre (version A.02.00). Mss

More information

Computing offsets of freeform curves using quadratic trigonometric splines

Computing offsets of freeform curves using quadratic trigonometric splines Computing offsets of freeform curves using qudrtic trigonometric splines JIULONG GU, JAE-DEUK YUN, YOONG-HO JUNG*, TAE-GYEONG KIM,JEONG-WOON LEE, BONG-JUN KIM School of Mechnicl Engineering Pusn Ntionl

More information

Performance Evaluation of Dynamic Reconfiguration in High-Speed Local Area Networks

Performance Evaluation of Dynamic Reconfiguration in High-Speed Local Area Networks Performnce Evlution of Dynmic Reconfigurtion in High-Speed Locl Are Networks Rfel Csdo, Aurelio Bermúdez, Frncisco J. Quiles, JoséL.Sánchez Depto. de Informátic Universidd de Cstill-L Mnch 271- Albcete,

More information

Stack. A list whose end points are pointed by top and bottom

Stack. A list whose end points are pointed by top and bottom 4. Stck Stck A list whose end points re pointed by top nd bottom Insertion nd deletion tke plce t the top (cf: Wht is the difference between Stck nd Arry?) Bottom is constnt, but top grows nd shrinks!

More information

Unit 5 Vocabulary. A function is a special relationship where each input has a single output.

Unit 5 Vocabulary. A function is a special relationship where each input has a single output. MODULE 3 Terms Definition Picture/Exmple/Nottion 1 Function Nottion Function nottion is n efficient nd effective wy to write functions of ll types. This nottion llows you to identify the input vlue with

More information

Small Business Networking

Small Business Networking Why network is n essentil productivity tool for ny smll business Effective technology is essentil for smll businesses looking to increse the productivity of their people nd business. Introducing technology

More information

Efficient Regular Expression Grouping Algorithm Based on Label Propagation Xi Chena, Shuqiao Chenb and Ming Maoc

Efficient Regular Expression Grouping Algorithm Based on Label Propagation Xi Chena, Shuqiao Chenb and Ming Maoc 4th Ntionl Conference on Electricl, Electronics nd Computer Engineering (NCEECE 2015) Efficient Regulr Expression Grouping Algorithm Bsed on Lbel Propgtion Xi Chen, Shuqio Chenb nd Ming Moc Ntionl Digitl

More information

vcloud Director Service Provider Admin Portal Guide vcloud Director 9.1

vcloud Director Service Provider Admin Portal Guide vcloud Director 9.1 vcloud Director Service Provider Admin Portl Guide vcloud Director 9. vcloud Director Service Provider Admin Portl Guide You cn find the most up-to-dte technicl documenttion on the VMwre website t: https://docs.vmwre.com/

More information

Transparent neutral-element elimination in MPI reduction operations

Transparent neutral-element elimination in MPI reduction operations Trnsprent neutrl-element elimintion in MPI reduction opertions Jesper Lrsson Träff Deprtment of Scientific Computing University of Vienn Disclimer Exploiting repetition nd sprsity in input for reducing

More information

Reducing a DFA to a Minimal DFA

Reducing a DFA to a Minimal DFA Lexicl Anlysis - Prt 4 Reducing DFA to Miniml DFA Input: DFA IN Assume DFA IN never gets stuck (dd ded stte if necessry) Output: DFA MIN An equivlent DFA with the minimum numer of sttes. Hrry H. Porter,

More information

A Tautology Checker loosely related to Stålmarck s Algorithm by Martin Richards

A Tautology Checker loosely related to Stålmarck s Algorithm by Martin Richards A Tutology Checker loosely relted to Stålmrck s Algorithm y Mrtin Richrds mr@cl.cm.c.uk http://www.cl.cm.c.uk/users/mr/ University Computer Lortory New Museum Site Pemroke Street Cmridge, CB2 3QG Mrtin

More information

Address Register Assignment for Reducing Code Size

Address Register Assignment for Reducing Code Size Address Register Assignment for Reducing Code Size M. Kndemir 1, M.J. Irwin 1, G. Chen 1, nd J. Rmnujm 2 1 CSE Deprtment Pennsylvni Stte University University Prk, PA 16802 {kndemir,mji,guilchen}@cse.psu.edu

More information

A Heuristic Approach for Discovering Reference Models by Mining Process Model Variants

A Heuristic Approach for Discovering Reference Models by Mining Process Model Variants A Heuristic Approch for Discovering Reference Models by Mining Process Model Vrints Chen Li 1, Mnfred Reichert 2, nd Andres Wombcher 3 1 Informtion System Group, University of Twente, The Netherlnds lic@cs.utwente.nl

More information

Tries. Yufei Tao KAIST. April 9, Y. Tao, April 9, 2013 Tries

Tries. Yufei Tao KAIST. April 9, Y. Tao, April 9, 2013 Tries Tries Yufei To KAIST April 9, 2013 Y. To, April 9, 2013 Tries In this lecture, we will discuss the following exct mtching prolem on strings. Prolem Let S e set of strings, ech of which hs unique integer

More information

A New Learning Algorithm for the MAXQ Hierarchical Reinforcement Learning Method

A New Learning Algorithm for the MAXQ Hierarchical Reinforcement Learning Method A New Lerning Algorithm for the MAXQ Hierrchicl Reinforcement Lerning Method Frzneh Mirzzdeh 1, Bbk Behsz 2, nd Hmid Beigy 1 1 Deprtment of Computer Engineering, Shrif University of Technology, Tehrn,

More information

A Formalism for Functionality Preserving System Level Transformations

A Formalism for Functionality Preserving System Level Transformations A Formlism for Functionlity Preserving System Level Trnsformtions Smr Abdi Dniel Gjski Center for Embedded Computer Systems UC Irvine Center for Embedded Computer Systems UC Irvine Irvine, CA 92697 Irvine,

More information

CS321 Languages and Compiler Design I. Winter 2012 Lecture 5

CS321 Languages and Compiler Design I. Winter 2012 Lecture 5 CS321 Lnguges nd Compiler Design I Winter 2012 Lecture 5 1 FINITE AUTOMATA A non-deterministic finite utomton (NFA) consists of: An input lphet Σ, e.g. Σ =,. A set of sttes S, e.g. S = {1, 3, 5, 7, 11,

More information

Revisiting the notion of Origin-Destination Traffic Matrix of the Hosts that are attached to a Switched Local Area Network

Revisiting the notion of Origin-Destination Traffic Matrix of the Hosts that are attached to a Switched Local Area Network Interntionl Journl of Distributed nd Prllel Systems (IJDPS) Vol., No.6, November 0 Revisiting the notion of Origin-Destintion Trffic Mtrix of the Hosts tht re ttched to Switched Locl Are Network Mondy

More information

Data Space Oriented Tiling

Data Space Oriented Tiling Dt Spce Oriented Tiling Mhmut Kndemir Deprtment of Computer Science nd Engineering The Pennsylvni Stte University University Prk, PA 16802, USA kndemir@cse.psu.edu Abstrct. An optimizing compiler cn ply

More information

4452 Mathematical Modeling Lecture 4: Lagrange Multipliers

4452 Mathematical Modeling Lecture 4: Lagrange Multipliers Mth Modeling Lecture 4: Lgrnge Multipliers Pge 4452 Mthemticl Modeling Lecture 4: Lgrnge Multipliers Lgrnge multipliers re high powered mthemticl technique to find the mximum nd minimum of multidimensionl

More information

Small Business Networking

Small Business Networking Why network is n essentil productivity tool for ny smll business Effective technology is essentil for smll businesses looking to increse the productivity of their people nd business. Introducing technology

More information

On Computation and Resource Management in Networked Embedded Systems

On Computation and Resource Management in Networked Embedded Systems On Computtion nd Resource Mngement in Networed Embedded Systems Soheil Ghisi Krlene Nguyen Elheh Bozorgzdeh Mjid Srrfzdeh Computer Science Deprtment University of Cliforni, Los Angeles, CA 90095 soheil,

More information

MATH 2530: WORKSHEET 7. x 2 y dz dy dx =

MATH 2530: WORKSHEET 7. x 2 y dz dy dx = MATH 253: WORKSHT 7 () Wrm-up: () Review: polr coordintes, integrls involving polr coordintes, triple Riemnn sums, triple integrls, the pplictions of triple integrls (especilly to volume), nd cylindricl

More information

Fall 2018 Midterm 1 October 11, ˆ You may not ask questions about the exam except for language clarifications.

Fall 2018 Midterm 1 October 11, ˆ You may not ask questions about the exam except for language clarifications. 15-112 Fll 2018 Midterm 1 October 11, 2018 Nme: Andrew ID: Recittion Section: ˆ You my not use ny books, notes, extr pper, or electronic devices during this exm. There should be nothing on your desk or

More information

9.1 apply the distance and midpoint formulas

9.1 apply the distance and midpoint formulas 9.1 pply the distnce nd midpoint formuls DISTANCE FORMULA MIDPOINT FORMULA To find the midpoint between two points x, y nd x y 1 1,, we Exmple 1: Find the distnce between the two points. Then, find the

More information

ECEN 468 Advanced Logic Design Lecture 36: RTL Optimization

ECEN 468 Advanced Logic Design Lecture 36: RTL Optimization ECEN 468 Advnced Logic Design Lecture 36: RTL Optimiztion ECEN 468 Lecture 36 RTL Design Optimiztions nd Trdeoffs 6.5 While creting dtpth during RTL design, there re severl optimiztions nd trdeoffs, involving

More information

Small Business Networking

Small Business Networking Why network is n essentil productivity tool for ny smll business Effective technology is essentil for smll businesses looking to increse the productivity of their people nd business. Introducing technology

More information

File Manager Quick Reference Guide. June Prepared for the Mayo Clinic Enterprise Kahua Deployment

File Manager Quick Reference Guide. June Prepared for the Mayo Clinic Enterprise Kahua Deployment File Mnger Quick Reference Guide June 2018 Prepred for the Myo Clinic Enterprise Khu Deployment NVIGTION IN FILE MNGER To nvigte in File Mnger, users will mke use of the left pne to nvigte nd further pnes

More information

Union-Find Problem. Using Arrays And Chains. A Set As A Tree. Result Of A Find Operation

Union-Find Problem. Using Arrays And Chains. A Set As A Tree. Result Of A Find Operation Union-Find Problem Given set {,,, n} of n elements. Initilly ech element is in different set. ƒ {}, {},, {n} An intermixed sequence of union nd find opertions is performed. A union opertion combines two

More information

Functor (1A) Young Won Lim 8/2/17

Functor (1A) Young Won Lim 8/2/17 Copyright (c) 2016-2017 Young W. Lim. Permission is grnted to copy, distribute nd/or modify this document under the terms of the GNU Free Documenttion License, Version 1.2 or ny lter version published

More information

OUTPUT DELIVERY SYSTEM

OUTPUT DELIVERY SYSTEM Differences in ODS formtting for HTML with Proc Print nd Proc Report Lur L. M. Thornton, USDA-ARS, Animl Improvement Progrms Lortory, Beltsville, MD ABSTRACT While Proc Print is terrific tool for dt checking

More information

Control-Flow Analysis and Loop Detection

Control-Flow Analysis and Loop Detection ! Control-Flow Anlysis nd Loop Detection!Lst time! PRE!Tody! Control-flow nlysis! Loops! Identifying loops using domintors! Reducibility! Using loop identifiction to identify induction vribles CS553 Lecture

More information

2014 Haskell January Test Regular Expressions and Finite Automata

2014 Haskell January Test Regular Expressions and Finite Automata 0 Hskell Jnury Test Regulr Expressions nd Finite Automt This test comprises four prts nd the mximum mrk is 5. Prts I, II nd III re worth 3 of the 5 mrks vilble. The 0 Hskell Progrmming Prize will be wrded

More information

Tree Structured Symmetrical Systems of Linear Equations and their Graphical Solution

Tree Structured Symmetrical Systems of Linear Equations and their Graphical Solution Proceedings of the World Congress on Engineering nd Computer Science 4 Vol I WCECS 4, -4 October, 4, Sn Frncisco, USA Tree Structured Symmetricl Systems of Liner Equtions nd their Grphicl Solution Jime

More information

Data Flow on a Queue Machine. Bruno R. Preiss. Copyright (c) 1987 by Bruno R. Preiss, P.Eng. All rights reserved.

Data Flow on a Queue Machine. Bruno R. Preiss. Copyright (c) 1987 by Bruno R. Preiss, P.Eng. All rights reserved. Dt Flow on Queue Mchine Bruno R. Preiss 2 Outline Genesis of dt-flow rchitectures Sttic vs. dynmic dt-flow rchitectures Pseudo-sttic dt-flow execution model Some dt-flow mchines Simple queue mchine Prioritized

More information

Small Business Networking

Small Business Networking Why network is n essentil productivity tool for ny smll business Effective technology is essentil for smll businesses looking to increse the productivity of their people nd business. Introducing technology

More information

Ma/CS 6b Class 1: Graph Recap

Ma/CS 6b Class 1: Graph Recap M/CS 6 Clss 1: Grph Recp By Adm Sheffer Course Detils Adm Sheffer. Office hour: Tuesdys 4pm. dmsh@cltech.edu TA: Victor Kstkin. Office hour: Tuesdys 7pm. 1:00 Mondy, Wednesdy, nd Fridy. http://www.mth.cltech.edu/~2014-15/2term/m006/

More information

Chapter 7. Routing with Frame Relay, X.25, and SNA. 7.1 Routing. This chapter discusses Frame Relay, X.25, and SNA Routing. Also see the following:

Chapter 7. Routing with Frame Relay, X.25, and SNA. 7.1 Routing. This chapter discusses Frame Relay, X.25, and SNA Routing. Also see the following: Chpter 7 Routing with Frme Rely, X.25, nd SNA This chpter discusses Frme Rely, X.25, nd SNA Routing. Also see the following: Section 4.2, Identifying the BANDIT in the Network Section 4.3, Defining Globl

More information

10.5 Graphing Quadratic Functions

10.5 Graphing Quadratic Functions 0.5 Grphing Qudrtic Functions Now tht we cn solve qudrtic equtions, we wnt to lern how to grph the function ssocited with the qudrtic eqution. We cll this the qudrtic function. Grphs of Qudrtic Functions

More information

How to Design REST API? Written Date : March 23, 2015

How to Design REST API? Written Date : March 23, 2015 Visul Prdigm How Design REST API? Turil How Design REST API? Written Dte : Mrch 23, 2015 REpresenttionl Stte Trnsfer, n rchitecturl style tht cn be used in building networked pplictions, is becoming incresingly

More information

A Priority-based Distributed Call Admission Protocol for Multi-hop Wireless Ad hoc Networks

A Priority-based Distributed Call Admission Protocol for Multi-hop Wireless Ad hoc Networks A Priority-bsed Distributed Cll Admission Protocol for Multi-hop Wireless Ad hoc Networks un Sun Elizbeth M. Belding-Royer Deprtment of Computer Science University of Cliforni, Snt Brbr suny, ebelding

More information

Announcements. CS 188: Artificial Intelligence Fall Recap: Search. Today. General Tree Search. Uniform Cost. Lecture 3: A* Search 9/4/2007

Announcements. CS 188: Artificial Intelligence Fall Recap: Search. Today. General Tree Search. Uniform Cost. Lecture 3: A* Search 9/4/2007 CS 88: Artificil Intelligence Fll 2007 Lecture : A* Serch 9/4/2007 Dn Klein UC Berkeley Mny slides over the course dpted from either Sturt Russell or Andrew Moore Announcements Sections: New section 06:

More information

Functor (1A) Young Won Lim 10/5/17

Functor (1A) Young Won Lim 10/5/17 Copyright (c) 2016-2017 Young W. Lim. Permission is grnted to copy, distribute nd/or modify this document under the terms of the GNU Free Documenttion License, Version 1.2 or ny lter version published

More information

Outline. Tiling, formally. Expression tile as rule. Statement tiles as rules. Function calls. CS 412 Introduction to Compilers

Outline. Tiling, formally. Expression tile as rule. Statement tiles as rules. Function calls. CS 412 Introduction to Compilers CS 412 Introduction to Compilers Andrew Myers Cornell University Lectur8 Finishing genertion 9 Mr 01 Outline Tiling s syntx-directed trnsltion Implementing function clls Implementing functions Optimizing

More information

Engineer To Engineer Note

Engineer To Engineer Note Engineer To Engineer Note EE-188 Technicl Notes on using Anlog Devices' DSP components nd development tools Contct our technicl support by phone: (800) ANALOG-D or e-mil: dsp.support@nlog.com Or visit

More information

Small Business Networking

Small Business Networking Why network is n essentil productivity tool for ny smll business Effective technology is essentil for smll businesses looking to increse the productivity of their people nd processes. Introducing technology

More information

Agenda & Reading. Class Exercise. COMPSCI 105 SS 2012 Principles of Computer Science. Arrays

Agenda & Reading. Class Exercise. COMPSCI 105 SS 2012 Principles of Computer Science. Arrays COMPSCI 5 SS Principles of Computer Science Arrys & Multidimensionl Arrys Agend & Reding Agend Arrys Creting & Using Primitive & Reference Types Assignments & Equlity Pss y Vlue & Pss y Reference Copying

More information