2021 4月 科普好文 - 我們熟知的處理器

我們熟知的處理器

作者:CSC

相信許多人對最近蘋果M1處理器很有興趣吧

為什麼Windows也要因應這款處理器而開始他們的大動作呢?

為什麼有人說這款處理器使用應用程式有點不太一樣呢?

亦或者是為什麼iPhone的應用程式忽然可以裝到mac裡面了呢?

讓本文帶你稍稍了解處理器吧

ISA

要講處理器之前,當然要來講一下ISA(Instruction Set Architecture 指令集架構)啦,是電腦架構中與程式設計有關的部分,包含了基本資料類型,指令集,暫存器,定址模式,儲存體系,中斷,異常處理以及外部I/O。

利用上述幾個東西的各種配合,設計,可以分為以下幾種:複雜指令集電腦CISC、精簡指令集電腦RISC、最小指令集電腦MISC、單指令集電腦OISC等等。

這就好比是蓋房子,有不同的設計,每一種設計都需要遵守建築規範,而蓋房子總是要有不同的用途,根據這一些不同用途的房子建立出了許多的建築規範,也就是各式的指令集架構。

RISC & CISC

在計算機指令系統的最佳化發展過程中,出現過兩個截然不同的最佳化方向:CISC技術和RISC技術。CISC是指複雜指令系統計算機(Complex Instruction Set Computer);RISC是指精簡指令系統計算機(Reduced Instruction Set Computer)。這裡的計算機指令系統指的是計算機的最低層的機器指令,也就是CPU能夠直接識別的指令。隨著計算機系統的複雜,要求計算機指令系統的構造能使計算機的整體性能更快更穩定。最初,人們採用的最佳化方法是通過設定一些功能複雜的指令,把一些原來由軟體實現的、常用的功能改用硬體的指令系統實現,以此來提高計算機的執行速度,這種計算機系統就被稱為複雜指令系統計算機。另一種最佳化方法是在1980年代才發展起來的,其基本思想是儘量簡化計算機指令功能,只保留那些功能簡單、能在一個節拍內執行完成的指令,而把較複雜的功能用一段子程式來實現,這種計算機系統就被稱為精簡指令系統計算機。

簡單來說RISC和CISC的差別就像是命令建築工人做事情一樣,RISC只聽得懂簡單的指令,像是堆磚頭,抹水泥,漆油漆,而CISC聽得懂複雜的指令,像是把這一座牆蓋好,把這個屋頂蓋好等等。而它們最大的差別,就是耗電量,CISC的耗電量會明顯的比RISC高出許多,但是取而代之的是更好的效能。

關於RISC的歷史,可以參考這一篇文章
https://www.ibm.com/ibm/history/ibm100/us/en/icons/risc/

想了解更多RISC與CISC的差別,可以參考這一篇文章
https://www.itread01.com/content/1549989571.html

ARM x86

大家都在說ARM ARM到底什麼是ARM呢?
ARM的全名是Advanced RISC Machine(進階精簡指令集機器,更早稱作艾康精簡指令集機器,Acorn RISC Machine),它是由RISC所設計出來的架構,ARM的處理器是我們平常最常接觸到的處理器,超過90%的手機處理器是採用ARM架構去進行設計的。

與ARM架構常被提出的東西–x86,那這又是什麼呢,x86泛指一系列基於Intel 8086且向下相容的中央處理器指令集架構,該系列較早期的處理器名稱是以數字來表示80x86。由於以「86」作為結尾,包括Intel 8086、80186、80286、80386以及80486,因此其架構被稱為「x86」。x86的64位元版本被稱為x86-64或是x64。與ARM最大的差別是,它是CISC所設計出來的架構,而我們最常看到x86的地方就是我們的家用電腦了,幾乎所有的電腦處理器都是由x86的架構去進行設計的,包括Intel與AMD的處理器都是。

設計給x86使用的軟體,不可以直接在ARM的電腦上面進行使用,需要進行翻譯,如同前面所述,給RISC的工人下達蓋好一面牆的命令,他是無法執行的,反之亦然。

其實,在ARM以及x86以外,還有許多以RISC,CISC架構設計的其他架構,如:
RISC

RISC-V,MIPS

CISC

68k,PDP-11

想要了解更多有關ARM與x86的差別,可以參考這一篇
https://www.itread01.com/content/1548244623.html

關於另一種不同於ARM架構的RISC-V架構(同樣也是RISC家族的)可以參考這一篇文章
https://cnrv.gitbooks.io/riscv-soc-book/content/

M1

Apple M1是蘋果公司第一款基於ARM架構的自研處理器,它聲名大噪的原因,很大一部分是因為蘋果公司大膽的使用了ARM架構去製造電腦的處理器,雖然以前有ARM的windows電腦出現,但是事實證明,是失敗的,而這一次蘋果設計的M1處理器有打破ARM在電腦處理器並不優秀這個觀念的趨勢。

網路上有許多對於M1處理器MAC的實測,你或許有聽到:「這款應用程式並不是為M1晶片所設計的,所以未來還有更好等前景」等等的說法,這是因為市面上大多電腦的應用程式是寫給x86處理器去進行運行的,而若是ARM處理器需要運行,則須通過翻譯,蘋果公司對於此現象目前的解決方法是使用Rosetta 2去進行翻譯,所有的x86的應用程式,想要在M1的mac運行,都必須經過Rosetta 2,因此,可能發生一些不穩定的現象,這全屬正常現象。

你或許有看到許多網路上對於M1與core-i9或是AMD的R9進行比較,會說M1的效能在經過Rosetta 2多一道工序還是直逼i9R9,這是事實,但是絕不能說ARM架構的處理器效能比x86好,因為這個比較是不公平的,M1使用的是台積電5nm的製程,R9則是使用台積電7nm的製程,i9則是使用了intel的14nm製程(等同台積電10nm製程),差了整整一到兩個世代的產品,效能當然有一定的差距,並且蘋果公司有對M1晶片進行許多其他部分的優化,對於處理器與其他元件的互動更加,所以才有更好的速度。

至於ios的應用程式以前不能安裝到mac上,在M1上變得可行的原因同樣也是因為同為ARM架構,不須經過太複雜的工序即可移植,但目前可以這樣做的應用程式非常少,應該是尚未有好的使用者體驗的問題。

近期的大新聞!?MIPS即將投入RISC-V的懷抱

MIPS架構是當時與ARM架構,RISC-V架構共同對抗Intel的x86架構的夥伴(?)也算是競爭對手,然而在時代的演變下,ARM架構得到各公司的青睞,MIPS架構乏人問津,最近MIPS公司準備與RISC-V架構靠攏,不再推出MIPS架構,對於這方面的新聞,有興趣的話可以參考這兩篇文章。
中文:https://www.techbang.com/posts/85115-arm-x86-mips
英文:https://www.google.com/url?sa=t&source=web&rct=j&url=https://www.eejournal.com/article/wait-what-mips-becomes-risc-v/&ved=0ahUKEwiDv9Tioq3vAhWsHqYKHZdeCK4QxfQBCC4wAA&usg=AOvVaw21fkdijgoiS1e_Dj4Ib8H7

結論

看完上文對處理器的介紹後,有沒有對於處理器更加地了解了呢,其實這其中蘊含的許多更難的知識,有興趣的人以後可以選擇去研讀機器語言、處理器架構相關的書籍呦。