论文部分内容阅读
高层次综合(HLS,High-levelSynthesis)工具将时序或半时序的用高层次语言书写的行为级程序编译成寄存器传输级(RTL,RegisterTransferLevel)的硬件描述,从而加速超大规模集成电路的设计流程。它是电子设计自动化(EDA,ElectronicDesignAutomation)的重要一员以及电子系统级(ESL,ElectronicSystemLevel)设计的核心技术。然而与手工定制的RTL设计相比,通过高层次综合自动生成的RTL设计有时依然会存在显著的性能差距。访存是导致性能差距的最重要的原因之一。本工作的研究着重于高层次综合中的自动存储划分。结合20多年来在各个领域的存储划分技术,本文提出了一个面向高层次综合的存储划分的整体方案。本文的研究内容及创新点如下: (1)提出了进行存储体映射的方法。本文首先提出了一种基于线性变换的多维存储体映射方法。以往的方法在进行多维数组的存储划分时,会先将多维数组展开,再进行一维数组的存储划分。然而这样的方法使得划分结果因为数组的大小而不同。本文提出使用基于线性变换的存储体映射方法,使得最后存储划分的结果与数组的大小无关。然后,本文提出了一种基于多面体模型的通用存储体映射方法。它使用多面体模型对访问冲突进行建模,利用空多面体检测的方法探测访问冲突。除了基本的面向多维数组的循环划分,它包含了块循环划分、面向多端口存储器的存储划分、面向非完全循环流水的存储划分,以及面向多访问模式的存储划分等多种划分方式。 (2)提出了进行存储体内地址映射的方法。本文首先提出了一种基于多面体中整数点计算的存储体内地址映射方法。给定多面体的扫描顺序,该方法可以生成存储体内地址的最优解,从而使得划分后的存储资源使用最少。但是由于这种方法将产生复杂的地址转换逻辑,本文又提出了一种基于存储填充的启发式方法。该方法会产生一定的存储开销,但是可以有效的减少地址转换需要的逻辑资源开销。 (3)提出了进行数据重用缓存划分的方法。数据重用缓存的访问通常带有取模运算,以往的算法只处理仿射数组访问的情况,无法处理带有取模运算的数组访问。本文提出了一种基于存储填充的、可以根据带有取模运算的地址进行存储划分的方法。本文还将基于多面体模型的通用存储划分方法进行扩展,支持多维数据重用缓存的划分。 (4)提出了存储划分后的存储资源和互连资源优化的方法。首先,本工作基于存储划分的地址转换策略,提出了一个资源估计模型,对不同的存储划分策略进行选择。然后根据不同的优化目的,本文提出了分别针对存储资源和互连资源的优化方式。其中对于存储资源的优化包括存储合并优化和存储资源替代;对于互连资源的优化主要包括地址转换优化。 根据以上方法,本工作设计并实现了高层次综合的自动化存储划分工具,并且通过实验进行验证。对比当前国际上最先进的高层次综合存储划分方法,本文提出的方法更加综合全面。对于多维数组的存储划分,本文的方法可以得到更优的结果。本文提出的多个存储划分相关算法都为当前高层次综合存储划分的最先进算法,并已在多个EDA和FPGA领域的国际重要会议上发表。