可重构多核片上系统软硬件功能划分与协同技术研究
【摘要】:
集成可重构逻辑的多核片上系统包含通用处理器核心和用于布局专用硬件任务模块或者专用指令集处理器核心的可重构逻辑,既可以提供高性能和低功耗的计算能力,又可以进行重新配置以适应新的应用场景,是嵌入式系统未来的主流设计思路之一,具有良好的发展前景。
新技术的兴起为程序的开发和应用带来挑战。为了能充分发挥可重构多核片上系统的计算能力和优势,需要对任务进行合理的划分和调度,区分出适合在通用处理器核心上执行的软件任务和布局在可重构逻辑上的硬件任务,确定任务与计算单元间的动态映射关系,还需要为任务之间的交互设计灵活高效的通信机制。在可重构多核片上系统的设计与应用中存在着软硬件任务划分、任务调度和任务间通信等关键问题。
本文针对集成可重构逻辑的多核片上系统在设计和应用中存在的关键问题开展研究,主要研究工作和创新特色如下:
(1)分析了可重构多核片上系统在程序设计阶段存在的软硬件任务划分和调度问题,并给出了该问题的解决方案。在程序设计阶段需要通过软硬件协同综合过程获得程序的运行方案。在综合过程中需要对任务进行划分,并且确定每个任务的执行时机。传统的综合过程中,软硬件任务划分与任务调度分开进行,这割裂了任务间的依赖关系和计算资源间的并发关系,难以保证整个任务集合的执行效率。本文结合了传统的软硬件任务划分与任务调度技术,提出了一个高效的静态软硬件任务划分与调度算法,能够以相当于传统软硬件任务调度算法的开销同时获得有效的任务划分与任务调度方案,保证了任务集合的运行效率。
(2)分析了可重构多核片上系统在程序运行阶段存在的动态程序序列调度问题,并给出了该问题的解决方案。在程序运行阶段,可重构多核片上系统需要执行一系列应用程序,每个应用程序已经预先进行了软硬件任务划分,可以利用硬件任务加速执行。由于硬件资源始终有限,需要在运行时动态地决定每个应用程序的运行方案,合理的分派硬件资源在各个应用程序中的使用,使应用程序序列的执行时间最短。本文针对此问题,提出了一个有效的动态程序序列调度算法,能够以较低的开销在运行时依据应用程序序列的历史信息做出决策,为每个到达的应用程序设定合理的运行方案,确定其在何时何处分配硬件资源并执行,使得硬件资源在应用程序间合理配置,从而加速整个应用程序序列的执行。实验表明了该调度算法的有效性。
(3)分析了软硬件任务间通信的需求并且给出了相应的解决方案。可重构多核片上系统的程序由很多个任务协同组成。任务间通信机制是保证系统正常运行的基础,是系统设计中不可忽视的问题。本文结合目前软硬件设计的实际,采用面向过程的程序设计思路定义任务,提出了一种简单有效的软硬件任务间通信机制,为系统中各类任务之间的通信提供了一致的接口,保证了任务间通信的顺畅。基于该通信机制构建了一组由三个子方案组成的原型系统,兼灵活性和可扩展性,为可重构多核片上系统的研究提供了很好的支持。