Contents ...
udn網路城邦
你知道的也有你不知道的Windows、Mac OS、Linux與Android(三)
2019/11/10 07:17
瀏覽106
迴響0
推薦8
引用0

為什麼使用Windows、Mac OS或Linux的電腦與使用Android的手機,彼此沒法好好通氣呢?

CPU就是將這些指令做到一個晶片(芯片;chip)裡,這些指令類型都需要額外的電晶體和電路元件,所以指令集越大就會使微處理器(泛稱,CPU也算,但是一般講電腦CPU也稱微處理器)更複雜,執行操作也會更慢。想想設計好這麼多指令的電晶體和電路元件,要將它們蝕刻(Etch)到指甲般大小的晶片,難吧,這可是絕活,台積電7奈米(nm)製程先有了之後,三星才跟上,再回頭望去,沒有跟進的了,所以你说有獨門絕活的台積電能不賺錢嗎?注:2013 Intel核心i7 4960X,製造工藝為22 nm,電晶體計數為18.6億個。你能想像如何將18.6億的電晶體裝進指甲般大小的晶片裡,更加難以想像7nm製造工藝的i7,更小於指甲般大小的晶片裝進更多的電晶體和電路元件。

手機的晶片,單位面積裡面的電晶體數量比電腦晶片的電晶體數量要多很多,但是性能卻比電腦晶片要差很多。華為麒麟980裡面的電晶體數量已經達到69億個,就是為了防止製造時候的缺陷,很多功能都是冗餘備份。

IBM研究中心的John Cocke當時已感覺到,日趨龐雜的指令系統不但不易實現.而且還可能降低系統性能。1974年他提出了RISC的概念,他也是這個架構的設計師,事後1979年美國加州大學伯克萊分校一批教授及科學家展開研究,結果表明,在電腦中,各種指令的使用率相差懸殊,一個典型程式的運算過程所使用的80%指令,只占一個處理器指令系統的20%,事實上最頻繁使用的指令是取、存和加這些最簡單的指令。讓我們想想,我們從小學念到高中,數學也越加複雜,但是你有沒有發現出了社會之後的日常生活,會用到的數學我敢說99.99…%的人只是加減乘除而已,而那些像函數之類的數學或再高深一點的微積分,也就是那些搞研究的、搞科學的、教書的…少數人或許會碰觸到。

使用CISC的處理器,主要是Intel的X86系列,至今在PC世界依舊占住主要位置,但是為了執行效率更高,可以迎合大多數人的情況下,使用RISC的處理器包括DEC Alpha、ARC、ARM、MIPS、PowerPC和SPARC等,當然不要漏掉蘋果電腦也是使用RISC架構的CPU。注意裡面的ARM這家公司。

以下簡單說說CISC和RISC的差異性:

  • CISC CPU包含豐富的電路單元,因而功能強,但是面積大,功率的損耗(功耗;Power Consumption)也大。目前幾乎用在PC上,難做成小型如手機之類的產品。
    CISC CPU指令系統豐富,有專用指令來完成特定的功能。因此,用於電腦來處理特殊任務效率較高。
    對於程式設計師而言,使用組合語言(ASSEMBLY LANGUAGE;汇编语言)設計程式相對簡單,科學計算及複雜操作的程式設計較為容易,效率較高。
  • RISC CPU 包含較少的單元電路,因而面積小、功耗低,但是功能較弱,所以多用在不需要功能強度大的產品,目前手機即是。因為這樣,此種CPU難作成像電腦功能複雜且強的手機。
    設計者把主要精力放在那些經常使用的指令上,儘量使它們具有簡單高效的特色。對不常用的功能,常通過組合指令來完成。因此,在RISC機器上實現特殊功能時,效率可能較低,雖然可以利用流水(Pipeline)技術與超標量(superscalar)技術加以改進和彌補,亦即對CPU提速,但是比起CISC CPU還是有差。後面會提到彼此掛勾在一起,執行上可見端倪。
    對於RISC CPU,使用組合語言編寫程式一般需要較大的記憶體空間,實現特殊功能時程式複雜,不易設計。

下面試試用大白話來描述CISC和RISC:

CISC較能幹,你只需說上幾句話,它就明白幹活去了。
RISC單純些,你得多囉嗦幾句話,它才清楚如何幹活。

兩者都能幹活,只是說話人,一個輕鬆說,一個得仔細。總之CISC CPU製程艱難但豐富,因此後續軟體開發工程師撰寫程式不用過多交代,編寫的式子(Statement)也就少了;相反RISC CPU製程簡單些,因此後續軟體開發工程師撰寫程式就得多所交代,編寫的式子(Statement)只多不會少,編寫就得多費點心思。

…待續

Hallyeh 2019/11/2

本文你覺得鋪墊的有點沉悶但又想得到一些知識,請跳至(四)之後內文。

版權聲明:本文為udn部落客hallyeh原創文章,遵循版權協議,轉載請附上原文出處連結及本聲明。

有誰推薦more

限會員,要發表迴響,請先登入