HLS Support for Unconstrained Memory Accesses

A major constraint in high-level synthesis (HLS) for large-scale ASIC systems is memory access patterns. Typically, most stateof-the-art HLS tools severely constrain the kinds of memory references allowed in the source, requiring them to have predictable access patterns or requiring dependencies between them to be statically determinable. This paper shows how these constraints can be eliminated. We present an analysis infrastructure that can be used within any HLS toolflow for synthesizing circuits from high-level abstractions, such as ANSI-C, where no assumptions are made about either memory access latencies or about dependencies between memory references, i.e., arbitrary pointer aliasing are allowed. Our solution starts with a generic framework for building a dependenceaware, fully distributed, although often conservative, memoryaccess network (MAN) for a given memory-dependence graph. Then, we propose a suite of optimizations to customize the MAN for the given specification. All these techniques guarantee memory coherency. Experimental results on Mediabench benchmarks, show that such an approach succeeds in maintaining high levels of parallelism, while ensuring memory coherency. The optimizations succeed in lowering the synchronization overhead by as much as 4x.

[1]  Seth Copen Goldstein,et al.  C to Asynchronous Dataflow Circuits: An End-to-End Toolflow , 2004 .

[2]  Jan M. Rabaey,et al.  Memory Estimation for High Level Synthesis , 1994, 31st Design Automation Conference.

[3]  Seth Copen Goldstein,et al.  Pegasus: An Efficient Intermediate Representation , 2002 .

[4]  Keshav Pingali,et al.  The program structure tree: computing control regions in linear time , 1994, PLDI '94.

[5]  Miodrag Potkonjak,et al.  MediaBench: a tool for evaluating and synthesizing multimedia and communications systems , 1997, Proceedings of 30th Annual International Symposium on Microarchitecture.

[6]  Margaret Martonosi,et al.  Wattch: a framework for architectural-level power analysis and optimizations , 2000, Proceedings of 27th International Symposium on Computer Architecture (IEEE Cat. No.RS00201).

[7]  Stan Y. Liao,et al.  Hardware synthesis from C/C++ , 1999, DATE '99.

[8]  裕幸 飯田,et al.  International Technology Roadmap for Semiconductors 2003の要求清浄度について - シリコンウエハ表面と雰囲気環境に要求される清浄度, 分析方法の現状について - , 2004 .

[9]  Alice C. Parker,et al.  SMASH: a program for scheduling memory-intensive application-specific hardware , 1994, Proceedings of 7th International Symposium on High-Level Synthesis.

[10]  Li Shang,et al.  A comprehensive high-level synthesis system for control-flow intensive behaviors , 2003, GLSVLSI '03.

[11]  Monica S. Lam,et al.  Efficient context-sensitive pointer analysis for C programs , 1995, PLDI '95.

[12]  Stan Y. Liao Towards a new standard for system-level design , 2000, CODES '00.

[13]  Eric Senn,et al.  Memory accesses management during high level synthesis , 2004, International Conference on Hardware/Software Codesign and System Synthesis, 2004. CODES + ISSS 2004..

[14]  Prithviraj Banerjee,et al.  Automatic translation of software binaries onto FPGAs , 2004, Proceedings. 41st Design Automation Conference, 2004..

[15]  Frank Vahid,et al.  Techniques for synthesizing binaries to an advanced register/memory structure , 2005, FPGA '05.

[16]  Sharad Malik,et al.  Exact memory size estimation for array computations without loop unrolling , 1999, DAC '99.

[17]  Nikil D. Dutt,et al.  Integrating Program Transformations In The Memory-based Synthesis Of Image And Video Algorithms , 1994, IEEE/ACM International Conference on Computer-Aided Design.

[18]  Giovanni De Micheli,et al.  Synthesis of hardware models in C with pointers and complex data structures , 2001, IEEE Trans. Very Large Scale Integr. Syst..

[19]  Kazutoshi Wakabayashi,et al.  C-based synthesis experiences with a behavior synthesizer, "Cyber" , 1999, Design, Automation and Test in Europe Conference and Exhibition, 1999. Proceedings (Cat. No. PR00078).

[20]  Taewhan Kim,et al.  Memory access scheduling and binding considering energy minimization in multi-bank memory systems , 2004, Proceedings. 41st Design Automation Conference, 2004..

[21]  Pedro C. Diniz,et al.  Synthesis of pipelined memory access controllers for streamed data applications on FPGA-based computing engines , 2001, International Symposium on System Synthesis (IEEE Cat. No.01EX526).

[22]  Seth Copen Goldstein,et al.  Spatial computation , 2004, ASPLOS XI.

[23]  Michael Hind,et al.  Evaluating the effectiveness of pointer alias analyses , 2001, Sci. Comput. Program..

[24]  Taewhan Kim,et al.  An integrated algorithm for memory allocation and assignment in high-level synthesis , 2002, DAC '02.

[25]  Seth Copen Goldstein,et al.  Optimizing memory accesses for spatial computation , 2003, International Symposium on Code Generation and Optimization, 2003. CGO 2003..

[26]  Arvind,et al.  High-level synthesis: an essential ingredient for designing complex ASICs , 2004, ICCAD 2004.

[27]  Francky Catthoor,et al.  Storage requirement estimation for optimized design of data intensive applications , 2004, TODE.

[28]  Arvind,et al.  High-level synthesis: an essential ingredient for designing complex ASICs , 2004, IEEE/ACM International Conference on Computer Aided Design, 2004. ICCAD-2004..

[29]  Koichi Nishida,et al.  A C-based synthesis system, Bach, and its application (invited talk) , 2001, ASP-DAC '01.

[30]  Nikil D. Dutt,et al.  A comprehensive estimation technique for high-level synthesis , 1995, Proceedings of the Eighth International Symposium on System Synthesis.