RISC的概念对ARM处理器的设计有着重大的影响,最成功也是第一个商业化的RISC实例就是ARM,因此大家公认RISC就是ARM的别名,而且ARM是当前使用最广、最为成功的基于RISC的处理器。因此在介绍ARM之前,需要对RISC体系结构、组织结构是基本情况进行全面介绍。
1. RISC体系结构
计算机体系结构描述:从用户角度看到的计算机属性,如计算机的指令集、可见寄存器、存储器管理单元和异常处理模式都是体系结构的一部分。
20世纪70年代,先进的半导体加工工艺技术使得在单个芯片上集成的晶体管越来越多,而在当时,微处理器性能的不断提高主要是依赖于在单个芯片上集成尽可能多的集成晶体管,半导体加工技术是20世纪70年代微处理器性能增强的主要因素,而计算机结构体系自身对性能的贡献不太明显。微处理器的设计在体系结构级上缺乏独创思想,特别会体系结构对他的VLSI实现技术的需求方面。处理器的设计者大多是从小型计算机的发展中取得的技术思路,在小型计算机的实现技术中,主要是全部复杂例程所需要的微码ROM占据了很多的芯片面积,而给其他能增强性能的部件没有留下太多资源。20世纪70年代晚期发展起来的大量带有小型计算机指令集的单片复杂指令计算机CISC就是一个例子。
CISC指令集设计的主要趋势是增加指令集的复杂度,而复杂指令集的高性能是以宝贵、有限的芯片面积为代价的,RISC正是诞生在这种指令集日益复杂是情况下。
当指令集过于复杂时,及其的设计周期会很长,资金消耗会很大,同时使处理器的设计、验证和日常维护也变得日益繁杂。
如果想要处理器运行性能更佳,那么必须首先明白在计算机程序运行中,这些指令是如何工作的。一个普遍的误解就是,计算机花大量时间在“计算”,也就是说,它对用户的数据进行算数操作。实际上,它只是用很少的时间进行这个意义上的“计算”,尽管它也做相当数量的算术操作,但是这些运算多数需要寻址,以便找到相关数据与程序的位置。找到用户的数据后,多数工作是把它们移来移去,而不是进行计算。因此必须在指令集上去度量各种不同类型指令的使用频率。
归纳起来,CISC指令系统主要存在以下缺点。
(1)20%和80%的问题
通过对CISC机器上运行程序的大量跟踪,统计研究发现,在CISC指令系统中,虽然指令集庞大,但仅有20%的简单指令如取数、运算、转移等占CPU动态执行时间的80%-90%;而多复杂指令,也仅有20%的使用频率。另外,当执行频率高的简单指令时,还会因为复杂指令的存在而制约简单指令速度的提高。这就是“20%-80%”规律。
(2) 指令复杂度对处理器的VLSI实现性能的影响
进入20世纪80年代后,随着计算机复杂性的增加,在计算机体系结构的VLSI实现时,为了达到更高端 实现性,必须要求VLSI实现的规整性;而CISC处理机中,指令的长短不一,当执行频率高的指令时,因复杂指令的存在,控制逻辑的实现非常不规整,致使执行速度也无法提高,给VLSI实现要达到高性能造成很大困难。
在CISC处理机中国,大量使用微程序技术,以实现复杂的指令系统。20实际70年代前,一般用磁芯做主存储器,用半导体做控制器,两者的速度相差5-10倍。从20世纪70年代后期,主存储器大量使用DRAM,使得主存与控存的速度相当,从而使许多指令没有必要用微程序来实现;而复杂的指令,用简单指令组成的子程序实现也并不比用微程序实现慢。这样CISC中很多指令的效率优势就没有了。
(3)软硬件的协同设计问题
在CISC中,通过增强指令系统的功能,简化了目标软件的设计,增加了硬件的复杂程度。但是,由于指令复杂了,指令的执行时间必定是要增加,从而整个程序的执行的时间可能增加。因此,CISC机器降低了编程的复杂性并不意味着一定能缩短程序的执行时间。在进行计算机的体系结构设计时,有一个软件与硬件的功能如何让管理分配的问题,必须协同分配软硬件的功能。
2.RISC体系结构的特点
指令格式和长度固定,且指令类型很少,指令功能简单,寻址方式少而简单,指令译码控制器采用硬币布线逻辑,这样易于流水线的实现,进而获得高性能;CISC处理器指令集的长度一般可变,指令类型也多。
由于RISC指令系统强调了对称、均匀、简单,使得程序的优化编译效率更高 大多数指令单周期完成。
分开的Load/Store结构的存取指令,也只有Load/Store结构的存取指令访问存储器,而数据处理指令只访问寄存器。而CISC处理器一般允许将存储器中的数据作为数据处理指令的操作数。
基于多个通用寄存器堆操作。虽然CISC寄存器组也加大了,但是仍小于RISC,而且大多数不同的寄存器用于不同的用途。
RISC体系结构的这些特点极大地简化了处理器的设计,在体系结构的VLSI实现时更加有利于性能的增强。对于性能的增强主要变现在RISC组织结构方面。
3.RISC组织
计算机组织描述用户不能看到的体系结构的实现方式。流水线结构、高速缓存、查表、硬件以及转换后备缓存都是计算机组织的问题。在体系结构的VLSI实现时,RISC组织结构比CISC结构有着显著的优点,主要表现在以下方面:
硬连线的指令译码逻辑。RISC指令集的简单性使得指令译码可采用规则的译码逻辑,CISC处理器使用大的微码ROM进行指令译码,硬布线控制逻辑可加快指令执行速度,减少微程序码中的指令解释开销。
便于流水线执行。RISC指令集的简单性也使得流水线的实现更加有效,CISC处理器即使有,也只允许极少的连续指令间的重叠。
单周期执行。CISC处理器执行一条指令一般需要多个时钟周期。
CISC技术微处理器的指令格式长短不一,每条指令依据其复杂程度所需执行的周期数相差很大,难以实现流水线操作,也很难实现指令级的并行性。而由于RISC的以上优点,译码逻辑和取数的设计非常简单、直观,减少了译码的等的开销,可用于对功能、可靠性、成本、体积、功耗有着严格要求的嵌入式系统。结合这些体系结构和组织上的变化,伯克利RISC微处理器有效的摆脱了在处理器设计中性能渐进但无法有根本性改善,即陷于性能增强的困惑的问题。
|