异构多核可重构片上系统关键技术研究
【摘要】:片上多核系统(Multi processor System-on-Chip,MPSoC),将通用处理器、DSP、ASIP以及IP核等异构计算单元集成到单芯片中,以更好地满足不同类型任务的需求。然而随着嵌入式应用领域不断向多样性的方向发展,需要针对不同的应用特征定制硬件计算平台。基于可重构技术的片上多核处理器是一种将可重构技术与MPSoC相结合的解决方案,可以利用可重构逻辑器件的硬件可编程性,针对不同的应用特征优化系统性能,从而能够在充分利用片上多核计算资源的前提下更有效地满足嵌入式领域的不同应用要求。
然而,硬件系统的功能可重构需要计算机硬件结构在设计完成后根据应用程序特点进行动态更改,这与传统的片上多核系统有较大区别。其动态变化的特征无疑给片上多核系统的设计带来了新的挑战,需要进一步研究可重构片上多核系统的设计框架,以及新的特征所带来的一系列新的问题,包括软硬件功能的动态划分和任务调度、互联模型和通信机制、以及编程模式等,以便充分挖掘系统的处理性能。
本文针对上述问题,开展了有关异构多核可重构片上系统关键技术的研究。论文的主要工作和创新之处包括:
一、搭建了异构多核可重构片上系统的研究环境。主要包括: (1)设计与实现了基于ADL描述语言的片上多核系统(MPSOC)仿真器,用于MPSOC体系结构设计方案的评估。
(2)基于Xilinx FPGA开发板,构建了基础研究平台。该平台可集成多种类型的通用处理器,以及硬件IP核,具有异构、多核、可重构的基本特征。可用于软硬件功能划分、任务调度、计算资源互联等技术有效性的验证。
二、研究了异构多核可重构片上系统的体系结构问题。通过引入面向服务的理念和服务体-执行流的概念,提出了一种面向服务的异构多核可重构片上系统层次化模型。该模型将系统中的计算资源抽象为若干种服务体,包括核心调度服务体、用户服务体、软硬件计算服务体。核心调度服务体负责软硬件功能的动态划分与任务调度,用户服务体负责为应用程序提供编程接口,软硬件计算服务体提供计算服务。面向服务概念的引入使得系统具有良好的可扩展性,并可向用户提供一致的编程接口,有利于解决异构多核系统的“编程墙”问题,提高了系统的适用性。
三、研究了软硬件功能动态调整和任务调度问题。主要包括:
(1)首先应用动态剖析技术获得程序运行的热点代码,进而提出了一种将软硬件功能动态划分与任务调度相结合的性能评估方法,以指导软硬件功能动态调整重构,从而可以针对系统不同层次的性能需求给出不同的硬件平台重构方案和任务划分方案。
(2)提出了一种片上异构多核系统中的任务流动态调度算法MP-Tomasulo。该算法借鉴单核的指令级指令级动态调度技术,实现了多核环境下的任务级并行,有效提高了系统的性能。
四、研究了片上计算资源互联模型和通信机制。主要包括: (1)设计并实现了一种基于点对点总线的星型互联架构和任务通信模型。该互联架构以较低的硬件开销获得了较高的通信效率,可以实现计算资源互联的快速静态重构,有利于搭建原型系统。
(2)将基于交叉开关的可重构互联策略分别应用到片上多核系统设计及高速大容量存储器设计中,并分别实现了原型系统。其主要特色在于可以在任务运行时对互联通路进行动态配置,具有较高的灵活性。