|
马上注册,结交更多好友,享用更多功能,让你轻松玩转社区。
您需要 登录 才可以下载或查看,没有账号?注册
x
作者:牛虻 来源:www.edires.net
近几年,消费类电子、汽车电子、网络、存储已成为整个电子行业的热点,同时消费者对这些应用的终端产品的要求也在不断提高。产品标新立异、功能突飞猛进、标准层出不穷,让传统方案一筹莫展。这些要求一方面体现在功能的增加,另一方面体现在性能的提高!如何在功耗和体积之间找到平衡,如何在性能和功能之间找到折中,成了摆在整个行业面前的一个难题!可配置处理器应运而生。
“所谓可配置处理器技术就是软硬件之间的界限可以根据用户需要而变化,并有助于用户实现产品差异化。” Tensilica中国区总经理李冉先生表示。该公司的Xtensa可配置处理器内核不仅是可配置的,允许工程师在乘法器、DSP引擎、浮点运算单元、32/64/128位总线等三百多个独立选项之间按需选择,而且是可扩展的,可以根据客户的特殊应用增加指令、执行单元和I/O。例如为提高2~100倍甚至更高的性能,设计工程师可采用TIE语言增加专用指令,或者用Tensilica公司的XPRES (Xtensa 处理器扩展综合)编译器自动评估C/C++算法,从而自动开发出优化的TIE指令以加速算法。
TIE语言能够描述一条完整的新路径以节省面积和功耗,新路径包括的要素如:新寄存器、寄存器文件、多周期执行单元、设计工程师定义的 GPIO和FIFO接口、SIMD执行单元、一条VLIW数据路径和自定义的多种数据类型,例如面向音频应用的24位数据,面向安全处理的56位数据,或者面向包处理的256位数据。TIE指令编译器读入这条新路径的描述和新指令,然后更新整个编译器工具链(编译器、调试器、分析器等等)、指令集模拟器和系统模型。它同时向处理器硬件中插入优化的门控时钟的执行单元、寄存器、寄存器文件、控制逻辑、旁路逻辑等等。这些操作都是自动执行的,并且Tensilica公司保证其正确性。
近日该公司宣布推出Xtensa可配置处理器内核第七代产品 – Xtensa LX2和Xtensa 7。两款处理器内核在结构上进行了多项改进,并且是第一批内建高速纠错ECC(Error Correcting Code)功能的可授权可配置处理器内核。
Xtensa 7 处理器内核
第七代Xtensa可配置处理器内核使用的是基本的Xtensa 5级流水线架构,经过优化非常适合低功耗应用,对控制和DSP(数字信号处理)操作都是理想的选择其结构框图如图1所示。
图1 Xtensa 7架构框图
Xtensa 32位比特架构有5级流水线、32比特ALU(算术逻辑单元)、高达64个通用物理寄存器、6个专用寄存器和80条基本指令(包括改进的16比特和24比特RISC指令编码,及可最大化代码密度的无模式切换)。在90nm GT工艺下,以针对速度优化的网表,最差的运行环境,时钟速度可达600MHz。在130nm LV工艺下,以针对面积优化的网表,典型的运行环境,一个最小配置(20,000门)内核的功耗为0.038mW/MHz,而在90nm GT工艺下,以针对面积优化的网表,典型的运行环境,功耗为0.048mW/MHz。
Tensilica公司新增3项应用于Xtensa 7和Xtensa LX2处理器内核的功能:
1) 新增处理器接口PIF(Processor Interface)设计工程师选项可用来控制缓冲区(令其更小)进行微调和降低SoC设计中非影响性能的关键路径的功耗。
2) 可以同时配置一个快速本地指令和数据存储器的宽接口和一个系统总线的窄系统接口的选项,使得系统接口和总线设计在降低设计复杂度、减少面积和功耗的同时还可以快速地以高带宽访问本地存储器。
3) TIE(Tensilica指令扩展)语言基础架构已经改进为大型开发团队和公司共享已有的TIE指令模块库提供了更好的机制,可以对多个TIE文件进行操作。
Xtensa LX2处理器内核
Tensilica公司Xtensa LX2处理器内核架构如图2所示。不仅包括了Xtensa 7中的全部功能而且还增加了可选的针对高吞吐率的64位宽的FLIX指令;可配置的5级或7级流水线;可选的第二个load/store单元;可选的需要通过总线的直接I/O操作。
其中FLIX技术可以令创造出来的处理器配置在每个周期以一种VLIW处理器的方式发射多条指令。Xtensa C/C++编译器(XCC)从C/C++代码中自动地抽取指令层和循环层中的并行运算,并将其打包进FLIX指令集中。这些多发射的FLIX指令可以是32位比特宽或者64位比特宽,并可与基本16位比特和24位比特的指令进行无模式混合。通过将多条指令封装进一个宽32位或者64位的指令字,设计工程师能够在嵌入式应用中加速更多的应用性能瓶颈。
“通过可选的需要通过总线的直接I/O操作功能,将会显著提高数据的输入和输出(I/O),当与其它外围设备连接的时候非常有用,能大大简化用Xtensa代替RTL模块的过程。” Tensilica公司移动多媒体方案市场总监Larry Przywara表示。该功能包括一个增加第二个load/store单元选项和向处理器执行单元中添加设计工程师定义的GPIO(通用输入/输出目的)TIE指令端口和FIFO(先入先出)队列以进行直接数据存取这一Tensilica公司突破性的技术能力。TIE指令端口和队列全都不需要通过总线, 因此无需多条load/store运算来处理数据。
此外,Tensilica公司还新增了支持Xtensa LX处理器内核的3项高级功能。
1) 新TIE指令查找表端口功能,使得创新存储器的接口的功能超出了已有的做为本地指令和数据存储器接口的功能。与这些设计工程师定义的新的TIE指令查找表端口相连的存储器可直接通过处理器的数据通路来进行读写而无需采用load和store指令。视频系统的设计工程师可将一个TIE指令查找表端口与一个存储视频帧数据的本地缓冲区相连。视频帧数据被外部硬件填充或再填充到处理器数据处理通路中,而无需采用功耗很大的DMA(直接内存存取)。网络设计工程师可将TIE指令查找表端口跟更大的查找表相连,从而能够被处理器快速访问。
2) 一个可选的连接方法是一个cross bar功能,它可将属于两个bank的单端口的本地数据RAM和配置有2个 load/store端口的Xtensa LX2处理器内核相连接。通过这种方式,当这些操作针对相反的bank时,处理器可在每个时钟周期维持2个load/store操作。因此,当采用Xtensa LX2作为带2个load/store端口的XY型DSP架构时,系统设计被极大地简化了。
3) 存储器管理单元(MMU)支持所有的配置,甚至是7级流水线和Tensilica公司获有专利权的FLIX(可变长度指令扩展)技术,从而可支持多发射指令的高性能CPU配置。MMU是可运行Linux操作系统必需的,目前的Linux系统支持来自Tensilica的合作伙伴Monta Vista公司。采用FLIX的带MMU功能的Xtensa LX2处理器内核非常适合高性能的、需要运行复杂协议栈的网络应用,以及作为移动和手持应用中的高端处理器。 (注:MMU在Xtensa 7中也是一个选项。)
图2 Xtensa LX2架构框图
降低功耗 提高性能
与传统固定架构的内核相比,Xtensa 7和Xtensa LX2处理器两款内核的基本Xtensa指令集架构提供了业界最低的功耗和最高的性能。由于两款内核均完全可配置,设计工程师可采用Tensilica专利的自动处理器生成器向基本处理器添加专用指令。与其它相竞争的处理器可提供的性能相比,能够对处理器配置扩展是很重要的。例如,一款不带高速缓存,没有设计工程师定义的指令扩展的Xtensa 7最小配置内核跟ARM7TDMI内核的配置大约相当,但具有更好的性能和更低的功耗。
改进后的Xtensa 7和Xtensa LX2处理器内核降低了近30%功耗(内核加上存储器),其中关键因素包括:可分别配置主系统存储器接口、本地数据存储器接口和指令存储器接口等诸项接口的宽度;减少数据存储器使能和存取的执行判断,令数据高速缓存器和紧耦合的本地数据存储器在长时间不使用情况下处于断电状态;一个可选的更宽的取指令缓冲区可使指令读取的时间和由这些读取指令周期带来的功耗,降低最多75%,具体节电结果视代码长度而定。同时,Tensilica设计的电源关电模式,包括外部的控制调试端口和片上调试模块的关电,降低了整个系统的功耗。
增加ECC选项提高可靠性
纠错在诸如存储器和网络应用等非常关注可靠性和精确性的关键应用中极为重要, 比如在汽车应用中将用以满足无差错汽车安全标准的要求。“随着工艺尺寸的缩小,更小的Cell电容和更低的电压导致软存储器错误的增加。因此,处理器能够检测并纠正软存储器错误越来越重要。这正是Tensilica公司在所有新一代Xtensa内核中添加内建高速ECC纠错功能选项的重要原因。” Tensilica公司总裁兼CEO Chris Rowen博士表示。该公司引入两个选项以检测和/或纠正随着硅工艺的尺寸缩小而增加的存储器错误。Tensilica的可配置Xtensa处理器内核的设计工程师现在能够在全部本地紧耦合的存储器中选择校奇偶验位或者ECC保护。当在高速数据缓存阵列、高速缓存标记阵列或者本地存储器(指令和/或数据存储器)中检测到一个单比特软错误时,奇偶校验位产生一个异常,进而ECC检测并纠正单比特错误和检测双比特错误。据悉,Tensilica公司是第一家内建高速ECC纠错能力的处理器架构的IP公司。
强大生态系统
Tensilica公司处理器内核的可配置能力从未危及根本的基本Xtensa指令集,所以确保了一个第三方合作伙伴应用软件和开发工具的强大的生态系统的有效性。所有Xtensa处理器可能的配置经常与主要的操作系统、调试工具和ICE解决方案相兼容;并且常伴有一套自动生成的、完整的软件开发工具链,包括一个基于ECLIPSE框架的高级集成开发环境、一个世界级的编译器、一个周期精确(cycle-accurate)并兼容SystemC的指令集仿真器、以及完整的工业标准的GNU工具链。
附注:Xtensa 处理器内核VS硬逻辑模块
Tensilica公司的Xtensa处理器内核经常因为多种原因被用于取代特定的硬连线RTL(寄存器传输级)模块。首先,因为它是可编程的,Xtensa处理器可提供的灵活性是基于纯RTL有限状态机设计无法提供的;第二,流片后算法问题的修复可通过软件更新来实现,可显著减少反复流片的风险;第三,与RTL设计相比,Xtensa处理器内核可降低整个SoC设计和验证的时间;第四,通常Xtensa处理器内核可以比用RTL实现更低的功耗,因为Xtensa处理器生成器可即时自动进行流水线操作分析和插入门控时钟,而用RTL设计来手动进行如此操作一般来说不可能;第五,因为Xtensa处理器内核可以绕过总线,采用GPIO TIE指令端口和FIFO TIE指令队列直接进行数据传输,所以它传输和操作数据的速度和效率能够跟RTL模块一样。 |
|