首页> 外文学位 >Applying pointer analysis to the synthesis of hardware from C.
【24h】

Applying pointer analysis to the synthesis of hardware from C.

机译:将指针分析应用于C语言的硬件综合。

获取原文
获取原文并翻译 | 示例

摘要

With the advances in Computer Aided Design (CAD) technology, the design of digital circuits is becoming more and more as the development of software. Hardware is modeled using Hardware Description Languages (HDLs) very much as software is described using programming languages. Synthesis tools are used like compilers to map these HDL models into hardware. However, modern systems, which consist of mixed software/hardware modules, are often initially modeled using programming languages instead of HDLs. Specifically, C/C++-based languages with hardware support are used to quickly verify the functionality and estimate the performances at the system level.; One of the greatest challenges in C/C++-based design methodology is to efficiently map C/C++ models into hardware. Many of the networking and multimedia applications implemented in hardware or mixed hardware/software systems are making use of complex data structures stored in one or multiple memories. As a result, many of the 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 used to manage data.; In this thesis, I present a solution for efficiently mapping arbitrary C code with pointers and malloc/free into hardware. In hardware, a pointer is not only the address of data in memory, but it may also reference data mapped to registers, ports or wires. Pointer analysis is used to find the set of locations each pointer may reference in a program at compile time. The values of the pointers are then encoded, and branching statements are used to dynamically access data referenced by pointers. Dynamic memory allocation and deallocation are supported by instantiating hardware memory allocators tailored to an application and a memory architecture. Several optimizations may also be performed. A heuristic algorithm is presented to efficiently encode the values of the pointers. Compiler techniques may also be used to reduce storage before loads and stores.; An implementation using the SUIF compiler framework is presented, followed by some examples of implementations taken from multimedia and networking applications.
机译:随着计算机辅助设计(CAD)技术的进步,随着软件的发展,数字电路的设计也越来越多。硬件是使用硬件描述语言(HDL)进行建模的,就像使用编程语言描述软件一样。综合工具像编译器一样用于将这些HDL模型映射到硬件中。但是,由混合软件/硬件模块组成的现代系统通常最初是使用编程语言而非HDL来建模的。具体来说,具有硬件支持的基于C / C ++的语言用于快速验证功能并评估系统级别的性能。基于C / C ++的设计方法中的最大挑战之一是如何有效地将C / C ++模型映射到硬件中。在硬件或混合硬件/软件系统中实现的许多联网和多媒体应用程序都利用存储在一个或多个存储器中的复杂数据结构。结果,许多最初为软件应用程序设计的C / C ++功能现在已进入硬件。这些功能包括动态内存分配和用于管理数据的指针。在本文中,我提出了一种有效地将带有指针和 malloc / free 的任意C代码映射到硬件的解决方案。在硬件中,指针不仅是内存中数据的地址,而且还可以引用映射到寄存器,端口或电线的数据。指针分析用于查找每个指针在编译时可以在程序中引用的位置集。然后对指针的值进行编码,并使用分支语句动态访问指针引用的数据。通过实例化为应用程序和内存体系结构量身定制的硬件内存分配器,可以支持动态内存分配和释放。也可以执行几种优化。提出了一种启发式算法来有效地编码指针的值。编译器技术还可用于减少加载和存储之前的存储。介绍了使用 SUIF 编译器框架的实现,然后提供了一些来自多媒体和网络应用程序的实现示例。

著录项

相似文献

  • 外文文献
  • 中文文献
  • 专利
获取原文

客服邮箱:kefu@zhangqiaokeyan.com

京公网安备:11010802029741号 ICP备案号:京ICP备15016152号-6 六维联合信息科技 (北京) 有限公司©版权所有
  • 客服微信

  • 服务号