首页 > 技术文章 > 软件 > 构建具有DSP增强特性的RISC内核

构建具有DSP增强特性的RISC内核

52RD.com 2005年12月29日 MIPS Technologies公司            评论:0条 我来说两句
  

引言:如今的嵌入式设备在很多情况下既需要通用处理器来运行操作系统,又需要DSP来高效地运行数字信号处理应用。传统的做法是使用两个单独的处理器来实现。MIPS24KE内核却很好地实现了RISC处理器和DSP的相互融合。本文主要分析了带DSP增强特性的MIPS内核的一些优势和设计挑战,并给出了详细的测试数据来说明实现DSP增强的MIPS24KEc内核相对于没有DSP指令的MIPS24Kc内核所获得的性能提升。

图1:RISC处理器和DSP的特性正在融合。

图2:24K内核系列具有8级流水线,这8级流水线被分成4部分。

图3:第二个周期用于转发DSP指令的通用寄存器结果。

图4:点-积-累加指令执行两个乘法和两个加法。

嵌入式消费类设备包括机顶盒、DVD播放机和录像机、VoIP电话,MP3播放器等。如MP3播放器既需要通用处理器来运行操作系统又需要数字信号处理来解码音乐流。传统的做法是用两个单独的处理器来实现。但是事实上,RISC处理器已经能执行某些DSP运算,随着RISC处理器不断增加速度,它们可以包含更多的DSP应用。根据Forward Concepts总裁和首席分析师Will Strauss的说法“至少30%的RISC处理器适合于‘真正’的DSP应用”。这些应用包括音频编解码、分组协议处理和JPEG处理。因此这种趋势即使不会加速,也会持续下去。

在同一个内核上结合通用处理和数字信号处理具有一些挑战和优势。一个很大的优势就是更高效率的硬件架构。在内核中实现DSP增强的额外裸片面积与可编程DSP所占空间相比要小的多。一个原因就是DSP增强可以共享内核中存在的很多硬件。还有,这种组合架构消除了处理器内核和DSP之间的外部总线。这也能减少功耗,因为数据不需要在那样的外部总线之间被来回驱动。

另外一个优势是软件开发者只需要使用一个单一的工具链来写通用代码和DSP代码。不需要处理多个工具链,可以降低开发成本和加速开发。

上面讨论的这些很重要,但是必须克服三个关键挑战以便能将两者在单个内核中结合起来。首先,内核必须提供足够的性能以满足DSP任务的实时执行。其次,DSP增强特性必须添加到RISC内核中,而对频率不会有负面的影响,频率的影响会对通用处理器和DSP性能带来影响。第三,被增强的内核在裸片尺寸上的增加必须尽量小。这些挑战是本文关注的焦点。

RISC处理器具有很多优势能使它们获得高性能。例如高速缓存和转换后备缓冲器(TLB)可帮助提高软件性能。RISC指令集和流水线通常针对相对较高时钟频率进行设计的。当然,RISC指令集能实现很好的编译性能。RISC架构中的一个显著特征是能运行几种已经针对这种架构移植的不同操作系统。例如MIPS32 24K内核系列中的MIPS处理器,它们的优势是可被嵌入式系统常用的几种操作系统所支持。

DSP通常提供特殊的功能,例如小数算法、饱和演算以及单指令多数据(SIMD)运算。它们也执行特殊的复杂指令来增强数字处理性能。这些指令不遵从RISC范例,因为它们执行高成本的功能,例如直接在存储器操作数上操作。其结果是,它们产生了很多关键路径,这些路径限制了DSP的时钟频率。

具有DSP增强的RISC内核能继承所有RISC架构的好处(图1)。如果它还结合了类RISC模式的DSP支持,将能避免为实现复杂指令而增加时钟周期的问题。这使其获得更高的时钟频率和比DSP更好的代码编译性能。

MIPS32 24K内核系列

MIPS32 24K内核系列由一些面向嵌入式市场的高性能32位可综合内核组成。作为这个系列的基本内核,24Kc内核能在130纳米CMOS工艺条件下获得400MHz到625MHz的性能,能达到576到900Dhrystone MIPS(图2)。

MIPS32 DSP ASE

MIPS32 DSP ASE主要是由新指令组成,这些新指令在处理器的整数和乘法管线中执行。ASE包括所有的典型DSP功能,例如可以执行加、减、移位或者乘法的基于寄存器的SIMD指令。SIMD指令可以同时对最多4个操作数同时进行处理,并支持8、16和32位的操作数。ASE还提供具有饱和和循环的小数算法。还能进行几种乘法-累加运算,包括点-积-累加(dot-product-accumulate)。精度扩展和缩减实现了可伸缩运算。绝对值、按位取反和其它指令使一般的DSP运算能更有效地执行。ASE对这个架构增加了三个新的累加器,使得总累加器达到4个。

除了所有这些常见的运算,ASE还增加了一些先进的特性,从而能在不需要复杂的实现条件下获得额外的性能。例如,变量位提取方法能有效地从一个输入流中获取数据位。另外一个特性可以高效地处理复杂的数字。ASE还包含一种支持虚拟循环缓冲器的新颖且高效的方法。

为使得实现成本最小化,新状态单元仅限于DSP控制寄存器和前面提到的三个新累加器。

设计挑战

很明确,设计目标是在对内核裸片面积和速度不造成大的影响情况下实现DSP增强。

为避免大大增加周期时间,我们增加了第二个周期来在现有的ALU结果和新的DSP资源中选择,如图3所显示。注意现有的ALU运算并没有受到影响,它们的结果仍然传递到一个相关的指令以执行下一个周期。因此,如果一个紧连的指令序列的第一个指令不是DSP指令,仍然能产生结果传递。

图5:DSP增强对时钟频率和裸片面积影响可以忽略不计。

如果第一个指令是一个DSP指令,在传递结果之前需要一个额外的周期。这种单周期的延时通常可以因为DSP代码的向量化特性而被屏蔽。通常,一个指令,例如数据加载,可以填充这两个相关的指令之间的这种延时间隙。

另外一个设计挑战是在乘法除法单元(MDU)应用中实现点-积-累加指令。对于这个指令,每个源通用寄存器(GPR)的一半包含一个Q15操作数(Q15是一个小数的16位表示)。

这种指令先执行两个同步的乘法,即来自两个源通用寄存器(即GPR)相对应的半个操作数分别相乘。这两个积再相加来完成点-积运算。然后,将结果加到指定的累加器中。如图4所示,这个指令执行两个乘法和两个加法。

获得的结果

采用台积电130纳米技术的24KEc内核的关键特性显示在图5中。图中也包含了24Kc内核的数值以作比较。两种内核采用高速库在最坏的情况下工作频率都可以达到400MHz。24Kc内核能获得稍高一些的速度,但是我们将综合目标定在400MHz。额外的DSP逻辑大约为内核逻辑的9%。这对应于整个带有32KB高速缓存的裸片面积仅增加2.7%。因此,DSP逻辑对裸片面积和处理器内核速度的影响可以忽略。

图6:24KEc内核DSP函数代码的执行速度高达24Kc内核代码速度的2倍。

在400MHz下,24KEc内核每秒可以达到8亿次乘法-累加运算,或者16位宽数据下达到每秒MMAC(百万次乘法累加)。图6中显示了很多的DSP性能测试结果。

为说明24KEc内核的增强,图6显示了使用新DSP指令和状态的一系列DSP函数和它们的速度增加情况。这些测量大多数是针对函数的内部循环,因此整体应用速度增加的情况将取决于这些循环占整个应用的时间百分比。当然,MIPS架构可以在应用其余部分中以固有的优良性能执行通用代码,如图中所示,速度提升在1.3倍到3倍之间。注意速度提升的数值是对24Kc内核(没有使用DSP指令)和24KEc内核(使用DSP指令)上手动优化的MIPS32汇编代码进行比较而得到的。这些实验运行于24Kc和24KEc内核仿真器上。

本文小结

24KE内核系列以可忽略不计的代价提供加速的DSP性能。仿真结果显示24KEc内核相对于24Kc内核大大地提升了DSP性能。24KEc内核表明了这样富有意义的DSP增强特性能在RISC处理器上实现,而对时钟速度和裸片面积的影响可以忽略。成功克服实现24KEc内核的设计挑战进一步证明了将数字信号处理迁移到主处理器内核上的可行性。

在主处理器上融合数字信号处理还提供了其它一些好处:这产生了一个更有效率的系统架构,带来了更小的面积和功耗。通用代码和DSP代码共用的工具链降低了软件开发成本并缩短了软件开发时间。所有这些因素使24KE内核系列非常适合用于需要高性能、低成本、可综合微处理器(具有加速的DSP性能)的嵌入式应用。

作者: Chinh Tran

Kevin McDermott

MIPS Technologies公司

(52RD.com)
读取...
相关报道
      评 论
      文章导航 Navigation
      精彩评论 Commentmore...
      赞助商链接 Support
      特别推荐 Recommend