MCPLive > 杂志文章 > Mali GPU Midgard架构预览(上)

Mali GPU Midgard架构预览(上)

2014-08-26李少华《微型计算机》2014年8月上

ARM作为移动计算领域实际上的掌控厂商,对移动计算产品未来的发展方向有着决定性的能力。在GPU的发展上,从一开始Mali系列的弱势到现在Mali已经成为诸多厂商的首选,ARM在Mali GPU架构的发展上倾入了诸多心血。近,ARM又披露了下一代移动GPU架构的详细信息。这个被称为Midgard的架构,又将带来哪些新的技术和惊喜呢?

今年是SoC产品应该铭记的一年。从市场角度来看,移动计算的硬件设备有着充裕的性能增长空间,尤其值得注意的是,移动GPU无论是性能还是特性都有了充足进步。凭借更先进的架构和工艺,移动GPU在特性上逐渐和桌面GPU靠拢,正在变得足够优秀并令人满意。而在移动SoC GPU的发展中,ARM的Mali是一个从小到大,从无到有的典型。

收购来的“亲儿子”—Mali那些年

目前,全球绝大部分移动计算设备的基础CPU架构都来自ARM。在移动SoC等市场中,ARM的地位牢固而不可动摇,不过在GPU市场,ARM只是诸多厂商中的一家。这是因为ARM的GPU部门并非从一开始就拥有,而是随后通过收购组建的。ARM的GPU设计项目早从上个世纪90年代末期开始,由挪威科技大学开始开展,随后在2001年,这个项目的Mali小组成员从研究中脱离出来,成立了一个名为Falanx Microsystems的公司。Falanx公司的人员刚开始瞄准的是PC图形市场,但当时已经是后3DFX时代,群雄并起,包括S3、Rendition、Revolution以及Imagination等公司后都失败了,终Falanx无法筹集到足够的资金,被迫放弃了PC图形市场。

在那个“紧迫期”,由于资金有限和PC图形硬件极高的研发成本,Falanx终决定转向移动SoC GPU设计。因为移动GPU设计更简单且较容易成功。Falanx的产品Mali GPU也迎来了他们的第一个客户—美国Zoran公司,使用了Mali-55作为他们Approach 5C SoC芯片的GPU,这颗芯片还被用在LG's Viewty这样广受欢迎的手机产品中。即使如此,Falanx还不满足,终在2006年迎来了他们的“大鱼”。鉴于SoC市场不断的扩大以及将带来的移动计算大潮,ARM公司终于决定买下Falanx,组建自己的GPU事业部,并联合ARM的CPU一起推动整个产业的增长。ARM作为一个处于上升期、资金充裕的公司,完全有能力给Falanx充足的资金和研发资源来实现梦想。

LG's Viewty手机是LG公司在“巧克力”手机之后推出的又一款颇受市场欢迎的产品。
LG's Viewty手机是LG公司在“巧克力”手机之后推出的又一款颇受市场欢迎的产品。

2007年,Mali作为ARM的一部分,发布了Mali-200 GPU。这是ARM第一款支持OpenGL ES 2.0的产品。它和随后的Mali-300、Mali-400以及Mali-450,都属于代号为“Utgard”架构的产物。Utgard架构的特点是并非像现代GPU设计那样采用了统一渲染引擎,它依旧是一个典型的顶点和像素分离式渲染的产物。虽然架构不算先进,但是Mali设计团队始终坚持对其进行新技术扩充和升级研发,使得其性能和可扩展性都达到了令人满意的程度,尤其是Mali-400,这是Mali首次开发的拥有多内核能力的GPU,如果需要获取更高的性能,用户只需要使用更多个Mali内核即可,这和桌面GPU的SLI和CrossFire有异曲同工之妙。

Utgard架构堪称是Mali为成功的GPU架构,它基于OpenGL ES 2.0的设计和较低的成本满足了中低端市场的需求。如今虽然顶级SoC芯片开始支持DirectX 11以及Open GL ES 3.0,但是Utgard架构的Mali-450系列GPU依旧颇受用户和厂商欢迎。包括三星、华为等厂商近发布的海思Kirin 910以及三星Galaxy S5 Mini,其处理器都搭配了Mali-450 GPU。

如今,在Utgard架构之后,Mali推出了Midgard架构,这个全新的架构包括了Mali-T600和今天介绍的T700系列GPU。虽然Midgard推出时是作为高端GPU架构设计的,但是在对芯片体积、功率和成本的进一步优化后,Midgard也将作为中端和中高端产品的基础架构使用。而上代Utgard则下调至覆盖中端市场。从整体来看,ARM目前在市场上的位置其实非常微妙。市场上的芯片厂商比如高通、英伟达,往往是在CPU方面购买ARM授权,GPU则是自己设计,而诸如Imagination这样的图形处理器厂商又只专精于GPU设计。ARM则完全可以同时提供GPU和CPU方案,并将其打包销售—这似乎意味着ARM有能力设计一款CPU和GPU互相协同工作的产品,这对别的厂商来说,意义是否异乎寻常呢?

一个全新设计的架构—鸟瞰Midgard

Midgard,汉语经常写作米德加尔德,它源于北欧神话。米德加尔德是指火神洛基的第二个儿子,形象通常是以环绕人间界、首尾相连的巨蟒出现,因此也有人以米德加尔德代表人间。在北欧神话中,米德加尔德一般以反派出现,它力大无穷,通天彻地。在Mali眼中,Midgard似乎就需要这样强大无比,将全球移动GPU市场纳入囊中。

Mali GPU现在几乎覆盖了全世界所有使用ARM架构的设备。
Mali GPU现在几乎覆盖了全世界所有使用ARM架构的设备。

回到现实中。Midgard从架构上来看很有趣,它的某些方面和市场中已经出现的GPU架构非常相似,但另一些方面差异又非常大。从架构上来看,Midgard是之前Utgard的继承者,但是统一渲染架构和分离式渲染架构的差异如此之大,使得这两个架构又不能直接比较。当然,Midgard还是继承了不少Utgard中优秀的部分,尤其是部分周围功能模块。Midgard架构相对应的产品终需要占领从廉价到顶级这样广阔的市场,为了达到这样的目的,ARM对产品进行了一些调整,削减了部分中低端型号的功能,并对内部结构进行了改变。因此,本文将重点集中在Midgard顶级的型号上,这样可以充分展示这个架构设计的优势。

首先需要了解的是Midgard的设计目标和功能。和之前只能支持OpenGL ES 2.0的、已经基本没有升级空间的Utgard不同,Midgard的功能要求更为丰富,它不但需要提供强悍的图形性能,还需要能够带来出色的计算性能。这部分内容需要依靠于统一渲染架构来完成,因为这类架构天生擅长大规模的数学、图形计算。因此计算功能只是一个扩充,但也是经过深思熟虑后的决定—ARM推广通用计算的目的可能不仅仅考虑图形市场。此外,从API的角度来看,Midgard架构设计甚至是超出目前的OpenGL ES 3.0的,所有的Midgard都能在硬件层面上支持OpenGL ES 3.1,不过OpenGL ES 3.1的功能设计依赖于操作系统和设备供应商所提供的驱动程序,这样的设计可以使得Midgard能够在未来API更新后跟上新的标准而不至于落伍。

ARM的GPU发展计划,从低端到高端都有覆盖。其中蓝色箭头代指产品采用了老的Utgard架构,而新的橙色箭头的产品都采用Midgard架构。
ARM的GPU发展计划,从低端到高端都有覆盖。其中蓝色箭头代指产品采用了老的Utgard架构,而新的橙色箭头的产品都采用Midgard架构。

目前的安卓系统可能很难支持Midgard的部分功能,但是更新的Android L和Android Extension Pack却能充分应用它们。新的Android Extension Pack将进一步扩展Open GL ES 3.1,尤其是加入那些目前尚不能支持的重要功能,诸如曲面细分和几何着色器(在桌面GPU中,前者在Direct3D 11中纳入官方支持,后者是Direct3D 10的代表性技术)。鉴于这种情况,Midgard都预先提供了对上述功能的支持。ARM已经证实,他们希望所有基于Midgard的GPU都能支持未来的更新的安卓系统和Android Extension Pack。

还有一点优势在于,伴随着OpenGL ES的规格更新,Midgard也开始支持Direct3D—由于目前Mali无法支持Direct3D,因此所有Windows Phone和Windows RT设备都只能使用英伟达或者高通的SoC。不过为了进一步区分市场,ARM还是将Midgard架构的产品做出了一些区分,比如即将到来的顶级产品Mali-760能够支持Direct3D 11.1,而较低端的Mali-T720只能支持到Direct3D 9.3,后者将普遍出现在入门级、更为注重成本的市场。

另外,Midgard的计算性能也需要关注。Midgard打算通过同时支持Android RenderScript框架和OpenCL 1.2,并积极成为这个领域的一个强有力的竞争者。OpenCL目前在移动计算领域做得并不算太好,主要原因在于操作系统都没有对它提供一致性的支持,比如iOS,而安卓也是近才开始支持,即使某些硬件支持OpenCL,但在支持的功能上也存在差异,终限制了开发人员使用这项技术。在这一点上,ARM已经明确表示,他们的Midgard将完全支持这方面的GPU计算。

分享到:

用户评论

用户名:

密码: