ARM與x86之4--EAGLE is Coming!

EAGLE isComing!

ARM的崛起使Intel陷入長考。

尚屬Wintel帝國的PC領域無需擔憂。帝國的成員已經歷經過多次優勝劣汰。Wintel制定的多數策略能得到這些成員的支持,並使他們最終受益。IntelPC領域切走了最大一塊蛋糕,也是衆望所歸,這與Intel在這個領域的付出成正比,更重要的是這個蛋糕正是Intel自己做的。PC帝國偶爾出現的紕漏,總能被Intel及時發現。進入帝國的大門被Windows系統牢牢把持,ARM陣營雖多次試探,仍被拒之門外。

在手機領域,Intel還不是局中人。在XScale架構之後,世上沒有任何一款手機正在使用Intel的處理器。在這個領域,手機廠商,代工廠商,芯片提供商,操作系統提供商,相互交融,有合作也有競爭,尚未形成動態平衡。Nokia仍然佔有最大的手機市場份額,卻在智能手機輸給了AppleAndriod

在這個領域,Apple執着的封閉式系統取得了意想不到的成功。Google的加入使本已混亂的市場,變得更加難以琢磨。Microsoft屢戰屢敗依然不離不棄。20101011日,Microsoft發佈了Windows Phone7[105]Google Android 2.3即將到來的謠言也在漫天飛舞。

亂哄哄你方唱罷我登場,卻是處理器領域之外的故事。

ARM是這個領域最大的收益者。無論是NokiaAppleHTC還是Motorola都在使用ARM處理器。Intel垂涎三尺也無可奈何,陸續發佈的Atom系列處理器,無論是Silverthorn(Atom Z5xx)系列,Diamondville(Atom N2xx2XX3XX)Pineview(Atom N4xx, D4xxD5xx)距離手機都很遙遠。

Intel近期發佈的代號爲LincroftAtomZ6xx處理器,卻應者聊聊。基於Lincroft內核的Moorestown平臺,難顯Intel昔日的振臂一呼。尚未有任何一個手機廠商宣佈使用這個平臺生產手機。

業界似乎仍在等待Intel即將在2011年推出的Medfield平臺,這個平臺將沿用Atom Z6xx內核,採用32nm工藝,進一步提高性能功耗比[107]Intel很難繼續等待,因爲Intel的後院再一次燃起了熊熊烈火。

藉助ARM處理器,AppleiPad已率先發難。這標誌着手機領域和PC領域融合的開始。融合的進度雖然緩慢,參與者也已先知先覺。Intel選擇在手機領域進行反擊,經過一系列的合作與收購,進軍手機領域一支的先頭部隊已悄然組建。

Intel的一系列動作,不足以改變手機領域的格局,卻足以使其震驚。這個領域的既得利益者很難接收這位巨人。Intel的能力不容置疑,胃口卻大了些。過小的手機上放滿了運營商和生產廠商的Logo,已經無法再嵌入一個Intel inside

Intel不在乎這些阻力。在短時間內,Atom處理器無法在性能功耗比上壓倒Cortex處理器,對於Intel這是一個長期的任務。而這些阻力並不值得擔憂。

性能功耗比這個詞彙是ARM發明的,主要目的是爲了掩蓋ARM處理器當時過於低下的性能。這個詞彙本身無法阻礙Intel進軍手機領域的步伐。Intel清楚只要Atom處理器能夠在功耗上滿足手機領域的需求,就可以利用自身強大的Ecosystem逐步切入手機領域。加以時日,增強對手機領域的理解,Intel可以在手機領域向ARM陣營發起強有力的挑戰。

Cortex系列處理器的橫空出世打亂了Intel的部署。Atom處理器在最不應該失敗,也最失敗不起的性能上輸給了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內核於20041019日發佈[108],這個內核並不是Cortex-A8,而是Cortex-M3Cortex A8內核在2005104日發佈[109]。隨後ARM2006515日發佈了Cortex-R4內核[110]。至此Cortex內核完成了在嵌入式領域的佈局。Cortex MRA內核使用ARMv7的指令集,應用於嵌入式的不同領域。M內核[iii]應用在一些對成本較爲敏感的微控制器領域,R內核主要應用在實時控制領域,而A內核用於手機與PC領域。

ARM11之後,ARM處理器內核不再以ARM作爲前綴[iv]ARM公司取消這個前綴完全出於迷信的考慮[v]。在ARM的歷史上,所有以偶數結尾的ARM內核,包括ARM26810,都沒有獲得成功。ARM不想使用12,而13似乎更加糟糕,於是換了一個新的名字。ARM這個單詞並沒有在Cortex系列中消失,Cortex的三大系列M-R-A,合起來就是ARM

更替前綴的內核,已煥然一新。Cortex A8內核的DMIPS指標達到了2.0DMIPS/MHz,這與ARM11相比取得了巨大的進步。Cortex A8處理器在大幅提高性能的同時依然保持了低功耗優勢。一個含有32KB的指令和數據Cache256KBL2CacheCortex A8,在使用600MHz的時鐘頻率時,總功耗僅爲300mW[vi]

Cortex A8內核不再使用簡單的Enhanced DSP指令,而是引入了NEON部件。NEON的功能與IntelSSE類似,用於支持SIMD類指令。Cortex A8是第一顆引入Superscaler技術的ARM處理器。在每個時鐘內,Cortex A8可以並行發射兩條指令[111]。出於降低功耗的考慮,Cortex A8內核使用了靜態調度的流水線和順序執行方式。

爲了進一步提高時鐘頻率,Cortex A8內核使用了13級的整型指令流水線和10NEON指令流水線,流水線級數高於ARM11內核的8級。流水線級數的增加有利於處理器主頻的提高,卻對指令分支預測的成功率提出了更高的要求。

Cortex A8ARM11的基礎上,將BTB使用的Entry數目從64增加到512,同時設置了GHB(Global History Buffer)RS(Return Stack)部件。這些措施極大提高了指令分支預測的成功率,從ARM1188%提高到Cortex A895%[112]

Cortex A8Cache的設計中,首次引入了Way-Prediction部件。在現代處理器中,Cache由多個Way組成,如8-way16-way或者32-wayWay-Prediction部件的主要功能是預測當前Cache訪問將使用哪個Way,可以暫時關閉不使用的Cache行,以到達節電的目的。IntelPentium M處理器起也使用了這種Cache訪問方式,並一直應用到x86處理器的後續產品中。Atom處理器也可能使用了這種方式。

ARM11相比,Cortex A8內核在Cache Memory系統上,進行了較大的優化。Cortex A8內核訪問L1 Cache時只需一個時鐘週期,而ARM11需要使用兩個。Cortex A8支持L2Cache,大小爲128KB~1MBARM11雖然也支持L2 Cache,卻幾乎沒有被SoC廠商使用。Cortex A8可以使用64位或者128位總線連接外部設備,ARM11只能使用64位總線。

Cortex A8使用了Architecture-GatingFunctional-Gating兩種技術進一步降低功耗。所謂Architecture-Gating是指,處理器內核執行WFI(Wait for Interrutp)指令之後,將進入idle-loop模式。Cortex A8Functional-Gating技術的本質是使用Clock-Gating技術,分離各個功能部件。當處理器運行運算時,不相關的功能部件,如Cache,指令隊列,Write BufferNEON所使用的時鐘可以臨時切斷,以達到節電的目的。Clock-Gating技術的大規模使用使得Cortex A8內核獲得了300mw/600MHz的功耗頻率比[111]

在前45nm時代,Clock-Gating技術也已經在x86處理器上得到了廣泛的使用,Cortex A8之所以獲得了高於x86處理器的性能功耗比的重要原因,一是使用了更少的晶體管,二是因爲沒有如x86那樣去挑戰處理器運算能力的極限。

Cortex A8之後,ARM加快了處理器內核的更新速度,每3年就會推出一個A系列處理器內核。這個速度遠低於IntelTick-Tock。而對於人數不滿兩千,同時要兼顧Cortex RM系列內核升級的ARM,已經是一個不小的奇蹟。

2007103日,Cortex A9正式推出[113]Cortex A9具有兩個版本,一個是傳統的單內核,另一個是MPCore,最高主頻可達2.0GHz,最多支持4個內核。Cortex A9的整型運算的性能在Cortex A8的基礎上提高了25%,達到了2.5DMIPS/MHz2.9CM/MHz[43][114],恰好超過Atom處理器的2.4DMIPS/MHz2.8CM/MHz[vii]

Cortex A9採用了更高的成產工藝,整型流水線的級數雖然只有8[viii],時鐘頻率卻高於Cortex A8。在Cortex A9中,ARM引入了高端處理器常用的亂序執行(Out-of-Order)和猜測執行(Speculative Execution)機制,進一步擴大了L2 Cache的容量(128KB~8MB),可使用SnoopingDirectory兩種機制實現Cache的一致性。

Cortex A8相同,Cortex A9依然使用MESI模型進行Cache的共享一致性,但是對MESI模型進行了許多優化,支持更多的Cache-to-Cache傳送方式,進一步減少了處理器對主存儲器的訪問[114][115]

這些更新極大地提高了Cortex A9的性能。從Cortex A9開始,ARM處理器正式完成了對Atom內核性能上的超越,Cortex A9在性能上超越的不僅是Atom,還包括同時代用於嵌入式系統的處理器,如PowerPCMIPS處理器[115]ARM依靠性能功耗比的日子已一去不復返。但是Cortex A9距離Intel的主流處理器,NehalemWestmereSandy Bridge處理器依然有不小的差距。

ARM並沒有停下腳步,201098日,代號爲EagleCortex A15正式發佈[116]。對於Intel,狼外婆終於來了。Cortex A15內核並不是Cortex A9的繼承者,Cortex A9雖然與Cortex A8的功能較爲相近,也不是完全的繼承關係。

Intel頻繁更新處理器內核的策略並不相同,ARM內核具有更長的生命期。1993年發佈的ARM7內核仍然在被大規模使用。Cortex A8A9A15這三顆內仍將在相當長的一段時間裏並存,深入到嵌入式應用的各類高端領域。

Cortex A15擁有足夠的性能,具備了進軍LaptopServer領域的能力。在未來的35年裏,Cortex A9Cortex A15組成的ARM處理器陣營將與IntelAtomSandy Bridge處理器展開全方位的較量。

Cortex A15最高主頻將達到2.5GHz,支持8個內核,採用Superscaler流水線技術,具有1TB的物理地址空間,支持虛擬化技術,亂序執行,寄存器重命名,並行設置了多個執行單元。在現代高端處理器技術中涉及的技術幾乎都可以在這個內核中找到。Cortex A15的性能將在Cortex A9的基礎上繼續提高50%ARM公司尚未公開Cortex A15的功耗指標,但是可以預計在性能大幅提高的前提下,Cortex A15的功耗也必隨之大幅提高。

首先是處理器主頻的提高。Cortex A15使用了超長的24級流水線結構[ix],前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 A15GHBTaken陣列,Not Taken陣列和Seletor陣列[x]組成。Cortex A15對非直接跳轉指令進行了一些優化,設置了256EntryBTB陣列,每一個Entry可以存放多個目標地址。除此之外Cortex A15還引入了具有64Entry的,使用全互連結構的MicroBTBCortex A15的這些功能增強進一步提高了轉移指令的命中率,但是與Nehalem處理器的分支預測單元相比仍有不小的差距[117]

Cortex A15的流水線與Cortex A8的基本結構較爲類似,由FetchDecodeRenameDispatchNeon/VFPInterger IssueLoad/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 A15Decode部件在一個時鐘節拍內可以同時譯碼3條指令,並將這3條指令轉化爲5Micro-Ops[117]

Cortex A15提高了Interger Issue部件的發射能力,從Cortex A93條提高到4條,同時分離了Cortex A9Load/Store Issue部件,具有獨立的LoadStore部件,並開始在流水線使用128位寬的數據總線。

Cortex A15還使用了32EntryLoopBuffer,當處理器執行一段較長的循環指令時,指令流水線將直接從Loop Buffer中獲得Micro-Ops,而無需使用FetchDecode部件。此時這兩個部件可以暫時關閉,以節約功耗。IntelCore2架構中也使用了相同的機制[119]

從體系結構的角度上看,Cortex A15對於ARM處理器自身是一次飛躍,但是與IntelNehalem/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指工作頻率。而tscPMOSNMOS同時打開的時間,在多數情況之下tsc的值較小,因此上述公司的後半段幾乎可以忽略不計,因此Pdyn ≈ (CL ×Ptrans × Vdd2 ×fclock)

其中CL參數由電路設計的複雜度決定,這也是x86處理器和ARM處理器目前功耗差距的最重要來源。Ptrans參數由處理器設計的電源管理策略決定,這也引出了一個低功耗設計的熱點問題,處理器的低功耗設計更應側重於在不同的場景之下,功耗的使用情況,而不應關注平均值。放之四海而皆準的電源管理最優策略並不存在,沒有人能做到又讓馬兒跑,又讓馬兒不吃草。

Vdd參數的降低可以有效的降低功耗,近些年Vdd的值在不斷下降,從5.0V3.3V2.5V1.2V0.8VVdd的不斷下降,Vt[xi]也隨之降低,不斷降低的Vt最終導致Isub[xii]呈指數上升,反而極大了增加了靜態功耗,這個現象在45nm及以下工藝的設計中更爲凸現。fclock更似一面雙刃劍。頻率的提升有利於性能的提高,卻也極大提高了功耗。

CLPtrans兩個指標上分析,不難發現ARMCL層面上做得更好,更簡練的設計決定了ARM處理器的低功耗。在Ptrans層面上分析,x86更勝一籌,x86處理器在ACPI規範中定義了一系列處理器狀態,運比ARM處理器定義的狀態複雜。x86處理器獲得了較低的Ptrans值,但也無法掩蓋因爲較高的CL而獲得的總功耗。

隨着處理器製作工藝的不斷前進,靜態功耗所佔的比例在不斷地提高,這使得一些可以顯著降低動態功耗,卻提高了靜態功耗的技術不再適用。靜態功耗是指在晶體管處於上電狀態時,晶體管的漏電流(Leakage)引發的功耗。漏電流主要由ISUBIGATEIGIDLIREV組成。使用45nm工藝時的靜態功耗是90nm工藝的6.5倍,使用32nm22nm工藝時,靜態功耗所佔的比例呈指數上升[120]

這些變化使低功耗的設計從降低動態功耗逐步轉移到降低靜態功耗上,在實現策略上從Clock Gating逐步轉移到Power Gating。在Cortex A8處理器中,ARMClock 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指令流水線,在很大程度上也在迴避着因爲向前兼容而帶來的巨大懲罰[xiii]x86處理器繼續揹着向前兼容的大山,與針對性能功耗比進行了一輪又一輪優化的Cortex系列之間的競爭並不公平。

Intel更不公平的是其長期堅持的通用平臺戰略。因爲Intel的努力,PC處理器更加標準,更加通用,更加廉價。通用平臺使得Intel獲得了巨大的成功,卻在一定程度上阻礙了Intel進軍嵌入式領域。

嵌入式領域是一個備受Intel通用平臺戰略擠壓的系統,通用處理器每進一步,嵌入式處理器便後退一步。嵌入式處理器在不斷後退,不斷細分的過程中,頑強地活了下來,根深蒂固地堅守了自己的陣地,回首卻發現一直在前進的通用處理器x86,生活在最大孤島中,被其包圍得密不透風。這一次x86處理器需要從孤島中游回彼岸,卻無法使用ARM陣營的細分市場策略。

IntelARM兩個公司本身並不具備可比性。自1992年起,Intel一直在半導體廠商中排名第一,ARM公司從來沒有進入過半導體廠商的排名,甚至可以說ARM並不是一個半導體廠商,ARM沒有生產過一顆商用處理器。Intel一年的銷售額是幾十個BillionARM僅爲幾百個MillionIntel78萬名員工,ARM僅有1700餘名員工。

單獨的ARM沒有辦法與Intel比較,但是ARM陣營所蘊含的能量卻足以與Intelx86陣營抗衡。在2009年排名TOP20的半導體廠商,除了IntelAMDElpida之外,全部LicenseARM內核。不僅如此ARM陣營還包括AppleMicrosoftGoogle。諸多形態各異廠商的參與使ARM陣營更加立體化。

x86處理器陣營中,AMD近期很少有聲音[xiv]VIA在持續的虧損,真正努力的只剩下Intel。在IntelEcosystem中,除了Intel和提供基礎BOIS的廠商外,其他的OEM/ODM並沒有在處理器體系結構方面給予Intel必要的幫助。有些OEM廠商更像是依託在x86處理器之上的寄生蟲。

嚴酷的外部環境使得Intel需要使用統一平臺戰略進入嵌入式市場,雖然這個策略與嵌入式系統要求的進一步定製,進一步細分的原則背道而馳。Intel依然不能在統一平臺上有所動搖,目前以及在很遠的將來,x86處理器陣營都無法向ARM處理器那樣深入到嵌入式的每一個領域。多數嵌入式領域所提供的空間也無法容納Intel這樣的龐然大物。

Intel的目標非常明晰,就是手機處理器。在手機領域ARM處理器處於壟斷地位,在技術上Intel並非沒有任何機會。與ARM處理器相比,IntelAtom處理器性能功耗比較爲落後,但這並不是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總線陣營的強大超乎多數人的想象。AMBA總線是一個在SoC領域使用的事實上的標準。AMBA總線V1.01995年正式發佈[122],用於SoC內部各個模塊間的互聯,支持多個主設備,支持芯片級別測試。在AMBA V1.0中定義了兩條總線,ASB(Advanced System Bus)APB(Advanced Peripheral Bus)V1.0還定義了一個連接存儲器的外部接口,這個外部接口可以用做測試。

ASB總線是一個快速總線接口,使用獨立的地址數據總線,支持流水傳送方式,支持多個主設備與從設備,採用集中譯碼和仲裁方式。ASB總線的主要作用是連接CPUDMA引擎,內部存儲器和一些快速外部設備。APB總線連接一些慢速設備,APBASBSecondary Bus,兩者的關係如4所示。

 

ARM與x86之4--EAGLE <wbr>is <wbr>Coming!

4ASBAPB的組成結構[123]

 

從今天的技術上看,AMBA V1.0總線十分簡陋,設計這樣的總線標準甚至可以作爲幾個研究生的畢業論文。AMBA總線的最大優點是開放的架構,和因此帶來的免費[123]。開放的總線標準使AMBA總線迅速普及,而且更易吸收整個半導體界的成果。

1999AMBA總線更新到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總線邁向新的臺階,性能已經可以與IBMCoreConnect抗衡[126]

AXI是一條現代總線。AXI總線分離了一個總線週期的地址階段和數據階段,更便於實現在現代總線中常用的PipeliningSplit技術。AXI總線進一步分離了總線通路,將AHB的單通路分解爲Read DataReadAddressWrite DataWrite AddressWrite Response5個獨立通路,進一步加速了對存儲器的讀寫訪問。

AXI總線接口邏輯設計較爲複雜,與AHB總線相比多使用50%的資源。AXI的一次總線週期至少需要傳送64字節的數據,而AHB總線是16字節,這也導致AXI總線的傳送延時高於AHB總線[125]AXI總線的目標不是用於替換AHB總線,在一個SoC中,AXI總線和AHB依然並存,只是AXI總線更接近ARM內核,AHB總線更貼近外部設備。

AMBA總線陣營規範了嵌入式領域的平臺總線,日益壯大。201038日,ARM正式推出AMBA V4.0總線,引入了QoS機制,進一步增強了多層結構,將AXI總線細分爲AXI4AXI-LiteAXI-Stream[127]

這一切並不是AMBA V4.0最重要的更新。如同Nehalem內核最重要的變化並不是流水線,而是QPI互聯結構[xv],在AMBA4總線中最值得注意的是片間互聯總線CoreLink CCI[xvi](CacheCohenrent Interconnect)架構。

CoreLink CCI架構使得多個SMP系統之間實現Cache共享一致性成爲可能,Cortex A15也藉此超越了用於嵌入式領域的PowerPC和其他多核MIPS[xvii]。在整個處理器總線陣營中只有IBMCoreConnectIntelQPI可以與之抗衡。CoreLink的橫空出世,使Cortex A15具備了和Intel的高端處理器NehalemSandy Bridge抗衡的能力。在服務器領域,Cortex A15內核與Nehalem內核間的較量就是CoreLinkQPI之間的角逐。

AMBA總線標準提供的AXIAHBASBAPBATB總線,不僅使用在ARM處理器系統中,MIPSPowerPC處理器也開始使用AMBA總線。TIFreescaleDSP也在使用AMBA總線。AMBA總線已經無孔不入,在整個嵌入式領域,沒有可以向其挑戰的對手[xviii]

面對ARM內核,Intel並不畏懼,面對AMBA總線陣營,Intel只剩下無奈。可以預計在相當長的一段時間裏,Intel無法推出一條能和AMBA總線抗衡的SoC平臺總線。Intel只能暫時向AMBA總線示弱。

Intel自身具有強大的圖形處理芯片,卻在Moorestown平臺中不得已使用了PowerVR SGX 535[128][129]圖形處理芯片。PowerVR SGX 系列也是Apple A4Samsung HummingbirdTIOMAP4處理器使用的圖形處理芯片。

基於低功耗的考慮,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總線的外部設備。

IntelMedfield平臺可能的優勢依然是在處理器內核上戰勝Cortex A9A15。而這一切對於Atom Z6xx內核來說幾乎是一件不可能完成的任務。可以預見,Medfield平臺依然與基於Cortex A9內核的手機平臺旗鼓相當。而對於後入者,僅靠旗鼓相當,很難獲取太多的市場份額。

在拋開技術之後,Intel所面臨的處境愈加艱難。Wintel帝國統治IT世界已有多年,芸芸衆生對Wintel帝國產生了嚴重的審美疲勞。Intel需要進入的手機領域,與其說被ARM把持,不如說被剩餘的所有半導體廠商把持。Intel動了ARM的奶酪也意味着動了全天下半導體廠商的奶酪。Intel的進軍手機領域更像是一場大的賭博,沒有人知道結局。可以肯定的是,Intel在放棄了XScale架構之後,不會輕易地放棄Atom架構。

也許Intel需要急迫解決的並不僅是技術問題。與許多巨型公司相似,最大障礙不在顓臾而在蕭牆之內。與不到2000員工的ARM相比,來自Intel內部的故事複雜得多,也深刻得多。多年以來,IntelPC領域取得巨大成功的同時,也滋生了巨大的執拗。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]該功耗指標基於65nm LP工藝。

[vii]我更相信這是Cortex A9處理器的預謀。Cortex A9可以超過的更多,不過ARM選擇將更多的風頭留給Cortex A15

[viii]8級流水做到了2.0GHz,又是亂序,又是猜測訪問,又是多發射,實在是佩服。

[ix]使用了這麼長的流水線,卻不是爲了提高主頻,想必是基於降低功耗的考慮。應該有些獨特的設計,目前尚無找到詳細描述。Cortex A15的這種做法有別於x86

[x]在多數處理器中,GHB具有4個狀態TakenNotTakenWeekly TakenWeekly Not TakenCortex A15將後兩種狀態合併。採用這種方法可以進一步減少晶體管數目,但其效果仍需觀察,目前尚未找到採用這種方法的最終量化分析結果。

[xi]Vt指電壓的門限值,用來識別01邏輯。

[xii]Isub指亞域值漏電流,即從Drain經過弱反形層流向Source的電流。

[xiii]隨着納米技術的不斷向前發展,因爲向前兼容所浪費的晶體管數目在整個Die中所佔的比例在不斷縮小。但是向前兼容卻爲處理器的設計造成了巨大的困難。因爲照顧向前兼容,採用了非最優的設計而浪費的晶體管數目很難統計。

[xiv]AMD近期發出的聲音是加入IntelNokia主導的Meego陣營。AMD這種態度,在很大程度上是在向世界承認弱者的地位,和不爭第一的雄心壯志。只希望在未來的幾年,當IntelARM激戰正酣時,AMD不要再去抄Intel的後路。

[xv]筆者之所以認爲Nehalem內核是Intel的第三個里程碑,是因爲QPI互聯機制,而不是Nehalem內核本身。如果單指Nehalem內核,AMD完全可以開發出與此性能相當的內核,而QPI的基於Directory機制的Cache共享一致性機制,將使AMD放棄追趕。多年以來,IBMHP高端服務器的附加值都是在如何進一步增強Cache一致性模型。Nehalem在芯片內部解決了這個問題之後,HPIBM服務器和臺灣OEM廠商生產的基於Nehalem內核的服務器將質的差別。

QPI是一個較爲複雜的機制,Intel員工可以參考Nehalem Microarchitecture手冊。Robert A. Maddox, Gurbir SinghRobert J. Safranek書寫的Weaving High Performance MultiprocessorFabric是唯一一本介紹QPI的書籍。目前與QPI相關的論文並不多。

[xvi]感謝彎曲評論的陳先生提出的寶貴意見,Tektalk上有一篇關於CoreLink的簡介,比我提到的這些完整得多,請參閱http://www.tektalk.org/2010/11/28/arm的薄積與薄發-淺談arminterconnect的戰略

[xvii]FreescaleQorIQ系統處理器引入了CoreNet架構,而這個架構並不能實現多個SMP系統的Cache共享一致性。RMICaviumMIPS多核也沒有完美地解決這些問題。如果用一條總線基於Snooping技術,連接2~4個內核還可以,8個內核十分困難。

Cache的共享一致性是一個異常沉重的話題,其難度超越了絕大多數處理器愛好者的想象,可以負責任地講,在整個高端處理器領域中,最困難,最難以有突破的重中之重,依然是Cache Memory系統。

[xviii]從技術的角度上講,x86處理器內部的系統總線和QPI互聯機制依然比AMBA4複雜得多,但是這些機制僅使用在Intelx86處理器中。

原文地址:http://blog.sina.com.cn/s/blog_6472c4cc0100lqr8.html

發佈了44 篇原創文章 · 獲贊 44 · 訪問量 10萬+
發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章