http://www.cnblogs.com/xmphoenix/category/278941.html
这两个都是小型设备的处理器架构。MIPS架构的处理器多用在网关、猫、机顶盒什么的。ARM处理器用在便携设备,智能手机。这两个东西的市场几乎很少重叠,因此也谈不上对比。

普通用户关注MIPS主要还是因为我国所谓的”龙芯“。龙芯一开始抄袭MIPS,后来购买到了授权。倒也并非龙芯不想发展X86架构的桌面CPU市场或者ARM架构的移动设备市场,是因为这两家的授权太过于苛刻。X86的授权Intel已然不可能再授权。ARM是一家芯片设计公司,只能给出使用授权,不会同意让龙芯自行设计。只有MIPS才可行,MIPS的授权说白了就是随便抄随便改。

很多龙芯的支持者提出了MIPS在理论上有诸多的领先,但不要忘了ARM是一家商业公司,市场占有率高,竞争意识也非常强。几乎所有的智能手机都是ARM架构,就是最有力的证明。

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 采用软核授权,用户可以自己配置,做自己的产品。

8.未来发展 
    – ARM的下一代走向多内核结构,而MIPS公司的下一代核心则转向硬件多线程功能(multithreading) 
MIPS 的multi-threading 很类似Intel 的 HyperThreading技术。从现在的发展来看,多内核占上风。 
      2008.12.21: 其实今天看来,也不好妄自评论孰好孰坏,虽说, HT技术在intel上发展并不好(已经基本被dual core)代替,但是并不能推断说MT在MIPS上就发展不好,毕竟mips的应用场合多是嵌入式领域,而MT的功耗小芯片面积小的优势正好能发挥作用。 
     2008.12.29: MIPS也并不是只有multithreading, 其实现在很多的MIPS cpu的厂商都有multi-core的mips cpu在出,比如cavium, broadcom, infineon,国内的龙芯也有多核的产品。 
2009.6.11: MIPS的多核发展显然比ARM要好。从 Cavium,RMI,公司的产品大量的应用便可见一斑。

9.总结 
    自己感觉ARM和MIPS在一开始的RISC的设计上有很多不同,但随着技术的发展,各自扬长避短,好的技术大家都会使用。比如ARM11和MIPS R1000就使用了很多一样的技术。感觉RISC做到了极至就都一样了。

精简指令集编辑risc一般指精简指令集

本词条缺少信息栏,补充相关内容使词条更完整,还能快速升级,赶紧来编辑吧!

RISC的英文全称是Reduced Instruction Set Computer,中文是精简指令集计算机。特点是所有指令的格式都是一致的,所有指令的指令周期也是相同的,并且采用流水线技术。在中高档服务器中采用RISC指令的CPU主要有Compaq(康柏,即新惠普)公司的Alpha、HP公司的PA-RISC、IBM公司的PowerPC、MIPS公司的MIPS和SUN公司的Sparc。

目录

  • 1简介

  • 2发展背景

  •  发展分歧

  •  提出原由

  • 3优势

  • 4特征

  • 5结构特点

  • 6发展前景

1简介编辑

精简指令集,是计算机中央处理器的一种设计模式,也被称为RISC(Reduced Instruction Set Computer的缩写)。[1] 这种设计思路对指令数目和寻址方式都做了精简,使其实现更容易,指令并行执行程度更好,编译器的效率更高。常用的精简指令集微处理器包括DECAlpha、ARC、ARM、AVR、MIPS、PA-RISC、PowerArchitecture(包括PowerPC)和SPARC等。这种设计思路最早的产生缘自于有人发现,尽管传统处理器设计了许多特性让代码编写更加便捷,但这些复杂特性需要几个指令周期才能实现,并且常常不被运行程序所采用。此外,处理器和主内存之间运行速度的差别也变得越来越大。在这些因素促使下,出现了一系列新技术,使处理器的指令得以流水执行,同时降低处理器访问内存的次数。早期,这种指令集的特点是指令数目少,每条指令都采用标准字长、执行时间短、中央处理器的实现细节对于机器级程序是可见的。

2发展背景编辑

在早期的计算机业中,编译器技术尚未出现。程序是以机器语言或汇编语言完成的。为了便于编写程序,计算机架构师造出越来越复杂的指令,可以高阶程序语言直接陈述高阶功能。当时的看法是硬件比编译器更易设计,所以复杂的东西就加进硬件了。

加速复杂化的其它因素是缺乏大内存。内存小的环境中,具有极高讯息密度的程序较有利。当内存中的每一字节如此珍贵,例如储存某个完整系统只需几千字节,它使产业移向高度编码的指令、长度不等的指令、执行多个操作的指令,和执行数据传输与计算的指令。当时指令封包问题远比易解的指令重要。

那时使用磁性技术,内存不仅小,而且很慢。这是维持极高讯息密度的其它原因。借着具有极高讯息密度封包,当必须存取慢速资源时可以降低频率。

CPU只有少数缓存器的两个原因︰

CPU内部缓存器远贵于外部内存。以当时的集成电路技术水准,大缓存器集对芯片或电路板区域只是多余的浪费。

具有大数量的缓存器将需要大数量的指令位(使用珍贵的RAM)以做为缓存器指定器。

基于上述原因,CPU设计师试着令指令尽可能做更多的工作。这导致一个指令将做全部的工作︰读入两个数字,相加,并且直接在内存储存计算结果。其它版本将从内存读取两个数字,但计算结果储存在缓存器。另一个版本将从内存和缓存器各读一个数字,并再次存入内存。以此类推。这种处理器设计原理最终成为复杂指令集(CISC)。

当时的目标是给所有的指令提供所有的寻址模式,此称为「正交性」。这在 CPU 上导致了一些复杂性,但就理论上每个可能的命令都可以单独的调试(调用,be tuned),这样使得程序员能够比用简单的命令来得更快速。

这类的设计最终可以由光谱的两端来表达, 6502 在光谱的一端,而 VAX 在光谱的另一端。单价25美元的 1MHz 6502 芯片只有单一的通用缓存器, 但它的极精简的单周期内存界面(single-cycle memory interface)让一个位的操作效能和更高频率设计几乎相同,例如 4MHz Zilog Z80 在使用相同慢速的记忆芯片下(大约近似 300ns)。

发展分歧

MIPS架构与ARM架构_第1张图片精简指令集

在计算机指令系统的优化发展过程中,出现过两个截然不同的优化方向:CISC技术和RISC技术。CISC是指复杂指令系统计算机(Complex Instruction Set Computer);RISC是指精减指令系统计算机(Reduced Instruction Set Computer)。这里的计算机指令系统指的是计算机的最低层的机器指令,也就是CPU能够直接识别的指令。随着计算机系统的复杂,要求计算机指令系统的构造能使计算机的整体性能更快更稳定。最初,人们采用的优化方法是通过设置一些功能复杂的指令,把一些原来由软件实现的、常用的功能改用硬件的指令系统实现,以此来提高计算机的执行速度,这种计算机系统就被称为复杂指令系统计算机,即Complex Instruction Set Computer,简称CISC。另一种优化方法是在20世纪80年代才发展起来的,其基本思想是尽量简化计算机指令功能,只保留那些功能简单、能在一个节拍内执行完成的指令,而把较复杂的功能用一段子程序来实现,这种计算机系统就被称为精简指令系统计算机.即Reduced Instruction Set Computer,简称RISC。RISC技术的精华就是通过简化计算机指令功能,使指令的平均执行周期减少,从而提高计算机的工作主频,同时大量使用通用寄存器来提高子程序执行的速度

提出原由

IBM公司设在纽约Yorktown的JhomasI.Wason研究中心于1975年组织力量研究指令系统的合理性问题.因为当时已感到,日趋庞杂的指令系统不但不易实现.而且还可能降低系统性能.1979年以帕特逊教授为首的一批科学家也开始在美国加州大学伯克莱分校开展这一研究.结果表明,CISC存在许多缺点.首先.在这种计算机中.各种指令的使用率相差悬殊:一个典型程序的运算过程所使用的80%指令.只占一个处理器指令系统的20%.事实上最频繁使用的指令是取、存和加这些最简单的指令.这样-来,长期致力于复杂指令系统的设计,实际上是在设计一种难得在实践中用得上的指令系统的处理器.同时.复杂的指令系统必然带来结构的复杂性.这不但增加了设计的时间与成本还容易造成设计失误.此外.尽管VLSI技术现在已达到很高的水平,但也很难把CISC的全部硬件做在一个芯片上,这也妨碍单片计算机的发展.在CISC中,许多复杂指令需要极复杂的操作,这类指令多数是某种高级语言的直接翻版,因而通用性差.由于采用二级的微码执行方式,它也降低那些被频繁调用的简单指令系统的运行速度.因而.针对CISC的这些弊病.帕特逊等人提出了精简指令的设想即指令系统应当只包含那些使用频率很高的少量指令.并提供一些必要的指令以支持操作系统和高级语言.按照这个原则发展而成的计算机被称为精简指令集计算机(ReducedInstructionSetComputer-RISC)结构.简称RISC.

3优势编辑

RISC和CISC是设计制造微处理器的两种典型技术,虽然它们都是试图

MIPS架构与ARM架构_第2张图片精简指令集

在体系结构、操作运行、软件硬件、编译时间和运行时间等诸多因素中做出某种平衡,以求达到高效的目的,但采用的方法不同,因此,在很多方面差异很大,它们主要有:

(1)指令系统:RISC设计者把主要精力放在那些经常使用的指令上,尽量使它们具有简单高效的特色。对不常用的功能,常通过组合指令来完成。因此,在RISC机器上实现特殊功能时,效率可能较低。但可以利用流水技术和超标量技术加以改进和弥补。而CISC计算机的指令系统比较丰富,有专用指令来完成特定的功能。因此,处理特殊任务效率较高。

(2)存储器操作:RISC对存储器操作有限制,使控制简单化;而CISC机器的存储器操作指令多,操作直接。

(3)程序:RISC汇编语言程序一般需要较大的内存空间,实现特殊功能时程序复杂,不易设计;而CISC汇编语言程序编程相对简单,科学计算及复杂操作的程序设计相对容易,效率较高。

MIPS架构与ARM架构_第3张图片精简指令集

(4)中断:RISC机器在一条指令执行的适当地方可以响应中断,但是相比CISC指令执行的时间短,所以中断响应及时;而CISC机器是在一条指令执行结束后响应中断。

(5)CPU:RISCCPU包含有较少的单元电路,因而面积小、功耗低;而CISCCPU包含有丰富的电路单元,因而功能强、面积大、功耗大。

(6)设计周期:RISC微处理器结构简单,布局紧凑,设计周期短,且易于采用最新技术;CISC微处理器结构复杂,设计周期长。

(7)用户使用:RISC微处理器结构简单,指令规整,性能容易把握,易学易用;CISC微处理器结构复杂,功能强大,实现特殊功能容易。

(8)应用范围:由于RISC指令系统的确定与特定的应用领域有关,故RISC机器更适合于专用机;而CISC机器则更适合于通用机。

4特征编辑

MIPS架构与ARM架构_第4张图片32位精简指令集架构

统一指令编码(例如,所有指令中的op-code永远位于同样的位位置、等长指令),可快速解译︰

泛用的缓存器,所有缓存器可用于所有内容,以及编译器设计的单纯化(不过缓存器中区分了整数和浮点数);

单纯的寻址模式(复杂寻址模式以简单计算指令序列取代);

硬件中支持少数数据型别(例如,一些CISC计算机中存有处理字节字符串的指令。这在RISC计算机中不太可能出现)。

RISC设计上同时也有哈佛内存模块特色,凡指令流和数据流在概念上分开;这意味着更改代码存在的内存地址对处理器执行过的指令没有影响(因为CPU有着独立的指令和数据缓存),至少在特殊的同步指令发出前。在另一面,这允许指令缓存和数据缓存同时被访问,通常能改进运行效率。

许多早期的RISC设计同样共享着不好的副作用——转移延时槽,转移延时槽是指一个跳转或转移指令之后的指令空间。无论转移是否发生,空间中的指令将被执行(或者说是转移效果被延迟)。这些指令让CPU的算术和逻辑单元(ALU)繁忙比通常执行转移所需更多的时间。现在转移延时槽被认为是实现特定RISC设计的副作用,现代的RISC设计通常避免了这个问题(如PowerPC,最近的SPARC版本,MIPS)。

5结构特点编辑

MIPS架构与ARM架构_第5张图片精简指令集

RISC是简化指令集计算机的简略缩写,其风格是强调计算机结构的简单性和高效性。RISC设计是从足够的不可缺少的指令集开始的。它的速度比那些具有传统复杂指令组计算机结构的机器快得多,而且RISC机由于其较简洁的设计,较易使用,故具有更短的研制开发周期。RISC结构一般具有如下的一些特点:

①单周期的执行:它统一用单周期指令。从根本上克服了CISC指令周期数有长有短,造成运行中偶发性不确定,致使运行失常的问题。

②采用高效的流水线操作:使指令在流水线中并行地操作,从而提高处理数据和指令的速度。

③无微代码的硬连线控制:微代码的使用会增加复杂性和每条指令的执行周期。

④指令格式的规格化和简单化:为与流水线结构相适应且提高流水线的效率,指令的格式必须趋于简单和固定的规式。比如指令采用16位或32位的固定的长度,并且指令中的操作码字段、操作数字段都尽可能具有统一的格式。此外,尽量减少寻址方式,从而使硬件逻辑部件简化且缩短译码时间,同时也提高了机器执行效率和可靠性。

⑤采用面向寄存器堆的指令:RISC结构采用大量的寄存器——寄存器操作指令,使指令系统更为精简。控制部件更为简化,指令执行速度大大提高。由于VLSI技术的迅速发展,使得在一个芯片上做大量的寄存器成为可能。这也促成了RISC结构的实现。

⑥采用装入/存储指令结构:在CISC结构中。大量设置存储器——存储器操作指令,频繁地访问内存,将会使执行速度降低。RISC结构的指令系统中,只有装入/存储指令可以访问内存,而其它指令均在寄存器之间对数据进行处理。用装入指令从内存中将数据取出,送到寄存器;在寄存器之间对数据进行快速处理,并将它暂存在那里,以便再有需要时。不必再次访问内存。在适当的时候,使用一条存储指令再将这个数据送回内存。采用这种方法可以提高指令执行的速度。

⑦注重编译的优化,力求有效地支撑高级语言程序。

通常使用的单片机中,MCS一51系列的单片机属于CISC的体系结构;AVR系列的单片机则属于RISC的体系结构。

6发展前景编辑

鉴于RISC的设计特点以及其无可比拟的优点,RISC体系结构处理器的发展方向:

MIPS架构与ARM架构_第6张图片扩展指令集

是增加处理器的并行性;

二是扩展支持可伸缩并行计算机系统的功能;

三是提高工艺水平。最终RISC与DSP在嵌入式应用中完美融合,密不可分。

RISC微处理器不仅精简了指令系统,采用超标量和超流水线结构;它们的指令数目只有几十条,却大大增强了并行处理能力。如:1987年SunMicrosystem公司推出的SPARC芯片就是一种超标量结构的RISC处理器。而SGI公司推出的MIPS处理器则采用超流水线结构,这些RISC处理器在构建并行精简指令系统多处理机中起着核心的作用。RISC处理器是当今UNIX领域64位多处理机的主流芯片。

性能特点

性能特点一:由于指令集简化后,流水线以及常用指令均可用硬件执行;

性能特点二:采用大量的寄存器,使大部分指令操作都在寄存器之间进行,提高了处理速度;

性能特点三:采用缓存—主机—外存三级存储结构,使取数与存数指令分开执行,使处理器可以完成尽可能多的工作,且不因从存储器存取信息而放慢处理速度。

应用特点

由于RISC处理器指令简单、采用硬布线控制逻辑、处理能力强、速度快,世界上绝大部分UNIX工作站和服务器厂商均采用RISC芯片作CPU用。如原DEC的Alpha21364、IBM的PowerPCG4、HP的PA—8900、SGI的R12000A和SUNMicrosystem公司的UltraSPARC║。

运行特点

RISC芯片的工作频率一般在400MHZ数量级。时钟频率低,功率消耗少,温升也少,机器不易发生故障和老化,提高了系统的可靠性。单一指令周期容纳多部并行操作。在RISC微处理器发展过程中。曾产生了超长指令字(VLIW)微处理器,它使用非常长的指令组合,把许多条指令连在一起,以能并行执行。VLIW处理器的基本模型是标量代码的执行模型,使每个机器周期内有多个操作。有些RISC处理器中也采用少数VLIW指令来提高处理速度。