|
MIPS vs ARM的比較(從網路整理的資料)
[前言]' o" K( P1 f) [8 h4 z( `
這是一個幾年以來我一直想做的“功課”,之所以稱之為“功課”,而不能說是“文章”,是因為我覺得自己的知識還遠遠不夠,不管是深度還是廣度,也 不管是全面性還是透徹性,我都不敢企及。但是我實在是很想把我的一些理解寫出來,然後能和其他朋友一起探討,糾正錯誤,補充完善,最終目的就是要加深對 ARM和MIPS 這兩種CPU架構的認識。! P# a0 D* a- E' o0 j$ M
這裡的目前最多只能算個草稿吧,待以後不斷的補充。
- ^# X& D; o0 M4 D0 ]! h' S2 r( [
B' C$ `, j9 |# Z" c+ }8 O[正文]+ I1 @4 r: j/ @( a; q
1.流水線結構 pipeline
* C9 m. f2 l! D/ g% @ - MIPS 是最簡單的體系結構之一,所以使大學喜歡選擇 MIPS 體系結構來介紹計算體系結構課程。3 B1 n. @. @4 }
- ARM has barrel shifter. ]. S/ j" M9 s! i9 g, |
shifter是兩面性的,一方面它可以提高數學邏輯運算速度,另一方面它也增加了硬體的複雜性。所以和可以完成同樣功能的adder/shift register相比,效率更高,但是也佔用更多的晶片面積。
# i: s, t& U( r# ]
4 J' X0 N1 |' B - MIPS have "branch delay slot" and "load delay slot"
! k: ]% I' X* J5 o8 u MIPS使用編譯器來解決上面的兩個問題。因為MIPS最初的設計思想就是使用簡單的RISC硬體,然後靠編譯器及其他軟體技術,來達成RISC的完整概念。
* ?$ J1 M5 p8 S5 U s# s
4 T/ w: ~7 H( }. T- `: {: ~0 U2.指令結構 instruction
. s' X1 G" _8 z) a0 J% r5 Q - MIPS have 32bit and 64bit architecture,but ARM only have 32bit architecture
* \. y' f2 C, W9 n ARM11 局部64位元
' g7 Y8 i' H& Z, g+ t - MIPS是開放式的架構,用戶可以在開發的內核中加入自己的指令,
* g5 [$ [) \% y) e0 ^7 i0 q - ARM has 4-bit condition code in every instruction) r0 I+ d6 F$ H" Z
ARM 在這一點很像x86。MIPS在MIPS IV也加入"conditional move"指令,來提高pipeline的效率。
/ X! H* q% k: T2 U - ARM has pre- and post-increment addressing modes
9 y4 r2 R g, ~ auto-increment/decrement on load/store instructions9 D0 o1 K9 j+ Y' @& k
- 在節省代碼空間方面,MIPS16 很類似ARM Thumb: e: x' K: @" y" M; r0 G
( ?% d# ~ N9 {8 h* `. V2 f" p3.寄存器 register
9 e# l- {) W; o) g( B7 |; A -由於MIPS內核中有32個註冊器(Register),而ARM只有16個,這種結構設計上的先天優勢,決定了在同等性能表現下,MIPS的晶片面積和功耗會更小。5 Y6 x) j7 \+ G: h
- ARM 有一組特殊用途寄存器cp0-cp15,可以使用MCR,MRC等指令控制;相對應的,MIPS也有cp0 0-30,使用mfc0,mtc0 指令控制。
9 e( m! f# T/ O, f& Z( E! F) f
$ s8 T$ G J2 J# p" }) K1 l - Register banking in ARM. r8-r12 FIQ mode;r13:SP r14R+ G- Q' r7 j8 \
感覺不出banked register有什麼好處。
6 W9 ` E2 n: E) O; D
+ W: [, ~0 N8 u3 X+ h+ K - MIPS has a hard-wired-to-zero register ,but ARM not& s( y: Y7 [" o
MIPS use register $0 for Zero1 i) g& E9 y) r
/ L; H G6 s& B. R& q4 O' N
4.位址空間 address space
1 O2 |- f- |9 N - MIPS 起始位址是0xbfc00000,會有4Mbyte的大小限制,但一般MIPS晶片都會採取一些方法解決這個問題。2 P q; N" V, D/ v
ARM沒有這種問題。$ N) a) |; U d; _ P
MIPS24K 起始位址改到了0xbf000000,現在有16Mbyte的空間了。6 Z5 D# F. S' J
+ O9 A9 ?6 C s" R& T" ?; Z - MIPS don't have to turn paging on to enable the cache. B$ j* k% C/ t# o- x4 ]
MIPS have the address space for both cache and un-cache5 a- `3 H& @* y1 c
but ARM need enable/disable cache$ X) p0 x0 @0 O A5 G# N! H8 n
6 G) d% A% W# y$ O( Q1 D
5.功能 function, k8 U: W0 Q+ X9 e) l0 R, [) I' M! H
- Float point: MIPS64 has.4 x) H8 _) a& ?' [+ S \6 x
ARM's support for FP is limited, and usually not included, and it is a 32 bit architecture" R/ \8 j) ?- {+ |2 A5 Z0 V
- ARM use JTAG,MIPS use EJTAG。Debug工具一般兩種都支援。使用起來感覺差不多。% w6 f+ ~7 v# ]# [9 y
- J8 G& a$ `( b6 F0 z) k$ z
6.性能 performance8 ~6 R& z" {! y3 }# e
- 具體性能比較,因為差異性太大,所以很難分出誰好誰壞。從個人經驗來講 MIPS4k和ARM9基本上是同一個級別的,但ARM9性能似乎要比MIPS4K好。
' C0 B. I) Z; w) H5 N% h9 o7 K1 } 同樣是32bit的MIPS24K性能上比MIPS4K有很大提升,也應該比ARM9要好些。
7 ~& b; {2 K! e- h5 {/ q 因為沒有用過ARM11和MIPS34K的晶片,沒法比較,但感覺這兩個似乎是一個級別的。' l3 l& j8 }% L% w- T: k
( T9 H0 M( g- Q
7.應用7 p: p4 p4 F9 H) \- p
- 在1000MHz以上的應用,很難找到採用ARM架構的產品。6 x. N2 O* Z+ r @7 Q
MIPS架構用在200MHz或者是266MHz以下的應用比較少,而這恰恰是ARM的主攻市場。* H- t% X- G" T( l. _ p
- ARM 在手機等可擕式領域,MIPS 在住宅閘道、線纜數據機、線纜機上盒等
' o# _% ]% f7 d, D* z, j w+ Z h7 b - ARM 採用硬核授權;MIPS 採用軟核授權,使用者可以自己配置,做自己的產品。
9 A M% n/ H, `1 i1 \
E- @8 T* a8 D9 ]' r/ G5 C# J5 k8.未來發展
% R7 f* `. S6 d: k' l - ARM的下一代走向多內核結構,而MIPS公司的下一代核心則轉向硬體多執行緒功能(multithreading)9 D6 s h) j9 ?1 ]* h! I' }+ a" R! z
MIPS 的multithreading 很類似Intel 的 HyperThreading技術。從現在的發展來看,多內核占上風。" U3 Q3 g* Q% Y# {8 j) G% z
' w3 o. G' A' w) z& s% C
9.總結' [' ]) l0 D7 n6 [
自己感覺ARM和MIPS在一開始的RISC的設計上有很多不同,但隨著技術的發展,各自揚長避短,好的技術大家都會使用。比如ARM11和MIPS R1000就使用了很多一樣的技術。感覺RISC做到了極至就都一樣了。 |
評分
-
查看全部評分
|