这类DSP一般针对某一类应用集成专用的协处理器,从而对DSP实现算法加速。TI的研究表明,对于像MPEG4编解码这样的任务,使用协处理器可以降低50%的DSP负荷,从而平衡系统功耗。
TI 公司的高性能数字信号处理器TMS320C6416是这类多核DSP的典型代表。该DSP除了包含一个功能强大的C64x DSP核之外,还集成了一个维特比协处理器(VCP)和一个Turbo解码协处理器。其中维特比协处理器用于语音和低码率数据通道解码,支持500个 8Kb/s码率的语音通道,并且可以对强制长度、码率和帧长度等解码参数进行编程。Turbo协处理器用于高码率数据通道的解码,支持35个 384Kb/s码率的数据通道。
另外一个例子就是Motorola 公司的MSC8126 多核DSP。该DSP集成了4颗StarCoreTM DSP核、一个Turbo协处理器、一个维特比协处理器、UART接口、4个TDM串行接口、32个通用定时器、以太网接口及16通道DMA。该DSP在 最先进的90nm工艺下生产,在400MHz主频下,其4个扩展内核可以达到最高每秒6400MMAC(百万次乘加操作)的性能。除了每个DSP核内包含 228KB的M1存储器之外,片内还集成了476KB的共享M2存储器。支持可变长指令是该DSP的另外一个特点。
多核DSP面临的挑战
低功耗
多核DSP 带来了更高的性能,但它相比传统的单核DSP也带来了更大的功耗。嵌入式应用,例如手机、数码相机等对功耗非常敏感。在2G通信时代习惯了200小时待机 时间的手机用户很难接受待机时间仅仅为一天的3G手机。因此多核DSP面临的第一个挑战就是如何有效的降低平均功耗。
从硬件技术上来看,可以采用动态电源管理技术,设置全速、半速、休眠等工作模式,根据当前的任务强度和功耗监测信息,及时调整电压和频率,关闭暂时不使用的模块,以降低功耗。另外,根据特定的应用需求,设置专门的协处理器,同样可以减少DSP内核的运算强度。
从软件技术上来看,在编译指导下的多核DSP低功耗优化技术非常具有潜力。低功耗编译技术主要包括编译指导的动态电压调节、多线程功耗模型下的低功耗编译调度等。在操作系统的支持下,通过合理的调度,使处理器资源与算法需求相适应,例如在DSP核+MCU的模式下,MCU就不应该处理DSP的有关程序。
互连与存储系统
随着芯片面积的增大,长线互连延迟和信号完整性已经成为制约芯片主频的关键因素。当片上DSP 核较少时,可用简单的总线结构或者Crossbar互连;当DSP核较多时可用二维mesh网络、3D Torus等进行互连,设计者必须在网络开销以及多核之间耦合的程度之间进行权衡,同时还要注意互连拓扑的可扩展性。为提高互连性能,应该采用高频、高带 宽的超深亚微米片上互连结构,以便高效地实现节点间通信。
针对数据密集型的应用,多核DSP必须解决存储系统的效率问题。为此,必须要解决一系列关键技术,例如应该设计多大的片内存储器?数据的共享和通信在存储层次的哪一级来完成?Cache一致性在哪一级实现更合理?是通过片内共享存储器还是高速总线进行多核之间的通信?存储结构如何支持多线程的应用?
编译技术与操作系统
多核DSP 能否发挥最高的性能,在很大程度上取决于编译优化和嵌入式操作系统的有力支持。例如,多核DSP对多线程程序能够提供较高的性能,但是对于单线程应用的性 能反而不高,甚至比单核DSP的性能还要低,从而出现“三个臭皮匠不顶一个诸葛亮”的尴尬局面。
采用硬件动态提取线程是一种方法,但编译器更要担负起自动并行化的工作,即将串行程序自动地转换为等价的多线程并行代码,使用户不关心迭代空间划分、数据共享、线程调度和同步等细节,减轻用户负担。
更重要的是多线程优化编译技术,包括线程并发机制的实现、线程调度、线程级前瞻执行等技术。
多核之间的任务调度是充分利用多处理器性能的关键。为满足实时处理的要求,均衡各处理器负载,需要研究的任务调度机制有分布式实时任务调度算法、动态任务迁移技术等。已有的几种嵌入式操作系统,例如μcLinux、PalmOS、WinCE等,都还无法有效地支持多核处理器。嵌入式多核操作系统的研究任重而道远。
应用开发环境
嵌入式应用的特点决定了开发人员必须能够在很短的时间内推出能够为市场所接受的应用系统。为此,多核DSP供应商必须为用户提供简便易用的开发、调试环境。但是面向多核处理器的编程环境始终是不成熟的,并行程序开发技术一直难以普及。
为此,我们可以借鉴多核通用微处理器的编程模式,即消息传递程序设计模式MPI 和基于编译指导命令的程序设计模式OpenMP。但是,最终的发展趋势还将是集成化的VSP(Virtual Single Processor,虚拟单处理器模型)开发环境,在这一环境下用户能够像开发单处理器程序一样去开发多核应用系统,在同一平台上完成编程、调试、编译优 化和连机测试的过程。
例如,Cradle 公司在推出CT3600系列多核DSP的同时,还推出了相应的多核开发工具,包括ANSI C编译器、针对DSP进行了时序优化的Cradle C语言、eCOS实时操作系统、INSPECTORTM代码开发与调试器和RDS3600硬件开发平台等,从而为用户提供了一揽子的解决方案。