|
MIPS vs ARM的比較(從網路整理的資料)
[前言]
) c9 U7 V' T$ `7 d5 a6 J9 P" `; ] 這是一個幾年以來我一直想做的“功課”,之所以稱之為“功課”,而不能說是“文章”,是因為我覺得自己的知識還遠遠不夠,不管是深度還是廣度,也 不管是全面性還是透徹性,我都不敢企及。但是我實在是很想把我的一些理解寫出來,然後能和其他朋友一起探討,糾正錯誤,補充完善,最終目的就是要加深對 ARM和MIPS 這兩種CPU架構的認識。
2 k5 \% W( _* ]- w 這裡的目前最多只能算個草稿吧,待以後不斷的補充。
P8 B" S- I- u) @4 U- T. P6 ~% c/ F1 @
[正文]
- L% k& ]. ?7 U& S% e1.流水線結構 pipeline
# P! ^; C& {$ p4 h3 E9 } - MIPS 是最簡單的體系結構之一,所以使大學喜歡選擇 MIPS 體系結構來介紹計算體系結構課程。6 T8 X7 w! b) r4 P
- ARM has barrel shifter8 f2 M) O# Z9 x M/ F
shifter是兩面性的,一方面它可以提高數學邏輯運算速度,另一方面它也增加了硬體的複雜性。所以和可以完成同樣功能的adder/shift register相比,效率更高,但是也佔用更多的晶片面積。 S; L9 f. ^2 K6 N) n
/ B6 ^9 t) }' K& O0 _! [, s% _5 Q
- MIPS have "branch delay slot" and "load delay slot"4 Q; b; |% {$ d( M" F6 q
MIPS使用編譯器來解決上面的兩個問題。因為MIPS最初的設計思想就是使用簡單的RISC硬體,然後靠編譯器及其他軟體技術,來達成RISC的完整概念。
& w/ b7 S; ]# h1 {4 n4 M
% @" `. L/ p5 Q K$ L9 W: n; E2.指令結構 instruction) c) @0 s2 R' ^ A( Q* `: U* [- K
- MIPS have 32bit and 64bit architecture,but ARM only have 32bit architecture
: [2 X2 v6 \" D8 M5 {+ S ARM11 局部64位元6 n, N% I: ~" Z- Q+ Q) q1 x: s
- MIPS是開放式的架構,用戶可以在開發的內核中加入自己的指令,' i3 ^, G0 N% y" l& j
- ARM has 4-bit condition code in every instruction+ o6 v% @( N. e/ w! n) N! y
ARM 在這一點很像x86。MIPS在MIPS IV也加入"conditional move"指令,來提高pipeline的效率。
) C$ K- i$ A5 i9 a - ARM has pre- and post-increment addressing modes
8 U6 `, M) K4 _+ s. ~( z- m2 J; g5 b# w auto-increment/decrement on load/store instructions: B5 [3 x* x7 ]9 Y9 ?
- 在節省代碼空間方面,MIPS16 很類似ARM Thumb
) F/ p6 l8 P( {0 p# J7 z. c' o& Q
0 v+ ?$ ?: I+ V6 n: O3.寄存器 register
3 Y9 S$ N" |1 B9 ?: Y -由於MIPS內核中有32個註冊器(Register),而ARM只有16個,這種結構設計上的先天優勢,決定了在同等性能表現下,MIPS的晶片面積和功耗會更小。
; i' {( ]7 ]" ?) c. h3 S - ARM 有一組特殊用途寄存器cp0-cp15,可以使用MCR,MRC等指令控制;相對應的,MIPS也有cp0 0-30,使用mfc0,mtc0 指令控制。
c/ z4 Y) _' l: J7 G8 x1 Y0 g
( L9 i3 a: k" y( V8 g f7 i - Register banking in ARM. r8-r12 FIQ mode;r13:SP r14R& h M& \; t8 z9 q. U
感覺不出banked register有什麼好處。
! z9 c( Q; Z; }, K# j; F
6 H" M6 i: ?4 c! ~ - MIPS has a hard-wired-to-zero register ,but ARM not( J! x4 G3 w3 M9 B8 Q( n" C5 o
MIPS use register $0 for Zero0 B' C4 v! L& Y' A- ^/ f3 _( r
# O i3 X4 N7 r$ {- u( ^4.位址空間 address space$ @) ^" W5 U4 x4 f% z
- MIPS 起始位址是0xbfc00000,會有4Mbyte的大小限制,但一般MIPS晶片都會採取一些方法解決這個問題。+ {3 `5 M7 h9 `
ARM沒有這種問題。9 Y/ A( P8 y9 u; J( G, Z' y, u$ M
MIPS24K 起始位址改到了0xbf000000,現在有16Mbyte的空間了。
: _. d: j+ O: W
" v2 J7 V3 W1 K- w - MIPS don't have to turn paging on to enable the cache.! a5 Y+ S% ^/ N! @: y8 K7 @% V
MIPS have the address space for both cache and un-cache- F$ u) T9 l- z( z% S; t# X- ?
but ARM need enable/disable cache! ], }" G; B# O9 S' q# y, H8 z
8 d/ `8 ?8 P9 U% r% K6 y
5.功能 function$ v* {( |7 |5 Q4 a3 z; v
- Float point: MIPS64 has.. {# d" h1 W9 ?9 @$ k9 i- y4 Y
ARM's support for FP is limited, and usually not included, and it is a 32 bit architecture% _! F" y$ g3 n- K
- ARM use JTAG,MIPS use EJTAG。Debug工具一般兩種都支援。使用起來感覺差不多。
, Q* C4 d' q" Y) ]2 J' y- M
+ b" n$ W$ I: h$ Z* y7 \# {6.性能 performance0 }0 d/ d. ]* N$ k' F! M
- 具體性能比較,因為差異性太大,所以很難分出誰好誰壞。從個人經驗來講 MIPS4k和ARM9基本上是同一個級別的,但ARM9性能似乎要比MIPS4K好。3 @3 o- u4 v% B/ V9 B
同樣是32bit的MIPS24K性能上比MIPS4K有很大提升,也應該比ARM9要好些。
0 Z; c0 Y8 F$ L5 Q# w, y# t& O. m 因為沒有用過ARM11和MIPS34K的晶片,沒法比較,但感覺這兩個似乎是一個級別的。
; r* b6 h. M& k5 O& l v. d
! X; u) s0 K5 g" a0 ?' }4 m7.應用
+ c4 }0 E1 _4 g7 O1 m9 G& Z2 f - 在1000MHz以上的應用,很難找到採用ARM架構的產品。9 i$ r* q4 r' w, H$ r, W) g
MIPS架構用在200MHz或者是266MHz以下的應用比較少,而這恰恰是ARM的主攻市場。
. }9 r3 ~, U" p3 N e. N- D( } - ARM 在手機等可擕式領域,MIPS 在住宅閘道、線纜數據機、線纜機上盒等/ j5 K8 C3 R& S7 M" o: K
- ARM 採用硬核授權;MIPS 採用軟核授權,使用者可以自己配置,做自己的產品。7 X9 [" A/ Q5 z
+ k1 j9 c) ]1 a/ w2 A" o. q" G
8.未來發展
% W. A; @0 k. y6 E - ARM的下一代走向多內核結構,而MIPS公司的下一代核心則轉向硬體多執行緒功能(multithreading)
" A. `0 C+ t2 W& U1 _9 M4 p2 R MIPS 的multithreading 很類似Intel 的 HyperThreading技術。從現在的發展來看,多內核占上風。) |- T4 h3 B+ X! w- G6 n
! l) q3 f% ~! a4 p; ]9.總結
& V' j5 F% W3 _ F 自己感覺ARM和MIPS在一開始的RISC的設計上有很多不同,但隨著技術的發展,各自揚長避短,好的技術大家都會使用。比如ARM11和MIPS R1000就使用了很多一樣的技術。感覺RISC做到了極至就都一樣了。 |
評分
-
查看全部評分
|