|
MIPS vs ARM的比較(從網路整理的資料)
[前言]
5 Z2 u- M) [* f 這是一個幾年以來我一直想做的“功課”,之所以稱之為“功課”,而不能說是“文章”,是因為我覺得自己的知識還遠遠不夠,不管是深度還是廣度,也 不管是全面性還是透徹性,我都不敢企及。但是我實在是很想把我的一些理解寫出來,然後能和其他朋友一起探討,糾正錯誤,補充完善,最終目的就是要加深對 ARM和MIPS 這兩種CPU架構的認識。2 d+ ? C0 A9 H" h* ^! V
這裡的目前最多只能算個草稿吧,待以後不斷的補充。+ W, d+ Y+ s2 S2 _2 D; T/ B6 V5 }7 q
8 n1 C5 \7 Q O, U[正文]) k# E# B( D: J2 F6 e& D! o+ Q7 ?1 f% p1 ~
1.流水線結構 pipeline
+ f3 p Q- Y* r9 e8 ^9 k9 ] - MIPS 是最簡單的體系結構之一,所以使大學喜歡選擇 MIPS 體系結構來介紹計算體系結構課程。
$ ], o& t3 ?" y. K( H: [( S - ARM has barrel shifter
2 r% c8 I3 z9 A$ f# W shifter是兩面性的,一方面它可以提高數學邏輯運算速度,另一方面它也增加了硬體的複雜性。所以和可以完成同樣功能的adder/shift register相比,效率更高,但是也佔用更多的晶片面積。
% k8 O( P; q3 P
& @+ i! L7 ]+ y, Q5 C4 H. i - MIPS have "branch delay slot" and "load delay slot"
" [$ ?) v: C+ h% w- k5 v' ` MIPS使用編譯器來解決上面的兩個問題。因為MIPS最初的設計思想就是使用簡單的RISC硬體,然後靠編譯器及其他軟體技術,來達成RISC的完整概念。
$ Q5 L/ Z0 y7 V# i3 X$ c4 u# i
" H3 `; }( k* T- r2.指令結構 instruction7 r% w' k' F- a! r$ @# u1 U; S
- MIPS have 32bit and 64bit architecture,but ARM only have 32bit architecture
. O. R, W8 [) a' k0 g ARM11 局部64位元
9 `( c+ F. m' T - MIPS是開放式的架構,用戶可以在開發的內核中加入自己的指令,9 Q) z k! Z) ~1 }# x/ @
- ARM has 4-bit condition code in every instruction4 P% s5 k% ~$ a
ARM 在這一點很像x86。MIPS在MIPS IV也加入"conditional move"指令,來提高pipeline的效率。: ]3 W7 u( f4 C4 U( u) g
- ARM has pre- and post-increment addressing modes
9 B# [* W$ i0 b2 w4 ^ auto-increment/decrement on load/store instructions9 N- R& s7 [( H1 r: u
- 在節省代碼空間方面,MIPS16 很類似ARM Thumb
, X+ l& u. ~8 b5 `( \' Y6 q4 z; R* h* }. t. q" F
3.寄存器 register
4 A! v: t, |4 M# Q9 {8 b" l -由於MIPS內核中有32個註冊器(Register),而ARM只有16個,這種結構設計上的先天優勢,決定了在同等性能表現下,MIPS的晶片面積和功耗會更小。3 }6 y) ^& q7 x& r# z: r
- ARM 有一組特殊用途寄存器cp0-cp15,可以使用MCR,MRC等指令控制;相對應的,MIPS也有cp0 0-30,使用mfc0,mtc0 指令控制。
3 H A& W) d" x4 p3 |, q+ [
4 j( q3 G, m+ m* ` - Register banking in ARM. r8-r12 FIQ mode;r13:SP r14R
3 V0 r. H, I" X, I 感覺不出banked register有什麼好處。1 }# @( A; K" l/ q* a9 Y
! M9 [* E* v0 a5 ^( D( K: E. ]
- MIPS has a hard-wired-to-zero register ,but ARM not* r! A% T4 k3 x0 J. g; v
MIPS use register $0 for Zero) {/ e& m. }6 h, g: o8 P ^1 K
) i+ I: _0 B: V3 h5 J& w
4.位址空間 address space M! b6 g; H$ y
- MIPS 起始位址是0xbfc00000,會有4Mbyte的大小限制,但一般MIPS晶片都會採取一些方法解決這個問題。" G8 t9 w& R s0 {! f: Y2 u
ARM沒有這種問題。1 h$ R; k/ _6 a- s s! x- {
MIPS24K 起始位址改到了0xbf000000,現在有16Mbyte的空間了。
7 x* \5 E; c6 ?2 r+ h& B4 y( u
1 m3 h: |# R& P! a3 X$ F) Z - MIPS don't have to turn paging on to enable the cache.3 S# t8 ~. \6 s2 j, |
MIPS have the address space for both cache and un-cache$ d0 `7 D+ y- E. V, T
but ARM need enable/disable cache9 `$ @6 a& x; D0 k. a6 H" T: i
; D6 }/ ~4 j c! w0 c5 T
5.功能 function+ `; ?* ?; J& y$ }# A3 u" F
- Float point: MIPS64 has.1 S& z" g2 M1 w6 a. d
ARM's support for FP is limited, and usually not included, and it is a 32 bit architecture5 I) U3 \" a5 O( G- p% M8 f _/ j
- ARM use JTAG,MIPS use EJTAG。Debug工具一般兩種都支援。使用起來感覺差不多。
! K. B/ C S9 H% g4 R. N
! M8 l8 o" o* C& r# @' b/ P6.性能 performance
6 p. f/ N; g0 j' v" @$ g! Q - 具體性能比較,因為差異性太大,所以很難分出誰好誰壞。從個人經驗來講 MIPS4k和ARM9基本上是同一個級別的,但ARM9性能似乎要比MIPS4K好。
4 C; Y+ I, T: G- ]8 m9 L 同樣是32bit的MIPS24K性能上比MIPS4K有很大提升,也應該比ARM9要好些。
) w- m/ a0 m" u' h 因為沒有用過ARM11和MIPS34K的晶片,沒法比較,但感覺這兩個似乎是一個級別的。9 z& X" D5 }- ]6 b: ?: s
: b7 ^0 Y" C! V- X m7.應用% d7 t9 e5 p! ~; K' Q) R* V1 \. g
- 在1000MHz以上的應用,很難找到採用ARM架構的產品。
4 Y$ E Q$ n$ C/ z MIPS架構用在200MHz或者是266MHz以下的應用比較少,而這恰恰是ARM的主攻市場。
: o. E1 L A2 _/ [ - ARM 在手機等可擕式領域,MIPS 在住宅閘道、線纜數據機、線纜機上盒等/ r* l7 [" T7 ]/ ^" m# E
- ARM 採用硬核授權;MIPS 採用軟核授權,使用者可以自己配置,做自己的產品。2 e: V4 b G: ]: y; ~
7 P* s' _8 R( Y8 D
8.未來發展
9 K3 ]! l5 g2 E% v* _( l - ARM的下一代走向多內核結構,而MIPS公司的下一代核心則轉向硬體多執行緒功能(multithreading)
6 X3 d1 q( i1 J3 U6 M MIPS 的multithreading 很類似Intel 的 HyperThreading技術。從現在的發展來看,多內核占上風。8 s2 f( ?7 o5 w' V8 f
: L2 T" T) b: z, F9 O+ n9.總結8 `, |- o+ ] b4 ^; z4 p' O5 D
自己感覺ARM和MIPS在一開始的RISC的設計上有很多不同,但隨著技術的發展,各自揚長避短,好的技術大家都會使用。比如ARM11和MIPS R1000就使用了很多一樣的技術。感覺RISC做到了極至就都一樣了。 |
評分
-
查看全部評分
|