Location via proxy:   [ UP ]  
[Report a bug]   [Manage cookies]                
skip to main content
research-article

Synthesis of hardware models in C with pointers and complex data structures

Published: 01 December 2001 Publication History

Abstract

One of the greatest challenges in a C/C++-based design methodology is efficiently mapping C/C++ models into hardware. Many networking and multimedia applications implemented in hardware or mixed hardware/software systems now use complex data structures stored in multiple memories, so many C/C ++ features that were originally designed for software applications are now making their way into hardware. Such features include dynamic memory allocation and pointers for managing data. We present a solution for efficiently mapping arbitrary C code with pointers and malloc/free into hardware. Our solutoin, which fits current memory management methodologies, instantieates an application-specific hardware memory allocator coupled with a memory architecture. Our work also supports the resolution of pointers without restriction on the data structures. We present an implementation based on the SUIF framework along with case studies such as the realization of a video filter and an ATM segmentation engine.

References

[1]
F. Catthoor. S. Wuytack. E. De Greef, F Balasa, L. Nachtergaele, and A. Vandecappelle, Custom Memory Management Methodology. Dordrecht. Germany: Kluwer Academic, June 1998.]]
[2]
J. M. Chang and E. F. Gehringer. "A high-performance memory allocator for objectoriented systems," IEEE Trans. Comput., vol. 45, Mar. 1996.]]
[3]
A. Deuish, ''Interprocedural may-alias analysis for pointers: Beyond k-limiting,' in Proc. ACM SIGPL4N'94 Conf. Programming Language Design and Implementation, June 1994, pp. 23024}.]]
[4]
D. Evans, Static detection of dynamic memory errors," in Five. SIG PLAN Conf Programming Language Design and Implementation (PLDI '96). Philadelphia. PA, May 1996.]]
[5]
F. Ghiya and L. Uendren, "Is it a tree, a DAG, or a cyclic graph? A shape analysis for heapdirected pointers in C," in Proc. 23th Annu. ACM Swap. Principle of Programming Languages.]]
[6]
A. Ghosts, J. Kunkel, and S. Liao, Hardware synthesis from C/C++," in Proc Design, Automation and Test in Europe DATE'99, Munich, Germany, 1999. pp. 387-389.]]
[7]
A Kay. 1. Nomura. A. Yamada, K. Nishida, F. Sakorai, and T. Kambe. 'Hardware synthesis with Bach system," in Pose. IEEE Int. Symp. Circuits and Systems ISC',4S'99, Orlando, FL, May 1999.]]
[8]
I-I Keding, M. Willems, M. Coors, and H. Meyr, "FRIDGE: A fixedpoint design and simulation environment," in Proc. Design Automation and Test in Europe DATE'98, 1998, pp. 429-435.]]
[9]
B Kernighan and D. Ritchie, The C Programming Language. Englewood Cliffs, NJ: PrenticeHall, 1988.]]
[10]
L. Lavagno and E. Sentovich. "ECL: A specification environment for system-level design," in Proc Design Automation Conf. DAC'99, New Orleans. LA. June 1999, pp.511-516]]
[11]
S. Liao, S. Tjang. and R. Gupta, 'An efficient implementation of reactivity for modeling hardware in the scenic design environment," in Proc. Design Automation Conf. DAC'97, June 1997, pp. 70-75.]]
[12]
S. Muchnick, Advanced Compiler Design and Implementation. San Francisco, CA: Morgan Kaufmann, 1997.]]
[13]
G. De Micheli, "Hardware synthesis from C/C++," in Proc. Design. Automation and Test in Europe DATE'99, Munich, Germany, 1999, pp 382-383]]
[14]
P. R. Panda, N. D. Dutt, and A. Nicolau. Memory Issues in Embedded Systems-on-Chip: Optimizations and Exploration. Norwell, MA: Kluwer Academic, 1998.]]
[15]
P. J. Plauger, The Standard C Library. Englewood Cliffs, NJ: PrenticeHall. 1991.]]
[16]
P. Schaumont. S. Vernalde. L. RiJnders. M Engels. and I Bolscn" "A programming environment for the design at complex high speed ASICs." in Proc. Design Automation Conf. DAC'98. San Francisco. CA, June 1998, pp. 315-320.]]
[17]
L. Semria and G. De Micheli, "SpC: Synthesis of pointers in C. Application of pointer analysis to the behavioral synthesis from C." in Pop Int. Conf. Computer-Aided Design ICCAD '98, San Jose. CA. Nov. 1998. pp. 321-326.]]
[18]
-, "Encoding of pointers for hardware synthesis." in Proc. hit Workshop (P-based Synthesis and System Design IWL4S'98, Grenoble. France. Dec. 1998, pp. 57-63.]]
[19]
L. Semria, K. Saio, and G. De Micheli. "Resolution of dynamic memory allocation and pointers for the behavioral synthesis from C." in Proc. Design Automation and Test in Europe DATE'OO, Paris. France, Mar. 2000, pp. 312-319.]]
[20]
-, "Memory representation and hardware synthesis at C code vith pointers and complex data structures,'' in Proc. Synthesis and Svsfcni Integration of Mixed Technologies Workshop. SASIMI '00. Kyoto. April 2000, pp. 43-48,]]
[21]
L. Semena and A. Ghosh, "Methodology for hardware/software co-setification in C/C++," in Proc. Asia South Pacific Design Automation Conference ASP-DAC'OO. Yokohama, January 2000, pp. 405-408.]]
[22]
B. Steensgaard, "Point-to analysis by type inference of programs a oh structures and unions," in Proc. /nt. Conf. Compiler Con.struciiioi ICCC'96, Apr. 1996. pp. 136-ISO.]]
[23]
K. Wakabayashi. "C-based synthesis with behavioral ssnihesitei. cyber," in Proc. Design, Automation and Test in Europe DATE 99 Munich, Germany. 1999, pp. 390-391.]]
[24]
P. Wilson, M. Johnstone, and D. Boles, "Dynamic storage allocatio A survey and critical review," in Proc. Int. Workshop Memors' Managemew, Kinross, Scotland. Sept. 1995.]]
[25]
F. Wilson, "Efficient, context-sensitive pointer analysis for C programs." Ph.D. dissertation, Stanford Univ., 1997]]
[26]
F. Wilson and M. Lam, "Efficient context-sensitive pointer anal, for C programs," in Proc. ACM S/GPL4N'95 Conf. Progroznoioic' Languages Design and Implementation. June 1995. pp. I-12,]]
[27]
F. P. Wilson et al., "Suif: An infrastructure for research on parallelizing and optimizing compilers," ACM SIPLAN Notices, vol. 28, no. 9. pp 67-70, Sept. 1994.]]
[28]
S. Wuytack, F. Catthoor, and U. De Man. "Transforming set data i pc' to power optimal data structures," IEEE Trans. Computer Aided Desicn. pp. 619-629, June 1996.]]
[29]
S. Wuytack, J. da Silva Jr., F Catthoor, G. de Jong, and C. Yknian. "Memory management for embedded network applications." /LEE Trans Computer-Aided Design, vol. 18, pp. 533-544. May 1999.]]
[30]
"C Level Design, C2HDL, http://www.cleveldesign.com!."]]
[31]
"CoWare, N2C, http://www.coware.cont/.".]]
[32]
"CynApps, http://www.cynapps.cont/.".]]
[33]
"Frontier Design, A/ri Builder, http://www.lroniierd.com/.]]
[34]
"Synopsys CoCeniric SysiemC Compiler, hitp /ssss w s ii opsys.conslproducis/coce ntricsystemC/coceniric_sy sic in C .11 in} I.]]

Cited By

View all
  • (2022)A Case for Precise, Fine-Grained Pointer Synthesis in High-Level SynthesisACM Transactions on Design Automation of Electronic Systems10.1145/349143027:4(1-26)Online publication date: 8-Mar-2022
  • (2013)Modeling and simulation in a formal design frameworkProceedings of the 6th Balkan Conference in Informatics10.1145/2490257.2490274(31-38)Online publication date: 19-Sep-2013
  • (2013)Using memory profile analysis for automatic synthesis of pointers codeACM Transactions on Embedded Computing Systems10.1145/2442116.244211812:3(1-21)Online publication date: 8-Apr-2013
  • Show More Cited By

Recommendations

Comments

Information & Contributors

Information

Published In

cover image IEEE Transactions on Very Large Scale Integration (VLSI) Systems
IEEE Transactions on Very Large Scale Integration (VLSI) Systems  Volume 9, Issue 6
System Level Design
12/1/2001
261 pages

Publisher

IEEE Educational Activities Department

United States

Publication History

Published: 01 December 2001

Author Tags

  1. computer architecture
  2. computer language
  3. design automation
  4. memory management
  5. program compilers

Qualifiers

  • Research-article

Contributors

Other Metrics

Bibliometrics & Citations

Bibliometrics

Article Metrics

  • Downloads (Last 12 months)0
  • Downloads (Last 6 weeks)0
Reflects downloads up to 30 Aug 2024

Other Metrics

Citations

Cited By

View all
  • (2022)A Case for Precise, Fine-Grained Pointer Synthesis in High-Level SynthesisACM Transactions on Design Automation of Electronic Systems10.1145/349143027:4(1-26)Online publication date: 8-Mar-2022
  • (2013)Modeling and simulation in a formal design frameworkProceedings of the 6th Balkan Conference in Informatics10.1145/2490257.2490274(31-38)Online publication date: 19-Sep-2013
  • (2013)Using memory profile analysis for automatic synthesis of pointers codeACM Transactions on Embedded Computing Systems10.1145/2442116.244211812:3(1-21)Online publication date: 8-Apr-2013
  • (2012)Hardware synthesis of recursive functions through partial stream rewritingProceedings of the 49th Annual Design Automation Conference10.1145/2228360.2228583(1207-1215)Online publication date: 3-Jun-2012
  • (2010)Elastic computingACM SIGPLAN Notices10.1145/1755951.175590645:4(115-124)Online publication date: 13-Apr-2010
  • (2010)Elastic computingProceedings of the ACM SIGPLAN/SIGBED 2010 conference on Languages, compilers, and tools for embedded systems10.1145/1755888.1755906(115-124)Online publication date: 13-Apr-2010
  • (2010)Compiling for reconfigurable computingACM Computing Surveys10.1145/1749603.174960442:4(1-65)Online publication date: 23-Jun-2010
  • (2008)Traversal cachesProceedings of the 6th IEEE/ACM/IFIP international conference on Hardware/Software codesign and system synthesis10.1145/1450135.1450150(61-66)Online publication date: 19-Oct-2008
  • (2008)Construction of concrete verification models from C++Proceedings of the 45th annual Design Automation Conference10.1145/1391469.1391707(942-947)Online publication date: 8-Jun-2008
  • (2008)Optimized RTL Code Generation from Coarse-Grain Dataflow Specification for Fast HW/SW CosynthesisJournal of Signal Processing Systems10.1007/s11265-007-0070-952:1(13-34)Online publication date: 1-Jul-2008
  • Show More Cited By

View Options

View options

Get Access

Login options

Media

Figures

Other

Tables

Share

Share

Share this Publication link

Share on social media