2007年面临的一个最大挑战是加快芯片设计速度并减少开发和制造成本。3种措施有助于公司改善芯片设计速度和制造成本。首先,利益授权的IP核,其新增功能可以快速集成到芯片上,减少了芯片面市时间。第二,通过将多种功能可编程使得芯片对于不同产品的应用显得更加灵活。第三,利用针对目标应用的经过优化的小处理器核,而不是利用 “大而全”的通用处理器核。
利用经过授权的IP核加快芯片面市
对公司而言,为了比其它竞争对手更早地推出新产品,使得利用可授权的IP核变得越来越重要。例如,现在的许多消费类产品都在利用多媒体。但这并不意味着需要你自己去设计自己的视频和音频模块。设计这些东西需要太长的时间,而且由于标准地不断变化使得这些模块很难验证。因此,利用可授权的视频和音频模块就显得非常有意义,尤其是这些模块以处理器的方式加以利用以便可以在模块上执行多种编解码算法。如果设计你自己的音频处理器,可能需要2-3年的时间。否则,你就可以利用一次授权方式快速将其集成到你的下一个处理设计中。既然面向市场的时间是如此关键,那么采用授权模式的IP核就是仅有的良好选择。
Tensilica和其它公司都有可授权的经过全面测试的IP核和芯片设计团队。Tensilica提供两种主要的处理系列。钻石标准系列包括标准化的处理器控制器、CPU和DSP以及经过优化的音频和视频处理器。Tensilica是领先的音频和视频处理器IP供应商,其设计成功应用于许多蜂窝电话和其它便携式设备中。今天申请一个钻石标准的处理器,明天就可以集成到你的SOC设计中。Xtensa系列包括可配置、可扩展的处理器,这些处理器可以经由设计团队根据具有应用进行修改。
使芯片尽量可编程
很明显,经济因素决定了每个SOC设计都应当适用于多种不同产品。每个SOC的设计成本已经超过1000万美元,公司在设计芯片时不可能覆盖系统的每个部分,只需满足其最高性能要求的系统即可。那些由带有RTL逻辑的控制处理器组成的SOC旧有模型可能无法工作。而那些硬线RTL设计的产品,通常其每个功能特性固定不变,因此,这种不灵活性使得设计的芯片不能支持具有不同特征的多种多样的市场产品。
因此,设计者需要采用一种新的设计方法学,即将所有的关键功能都采用处理器来实现。这样就使得芯片的所有硬件特征都可以被重用,并可以动态地适用于不同的产品需求。
大多数嵌入式处理器不能满足消费类产品和通信类产品的数据处理能力要求。它们不能既要求足够小、功耗足够低、速度足够快以便能够进行图像、视频、信号、加密和网络处理,而这些功能通常是便携式摄像机、DSL调制解调器、话音网关、机顶盒或者核心网络路由器所需要的。这就是为什么设计人员在以前需要手工去写RTL逻辑代码。
可配置处理器代替RTL设计模块
当前,可配置处理器可以获得比RTL逻辑相对较高的性能。高度定制化的可配置处理器可以替换设计中的部分RTL逻辑模块,同时进行编程。
何谓可配置处理器?从最简单的层次来讲,可配置处理器可以根据应用需求打开或者关闭相应的功能。例如,有些处理器希望运行LINUX,而另外有些处理器则需要存储器管理部件(MMU)。MMU对有些应用来说是不需要的。因此,这是一种选项。其它选项包括乘法器、浮点运算单元、外部接口、存储器容量等等。
如果为应用添加一些新指令,那么可配置处理器功能可以变得更加强大。例如,一个标准的32位处理器不足以处理视频和音频数据流。然而,一个可配置处理器经过优化后就可以处理视频和音频数据通路。这就是可配置处理器速度比RTL逻辑更快的技术途径。这也是为什么可配置处理器对大的数据处理模块是一种理想选择的原因。由于可配置处理器是可编程的,因此可大大提高应用中诸如多个编解码在一个处理器上运行的灵活性。
可配置处理器经过更改可以提供比通用RISC处理器高10~15倍的性能。
处理器正变得更加易于配置和扩展
自从上个世纪90年代中期,可配置处理器就已经面世。可配置处理器允许用户在最简单的层次上通过选择菜单来实现,如图1所示。
Tensilica的独特之处在于还允许设计人员往Xtensa处理器添加指令。Tensilica开发了一种称为TIE(Tensilica指令扩展)的类似Verilog的语言。设计人员不需要手动添加指令到Xtensa处理器中。相反,Tensilica的Xtensa处理器产生器可以充分利用指令描述,并自动产生一个定制的处理器以及完整的软件开发工具,这些软件工具能够自动识别设计人员添加的指令。
往Tensilica的Xtensa处理器添加指令有几种技术途径,不需要专门的处理器设计技术。相反,它需要芯片设计应用方面的知识。Tensilica专门开发了相应的处理器产生器,因此设计人员不需要知道如何修改处理器,而只需要知道要添加的指令即可。根据应用添加的新指令可以显著加速系统的性能。
对设计人员而言,往一个可配置处理器中添加新指令的最快方法是利用Tensilica的 XPRES编译器,如图2所示。向XPRES编译器输入的是C/C++算法描述。XPRES编译器可以在大约一个小时之内完成对算法的上千种可能加速方法的筛选,并为用户提供一定范围的选择,同时在芯片性能、面积和功耗之间进行折衷。所有操作都是自动完成的,并能够保证设计的正确性。
多处理器设计为芯片设计提供最大灵活性
多处理器SOC设计改变了处理器间的任务分工,允许对许多功能进行编程,同时保持功耗可控。复杂的状态机可以采用固件实现,并在处理器上运行,这可以大大减少验证时间。通过打开或者关闭某些功能,一个SOC通常可以应用于多种产品。通过在硬件和软件方面删减功能,可以大大减少因适应标准的变化或者添加新功能而需要的设计时间。
多处理器设计还充分利用了存储器模块的有效性。多处理器设计方法最大限度地利用了存储器在多处理器间的可视化、可控性、可管理性、可测试性和可初始化特性。而且,这减少了对整个存储器的需求,同时提高了片上存储器的灵活共享和重用。
利用Tensilica的自动化处理器产生器,可以比RTL逻辑模块设计更快的速度设计出一个定制处理器。设计时间的之所以节省是因为设计人员不需要冗长的逻辑验证时间。
多处理器间的互连
标准化处理器设计面临的一个最大挑战是总线上数据的传输时间。这对于那些诸如音频、视频和通信处理方面的应用尤其重要,因为这些大量的数据必须进行实时处理。Tensilica对此实现了技术突破,即通过增加设计人员定义的GPIO(通用输入/输出) TIE端口和FIFO (先进先出)TIE队列来对处理器执行单元进行直接访问。TIE端口完全旁路总线,消除了多个加载/存储操作。
这些快速互连方式允许设计人员将多个Tensilica处理器串接在一起,每个功能模块一个处理器,这种互连方式类似于RTL模块间的互连。或者,一个Tensilica处理器能够直接与一个RTL模块互连。这种互连灵活性极大地提高了处理器性能,降低了对整个芯片的功耗要求。
多处理器设计——已经被多家大公司采用
从数码相机到网络路由器,许多公司在设计SOC时都采用5个或者更多的可配置处理器(有时超过100个),尽量使得芯片中的许多功能和特性均可编程。多处理器设计现在已经应用于许多领域,从廉价的喷墨式打印机到大型网络路由器。Cisco系统公司在一个单一芯片上采用了188个可配置处理器,构成其最快的核心路由系统。即使蜂窝电话也包含了6个处理器,包括多个可配置处理器用于实现音频、视频、蓝牙和其它功能。这些可配置处理器能够对平台的功耗和成本进行专门优化。
多处理器设计——
优于一个大规模的处理器
当今的消费类数据密集型任务,如因特网路由或者多媒体,将任务划分成多个逻辑模块将比在一个更大的处理器上运行更加有效。首先,一个大规模通用处理器不能对这些新的任务进行优化,因此它将是低速和低效的。其次,一个大规模处理器在多数情况下比几个经过优化的小规模处理器功耗更高。第三,从设计的观点来看,下一代处理器设计将变得更加容易,因为不同的功能由单独的处理器来完成,而设计时只需要更新那些需要改变的部分。
多处理器设计降低了芯片开发时间和成本
对每一类产品都设计一个高度可编程的SOC处理器,公司可以提高芯片性能并对一系列产品进行投资。通过替换硬线逻辑设计方法,传统处理器加速了每个模块的设计,使得集成和验证更加容易。而且,高性能和低功耗大大提高了芯片的性能价格比。
未来几年,随着每个芯片上多个可配置处理器的使用逐渐成为标准,使得每个芯片上的处理器数目将呈指数增长。10年后,我预计设计团队将会在有些芯片设计中使用几千个处理器,同时将会在绝大多数设计中使用专用处理器,从而使得每个芯片上的处理器性能每16个月翻一番。更重要的是,通过使用可配置处理器作为SOC构建模块,设计公司将能够设计比以前更快、利润更高的处理器。