DSP是对数字信号进行高速实时处理的专用处理器。
在当今的数字化的背景下,DSP以其高性能和软件可编程等特点,已经成为电子工业领域增长迅速的产品之一,人们对其性能、功耗和成本也提出了越来越高的要求,迫使DSP厂商开始在单一矽片上集成更多的处理器内核。本文分析了多核DSP必须面临的挑战,介绍了一些常见的多核DSP产品。
数字信号处理器(DSP)是对数字信号进行高速实时处理的专用处理器。在当今的数字化的背景下,DSP以其高性能和软件可编程等特点,已经成为电子工业领域增长迅速的产品之一。据市场研究公司In-Stat的报告,全球DSP市场今後将一直保持高速增长,其中2004年的付运量估计为15亿颗,2009年该数字可望达到28亿颗。其中,浮点DSP的应用市场可望从2004年的10亿美元增长到2009年的22亿美元。因此,全球DSP市场的前景非常广阔,DSP已成为数字通信、智慧控制、消费类电子产品等领域的基础器件,而通信市场2009年的比例可望达到61%。
Forward Concepts近公布的DSP/无线市场报告指出,Q2/2006 DSP晶片付运量较Q1上升了3.3%,达21亿美元。报告指出,虽然无线依然主宰著DSP市场72%的份额,其Q2增长幅度仅有2.8%,而来自汽车和消费领域的增长则分别高达38.7%和37.2%。数据显示,亚太地区依然是DSP的主要应用市场,而嵌入式DSP则占据了66%以上的市场份额。
图1 DSP市场概况
随著应用领域的扩大以及终端产品性能的日益丰富,人们对DSP系统的性能、功耗和成本提出了越来越高的要求,迫使DSP厂商开始在单一矽片上集成更多的处理器内核,於是多核DSP应运而生。
1、多核DSP关键技术
晶片制造工艺技术的进步和SoC设计与验证水准的提升分别是多核DSP诞生的硬体基础和软件基础。
目前,DSP巨头德州仪器公司(TI)的DSP晶片生产工艺已经达到75nm水准,能够在一块仅有拇指大小的单晶片上集成8个TMS320DSP内核。同时,多核DSP也离不开SoC设计水准的进步。SoC设计可以对整个系统的模型演算法、软硬体功能、晶片结构、各电路模块直至器件的设计进行综合考虑,可以在同样的工艺条件下,实现更高性能的系统指标。
以下介绍多核DSP必须面对的一些关键技术∶软硬体协同设计、软硬体协同验证、IP核生成与复用、高速互连总线、低功耗设计等。
(1)低功耗
多核DSP带来了更高的性能,但它相比传统的单核DSP也带来了更大的功耗。嵌入式应用,例如手机、数码相机等对功耗非常敏感。在以前的2G通信时代,人们习惯了200小时待机时间的手机,当然很难接受待机时间仅仅为一天的3G手机。因此多核DSP必须解决的大技术难题就是如何有效的降低平均功耗。
从硬体技术上来看,可以采用动态 电源 管理技术,设置全速、半速、休眠等工作模式,根据当前的任务强度和功耗监测信息,及时调整电压和频率,关闭暂时不使用的模块,以降低功耗。另外,根据特定的应用需求,设置专门的协处理器,同样可以减少DSP内核的运算强度。
从软件技术上来看,在编译指导下的多核DSP低功耗优化技术非常具有潜力。低功耗编译技术主要包括编译指导的动态电压调节、多线程功耗模型下的低功耗编译调度等。在操作系统的支持下,通过合理的调度,使处理器资源与演算法需求相适应,例如在DSP核+MCU的模式下,MCU就不应该处理DSP的有关程式。
(2)互连与存储系统
随着晶片面积的增大,长线互连延迟和信号完整性已经成为制约晶片主频的关键因素。当片上DSP核较少时,可用简单的总线结构或者Crossbar互连;当DSP核较多时可用二维mesh网络、3D Torus等进行互连,设计者必须在网络开销以及多核之间耦合的程度之间进行权衡,同时还要注意互连拓扑的可扩展性。为提高互连性能,应该采用高频、高带宽的超深亚微米片上互连结构,以便高效地实现节点间通信。
针对数据密集型的应用,多核DSP必须解决存储系统的效率问题。为此,必须要解决一系列关键技术,例如应该设计多大的片内存储器?数据的共用和通信在存储层次的哪一级来完成?Cache一致性在哪一级实现更合理?是通过片内共用存储器还是高速总线进行多核之间的通信?存储结构如何支持多线程的应用?
(3)编译技术与操作系统
多核DSP能否发挥的性能,在很大程度上取决於编译优化和嵌入式操作系统的有力支持。例如,多核DSP对多线程程式能够提供较高的性能,但是对于单线程应用的性能反而不高,甚至比单核DSP的性能还要低。
采用硬体动态提取线程是一种方法,但编译器更要担负起自动并行化的工作,即将串列程式自动地转换为等价的多线程并行代码,使用户不关心叠代空间划分、数据共用、线程调度和同步等细节,减轻用户负担。 更重要的是多线程优化编译技术,包括线程并发机制的实现、线程调度、线程级前瞻执行等技术。
多核之间的任务调度是充分利用多处理器性能的关键。为满足实时处理的要求,均衡各处理器负载,需要研究的任务调度机制有分散式实时任务调度演算法、动态任务迁移技术等。已有的几种嵌入式操作系统,例如μcLinux、PalmOS、WinCE等,都还无法有效地支持多核处理器。嵌入式多核操作系统的研究任重而道远。
(4)应用开发环境
嵌入式应用的特点决定了开发人员必须能够在很短的时间内推出能够为市场所接受的应用系统。为此,多核DSP供应商必须为用户提供简便易用的开发、调试环境。但是面向多核处理器的编程环境始终是不成熟的,并行程式开发技术一直难以普及。
为此,我们可以借鉴多核通用微处理器的编程模式,即消息传递程式设计模式MPI和基於编译指导命令的程式设计模式OpenMP。但是,终的发展趋势还将是集成化的VSP(Virtual Single Processor,虚拟单处理器模型)开发环境,在这一环境下用户能够像开发单处理器程式一样去开发多核应用系统,在同一平台上完成编程、调试、编译优化和连机测试的过程。
例如,Cradle公司在推出CT3600系列多核DSP的同时,还推出了相应的多核开发工具,包括ANSI C编译器、针对DSP进行了时序优化的Cradle C语言、eCOS实时操作系统、INSPECTORTM代码开发与调试器和RDS3600硬体开发平台等,从而为用户提供了一揽子的解决方案。