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

ADVERTISEMENT

開始大賣的ARM7

1993年推出的ARM7延續著ARMv3核心,但是由於製程的進步,快取加大至8KB,時脈也一舉拉高至40MHz。

ARM7TDMI(處理器架構ARMv4T),除了原本的32位元指令集外,還新增了Thumb,也就是精簡過的16位元指令集,讓編譯出來的程式可以縮小程式碼體積,官方表示與標準的ARM指令集相比,可以縮小35%的程式碼體積,又能享受32位元架構所帶來的效能提升。Thumb指令在執行時會通過處理器內一個叫做Thumb解碼器的東西,及時解壓成32位元ARM指令,同時也可受惠於32bit的記憶體匯流排,加速指令與資料的載入。

但之後的ARM8家族和Digital Equipment Corporation向ARM買授權自行製作的處理器StrongARM,都不支援Thumb。

ARM7EJ的處理器架構為ARMv5TEJ,直接加入稱為Jazelle DBX的運算電路,能夠以硬體加速大部分的Java bytecode,提升Java程式的執行效率;同時也新增適合處理DSP的指令,如飽和運算(saturated arithmetic)可以加速多媒體應用。

Java的執行方式

程式設計師以Java語言寫出程式後,經過編譯器編譯成Java bytecode檔,執行時便把這個Java bytecode丟入一個稱作JVM(Java Virtual Machine)的模擬器裡執行,在各種平台上都有不同的JVM,所以編譯過後的Java bytecode能夠跨平台執行。

飽和運算(saturated arithmetic)

正常以二進位表示為11111111(255)+00000001(1)=100000000(256),但是一個8bit的加法器,當輸入255+1的指令後,計算出來的結果將會是0。因為處理器只有8bit,最高位會產生數值溢位,實際交由8bit加法器運算將變成11111111(255)+00000001(1)=00000000(0)。但是當處理器支援飽和運算後,255+1的結果將變成255,經計算後的數值資料只會頂天立地(該資料類型的最大值或最小值),不會產生overflow或是underflow。

更換為哈佛架構

ARM9處理器家族內部處理器架構為ARMv5TE,導入了相當重要的架構更新,以往ARM和x86處理器都是採用馮‧紐曼架構,意即中央處理器和儲存裝置是分開的,中央處理器到儲存裝置中讀取一段程式碼執行,而不同程式碼可以造成不同的執行結果。相較於古早時代的電腦,一旦要執行不同的程式碼時,必須更動硬體設計,重新接線。約翰‧馮‧紐曼在1945年的論文中提出這個處理單元和儲存單元分離的概念,對於後來電腦發展有相當重大的影響。

哈佛架構則是馮‧紐曼架構的延伸,哈佛架構更進一步定義了程式和資料是由兩個獨立的空間儲存,同時也有兩個記憶體控制單元分別操作。讀取程式後解碼便得到資料位址,再到資料記憶體中讀取資料。此種架構好處在於指令和資料的記憶體操作能夠同時進行,當處理器在運算資料時,便可以先行擷取下一道指令。

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

▲馮‧紐曼架構,程式和資料儲存在同一個記憶體中。

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

▲哈佛架構,程式和資料分開儲存至不同的記憶體中。

在ARM10E的處理器架構升級為ARMv5TE,加入了VFP(向量浮點架構)的協同處理器,提升浮點數運算能力。

(後面還有智慧型手機應用大爆發)

R.F.
作者

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

使用 Facebook 留言
915a4a802c7f93674cedf5e04f95dea1?size=48&default=wavatar
21.  david (發表於 2012年9月20日 20:53)
※ 引述《R.F.》的留言:
> 由於ARM採用IP授權的關係,資料挖得更深,也越覺得有趣,光是各家廠商的應用處理器之間的差異就相當的多,也還有Intel當初買了StrongARM做出自家的XScale,而後又賣給Marvell,近幾年又想利用Atom重返行動裝置市場,這歷史實在太黑了(≧▽≦)

大家好, 我是受害者 [拼命揮手]
12c52b153daf70e75162ec15e8c01cbe?size=48&default=wavatar
22.  水球 (發表於 2012年9月20日 22:39)
歷史上第一台RISC電腦是IBM 801,或著是更早的CDC6600.... 說「首顆RISC微處理器」,一般都會先講IBM的ROMP,怎麼說應該還排不上ARM。

╮(╯_╰)╭
R.F.
23.  R.F. (發表於 2012年9月21日 03:30)
※ 引述《水球》的留言:
> 歷史上第一台RISC電腦是IBM 801,或著是更早的CDC6600.... 說「首顆RISC微處理器」,一般都會先講IBM的ROMP,怎麼說應該還排不上ARM。
>
> ╮(╯_╰)╭

這是小弟當初在收集資料上的遺漏,感謝水球大大的指正
張昌華
1人給推

25.  張昌華 (發表於 2012年9月24日 12:10)
ARM 的成功最重要的關鍵,應該是與TI聯手用ARM7 囊括Nokia 早期feature phone 的市場,從此奠定了ARM在mobile device 的省電一哥的地位,Apple 只是錦上添花爾以
凱文克勞斯
26.  凱文克勞斯 (發表於 2012年9月28日 22:13)
樓上大大剛好點出我的疑惑
我也記得Nokia當年在打江山的確用了很多ARM
或許編輯可以找一下有關ARM跟Nokia的歷史
畢竟Apple也真的是比較後面的事 ...
9f17abfbaa1801e9461c99032410355c?size=48&default=wavatar
27.  大白 (發表於 2012年10月31日 15:03)
※ 引述《水球》的留言:
> 歷史上第一台RISC電腦是IBM 801,或著是更早的CDC6600.... 說「首顆RISC微處理器」,一般都會先講IBM的ROMP,怎麼說應該還排不上ARM。
>
> ╮(╯_╰)╭

其實不能算是錯的喔,因為CDC6600是main frame而不是microcomputer,IBM 801則是minicomputer也不是microcomputer。而ROMP的設計雖然是microprocessor,也很早就設計完成,但是實際上市卻是遲至1986年的事情了。所以ARM的確是世界上第一顆上市的RISC microprocessor。
78a51ac1b2d94619f0a641efa4d96487?size=48&default=wavatar
28.  Bill (發表於 2012年11月10日 11:02)
ARM 並不是首顆 RISC Processor,早在 1975 年 IBM 推出 801 系列 RISC 電腦,第一顆 MIPS 晶片於1984年誕生也比ARM還早,許多計算機組織的經典教科書都以這些早期的 RISC 晶片為教才。
Ad049e336f23e32e6790b49d82110d04?size=48&default=wavatar
1人給推

29.  djboy (發表於 2012年12月31日 15:21)
以當年仍在手機晶片業界的員工的猜測,Intel會賣Strong ARM主要有是因為對 ATOM太樂觀了,以及堂堂CPU大廠怎可受限到ARM這種小公司的限制。

原本以為ATOM透過製程的進步,可以大副減少耗電量;同時消費者(手機廠)也願意為了高效能而減少待機時間。沒有想到ATOM的耗電量是手機業者完全不能接受,造成完全進不了手機產業。

另外就是,全世界所有廠商很有「默契」的拒絕用INTEL(和WINDOWS),不讓他們在PC上吃乾抹淨的故事重演。

但是,效能就是用電力換出來的。當ARM的效能和ATOM一樣時,他的耗電量也和ATOM是一樣。這個障礙應該就被打破,再加上INTEL的晶圓+IP實力,應該可以小勝收場。

不過,可惜,這是比軟體的年代,加上所有人都拒絕INTEL,所以除非ARM犯錯或是INTEL找到突破點,不然仍然是ARM的天下。
發表回應
謹慎發言,尊重彼此。按此展開留言規則