X86 : 不够优雅,但是市场成功,属CISC类,但是也融合了RISC的特点。在PC方面是无疑的王者,目前正想在移动领域跟ARM争个你死我活;
ARM:也是RISC型,相当于移动领域的x86,几乎所有的移动设备芯片都是基于ARM架构。从经营模式来看,ARM跟x86有着很大的区别:前者是可授权IP供其他IC设计公司设计基于此内核的IC,比如高通,博通等一系列公司的手机IC都是有ARM的IP授权。而且ARM不直接生产IC,是fabless的IC设计者。x86的Intel,虽然有个AMD小弟,但是基本上他一家人在搞,芯片工艺也搞,是个彻头彻尾的大巨头。X86,依靠强有力的工厂,前后端联合调优,用tick-tock的稳定,强悍路标,强势控制产业链,获取价值链上最丰厚的那部分利润。
ARM, 靠IP授权的商业模式,且技术上走与Intel差异化路线,加上一些些运气(踏对了手机这条路,谢谢TI-Nokia,Apple,Samsung for bigLittle)走小而美的路线,但是凭借已经形成巨大的生态系统,占据优势。
MIPS,本有机会很帅,但是对指令集控制松散,导致生态系统分裂,没有形成合力,最终被市场抛弃。
Power,没有形成规模效益,也没有进入良性循环周期,我的预测是Power8会是最后一颗芯片,就这样结束。1流水线结构 pipeline
– MIPS 是最简单的体系结构之一,所以使大学喜欢选择 MIPS 体系结构来介绍计算体系结构课程。
– ARM has barrel shifter
shifter是两面性的,一方面它可以提高数学逻辑运算速度,另一方面它也增加了硬件的复杂性。所以和可以完成同样功能的adder/shift register相比,效率更高,但是也占用更多的芯片面积。
– MIPS have “branch delay slot” and “load delay slot”
MIPS使用编译器来解决上面的两个问题。因为MIPS最初的设计思想就是使用简单的RISC硬体,然后靠编译器及其他软体技术,来达成RISC的完整概念。
2指令结构 instruction
– MIPS have 32bit and 64bit architecture,but ARM only have 32bit architecture
ARM11 局部64位
– MIPS是开放式的架构,用户可以在开发的内核中加入自己的指令,
– ARM has 4-bit condition code in every instruction
ARM 在这一点很像x86。MIPS在MIPS IV也加入”conditional move”指令,来提高pipeline的效率。
– ARM has pre- and post-increment addressing modes
auto-increment/decrement on load/store instructions
– 在节省代码空间方面,MIPS16 很类似ARM Thumb
3寄存器 register
-由于MIPS内核中有32个寄存器(Register),而ARM只有16个,这种结构设计上的先天优势,决定了在同等性能表现下,MIPS的芯片面积和功耗会更小。
– ARM 有一组特殊用途寄存器cp0-cp15,可以使用MCR,MRC等指令控制;相对应的,MIPS也有cp0 0-30,使用mfc0,mtc0 指令控制。
– Register banking in ARM r8-r12 FIQ mode;r13:SP r14:LR
感觉不出banked register有什么好处。
– MIPS has a hard-wired-to-zero register ,but ARM not
MIPS use register $0 for Zero
4地址空间 address space
– MIPS 起始地址是0xbfc00000,会有4Mbyte的大小限制,但一般MIPS芯片都会采取一些方法解决这个问题。
ARM没有这种问题。
MIPS24K 起始地址改到了0xbf000000,现在有16Mbyte的空间了。
– MIPS don’t have to turn paging on to enable the cache
MIPS have the address space for both cache and un-cache
but ARM need enable/disable cache
5功能 function
– Float point: MIPS64 has
ARM’s support for FP is limited, and usually not included, and it is a 32 bit architecture
– ARM use JTAG,MIPS use EJTAG。Debug工具一般两种都支持。使用起来感觉差不多。
6性能 performance
– 具体性能比较,因为差异性太大,所以很难分出谁好谁坏。从个人经验来讲 MIPS4k和ARM9基本上是同一个级别的,但ARM9性能似乎要比MIPS4K好。
同样是32bit的MIPS24K性能上比MIPS4K有很大提升,也应该比ARM9要好些。
因为没有用过ARM11和MIPS34K的芯片,没法比较,但感觉这两个似乎是一个级别的。
Cortex-A8和 MIPS 74K都是最新的设计,应该性能也差不多。
7应用
– 在1000MHz以上的应用,很难找到采用ARM架构的产品。
MIPS架构用在200MHz或者是266MHz以下的应用比较少,而这恰恰是ARM的主攻市场。
– ARM 由于功耗小,普遍用在在手机/PDA等便携式消费电子领域; MIPS 在住宅网关、线缆调制解调器、线缆机顶盒等,由于MIPS 多核的发展,现在大型网关设备也多用它。
– ARM 采用硬核授权;MIPS 采用软核授权,用户可以自己配置,做自己的产品。同:
MIPS和ARM都由Berkeley risc演变而来。
均采用load/store构架,即数据总是从register中load出来运算后再store进register里。不能直接把数据直接从memory中load出来处理,得分两步走。。。好处就是大大降低了decode的complexity。
addressing mode简单
指令数量少
大量的register bank
异:
risc里有些特性被ARM reject掉了。
delay slot,这个在single issue的pipeline结构下是没问题的,通常由compiler来寻找一条independent的指令就好了。但随着pipeline stage变长,super-scalar的应用,需要填充的slot不再只是一个,这就给调度带来了难度,在这种情况下exception也很难处理。所以为了简化复杂度,很多处理器都不再采用了。
register windows,这个主要适用于多线程任务,为了支持context switch。这个需要巨多的register,但从处理单元的角度去看,他每次总是只能看到32个register,即window,为当前线程所访问的register。当线程被切换,它所对应的32个register被置于shadow状态,而另外一组register被activate。很显然这个能明显提高性能,问题是巨多的register意味着large area以及巨多的功耗。ARM是支持多线程的,但不清楚具体采用的哪种implementation。
single cycle execution,ARM的data processing 指令大部分都是一个周期执行,但是load/store指令以及乘除square root之类的指令都需要多个cycle。应该是arm架构吧,看你怎么改法。
1,如果是换导航仪肯定可以;这区别就和买个intel的cpu电脑或amd的cpu电脑一样;
2,如果是方案改麻烦大了;首先得看导航软件有没有arm版本,然后需要重新搞芯片做板子,搞固件,一大堆麻烦事;
3,建议改成arm版本;[TOC]
ARMv7 含16位和32位两个指令集;
ARMv8 含32位和64位两个指令集,ARM没有64位技术,它是在 MIPS64 架构上增加了ARMv7架构的技术;
ARM64 其实只是 ARMv8的一半,只含64位指令集;
A53 开始之后,都是ARM64。
ARMv8指令集分为Aarch64和Aarch32。后者与ARMv7基本相同,但是多了一些vfp的指令,或者以前的软件模拟实现改为硬件支持,可以说是靠着后者实现对Aarch32的向前兼容。
arm7版本可以安装在armv7架构的设备上支持32位和16位指令集的设备;
arm8版本可以安装在armv8架构的设备上支持64位和32位指令集的设备;
arm64版本只能安装在纯64位的arm架构的设备上。
出于低功耗、封装限制等种种原因,以前的一些ARM处理器没有独立的硬件浮点运算单元,需要手写软件来实现浮点运算。有与没有之间产生了两个不同的嵌入式应用程序二进制接口(EABI):软浮点与矢量浮点(VFP)。但是软浮点(soft float)和硬浮点(hard float)之间有向前兼容却没有向后兼容的能力,也就是软浮点的二进制接口(EABI)仍然可以用于有硬浮点计算单元的ARM处理器。
在ARM体系架构内核中,有些有浮点运算单元(fpu),有些没有,在有fpu的情况下,就可以通过gcc编译的选项-mfloat-abi来指定使用哪种,有如下三种值:
brook_linux_arm5
brook_linux_arm6
brook_linux_arm7
brook_linux_arm64
brook_linux_mips
brook_linux_mips_softfloat
brook_linux_mipsle
brook_linux_mipsle_softfloat
brook_linux_mips64
brook_linux_mips64_softfloat
brook_linux_mips64le
brook_linux_mips64le_softfloat
ARM体系结构 : >MIPS架构(英语:MIPS architecture,为Microprocessor without interlocked piped stages architecture的缩写,亦为Millions of Instructions Per Second的相关语),是一种采取精简指令集(RISC)的处理器架构,1981年出现,由MIPS科技公司开发并授权,广泛被使用在许多电子产品、网络设备、个人娱乐装置与商业装置上。最早的MIPS架构是32位,最新的版本已经变成64位。
欢迎分享,转载请注明来源:内存溢出
评论列表(0条)