引言
全球可编程平台领导厂商赛灵思(Xilinx)公司今年的市场重点是28nm的7系列产品及Zynq。不久前,Xilinx公司才宣布开始向客户出货首款 Zynq可扩展处理平台(EPP)。那么,Zynq是什么样的产品?为何Xilinx称“Zynq为Xilinx打开了新的篇章,同时为整个嵌入式行业和FPGA业也打开了新的篇章”?
28nm FPGA的优势
首先,Zynq是基于28nm制程的FPGA。Xilinx的全球总裁兼CEO Moshe Gavrielov指出[1],以28nm制程来看,ASIC与ASSP的一次性费用(NRE)将高达5000万美元,若重新设计还得再付担原费用的50%。此外,随着全球化趋势及网络的普及,竞争者不再只是本国而是来自全世界的抢食,系统对产品设计性价比的考量也更加严峻。因此,独特性及灵活性成为大多数厂商设计考量的着眼点。
因此,以灵活性、上市快及较低成本取胜的FPGA处于健康的增长态势(图1)。
ARM的A9 MPCore受到热捧
Xilinx为何选择了跟 ARM 合作,来开发一个双核的Cortex-A9 MPCore 处理器?因为ARM处理器在业界领先,已被客户广泛采用,还有其总体生态环境、支持工具都比较成熟。
经过20年的发展,在处理器世界中,尽管处理器的用量越来越大,但主流平台的数量越来越少,美国《Microprocessor Forum》杂志认为,1992年活跃着众多的处理器平台(图2),但是2009年只有四大主流平台:ARM,x86,PPC(PowerPC)和MIPS平台。其中ARM以生态环境丰富成为瞩目的热点之一。ARM总裁Tudor Brown称,ARM全球有合作伙伴900家企业,合作伙伴的势头发展良好(图3)。并承诺:“今后,ARM将持续地在产品路线图上和伙伴关系上投资,保证客户有强大的渠道和生态系统。”
尽管ARM9和ARM7是ARM全世界授权量最多的(图4) ,也是出货量最大的;但是Cortex-A系列是所有系列里面增长速度最快的,甚至超过M系列。
除了Xilinx的Zynq家族外,很多公司已经或正在做基于Cortex-A9的创新,智能手机、平板电脑、3D TV;网络SoC(系统芯片)、网络服务器、超级计算机……。
这些企业之所以选择A9,因为它是ARM处理器系列中较高性能的一款产品,采用了ARMv7架构。A9处理器的设计是基于先进的推测型八级流水线(speculating 8-stage pipeline),该流水线具有高效、动态长度、多发射超标量及无序完成特征,因此这款处理器的性能、功效和功能均达到了高水平,能够满足消费、网络、企业和移动应用等领域尖端产品的要求。
处理器+FPGA整合:1+1>2
市场调查表明,FPGA目前在全部嵌入式系统中的使用比例占50%~70%[4]。因此这个市场非常巨大,而通常的工程方案是“嵌入式处理器+FPGA”。“但是我们的客户并不满足于此,或者说在客户的应用里目前的器件都不能满足他们的需求,无论是传统的单个处理器、单个FPGA、ASIC或者是ASSP,特别是对于软件开发公司来说,对FPGA编程相当困难。我们发现到2014年有约127亿美元的市场是传统FPGA没法服务的。”Xilinx全球市场营销高级副总裁Vin Ratford说道。
当前的四大挑战是:提高系统性能,降低系统功耗,减少电路板的面积,降低总体系统的成本。
而一块Zynq器件就可以实现“嵌入式处理器+FPGA”功能。尤其Zynq不是仅仅把 FPGA 跟处理器简单地集成在一起,更是两者的有机结合。如图5,传统的FPGA与处理器之间的互联是PCIe等,而Zynq采用了AXI4连接总线,这样的布局可以在FPGA 与处理器之间形成很宽的带宽。图5上方是双芯片方案。可以看到FPGA与处理器中间互联利用 PCIe的互联带宽较窄,而且PCIe通道也较少,这意味着有时超过一半的FPGA会用来支持带宽;并且两个器件分别接着外带的存储器。图5下方可以看到使用Zynq后,可以把中间的PCIe连接取走,再加上存储器可以和FPGA 分享,这样可以大大降低成本和功耗。
ARM中国总裁吴雄昂指出:“众所周知,新一代的系统处理,不只是CPU的功能,接口的处理能力在很大程度上决定了整个系统的应用能力。所以我们往往看到同样一个设计,因为良好的接口的融合,功能会相差50%。我们很高兴Xilinx的Zynq在新的AMBA AXI4 (Advanced eXtensible Interface 4) 接口上达到了很高的数据吞吐能力。”
Zynq以ARM为核心
Zynq尽管是由FPGA厂商—Xilinx主导的,但Xilinx称其是全新的EPP(可扩展处理平台),应用时,Zynq上电后处理系统会自动启动,而不会是FPGA先启动。
实际上,Zynq-7000系列具有完整的ARM处理系统(图6),是以ARM Cortex-A9 MPCore为中心,还集成了存储器控制器和外设;另外,紧密集成可编程逻辑方面,图6的黄色部分是FPGA,它们之间约有3000个内部互连,内部互连十倍于现有的双芯片方案;除此之外,有灵活的I/O阵列,包括处理器专用I/O,可以支持多重标准的I/O,还集成了高性能串行收发器,双12位的模数转换器的输入部分,输入可以直接接到器件混模的架构里。
该器件的软硬件都可以编程,如果是处理器的开发人员,可以用处理器软件来做开发,扩展到它的硬件FPGA的部分;如果是硬件的工程师,可以用FPGA做硬件加速器。
Zynq-7000的ARM处理系统
包括ARM双Cortex-A9 MPCore、存储器接口和通用外设三部分,并用AXI4实现开放式的标准互联。
具体来看,Zynq处理器的ARM内核架构带NEON扩展的双ARM Cortex-A9 MPCore,这种架构专门用于支持图形应用或者是图形加速器,支持单、双精度浮点运算,工作频率可达到800MHz。
存储器的接口也是对应可以支持DDR2、DDR3、LPDDR2、ZxQSPI、NOR、NAND闪存,内含了L1和L2的高速缓存,总量可以达到512KB,同时还有片上的256KB存储器。
通用外设具有集成的存储器映射外设。另外还有强大的AXI4开放式标准互联。AXI4是高带宽、低延时的行业标准,是ARM自己定义的AMBA第四代总线架构,专门用作连接ARM的处理器、外设和FPGA。而且带有ACP的端口,此端口让开发工程师可以增加更多的软核处理器。整个处理系统是可以单独启动的,也就是说,软件工程师可以完全地对处理器编程,而不需要硬件工程师的协助。
Zynq的应用
在Zynq的四个系列里,7010和7020针对较低端的应用,像消费类或者是汽车辅助驾驶应用等,7030和7045针对工业、通讯、国防、广播级的应用等。
其中,2011年初暂定为Zynq-7040的型号现被7045取代,主要是为了满足有线、无线和视频广播市场领域客户新的高端应用需求,并将当前该系列采用12.5 Gbps技术的收发器数量增加至16个。这将实现更多的桥接应用,并实现更宽的高速DAC/ADC连接。新增的可编程逻辑功能(DSP、BRAM 和逻辑)可为设计人员带来更高的信号处理能力,以满足滤波、数字转换以及其它功能要求,同时还能灵活地定制各种特定功能。Zynq-7045是Zynq系列的首款高端器件,其应用范围从下可以拥有30,000逻辑单元,专门针对成本敏感型应用如工业、汽车电子以及消费类电子,从上逻辑单元可达350,000个,帮助客户在单一可扩展平台上,实现需要最高容量及性能的多种应用。
“客户会根据不同的应用选用不同的器件,甚至同时选用多个器件,这就体现了在Xilinx的7系列里,统一架构的优势可以在不同的平台上无缝移植IP。”Vin说道。而Zynq器件最便宜的低于15美元。
具体应用方案,以Zynq用于汽车驾驶员辅助为例(图7),据统计,驾驶员20分钟就会有疲劳现象,效率降低,智能的好处可以兼顾多画面和摄像头。例如一些汽车里的“鸟眼”360°控制雷达,可以把很多图像连在一起,开车时驾驶员可以观察到360°广角的情况。Zynq可以支持包括用视频摄像头去配合红外传感器和雷达传感器看不同的路面状况,比如是否压线、走出路面等,然后做出调整。“无论是价格低廉的大众还是高端的奔驰类汽车,7010和7020都可以发挥效能。”Vin称。
在工厂自动化方面,Zynq的灵活性可以满足系统上市时间的需求,同时提供系统内编程的功能,让客户在单一的平台上可以支持更多的标准,而功耗和成本可以满足需求。从性能来讲,它可以实施工业联网和电机控制硬件加速器,并提供高带宽、低延时。
Cortex-A9与MicroBlaze互补
那么,Xilinx的传统处理器核——MicroBlaze软核与PowerPC硬核的未来会如何?据悉,Xilinx的32位软核MicroBlaze还在使用,但与ARM Cortex-A9定位不同。MicroBlaze是相对较小、性能较低的核,二者所针对的应用领域也不一样。Xilinx将继续发展MicroBlaze。
未来PowerPC不会在Xilinx的新产品中出现,但是现在还会继续支持原有的客户。
Zynq定位更高的应用价值
Zynq会与其他Cortex-A9 ASSP竞争吗?Xilinx认为不会直接竞争,因为“不是Xilinx的目标市场”。Xilinx全球高级副总裁兼亚太区执行总裁汤立人称。“Xilinx的产品是可扩展处理平台(EPP)。而传统的A9产品已经是定制好的,例如已经集成了一定的存储、PCIe等。”但由于Zynq把FPGA逻辑与ARM连接在一起,用户可以集中精力在算法而不是硬件方面,并随时将这套算法移植到其他硬件上,用户只需要掌握相关应用领域的技能就可以设计了。
传统A9的程序可以直接转到Zynq上;一些传统的A9 无法实现的功能,例如高清转化,仍然可以转到Zynq上,并且将复杂的转化部分放到FPGA中进行,来实现传统方法达不到的功能。
多核与单核架构的优势
Cortex-A9微架构提供两种选项:可扩展的Cortex-A9 MPCore多核处理器,或较为传统的Cortex-A9单核处理器。
ARM吴雄昂指出,采用多核处理器架构不但能够解决峰值性能的要求,而且其设计也能够大大降低功耗。多核设备具有性能可扩展性高和功耗低的特点,为设计提供了极大的灵活性。
多核今后一个重要的挑战就是怎样从应用软件上来利用多核的优势。就好比人有两个大脑半球/区,所谓一心二用,所以如果你的软件系统没法真的是一心二用,多核的意义就不是很大的。另外一个问题是针对你做事情的类型,如果是做一个比较连续性的计算,后面的结果一定要根据前面计算的结果才能往下走。这种情况下多核的帮助是非常小的。所以Cortex-A8和A9的最大区别,是像A9这种设计本来就是给多核的,它有SMP(对称多处理技术),对于Android等操作系统(OS),可以自动在软件上来做负载均衡,以分配需要工作的任务。因为有很多不同处理任务在后台,你可通过SMP共享一个物理存储的cache(缓存)。这样用户的软件的性能才能够比较有效地利用。例如对于双核的网络应用,如果有SMP,基本利用率会达到80%~90%,即放了两个核,双核的处理能力实际上提高到了1.8~1.9倍。如果放了4核以后,那么现在环境OS对4核的支持是相对比较弱的,可能实际上最后只有3甚至不到,因为其软件不见得有能力去充分利用4核;同时你做的事情也不见得正好有4项是同时进行的,所以一方面取决于你去执行的任务,一方面取决于系统架构。所以多核CPU本身设计时已有SMP,从OS角度已经基本被认同,应用者不需要再做任何的编程工作。
但是如果放3个A8以后,很大的问题就是OS只认一个,所以其它两个核很难分享负载,因为你没法去改软件应用。
软件/开发工具的创新
可见,平台软件和工具软件也是实现芯片性能的重要一关。尤其在处理平台趋同与整合后,软件的复杂度越来越高,远远超过了硬件。软件工程师数量也已超过硬件工程师数量的Xilinx公司,非常注重在工具和软件上的创新。2012年其开发工具将更新换代,推出更加智能、图形化的流程;Xilinx还会加强推广AutoESL高层次综合设计流程(注:2011年Xilinx收购了AutoESL)。
例如,智能交通管理系统通过摄像头拍下画面,之后需要视频分析算法,将标清视频转换为高清视频。这是一个动态实施的过程,需要用FPGA硬件加速来实现。而传统是通过硬件描述语言(HDL)来实现,开发流程很长。现在,通过AutoESL的工具,用C、C++ 建立模型,并将模型转换为具体的应用。
那么Zynq开发的时候,用ARM开发、导入FPGA进行硬件加速,需要用到什么工具?Xilinx高级总监Devadas Varma称,传统流程就可以实现,不过AutoESL的AutoPilot工具可使效率大为提升。因为传统的硬件开发流程,硬件工作组做一个项目要花长达数月的时间,甚至1年。而AutoESL大大节约了资源,现在FPGA逻辑门越来越多,用户充分利用这些资源,就需要提高生产率。如果还采用传统的方法,那么也许你所期待的一些功能来不及放进去,就已经错失了上市时间。
小结
我国正从“中国制造”向“中国‘智’造”转变。“智”造更多指的是idea(主意),比智力、创新和差异化。Xilinx的28nm FPGA+ARM Cortex-A9 MPCore单芯片方案,使嵌入式产品设计师把主要精力放在应用层面,可加快“智”造时间、降低产品成本。