ARM和MIPS分析与比较.
- 格式:doc
- 大小:16.00 KB
- 文档页数:3
一文讲解单片机、ARM、MUC、DSP、FPGA、嵌入式错综复杂的关系!首先,“嵌入式”这是个概念,准确的定义没有,各个书上都有各自的定义。
但是主要思想是一样的,就是相比较PC机这种通用系统来说,嵌入式系统是个专用系统,结构精简,在硬件和软件上都只保留需要的部分,而将不需要的部分裁去。
所以嵌入式系统一般都具有便携、低功耗、性能单一等特性。
然后,MCU、DSP、FPGA这些都属于嵌入式系统的范畴,是为了实现某一目的而使用的工具。
MCU俗称”单片机“经过这么多年的发展,早已不单单只有普林斯顿结构的51了,性能也已得到了很大的提升。
因为MCU必须顺序执行程序,所以适于做控制,较多地应用于工业。
而ARM本是一家专门设计MCU的公司,由于技术先进加上策略得当,这两年单片机市场份额占有率巨大。
ARM的单片机有很多种类,从低端M0(小家电)到高端A8、A9(手机、平板电脑)都很吃香,所以也不是ARM的单片机一定要上系统,关键看应用场合。
DSP叫做数字信号处理器,它的结构与MCU不同,加快了运算速度,突出了运算能力。
可以把它看成一个超级快的MCU。
低端的DSP,如C2000系列,主要是用在电机控制上,不过TI公司好像称其为DSC(数字信号控制器)一个介于MCU和DSP之间的东西。
高端的DSP,如C5000/C6000系列,一般都是做视频图像处理和通信设备这些需要大量运算的地方。
FPGA叫做现场可编程逻辑阵列,本身没有什么功能,就像一张白纸,想要它有什么功能完全靠编程人员设计(它的所有过程都是硬件,包括VHDL和Verilog HDL程序设计也是硬件范畴,一般称之为编写“逻辑”。
)。
如果你够NB,你可以把它变成MCU,也可以变成DSP。
由于MCU和DSP的内部结构都是设计好的,所以只能通过软件编程来进行顺序处理,而FPGA则可以并行处理和顺序处理,所以比较而言速度最快。
那么为什么MCU、DSP和FPGA会同时存在呢?那是因为MCU、DSP的内部结构都是由IC设计人员精心设计的,在完成相同功能时功耗和价钱都比FPGA要低的多。
史上最全!常见的嵌⼊式处理器对⽐分析...⽂末还有精彩福利哦!嵌⼊式处理器简介嵌⼊式处理器是嵌⼊式系统的核⼼,是控制、辅助系统运⾏的硬件单元。
范围极其⼴阔,从最初的4位处理器,⽬前仍在⼤规模应⽤的8位单⽚机,到最新的受到⼴泛青睐的32位,64位嵌⼊式CPU。
⾃微处理器的问世以来,嵌⼊式系统得到了飞速的发展,嵌⼊式处理器毫⽆疑问是嵌⼊式系统的核⼼部分,嵌⼊式处理器直接关系到整个嵌⼊式系统的性能。
通常情况下嵌⼊式处理器被认为是对嵌⼊式系统中运算和控制核⼼器件总的称谓。
世界上具有嵌⼊式功能特点的处理器已经超过1000种,流⾏体系结构包括MCU,MPU等30多个系列。
鉴于嵌⼊式系统⼴阔的发展前景,很多半导体制造商都⼤规模⽣产嵌⼊式处理器,并且公司⾃主设计处理器也已经成为了未来嵌⼊式领域的⼀⼤趋势,其中从单⽚机、DSP到FPGA有着各式各样的品种,速度越来越快,性能越来越强,价格也越来越低。
嵌⼊式处理器的寻址空间可以从64kB到16MB,处理速度最快可以达到2000 MIPS,封装从8个引脚到144个引脚不等。
特点嵌⼊式微处理器与普通台式计算机的微处理器设计在基本原理上是相似的,但是⼯作稳定性更⾼,功耗较⼩,对环境(如温度、湿度、电磁场、振动等)的适应能⼒强,体积更⼩,且集成的功能较多。
在桌⾯计算机领域,对处理器进⾏⽐较时的主要指标就是计算速度,从33MHz主频的386计算机到3GHz主频的PenTIum 4处理器,速度的提升是⽤户最主要关⼼的变化,但在嵌⼊式领域,情况则完全不同。
嵌⼊式处理器的选择必须根据设计的需求,在性能、功耗、功能、尺⼨和封装形式、SoC程度、成本、商业考虑等等诸多因素之中进⾏折中,择优选择。
嵌⼊式处理器做为嵌⼊式系统的核⼼,嵌⼊式处理器担负着控制、系统⼯作的重要任务,使宿主设备功能智能化、灵活设计和操作简便。
为合理⾼效的完成这些任务,⼀般说,嵌⼊式处理器具有以下特点:很强的实时多任务⽀持能⼒,存储区保护功能,可扩展的微处理器结构,较强的中断处理能⼒,低功耗。
ARM和MIPS架构ARM体系1、历史1978年12⽉5⽇,物理学家赫尔曼·豪泽(Hermann Hauser)和⼯程师Chris Curry,在英国剑桥创办了CPU公司(Cambridge Processing Unit),主要业务是为当地市场供应电⼦设备。
1979年,CPU公司改名为Acorn计算机公司。
起初,Acorn公司打算使⽤摩托罗拉公司的16位芯⽚,但是发现这种芯⽚太慢也太贵。
"⼀台售价500英镑的机器,不可能使⽤价格100英镑的CPU!"他们转⽽向Intel公司索要80286芯⽚的设计资料,但是遭到拒绝,于是被迫⾃⾏研发。
(Intel会不会为当年的这个决定后悔万分?)1985年,Roger Wilson和Steve Furber设计了他们⾃⼰的第⼀代32位、6M Hz的处理器,⽤它做出了⼀台RISC指令集的计算机,简称ARM(Acorn RISC Machine)。
这就是ARM这个名字的由来。
RISC的全称是"精简指令集计算机"(reduced instruction set computer),它⽀持的指令⽐较简单,所以功耗⼩、价格便宜,特别合适移动设备。
早期使⽤ARM芯⽚的典型设备,就是苹果公司的⽜顿PDA。
1990年11⽉27⽇,Acorn公司正式改组为ARM计算机公司。
苹果公司出资150万英镑,芯⽚⼚商VLSI出资25万英镑,Acorn本⾝则以150万英镑的知识产权和12名⼯程师⼊股。
公司的办公地点⾮常简陋,就是⼀个⾕仓。
公司成⽴后,业务⼀度很不景⽓,⼯程师们⼈⼼惶惶,担⼼将要失业。
由于缺乏资⾦,ARM做出了⼀个意义深远的决定:⾃⼰不制造芯⽚,只将芯⽚的设计⽅案授权(licensing)给其他公司,由它们来⽣产。
正是这个模式,最终使得ARM芯⽚遍地开花,将封闭设计的Intel公司置于"⼈民战争"的汪洋⼤海。
CPU ⇒MPU ⇒MCU1 CPU(Central Processing Unit,中央处理器) (1)1.1 CPU的组成 (1)1.2 CPU的工作原理 (1)2 MPU(Microprocessor Unit,微处理器) (3)2.1 MPU的组成 (3)2.2 MPU的分类 (3)2.3 MPU的体系结构:冯.诺伊曼结构和哈佛结构 (3)2.4 MPU的典型代表:DSP(Digital Signal Processor,数字信号处理器) (4)3 MCU(Microcontroller Unit,微控制器/单片机) (5)3.1 MCU的概念 (5)3.2 MCU的概述 (5)3.3 MCU的分类 (6)3.4 MCU的架构:CISC架构和RISC架构 (6)3.5 常见的MCU (6)3.6 MCU的典型代表:ARM (9)4 CPLD(Complex Programmable Logic Device,复杂可编程逻辑器件) (10)5 FPGA(Field Programmable Gate Array,现场可编程门阵列) (10)6 DSP,ARM,FPGA的区别 (10)1 CPU(Central Processing Unit,中央处理器)中央处理器(CPU)是电子计算机的主要器件之一,其功能主要是解释计算机指令及处理计算机软件中的数据。
1.1 CPU的组成CPU由运算器、控制器和寄存器及实现它们之间联系的数据、控制及状态的总线构成。
运算器:进行算术运算和逻辑运算(部件:算数逻辑单元、累加器、寄存器组、路径转换器、数据总线)。
控制器:控制程序的执行,包括对指令进行译码、寄存,并按指令要求完成所规定的操作,即指令控制、时序控制和操作控制。
复位、使能(部件:计数器、指令暂存器、指令解码器、状态暂存器、时序产生器、微操作信号发生器)。
寄存器:用来存放操作数、中间数据及结果数据。
1.2 CPU的工作原理CPU从存储器或高速缓冲存储器中取出指令,放入指令寄存器,并对指令译码,将指令分解成一系列的微操作,然后发出各种控制命令,执行微操作,从而完成一条指令的执行。
单⽚机计算性能⼤⽐拼(51,AVR,MIPS,ARM)写这篇⽂章纯属偶然,MCU benchmark有很多⽅法,且不同类型MCU benchmark⽅法完全不同,很难说谁好谁快?不过,对电⼦爱好者来说,还是挺想知道“我所⽤的MCU”计算到底多快?本⽂,就从打酱油、⾮专业、⼤⽆畏精神出发,探讨⼊门级单⽚机计算性能到底如何、如何。
单⽚机能⼲的事⼉很多啊,我通常⽤来:1、控制个灯啊、空调啊、电视啊、⼩车啊神马的。
2、⽤传感器采集个温度啊、湿度啊、电压、电流、⽔流、⼈脸啊神马的。
3、显⽰输出:液晶、OLED、数码管;声⾳;电风扇神马的。
4、超低功耗:家⾥的中央控制系统基于树莓派,不到2W功耗。
5、便携。
貌似⾃⼰做成的东西极少具有便携性。
在没有接触Arduino前都是⽤51倒腾,玩了有⼏年,觉得51是最适合电⼦爱好者⽤的芯⽚,简单、便宜、功能⾜够!但接触Arduino后才明⽩,原来还有这么个东东,⽐51先进得多,实在太好⽤了!记得学51从⼆进制地址学起,不太好懂。
后来⽤C开发经常问:“明明 c=a+b; print(c); 就⾏了,我⼲嘛要去学指令、寄存器、寻址?”⾼级语⾔屏蔽底层很多东西,让编程变得简单。
并不是基础知识没⽤,这好⽐⾼等数学这道门槛(俺数学专业),你必须弄懂基础知识体系才能理解数学世界的美妙!但如果是经济学专业,不懂数学基础知识同样可以玩⼉转经济学!你从中获得的乐趣跟你投⼊成正⽐。
所以,我⽤单⽚机并不是科班那种需要弄懂MCU每个功能、每个模块,我⽤单⽚机就接接外设,完成我的想法⽽已。
也许,只⽤到了单⽚机⼗分之⼀。
说实话,极少使⽤单⽚机计算能⼒(话说这也不是单⽚机的强项呀),但如你要做个智能⼩车、四轴飞⾏器、PID控制,那就需要⼀定的计算能⼒了。
开始,只是简单想看看单⽚机运算有多快,偶然机会跟坛友交换了⼀块chipKIT Uno32(MIPS芯⽚),就想横向⽐较⼀下不同MCU的差别,于是就有了本⽂。
Intel和AMD与x86,ARM,MIPS有什么区别?【转】这⼏个名词只能叫相关。
1. Intel是个芯⽚公司,说⽩了,主业是设计并制造CPU的(当然还有别的产品,这⾥不表),架构是x86架构,x86_64架构,和IA64安腾架构。
2. AMD也是个芯⽚公司,主业除了设计CPU(AMD不流⽚,所以没有制造)还有设计显卡(收购的ATI),AMD设计的CPU和intelx86/x86_64系列兼容。
3. x86是Intel的概念,从8086到奔腾4,都是x86架构。
AMD的K5到阿斯龙也是⼀样。
不过x86_64其实是AMD提出来的,所以也叫amd64,⽬前应⽤⼴泛。
Intel对应的64位是IA64,没有民⽤。
4. ARM可以指⼀家嵌⼊式芯⽚设计公司,也可以指该公司的架构,指令集和Intel/amd不兼容。
另外arm还有嵌⼊式的GPU Mali。
5. MIPS是个指令集,应该是由英国的Imagination持有,和ARM架构还有x86架构均不兼容。
===============================================X86 和 ARM 都是CPU设计的⼀个架构。
X86 ⽤的是复杂指令集。
ARM⽤的是精简指令集。
指令集其实就是机器码,机器码上是汇编,汇编之上是C++。
复杂指令集是在硬件层⾯上设计了很多指令,所以编程会简单些。
精简指令集是在硬件层⾯上设计的指令⽐较少,所以编程会复杂些。
除了指令集的区别,X86 和 ARM的设计理念和应⽤场景也不同。
ARM的硬件框架更加耦合,没有’桥‘的存在,所以可扩展性不好,也就是说换个硬件平台就得重新设计,但它的功耗低,所以特别适合在⼿机上⽤。
X86体系庞⼤,设计完整,历史悠久,所以他有很多第三⽅软件可以⽤,⼀个体系可以⽤在各种电脑上,可移植性强。
主机⼀般都⽤它。
Intel是在X86的推动着,他和windows在⼀起,可以说称雄电脑市场。
ARM以前和linux结盟,搞嵌⼊式,但现在因为,ANdroid的异军突起,ARM在移动端焕发新的⽣机。
Arm和mips:
1.向后兼容:MIPS基本上是完全向后兼容的,也就是MIPS32可以在MIPS64上跑,MIPS I
可以在MIPS II上跑。
而ARM指令集事实上不是完全向后兼容的,每隔一两代就要有一些变化
2.目标: MIPS最初是面向高性能科学计算的,所以在指令集设计的时候更注重速度和性能,
而非功耗和面积。
而ARM,低功耗是主旋律。
为了降低功耗、面积以及目标程序的
footprint(RISC的缺点之一就是编译出来的程序比CISC大不少)。
ARM要做很多自己的选择。
MIPS的非常简单,只有三种指令类型,加减乘除逻辑运算逻辑跳转等等都可以框进去。
ARM就非常复杂
MIPS指令很简单,格式很规整,就可以做很快(频率很高)。
这符合RISC的初衷,但是功耗可能会比较大些(和频率有关);ARM指令巨复杂,电路实现起来会比精简的指令相对复杂,当面积和功耗优先级高时,最高运行频率可能不会太高。
MIPS是高效精简指令集计算机(RISC)体系结构中最优雅的一种;即使连MIPS的竞争对手也这样认为,这可以从MIPS对于后来研制的新型体系结构比如DEC的Alpha和HP的Precision产生的强烈影响看出来。
虽然自身的优雅设计并不能保证在充满竞争的市场上长盛不衰,但是MIPS微处理器却经常能在处理器的每个技术发展阶段保持速度最快的同时保持设计的简洁。
相对的简洁对于MIPS来说是一种商业需要,MIPS起源于一个学术研究项目,该项目的设计小组连同几个半导体厂商合伙人希望能制造出芯片并拿到市场上去卖。
结果是该结构得到了工业领域内最大范围的具有影响力的制造商们的支持。
从生产专用集成电路核心(ASIC Cores)的厂家(LSI Logic,Toshiba, Philips, NEC)到生产低成本CPU的厂家(NEC, Toshiba,和IDT),从低端64位处理器生产厂家(IDT, NKK, NEC)到高端64位处理器生产厂家(NEC, Toshiba和IDT). 低端的CPU物理面积只有1.5平方毫米(在SOC系统里面肉眼很难找到).而高端的R10000处理器,第一次投放市场时可能是世界上最快的CPU,它的物理面积几乎有1平方英寸,发热近30瓦特.虽然MIPS看起来没什么优势,但是足够的销售量使其能健康发展:1997年面市的44M的MIPS CPU,绝大多数使用于嵌入式应用领域.MIPS CPU是一种RISC结构的CPU, 它产生于一个特殊的蓬勃发展的学术研究与开发时期.RISC(精简指令集计算机)是一个极有吸引力的缩写名词,与很多这类名次相似,可能遮掩的真实含义超过了它所揭示的.但是它的确对于那些在1986到1989年之间投放市场的新型CPU体系结构提供了一个有用的标识名,这些新型体系结构的非凡的性能主要归功于几年前的几个具有开创性的研究项目所产生的思想。
有人曾说:"任何在1984年以后定义的计算机体系结构都是RISC";虽然这是对于工业领域广泛使用这个缩写名词的嘲讽,但是这个说法也的确是真实的-1984年以后没有任何一款计算机能够忽视RISC先驱者们的工作。
ARM与MIPS分析与比较
2008-04-06 10:37:21 阅读474 评论0 字号:大中小
[前言]
这是一个几年以来我一直想做的“功课”,之所以称之为“功课”,而不能说是“文章”,是因为我觉得自己的知识还远远不够,不管是深度还是广度,也不管是全面性还是透彻性,我都不敢。
但是我实在是很想把我的一些理解写出来,然后能和其他朋友一起探讨,纠正错误,补充完善,最终目的就是要加深对ARM和MIPS 这两种CPU架构的认识。
这里的目前最多只能算个草稿吧,请大家不断的补充。
[正文]
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 R
感觉不出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的芯片,没法比较,但感觉这两个似乎是一个级别的。
7.应用
- 在1000MHz以上的应用,很难找到采用ARM架构的产品。
MIPS架构用在200MHz或者是266MHz以下的应用比较少,而这恰恰是ARM的主攻市场。
- ARM在手机等便携式领域,MIPS 在住宅网关、线缆调制解调器、线缆机顶盒等
- ARM采用硬核授权;MIPS 采用软核授权,用户可以自己配置,做自己的产品。
8.未来发展
- ARM的下一代走向多内核结构,而MIPS公司的下一代核心则转向硬件多线程功能
(multithreading)
MIPS 的multithreading 很类似Intel 的 HyperThreading技术。
从现在的发展来看,多内核占上风。
9.总结
自己感觉ARM和MIPS在一开始的RISC的设计上有很多不同,但随着技术的发展,各自扬长避短,好的技术大家都会使用。
比如ARM11和MIPS R1000就使用了很多一样的技术。
感觉RISC做到了极至就都一样了。