Flynn 分类
1966年, Michael.J.Flynn 提出根据指令流、数的多倍性特征对计算机系统进行分类(通常称为 Flynn 分类法),有关定义如下:
Flynn 根据不同的指令流-数据流组织方式,把计算机分为四类:
复杂指令集系统与精简指令集系统
复杂指令系统计算机(CISC):增强指令的功能,设置一些功能复杂的指令,把一些原来由软件实现的、常用的功能改用硬件的指令系统来实现.
精简指令系统计算机( RISC ):尽量简化指令功能,只保留那些功能简单,能在一个节拍内执行完成指令,较复杂的功能用一段子程序来实现.
1. CISC 指令系统的特点
CISC 指令系统的主要特点如下:
(1)指令数量众多。指令系统拥有大量的指令,通常有 100~250 条。
(2)指令使用频率相差悬殊。最常使用的是一些比较简单的指令,仅占指令总数的20%,但在程序中出现的频率却占80%。而大部分复杂指令却很少使用。
(3)支持很多种寻址方式。支持的寻址方式通常为 5~20 种。
(4)变长的指令。指令长度不是固定的,变长的指令增加指令译码电路的复杂性。
(5)指令可以对主存单元中的数据直接进行处理。典型的 CISC 通常都有指令能够直接对主存单元中的数据进行处理,其执行速度较慢。
(6)以微程序控制为主。CISC 的指令系统很复杂,难以用硬布线逻辑(组合逻辑)电路实现控制器,通常采用微程序控制。
2. RISC 指令系统的特点
RISC 要求指令系统简化,操作在单周期内完成,指令格式力求一致,寻址方式尽可能减少,并提高编译的效率,最终达到加快机器处理速度的目的。RISC 指令系统的主要特点如下。
(1)指令数量少。优先选取使用频率最高的一些简单指令和一些常用指令,避免使用复杂指令。只提供了 LOAD(从存储器中读数)和 STORE(把数据写入存储器)两条指令对存储器操作,其余所有的操作都在 CPU 的寄存器之间进行。
(2)指令的寻址方式少。通常只支持寄存器寻址方式、立即数寻址方式和相对寻址方式。
(3)指令长度固定,指令格式种类少。因为 RISC 指令数量少、格式少、相对简单,其指令长度固定,指令之间各字段的划分比较一致,译码相对容易。
(4)以硬布线逻辑控制为主。为了提高操作的执行速度,通常采用硬布线逻辑(组合逻辑)来构建控制器。
(5)单周期指令执行,采用流水线技术。因为简化了指令系统,很容易利用流水线技术,使得大部分指令都能在一个机器周期内完成。少数指令可能会需要多周期,例如, LOAD/STORE 指令因为需要访问存储器,其执行时间就会长一些。
(6)优化的编译器:RISC 的精简指令集使编译工作简单化。因为指令长度固定、格式少、寻址方式少,编译时不必在具有相似功能的许多指令中进行选择,也不必为寻址方式的选择而费心,同时易于实现优化,从而可以生成高效率执行的机器代码。
(7)CPU 中的通用寄存器数量多,一般在 32 个以上,有的可达上千个。
大多数 RISC 采用了 Cache 方案,使用 Cache 来提高取指令的速度。而且,有的 RISC 使用两个独立的 Cache 来改善性能。一个称为指令 Cache,另一个称为数据 Cache。这样,取指令和取数据可以同时进行,互不干扰。