日本黄色一级经典视频|伊人久久精品视频|亚洲黄色色周成人视频九九九|av免费网址黄色小短片|黄色Av无码亚洲成年人|亚洲1区2区3区无码|真人黄片免费观看|无码一级小说欧美日免费三级|日韩中文字幕91在线看|精品久久久无码中文字幕边打电话

當前位置:首頁 > 嵌入式 > 嵌入式動態(tài)
[導(dǎo)讀]蘋果在2008 年4 月23 日,冒著極大風險硬著頭皮發(fā)表初代iPhone 的隔年,耗費2 億7,800 萬美元,購并了專注開發(fā)高效能Power 處理器的PA Semi,組成其處理器研發(fā)團隊的骨干,然后在2012 年9 月發(fā)表的iPhone 5,其心臟「A6」處理器,終于不再使用來自ARM 授權(quán)的核心,采用自家的「Swift」微架構(gòu)(Micro Architecture)。

蘋果在2008 年4 月23 日,冒著極大風險硬著頭皮發(fā)表初代iPhone 的隔年,耗費2 億7,800 萬美元,購并了專注開發(fā)高效能Power 處理器的PA Semi,組成其處理器研發(fā)團隊的骨干,然后在2012 年9 月發(fā)表的iPhone 5,其心臟「A6」處理器,終于不再使用來自ARM 授權(quán)的核心,采用自家的「Swift」微架構(gòu)(Micro Architecture)。

再以世界上首款搶灘登陸智慧型手機與平板的64 位元ARM 處理器「A7」(Cyclone 微架構(gòu))為起點,蘋果自家SoC 開始逐漸展現(xiàn)壓倒ARM Cortex 家族(與躺著中槍的Qualcomm 自有核心)效能優(yōu)勢,且隨著時間演進,差距越拉越開。

 

接著,每代iPhone 發(fā)表后,各大科技媒體網(wǎng)站的報導(dǎo),與底下的讀者回應(yīng),只會有兩種制式的單細胞生物反應(yīng):

文章高高掛著「眾人都驚呆了,連開發(fā)效能測試軟件的人都不知道發(fā)生了什么事」如內(nèi)容農(nóng)場般的標題,再來繼續(xù)機械化的炒作「蘋果會不會用自家芯片取代Intel處理器」的多年冷飯。

底下的讀者留言雞同鴨吵成一團,上演「Android 自由主義」和「蘋果神權(quán)政治」信徒大對決,沒有人講到任何值得注意的重點,連一絲一毫的學理成分都沒有,宗教信仰就是如此奇妙。

筆者不啰唆,直接在這里講結(jié)論:

藉由牢牢把持軟硬件平臺的「封閉性」先天優(yōu)勢,蘋果掌握了ARM 指令集邁向64 位元帶來的機會,打造出一系列同時間能夠有效處理更多指令的先進微架構(gòu)。

看起來好像微言大義到接近廢話的程度?如果你真的這樣想,那你就更有繼續(xù)讀下去的必要。

撥亂反正:做為電腦語言的「指令集架構(gòu)」vs. 執(zhí)行語言載具的「處理器核心微架構(gòu)」

近年來拜ARM 為首的授權(quán)IP 商業(yè)模式之所賜,越來越多人搞不懂這兩者的差別,完全混在一起,這些年來筆者已經(jīng)聽過太多讓人完全笑不出來的笑話,所以在此特別重述一次。

支配智慧型手機市場的ARM 又是怎么一回事呢?以32 位元ARMv7-A 指令集為例,在手機上常見的微架構(gòu)(核心),總計有:

ARM 本家賣IP 授權(quán)給別人的Cortex-A5 / A7 / A9 / A12 / A15 / A17 這幾種核心微架構(gòu)。

Qualcomm 自行打造的Scorpio / Krait。

蘋果并購PA Semi 后關(guān)起門來搞出的A6「Swift」,iPhone 5 的心臟。

換成64 位元ARMv8-A,就變成以下場景:

ARM 本家賣IP 授權(quán)給別人的Cortex-A35 / A53 / A57 / A72 / A73 這幾種核心微架構(gòu)。

增加半精度浮點支援和系統(tǒng)可靠度機能的ARMv8.2-A 指令集:Cortex-A55 / A75。

Qualcomm 自行打造的Kyro。

nVidia 的Project Denver。

蘋果繼續(xù)關(guān)起門來搞出的A7「Cyclone」,與之后的眾多芯片,如A8「Typhoon」、A9「Twister」、A10「Fusion」(Hurricane + Zephyr)、A11「Bionic」(Monsoon + Mistra) 。

為了伺服器而量身訂做的特殊微架構(gòu),如Qualcomm Centriq 2400 的「Falkor」,和Cavium Thunder X 系列的核心。

只要作業(yè)系統(tǒng)相同(如同版本Android 或iOS),這些核心微架構(gòu)應(yīng)當正確執(zhí)行使用ARM 指令集撰寫或編譯出來的軟件,講的更專業(yè)或更假掰一點,它們擁有相同的應(yīng)用程式二進位執(zhí)行檔介面(ABI,Application Binary Interface),如同Intel 與AMD 的x86 處理器都應(yīng)可正確安裝Windows 作業(yè)系統(tǒng),理所當然執(zhí)行Office 等應(yīng)用軟件和Battlefield 等套裝游戲。

至于Qualcomm、蘋果和nVidia,是否根本自身特殊需求,自行定義「非官方」ARM 指令,那就后頭有空再討論了。

高效能之路:讓核心微架構(gòu)同時間內(nèi)能夠有效處理更多的指令

在執(zhí)行相同指令集「語言」的前提之上,相容處理器的效能要能夠勝出,只有微架構(gòu)設(shè)計能否比競爭對手有效處理更多的指令。方向不外乎:

更高的時脈: 雖然往往計算機概論會教你「指令管線階段越多,代表處理器同時執(zhí)行更多的指令,只是這些指令位處于不同的階段」,但實際上最多還是一個時脈周期「吐出」一個被執(zhí)行完畢的指令,所以現(xiàn)實層面的「加深指令管線」,實際上跟「提高運行時脈」講的是同一件事。很不幸的,智慧型手機因嚴格的功耗限制,透過積極追求高時脈以提高效能,是比較不切實際的方向。

更寬的管線: 一個便當吃不夠,你可以吃第二個,嫌執(zhí)行一個指令不夠看,你也可以同時執(zhí)行第二個,這就是源自1966年CDC6600的「超純量」(Superscalar)架構(gòu)。另外也有純軟件方式、讓編譯器去一個蘿卜一個坑塞指令到不同執(zhí)行單元的「超長指令集」(VLIW),這就不在本文的討論范圍內(nèi)了。

足以喂飽嗷嗷待哺執(zhí)行單元的高效能記憶體子系統(tǒng): 包含系統(tǒng)主記憶體、快取記憶體、連結(jié)多個處理器核心的匯流排、舉足輕重的快取記憶體資料一致性協(xié)定(Cache Coherence Protocol) ,甚至可以非循序的存取記憶體位址(Memory Disambiguation),都是不可或缺的「基礎(chǔ)建設(shè)」。

天底下沒有白吃的午餐:兩種該死的「相依性」

但「指令管線化」與「指令執(zhí)行平行化」也帶來了新的挑戰(zhàn)。

控制相依性 電腦有別于計算器的最重要特征在于「條件判斷」的能力,根據(jù)不同的條件執(zhí)行不同的指令流,處理器如碰到分支(Branch)或跳躍(Jump),就須改變指令執(zhí)行的流程,清除已經(jīng)進入管線的指令,從另一個記憶體位址擷取指令,重新執(zhí)行并存取相關(guān)的資料(或稱為「運算元」,意指運算的目標,如特定資料暫存器或記憶體位址),而具備條件判斷的分支,造成的傷害更大,因為需要管線停下來等待其結(jié)果、或著事先預(yù)測并「先斬后奏」。

解決方案: 分支預(yù)測(Branch Prediction),與后面會提到、釜底抽薪減少分支指令的「條件執(zhí)行」(Conditional Execution)。

資料相依性 當同時執(zhí)行多個指令,最忌諱遭遇「撞衫」同時存取相同的資料暫存器與記憶體位址,特別是當指令集定義可操作的資料暫存器越少,軟件手段可以盡量排除的空間越少,發(fā)生的機率也越高。[!--empirenews.page--]

解決方案: 以暫存器重新更名機制(Register Rename)為中心的非循序指令執(zhí)行(Out-Of-Order Execution)。

然后根據(jù)分支預(yù)測結(jié)果而先斬后奏「預(yù)測性執(zhí)行指令」(Speculative Execution),是分支預(yù)測與非循序指令執(zhí)行的結(jié)合體??傊?,我們盡其所能的讓管線「順暢」的像生產(chǎn)線不停的運轉(zhuǎn),實現(xiàn)最高的指令執(zhí)行效率。

理所當然的,指令管線越深,一旦「筊杯」失敗,要復(fù)原管線并恢復(fù)指令執(zhí)行的代價,也越像火燒摩天樓一樣恐怖,這也是高時脈深管線近年來不太受歡迎的另類主因,因為現(xiàn)實世界的應(yīng)用程式,其實有很多難以預(yù)測的分支行為,越高的「代價」,更意味著更差勁的「效能/功耗」比。

LLVM 開發(fā)環(huán)境參數(shù)透露的神秘訊息

講了那么多原理,蘋果從來不公開自主微架構(gòu)的技術(shù)細節(jié),那該如何掌握他們追求高效能的設(shè)計方向?

2014 年初,當多數(shù)世人正「驚呆」A7 的64 位元與驚人的性能表現(xiàn)時,有人注意到蘋果提交的LLVM 原始代碼,不僅透露了微架構(gòu)代號是「Cyclone」,更包含眾多重要的規(guī)格參數(shù):

指令發(fā)出寬度(Issue Width):6

非循序指令執(zhí)行緩沖區(qū)(Reorder Buffer):192

記憶體載入延遲(Load Latency):4

分支預(yù)測錯誤代價(Misprediction Penalty):16(一般介于14~19)

 

在當時,這是非常驚人的規(guī)格,就算擺在今天也是同樣駭人,可同時處理的指令是同時期ARM 核心足足兩倍(即使64 位元的Cortex-A57 也只能3 個指令),非循序指令執(zhí)行引擎的「深度」則是Intel Haswell 等級,指令管線深度則中規(guī)中矩的維持在16 階這一般水準。

相信有些讀者早已從其他網(wǎng)站看過相關(guān)的報導(dǎo),但有個「江湖傳言」倒是值得注意:部分開發(fā)iOS 應(yīng)用程式的程式設(shè)計者,做了一些指令輸出率的實驗,察覺到「A7 一旦執(zhí)行32 位元程式碼,指令輸出率就腰斬了」,這個「特性」一路延續(xù)到A10,直到A11 根本沒有32 位元應(yīng)用程式可執(zhí)行為止。

后來蘋果當然就沒有繼續(xù)「規(guī)格大放送」,Wiki上蘋果處理器的規(guī)格表,一路從A7到A11,都是維持這些數(shù)字,有沒有經(jīng)過實測考驗也不得而知,反正就大家一起無限回圈繼續(xù)驚呆,蘋果持之以恒的甩開和其他競爭者的差距。

唯一可以確定的是,筆者在自己的iPad Pro 9.7 吋A10X 上,透過配對簡單指令,測出每個時脈周期可同時輸出「4 個整數(shù),2 個浮點,2 個記憶體載入」的可怕性能。此外,A10X 與A11 放棄第三階4MB 快取記憶體,而以大型化第二階8MB 取而代之,也暗示了蘋果極可能在快取記憶體技術(shù)有了重大的突破,可兼顧高容量與低延遲。

A11?筆者沒有iPhone 8 和iPhone X 可用,有機會再測測看。

讓我們重新畫出命案現(xiàn)場的人形粉筆圈,歸納出蘋果的產(chǎn)品設(shè)計取向:

微架構(gòu)以64 位元效能為優(yōu)先設(shè)計考量。

既然行動處理器受制于低功耗需求,難以透過提高時脈追求效能,索性以「更寬」的指令管線取勝。

同時執(zhí)行更多指令,代表要耗費更多心思去解決暫存器相依的問題。

更強力的非循序指令執(zhí)行引擎。

寄望指令集本身就定義更多的資料暫存器,降低「強碰」機率。

ARM 指令集走向64 位元帶來的重大改革

讓ARM 指令集邁向64 位元的ARMv8-A,并非只有「將整數(shù)邏輯暫存器寬度延長到64 位元」和「提供64 位元記憶體定址空間」這么簡單,拋棄昔日專注于嵌入式應(yīng)用的遺產(chǎn),更加的簡潔優(yōu)雅,更利于打造高效能微架構(gòu),引領(lǐng)ARM 榮登高效能的天堂,是這次指令集改版最神圣不可侵犯的絕對使命。

 

ARMv8-A 修訂項目極多,但就筆者的角度,除了取消「加速重建儲存CPU 狀態(tài)的Context Switch 相關(guān)機制」(一堆就今日觀點實在很小家子氣的技術(shù)),和簡化例外處理與執(zhí)行特權(quán)階層外,最重大的改革,只有兩項:

倍增通用暫存器(GPR)數(shù)量,這件事在當年AMD 讓x86 邁向64 位元時也發(fā)生過,意義重大。

取消涵蓋整套指令集的「條件執(zhí)行」(Conditional Execution),這和前者互為表里,因為總算擠出了珍貴的指令編碼空間去增加暫存器數(shù)量。

其中又稱為「引述式執(zhí)行」(Predicated Execution,或Guarded Exectuion)的后者,目的在于減少程式中的分支,指令集提供簡單扼要的條件執(zhí)行指令,一次做完所有事情。

直接舉例比較快。原本一個簡單的If-Then-Else 循序條件判斷,會需要等待確認條件結(jié)果,或著強行進行分支預(yù)測,管線才會繼續(xù)動作:

if condition

then do this

else

do that

就變成這樣:

(condition) do this

(not condition) do that

有沒有感覺簡潔多了?講的玄一點,條件執(zhí)行的中心精神在于「將控制相依性轉(zhuǎn)化為資料相依性」。

然后有鑒于過去的應(yīng)用程式,在這種If-Then-Else 的條件判斷中,有60% 都是資料搬移指令,這也是為何指令集「事后」擴充條件執(zhí)行功能,如DEC Alpha、MIPS、甚至x86,都以「條件搬移」(Conditional Move)為主。

以Alpha 為例,其指令格式統(tǒng)一為cmovxx(xx 代表條件),一個簡單的條件搬移:

beq ra, label // if (ra) = 0, branch to ‘label‘

or rb, rb, rc // else move (rb) into rc

可以透過新指令,簡化如下:

cmovne ra, rb, rc

在ARMv8 之前,整套ARM 指令集每道指令,都包含了4 位元的條件碼,必須符合「某個條件」才會執(zhí)行指令。如條件成立,執(zhí)行此指令并寫回運算結(jié)果。反之,指令執(zhí)行結(jié)果無效,或不予執(zhí)行。

回到原點,條件執(zhí)行的優(yōu)點很明顯:

加速實際條件判斷的效率,因為實際上只要比較0 與1(Bitwise)。

減少簡單條件判斷的分支,可以提升指令平行化執(zhí)行的潛力。這也是為何很多VLIW 指令集普遍支援條件執(zhí)行。甚至定義存放引述碼(Predicate)的專用暫存器,以因應(yīng)更復(fù)雜多樣的條件判斷,如攤平回圈的軟件管線(Software Pipeline)。[!--empirenews.page--]

但為何ARM 要取消看似完美的條件執(zhí)行?

占用4 位元指令編碼,實在是太浪費了,所以用「條件選擇」(Conditional Select)取而代之。

舉個范例:「CSEL W1, W2, W3, Cond」,如條件符合,W2 暫存器資料搬移到W1,如非,就W3 到W1。缺點是會稍微增加程式碼體積,但絕對劃算。

提高打造高效能非循序指令執(zhí)行引擎的復(fù)雜度,在管線前端就要「預(yù)鎖」后面所需要的相關(guān)資源,也增加后方需要「更名」的暫存器,更不利提升時脈。

A11「極可能」是純64 位元的微架構(gòu)

可確保處理器正確執(zhí)行所有軟件的指令集回溯相容性,是商業(yè)上的「資產(chǎn)」,但也是設(shè)計處理器微架構(gòu)的「包袱」。

我們有非常充分的理由相信,蘋果急著驅(qū)離「32 位元低階應(yīng)用程式」,就是為了其處理器全力針對64 位元最佳化造橋鋪路,而A11 如此驚世駭俗的效能表現(xiàn),除了它根本是純64 位元處理器,所有電晶體預(yù)算都砸在提升效能的刀口上,沒有其他合理的解釋了(新的異質(zhì)多處理器排程也有影響,但沒那么絕對)?!妇退恪笰11 具備32 位元相容性,其性能表現(xiàn)恐怕也僅聊勝于無,不足掛齒。

無獨有偶,Qualcomm 企圖搶攻伺服器市場的Centriq 2400,也是純64 位元的設(shè)計,這就是ARM 制定64 位元指令集擴充時,最希望看到的結(jié)果:雨后春筍般的高效能產(chǎn)品。

同場加映:Mac 改用自家芯片的可能性

關(guān)于這個「年經(jīng)」(每年發(fā)表一支新iPhone)議題,筆者不會賭上爺爺?shù)拿u做不負責任的推論,但只留下兩個留待讀者思考的問題:

蘋果能否承擔轉(zhuǎn)移的成本,尤其當Mac 用戶已非弱勢族群的當下。

蘋果是否仍希望「吸收」Windows PC 的使用者。

Mac 是否改用蘋果自家芯片這檔事,并不只是「效能夠好」就可以一筆輕松帶過的大哉問,請各位多多考量商業(yè)層面的因素。

蘋果同時掌握軟硬件的「不公平競爭」

最后,再重新貼出本文標題的答案:

「藉由牢牢把持軟硬件平臺的『封閉性』先天優(yōu)勢,蘋果掌握了ARM 指令集邁向64 位元帶來的機會,打造出一系列同時間能夠有效處理更多指令的先進微架構(gòu)?!?/strong>

這「一體成形」的絕對優(yōu)勢,在可見未來的深度學習之路上,會更加的牢不可破,這就是蘋果在iPhone 前景未明之際,就膽敢購并PA Semi 投資未來,所得到的豐碩成果,就算你不喜歡「果粉」,你也不能不佩服喬布斯的遠見。

至于PA Semi 究竟干過哪些值得蘋果冒險的好事,等以后有機會,再好好談?wù)劊绻娴倪€有機會。

本站聲明: 本文章由作者或相關(guān)機構(gòu)授權(quán)發(fā)布,目的在于傳遞更多信息,并不代表本站贊同其觀點,本站亦不保證或承諾內(nèi)容真實性等。需要轉(zhuǎn)載請聯(lián)系該專欄作者,如若文章內(nèi)容侵犯您的權(quán)益,請及時聯(lián)系本站刪除。
換一批
延伸閱讀

LED驅(qū)動電源的輸入包括高壓工頻交流(即市電)、低壓直流、高壓直流、低壓高頻交流(如電子變壓器的輸出)等。

關(guān)鍵字: 驅(qū)動電源

在工業(yè)自動化蓬勃發(fā)展的當下,工業(yè)電機作為核心動力設(shè)備,其驅(qū)動電源的性能直接關(guān)系到整個系統(tǒng)的穩(wěn)定性和可靠性。其中,反電動勢抑制與過流保護是驅(qū)動電源設(shè)計中至關(guān)重要的兩個環(huán)節(jié),集成化方案的設(shè)計成為提升電機驅(qū)動性能的關(guān)鍵。

關(guān)鍵字: 工業(yè)電機 驅(qū)動電源

LED 驅(qū)動電源作為 LED 照明系統(tǒng)的 “心臟”,其穩(wěn)定性直接決定了整個照明設(shè)備的使用壽命。然而,在實際應(yīng)用中,LED 驅(qū)動電源易損壞的問題卻十分常見,不僅增加了維護成本,還影響了用戶體驗。要解決這一問題,需從設(shè)計、生...

關(guān)鍵字: 驅(qū)動電源 照明系統(tǒng) 散熱

根據(jù)LED驅(qū)動電源的公式,電感內(nèi)電流波動大小和電感值成反比,輸出紋波和輸出電容值成反比。所以加大電感值和輸出電容值可以減小紋波。

關(guān)鍵字: LED 設(shè)計 驅(qū)動電源

電動汽車(EV)作為新能源汽車的重要代表,正逐漸成為全球汽車產(chǎn)業(yè)的重要發(fā)展方向。電動汽車的核心技術(shù)之一是電機驅(qū)動控制系統(tǒng),而絕緣柵雙極型晶體管(IGBT)作為電機驅(qū)動系統(tǒng)中的關(guān)鍵元件,其性能直接影響到電動汽車的動力性能和...

關(guān)鍵字: 電動汽車 新能源 驅(qū)動電源

在現(xiàn)代城市建設(shè)中,街道及停車場照明作為基礎(chǔ)設(shè)施的重要組成部分,其質(zhì)量和效率直接關(guān)系到城市的公共安全、居民生活質(zhì)量和能源利用效率。隨著科技的進步,高亮度白光發(fā)光二極管(LED)因其獨特的優(yōu)勢逐漸取代傳統(tǒng)光源,成為大功率區(qū)域...

關(guān)鍵字: 發(fā)光二極管 驅(qū)動電源 LED

LED通用照明設(shè)計工程師會遇到許多挑戰(zhàn),如功率密度、功率因數(shù)校正(PFC)、空間受限和可靠性等。

關(guān)鍵字: LED 驅(qū)動電源 功率因數(shù)校正

在LED照明技術(shù)日益普及的今天,LED驅(qū)動電源的電磁干擾(EMI)問題成為了一個不可忽視的挑戰(zhàn)。電磁干擾不僅會影響LED燈具的正常工作,還可能對周圍電子設(shè)備造成不利影響,甚至引發(fā)系統(tǒng)故障。因此,采取有效的硬件措施來解決L...

關(guān)鍵字: LED照明技術(shù) 電磁干擾 驅(qū)動電源

開關(guān)電源具有效率高的特性,而且開關(guān)電源的變壓器體積比串聯(lián)穩(wěn)壓型電源的要小得多,電源電路比較整潔,整機重量也有所下降,所以,現(xiàn)在的LED驅(qū)動電源

關(guān)鍵字: LED 驅(qū)動電源 開關(guān)電源

LED驅(qū)動電源是把電源供應(yīng)轉(zhuǎn)換為特定的電壓電流以驅(qū)動LED發(fā)光的電壓轉(zhuǎn)換器,通常情況下:LED驅(qū)動電源的輸入包括高壓工頻交流(即市電)、低壓直流、高壓直流、低壓高頻交流(如電子變壓器的輸出)等。

關(guān)鍵字: LED 隧道燈 驅(qū)動電源
關(guān)閉