; l7 [. f1 ~1 @' ]3 [' N2 q综合上面所述,若要再进一步比较CISC与RISC之差异,可以由以下几点来进行分析:. B# O6 F9 W. J% e
2 Z: X, v! o ^( v
1、指令的形成:CISC因指令复杂,故采微指令码控制单元的设计,而RISC的指令90%是由硬体直接完成,只有10%的指令是由软体以组合的方式完成,因此指令执行时间上RISC较短,但RISC所须ROM空间相对的比较大,至于RAM使用大小应该与程序的应用比较有关系。 5 y& O) U/ m+ ], m5 C + f7 D% Y2 L1 |2、定址模式:CISC的需要较多的定址模式,而RISC只有少数的定址模式,因此CPU在计算记忆体有效位址时,CISC占用的周期较多。! r. B5 A/ O8 i. X
% X o6 ^0 I4 ?* w% Z
3、指令周期:CISC指令的格式长短不一,执行时的周期次数也不统一,而RISC结构刚好相反,故适合采用管线处理架构的设计,进而可以达到平均一周期完成一指令的方向努力。显然的,在设计上RISC较CISC简单,同时因为CISC的执行步骤过多,闲置的单元电路等待时间增长,不利于平行处理的设计,所以就效能而言RISC较CISC还是站了上风,但RISC因指令精简化后造成应用程式码变大,需要较大的程式记忆体空间,且存在指令种类较多等等的缺点。 - s0 R6 H. q* E' @6 t) B. p0 Z |4 m' k f6 G _3 g
4、大量使用寄存器 ! @9 D$ C" z, C6 _/ F) N. N( o3 p ~& ^1 u* n, U1 e) H; R7 s
二、ARM处理器的模式与异常 ) e' b3 p: Y2 K2 ~9 V' V/ `/ d4 M( ~- \4 q% H. x
ARM体系结构主要支持7种处理器模式,分别为 : 用户模式、快中断模式、中断模式、管理模式、中止模式,未定义模式和系统模式 ( h: q H# V6 S 9 ]5 ^) E7 t6 f% a
! e; y; a# W$ w# t3 a有些同学在大学的时候,学过51单片机,知道中断的概念。在这里中断其实也是一种异常,这里的中断包括外部硬件产生的外部中断和由芯片内部硬件产生的内部中断。由中断产生的异常和其他异常,从处理方法的角度来看没有任何区别,所以我们可以把这些异常统一起来研究。 9 T# H( }( Q. {& D3 F" Z! g. {# m" S' v# ?
注意:在正常情况下,一个普通程序可能会运行在用户模式和系统模式下,当异常发生时,ARM就会自动切换到异常模式去处理异常,处理完后,又回到用户模式或系统模式下继续之前的工作。因为每一种模式都包含相应的私有资源,因此可以保证在处理异常的时候,原理的程序环境不会被新的环境破坏,从而保证了系统的正常工作。注意:在正常情况下,一个普通程序可能会运行在用户模式和系统模式下,当异常发生时,ARM就会自动切换到异常模式去处理异常,处理完后,又回到用户模式或系统模式下继续之前的工作。因为每一种模式都包含相应的私有资源,因此可以保证在处理异常的时候,原理的程序环境不会被新的环境破坏,从而保证了系统的正常工作。7 S, w! o$ d$ P% T2 Z8 E
# ~4 j/ k$ Z- H
好了,关于ARM的异常和工作模式就介绍在这里,接下来我们来看看ARM每种模式下所拥有的寄存器。 6 x! O3 c6 y8 F8 M) R- }, l6 M* o0 x$ y, a, [
三、ARM每种模式拥有的寄存器$ @' B) f/ f b' _2 s* |
6 a" u4 Q, G1 N' z o/ F- } ?前面我们讲到,ARM使用的是RSIC架构,而RSIC架构特点之一就是使用大量寄存器。ARM处理器支持多模式,每种模式都有一些寄存器是公用的,有一些是私有的。 8 n3 Z/ s1 v1 u! b, {7 R$ A; u c8 X; D, U/ B' C' g