论文部分内容阅读
异构多核DSP通过在一块芯片内集成多个DSP核和其他处理器核,可以将不同类型的计算任务分配到不同类型的处理器核上并行处理,是一种功能强大、灵活高效的嵌入式SoC处理器。异构多核DSP在处理数据流密集型应用时,相比单核DSP需要更大的存储带宽和更灵活的存储结构,对片上存储系统和数据通路具有更高的性能要求。如何有效减轻“存储墙”问题对异构多核DSP性能和扩展性的限制,成为异构多核DSP体系结构研究中的重要课题之一。数据前瞻技术是提高计算与存储并行性,缓解多核处理器中“存储墙”问题的有效手段。它通过前瞻地执行远程数据访问,将计算所需的数据提前送入距离处理器较近的局部存储器(例如数据Cache)内,能够有效减少本地访存失效,隐藏远程访问延迟。本文针对异构多核DSP应用中数据流密集的特点,从隐藏远程访问延迟、优化片上存储层次、改进数据管理效率和提高数据输入/输出带宽四个方面,有针对性地研究了几种数据流前瞻技术,并结合异构多核DSP实验平台SDSP和PolyDSP进行了性能分析与评测。本文的主要工作与创新点体现在以下几个方面:1)结合多核DSP课题组的工作,构建了共享存储结构的异构多核DSP“SDSP”,并以SDSP为超节点扩展出了大规模多核DSP系统原型“PolyDSP”。本文完善了SDSP和PolyDSP在各个层次上的同步与通信机制,以及系统的并行编程框架和DSP应用程序的并行映射方法。2)全面分析了典型DSP应用程序中的数据流分布特征。分析结果表明:单个DSP核运行所访问的数据、多个DSP核之间共享的数据以及Cache一致性失效涉及的数据中都分布着大量数据流;同时,多DSP核共享的数据流之间具有相似的生产顺序、消费顺序和相似的访问局部性。3)为了减少Cache一致性失效,隐藏远程访问延迟,提出了一种面向共享存储多核DSP结构的数据流分簇前向(forwarding)技术DSCF。DSCF技术采用专门的硬件模块执行软件原语发出的核间前向传输请求,将“消费者”DSP核所需的数据块提前分簇传送到它的私有数据Cache中,传输速度与消费速度相匹配。实验结果表明,DSCF技术有效降低了Cache一致性失效率,提高了共享存储多核DSP的计算性能,总体性能优于已有的Koufaty方法和Wenisch方法。4)为了优化异构多核DSP的片上存储层次,提出了一种适用于小规模多核DSP的快速共享便笺存储技术,并构建了其结构模型FCC-SDP。FCC-SDP以多体并行的小容量便笺存储器为传输媒介,采用基于硬件信号灯的同步机制,支持多个DSP核的并行访问和点对点事件同步,访问速度与一级数据Cache相当,能够快速实现DSP核间细粒度共享数据的传输。实验结果表明,FCC-SDP相比已有的VS-SPM结构具有明显的性能优势;采用FCC-SDP与共享Cache相结合的数据映射方式,将DSP核间的细粒度和不规则共享数据映射到FCC-SDP上,能够进一步提高片内的数据重用性和系统的计算性能。5)为了改进系统的数据流管理效率,设计了异构多核DSP的数据流传输控制引擎(DSTCE),并提出了一种利用DSTCE实现数据流前瞻传输的方法。DSTCE采用了可编程的后台传输机制,针对异构处理器核之间的数据流传输、超节点之间的数据通信和系统的并行编程与映射都进行了专门的设计优化。本文采用专用的前瞻操作原语,利用DSTCE实现了不同端口之间的数据流前瞻传输。DSTCE有效提高了异构多核DSP系统对数据流的管理效率,相比基于CC-NUMA结构的超节点扩展方案,基于DSTCE和片上网络的扩展方案在计算性能和数据带宽两方面都具有更好的扩展性。6)设计实现了异构多核DSP的外部存储器控制接口(EMCI)并提出了一种基于链表式数据流预取技术的访存带宽优化方法。EMCI的设计采用了多项关键技术,能够同时支持高速的DDR2存储器和多种异步存储器。本文采用两个基于链表结构的数据流预取缓冲器,识别并预取与二级Cache失效相关的数据流。实验结果表明,相比已有的两种预取方法,本文的方法以较低的硬件开销实现了比较令人满意的预取命中率、预取有效性和性能提升,具有更高的能效比。