為何Apple自產自銷的ARM處理器這麼厲害(中)

2018.01.15 12:36PM
5742

前面有提到Apple的Ax系列應用處理器核心,每個時脈週期內可以平行處理更多的指令,那為何Apple可以作到這件事?除了透過併購而來的P.A.Semi團隊有其過人之處(他們過去做PowerPC幹過的好事足以另外開一個新專題了),這也或多或少跟ARM指令集的演進有所關聯,尤其是「64位元」這個經常引起誤解的話題。

要重頭建立起對效能的判斷基準,充分理解近代高效能處理器的眾多特性,重新塑造對「電腦」的認知,絕對不可或缺。相信我,放眼在各大科技網站四處留言的科普文青和潮牌果粉,十個之中,大概找不出一個可以好好闡述「什麼是電腦」。

電腦與指令集架構

我們先來看看,什麼叫做「電腦(計算機)」和「指令集架構」,一步一步的抽絲剝繭,充分理解當代高效能處理器的基本概念與效能瓶頸,保證以下絕對不會讓你看到睡著。

先問第一個問題:「電腦(Computer,或叫計算機)」與「計算器(Calculator,像你手邊的卡西歐計算機,或手機上的小算盤程式)」,有什麼不同?

最大的相異點:電腦具備「進行條件判斷」與「變更執行流程」的能力,可依據不同的條件,執行不同的指令,作為人類用來處理訊息的工具。

我們進一步想讓電腦「泛用化(General Purpose)」,讓應用更有彈性,不限定於固定的用途,需要創造一組「指令集架構(ISA,Instruction Set Architecture)」作為電腦最基礎的「語言」,並將所謂的「運算」,轉化成一連串指令的執行細節。

講的抽象一點,指令集在電腦內扮演的角色,是軟體和硬體之間的「介面(Interface)」。

理所當然的指令集相容性

今日耳熟能詳的「計算機結構」(Computer Architecture),就是由IBM在1964年創造給S/360大型主機用的名詞,藉由表示「程式設計者可以看到並使用的指令集」,如同電腦的語言,指令集架構相同的不同電腦,可以執行相同的軟體。

這在今天看似理所當然的想法,像Intel和AMD的x86處理器,可以執行用x86指令集所撰寫出來的程式碼,然後因不同的處理器微架構的特性,在不同的應用,有著截然不同的效能表現,在當時卻是非常新奇的觀念,因為那時候每種電腦,都擁有不同的指令集,發展一臺新電腦,就需要重新撰寫軟體。可順暢執行所有軟體的處理器,對商業價值的重要性,不言可喻,這就是指令集回溯相容性的威力,同時也是最重要的「資產」。

不過近年來拜ARM此類授權IP商務模式的影響之所賜,越來越多人搞不清楚「指令集架構」和「處理器微架構(Micro Architecture)」的差別,糊里糊塗的就隨便把兩者送作堆,擠成爆漿撒尿牛丸,所以特此不厭其煩的釐清。

舉統治個人電腦市場的80x86為例,前者說穿了是「電腦的基本語言(x86指令集的歷代沿革,如i386、MMX、x86-64、SSE、AVX、AVX-512等)」,後者是「執行語言的載具(Intel和AMD一大票微架構code name,像Skylake)」,不能混為一談。

指令集與微架構互相影響

但「資產」和「包袱」往往是一體兩面,在漫長的演化之路上,指令集和微架構並非從此涇渭分明、井水不犯河水、老死不相往來,就像人類平日用來溝通的「語言」,其文法規則與邏輯結構,多少可反映出一個社會的風土習俗和「潛在規則」,一套指令集的特性及優缺點,會深深影響著微架構的發展途徑與經濟效益,兩者相互潛移默化,直接或間接反映在「產品」本身的市場競爭力,與指令集未來的擴充發展方向。畢竟處理器是要面對市場競爭的商品,身為「電腦語言」的指令集,也是會因應微架構的發展需求而進化,甚至不惜犧牲相容性,也要丟掉部份的包袱。

電腦的身體是「物理」,靈魂是「數學」,但「經濟」才是它存在的原因。假如世界上真有「計算機結構經濟學」這門學科(其實某本以計量方法為名的教科書,已經很有這樣的味道),註定將聚焦於指令集和微架構之間的互動。

那問題來了,64位元的ARM指令集,究竟帶來了哪些突破,而Apple又如何搭上這順風車,讓自家微架構甩開跟競爭對手的差距?更關鍵的是:Apple同時掌握軟體和硬體,究竟在處理器效能競爭中,扮演怎樣的角色呢?(待續)

說到指令集與微架構,你腦海中閃過的第一個是什麼?如果是我,第一個想到的是NVIDIA的Fermi架構,這也是NVIDIA大幅拉開與AMD差距的重要里程碑。(雖然當年被罵得要死)

為何Apple自產自銷的ARM處理器這麼厲害(上)

為何Apple自產自銷的ARM處理器這麼厲害(中)

為何Apple自產自銷的ARM處理器這麼厲害(下)

回應 8
蟑螂藥推薦
14 天前

熱門文章

最新消息

本日精選