计算机的两种体系结构
冯·诺依曼体系结构和哈佛体系结构
冯·诺依曼体系结构
冯·诺依曼体系的特点
- 数据与指令都存储在存储器中,程序执行效率不高
- 被大多数计算机所采用,简单
- ARM7——冯诺依曼体系
哈佛体系结构
哈佛体系结构的特点
- 程序存储器与数据存储器分开
- 提供了较大的数存储器带宽
- 适合于数字信号处理
- 大多数DSP都是哈佛结构
- ARM9是哈佛结构
两种指令集 -- CISC和RISC
ARM是最成功也是第一个商业化的RISC。也是目前使用最广的基于RISC的处理器。
(一) CISC指令集
1980年以前,计算机设计的主要趋势是增加指令集的复杂程度,如:40年代的计算机只有7条指令,1973年的IBM370达到208种指令,1978年的VAX-11达到303条指令。指令过于复杂,机器的设计周期会很长,资金耗费会更大,处理器的设计、验证和维护日益复杂,芯片的面积越来越大,这些表明CISC不适宜构成更高性能的计算机。计算机大量的时间在进行数据搬移,而不是计算。
CISC指令集的主要缺点
- 20%与80%的问题:20%的简单指令如取数、运算和转移等占用了CPU执行时间80%以上,而80%的复杂指令仅占了CPU执行时间的20%左右。
- 指令复杂度对处理器的VLSI实现性能的影响:在计算机体系结构的VLSI实现时,为了达到更高的实现性能,要求VLSI实现的规整性,而CISC中,指令长短不一,控制逻辑的实现非常不规整,致使执行速度的进一步提高比较困难。
- 软硬件协同设计问题:在CISC中,通过增加指令系统的功能,简化了目标软件的设计,增加了硬件的复杂程度,同时增加了指令的执行时间,从而整个程序执行的时间增加。因此CISC降低了编程的复杂性,并不意味着缩短程序的执行时间。这里有个软硬件协同设计问题。
(二)RISC指令集
1980年,Patterson和Ditzel提出了RISC的设计思想。
RISC的中心思想是: 精简指令集的复杂度,简化指令实现的硬件设计,硬件只执行很有限的最常用的那部分指令,大部分复杂的操作则由简单指令合成。
RISC思想大幅度提高了计算机的性能价格比,包括ARM在内的商业化的RISC设计证明了这种思路的正确性。一般来说,RISC处理器比同等的CISC处理器要快50%~75%,同时,RISC处理器更容易设计和实现。
RISC指令集的特点:
- 指令效率高:指令格式和长度固定,且指令类型少,指令功能简单,指令译码控制器采用硬布线逻辑,这样易于流水线的实现,进而获得高性能。大多数指令都是单周期指令。
- 程序的优化编译效率高:由于RISC指令系统强调了对称、均匀、简单,使得程序的优化编译效率高。
- 分开的Load/Store结构的存取指令:也只有这两条指令访问存储器,而数据处理指令只访问寄存器。而CISC一般允许将存储器中的数据作为数据处理指令的操作数。
- 基于多个通用寄存器堆操作:RISC寄存器较多,并且不同的寄存器用于不同的用途。
RISC体系结构的这些特点简化了处理器的设计,在体系结构的VLSI实现时更加有利于性能的增强。
RISC技术的历史贡献:
- 流水线:流水线是处理器中实现指令并行操作的最简单的方式,而且可使速度大为提高。
- 高时钟频率和单周期执行:由于RISC指令系统强调了对称、均匀、简单,使得程序的优化编译效率高。
RISC的缺点:
- 代码密度低:RISC比CISC代码密度低。
- RISC不能执行x86代码。
- 给优化编译程序带来了困难。
RISC组织结构比CISC结构有着显著的优点,主要表现在体系结构及VLSI实现上:
- 硬连线的指令译码逻辑; RISC指令集的简单性使得指令译码可以采取规则的译码逻辑,CISC处理器使用大的微码ROM进行指令译码,硬布线控制逻辑可以加快指令执行速度,减少微程序码中的指令解释开销。
- 便于流水线执行; RISC指令集的简单性也使得流水线实现更加有效,CISC处理器即使有也只允许极少的连续指令间的重叠(尽管它们现在允许)。
- 单周期执行; CISC处理器执行一条指令一般需要多个时钟周期。