daojx的个人空间 https://blog.eetop.cn/108448 [收藏] [复制] [分享] [RSS]

空间首页 动态 记录 日志 相册 主题 分享 留言板 个人资料

日志

EAGLE is Coming!

已有 968 次阅读| 2010-11-28 10:24

转载一篇sailing的文章:
EAGLE is Coming!

ARM的崛起使Intel陷入长考。

PC领域尚无需担忧,这个领域尚属Wintel帝国。帝国的成员历经过多次优胜劣汰,Wintel制定的多数策略都能得到这些成员的支持,更重要的是使他们最终受益。Intel从PC领域切走了最大的一块蛋糕,却是众望所归,这与Intel在这个领域的付出成正比。PC帝国偶尔出现的纰漏,总能够被Intel及时发现并加以修补。进入PC帝国的大门被Windows系统牢牢把持,ARM阵营虽多次试探,最终仍被拒之门外。

在手机领域,Intel还不是局中人。XScale架构之后,世上没有任何一款手机正在使用Intel制造的处理器。在这个领域,手机厂商,代工厂商,芯片提供商,操作系统提供商,相互交融,有合作也有竞争,尚未形成动态平衡。Nokia仍然暂居最大的手机市场份额,却在智能手机输给了Apple和Andriod。

Apple执着的封闭式系统在这个领域取得了意想不到的成功。Google的加入使得本已混乱的市场,变得更加难以琢磨。Microsoft在这个市场中屡战屡败依然不离不弃。2010年10月11日Microsoft正式发布了Windows Phone7[105],Google Android 2.3即将到来的谣言也在漫天飞舞。

乱哄哄你方唱罢我登场,却是处理器领域之外的故事。

在手机处理器领域,ARM是最大的收益者。无论是Nokia,Apple,HTC还是Motorola都在使用ARM处理器。Intel对这个市场垂涎三尺,也无可奈何。已经发布的Atom系列处理器,无论是Silverthorn(Atom Z5xx)系列,Diamondville(Atom N2xx,2XX和3XX),Pineview(Atom N4xx, D4xx和D5xx)距离手机领域都很遥远。

Intel近期发布的代号为Lincroft的Atom Z6xx系列处理器,却应者聊聊。基于这个内核的Moorestown平台,难显Intel昔日的振臂一呼。尚未有任何一个手机厂商宣布使用这个平台生产手机。正在业界似乎还在等待Intel即将在2011年推出的Medfield平台,这个平台将沿用Atom Z6xx内核,采用32nm工艺,进一步提高性能功耗比[107]。Intel却很难选择继续等待,因为Intel的后院再一次燃起了熊熊烈火。

借助ARM处理器,Apple的iPad已率先向Intel发难。这也标志着手机领域和PC领域融合的开始。融合的进度虽然缓慢,绝大多数参与者却已先知先觉。Intel选择在手机领域进行反击,经过一系列的合作与收购,进军手机领域一支的先头部队已悄然组建。

Intel的这一系列动作,不足以改变手机领域的格局,却足以使其震惊。这个领域的既得利益者很难接收这位巨人。Intel的能力不容置疑,胃口却太大了些。过小的手机上放满了运营商和生产厂商的Logo,实在无法再加入一个Intel inside。

Intel并不在乎这些阻力。在短时间内,Intel的Atom处理器依然无法在性能功耗比上压倒Cortex处理器,对于Intel这确实是一个长期而艰巨的任务。这一些并不值得担忧。性能功耗比这个词汇是ARM发明的,主要目的是为了掩盖ARM处理器当时过于低下的性能。

这个词汇无法阻碍Intel进军手机领域的步伐。Intel很清楚只要Atom处理器能够在功耗上满足手机领域的需求,就可以利用自身强大的Ecosystem逐步切入手机领域。加以时日增强对手机领域的理解,Intel完全可以在手机领域向ARM阵营发起强有力的挑战。

Cortex系列处理器的横空出世打乱了Intel的部署。Intel在最不应该失败,也最失败不起的性能上,莫名其妙地输给了ARM。从Cortex A9起,ARM处理器实现了对Atom内核性能上的反超[i],而Cortex A15完成了对Atom内核的全面超越。虽然目前尚未有基于Cortex A15内核的处理器,但这只是时间问题。

Intel的时间所剩无几。如果在Moorestown/Medfield平台上使用的处理器内核性能没有明显超过Cortex系列处理器。Intel近期的所有努力将付之东流。在今后两到三年左右的时间,Intel必须发布一个全新的Atom内核[ii],在性能上需要明显高于Cortex A15内核。Intel必须在本质上提高Atom内核的性能,这需要一个激进的变革,而不是渐变。Intel可以暂时依靠并不完美的Atom内核在商务上取得成功,但是商业与技术不会长久背离。Cortex系列处理器的出现敲响了Intel的警钟。

第一颗Cortex内核于2004年10月19日发布[108],这个内核并不是Cortex-A8,而是Cortex-M3。Cortex A8内核于2005年10月4日发布[109]。随后ARM在2006年5月15日发布了Cortex-R4内核[110]。至此Cortex内核完成了在嵌入式领域的布局。Cortex M,R和A内核都使用ARMv7的指令集,应用于嵌入式的不同领域。M内核[iii]应用在一些对成本较为敏感的微控制器领域,R内核主要应用在实时控制领域,而A内核用于手机与PC领域。

ARM11之后,ARM处理器内核不再以ARM作为前缀[iv]。ARM公司取消这个前缀完全是出于迷信的考虑[v]。在ARM的历史上,所有以偶数结尾的ARM内核,包括ARM2,6,8和10,都没有获得成功。ARM不想使用12,而13似乎更加糟糕,于是换了一个新名字。ARM这个单词并没有在Cortex系列中消失,Cortex的三大系列M-R-A,合起来就是ARM。

更换前缀后的内核,已焕然一新。Cortex A8内核的DMIPS指标达到了2.0DMIPS/MHz,相比ARM11取得了巨大的进步。Cortex A8处理器在大幅提高性能的同时依然保持了低功耗优势。一个含有32KB的指令和数据Cache,256KB的L2 Cache的Cortex A8,在使用600MHz的时钟频率时,总功耗仅为300mW。

Cortex A8内核不再使用简单的Enhanced DSP指令,而是引入了NEON部件。NEON的功能与Intel的SSE类似,用于支持SIMD类指令。Cortex A8是第一颗引入Superscaler技术的ARM处理器。在每个时钟内,Cortex A8可以并行发射两条指令[111]。出于降低功耗的考虑,Cortex A8内核依然使用了静态调度的流水线和顺序执行方式。

为了进一步提高时钟频率,Cortex A8内核使用了13级的整型指令流水线和10级NEON指令流水线,流水线级数高于ARM11内核的8级。流水线级数的增加有利于处理器主频的提高,却对指令分支预测的成功率提出了更高的要求。

Cortex A8在ARM11的基础上,将BTB使用的Entry数目从64增加到512,同时设置了GHB(Global History Buffer)和RS(Return Stack)部件。这些措施极大提高了指令分支预测的成功率,从ARM11的88%提高到Cortex A8的95%[112]。

Cortex A8在Cache的设计中,首次引入了Way-Prediction部件。在现代处理器中,Cache由多个Way组成,如8-way,16-way或者32-way。Way-Prediction部件的主要功能是预测当前Cache访问将使用哪个Way,从而可以暂时关闭不使用的Cache行,从而到达节电的目的。Intel从Pentium M处理器起使用了这种Cache访问方式,并一直应用到x86处理器的后续产品中。Atom处理器也可能使用了这种方式。

与ARM11相比,Cortex A8内核在Cache Memory系统上,进行了较大的优化。Cortex A8内核访问L1 Cache只需要一个时钟,而ARM11需要使用两个。Cortex A8支持L2 Cache,大小为128KB~1MB,ARM11虽然也支持L2 Cache,却几乎没有被SoC厂商使用。Cortex A8可以使用64位或者128位总线连接外部设备,而ARM11只能使用64位总线。

Cortex A8使用Architecture-Gating和Functional-Gating两种技术进一步降低功耗。所谓Architecture-Gating是指,处理器内核执行WFI(Wait for Interrutp)指令之后,将进入idle-loop模式。Cortex A8的Functional-Gating技术的本质是使用Clock-Gating,分离各个功能部件。当处理器运行运算时,与其不相关的功能部件,如Cache,指令队列,Write Buffer和NEON所使用的时钟可以临时关闭,以达到节电的目的。Clock-Gating技术的大规模使用使得Cortex A8内核获得了300mw/MHz的功耗频率比[111]。

在前45nm时代,Clock-Gating技术也已经在x86处理器上得到了广泛的使用,Cortex A8之所以获得了高于x86处理器的性能功耗比的重要原因,一是使用了更少的晶体管,二是因为没有象x86处理器那样去挑战处理器运算能力的极限。

在Cortex A8之后,ARM加快了处理器内核的更新速度,每3年就会推出一个A系列处理器内核。这个速度远低于Intel的Tick-Tock。而对于人数不满两千,同时要兼顾Cortex R和M系列内核升级的ARM,已经是一个不小的奇迹。

2007年10月3日,Cortex A9正式推出[113]。Cortex A9具有两个版本,一个是传统的单内核,另一个是MPCore,最高主频可达2.0GHz,最多支持4个内核。Cortex A9的整型运算的性能在Cortex A8的基础上提高了25%,达到了2.5DMIPS/MHz和2.9CM/MHz[43][114],恰好超过Atom处理器的2.4DMIPS/MHz和2.8CM/MHz[vi]。

Cortex A9采用了更高的成产工艺,整型流水线的级数虽然只有8级[vii],时钟频率却高于Cortex A8。在Cortex A9中,ARM引入了高端处理器常用的乱序执行(Out-of-Order)和猜测执行(Speculative Execution)机制,进一步扩大了L2 Cache的容量(128KB~8MB),可使用Snooping和Directory两种机制实现Cache的一致性。

与Cortex A8相同,Cortex A9依然使用MESI模型进行Cache的共享一致性,但是对MESI模型进行了许多优化,支持更多的Cache-to-Cache传送方式,进一步减少了处理器对主存储器的访问[114][115]。

这些更新极大地提高了Cortex A9的性能。从Cortex A9开始,ARM处理器正式完成了对Intel Atom内核性能上的超越,Cortex A9在性能上超越的不仅是Atom,还包括同时代用于嵌入式系统的处理器,如PowerPC和MIPS处理器[115]。ARM依靠性能功耗比的日子已一去不复还。但是Cortex A9距离Intel的主流处理器,Nehalem,Westmere和Sandy Bridge处理器依然有不小的差距。

ARM并没有停下脚步,2010年9月8日,代号为Eagle的Cortex A15正式发布[116]。对于Intel而言,狼外婆终于来了。Cortex A15内核并不是Cortex A9的继承者,事实上Cortex A9虽然与Cortex A8的功能较为相近,也不是完全的继承关系。

与Intel频繁更新处理器内核的策略并不相同,ARM的内核具有更长的生命期。1993年发布的ARM7内核仍然在被大规模使用。依次估计,Cortex A8,A9和A15这三颗内核所关注的领域虽然有所重复,这三颗内核仍将在相当长的一段时间里并存,深入到嵌入式应用的各类高端领域。

Cortex A15已经拥有足够的性能,具备进军了Laptop和Server领域的能力。在未来的3到5年里,Cortex A9和Cortex A15组成的ARM处理器阵营将与Intel的Atom,Sandy Bridge处理器展开全方位的较量。

Cortex A15最高主频将达到2.5GHz,最多可支持8个内核,采用Superscaler流水线技术,具有1TB的物理地址空间,支持虚拟化技术,乱序执行,寄存器重命名,并行设置了多个执行单元。几乎在现代高端处理器技术中涉及的技术都可以在这颗芯片中找到。

Cortex A15内核的性能将在Cortex A9的基础上继续提高50%。ARM公司尚未公开Cortex A15的功耗指标,但是可以预计在性能大幅提高的前提下,Cortex A15的功耗也必随之大幅提高。

首先是处理器主频的提高。Cortex A15使用了超长的24级流水线结构[viii],前12级用于指令预取,译码与分发,这部分指令流水是顺序执行的;后3~12级用于指令的执行,在这一阶段,指令可以乱序执行[117][118]。

超长的流水线结构利于处理器主频的提高,但是与Cortex A8相比,在使用相同的工艺时Cortex A15的主频仅仅提高了10%[117],以此推测Cortex A15使用的超长流水线,可能为了降低功耗。

Cortex A15另外40%的性能提高,需要流水线其他部件和Cache Memory系统的协调工作。Cortex A15必须极大增强分支指令的预测命中率。过长的流水线也意味着巨大的流水线中断惩罚。Cortex A15分支预测部件的工作原理与Cortex A8/9基本相同,只是将BTB的条目增加到了2K个,而且采用2-way组相连结构。

Cortex A15的GHB由Taken阵列,Not Taken阵列和Seletor阵列[ix]组成。Cortex A15对非直接跳转指令进行了一些优化,设置了256个Entry的BTB阵列,每一个Entry可以存放多个目标地址。除此之外Cortex A15还引入了64个Entry全互连结构的MicroBTB。Cortex A15的这些功能增强进一步提高了转移指令的命中率,但是与Nehalem处理器的分支预测单元相比仍有不小的差距[117]。

Cortex A15的流水线与Cortex A8的基本结构较为类似,由Fetch,Decode,Rename,Dispatch,Neon/VFP,Interger Issue和Load/Store Issue等部件组成,只是在Cortex A15中,指令需要更多的时钟节拍才能通过这些部件[117]。例如在Cortex A15中,Fetch单元由5级组成,Decode单元由3级组成[117]。

Cortex A15的指令预取总线的宽度为128b,一次可以预取4~8条指令,与Cortex A9相比,提高了一倍。Decode部件一次可以译码3条指令,而Cortex A9一次可以译码2条指令。

Cortex A15引入了Micro-Ops的概念。Micro-Ops指令与x86的μops指令表现形式不同,但是基本想法较为类似。在x86处理器中,指令译码单元将复杂的CISC指令转换为等长的μops指令,再进入指令流水线中运行;而在Cortex A15中,指令译码单元将RISC指令进一步细分为Micro-Ops,以充分利用指令流水线中的多个并发执行单元。Cortex A15的Decode部件在一个时钟节拍内可以同时译码3条指令,并将这3条指令转化为5个micro-ops[117]。

Cortex A15进一步扩大了Interger Issue部件的发射能力,从Cortex A9的3条提高到4条。Cortex A15分离了Cortex A9的Load/Store Issue部件,具有独立的Load和Store部件,并开始在流水线使用128位宽的数据总线。

Cortex A15还使用了32个Entry的Loop Buffer,当处理器执行一段较长的循环指令时,指令流水线将直接从Loop Buffer中获得Micro-Ops,而无需使用Fetch和Decode部件。此时这两个部件可以暂时关闭,以节约功耗。Intel也在Core 2架构中使用了相同的机制[119]。

从体系结构的角度上看,Cortex A15相对与ARM处理器自身而言是一次飞跃,但是与Intel的Nehalem/Sandy Bridge处理器相比,仍处于入门阶段。上文所提到的在Cortex A15中出现的技术,对于Nehalem处理器而言都是微不足道,更不用说是Sandy Bridge处理器。但是Cortex A8/9+Cortex A15依然可以凭借性能功耗比向Atom+Nehalem/Sandy Bridge处理器发起强有力的冲击。

制约x86处理器继续向前发展的主要原因有两个。一是Intel已经处于处理器体系结构的最前沿,每前进一步的代价过于巨大,Cortex A15虽然取得了巨大进步,但是仍处于高端处理器的入门阶段,仍有巨大的潜力。更重要的是,跟随者可以以更小的代价获得最新的技术。另外一个原因就是Intel的向前兼容策略,在某种程度上束缚了Intel前进的步伐。

ARM公司一再强调Cortex系列处理器的性能功耗比的优势,也在不自觉地掩饰ARM处理器相对较为简单的架构。从处理器体系结构本身出发,决定一个处理器功耗的最直接的要素依然是使用的晶体管数目。x86系列处理器功耗较高的主要原因是集成了较多的晶体管。在ARM处理器中使用的低功耗技术没有哪一个是独门绝技,这些技术也出现在x86系列的处理器中,包括Atom处理器。

从低功耗的设计理论上讲,一个处理器的功耗主要由动态功耗和静态功耗两部分组成。而对于CMOS电路,动态功耗主要由开关功耗和短路功耗两部分组成,公式描述如下。

Pdyn = (CL × Ptrans × Vdd2 × fclock) + (tsc × Vdd × Ipeak × fclock) [120]

其中CL指电路总负载电容,Ptrans指工作电路所占的比例,Vdd指工作电压,fclock指工作频率。而tsc指PMOS和NMOS同时打开的时间,在多数情况之下tsc的值较小,因此上述公司的后半段几乎可以忽略不计,因此Pdyn ≈ (CL × Ptrans × Vdd2 × fclock)。

其中CL参数由电路设计的复杂度决定,这也是x86处理器和ARM处理器目前功耗差距的最重要来源。Ptrans参数由处理器设计的电源管理策略决定,这也引出了另外一个低功耗设计的热点问题,处理器的低功耗设计更应侧重于在不同的场景之下,功耗的使用情况,而不应关注平均值。放之四海而皆准的电源管理最优策略并不存在,没有人能做到又让马儿跑,又让马儿不吃草。

Vdd参数的降低可以有效的降低功耗,近些年Vdd的值在不断下降,从5.0V,3.3V,2.5V到1.2V和0.8V。Vdd的不断下降,导致Vt[x]也随之降低,不断降低的Vt最终导致Isub[xi]呈指数上升,反而极大了增加了静态功耗,这个现象在45nm及以下工艺的设计中更为凸现。fclock更似一面双刃剑。频率的提升有利于性能的提高,却也极大提高了功耗。

从CL和Ptrans两个指标上分析,不难发现ARM在CL层面上做得更好,更简练的设计决定了ARM处理器的低功耗。而在Ptrans层面上分析,x86更胜一筹,x86处理器在ACPI规范中定义了一系列处理器状态,运比ARM处理器定义的状态复杂。x86处理器获得了较低的Ptrans值,但也无法掩盖因为较高的CL而获得的总功耗。

随着处理器制作工艺的不断前进,静态功耗所占的比例在不断地提高,这使得一些可以显著降低动态功耗,却提高了静态功耗的技术不再适用。静态功耗是指在晶体管处于上电状态时,晶体管的漏电流(Leakage)引发的功耗。漏电流主要由ISUB,IGATE,IGIDL和IREV组成。使用45nm工艺时的静态功耗是90nm工艺的6.5倍,使用32nm,22nm工艺时,静态功耗所占的比例呈指数上升[120]。

这些变化使低功耗的设计从降低动态功耗逐步转移到降低静态功耗上,在管理策略上从Clock Gating逐步转移到Power Gating。在Cortex A8处理器中,ARM将Clock Gating技术发挥到了极致,而由于缺乏工艺上的领先,在Power Gating领域上落后于Intel。从纯技术的角度上看,无论在降低动态功耗还是静态功耗的领域上看,Intel都是领先的。Intel在工艺上领先的事实,也在一定程度上说明了从门级电路的实现上看,天下半导体厂商的合力尚不足与之抗衡。

Intel却没能实现性能功耗比最优的处理器,这是技术之外的故事。在商业上,Intel一直坚持着向前兼容。多年以来Intel依靠向前兼容,战胜了一个又一个对手。向前兼容需要额外使用更多的晶体管数量,在服务器领域,因为保留向前兼容所浪费的晶体管并不是太大的问题,在手机领域却不容忽视。

Pentium Pro处理器大约使用了30%的晶体管数目处理x86向前兼容,包括Microcode ROM,指令译码和控制逻辑[121],而Pentium Pro处理器一共使用了5.5M个晶体管数目[36]。但是不要认为x86处理器在处理向前兼容时仅仅需要使用1.65M颗晶体管。因为除了进行指令变化(Instruction Transforming)这段逻辑之外,随着L1指令Cache的增加,向前兼容所付出的代价也在等比例上升。更重要的是由于乱序存储器访问模型的出现,向前兼容需要付出更大的代价。

Atom处理器在实现中使用了In-Order的流水线,并没有采用乱序执行的μops指令流水线,在很大程度上也在回避着因为向前兼容而带来的巨大惩罚[xii]。x86处理器继续背着向前兼容的大山,与针对性能功耗比进行了一轮又一轮优化的Cortex系列之间的竞争并不公平。

对Intel更不公平的是其长期坚持的通用平台战略。因为Intel的努力,PC处理器更加标准,更加通用,更加廉价。通用平台使得Intel获得了巨大的成功,却在一定程度上阻碍了Intel进军嵌入式领域。

嵌入式领域是一个备受Intel通用平台战略挤压的系统,通用处理器每进一步,嵌入式处理器便后退一步。嵌入式处理器在不断后退,不断细分的过程中,顽强地活了下来,更加根深蒂固地坚守了自己的阵地,回首却发现一直在前进的通用处理器x86,生活在最大孤岛中,被其包围得密不透风。这一次x86处理器需要从孤岛中游回彼岸,却无法使用ARM阵营的细分市场策略。

Intel和ARM两个公司本身并不具备可比性。Intel自1992年起,一直在半导体厂商中排名第一,而ARM公司从来没有进入过半导体厂商的排名,甚至可以说ARM并不是一个半导体厂商,因为ARM没有生产过一颗商用处理器。Intel一年的销售额是几十个Billion,而ARM仅为几百个Million。Intel有7,8万名员工,而ARM仅有1700余名员工。

虽然单独的ARM没有办法与Intel比较,但是ARM阵营所蕴含的能量却足以与Intel的x86阵营抗衡。在2009年排名TOP20的半导体厂商,除了Intel,AMD和Elpida之外,全部License了ARM内核。不仅如此ARM阵营还包括Apple,Microsoft和Google。诸多形态各异厂商的参与使ARM阵营更加立体化。

在x86处理器阵营中,AMD近期很少有声音[xiii],VIA在持续的亏损,真正努力的只剩下Intel。在Intel的Ecosystem中,除了Intel和提供基础BOIS的厂商外,其他的OEM/ODM并没有在处理器体系结构方面给予Intel必要的帮助。有些OEM厂商更像是依托在x86处理器之上的寄生虫。

严酷的外部环境使得Intel更加需要使用统一平台战略进入嵌入式市场,虽然这个策略与嵌入式系统要求的进一步定制,进一步细分的原则背道而驰。Intel不能在统一平台上有所动摇,目前以及在很远的将来,x86处理器阵营都无法向ARM处理器那样深入到嵌入式的每一个领域。多数嵌入式领域所提供的空间也无法容纳Intel这样的庞然大物。

Intel的目标非常明晰,就是进军手机处理器。虽然ARM处理器在手机领域处于垄断地位,在技术上Intel也并非没有任何机会。与ARM处理器相比,Intel的Atom处理器性能功耗比相对较为落后,但这并不是Intel在技术上的最大劣势。从整型运算的角度上看,Cortex A9略高与Atom处理器,而Atom处理器在Cache memory的表现更优。内核上的相比,两者各有千秋。

最使Intel尴尬的是,x86处理器并没有一个与AMBA总线类似的SoC平台总线,这是Intel进军嵌入式领域一个不小的障碍。Intel或者定义一条全新的SoC平台总线,或者集成AMBA总线。从加速推出产品的角度上,直接使用AMBA总线无疑是一条捷径。而世上没有捷径,从更长远的时间上看,借用AMBA总线,会使ARM阵营更加强大。最初的所谓捷径不过是为他人做的嫁衣裳。

Intel却很难有其他选择。在x86处理器系统中广泛应用的PCIe总线,不能使用在SoC内部。这条总线的设计目标是作为局部总线,连接片外的外部设备。PCIe总线可以提供巨大的带宽,也带来了较大的传送延时。更为重要的是与基于AMBA总线的外部设备相比,实现基于PCIe总线的外部设计需要更多的资源,也因此带来了巨大的功耗。

基于PCIe总线的低功耗设备,与基于AMBA总线的低功耗设备,在性能功耗比上没有可比性。AMBA总线是一个在SoC领域使用的事实上的标准。AMBA总线阵营的强大超乎多数人的想象。

AMBA总线V1.0于1995年正式发布[122],用于SoC内部各个模块间的互联,支持多个主设备,支持芯片级别测试。AMBA V1.0定义了两条总线,ASB(Advanced System Bus)和APB(Advanced Peripheral Bus)。V1.0还定义了一个连接存储器的外部接口,这个外部接口还可以用做测试。

ASB总线是一个快速总线接口,使用独立的地址数据总线,支持流水传送方式,支持多个主设备与从设备,采用集中译码和仲裁方式。ASB总线的主要作用是连接CPU,DMA引擎,内部存储器和一些快速外部设备。而APB总线连接一些慢速设备,APB是ASB的Secondary Bus,两者的关系如图4所示。



 
图4 ASB与APB的组成结构[123]

 从今天的技术上看,AMBA V1.0总线十分简陋,设计这样的总线标准甚至可以作为几个研究生的毕业论文。而AMBA总线是一个开放标准,使用AMBA总线用户不需支付任何费用[123]。开放的总线标准使AMBA总线迅速普及的同时,极易吸收整个半导体业界的成果。

1999年AMBA总线更新到V2.0[124],增加了一个新的总线AHB(Advanced High-Performance Bus)。AHB取代了ASB在系统中的位置,并使ASB进一步下移,增加了Split传送方式进一步提高了存储器读的效率,总线宽度最高可达128位。

2001年,ARM发布了AMBA V3.0总线规范,引入ATB(Advacned Trace Bus)和AXI(Advanced eXtensible Interface)总线。AXI总线的引入,使得AMBA总线迈向新的台阶,性能已经可以与IBM的CoreConnect抗衡[126]。

AXI是一条现代总线。AXI总线分离了一个总线周期的地址阶段和数据阶段,更便于实现在现代总线中常用的Pipelining和Split技术。AXI总线进一步分离了总线通路,将AHB的单通路分解为Read Data,Read Address,Write Data,Write Address和Write Response共5个独立通路,进一步加速了对存储器的读写访问。

AXI总线接口逻辑设计较为复杂,与AHB总线相比多使用了50%的资源。AXI的一次总线周期至少需要传送64字节的数据,而AHB总线是16字节,这也导致AXI总线的传送延时高于AHB总线[125]。AXI总线的目标不是用于替换AHB总线,事实上在一个SoC中,AXI总线和AHB依然并存,只是AXI总线更接近ARM内核,而AHB总线更贴近外部设备。

AMBA总线阵营已经统治了整个嵌入式的平台总线,而且正在日益壮大。2010年3月8日,ARM正式推出AMBA V4.0总线,引入了QoS机制,进一步增强了多层结构,将AXI总线细分为AXI4,AXI-Lite和AXI-Stream[127]。

AMBA总线标准提供的AXI,AHB,ASB,APB和ATB总线,不仅使用在ARM处理器系统中,MIPS和PowerPC处理器也开始使用AMBA总线。除了嵌入处理器之外,TI,Freescale的DSP也在使用AMBA总线。AMBA总线已经无孔不入,在整个嵌入式领域,没有可以向其挑战的对手[xiv]。

面对ARM内核,Intel并不畏惧,面对AMBA总线阵营,Intel只能剩下无奈。可以预计在相当长的一段时间里,Intel无法推出一条能和AMBA总线抗衡的SoC平台总线。Intel只能暂时向AMBA总线示弱。Intel自身具有强大的图形处理芯片,却在Moorestown平台中不得已使用了PowerVR SGX 535[128][129]图形处理芯片。PowerVR SGX 535也是Apple A4,Samsung Hummingbird和TI的OMAP4处理器使用的图形处理芯片。

基于低功耗的考虑,Intel依然需要依赖ARM阵营提供的外部设备。而如果最终的结局是Atom处理器依赖AMBA外设战胜了Cortex内核,Atom处理器也会被ARM阵营重新绑架。对于多数厂商,通过简单的系统集成,快速推出市场需要的产品是第一位的,而这些厂商却无法获得更高利润。

ARM的廉价License策略实际上已经清楚地向Intel转告了一个事实,单纯依靠处理器内核无法在嵌入式领域取得暴利。而无法获取暴利的领域是不会有持续的资金注入。Intel并不会例外。

也许Intel一直等待Medfield平台的成熟。但是不要给予这个平台太多的期望。Medfield,这颗Intel有史以来第一个基于Atom处理器单芯片解决方案[130],如果仅是将Moorestown平台的Lincroft处理器和Langwell和二为一,前景并不光明。Medfield平台所提供的外设,很难与ARM平台的外设抗衡,最多只是打个平手。

在外部设备领域,ARM不是一个人在战斗,而是利用AMBA总线控制了整个半导体界。整个世界已有的用于手机的处理器平台都在使用基于AMBA总线的各类外设,而没有一个使用PCI/PCIe总线的外部设备。

Intel的Medfield平台可能的优势依然是在处理器内核上全面战胜Cortex A9和A15。而这一切对于Atom Z6xx内核来说几乎是一件不可能完成的任务。可以预见,Medfield平台诞生后,依然与基于Cortex A9内核的手机平台旗鼓相当。而对于后入者,仅靠旗鼓相当,很难获取太多的市场份额。

而在抛开技术之后,Intel所面临的处境更加艰难。Intel所主导的Wintel帝国统治IT世界已有多年,芸芸众生对Wintel帝国产生了严重的审美疲劳。Intel需要进入的手机领域,与其说被ARM把持,不如说被剩余的几乎所有半导体厂商把持。Intel动了ARM的奶酪也意味着动了全天下半导体厂商的奶酪。Intel的进军手机领域更像是一场大的赌博,没有人知道结局。可以肯定的是,Intel再放弃了XScale架构之后,不会轻易地放弃Atom架构。

也许Intel需要急迫解决的并不仅是技术问题。与许多巨型公司相似,在更多时候,最大障碍不在颛臾而在萧墙之内。与不到2000员工的ARM相比,来自Intel内部的故事复杂得多,也深刻得多。

多年以来,Intel在PC领域取得巨大成功的同时,也滋生了巨大的执拗。x86处理器之前取得的辉煌,使得改变成为Intel一个尽力回避的观念。Medfield平台的成功,对于Intel可能不是一件好事。也许Intel需要的是一场大的失败,因为使用失败统一内部意见往往比使用胜利容易得多。

2011年,Intel将发布Medfield平台。ARM阵营也许依然会战胜Medfield平台。这仅是决战的开始。永远不要低估Intel这颗巨人的心。


[i] 有关Atom处理器与Cortex A9的性能对比见ATOM的前生今世。

[ii] 传统的Atom处理器随着Cortex A15的发布,已经事实上死亡。

[iii] M内核实际上不是ARM内核,而是16位的Thumb 2内核。

[iv] 对我而言这是一件非常快乐的事情。从这时起,我再也不用写ARM公司的ARM7内核这样绕口的文字了。

[v] 没有找到ARM的官方说法,所以没有列出参考文献。这个说法很可能是我在ARM公司工作的一个朋友的谣言。

[vi] 我更相信这是Cortex A9处理器的预谋。Cortex A9可以超过的更多,不过ARM选择将更多的风头留给Cortex A15。

[vii] 8级流水做到了2.0GHz,又是乱序,又是猜测访问,又是多发射,实在是佩服。

[viii] 使用了这么长的流水线,却不是为了提高主频,想必是基于降低功耗的考虑。应该有些独特的设计,目前尚无找到详细描述。Cortex A15的这种做法有别于x86。

[ix] 在多数处理器中,GHB具有4个状态Taken,Not Taken,Weekly Taken和Weekly Not Taken,Cortex A15将后两种状态合并。采用这种方法可以进一步减少晶体管数目,但其效果仍需观察,目前尚未找到采用这种方法的最终量化分析结果。

[x] Vt指电压的门限值,用来识别0,1逻辑。

[xi] Isub指亚域值漏电流,即从Drain经过弱反形层流向Source的电流。

[xii] 随着纳米技术的不断向前发展,因为向前兼容所浪费的晶体管数目在整个Die中所占的比例在不断缩小。但是向前兼容为处理器的设计却造成了巨大的困难。因为照顾向前兼容,采用了非最优的设计而浪费的晶体管数目很难统计。

[xiii] AMD近期发出的声音是加入Intel和Nokia主导的Meego阵营。AMD这种态度,在很大程度上是在向世界承认弱者的地位,和不争第一的雄心壮志。只希望在未来的几年,当Intel与ARM激战正酣时,AMD不要再去抄Intel的后路。

[xiv] 从技术的角度上讲,x86处理器内部的系统总线和QPI互联机制依然比AMBA4复杂得多,这些机制仅使用在Intel的x86处理器中。

点赞

评论 (0 个评论)

facelist

您需要登录后才可以评论 登录 | 注册

  • 关注TA
  • 加好友
  • 联系TA
  • 0

    周排名
  • 0

    月排名
  • 0

    总排名
  • 0

    关注
  • 1

    粉丝
  • 0

    好友
  • 3

    获赞
  • 21

    评论
  • 3401

    访问数
关闭

站长推荐 上一条 /1 下一条

小黑屋| 关于我们| 联系我们| 在线咨询| 隐私声明| EETOP 创芯网
( 京ICP备:10050787号 京公网安备:11010502037710 )

GMT+8, 2024-3-28 16:30 , Processed in 0.026832 second(s), 13 queries , Gzip On, Redis On.

eetop公众号 创芯大讲堂 创芯人才网
返回顶部