论文部分内容阅读
移动通信系统自从3G以来就进入了快速发展的时期。目前4G已经在全球范围内商用,5G也将在2020年完成标准化进程。5G中有许多新增的场景,例如虚拟现实和增强现实,这些新场景使得用户平面的数据速率需求提升到1Gbps之高。在高性能的同时,多模式是当前移动通信系统的另一主要特征。因此,移动通信系统的基带设计面临着前所未有的挑战。传统的以ASIC硬件加速器为计算核心的基带芯片方案已经很难跟上当前快速演进的移动通信系统。以数字信号处理器(Digital Signal Processor, DSP)为计算核心的软件无线电(Software Defined Radio,SDR)方案因为采用软件编程的方法,在成本、灵活度、以及系统升级方面都表现出了优势。当然,任何技术优势都不会是免费的。高性能、多模式以及快速增长的片上晶体管的数目都意味着应用程序再也不能免费使用硬件资源,并行处理成为了SDR方案中的核心问题和挑战。 DSP处理器一般使用单指令多数据(Single Instruction Multiple Data,SIMD)和超长指令字(Very Long Instruction Word, VLIW)架构来支撑数据级和指令级的并行。自动向量化技术则负责完成应用程序到架构的自动映射功能,无论是在学术界还是工业界都已经有了比较成功的先例。然而,单核的SIMD和VLIW架构不足以满足应用程序对计算能力的需求,在数字信号处理领域,尤其是基带信号处理,片上多核系统已经成为主流。基带、数字多媒体等嵌入式多核片上系统的主流架构是一个RISC主控制器加多个DSP的主从架构,DSP处理器负责完成具体的计算任务,主控制器负责各个DSP处理器管理控制。因此,多核心的调度控制在粗粒度的并行上扮演着重要的角色。更进一步的,多模基带带来了更多动态变化的场景,势必需要基带具备并行度在线伸缩调整的能力。传统的使用操作系统来管理控制多核心的方式无论是静态调度还是动态变化都很难满足基带硬实时的严苛需求。 综上所述,以矢量DSP为处理核心的软基带芯片,并行处理问题,尤其是粗粒度、多核心的并行处理方面面临设计难题。针对这个问题,本文的主要研究内容和核心贡献如下。 本文从结构无关的程序分析出发,植根于编译技术和LLVM框架,从程序的中间表示中分析和提取粗粒度并行。与传统的结构相关的程序在线执行分析相比,结构无关的程序分析方法可以在设计的早期得到准确的量化数据,从而指导后期的结构设计。本文提出了在控制流图(Control Flow Graph,CFG)中识别强连通子图(Strongly Connected Components,SCC),以SCC作为粗粒度并行提取的基本单位。因为对于基带应用程序,核心计算都是由循环来承载的,而循环在控制流图中恰好呈现为强连通子图的形式。SCC在保留了核心计算结构的同时,合理地降低了粒度。实验评估了4G基带应用程序和MediaBench提供的测试基准程序两种典型的流式应用程序,与传统的以函数为基本单位的粗粒度并行分析相比,以SCC为基本单位的并行度分析可以平均多找到17%到19%的并行度。 通过结构无关的程序分析,可以得到以SCC为基本单位的程序依赖图,不同维度的并行度都可以在程序依赖图中进行表征。利用软流水调度技术,不同维度的并行可以通过多核架构得到支撑。为了提升片上多核任务调度的效率和并行度,本文为矢量DSP设计了紧耦合的控制字队列和调度器来支撑软流水调度。在紧耦合的控制字队列中可以添加或者删除任务,调度器负责进行状态转移控制和与其它矢量DSP进行同步。紧耦合控制字队列和调度器将很多调度和控制的功能在矢量DSP本地完成,大大地释放了主控制单元的计算力,以6%左右的面积开销和7%左右的功耗开销,将整体的调度控制开销控制在0.6%以下。 针对多模基带动态变化的场景,本文提出了一种动态并行度调整算法,降低不必要的并行带来的同步开销,并兼顾全局负载均衡,保证系统整体性能。更进一步的,根据软流水模型的退出期和建立期完成在线的场景切换,兼容硬件设计,不产生额外的硬件实现代价。为了验证本文提出的算法的有效性,本文选择Flextream的动态调度系统方案进行对比,实验评估证明,本文提出的基于并行度调整的资源重分配算法可以带来17%的性能收益,并同时降低7%的切换开销。