论文部分内容阅读
可重构片上系统结合了通用处理器和ASIC(Application Specific Intergrated Circuits)两者的优点,既能够提供硬件的高效率又具有软件的可编程性,近年来已成为研究的热点。由于具有高性能、高可靠性和设计灵活等特点,此类系统在数据加解密、航空航天、计算机辅助设计等领域有着广泛的应用前景。但是目前可重构片上系统在实际的应用过程中仍然存在不少的困难。首先,现有的可重构片上系统的编程模型仍然比较复杂,系统开发过程过于依赖设计人员的开发经验和专业素质,进行系统开发的门槛较高,阻碍了此类系统更为广泛的应用;其次,应用开发人员需要了解体系结构和可重构器件实现的底层物理细节。而且由于应用领域不同,开发人员还需要针对特定领域需求,设计出相应的可重构系统硬件模块;最后,面向可重构片上系统的设计自动化是一种被普遍认可但尚未妥善解决的难题。针对可重构系统的特点,我们需要研究开发支持自动任务划分、算法映射和设计优化的工具。本文集中对面向可重构片上系统软硬件协同设计的硬件透明编程模型及其相关的系统功能表示、硬件方法封装、软硬件方法动态链接等问题进行探索和研究,主要工作如下:1.提出了一种以Java为描述语言的方法(过程)级硬件透明编程模型。该编程模型基于软硬件协同方法库,并且支持动态软硬件划分。在该编程模型框架下,程序设计者调用软件方法进行应用开发而无需理会底层的物理细节,开发效率得到了提高。2.提出了一种硬件方法封装方式并给出了详细流程。硬件方法封装有效地屏蔽了硬件加速器逻辑功能的实现细节以及通信与同步的相关细节。同时该封装方式可以帮助我们预先设计好面向领域的软硬件方法库,从而减轻开发人员的工作。3.设计并实现了一个运行时可重构Java虚拟机。该虚拟机根据软硬件划分结果动态加载并链接相应的硬件方法,从而达到简化编译器和综合工具、提高自动化程度的目的。实验结果表明上述编程模型能够支持硬件透明编程,同时系统性能得到了改善。在本实验中取得的阶段性成果为后续研究奠定了一定的理论基础,并积累了一些的实践经验。