论文部分内容阅读
动态可重构硬件加速技术利用现场可编程器件的可编程资源,通过硬件电路逻辑实现高速运算。其核心流程是将原本软件实现的运算动态地优选出最适合于硬件实现的部分移植到可编程器件上,通过动态可重构硬件的逻辑电路实现。在可重构计算已有的研究中,大都是从应用程序的源代码的人工或者辅助分析出发,定位出使用频度最高的部分,然后改写并将计算任务迁移到可编程器件上执行。这种从源代码级别开始的协同设计流程由于需要大量的人工参与,使得设计过程效率低下,也难以在运行时动态评价和选取适合于硬件实现的部分。本文的工作针对上述问题,对可重构计算中硬件加速器的自动化实现方法开展研究。通过在运行过程中对目标应用程序进行动态分析,实时地划分和选取适合于硬件实现的模块,最终根据资源和收益的准则对软硬件功能划分进行优化。以可满足性问题(SAT)求解为例,具体实现了硬件加速器对软件系统的性能改进。论文工作的具体内容如下:(1)提出运行时基本代码块模型(RBBL),该模型有效地对程序的运行模式动态地进行识别和描述。模型可以有效地将程序运行过程中各个运行时代码块之间的控制依赖性和数据依赖性进行记录,分析提取并评估基本代码模块,用以指导软硬件的划分和动态可重构模块的构造。(2)在分析应用程序运行特性的基础上,提出了基于软件运行时计算模式的面向可重构硬件加速的软硬件划分方法。计算模式定义为一组有逻辑联系和数据相关性的操作,它由连续或者不连续的代码片断构成,能够完成特定的计算任务,是软硬件划分的粒度模型。在这种模型指导下,硬件实现的部分可以表达和处理一个完整的给定规模递归求解问题,计算模式之外的软件部分则处理递归计算的高端迭代过程。该方法保证了计算任务内部在运行时的逻辑联系和数据依赖,具有节省控制和数据通信开销的优势。(3)研究并实现了大规模并发模式的SAT求解硬件加速器,提高SAT问题的求解效率。利用面向软硬件功能划分的软件自动化分析工具得出SAT求解算法的运行特性和计算模式。基于计算模式的划分方法将SAT问题求解过程中的子问题求解过程作为软硬件划分的基本单元提取出来,完成软硬件功能划分。SAT问题特有的计算模式通过大规模并发的实现方式部署到可重构计算器件运行,最后获取求解性能的收益。与其他的以SAT子句为硬件加速对象的硬件加速器相比较,文中的SAT求解硬件加速器能够压缩实际体现出来的问题复杂度,在求解高难度SAT问题时具有性能优势。