|
MIPS vs ARM的比較(從網路整理的資料)
[前言]! }1 x$ A: {' r( E' x+ E! \
這是一個幾年以來我一直想做的“功課”,之所以稱之為“功課”,而不能說是“文章”,是因為我覺得自己的知識還遠遠不夠,不管是深度還是廣度,也 不管是全面性還是透徹性,我都不敢企及。但是我實在是很想把我的一些理解寫出來,然後能和其他朋友一起探討,糾正錯誤,補充完善,最終目的就是要加深對 ARM和MIPS 這兩種CPU架構的認識。; R6 X3 z" _8 Q& G4 N
這裡的目前最多只能算個草稿吧,待以後不斷的補充。
) t% j' [- p( A. [6 R: g) N; A- f6 |% b* |
[正文]
8 ]* {$ K6 h, R }/ l* Z1.流水線結構 pipeline
+ R) G# y) R% k! W" Z; c' Y, y - MIPS 是最簡單的體系結構之一,所以使大學喜歡選擇 MIPS 體系結構來介紹計算體系結構課程。! @6 C2 V8 a, w' V
- ARM has barrel shifter9 q5 J+ _* H1 [# x' Y# h. Y; M
shifter是兩面性的,一方面它可以提高數學邏輯運算速度,另一方面它也增加了硬體的複雜性。所以和可以完成同樣功能的adder/shift register相比,效率更高,但是也佔用更多的晶片面積。9 ^; ~4 o& e/ x. X
! t; r0 U! V, |. k C. N8 p1 z - MIPS have "branch delay slot" and "load delay slot"
$ g6 ? ^. @, |3 }5 _/ l/ D( k0 z2 n MIPS使用編譯器來解決上面的兩個問題。因為MIPS最初的設計思想就是使用簡單的RISC硬體,然後靠編譯器及其他軟體技術,來達成RISC的完整概念。9 K8 g/ ~+ {1 T- ^
5 n# P7 N% P9 L% U2 n0 I6 D
2.指令結構 instruction- H. w: i) U n! Q0 p2 {! t" I
- MIPS have 32bit and 64bit architecture,but ARM only have 32bit architecture
6 ?/ ?6 S7 V4 M8 U" l$ O8 ~0 W1 U ARM11 局部64位元1 H# A0 @/ B6 R2 A u! ~
- MIPS是開放式的架構,用戶可以在開發的內核中加入自己的指令,. P f) N. i; X5 a( V0 j: X
- ARM has 4-bit condition code in every instruction
* p+ P& c( l8 ~5 W, p3 b8 G1 l6 G ARM 在這一點很像x86。MIPS在MIPS IV也加入"conditional move"指令,來提高pipeline的效率。) r- S0 D3 X7 P
- ARM has pre- and post-increment addressing modes
# s$ ]3 x$ T& m1 ] auto-increment/decrement on load/store instructions
7 _6 d U+ b6 } - 在節省代碼空間方面,MIPS16 很類似ARM Thumb, r1 E/ ?! u V: l" y% f+ }
2 p" w0 @" X; [1 y
3.寄存器 register
" c5 F0 T6 z3 d; z/ t: O @; j0 r -由於MIPS內核中有32個註冊器(Register),而ARM只有16個,這種結構設計上的先天優勢,決定了在同等性能表現下,MIPS的晶片面積和功耗會更小。
0 P( v4 H! C& e0 M/ { - ARM 有一組特殊用途寄存器cp0-cp15,可以使用MCR,MRC等指令控制;相對應的,MIPS也有cp0 0-30,使用mfc0,mtc0 指令控制。
" i$ c+ Y6 l+ g5 V. l9 b7 B; o7 x6 ] v" E R& E% r8 Z
- Register banking in ARM. r8-r12 FIQ mode;r13:SP r14R2 |; y& J3 u0 ^9 y- f
感覺不出banked register有什麼好處。
0 p% ~0 P8 J+ V# z- M m# J/ n
( D+ B& T3 Y" i7 [$ C - MIPS has a hard-wired-to-zero register ,but ARM not
- w' h; ^% T% |6 b, B MIPS use register $0 for Zero
+ H! K5 e4 v, f. n5 O: N6 c }8 e
4.位址空間 address space* E0 c/ H3 @; l# q# {
- MIPS 起始位址是0xbfc00000,會有4Mbyte的大小限制,但一般MIPS晶片都會採取一些方法解決這個問題。 N; P5 q* {3 H0 _
ARM沒有這種問題。, @6 y; H2 H9 `: D
MIPS24K 起始位址改到了0xbf000000,現在有16Mbyte的空間了。
' W h- S' r1 z
( q" r; X& M# b5 m4 a) Z: _ - MIPS don't have to turn paging on to enable the cache.9 [; s5 G( L0 i6 o- i
MIPS have the address space for both cache and un-cache- x7 p9 `' Q" B/ w9 f5 u" z
but ARM need enable/disable cache: W2 X0 ~: Q, E1 X# d# ]
) a# S3 P/ S; q U5.功能 function
' o0 G f% h! |! m - Float point: MIPS64 has.
% I/ I! l) T) f ARM's support for FP is limited, and usually not included, and it is a 32 bit architecture0 v5 \& n# h7 K% O/ w
- ARM use JTAG,MIPS use EJTAG。Debug工具一般兩種都支援。使用起來感覺差不多。# W. o2 ~( z N) P* k, h
* D' J9 y' `7 ?9 i; b
6.性能 performance
1 h5 V7 O6 F" C. a" s - 具體性能比較,因為差異性太大,所以很難分出誰好誰壞。從個人經驗來講 MIPS4k和ARM9基本上是同一個級別的,但ARM9性能似乎要比MIPS4K好。7 E' o2 }1 T- m1 m
同樣是32bit的MIPS24K性能上比MIPS4K有很大提升,也應該比ARM9要好些。
; T# x: C; c8 e0 D/ o 因為沒有用過ARM11和MIPS34K的晶片,沒法比較,但感覺這兩個似乎是一個級別的。8 r. P" G6 k: B: T
/ |8 X6 |3 I5 U6 B$ O
7.應用
( x& l/ H1 z! q; E n - 在1000MHz以上的應用,很難找到採用ARM架構的產品。4 v% \# k5 F1 p4 P& s3 w
MIPS架構用在200MHz或者是266MHz以下的應用比較少,而這恰恰是ARM的主攻市場。. C7 V. u9 G. U8 [ c Z
- ARM 在手機等可擕式領域,MIPS 在住宅閘道、線纜數據機、線纜機上盒等
# ]6 C8 `, G/ z - ARM 採用硬核授權;MIPS 採用軟核授權,使用者可以自己配置,做自己的產品。
& F0 u C9 ~6 ?* Z5 [5 n b* I% H2 @1 a- B% K4 U* R W. `
8.未來發展& |4 F& V" I/ B! c! T
- ARM的下一代走向多內核結構,而MIPS公司的下一代核心則轉向硬體多執行緒功能(multithreading)" U! @; E+ I" X; e, [3 B* A
MIPS 的multithreading 很類似Intel 的 HyperThreading技術。從現在的發展來看,多內核占上風。
- Y! ~# h9 b. K
B. ]6 k* l" a& {. R; k5 }9.總結2 T6 ?# ~0 `& n8 p
自己感覺ARM和MIPS在一開始的RISC的設計上有很多不同,但隨著技術的發展,各自揚長避短,好的技術大家都會使用。比如ARM11和MIPS R1000就使用了很多一樣的技術。感覺RISC做到了極至就都一樣了。 |
評分
-
查看全部評分
|