原帖地址:http://community.arm.com/groups/processors/blog/2012/11/01/biglittle-in-64-bit
作者:brianjeff
随着ARM推出了Cortex-A50系列处理器,大小核组合("big" and "LITTLE" processor pair)提升到了64位. 那么针对第二代大小核平台,目前那些面向32位ARMv7系列处理器的软件会有什么变化?另外,大小核技术除了在移动设备上以外,能否进入64位处理器需求持续增长的低功耗服务器领域呢?
首先, 我想着重指出:大小核软件运行在操作系统层级,在内核空间。 更进一步地说,就是它对于所有的应用程序和中间件都是透明的。 在两个主要的操作模式下(CPU Migration和big.LITTLE MP)(具体请参见ARM Cortex-A53 — Who You callin' LITTLE? ),大小核软件都包含了小规模的系统内核补丁。 目前,这些补丁是用ARMv7代码写的,并且是开源或者从 Linaro 那里可以找到。而Cotex-A50系列处理器支持的AArch32执行态也100%向下兼容ARMv7, 所以一个Cortex-A50系列大小核处理器可以无需进行大的变动就可以执行现存的32位核心,包括那些打了补丁后支持大小核的核心。在常规缓存维护上需要有些变化,但是事实上大小核软件是一样的。
这也是非常重要的,所以我们会持续改进ARMv7的大小核代码库。 第一代基于大小核处理器的产品将在2013年上市。
ARMv8支持64位和32位的操作。 AArch64是描述64位操作模式的架构,AArch32则是用来描述32位操作模式的。AArch64架构拥有更多优点,比如增强的SIMD,更大的寄存器文件,增强的缓存管理,标记指针,以及更灵活的寻址方式。 当然,为了实现这些优势,我们必须在大小核处理器上基于AArch64运行64位操作系统。
ARM64位Linux已经可以使用,ARM也演示了在64位Linux核心上运行 Android 32位的代码(未修改)。为了在64位核心上提供大小核的支持,接下来的一步就是要修改CPU Migration和big.LITTLE MP的补丁来适应AArch64的环境。 幸运的是,代码不会因为寄存器宽度有大的变化,并且因此大部分ARMv7到64Bit的的输出都很简洁,我们计划在2013年中公布64位的对应补丁。这就与2013年底基于Cotex-A50的SoC出样片以及2014年出产品达到良好的同步。
尽管我们并不期待64位移动操作系统那么早就变得流行,但是如果真变成这样的话,AArch32模式的Cotex-A50处理器将在支持ARMv7的32位操作系统的基础上,随时准备移植到64位系统去。
大小核技术除了可以在手机技术上实现了节能,同样在低功耗服务器上,也能展现出爆炸性的技术特点。因为处理器由于内存限制,需要大量的高效处理器来分担工作量。而这些工作量又会在相同的软件下使其自身的核处于不同的能效水平。
由于高性能核数量的增加以及系统功率分配的下降,限制留给CPU的可用功耗已经越发少得接近移动设备了。比如考虑到在一块板子上会存在一个有16个CPU的无风扇20-25W的芯片,以及IO设备,一个大的L3缓存还有其他加速器。一旦你除去那些花在非CPU部分上的功耗,并且把剩余的功耗平分给16个CPU,你会发现留给每个CPU的可用功耗已经逼近手机的可用功耗了。大小核技术能帮助设计师们只需要使用基于移动处理器的低成本和无风扇设备就能实现企业级的应用性能。
另外一个使得大小核技术能引起大家兴趣的原因就是它能高效地支持动态变化的性能需求。比如典型的基础设施设备是为了要能应对峰值容量的,比如,要能对付母亲节时的电话拨打量或者超级杯橄榄球赛时的网络流量。而极有可能的是平时的流量只是峰值流量的一半。这时,我们就需要一个能够在同一个系统甚至同一个裸片上包含大小核的架构,只有它能有效满足动态切换的性能需求。并且能实现更佳的功耗和更少的TCO。
big.LITTLE MP软件可以让OS完整地看到系统中所有的大核和小核,可以自动对系统中的工作进行分配。此种模式要比CPU Migration更适合企业级应用。 CPU Migration利用动态电压和电流比(DVFS)来触发大小核之间的变换。虽然典型的DVFS在移动设备中工作良好,但是在企业系统中却未必如此。因此现在很多实际的半导体和企业应用伙伴正在测试big.LITTLE MP如何能更有效地帮助他们在不提升功率分配的情况下实现目标性能。
在服务器领域,我们还在评估大小核的优势。不过现在大家对基于ARM的低功耗服务器具有极大的兴趣,因为即使是我们的大核Cortex-A57 CPU也要明显比当前的方案的功耗要低。随着OEM对生产更高功效的服务器的压力增大,我们可以清楚地发现那些只适用于峰值运行情况的CPU并非我们的最佳选择。单一的CPU型号不能满足所有的需求。对于很多不同层次的服务器方案,总体吞吐量的指标要比峰值性能更加重要。在这些应用中,一个由很多小核Cortex-A53处理器组成的系统能实现在降低功率分配情况下的最高总体表现。一系列的高功效服务器产品可能由Cortex-A57或者Cortex-A53构成,但是却不一定是在同一芯片上使用两种核。操作系统软件将根据市场变化准备匹配其中一种情况,大小核或者同质多核。