细说ARM和X86的江湖恩怨(三)

发布时间:2011-01-9 阅读量:1149 来源: 发布人:

200212月,ARM1136内核发布[91]2004719ARM1176内核发布[92]2005310ARM1156内核发布[93]。在此之前的ARM处理器虽然得到了广泛应用,但是从纯技术的角度上看这些处理器微不足道。

ARM11基于ARMv6指令集,之前ARM还开发了V1V2V2aV3V4V5指令集。ARM使用的内核与指令集并不一一对应。如 ARM9使用V4V5指令集,XScale使用V5指令集。ARM7最初使用V3,而后使用V4,最后升级到V5。在ARM指令集后还包含一些后缀如 ARMv5TEJ,其中T表示支持Thumb指令集,E表示支持Enhanced DSP指令,而J表示支持Jazelle DBX指令。

ARM v4指令集包含最基础的指令集;v5增强了ARMThumb指令间的交互同时增加了CLZ(Count Leading Zero)BKPT(Software Breakpoint)指令;ARMv5TE增加了一系列Enhanced DSP指令,如PLD(Preload Data)LDRD(Dual Word Load)STRD(Dual Word Store)64位的寄存器传送指令如MCRRMRRCARM v4v5在指令集上变化不大,v5也可以向前兼容v4指令集[94]

v6指令集并不能100%向前兼容v5的指令集。由于ARMv6对存储器访问模型的大规模更改,完全的向前兼容不再可能。从x86处理器苛求的向前兼容的角度上看,这些改动并不完美,也正是这些不完美使得ARM内核轻装前进。

ARM的指令集使用RISC架构,但是在ARM指令集中包含许多CISC元素。与PowerPC指令集相比,ARM的指令集凌乱得多,这为指令流水线的译码部件制造了不小的麻烦。在ARM内核包含三类指令集,一个是32b长度的ARM指令,一个是16b长度的Thumb指令,还有一类由8位组成的变长Jazelle DBX(Direct Bytecode eXecution)指令集。在ARM架构为数不多的指令集中,有两类指令值得特别关注,一个是Conditional Execution指令,另一个是移位指令。

绝大多数ARM的数据访问指令都支持条件执行功能。所谓条件执行是指指令可以根据状态位,有选择地执行。使用这种方式可以在一定程度上降低条件转移指令预测失败时所带来的系统延时。在计算GCD(Greatest Common Divisor)时,ARM的条件执行指令发挥了巨大的作用,如图2所示。

2 gcd算法的实现[94]

通过上图可以发现由于SUBGTSUBLE指令可以根据CMP指令产生的状态决定是否执行,采用该类指令可以显著降低代码长度。ARM指令集还对移位操作进行了特别的处理,事实上ARM不含有单独的移位指令,而使用了Barrel Shifter技术,与其他指令联合实现移位操作。使用这种方法可以有效提高某些运算的效率,如图3所示。

3 Barrel Shifter的使用

这些特殊的指令使得ARM内核有别于其他处理器内核,但这并不意味着也极大提高了执行效率。首先CMP指令,SUBGTSUBLE指令有较强的相关性,不能并发执行。此外现代处理器的条件预测单元也可以极大降低条件转移指令的命中率。一些处理器,如x86CMOV指令和PowerPCisel指令使用了更小的代价实现了ARM的条件执行功能。

ARM内核在条件执行指令时占用了4个状态位,也进一步影响了指令集和寄存器的扩展。绝大多数RISC处理器中具有32个通用寄存器,而ARM内核仅有16个通用寄存器[x]ARM的特殊移位操作,增加了指令的相关性,在有些情况下,不利于多发射流水线的实现,也增加了指令流水中预约站 RS(Reservation Station)的实现难度。

计算机体系结构是一个权衡的艺术,尺有所短,寸有所长。不同的内核都有自己最为合适的应用,不经过认真的量化分析不能轻易得出孰优孰劣的结论。不过仍有一个结论,在现阶段依然适用,处理器领域历经多年的优胜劣汰,所剩无几的处理器内核在激烈的竞争中日渐趋同。

ARM11内核使用了现代处理器中常用的一些提高IPC的技术,这是ARM处理器的一个重要里程碑。ARM11内核引起了计算机科学的两个泰山北斗,David A. PattersonJohn L. Hennessy的注意。他们以ARM11内核为主体,而不再是MIPS,书写了计算机体系结构的权威著作,《Computer Organization and Design, Fourth Edition: The Hardware/Software Interface》。这也是学术界对ARM处理器有史以来的最大认可。

ARM11可以支持多核,采用了8级流水线结构,率先发布的内核其主频在350~500MHz之间,最高主频可达1GHz。在使用0.13μm工艺,工作电压为1.2V时,ARM11处理器的功耗主频之比仅为0.4mW/MHzARM11增加了SIMD指令,与ARM9相比MPEG4的编解码算法实现速度提高了一倍,改变了Cache memory的结构,使用物理地址对Cache行进行索引[95]ARM11终于开始使用动态分支预测功能,设置了64Entry4个状态的 BTAC(Branch Target Address Cache)[95]

ARM11进一步优化了指令流水线对存储器系统的访问,特别是在Cache Miss的情况之下的存储器读写访问。在ARM11内核中,当前存储器读指令并不会阻塞后续不相关的指令执行,即便后续指令依然是存储器读指令,只有3个存储器读指令都发生Cache Miss的情况,才会阻塞指令流水线[95]

虽然ARM11没有使用RISC处理器常用的out-of-orderSuperscaler技术,在一个时钟周期之内仅能顺序发射一条指令,但是支持out-of-order completion功能,即在执行单元中的不相关的指令可以乱序结束,而不用等待之前的指令执行完毕。

ARM11的这些功能增强,相对于ARM9/10是一个不小的技术飞跃。但是与其他处于同一时代的x86PowerPCMIPS处理器相比,仍然有不小的差距。ARM11内核的存活之道依然是性能功耗比。

依靠着强大的性能功耗比,ARM11内核取得了巨大的商业成功。ARM11内核并不是一个性能很高的处理器,但是随着ARM处理器性能的不断提升,量变终于引发了质变。ARM11内核的出现,使得Smart Phone的出现成为可能。

在此之前,基于ARM9XScale处理器的手机只是在Feature Phone的基础上添加了少许智能部件。自ARM11的问世起,AppleHTC在智能手机领域异军突起,Motorola一蹶不振。ARM11之后,ARM迎来了爆发式增长,陆续发布了Cortex A8A9内核。

ARM处理器内核的快速更新,使得Nokia这个对新技术反应迟钝的公司,一步步走向衰退。在20109月底开始出货的Nokia N8[96],居然还在使用着680MHz主频的ARM11处理器[97],而这款产品却号称是Nokia最新的旗舰产品,它的竞争对手早已使用了 1GHz主频的Cortex A8处理器。

Cortex处理器是一个分水岭,从1983年开始的ARM内核,迎来了一颗真正意义的现代处理器。此时的ARM已经破茧成蝶,不再是低功耗伴随着低能的处理器。从这一刻起,ARM处理器具备了和Intel,一较高下的能力。201043AppleJobs正式发布iPadARM随之进入平板电脑领域[99]ARM已将战火烧到了Intel的后院。

抛弃了XScale架构的Intel,并没有放弃手机处理器。2009123NokiaIntel在手机领域建立长期合作伙伴关系 [103]200964Intel收购Windriver[102]201054Intel正式发布用于智能手机和平板电脑,代号为 Moorestown的处理器[100]2010829Intel收购Infinion的无线部门[104]。在2011年左右,Intel将发布用于智能手机,代号为Medfield的处理器[101]。一系列的合作与收购,使Intel具备了进入手机领域的能力。

至此ARM之于PC领域,x86之于手机领域的野心,已昭然若揭。201099ARM正式发布代号为Eagle5ARM9架构的 Cortex A15内核,这颗处理器所关注的应用是高端手机,家庭娱乐,无线架构,还有低端服务器[98]Cortex A15向世人宣布除了PC,他们还要向Server进军。

ARM,这个曾被Intel鄙视,被其扶植,被其抛弃的处理器,开始直面挑战Intelx86处理器。这场较量是今后处理器领域510年的主旋律。最终结果将影响处理器领域今后20年的格局。不要认为ARM处理器没有进入PC领域的可能,也不要认为ARM处理器可以继续在手机领域中所向披靡。

--------------------------------------------------------------------------------

[i] 苹果公司的两个创始人都叫Steve,一个是Steve Wozniak,另一个是众所周知的Steve JobsSteven WozniakApple IApple II的发明者。两个Steve19764月,在一个车库中成立众所周知的Apple

[ii] 英国的谷仓文化与美国的车库文化相近,都是新技术的摇篮。

[iii] ARM公司从ARM3直接升级到ARM6

[iv] 我最初评估的ARM芯片就是Cirrus LogicEP7312。当时我还在使用AlteraEPLD,名称是EP7132,我经常混淆这两个名字。在一个机缘巧合之下,粗心的采购将我需要购买的EP7132买成了EP7312,这颗芯片也是我不经意购买的第一颗ARM处理器。

[v] 当时的处理器价格高得离谱,50美金已经是很廉价了。

[vi] 我从SA1110开始接触ARM处理器,那是一个永远值得回忆的时代。

[vii] 我在摩托罗拉半导体部门第一次接触的就是Coldfire处理器,目前这颗处理器仍然在不断发展中,这颗芯片与68K在汇编语言层面兼容,但是目标代码并不兼容。

[viii] QorIQ系列处理器基于E500 mc内核,与E500 v2有些微小差异。我的第一本著作是基于E500内核的《Linux PowerPC详解—核心篇》,当时准备写一套丛书,包括核心篇和应用篇。应用篇主要写外部设备,后来的《PCI Express体系结构导读》源自《Linux PowerPC详解—应用篇》,应用篇应该包含网络协议,PCI ExpressUSB总线,后来把网络协议部分和USB总线部分删掉了。

[ix] 在处理器体系结构中,重点关注的有三类相关问题,RAWWARWAW。使用寄存器重命名技术可以解决WARWAW相关。

[x] 考虑到ARMARM11内核之前都不支持动态分支预测,和多发射,使用条件执行指令还是能够提高ARM7/9内核的执行效率。

更多相关信息请参阅:

细说ARM和X86的江湖恩怨(一)


细说ARM和X86的江湖恩怨(二)

CES2011

本站CES专题


相关资讯
2025全数会智能工业展四大焦点发布!展位预订火热开启!

2025(第六届)全球数字经济产业大会暨智能工业展将于2025年7月30日至8月1日在深圳福田会展中心举办

项目需求推荐 |预算7万,X86开发板、人体探测等优质项目亟需工程师!

百余优质电子开发项目等你抢单 接外快/找服务 上快包平台

佳节献好礼,DigiKey 第 16 届年度 DigiWish 佳节献礼活动即将开启!

DigiKey 将于 2024 年 12 月 1 日正式启动其第 16 届年度 DigiWish 佳节献礼活动。

贸泽电子深入探讨以人为本的工业5.0新变革 探索灵活的可持续未来工业机遇

本期EIT探讨了从工业4.0到工业5.0的转变,以及即将实现的技术进步

2025第24届西部全球芯片与半导体产业博览会

CWGCE2025西部芯博会总规模将达到60000㎡,同期举办光电展+工业展+智能展+军工展等相类展会,将有更多集成电路行业新装备、新产品、新材料、新技术、新工艺、新趋势及新应用集中亮相