基于Xtensa可配置处理器的SoC设计

时间:2022-03-13 10:12:47

基于Xtensa可配置处理器的SoC设计

摘要:可配置、可扩展处理器可以让开发人员根据目标算法对处理器进行修改优化。设计者可以增加专用的、可变宽度寄存器,增加专用执行单元和宽的数据总线等,从而为特定的算法达到最佳的处理器配置。可配置处理器具有开发周期短、灵活性强、处理速度快等优点。

关键词:可配置处理器;指令扩展;Xtensa;TIE

中图分类号:TP391文献标识码:A文章编号:1009-3044(2010)20-5474-02

Xtensa Configurable Processor-based SoC Design

CONG Xue

(PLA 94860 Army, Nanjing 210049, China)

Abstract: A processor which can be configured and extended gets industry's great concern. Designers can tailor the processors according to the specific algorithm. Designers can increase special registers and execution units and expand the data bus. Configurable processor has the advantage of short development cycles, flexibility, faster processing speed and so on.

Key words: configurable processor; instruction extension; xtensa;TIE

目前研发人员在进行SoC设计时,一般采用三种方法,其一是基于标准微处理器内核进行设计;其二采用定制ASIC的设计方法;其三是选择可配置处理器进行设计。相较于前两种方法,可配置处理器最大的优势在于具有强大的可编程能力,可针对特定应用优化处理逻辑,设计时间短,处理速度快。

1 可配置处理器简介

可配置处理器不仅能处理大量密集计算型数据,处理性能接近ASIC硬件实现,同时,基于该处理器的设计又比硬件实现更加灵活快速。同时它提供了强大的指令扩展功能,利用指令扩展,可以使得运算速度大幅提高。

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

作为可配置处理器的一个重要子集,可扩展性可以让系统设计人员能够为处理器增加指令,这是原先的处理器体系结构设计人员从来没有考虑过或者想象过的。添加高度量身定做的指令能够让处理器更适合算法,更适合特殊的应用。

可配置处理器技术有诸多好处,但真正有实力做出来的厂商寥寥无几,目前唯一能够提供完整成熟的解决方案的只有Tensilica公司。

2 基于Xtensa 处理器的开发流程

Tensilica公司的Xtensa7处理器是一个高度可配置的、可扩展的32位的精简指令集处理器。这个精简指令集处理包含了取指、指令译码、执行、访存以及寄存器写回5级流水线设计。Xtensa处理器提供了共80种不同的指令。包含载入、回存、转移、移位、算术、逻辑、跳转、循环以及流水线控制指令。

开发需要使用Tensilica提供的开发环境Xtensa Xplorer。首先,根据算法的特点和复杂度,设计者可灵活配置处理器并生成处理器配置文件(Xtensa Configuration File, XCF),该文件除了包括Xtensa处理器的基本指令集结构以外,还含有针对特殊算法所用到的配置功能,如乘累加运算模块、各种调试接口以及总线接口等。然后,设计者需要把该文件上传给XPG作自动处理,经过一段时间XPG把处理的结果又自动下载给设计者。在该阶段,XPG根据用户选择的硬件实现技术(目前130或180nm)来估计该配置处理器的面积、功耗以及运算频率等,方便用户设计。同时,XPG根据XCF还能自动生成适合于自定义处理器的各种软件开发工具,包括编译器、汇编器、连接器、调试器以及指令集仿真器等。

在这些工具基础之上,设计者就能实现算法的各种编译、调试和仿真等软件开发工作。在软件开发阶段的另外一项重要工作就是设计者根据处理器指令集的特殊结构以及算法的特点,利用指令扩展技术开发出设计者自定义的执行单元,辅助处理器的运算,大规模提高处理器的处理性能。如果该自定义处理器的性能、面积、功耗以及运算频率等满足用户的设计要求,配置文件XCF和TIE文件就固定下来,利用它们完成处理器的硬件实现。如果该处理器不满足设计要求,则可重新开始设计流程的第一步,不断反复设计优化,直至开发出设计者满意的自定义处理器内核。

3 指令扩展(以数字滤波器设计为例)

指令扩展实际是为算法量身定做指令,使处理器更适合算法。Xtensa处理器扩展是通过Tensilica指令扩展(TIE Tensilica Instruction Extension)来实现的。设计者可以增加专用的、可变宽度寄存器,增加专用执行单元和宽的数据总线等,从而为特定的算法达到最佳的处理器配置。

通过代码剖析,定制处理器的优化点是很明显的。优化的目标一般都在最内层的软件循环中,这些运算每秒要执行几千次甚至几百万次。减少这些循环中的目标代码的指令数量可以极大地提高系统的性能。

以下用数字滤波器的设计为例,进行指令扩展。数字滤波器的基本运算单元主要是延时器、加法器、乘法器。延时器在实现中主要是靠移位操作来实现。Xtensa处理器提供了可选、可配置的乘法器,另外TIE 模板也提供了高性能乘法运算单元(因此,配置处理器时也可以不附加乘法器,这样可以减小处理器面积)。

当大量数据需要处理时,移位操作会消耗大量处理时间。而TIE技术提供单指令多数据(SIMD)功能,该功能允许在一个处理器指令内同时对多个数据进行操作。在滤波器的移位操作中利用该技术,可同时对多个数据进行移位。

乘累加操作也是主要运算工作,减少该操作的执行时间是提高处理器性能的有效途径之一。TIE技术提供融合(fusion)功能,允许设计者把多个连续的指令加入到一个指令中,即用一个指令就能执行多个连续的处理动作。对于乘累加操作,在传统的通用DSP设计之中,总是先进行乘法运算再作加法运算,它们是两个连续的操作,需要两个处理器指令。而利用融合技术,可以把乘法和加法这两个连续的指令融合在一个指令中,使得处理器在一个时钟周期内就能够完成乘累加操作。同时,结合SIMD技术可同时对多个输入数据和冲击响应进行乘累加操作,进一步减少处理器的运算时间。

滤波器的乘累加操作必须等待移位操作完成之后才能进行,而且需要反复对储存器读和写。在Xtensa处理器中可以运用state和regfile这两种用户自定义的特殊寄存器,在state寄存器中存放乘累加的结果,在regfile寄存器中存放移位操作结果,这样,利用融合技术可以在移位的同时进行乘累加操作,而且不再需要对储存器读写而是直接调用寄存器操作,在减少存取操作的同时提高数据处理的并行性。 利用上述方法,可节省大量的处理器运行时钟数。

作者利用Xtensa可配置处理器实现了IIR低通数字滤波器、FIR低通数字滤波器、CIC滤波器三种滤波器,并根据各自算法特点进行了指令扩展优化。扩展后,性能分别提升了54倍、137倍、2.3倍。以上实验结果表明,运用Tensilica提供的TIE技术,设计者可以方便快速地开发出自定义执行单元辅助处理器的运行,大幅度提高处理器性能,满足用户的需要。但需要注意的是,作为辅助执行单元,TIE技术会增加处理器的面积,执行频率也可能会受到影响。设计者应当根据需求,在性能与面积和速度间做出选择。

4 小结

Xtensa处理器可以针对用户专用算法进行自由配置和灵活扩展,而且自动产生适合于该处理器的一系列软件工具和硬件实现模型。运用Tensalica的Xtensa处理器实现的FIR滤波器利用TIE扩展技术使得处理器性能提升了一百多倍,而且这种处理器开发周期很短,设计灵活具有软件可编程性,在复杂SoC设计中更能体现其强大优势。

参考文献:

[1] Leibson S. 可配置处理器:技术与应用[M].Tensilica Inc,2004.

[2] 汪健.SoC设计的关键技术[J].集成电路通讯,2006,24(1):34-43.

[3] 康一梅.嵌入式软件设计[M].北京:机械工业出版社,2007.

上一篇:基于WebGIS的突发公共卫生事件预警预测系统 下一篇:对Access开发数据库系统的研究