|
MIPS vs ARM的比較(從網路整理的資料)
[前言]. Q" J- \+ U4 A: R2 B' [
這是一個幾年以來我一直想做的“功課”,之所以稱之為“功課”,而不能說是“文章”,是因為我覺得自己的知識還遠遠不夠,不管是深度還是廣度,也 不管是全面性還是透徹性,我都不敢企及。但是我實在是很想把我的一些理解寫出來,然後能和其他朋友一起探討,糾正錯誤,補充完善,最終目的就是要加深對 ARM和MIPS 這兩種CPU架構的認識。. Q b2 }- f" V( j6 ]
這裡的目前最多只能算個草稿吧,待以後不斷的補充。
9 ]6 I& g3 M0 ~9 d" w
w% p+ Z2 N' S F& t& d[正文]
6 t/ j% t0 h0 X( t1.流水線結構 pipeline
1 A+ M' c: G$ T- a - MIPS 是最簡單的體系結構之一,所以使大學喜歡選擇 MIPS 體系結構來介紹計算體系結構課程。
8 H6 ^& j' E7 j/ m- ] - ARM has barrel shifter
, f* p; Z$ F( H4 l8 B. n4 I2 F shifter是兩面性的,一方面它可以提高數學邏輯運算速度,另一方面它也增加了硬體的複雜性。所以和可以完成同樣功能的adder/shift register相比,效率更高,但是也佔用更多的晶片面積。" S& F, \& J- [6 e. Q
; g; r% D- U4 w5 x S# g) ~ - MIPS have "branch delay slot" and "load delay slot"
0 ?- C5 K* m# i% |8 b MIPS使用編譯器來解決上面的兩個問題。因為MIPS最初的設計思想就是使用簡單的RISC硬體,然後靠編譯器及其他軟體技術,來達成RISC的完整概念。- S, Z4 P$ B' ]$ U
0 ~8 p8 Y, p8 \/ ? h+ ~' W9 W; P8 ?2.指令結構 instruction. n8 z; u; h" r2 F
- MIPS have 32bit and 64bit architecture,but ARM only have 32bit architecture
' Q% ~8 |% o# } ARM11 局部64位元0 x6 [9 k5 V; e& \+ l. t
- MIPS是開放式的架構,用戶可以在開發的內核中加入自己的指令,
5 T' e& \, ^1 J - ARM has 4-bit condition code in every instruction
{, ^5 h, f; y$ b ARM 在這一點很像x86。MIPS在MIPS IV也加入"conditional move"指令,來提高pipeline的效率。
, a! [+ s1 g6 w - ARM has pre- and post-increment addressing modes' `+ Z! U _/ D/ c' _6 b
auto-increment/decrement on load/store instructions, R, [1 {; {6 b. q7 j
- 在節省代碼空間方面,MIPS16 很類似ARM Thumb
. p% D& V4 b7 v# ~' `% i) t
- |, @* |' f" V( r3 k3.寄存器 register
. F$ g7 n9 g5 W0 {- b; p -由於MIPS內核中有32個註冊器(Register),而ARM只有16個,這種結構設計上的先天優勢,決定了在同等性能表現下,MIPS的晶片面積和功耗會更小。
0 P* t9 H- V$ w. _, o& ^+ J - ARM 有一組特殊用途寄存器cp0-cp15,可以使用MCR,MRC等指令控制;相對應的,MIPS也有cp0 0-30,使用mfc0,mtc0 指令控制。+ j A, M( F. {+ f
0 I7 K3 K& u" d5 z* ?& F1 N - Register banking in ARM. r8-r12 FIQ mode;r13:SP r14R0 Q% U8 m& ^ K" r9 T" b
感覺不出banked register有什麼好處。
: L) X7 v& d; K3 j1 S
9 K* c' p8 }- ~. U; A q# z - MIPS has a hard-wired-to-zero register ,but ARM not1 v, m" m0 H6 C& W x
MIPS use register $0 for Zero
2 F- Q& i) ^+ u7 O5 g, Y" i2 E$ y( ~
4.位址空間 address space. _# n& w+ x; n' u2 {
- MIPS 起始位址是0xbfc00000,會有4Mbyte的大小限制,但一般MIPS晶片都會採取一些方法解決這個問題。
& F! F, l. U6 j! z/ B, ~ ARM沒有這種問題。% ]8 P, g0 a9 J4 F6 y+ F% f
MIPS24K 起始位址改到了0xbf000000,現在有16Mbyte的空間了。% u E+ d' [8 k7 z" ~3 v$ u6 f# |
+ m9 _/ j9 z3 f7 w
- MIPS don't have to turn paging on to enable the cache.
1 w' x+ C5 l. g4 C) B MIPS have the address space for both cache and un-cache
$ [# _$ L7 g- `/ l5 u; C$ F, k but ARM need enable/disable cache
: ?* @( \$ i6 o1 P* D# p& |) m- U4 u% B
5.功能 function
$ K6 K- h2 T# n$ C; o+ Y - Float point: MIPS64 has.
5 R' C& @ p1 J2 V. O' T ARM's support for FP is limited, and usually not included, and it is a 32 bit architecture% D) \3 S" V; G' D" F" |0 x3 C$ M
- ARM use JTAG,MIPS use EJTAG。Debug工具一般兩種都支援。使用起來感覺差不多。9 i5 V# Q. a, M! E8 O! H
7 M+ r% X, u- C" r0 c; V5 h$ ^
6.性能 performance; n) Q7 g! w) t- {+ `
- 具體性能比較,因為差異性太大,所以很難分出誰好誰壞。從個人經驗來講 MIPS4k和ARM9基本上是同一個級別的,但ARM9性能似乎要比MIPS4K好。/ U5 @6 ^5 g4 W+ W
同樣是32bit的MIPS24K性能上比MIPS4K有很大提升,也應該比ARM9要好些。
5 b6 ?3 W0 N' t# h$ P 因為沒有用過ARM11和MIPS34K的晶片,沒法比較,但感覺這兩個似乎是一個級別的。9 h0 a. t4 P" g! \8 {/ |/ f
; D6 @$ ?. p" f7.應用
/ O: u. j e" F2 M8 m. |2 F1 N - 在1000MHz以上的應用,很難找到採用ARM架構的產品。
& ^8 e" U+ m6 j6 k: n" j( O6 p/ x MIPS架構用在200MHz或者是266MHz以下的應用比較少,而這恰恰是ARM的主攻市場。- r1 B) n1 t/ T
- ARM 在手機等可擕式領域,MIPS 在住宅閘道、線纜數據機、線纜機上盒等
4 w) T8 Y, D+ f/ u' c/ g" a2 L - ARM 採用硬核授權;MIPS 採用軟核授權,使用者可以自己配置,做自己的產品。" a8 }9 }9 t# J& k/ f( A; A1 s2 i8 z
9 U3 v! _5 s) [; j9 f# G, e
8.未來發展; n" V7 |0 i1 W9 W4 ]
- ARM的下一代走向多內核結構,而MIPS公司的下一代核心則轉向硬體多執行緒功能(multithreading)" F% H6 B1 f% e" p$ w2 N2 f
MIPS 的multithreading 很類似Intel 的 HyperThreading技術。從現在的發展來看,多內核占上風。/ q4 `. R% r: J* m; O# }
+ T! j8 n7 e9 H9.總結8 b0 b% Y* a3 e; d" W& _
自己感覺ARM和MIPS在一開始的RISC的設計上有很多不同,但隨著技術的發展,各自揚長避短,好的技術大家都會使用。比如ARM11和MIPS R1000就使用了很多一樣的技術。感覺RISC做到了極至就都一樣了。 |
評分
-
查看全部評分
|