论文部分内容阅读
可重构计算技术结合了通用处理器和ASIC两者的优点,既能够提供硬件的高效率又具有软件的可编程性,近年来已成为研究的热点。可重构系统的特点使它适合于计算密集型的大数据量处理任务,但是,由于应用领域不同,如何针对某个特定的应用领域设计一个优化的可重构结构是一个至关重要问题。另一方面,面向可重构系统的设计自动化研究仍是一个亟待解决的问题,现有的可重构开发系统编程模型复杂,自动化程度低,针对可重构系统的特点,需要研究开发支持自动任务划分,算法映射和设计优化的工具。本文围绕可重构系统任务划分、算法映射、可重构系统配置空间搜索、可重构计算系统结构和可重构系统在高性能计算领域的应用这几个方面进行了如下创新工作:(1)分析了动态可重构系统执行任务时的开销,提出了一种面向动态可重构系统多目标优化的任务时域划分算法——MOTPA,在可重构硬件资源约束条件下,将任务的数据流图划分成数个子模块。使用加权方法将子模块中操作执行时间和模块间数据通信引起的延时统一为划分代价,根据每种延时在总代价中所占比例来选取优化的方向。并且通过建立就绪列表的方法,避免了划分过程中出现死锁问题,保证了各个操作正确的执行顺序。理论分析和实验结果表明,MOTPA算法可以在O(|V|~2+|V||E|)时间内(|V|为数据流图节点数,|E|为边数)找到一个可行的划分方案,能有效地提高应用算法在动态可重构结构上的执行效率。(2)提出了基于模拟退火的面向粗粒度可重构阵列的任务映射方法。为使映射方法不依赖于任何具体的可重构结构,首先定义了描述可重构系统的结构特征参数,并提出了可重构结构的参数化描述模型。参数模型既能反映可重构系统的结构特征,又能反映可重构结构的层次性,具有良好的灵活性,能够描述不同类型的二维网格型可重构系统结构。在此基础上,设计了基于模拟退火的粗粒度可重构阵列任务映射方法,该方法以任务的数据流图描述和可重构系统参数描述模型为输入,根据系统描述的约束条件,产生一个初始映射,然后通过迭代优化,获得较好的映射结果。(3)研究了部分可重构系统,分析了配置序列对部分可重构系统性能的影响,提出了在部分可重构系统配置空间中搜索最优配置序列的算法。在应用算法分割成多个任务的前提下,通过建立部分可重构系统任务执行模型,给出了任务在系统上执行代价的目标函数。根据部分可重构系统中,任务执行和配置可重叠的特性,给出了配置切换代价计算方法。在此基础上,设计了基于动态规划的配置空间搜索算法,算法可以在O(nm~2)(n为任务数,m为每个任务最大可选配置数)时间内搜索出使目标函数取得最小值的最优配置序列。结果表明,合理地选择配置序列,可以有效提高算法在部分可重构系统上的执行效率。(4)进行了可重构系统体系结构方面研究。设计了一个原型系统——异步可重构密码引擎(ARCEN)。并且,为了更好开展可重构体系结构研究,设计并开发了一个面向网格型可重构阵列的模拟器——JRSim。因为模拟器中计算单元结构可以灵活改变,能够自行增添专用指令,也可以自定义各种总线结构,所以,借助高级语言开发的模拟器可以实现原型计算系统的快速建模,方便验证评价可重构体系的性能。(5)为了研究可重构系统对于计算任务的加速性能,开展了可重构系统应用研究,包括:基于ARCEN平台的密码算法映射研究;基于JRSim模拟器的矩阵乘法实现研究;基于FPGA的RS隐写分析算法实现研究。这三方面工作分别涵盖了专用可重构系统(ARCEN),粗粒度可重构系统(JRSim)和通用可重构系统(FPGA)的应用研究。其中矩阵乘法实现和RS算法实现都给出了具体的实验结果数据,从数据分析可以看出,可重构计算与传统的软件实现方案相比,具有很明显的性能优势。