MIPSvsARM汇编指令比较
CPU架构讲解 X86、ARM、RISC、MIPS
CPU架构讲解X86、ARM、RISC、MIPS一、当前CPU的主流架构:1.X86架构采用CISC指令集(复杂指令集计算机),程序的各条指令是按顺序串行执行的,每条指令中的各个操作也是按顺序串行执行的。
2.ARM架构是一个32位的精简指令集(RISC)架构。
3.RISC-V架构是基于精简指令集计算(RISC)原理建立的开放指令集架构。
4.MIPS架构是一种采取精简指令集(RISC)的处理器架构,可支持高级语言的优化执行。
CPU架构是CPU厂商给属于同一系列的CPU产品定的一个规范,是区分不同类型CPU的重要标示。
二、目前市面上的CPU分类主要分有两大阵营:1.intel、AMD为首的复杂指令集CPU;2.IBM、ARM为首的精简指令集CPU。
两个不同品牌的CPU,其产品的架构也不相同,例如,Intel、AMD的CPU是X86架构的,而IBM的CPU是PowerPC架构,ARM是ARM架构。
三、四大主流CPU架构详解(X86、ARM、RISC、MIPS)1.X86架构X86是微处理器执行的计算机语言指令集,指一个Intel通用计算机系列的标准编号缩写,也标识一套通用的计算机指令集合。
1978年6月8日,Intel 发布了新款16位微处理器8086,也同时开创了一个新时代:X86架构诞生了。
X86指令集是Intel为其第一块16位CPU(i8086)专门开发的,IBM 1981年推出的世界第一台PC机中的CPU–i8088(i8086简化版)使用的也是X86指令。
采用CISC(Complex Instruction Set Computer,复杂指令集计算机)架构。
与采用RISC不同的是,在CISC处理器中,程序的各条指令是按顺序串行执行的,每条指令中的各个操作也是按顺序串行执行的。
顺序执行的优点是控制简单,但计算机各部分的利用率不高,执行速度慢。
随着CPU技术的不断发展,Intel陆续研制出更新型的i80386、i80486直到今天的Pentium 4系列,但为了保证电脑能继续运行以往开发的各类应用程序以保护和继承丰富的软件资源,所以Intel所生产的所有CPU仍然继续使用X86指令集。
ARM和MIPS分析与比较.
ARM与MIPS分析与比较2008-04-06 10:37:21 阅读474 评论0 字号:大中小[前言]这是一个几年以来我一直想做的“功课”,之所以称之为“功课”,而不能说是“文章”,是因为我觉得自己的知识还远远不够,不管是深度还是广度,也不管是全面性还是透彻性,我都不敢。
但是我实在是很想把我的一些理解写出来,然后能和其他朋友一起探讨,纠正错误,补充完善,最终目的就是要加深对ARM和MIPS 这两种CPU架构的认识。
这里的目前最多只能算个草稿吧,请大家不断的补充。
[正文]1.流水线结构 pipeline- MIPS 是最简单的体系结构之一,所以使大学喜欢选择 MIPS 体系结构来介绍计算体系结构课程。
- ARM has barrel shiftershifter是两面性的,一方面它可以提高数学逻辑运算速度,另一方面它也增加了硬件的复杂性。
所以和可以完成同样功能的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 architectureARM11 局部64位- MIPS是开放式的架构,用户可以在开发的内核中加入自己的指令,- ARM has 4-bit condition code in every instructionARM 在这一点很像x86。
MIPS在MIPS IV也加入"conditional move"指令,来提高pipeline的效率。
ARM和MIPS架构
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公司置于"⼈民战争"的汪洋⼤海。
MIPS 指令系统和汇编语言
其中 A1 为目的操作数地址,A2 为源操作数地址。 指令的含义:(A1)OP(A2)→A1。 (3)一地址指令 一地址指令顾名思义只有一个显地址,它的指令格式为: OP A1
一地址指令只有一个地址, 那么另一个操作数来自何方呢?指令中虽未明显给出,但按事 先约定,这个隐含的操作数就放在一个专门的寄存器中。因为这个寄存器在连续性运算时,保 存着多条指令连续操作的累计结果,故称为累加寄存器(AC) 。 指令的含义:(AC)OP(A1)→AC (4)零地址指令 零地址指令格式中只有操作码字段,没有地址码字段,其格式为: OP 零地址的运算类指令仅用在堆栈计算机中的。 堆栈计算机没有一般计算机中必备的通用寄 存器,因此堆栈就成为提供操作数和保存运算结果的唯一场所。通常,参加运算的两个操作数 隐含地从堆栈顶部(栈顶和次栈顶单元)弹出,送到运算器中进行运算,运算的结果再隐含地 压入堆栈中。对于同一个问题,用三地址指令编写的程序最短,但指令长度(程序存储量)最 长;而用二、一、零地址指令来编写程序,程序的长度一个比一个长,但指令的长度一个比一 个短。
作码结构等,是一个很复杂的问题,它与计算机系统结构、数据表示方法、指令功能设计等都 密切相关。
指令的基本格式
一条指令就是机器语言的一个语句, 它是一组有意义的二进制代码, 指令的基本格式如下: 操作码字段 地址码字段
其中操作码指明了指令的操作性质及功能,地址码则给出了操作数的地址。 指令的长度是指一条指令中所包含的二进制代码的位数, 指令长度与机器字长没有固定的 关系,它可以等于机器字长,也可以大于或小于机器字长。通常,把指令长度等于机器字长的 指令称为单字长指令; 指令长度等于半个机器字长的指令称为半字长指令;指令长度等于两个 机器字长的指令称为双字长指令。 在一个指令系统中,若所有指令的长度都是相等的,称为定长指令字结构。定长结构指令 系统控制简单,但不够灵活。若各种指令的长度随指令功能而异,就称为变长指令字结构。现 代计算机广泛采用变长指令字结构,变长结构指令系统灵活,但指令的控制较复杂。 计算机执行一条指令所需要的全部信息都必须包含在指令中。 对于一般的双操作数运算类 指令来说,除去操作码之外,地址码字段中应包含以下信息: 第一操作数地址。 第二操作数地址。 操作结果存放地址。 这些信息可以在指令中明显的给出,称为显地址;也可以依照某种事先的约定,用隐含的 方式给出,称为隐地址。所以,从地址结构的角度可以分为三地址指令、二地址指令、一地址 指令和零地址指令。 (1)三地址指令 三地址指令格式为: OP A1 A2 A3
MIPS-VZ与ARMv8-M CMSE安全大比拼
MIPS-VZ与ARMv8-M CMSE安全大比拼概述ARMv8-M安全特性扩展(CMSE)是基于Trust-zone(TZ)技术。
类似于其他基于TZ的系统,他们都存在一个安全的空间和一个不安全的空间。
这意味着所有受保护的代码必须相互信任,因为它们的执行会共享同一段同属安全区域的地址空间。
MIPS-VZ采用的是基于硬件的CPU虚拟化技术,可以实现多个执行域,每个域都是独立的且是彼此间受保护的。
这样就有一个好处,即受保护的代码不需要信任其他代码,因为它们都拥有私有执行域。
MIPS-VZ架构最多支持255个独立的域,某些特定的CPU可能实现较少数目的域。
执行模式ARMv8-M CMSE和MIPS-VZ增加了新的执行模式来区分对待不同的代码,对于绝对信任的代码则赋予更多权限,对于其他非信任代码则使用较低的执行权限。
ARMv8-M在NonSecure-Handler和NonSecure-Thread(较低信任度)状态的基础上增加了Secure-Handler和Secure-Thread(较高信任度)执行模式。
与之相似的是MIPS-VZ在Guest-Kernel和Guest-User(信任度最低)模式的基础上增加了Root-Kernel(信任度最高)和Root-User执行模式。
对于ARMv8-M CMSE和MIPS-VZ模型我们可以等价来看:MIPS架构同样设置了一个安全域,除此之外还提供多个“正常(Normal)”执行域,各个域彼此相互隔离。
内存管理ARMv8-M CMSE采用两个模块来解决内存访问问题,即SAU(Security Attribute Unit,安全属性单元)和MPU(Memory Protection Unit,内存保护单元),分别作为安全分区和非安全分区。
SAU解决了安全/非安全模式下内存访问问题,然后MPU单元负责各自安全模式访问特权级问题。
MIPS-VZ采用MMU(Memory Management Unit,存储器管理单元),并有两种配置方式:1对于大型系统采用二级TLB设置。
ARM,PPC,MIPS的选型比较
常用嵌入式处理器的比较与选型嵌入式处理器的种类:∙嵌入式微控制器∙嵌入式微处理器∙嵌入式DSP处理器∙嵌入式片上系统(SOC)∙FPGA处理器嵌入式微处理器的主要类别:Power PC, 68000, MIPS, ARMARM, MIPS, Power PC的比较(摘自某论坛):“ARM面向的低端消费类市场,拼的是功耗;PowerPC面向的是中高端市场,比的是性能,好像还没看到谁的手机是PowerPC 的,也没有看到谁家企业级以上的交换机是用ARM做的。
如果说ARM跟MIPS有得比拼倒还现实些。
”“ARM跟MIPS有相同的定位,MIPS也有很多用于消费电子的处理器。
”“MIPS的主要立足点是性能,而ARM好象更多是偏向于低功耗。
”“很多SOC的核都是MIPS的,比如有无线AP的SOC就是用MIPS的。
”“ARM 和PowerPC 在功能和层次上有较大差别,面向的领域不同,但是Power作为一种体系结构也开始向嵌入式领域扩散了,IBM,Freescale等公司为首成立的PowerPC联盟就开始做这方面的工作,但是我看PowerPC 的结构在尤其在功耗方面的束缚可能导致其在嵌入式领域没有如ARM那样大的伸缩性。
MIPS则在很多方面和ARM正面竞争,在性能方面互有优劣。
单纯从处理器体系结构的角度来讲,他们只有设计理念的差别,没有好坏的区别。
”“PowerPC在是嵌入式领域的应用也是在中高端的吧,不在消费领域,比如企业级以上的交换机,大机架上铲平,对功耗应该是考虑次要的,这类产品都是由单独的AC/DC的电源,而且机箱中一般都有风扇。
所以功耗应该不是问题。
而MIPS的嵌入产品,既有面向高端的,比如Cavium的MIPS多核处理器,携带2-4个1Giga的以太控制器,也有消费类的,如基于MIPS4K 核的SOC。
我知道的ARM都是面向消费电子的,不知道是否也有高端的。
”ARM在消费品领域的优势非常明显,如此流行的原因我认为有三个方面:1.价格便宜2.配套IP完备3.集成使用方便至于性能和低功耗方面,ARM要弱于PowerPC。
ARM DSP X86 POWERPC MIPS FPGA简介
ARM DSP X86 POWERPC MIPS FPGA 简介ARM:RISC(哈系),基于Load/Store的内存访问方式,长度固定的指令,流水线结构(RISC指令都是固定长度的,这也导致指令编码中会有较多的浪费,使得程序空间变大)。
基于ARM技术的微处理器应用约占据了32位RISC微处理器75%以上的市场份额,具有比较强的事务管理功能,可以用来跑界面以及应用程序等,其优势主要体现在控制方面。
其可以做的功耗很低,很精简,因此适合没有固定电源,使用电池供电的移动设备。
DSP:哈佛设计,数据总线和地址总线分开,使程序和数据分别存储在两个分开的空间,允许取指令和执行指令完全重叠。
强大数据处理能力和高运行速度,主要是用来计算的,比如进行加密解密、调制解调等,优势是强大的数据处理能力和较高的运行速度X86:CISC(冯系,长度不定,译码复杂),适合于PC/Server POWERPC:PowerPC是一种精简指令集(RISC)架构(哈系)的中央处理器(CPU),与ARM相比,具有超高的性能(MIPS,MillionInstructionsPerSecond的缩写,每秒处理的百万级的机器语言指令数),强大的数据吞吐量(内存DDR),稳定性,可靠性(工业级)。
偏向于向实际应用倾斜,比如有功能强大也让人头痛的移位指令、旋转指令。
MIPS:属于RISC架构,性能可以做得很高,因此在专用系统中比较好用。
另外MIPS属于大端(BigEndian,低地址存高位),与网络字节序相同,减少了转换字节序的开销。
与其它的RISC构架不同,比如delayslot(对新手来说相当的难),cache管理,TLB管理都需要很繁琐的软件配合FPGA:可以用VHDL或verilogHDL来编程,灵活性强,由于能够进行编程、除错、再编程和重复操作,因此可以充分地进行设计开发和验证。
当电路有少量改动时,更能显示出FPGA的优势,其现场编程能力可以延长产品在市场上。
mips是什么意思
mips是什么意思MIPS是什么意思?摘要:MIPS(Microprocessor without Interlocked Pipeline Stages)是一种流行的指令集架构(ISA),被广泛用于早期计算机和嵌入式系统。
本文将探讨MIPS的意思、历史及用途,以及与其他指令集架构的比较和优势。
第一部分:引言MIPS是一种指令集架构,它定义了计算机对应使用的机器语言,以及处理器执行这些指令的方式。
MIPS最初于1981年由美国加州大学伯克利分校的研究人员推出,并逐渐成为广泛采用的指令集架构之一。
第二部分:MIPS的历史MIPS最初是作为一种基于RISC(Reduced Instruction Set Computing)原则的指令集架构而设计的。
RISC架构的设计思想是将指令集精简,提高处理器性能。
在第一版MIPS架构中,只有32个指令,相较于当时主流的复杂指令集计算机(CISC)而言,MIPS具备了更高的效率和性能。
不久后,MIPS架构迅速得到了业界的认可,多家计算机厂商开始采用MIPS架构设计和生产处理器。
许多首个商用RISC处理器都基于MIPS架构。
其简单而高效的设计理念,使得MIPS成为当时最受欢迎的指令集架构之一。
2000年,MIPS Technologies成为一家独立的半导体公司,并推出了更多适用于嵌入式系统的MIPS处理器。
如今,MIPS架构已成为广泛使用于各种嵌入式领域的首选架构。
第三部分:MIPS的应用领域MIPS架构最常见的应用领域是嵌入式系统。
例如,路由器、智能手机、数字电视和无线通信设备等都经常采用MIPS架构的处理器。
与其他指令集架构相比,MIPS的简洁和高效率使得其在这些领域中表现出色。
此外,MIPS也被广泛应用于教育和研究领域。
因为MIPS指令集相对简单且易于理解,学生和研究人员常常使用MIPS作为教学和研究的工具。
许多计算机体系结构的课程都会涵盖MIPS。
第四部分:MIPS与其他指令集架构的比较与CISC指令集架构相比,MIPS具有以下优势:1. 简单性:MIPS指令集非常简洁,只有少量的指令类型,易于理解和实现。
嵌入式处理器MIPS和ARM
嵌入式处理器MIPS和ARM作者:姚卫国来源:《环球市场信息导报》2012年第02期以嵌入式计算机技术为核心的嵌入式系统是继网络技术之后,IT领域新的技术发展方向。
由于嵌入式系统具有体积小、性能强、功耗低、可靠性高以及面向行业具体应用等突出特征,目前广泛的应用于军事国防、消费电子、信息家电、网络通信、工业控制等各个领域。
日常生活中,各种电子手表、电话、手机、个人数字助理(PDA)、洗衣机、电视机、微波炉、电饭锅、空调等都有嵌入式系统的存在。
嵌入式系统的核心部件是各种类型的嵌入式处理器,就是与通用计算机的微处理器相对应的CPU。
目前,几乎每个IT硬件厂商都推出了自己的嵌入式处理器。
所有的嵌入式处理器都是基于一定的架构的,即IP核(IntellectualProperty,知识产权),生产处理器的厂家很多,但拥有IP核的屈指可数。
嵌入式系统的架构有专有架构和标准架构之分,在MCU(微控制器)产品上,像瑞萨(Renesas)、飞思卡尔(Freescale)、NEC等都拥有自己的专有IP核,而其他嵌入式处理器都是基于标准架构。
标准的嵌入式系统架构有两大体系,RISC(ReducedInstructionSetComputer,精简指令集计算机)处理器和CISC(ComplexInstructionSetComputer,复杂指令集计算机)处理器体系。
目前占主要地位的是所谓RISC处理器。
RISC体系的阵营非常广泛,如ARM、MIPS、PowerPC、ARC、Tensilica等等,都是属于RISC处理器的范畴。
本文主要从以下几个方面来介绍ARM和MIPS这两个处理器。
流水线结构:MIPS是RISC体系结构中最精巧的一种处理器,占用更小的芯片面积;并且MIPS使用编译器来解决“分支延迟槽”和“负载延迟槽”这两个问题。
因为MIPS最初的设计思想就是使用简单的RISC硬体,然后依靠编译器及其他软体技术,来达成RISC的完整概念。
Intel和AMD与x86,ARM,MIPS有什么区别?【转】
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在移动端焕发新的⽣机。
MIPS简介和ARM中的MIPS和MHz联系.
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和X86等,下面将对这几种处理器进行比较分析。
首先,ARM处理器是当前市场上最常见的一种嵌入式处理器。
ARM处理器以其低功耗、高集成度、高性能和广泛应用的特点受到了广大嵌入式系统开发者的青睐。
ARM处理器有多个系列,其中Cortex-M系列是针对低功耗的微控制器市场,Cortex-R系列是针对实时性要求较高的嵌入式应用市场,而Cortex-A系列则是面向高性能计算和移动设备市场。
其次,MIPS处理器是另一种常见的嵌入式处理器。
MIPS处理器以其简洁的指令集架构和高性能而被广泛应用于各种嵌入式系统中。
MIPS处理器在计算密集型应用和实时性要求较高的应用中表现出色,但相对于ARM处理器,MIPS处理器的应用范围较窄。
最后,X86处理器是一种广泛应用于个人计算机和服务器领域的处理器架构,但它也可以用于一些嵌入式应用。
X86处理器以其强大的性能和低成本而受到许多嵌入式系统开发者的关注。
然而,X86处理器的主要问题是功耗较高和体积较大,这在一些对功耗和尺寸有严格要求的嵌入式系统中可能不够适用。
综上所述,ARM处理器是目前市场上最常见的嵌入式处理器,并且在低功耗、高性能和广泛应用等方面具有较大优势。
MIPS处理器在一些特定的应用场景中具有一定优势,但应用范围相对较窄。
X86处理器在性能和低成本方面有优势,但在功耗和尺寸等方面存在一些局限性。
在选择嵌入式处理器时,需要根据具体应用需求和系统要求来进行比较分析,选择最适合的处理器。
MIPS和ARM的比较.
由于MIPS内核中有32个注册器(Register),而ARM只有16个,这种结构设计上的先天优势,决定了在同等性能表现下,MIPS的芯片面积和功耗会更小。
ARM有一组特殊用途寄存器cp0-cp15,可以使用MCR,MRC等指令控制;相对应的,MIPS也有cp0 0-30,使用mfc0,mtc0指令控制。
MInstructions Per Second):单字长定点指令平均执行速度Million Instructions Per Second的缩写,每秒处理的百万级的机器语言指令数。这是衡量CPU速度的一个指标。像是一个Intel 80386电脑可以每秒处理3百万到5百万机器语言指令,即我们可以说80386是3到5MIPS的CPU。MIPS只是衡量CPU性能的指标。
性能
具体性能比较,因为差异性太大,所以很难分出谁好谁坏。从个人经验来讲MIPS4k和ARM9基本上是同一个级别的,但ARM9性能似乎要比MIPS4K好。
同样是32bit的MIPS24K性能上比MIPS4K有很大提升,也应该比ARM9要好些。因为没有用过ARM11和MIPS34K的芯片,没法比较,但感觉这两个似乎是一个级别的视频解码传输:在相同主频下,MIPS架够的HDP-1250开发板比ARM架够S3C6410开发板在视频解码传输快1倍。
MIPS技术公司则是一家设计制造高性能、高档次及嵌入式32位和64位处理器的厂商。在通用方面,MIPS R系列微处理器用于构建SGI的高性能工作站、服务器和超级计算机系统。在嵌入式方面,MIPS K系列微处理器是目前仅次于ARM的用得最多的处理器之一(1999年以前MIPS是世界上用得最多的处理器),其应用领域覆盖游戏机、路由器、激光打印机、掌上电脑等各个方面。
============================
体系结构 RISC, CISC, x86, ARM, MIPS
体系结构: RISC, CISC, x86, ARM, MIPS硬件体系结构(Architecture)软件操作系统(Operating System)一、RISC与CISC1.CISC(Complex Instruction SetComputer,复杂指令集计算机)复杂指令集(CISC,Complex Instruction Set Computer)是一种微处理器指令集架构(ISA),每个指令可执行若干低阶操作,诸如从内存读取、储存、和计算操作,全部集于单一指令之中。
CISC特点:1.指令系统庞大,指令功能复杂,指令格式、寻址方式多;2.绝大多数指令需多个机器周期完成;3.各种指令都可访问存储器;4.采用微程序控制;5.有专用寄存器,少量;6.难以用优化编译技术生成高效的目标代码程序;在CISC指令集的各种指令中,大约有20%的指令会被反复使用,占整个程序代码的80%。
而余下的80%的指令却不经常使用,在程序设计中只占20%。
2.RISC(reduced instruction setcomputer,精简指令集计算机)精简指令集这种设计思路对指令数目和寻址方式都做了精简,使其实现更容易,指令并行执行程度更好,编译器的效率更高。
它能够以更快的速度执行操作。
这种设计思路最早的产生缘自于有人发现,尽管传统处理器设计了许多特性让代码编写更加便捷,但这些复杂特性需要几个指令周期才能实现,并且常常不被运行程序所采用。
此外,处理器和主内存之间运行速度的差别也变得越来越大。
在这些因素促使下,出现了一系列新技术,使处理器的指令得以流水执行,同时降低处理器访问内存的次数。
实际上在后来的发展中,RISC与CISC在竞争的过程中相互学习,现在的RISC指令集也达到数百条,运行周期也不再固定。
虽然如此,RISC设计的根本原则——针对流水线化的处理器优化—0—没有改变,而且还在遵循这种原则的基础上发展出RISC的一个并行化变种VLIW(包括Intel EPIC),就是将简短而长度统一的精简指令组合出超长指令,每次执行一条超长指令,等于并行执行多条短指令。
细说ARM、X86、X64、MIPS架构的系统及市场
细说ARM、X86、X64、MIPS架构的系统及市场ARM、X86、X64、MIPS他们是一种架构,是精简指令集合与复杂指令集合的区别。
你可以理解为处理问题的不同方式。
他们运用的不同的指令集合、寻址方式、传递方式、后台设计的处理电压、时钟等方式上有所区别。
因此,在现象上表现为哇!我的电脑好快!,唉哟喂!这电脑电池很不经用啊!。
由于针对不同的任务而设计,因此,他们的处理效率、执行方式都不同,当然也针对不同的客户。
你明白定位理论就一定明白他们为什么会存在。
你发现生活在碎片化?因此,设备的功能也专业化,手持设备存在的必要是在特定的时间解决特定的问题。
因此,你懂了。
好吧,我承认我讲的一点都不专业,但你一定明白他们谁是谁了。
还不明白?那我也没舍了下面说系统基于架构的开放的指令,巨硬编写了windows系列程序集合,我们地球人叫他为Windows 系统(程序,如果你愿加这俩字),原理就是执行CPU的一条条指令,换句话就是windows 帮我们整理成一个个界面,界面好看、简单是关键。
然后呢,我们就鼠标一点,完成任务。
对不对?好像很简单是不是?看段代码吧。
varsum,i:Integer;beginsum := 0 ;for i :=0 to 100 dobeginsum := sum+i;end;ShowMessage(IntToStr(sum));end;代码你0.2秒就看懂了,计算结果你当然知道啦。
(别计较代码优化,我承认我好好好好几年没动手写代码了)程序你明白了,那系统怎么工作的尼?首先,程序要调用类库,然后,编译器将代码转化为windows可以识别的指令,windows 再调用cpu的指令计算,最后,windows再将结果显示出来给你看,给你看。
假如有一天,你想设计一套自己的计算机语言,就是圣诞大叔的英文吧Santa,你就需要定义语法、语句,编写引导库,还有,你得编写一个编译器,告诉windows系统,你这些语句是什么意思,让他如何转换给cpu执行。
X86,MIPS和自有指令集有什么不同?
X86,MIPS和⾃有指令集有什么不同?MIPS的演化MIPS16是⼀个1997年⾯世的可选的指令集扩展,它能减少⼆进制程序尺⼨的30-40%。
实现者希望这种CPU能够在很关⼼代码尺⼨的场合中更有吸引⼒--这种场合通常就是指低成本系统。
由于只应⽤于特定实现,它是⼀个多⼚商标准:LSI, NEC和Philips都⽣产⽀持MIPS16的CPU。
在前⾯1.2节中我们说过,使MIPS⼆进制代码⽐其他架构的并不是MIPS指令集⼲的活少了, ⽽是他们的尺⼨更⼤⼀些--每个指令4字节长,相⽐之下某些CISC架构⼀般平均只有3个字节。
MIPS增加了⼀种模式,在这种模式下CPU可以对16位固定⼤⼩的指令进⾏解码。
⼤多数MIPS16指令扩展成正常的MIPS III指令,所以很明显这将是⼀个相当受限制的指令⼦集。
窍门就在于使这个⼦集对⾜够多的程序充分的进⾏⾼效编码,以使整个程序的⼤⼩得到⼤⼤的压缩。
当然,16位指令并不会使其变成⼀个16位指令集。
MIPS16 CPU是实际存在的带有32位或者64位寄存器的的CPU,MIPS16 CPU的运算也都在这些寄存器上。
MIPS16远不是⼀个完整的指令集—例如它既没有CPU控制指令,也没有浮点运算指令。
但没有关系,因为每⼀个MIPS16 CPU也必须要运⾏完整的MIPS ISA。
你能运⾏MIPS16和正常的MIPS代码的混合指令。
每个函数调⽤或者跳转-寄存器指令都能改变运⾏模式。
1.并不是MIPS发明了提供⼀种可选的使部分指令只有⼀半⼤⼩的创意。
Advanced RISC Machine(ARM)公司的Thumb版本的ARM CPU⾸先提出这个想法的。
在MIPS16中把指令地址编码成最低有效位(Least Significant Bit, LSB)模式是既⽅便⼜⾼效的。
MIPS16指令必须偶字节对齐,所以bit 0不再是指令指针(instruction pointer, 就是程序计数器PC)的组成部分了;取⽽代之的是,每条跳到奇数地址的指令开始执⾏MIPS16,每条跳到偶数地址的指令回到正常的MIPS。
x86、arm、mips架构函数调用实例分析
x86、arm、mips架构函数调用实例分析在看过了上面的几节之后,在潜意识中你想记住的东西肯定很多了。
这个时候,你需要静下心来休息一下在沉淀一下。
"Now is a good point to take a break to let this information sink in."下面,我们就看看C语言撰写的程序,在不同的CPU架构下,生成的汇编语言是怎么样的,各有什么特点,这和前面介绍的各种CPU架构的知识是如何联系的。
如果你觉得还不够,也很高兴一起来探讨一下在不同的CPU架构下,函数的调用时如何实现的,以及各有什么特点。
反汇编文件测试用的C源码如下,main.c文件:view plainprint?1. #include <stdio.h>2.3. int add(int a,int b)4. {5. return a+b;6. }7.8.9. int main(int argc,char** argv)10. {11. int a,b,c;12.13. a = 1;14. b = 2;15.16. c = fn(a,b);17.18. return c;19. }下面为编译以及反汇编的过程。
当然,ARM和MIPS的编译和反汇编是使用的交叉编译工具链。
例如在我的平台下,对应的命令就是ccarm,objdumparm和ccmips,objdumpmips。
#gcc -o main.o -c main.c#objdump -d main.o>main.a编译成x86下面的main.o文件,注意,没有链接。
然后反汇编为main_x86.a如下所示。
这里需要指出的是,下面的汇编语言并不是我们在《微机原理》课本上学习到的x86的汇编(我们称为intel汇编),而叫做AT&T汇编。
那么,什么是AT&T汇编呢?在将Unix移植到80386处理器上时,Unix圈内人士根据Unix领域的习惯和需要而定义了AT&T汇编。