当今处理器一共有三个最强大的架构,其中之一是以intel和AMD为代表的x86架构(CISC),另外一个是手机、平板处理器所使用的ARM架构(RISC),最后一个便是我国龙芯处理器所选择的MIPS架构(RISC)。
这三大处理器架构中,x86和ARM是商业化进程最为优秀的两大架构。也正是因为这两大架构的商业化进程太为出色,所以我国的龙芯处理器才被很多人批判为最严重的选择性失误。
● CISC
CISC是复杂指令集CPU,内部为将较复杂的指令译码,也就是指令较长,分成几个微指令去执行,正是如此开发程序比较容易(指令多的缘故),但是由于指令复杂,执行工作效率较差,处理数据速度较慢。例如intel和AMD的x86架构的CPU。
● RISC
RISC是精简指令集CPU,指令位数较短,内部还有快速处理指令的电路,使得指令的译码与数据的处理较快,所以执行效率比CISC高,不过,必须经过编译程序的处理,才能发挥它的效率。例如ARM和MIPS架构的CPU。
ARM是一个精简指令集(RISC)中央处理器(processor)架构。
ARM是Acorn电脑公司(Acorn Computers Ltd)于1983年开始的开发计划。Acorn于1990年将设计团队另组成一间名为安谋国际科技(ARM Holdings plc)的新公司。ARM公司自身并不生产处理器,而是将自身的设计licensing卖给需要处理器的公司,而后交给他们生产或者是找人代工。不允许购买者进行任何对ARM架构有更改的设计。
但是从处理器的设计和能耗比来说,如果要说最经典的RISC处理器,那么非MIPS莫属,就连它的竞争对手,也不得不承认它的优雅,它被作为处理器教科书的典范,很多其他的处理器,都能看到它的身影。MIPS是高效精简指令集计算机(RISC)体系结构中最优雅的一种,最早诞生于斯坦福大学的一项科研项目(这也是MIPS公司学院派思想的由来),该项目的目的是设计一种高性能简化指令处理器。最终的产物便是MIPS处理器,也便是第一代RISC系统芯片。
众所周知,基于MIPS的MCU的应用广泛多元,包括工业、办公自动化、汽车、消费电子系统和先进技术,如无线通信等。此外,我们看到目前可穿戴和超便携市场的需求不断增长,瞄准这一领域的公司迫切希望硅IP供应商如Imagination等提供高效的解决方案,以便可以轻易集成进那些全功能产品中。
MIPS的前世今生
MIPS是世界上很流行的一种RISC处理器。MIPS的意思是“无内部互锁流水级的微处理器”(Microprocessor without interlocked piped stages),其机制是尽量利用软件办法避免流水线中的数据相关问题。它最早是在80年代初期由斯坦福(Stanford)大学Hennessy教授领 导的研究小组研制出来的。MIPS公司的R系列就是在此基础上开发的RISC工业产品的微处理器。这些系列产品为很多计算机公司采用构成各种工作站和计算 机系统。
MIPS技术公司是美国著名的芯片设计公司,它采用精简指令系统计算结构(RISC)来设计芯片。和英特尔采用的复杂指令系统计算结构(CISC)相比, RISC具有设计更简单、设计周期更短等优点,并可以应用更多先进的技术,开发更快的下一代处理器。MIPS是出现最早的商业RISC架构芯片之一,新的 架构集成了所有原来MIPS指令集,并增加了许多更强大的功能。
1986年推出R2000处理器,1988年推出R3000处理器,1991年推出第一款64位商用微处理器R4000。之后,又陆续推出R8000(于 1994年)、R10000(于1996年)和R12000(于1997年)等型号。1999年,MIPS公司发布MIPS 32和MIPS 64架构标准。2000年,MIPS公司发布了针对MIPS 32 4Kc的新版本以及未来64位MIPS 64 20Kc处理器内核。
在MIPS芯片的发展过程中,SGI公司在1992年收购了MIPS计算机公司,1998年,MIPS公司又脱离了SGI,成为MIPS技术公司; MIPS32 4KcTM 处理器是采用MIPS技术特定为片上系统(System-On-a-Chip)而设计的高性能、低电压 32位MIPS RISC 内核。采用MIPS32TM体系结构,并且具有R4000存储器管理单元(MMU)以及扩展的优先级模式,使得这个处理器与目前嵌入式领域广泛应用的 R3000和R4000系列(32位)微处理器完全兼容.
新的 64 位 MIPS 处理器是RM9000x2,从“x2”这个标记判断,它包含了不是一个而是两个均具有集成二级高速缓存的64位处理器。RM9000x2 主要针对网络基础设施市场,具有集成的 DDR 内存控制器和超高速的 HyperTransport I/O 链接。处理器、内存和 I/O均通过分组交叉连接起来的,可实现高性能、全面高速缓存的统一芯片系统。除通过并行处理提高系统性能外,RM9000x2 还通过将超标量与超流水线技术相结合来提高单个处理器的性能。
64位处理器MIPS 64 20Kc的浮点能力强,可以组成不同的系统,从一个处理器的Octane工作站到64个处理器的Origin 2000服务器;这种CPU更适合图形工作站使用。MIPS最新的R12000芯片已经在SGI的服务器中得到应用,目前其主频最大可达400MHz。
MIPS处理器是八十年代中期RISC CPU设计的一大热点。MIPS是卖的最好的RISC CPU,可以从任何地方,如Sony, Nintendo的游戏机,Cisco的路由器和SGI超级计算机,看见MIPS产品在销售。目前随着RISC体系结构遭到x86芯片的竞争,MIPS有 可能是起初RISC CPU设计中唯一的一个在本世纪盈利的。和英特尔相比,MIPS的授权费用比较低,也就为除英特尔外的大多数芯片厂商所采用。
MIPS的系统结构及设计理念比较先进,其指令系统经过通用处理器指令体系MIPS I、MIPS II、MIPS III、MIPS IV到MIPS V,嵌入式指令体系MIPS16、MIPS32到MIPS64的发展已经十分成熟。在设计理念上MIPS强调软硬件协同提高性能,同时简化硬件设计。
中国龙芯2和前代产品采用的都是64位MIPS指令架构,它与大家平常所知道的X86指令架构互不兼容,MIPS指令架构由MIPS公司所创,属于 RISC体系。过去,MIPS架构的产品多见于工作站领域,索尼PS2游戏机所用的“Emotion Engine”也采用MIPS指令,这些MIPS处理器的性能都非常强劲,而龙芯2也属于这个阵营,在软件方面与上述产品完全兼容。
MIPS 技术公司则是一家设计制造高性能、高档次及嵌入式32位和64位处理器的厂商。在通用方面,MIPS R系列微处理器用于构建SGI的高性能工作站、服务器和超级计算机系统。在嵌入式方面,MIPS K系列微处理器是目前仅次于ARM的用得最多的处理器之一(1999年以前MIPS是世界上用得最多的处理器),其应用领域覆盖游戏机、路由器、激光打印 机、掌上电脑等各个方面。
由于服务器RISC处理器市场的激烈竞争结果导致HP 公司放弃它的PA-RISC和“私生子”Alpha 两种类型服务器处理器,而“Alpha技术”则被Intel和AMD吸收应用到他们自身的处理器中; MIPS处理器应用范围则较广,对于作为服务器RISC处理器来说,主要是应用于专门的图形工作站/服务器上;相对来说,应用面较专业,因而竞争较少。就 目前的服务器RISC处理器来说,主要是IBM 的POWER和SUN 的UltraSPARC 两大处理器之间的竞争;相对而言,IBM在这场RISC处理器竞争中是个大赢家。
MIPS VS ARM
以RISC技术为基础,再加上MIPS架构中的可扩展硬软件设计,使得MIPS的解决方案比ARM的同类解决方案性能更高、功耗更低且面积更小。MIPS科技原来主要瞄准高性能工作站与服务器,而ARM最初针对低端移动系统开发基本内核。MIPS充分利用它在高性能设计方面的经验,向主流嵌入式系统市场转型。ARM则继续沿用其原有性能有限的架构,相比MIPS,它处于不利地位。
MIPS32 4K®处理器内核系列包括MIPS32 M4K®内核,其应用程序执行速度超过同类ARM Cortex™-M系列内核。这一优势部分可归功于更高效的MIPS指令集架构和优化软件工具,但主要原因还是在于MIPS架构具有众多专为更高的性能级和应用效率而设计的出色特性,其中包括一般是在微控制器设计中实现的加速功能。例如:
• MIPS 内核包含32个GPR(通用寄存器),而ARM内核只有16个GPR。这意味着寄存器溢出更少,从而性能更高。
• MIPS内核包含有影子寄存器组,而ARM内核没有。使用映像寄存器可加速中断处理保存/恢复功能,减少上下文切换(context switching)和中断延迟中所需要的周期。
• MIPS架构主要执行单一操作指令,而ARM指令在写入GPR之前执行多个操作(如移位操作、算术操作、条件校验位等等),故MIPS更容易达到更高的时钟频率。
• MIPS架构采用比ARM更简单的存储器寻址模式工作,故更容易达到更高的时钟工作频率。
• MIPS架构的预测执行较少,这大大降低了其逻辑复杂性,并使MIPS内核能够达到更高的频率。
• M4K与M14K具有5级流水线结构,故无需预测分支方向。而ARM内核采用了复杂的分支预测和分支推测逻辑。
• MIPS架构实现了带延迟的分支,而ARM结构不这样;这意味着,利用MIPS,在短流水设计时可获得更高效率。
• MIPS同时提供32位和64位架构,MIPS64架构具有后向兼容性和更高的性能。ARM只有32位架构,而且并非所有版本都后向兼容。
M4K® 执行流水线
M4K内核的性能可达1.5 DMIPS/MHz,而根据ARM网站公布的数据,Cortex-M3的性能只有1.25 DMIPS/MHz,比前者低约20% (ARM Cortex-M0的性能甚至更低,仅0.9 DMIPS/MHz,比MIPS32 M4K内核低40%;Cortex-M0 还存在众多其它局限性,我们接下来会讨论到)。换言之,Cortex-M3 需要使用高20%的时钟频率才能达到M4K内核的性能,但随之产生更多的功耗。
类似的,如第4节的“性能基准”所述,在采用CoreMark 基准时,M4K内核可达到2.297 CM/MHz的性能,比同类的基于Cortex-M3的解决方案高20-30%。MIPS已把业内越来越获认可的CoreMark基准视为比Dhrystone MIPS更精确的CPU性能测量标准。
M4K执行单元采用5级流水线微架构,如图2所示,而Cortex-M3内核的执行则基于3级流水线架构。因此M4K内核能够采用更高的最大时钟频率,每秒钟处理更多的指令,从而获得比Cortex-M3更高的性能和执行效率。
在M4K内核中,所有ALU和移位操作都在单周期内完成。旁路逻辑(Bypass logic)包含在流水线中,在所有流水线级完成之前提供快速数据存取以供下一条指令所用。由于执行特定任务的周期缩短,性能得以提高。
总的来说,与当前商业化最成功的ARM架构相比,MIPS的优势主要有以下几点:
1、MIPS支持64bit指令和操作,ARM目前只到32bit;
2、MIPS有专门的除法器,可以执行除法指令;
3、MIPS的内核寄存器比ARM多一倍,所以同样的性能下MIPS的功耗会比ARM更低,同样功耗下性能比ARM更高;
4、MIPS指令比ARM稍微多一点,稍微灵活一点;
5、有观点认为MIPS的bank寄存器性能也要好于ARM,不过没见过能反映出来的测试。
以上为MIPS对比ARM架构的优势,接下来我们再看一看MIPS架构的不足之处,
与ARM架构相比,MIPS架构也存在着以下几点不足:
1、MIPS的内存地址起始有问题,这导致了MIPS在内存和cache的支持方面都有限制,现在的MIPS处理器单内核面对高容量内存时有问题;
2、MIPS今后的发展方向是并行线程,类似INTEL的超线程,而ARM未来的发展方向是物理多核,目前看来物理多核占优。由此来看,我国的龙芯向多核发展还是颇具远见的;
3、MIPS虽然结构更加简单,但是到现在还是顺序单发射,ARM已经进化到了乱序双发射,甚至NV的丹佛已经是乱序三发射了。
MIPS虽然存在着一些问题,但MIPS拥有一个绝对最大的优势,那就是最开放化的架构授权。他允许授权商自行更改设计,只要你的眼光够前卫,不管多少核的处理器都可以自行设计。倘若是换做ARM的话,那么你就只能等待他为你提出解决方案了。