完全看懂 ARM 處理器:RISC 與 CISC 是什麼?歷史、架構一次看透

完全看懂 ARM 處理器:RISC 與 CISC 是什麼?歷史、架構一次看透

ADVERTISEMENT

你知道iOSWindows PhoneAndroid這3大平台的手機共通點是什麼嗎?除了都可以打電話、傳簡訊、安裝App之外,在硬體架構上最大的共同點,就是這些手機CPU全都是採用ARM架構。現在連Microsoft都相中這塊逐漸成長中的市場大餅,下一代的微軟視窗作業系統Windows 8也將會推出ARM版本,稱為Windows RT。究竟ARM與行動裝置的關係是什麼?又如何在這競爭激烈的市場中存活下去,逐漸壯大在嵌入式產品的影響力?看下去就知道。

快速目錄:

都是從不務正業開始

如同Intel並不是以CPU起家,而是從記憶體跨足到IC設計,至今成為x86處理器的龍頭。ARM也是一樣,這一切都要從Hermann Hauser和Chris Curry所創立的Cambridge Processor Unit開始說起。

1978年,由物理學家Hermann Hauser和工程師Chris Curry一同在英國劍橋成立了一間公司,公司名稱直接取作Cambridge Processor Unit(CPU),主要從事提供當地電子儀器設備的業務。第一份合約即是為ACE Coin Equipment公司開發一款水果盤,也就是拉霸的遊戲機。

完全看懂 ARM 處理器:RISC 與 CISC 是什麼?歷史、架構一次看透

▲Cambridge Processor Unit為ACE Coin Equipment製造的水果盤遊戲機。

1979年,公司營運漸上軌道,便改名為Acron Computer有限公司。Acorn的中文翻譯為橡子,就是在冰原歷險記電影裡,那隻「鼠奎特」一直在追的果實,Acron Computer也以橡子為公司的標誌。

完全看懂 ARM 處理器:RISC 與 CISC 是什麼?歷史、架構一次看透

▲Acorn Computer Ltd把橡子圖案運用在自己的商標之中。

世界上首顆RISC處理器

隨著時間過去,漸漸地發現原本的硬體設計已不符需求,Acorn想要升級機器內的CPU。當時處理器的發展潮流是由8位元轉向16位元,一開始有考慮使用美國國家半導體以及Motorola新的16位元晶片,但是經過評估後,發現2個缺點。

  1. 執行上有點慢,中斷的回應時間太長,而且太貴。
  2. 一台500英鎊的電腦,CPU售價高達100英鎊。

於是只好轉向Intel,要求提供一些80286設計資料以及樣品,但是卻遭到Intel拒絕。這件事情後來直接導致Acorn決定設計自己需要的CPU,由於採用RISC架構的關係,名稱就稱為Acorn RISC Machine(ARM)。

RISC與CISC的差異

處理器的指令集可簡單分為2種,CISC(complex instruction set computer)以及RISC(reduced instruction set computer)。一開始的處理器都是CISC架構,隨著時間演進,有越來越多的指令集加入。由於當時編譯器的技術並不純熟,程式都會直接以機器碼或是組合語言寫成,為了減少程式設計師的設計時間,逐漸開發出單一指令,複雜操作的程式碼,設計師只需寫下簡單的指令,再交由CPU去執行。但是後來有人發現,整個指令集中,只有約20%的指令常常會被使用到,約佔整個程式的80%;剩餘80%的指令,只佔整個程式的20%。於是1979年美國加州大學柏克萊分校的David Patterson教授提出了RISC的想法,主張硬體應該專心加速常用的指令,較為複雜的指令則利用常用的指令去組合。

RISC的優點列舉如下:

  1. 指令長度固定,方便CPU解碼,簡化解碼器設計。
  2. 盡量在CPU的暫存器(最快的記憶體元件)裡操作,避免額外的讀取與載入時間。
  3. 由於指令長度固定,更能受益於執行線路管線化(pipeline)後所帶來的效能提升。
  4. 處理器簡化,電晶體數量少,易於提升運作時脈。比起同時脈的CISC處理器,耗電量較低。

RISC的缺點列舉如下:

  1. 複雜指令需要由許多的小指令去完成,程式變得比較大,記憶體也占用比較多,這在硬碟昂貴,常常使用磁帶儲存的時代來說,是個大缺點。
  2. 程式變長,代表著讀取工作變得繁重,需要更多的時間將指令從記憶體載入至處理器內。

這裡也提供一個小小的概念,CISC是在RISC出現之後才出現的相對名詞,並不是從一開始就有CISC、RISC這2種處理器架構。

首顆RISC架構CPU

於1985年,Acorn設計出了第一代處理器晶片,稱為ARM1,由Sophie Wilson設計出類似於6502的指令集,因為當時Acorn為英國國家廣播公司BBC所製造的BBC Micro電腦採用MOS 6502處理器,使用類似的指令集有助於縮短開發時間以及技術轉移。Steve Furber則是負責設計硬體實作。ARM1以第二顆處理器的身分,安裝在BBC Micro內部。

ARM1在晶圓設計部分,規格為3微米製程、2層金屬層、總計2萬5千個電晶體、6MHz運作時脈、消耗功率120mW、晶片面積50mm2。當時Intel的80286使用1.5微米製程、13萬4千個電晶體、6~12Mhz運作時脈,同時這2款處理器都不包含快取。

同年10月,Intel發表80386處理器,與之相比,ARM1顯得功能簡單、能源消耗較少,在效能上不是80386的對手。這一差異導致ARM系列處理器往後的設計路線明顯與Intel不同,Intel持續邁向x86高效能設計,ARM專注於低成本、低功耗的研發方向。

完全看懂 ARM 處理器:RISC 與 CISC 是什麼?歷史、架構一次看透

▲這是由VLSI製造的ARM1處理器,最外層那一圈不是CPU本體,而是必須焊在電路板上的連接座。

漸入佳境、架構變更

真正商業化的處理器為ARM2,ARM1處理器架構為ARMv1,到了ARM2更新到ARMv2,這一代新增乘法器在核心之中。ARMv2的進階版ARMv2a則是多包了記憶體管理核心、繪圖及I/O處理器。接下來的ARM3,處理器架構ARMv2a,是第一次於CPU裡內建了4KB快取。1990年,Acorn開始與蘋果電腦合作發展新一代的ARM晶片,特地還為此設立了一間公司,稱為Advanced RISC Machines公司。最初財務吃緊,辦公室僅為一個穀倉,成員也僅有12人。原本ARM所代表的Acorn RISC Machine,也在此時更換為Advanced RISC Machine。

1991年發展出的ARM6,處理器架構更新為ARMv3,主要擴展記憶體定址線。之前的ARM產品都只有26bit的記憶體定址線,最大可支援64MB的記憶體。從ARM6開始,完整支援32位元記憶體定址,最大支援到4GB。在此離題一下,ARM6處理器家族下的ARM610處理器,曾經用在蘋果電腦的Newton Message Pad上頭,Newton也被視為現今PDA與Smart Phone的始祖。

完全看懂 ARM 處理器:RISC 與 CISC 是什麼?歷史、架構一次看透

▲Apple Newton Message Pad。

延伸閱讀:

智慧型手機拆光看清楚:24個重要元件解說,認識手機的內涵

(後面還有開始大賣的ARM7)

R.F.
作者

誤入叢林的小白兔,每天爬樓梯到七樓的白癡,幻想自己很瘦的豬,一放假就睡死的bed potato。

使用 Facebook 留言
090aad1de211525f447f6fc18e7882f3?size=48&default=wavatar
5人給推

1.  cccooler (發表於 2012年9月18日 19:40)
大推R.F.編輯大大!!<( ̄︶ ̄)>
R.F.每次的文章都非常認真且圖文並茂 確實能讓讀者長知識
我相信喜歡T客邦與電腦王的讀者 一定都很喜歡這種有料的文章
而不是只有一些小道消息與八卦

R.F.編輯 堪稱T客邦的模範生阿!
146cb68accc0114436951dc20b66968e?size=48&default=wavatar
1人給推

4.  哈哈 (發表於 2012年9月18日 20:22)
原來精簡指令集電腦是這樣來的
只有在書中有看到這種架構
殊不知是這樣誕生的
讚(≧▽≦)
Ff90500f67fd98ba5903519ecc52b7ea?size=48&default=wavatar
5.  客人 (發表於 2012年9月18日 20:48)
目前SATA 6Gb/s介面頻寬為6Gb/s,DDR3-1600雙通道的介面頻寬卻有25.6GB/s,兩者相差約43倍。

是我不懂還是打錯了?
因該是[兩者相差約4.3倍]吧?
36d3039250d445ca8bbbe93569f116fd?size=48&default=wavatar
7.  jimmy (發表於 2012年9月18日 21:06)
※ 引述《客人》的留言:
> 目前SATA 6Gb/s介面頻寬為6Gb/s,DDR3-1600雙通道的介面頻寬卻有25.6GB/s,兩者相差約43倍。
>
> 是我不懂還是打錯了?
> 因該是[兩者相差約4.3倍]吧?

大B跟小b不一樣
R.F.
8.  R.F. (發表於 2012年9月18日 21:07)
※ 引述《客人》的留言:
> 目前SATA 6Gb/s介面頻寬為6Gb/s,DDR3-1600雙通道的介面頻寬卻有25.6GB/s,兩者相差約43倍。
>
> 是我不懂還是打錯了?
> 因該是[兩者相差約4.3倍]吧?

請記得bit和Byte要單位換算喔<( ̄︶ ̄)>
此外說明一下,一般來說,序列傳輸介面(COM Port、SATA、網路線、PCI-E……)一次只傳一個位元,所以使用bits/sec單位。
並列傳輸介面(Parallel Port、PATA、RAM……)一次會傳送許多個位元,使用Bytes/sec單位。
不過以上只是個通俗用法,如果硬要轉換也是可以的XD
78381e3834dc5848d07692e231fd59d5?size=48&default=wavatar
10.  想起小時候 (發表於 2012年9月19日 08:11)
這又讓我想起威盛
在技術優先的領域,台灣人終究是個半吊子
Vincent_Taipei
3人給推

11.  Vincent_Taipei (發表於 2012年9月19日 09:30)
你在T客邦的工作會不會太繁重?
有些人隨便烙幾句話, 辦個投票也是ㄧ篇稿子, 你寫的要死要活也是ㄧ篇稿子, 績效應該要不一樣吧, 不然很可憐...
加油, 這種由淺入深的文章很讚, 可以帶ㄧ些不是本行的人了解這些生硬的東西...
R.F.
3人給推

12.  R.F. (發表於 2012年9月19日 10:12)
※ 引述《Vincent_Taipei》的留言:
> 你在T客邦的工作會不會太繁重?
> 有些人隨便烙幾句話, 辦個投票也是ㄧ篇稿子, 你寫的要死要活也是ㄧ篇稿子, 績效應該要不一樣吧, 不然很可憐...
> 加油, 這種由淺入深的文章很讚, 可以帶ㄧ些不是本行的人了解這些生硬的東西...
>
感謝讀者的支持,這篇文章最先刊登在電腦王96期雜誌上,後轉載至T客邦上。
由於ARM採用IP授權的關係,資料挖得更深,也越覺得有趣,光是各家廠商的應用處理器之間的差異就相當的多,也還有Intel當初買了StrongARM做出自家的XScale,而後又賣給Marvell,近幾年又想利用Atom重返行動裝置市場,這歷史實在太黑了(≧▽≦)
Aaa7393402d2f61634068ee1c1ee0261?size=48&default=wavatar
13.  POTOPO (發表於 2012年9月19日 11:46)
※ 引述《R.F.》的留言:
> 感謝讀者的支持,這篇文章最先刊登在電腦王96期雜誌上,後轉載至T客邦上。
> 由於ARM採用IP授權的關係,資料挖得更深,也越覺得有趣,光是各家廠商的應用處理器之間的差異就相當的多,也還有Intel當初買了StrongARM做出自家的XScale,而後又賣給Marvell,近幾年又想利用Atom重返行動裝置市場,這歷史實在太黑了(≧▽≦)

讚!我這次真的受益良多呢!
可以的話,請務必說明一下這段黑歷史!
R.F.
16.  R.F. (發表於 2012年9月19日 17:53)
※ 引述《翎翊》的留言:
> 請大大帶我們了解嘿歷史+1 (≧▽≦)

最近身處水深火熱地獄中,比較沒有空寫〒ˍ〒
但大致上是XScale當初虧錢,就賣給了Marvell,現在又看到行動市場有利可圖,就把Atom直接砸下去做手機
不過以Intel強大的製程技術,省電又強悍的手機效能似乎可以期待?
4ac3e560d4b0318183215e1c95387e4d?size=48&default=wavatar
18.  Joe (發表於 2012年9月19日 22:59)
目前SATA 6Gb/s介面頻寬為6Gb/s,DDR3-1600雙通道的介面頻寬卻有25.6GB/s,兩者相差約43倍。

25.6*8/6 = 34

是不是算錯了?
F67b4deb8d44e08515327c0f5cdc80ca?size=48&default=wavatar
19.  路人 (發表於 2012年9月19日 23:21)
加油 希望techbang有更多這樣技術文章和專業評論文
R.F.
1人給推

20.  R.F. (發表於 2012年9月20日 00:14)
※ 引述《Joe》的留言:
> 目前SATA 6Gb/s介面頻寬為6Gb/s,DDR3-1600雙通道的介面頻寬卻有25.6GB/s,兩者相差約43倍。
>
> 25.6*8/6 = 34
>
> 是不是算錯了?
再次說明一下,SATA 6Gb/s採用8b/10b編碼(意即8bits的資料,會使用10bits表示),在傳輸上會有20%的資料冗餘,藉以提升傳輸資料的正確性,所以6Gb/s實際上頻寬只有600MB/s。
發表回應
謹慎發言,尊重彼此。按此展開留言規則