|
MIPS vs ARM的比較(從網路整理的資料)
[前言]
6 U9 y& ^4 ^+ h$ Z7 q" _ 這是一個幾年以來我一直想做的“功課”,之所以稱之為“功課”,而不能說是“文章”,是因為我覺得自己的知識還遠遠不夠,不管是深度還是廣度,也 不管是全面性還是透徹性,我都不敢企及。但是我實在是很想把我的一些理解寫出來,然後能和其他朋友一起探討,糾正錯誤,補充完善,最終目的就是要加深對 ARM和MIPS 這兩種CPU架構的認識。% S5 c3 O- w, B( @: \2 E8 s
這裡的目前最多只能算個草稿吧,待以後不斷的補充。8 J! L# V; l% p
3 P# L& g# E( a S; z
[正文]
% D$ _4 A0 M5 D6 x/ c1.流水線結構 pipeline& }/ K/ ^1 Y) t8 Y
- MIPS 是最簡單的體系結構之一,所以使大學喜歡選擇 MIPS 體系結構來介紹計算體系結構課程。1 W3 k) e u& J$ P; c6 u
- ARM has barrel shifter+ O4 f: _. i. u
shifter是兩面性的,一方面它可以提高數學邏輯運算速度,另一方面它也增加了硬體的複雜性。所以和可以完成同樣功能的adder/shift register相比,效率更高,但是也佔用更多的晶片面積。; i: E, W- H$ l* ?( [5 U3 j+ H
& i5 ^8 F% r: L8 Z+ o - MIPS have "branch delay slot" and "load delay slot"7 N5 t$ _. L4 _/ }1 C) z9 f/ w
MIPS使用編譯器來解決上面的兩個問題。因為MIPS最初的設計思想就是使用簡單的RISC硬體,然後靠編譯器及其他軟體技術,來達成RISC的完整概念。
0 e4 s C' k; H1 G0 K; @4 V) n) G; z! K# }$ i
2.指令結構 instruction
; r% |* H! {1 E7 g* @ - MIPS have 32bit and 64bit architecture,but ARM only have 32bit architecture1 y1 `4 n8 ~; ^6 M
ARM11 局部64位元
4 y# a# }# S/ r+ l7 [& M) `% L - MIPS是開放式的架構,用戶可以在開發的內核中加入自己的指令,0 G+ e1 h3 C9 S
- ARM has 4-bit condition code in every instruction) B% @4 q {+ l" n u
ARM 在這一點很像x86。MIPS在MIPS IV也加入"conditional move"指令,來提高pipeline的效率。
: X) R& Q2 C# g$ G" U/ c - ARM has pre- and post-increment addressing modes" j3 r+ A& O: M* B/ F, g- h
auto-increment/decrement on load/store instructions
9 G- g+ Q4 z0 B5 v9 a - 在節省代碼空間方面,MIPS16 很類似ARM Thumb
( P+ _; b1 g) c% i. T- y2 e7 R7 J3 V0 z
3.寄存器 register! S. O$ |7 e* M* t
-由於MIPS內核中有32個註冊器(Register),而ARM只有16個,這種結構設計上的先天優勢,決定了在同等性能表現下,MIPS的晶片面積和功耗會更小。2 g. Q* t: J7 F1 E* I# s; c
- ARM 有一組特殊用途寄存器cp0-cp15,可以使用MCR,MRC等指令控制;相對應的,MIPS也有cp0 0-30,使用mfc0,mtc0 指令控制。 D4 o7 z& B7 {! o& A- t' O
2 g) n1 r- l5 G" G0 b+ @8 @ - Register banking in ARM. r8-r12 FIQ mode;r13:SP r14R
w1 H5 A' ]9 c6 M 感覺不出banked register有什麼好處。! q5 h& r* V$ @7 w( |
A4 K) @$ [. E/ ~" A - MIPS has a hard-wired-to-zero register ,but ARM not7 T% H9 ^* Q, G+ o
MIPS use register $0 for Zero( e" N! |1 Q5 ^1 X2 M" u1 t
( n4 o0 r$ D q) D4.位址空間 address space6 j& ` l7 u: f5 |
- MIPS 起始位址是0xbfc00000,會有4Mbyte的大小限制,但一般MIPS晶片都會採取一些方法解決這個問題。! v/ L+ Q5 Q+ t4 P
ARM沒有這種問題。, h1 B8 w# V) x+ k
MIPS24K 起始位址改到了0xbf000000,現在有16Mbyte的空間了。
7 q( }9 H5 \4 C5 ]9 z
) w* K6 ~. B6 q9 B* z- \% _0 ]! Y - MIPS don't have to turn paging on to enable the cache.
7 b2 |2 x* F" ?, N. @5 v MIPS have the address space for both cache and un-cache
! I# |! y! P4 z# N# t7 C but ARM need enable/disable cache
3 j, T3 H {( K$ b ^. E' ?0 Y# j% R K( P- b, i5 O) ^; w* }
5.功能 function
* t/ Z+ ]% @$ d" a6 _. u - Float point: MIPS64 has.
5 X P* \3 g: N& j/ Y0 b3 p ARM's support for FP is limited, and usually not included, and it is a 32 bit architecture% g+ x/ W7 h- ^" v' O
- ARM use JTAG,MIPS use EJTAG。Debug工具一般兩種都支援。使用起來感覺差不多。
9 K. y8 B [' |: \2 _. N) q# p7 ]+ T
6.性能 performance. j0 R2 f" W* D3 F( B
- 具體性能比較,因為差異性太大,所以很難分出誰好誰壞。從個人經驗來講 MIPS4k和ARM9基本上是同一個級別的,但ARM9性能似乎要比MIPS4K好。
1 n$ _# {8 E6 t; x1 ?. a. k! p 同樣是32bit的MIPS24K性能上比MIPS4K有很大提升,也應該比ARM9要好些。5 v. Z# N3 R+ l( p' c" K
因為沒有用過ARM11和MIPS34K的晶片,沒法比較,但感覺這兩個似乎是一個級別的。
# j# F6 B' N [$ b% I* ]9 A$ v: c- h
# t5 `5 T* `0 [0 I# V+ ^7 a7.應用
# f, y9 {1 O2 C& }1 `# B - 在1000MHz以上的應用,很難找到採用ARM架構的產品。# }) q$ Z4 o, \
MIPS架構用在200MHz或者是266MHz以下的應用比較少,而這恰恰是ARM的主攻市場。5 j, A% k. a) ~: A
- ARM 在手機等可擕式領域,MIPS 在住宅閘道、線纜數據機、線纜機上盒等' g. E+ y4 ]/ t
- ARM 採用硬核授權;MIPS 採用軟核授權,使用者可以自己配置,做自己的產品。
; ^3 h6 g/ c/ W" |; {/ x. t1 v" U$ A: p9 G4 z R
8.未來發展
0 x5 [$ g) ^+ c - ARM的下一代走向多內核結構,而MIPS公司的下一代核心則轉向硬體多執行緒功能(multithreading)
6 `# e9 M* m r+ Z7 p MIPS 的multithreading 很類似Intel 的 HyperThreading技術。從現在的發展來看,多內核占上風。% X8 u' R8 E! [6 l' b, s' E
b1 J* \* x) S3 S! d* g0 v1 b
9.總結6 ^( [4 C# B3 K; C$ \
自己感覺ARM和MIPS在一開始的RISC的設計上有很多不同,但隨著技術的發展,各自揚長避短,好的技術大家都會使用。比如ARM11和MIPS R1000就使用了很多一樣的技術。感覺RISC做到了極至就都一樣了。 |
評分
-
查看全部評分
|