|
MIPS vs ARM的比較(從網路整理的資料)
[前言]
# i9 r8 N& ]2 J3 C, c 這是一個幾年以來我一直想做的“功課”,之所以稱之為“功課”,而不能說是“文章”,是因為我覺得自己的知識還遠遠不夠,不管是深度還是廣度,也 不管是全面性還是透徹性,我都不敢企及。但是我實在是很想把我的一些理解寫出來,然後能和其他朋友一起探討,糾正錯誤,補充完善,最終目的就是要加深對 ARM和MIPS 這兩種CPU架構的認識。
/ b6 _' n o' m 這裡的目前最多只能算個草稿吧,待以後不斷的補充。
" h% K5 a. ^& O) A9 y8 }; p) Y6 w7 D- f7 W. y; y0 X
[正文]7 X' A$ z+ z# S, |* b
1.流水線結構 pipeline
( d3 j+ w W6 } K) o2 A0 H - MIPS 是最簡單的體系結構之一,所以使大學喜歡選擇 MIPS 體系結構來介紹計算體系結構課程。
) }2 K) H& O/ e* {' D8 }$ V - ARM has barrel shifter
8 X/ L( }! g) W! h: b shifter是兩面性的,一方面它可以提高數學邏輯運算速度,另一方面它也增加了硬體的複雜性。所以和可以完成同樣功能的adder/shift register相比,效率更高,但是也佔用更多的晶片面積。) ^: t/ ^: {4 u) S
6 S4 q% J. z& A - MIPS have "branch delay slot" and "load delay slot"9 x# Q; T. c, G. G$ E1 f# u
MIPS使用編譯器來解決上面的兩個問題。因為MIPS最初的設計思想就是使用簡單的RISC硬體,然後靠編譯器及其他軟體技術,來達成RISC的完整概念。
1 M- L7 }& p5 Z5 z* _" ^3 L6 e, u
2.指令結構 instruction
# c, Z, w1 U* A4 h- \8 h, M - MIPS have 32bit and 64bit architecture,but ARM only have 32bit architecture
/ `$ K- ~: }, |; x; E4 u* d ARM11 局部64位元
! M& s1 y+ V1 C* w4 ]9 n* N - MIPS是開放式的架構,用戶可以在開發的內核中加入自己的指令,
" C' d. B, j/ s1 d }" c0 o8 F3 K - ARM has 4-bit condition code in every instruction H, K- u5 T' J7 _- v& l$ L6 R
ARM 在這一點很像x86。MIPS在MIPS IV也加入"conditional move"指令,來提高pipeline的效率。
" D, g0 w' E& r' L - ARM has pre- and post-increment addressing modes( J% z6 V+ W% c8 q; J8 V. q9 b
auto-increment/decrement on load/store instructions
# R) o7 [7 G0 O! C% u. g' D1 ] - 在節省代碼空間方面,MIPS16 很類似ARM Thumb
4 D- T4 h) F" q0 Y6 a$ @( U: I5 P6 p& {% p" g& H, n3 H3 n# B
3.寄存器 register
2 ]0 q8 a2 U, T6 d -由於MIPS內核中有32個註冊器(Register),而ARM只有16個,這種結構設計上的先天優勢,決定了在同等性能表現下,MIPS的晶片面積和功耗會更小。
/ x0 z$ W1 {8 n5 F" ~8 _4 g - ARM 有一組特殊用途寄存器cp0-cp15,可以使用MCR,MRC等指令控制;相對應的,MIPS也有cp0 0-30,使用mfc0,mtc0 指令控制。
4 w, u$ J5 s2 M A% g$ n6 D
& N: R7 m/ W+ ^5 d2 f- e - Register banking in ARM. r8-r12 FIQ mode;r13:SP r14R. Q$ a- _, U+ L a, y
感覺不出banked register有什麼好處。1 C2 w7 A$ X+ H( U1 B( e8 C" U
9 x, l9 M1 o' K$ O3 Y% z% A - MIPS has a hard-wired-to-zero register ,but ARM not! q( q# T) \/ D; A [7 g; ?
MIPS use register $0 for Zero
1 D& n# Y: p6 ]* @! o. J( e7 ]/ U* {7 w6 j
4.位址空間 address space
1 o2 H7 t, ^+ M3 s- A { - MIPS 起始位址是0xbfc00000,會有4Mbyte的大小限制,但一般MIPS晶片都會採取一些方法解決這個問題。
2 X! F% d, K$ { ARM沒有這種問題。1 a9 m# p* S' S% N7 g6 p
MIPS24K 起始位址改到了0xbf000000,現在有16Mbyte的空間了。* A" Q4 c" T2 W9 b
6 Y7 z5 z! O! \( ?' g - MIPS don't have to turn paging on to enable the cache.$ U: ` r9 h; _' L( |
MIPS have the address space for both cache and un-cache" I7 k" P: A' A! r* e2 ^
but ARM need enable/disable cache' j1 N! _: E$ {' R/ O1 O1 M
9 q4 ~% X9 S( X7 k6 ]3 o
5.功能 function
' y3 d& Q! r! W; H B" P' o - Float point: MIPS64 has." w* M# K1 Q" m9 n2 }1 J
ARM's support for FP is limited, and usually not included, and it is a 32 bit architecture, u& b% i. X) G+ R
- ARM use JTAG,MIPS use EJTAG。Debug工具一般兩種都支援。使用起來感覺差不多。
Y8 ?$ _* E5 t3 s( \& E- r, z, L/ j
6.性能 performance5 ~( d" p( m8 J, o, J ]0 o( _* T
- 具體性能比較,因為差異性太大,所以很難分出誰好誰壞。從個人經驗來講 MIPS4k和ARM9基本上是同一個級別的,但ARM9性能似乎要比MIPS4K好。! s1 R& P; w7 w: I9 x7 Z7 g
同樣是32bit的MIPS24K性能上比MIPS4K有很大提升,也應該比ARM9要好些。
9 N- l _$ f- u7 s0 ^8 X6 q( h 因為沒有用過ARM11和MIPS34K的晶片,沒法比較,但感覺這兩個似乎是一個級別的。: ]0 U, {" s% E
4 T% ^) s6 s% o, ?0 l# l
7.應用4 {3 ?5 Y0 Y" O0 c
- 在1000MHz以上的應用,很難找到採用ARM架構的產品。, t) b# M: p9 J4 [
MIPS架構用在200MHz或者是266MHz以下的應用比較少,而這恰恰是ARM的主攻市場。4 s; s: P& w L/ v; a, K) m! B5 V
- ARM 在手機等可擕式領域,MIPS 在住宅閘道、線纜數據機、線纜機上盒等) \# d; ?) G, i: ]% m2 t" C8 ` r
- ARM 採用硬核授權;MIPS 採用軟核授權,使用者可以自己配置,做自己的產品。/ A" K1 {8 b" q3 U7 J0 k8 }
' ^# D& o3 L/ d2 K. i+ S7 I+ I8.未來發展 E/ B, ^* Y$ _& }! }6 ?
- ARM的下一代走向多內核結構,而MIPS公司的下一代核心則轉向硬體多執行緒功能(multithreading)' [( ~- N( I0 m$ [
MIPS 的multithreading 很類似Intel 的 HyperThreading技術。從現在的發展來看,多內核占上風。/ X4 b5 p0 m0 Z o" P# K2 l
$ R( V' O/ a2 A% p$ c% X9.總結9 ^, t$ \+ d2 z6 z# g: U
自己感覺ARM和MIPS在一開始的RISC的設計上有很多不同,但隨著技術的發展,各自揚長避短,好的技術大家都會使用。比如ARM11和MIPS R1000就使用了很多一樣的技術。感覺RISC做到了極至就都一樣了。 |
評分
-
查看全部評分
|