Xtensa可配置处理器原理和两个成功应用实例

本文作者:admin       点击: 2007-05-09 00:00
前言:
最近,一种新型的可配置处理器受到了极大关注,用户可以根据某种应用来定制该处理器。可配置处理器速度更快,并且可以比标准嵌入式微处理器完成更多的工作。有的甚至可以代替片上系统SOC和专用集成电路ASIC中手工编写的RTL代码。本文先从可配置处理器的原理入手,然后介绍两个成功应用的开发实例。

标准化嵌入式处理器核

首先,考虑标准的基于固定指令集体系结构ISA的嵌入式微处理器和数字信号处理器DSP核。现在流行的基于固定指令集体系结构的嵌入式微处理器包括ARM、MIPS和PowerPC,它们最初是在二十世纪80年代设计的可以独立工作的处理器芯片。随着时间的推移,这些微处理器速度越来越快且增添了新的计算资源,从而使得处理器可以在每个时钟周期内可以完成更多的工作。这些微处理器体系结构在执行许多算法时是很好的,但是设计者通常需要对系统中的关键部分进行硬件设计。即使数字信号处理器DSP的体系结构也必须设计成在执行许多算法时能提供足够的处理能力,所以它们在速度方面不能和定制处理器方法相匹敌。
  
何为可配置处理器?

一个完整的可配置处理器工具集包括一个预先定义好的处理器核和一个设计工具环境,这个设计工具环境允许设计人员对基本处理器核进行大幅度修改以满足特殊应用的需求。典型的配置形式包括添加、删除和更新存储器、外部总线宽度、总线握手协议以及公共的处理器外设部件。

作为可配置处理器的一个重要子集,可扩展处理器可以让系统设计人员能够为处理器增加指令,原先的处理器体系结构设计人员从来没有考虑过或者想象过这些指令。添加高度量身定做的指令能够非常适合特殊的应用,使得可配置处理器在性能上可以同RTL设计方法相匹敌,同时得到预先经过验证的IP(知识产权)的优势。可配置处理器能够以RTL代码的方式交付用户,RTL代码可以综合成现场可编程门阵列FPGA或者片上系统SOC。最好的可配置处理器还可以产生与硬件匹配的软件开发工具,软件开发工具反映了通过设计人员定义的体系结构扩展而增加的硬件指令。

一个可配置处理器能够实现与那些RTL功能紧密匹配的数据通路操作。等价的数据通路采用基本处理器定点整数流水线的方式实现,再加上执行部件和其它由芯片体系结构设计师添加的与特殊应用目标相关的功能。

例如,Tensilica的指令扩展语言TIE(一种简化的Verilog版本)就是一个设计工具,它允许系统开发人员针对不同的应用去扩展Tensilica的Xtensa 32位处理器体系结构。TIE语言以指令语义和编码的方式对数据通路功能的高级描述进行优化。与RTL相比,采用TIE语言进行描述既简单又精练,因为它略去了所有的时序逻辑描述,包括状态机描述、流水线寄存器描述以及初始化序列。这些复杂的东西实际上是由固件进行开发的。

用TIE语言描述的处理器新指令和寄存器都可以被固件程序员通过相同的编译器和汇编器所看到,且以处理器基本指令集和寄存器集作为目标。处理器数据通路中的所有操作时序均由固件进行控制,这通过处理器现有的取指令、译码和执行机制来完成的。状态机固件通常是由C或者C++这样的高级语言写成的,因为定制微处理器体系结构可以为系统提供高性能。
  
可配置处理器作为RTL设计的一种替代

作为RTL设计方法的一种替代,可配置处理器和传统RTL设计方法一样采用相同的数据通路结构,如深度流水、并行执行部件、专用任务状态寄存器和与本地和全局存储器相连接的数据总线。这些扩展的处理器能够保持相同的高计算吞吐量,并和典型的RTL设计一样支持相同的数据接口。
然而,可配置处理器对数据通路的控制和RTL设计方法相比是截然不同的。对处理器数据通路而言,一个周期一个周期的控制机制体现在处理器的固件执行方式,但对硬线状态转换而言是不固定的,如图2所示。程序的控制流判决发生在分支指令;访问存储器以加载和存储操作方式实现;计算则是通用处理器和专用处理器计算操作的时序实现。
  
从RTL硬线状态机转移到采用固件进行控制的可配置处理器有许多重要的含义:
● 灵活性:芯片开发人员和系统架构师可以只根据固件就可以修改一个模块的功能,即使在产品交付后也可以这么做。
● 基于软件的开发:芯片开发人员能够以相对较快的速度和较低成本的软件工具就可以实现大多数芯片的特性。
● 更快、更完整的系统建模:对于一个1000万门的芯片设计,即使采用最快的基于软件的逻辑仿真器,其仿真速度也不会超过每秒几个时钟周期。相比较而言,运行在扩展处理器上的固件仿真器在执行指令集仿真时其仿真速度则可达到每秒上百万条指令。
● 控制和数据一体化:没有一个现代系统会仅仅包含硬线逻辑。总是要有软件在处理器上运行。将基于RTL功能的模块移到处理器内将剔除在控制处理和数据处理之间的人为隔阂。
● 市场化时间:将系统中关键的功能模块从RTL移到可配置处理器简化了SOC的设计时间、加速了系统建模、加快了完成整个芯片硬件的速度。基于固件的状态机可以很容易地进行修改,因为该设计方式对硬件的实现细节不是一成不变的。
● 设计效率:尤其重要的是,将基于RTL的设计转移到专用处理器,这种方式极大地提高了工程师团队的设计效率。因为这种设计方式与RTL开发方式相比既节省了人力又节省了系统验证的时间。
基于处理器的设计方法通过改变软件而不是改变硬件所带来的好处一点也不夸张。可配置处理器减少了状态机设计的风险,不再采用那种难于设计、难于验证的状态机逻辑模块设计方法,而是采用预先定义好的、验证好的的处理器核和应用程序固件。
实例一:使用Xtensa 处理器
构建MPEG2编解码器

NTT Electronics 的两种基于 Xtensa处理器的MPEG2 视频/音频编解码器正在量产中。这些先进的系统级(SOC)器件,采用了0.13微米的制造工艺,提供了先进的图像处理能力,应用范围从高性能、高清晰度电视(HDTV)到低成本的交互式视频通信系统。
   
设计挑战: 快速地交付高性能、多标准的MPEG2编解码器
NTT Electronics (NEL)由母公司Nippon Telephone & Telegraph控股,开发高级IC,可提供高质量视频通信和其它服务。在设计其最新的视频/音频编解码器系列时,NEL公司面临一个严峻的挑战: 提供高质量、高性能、且具有足够的灵活性以支持多种的MPEG编码模式的IC。
   
选择之一:RTL-性能好但是冒险的选择
NEL公司认识到传统的使用基于RTL硬件设计来实现硬件编码算法的方法能够交付可以想象的质量和所需的低功耗,但支持多个编解码标准的复杂性将使设计和验证周期变得过长。
   
选择之二:传统的处理器灵活但是性能差、功耗高
另外一种方法是采用一个传统的固定的嵌入式处理器来运行复杂的MPEG-2算法。这将大大减少设计风险,加速开发周期。但是这种解决方案对SuperENC-III 编解码器来说, RISC处理器内核中需要过高的时钟频率,将不能满足手持设备的低功耗要求。
   
解决方案: Tensilica公司 的 Xtensa 可配置多处理器能力IP核
NEL公司的解决方案:采用多个Tensilica公司 的 Xtensa 处理器内核。基本的Xtensa 处理器内核不仅比传统的RISC 嵌入内核性能优越,而且Tensilica公司解决方案的 可配置性和扩展性允许NEL公司可快速地在其高端VASA HDTV 编解码器芯片中使用四个Xtensa 内核。其中3个实现编码,一个实现解码。 通过使用优化配置的Xtensa处理器而不是传统的硬件编码的RTL方式, NEL公司可以如基于处理器设计方法一样快的面市时间设计出产品,而且具有用RTL设计方式所具备的高性能和低功耗的特点。

实例二:Broadcom公司利用多XtensaIP核开发CALISTO TM BCM1500 VoIP SOC

Broadcom 公司是一家领先的供应商,能提供宽带通信以及语音、视频和数据网络服务高集成度硅解决方案。
对于BCM1500项目,Broadcom公司的运营商通路事业部的目标为设计一类存取通信组件,该类原件可提供在之前的商用包处理芯片中从未见过的可重构性和灵活性。CALISTO 来源于Broadcom公司独有的信号处理架构,具有一个自适应指令集的混合DSP/RISC的芯片。自适应指令集能够基于一个周期一个周期的方式来重新配置连接线和一系列基本设计单元的功能。在BCM1500中的CALISTO结构中,Broadcom公司选择采用了5个独立的Xtensa处理器IP核来作为管理和控制处理器单元。Xtensa 处理器被选择的原因是因为它使用方便,能够提供很高的性能,占用尽可能最小的硅片面积,并且提供出众的代码密度来减少代码内存的大小。
 
克服设计障碍
CALISTO 芯片执行一种动态的专用指令集架构以满足运营商网关,宽带接入网关和远程接入集中器/远程接入服务器(RAC/RAS)应用的特殊要求。该芯片可处理大量的计算任务,如回波抵消,语音/传真和数据调制解调器信号处理,延时均衡以及包交换电话应用的协议等。在CALISTO 处理器中,除了使用新颖结构的技术外,包括作为可重构的自适应指令集引擎一部分的分级DSP多处理单元,Broadcom公司 也需要基于RISC的多处理器控制器单元来管理和控制数据。
 
Broadcom公司 CALISTO BCM1500 可重构处理器
作为CALISTO 5个控制单元的核心中的多处理器单元,Xtensa处理器通过配置以取得优化的性能和最小的芯片面积。CALISTO的SpiceEngine Array使用多个处理器单元来开发并发任务,允许实时的定制应用级指令集,完成这个任务,需要16个166MHz的SpiceEngine单元来产生27亿 DSP MIPS/MAC。 5个工作在166MHz的Xtensa处理器IP核可提供830 RISC MIPS/Sec 来完成管理和控制任务。

解决方案:Tensilica公司的Xtensa可配置处理器IP核
Xtensa处理器IP核是CALISTO的5个管理/控制多处理器单元的核心。虽然Broadcom公司 能够选择其它的解决方案,但没有任何一个方案能够做到如Xtensa 处理器IP核那样提供的性能水平和小的芯片面积。Xtensa 处理器IP核的16/24位指令编码提供了固有的小内存尺寸,比固定的32位RISC指令集少50%的代码。这种更小的代码体积能帮助减少CALISTO全部的片上SRAM需求和存取存储器所需的功率。同时,CALISTO工程师对 Xtensa的32位RISC架构也印象很深,它被证明是一个效率很高的架构。
 

结语

综合以上两个例子,我们发现可配置处理器除了可以胜任高效率RISC控制功能,也可以作为RTL开发的替代方法。在基于CPU、DSP内核和基于RTL开发的方式之外提供了一种新选择,这种选择使得以往用RTL开发的功能可以通过处理器定制实现,并且依然是可以灵活通过软件可以进行编程控制的。可配置处理器也许在国内是一种新思路,但是在国外已经得到广泛的使用和验证。相信将来会有越来越多的应用出现。