论文部分内容阅读
随着移动设备和嵌入式设备在生活中的普及,处理器对低能耗的要求会越来越高。全互连式VLIW结构处理器在时延、面积以及寄存器访问端口数量等设计方面的可优化空间出现瓶颈,针对此问题进行了改进的总线互连式分簇VLIW结构处理器具有明显优势,但后者增加了相应软件设计的难度和问题的复杂度。潜在的问题是使处理器在运行时产生额外的能量消耗。优秀的指令调度算法能通过合理安排指令在各周期分簇上的调度次序来降低软件能耗,从而降低整个处理的能耗,在低能耗处理器研究中的地位十分重要。而对于分簇VLIW处理器的调度算法,要满足指令之间的依赖关系,在为一条指令选择所在簇号的时候必须考虑其所依赖的指令被分配到的簇。如果当前指令与其所依赖指令不是分配到同一个簇中,那么就要引发至少一次的不同簇间指令处理结果的传递,复制指令执行结果的操作增加了额外能量消耗的同时,其所花费的周期很可能还会拖长整个程序的执行时间;而所有依赖于该指令的其他后继指令也会受到当前指令分簇的影响。基于上述需求,本论文分析了现有调度算法的现状,借鉴其他算法设计中优秀的解决思路并克服其缺点,提出一种基于数据依赖图的高度优先密切依赖的调度算法。算法主要思路是根据数据依赖图,将未调度节点看成是一个新的调度图;用节点高度实时确定当前图中的关键节点,确定当前节点与其他节点的密切依赖关系,并分别作为算法选择节点和分簇的依据。与其他算法相比,本算法的优势在于,既能从全局的视角统筹各指令的依赖关系,又能从局部分析当前待调度指令与存在密切依赖关系和竞争关系指令的相互影响,以达到各分簇调度节点的负载均衡;以优先调度实时关键路径节点的方式来平衡整个程序各部分的执行时间分配。通过实验证明,本算法在整个程序执行周期和簇间数据传递数量两项执行效果评价指标方面,存在明显优势。