计算机由控制器,运算器,存储器和输入/输出设备组成。其中,控制器,运算器是CPU的组成部分,而CPU和主存储器是主机的组成部分。控制器由程序计数器(PC),指令寄存器(IR),指令译码器和操作控制器组成。
计算机系统的Flynn分类法:
1)单指令流单数据流(SISD):也就是传统的
顺序执行的
单处理器计算机。基于Intel的奔腾系列芯片的PC属于SISD。
2)单指令流多数据流(SIMD):代表:阵列处理机(并行处理机)和相联处理机。
阵列处理机将大量
重复设置的处理单元,按一定方式互连成列,在单一控制部件的控制下对各自分配的不同数据并行执行
同一指令规定的操作。处理单元是不带指令控制部件的算术逻辑部件。特点是:利用资源的重复,而不是时间的重叠。利用并行中的同时性,而不是并发性。
相联处理机是基于存储器操作并行的。
3)多指令流单数据流(MISD):也就是流水线计算机。它具有多个处理单元,一个处理单元的输出是另一个处理单元的输入。特点是:利用时间的重叠。
4)多指令流多数据流(MIMD): 也就是多处理机。MPP(大规模并行处理机)和SMP(对称多处理机)都属于这一类。
* 什么叫做“多倍性”?官方解释是:指在系统性能瓶颈部件上同时处于同一执行阶段的指令或数据的最大可能数目。这段话实在太晦涩难懂。其实,“多倍性”就是计算机系统并行处理能力的一个量度。上面的单指令多数据流计算机,如果数据流数目是4,那么多倍性就是4。
计算机系统按照指令系统的设计方式可以分为:
1)复杂指令系统计算机
特点如下:
指令数目众多。
支持多种寻址方式。
变长指令,指令译码电路复杂。
多种可以对存储器单元中的数据直接进行处理的指令,但是执行速度慢。
以微程序控制为主。
2)精简指令系统计算机
特点如下:
指令数目小。
寻址方式少。
指令长度固定,指令译码电路简单。
寄存器数量多。
只提供Load/Store指令访问存储器,其余操作都在CPU寄存器之间进行。
以硬布线逻辑控制为主。
因为简化了指令系统,所以很容易
采用流水线技术使大部分指令都能在一个机器周期内完成(一个指令的执行被分割成若干个子任务来并行执行)。少数指令可能会需要多个周期执行,例如Load和Store指令。
因为指令长度固定,数目少,寻址方式少,编译时不必在具有相似功能的许多指令中进行选择,也不必花太多的时间在寻址方式的选择上,所以更容易实现优化,从而生成高效执行的机器代码。
* 什么是流水线技术?流水线技术是把一个任务分解成若干顺序执行的子任务,不同的子任务由不同的执行部件负责执行,而这些执行部件可以并行工作。在任一时刻,任一子任务只占用一其中的一个执行部件,这样就可以实现多个子任务的重叠执行,以提高工作效率。
* 典型的指令执行过程:
1)计算指令地址,更新程序计数器
2)取指令:从存储器中取出指令
3)指令译码
4)计算操作数地址
5)取操作数
6)执行指令
7)保存结果
* 流水线分类:
1)指令流水线:指令执行有7个阶段,使这7个阶段并行执行。注意:这里的“并行”其实并不是一条指令的各个阶段并行执行,而是多条指令的阶段可以并行执行:第一条指令在进行到阶段2的时候,第二条指令可以开始进行阶段1……以此类推。
2)运算操作流水线:例如,执行浮点加法运算,可以分成3个阶段:对阶,尾数相加和结果规格化。流水线的3个阶段用锁存器进行分割,锁存器用来在相邻两段之间
保持中间结果,以供下一个阶段使用。这样在满负荷时,该流水线可以同时处理3条浮点加法指令。
* 实际情况中,流水线的各个阶段会相互影响,阻塞流水线。一般由两种情况引起:
1)转移指令:因为在该转移指令执行完之前,流水线并不能确定出下一条指令的地址,为了保证指令的正确执行,必须把取指令段和指令地址计算段
互锁。
2)共享资源访问冲突:当多条指令以流水线方式重叠执行时,由于可能会引起对共享的寄存器/存储器资源访问次序的变化,从而导致冲突,这种情况也叫做
数据相关。
* 几种有名的计算机系统:
1)超标量处理机:
1. 结构特点:
多个功能部件
多个指令译码电路
多条流水线
多个寄存器端口
多条总线
2. 运行时特点:
超标量处理机可以同时从存储器中取出几条指令,并同时送入不同的功能部件。但是在此之后,超标量处理机的硬件是不能重新安排指令的前后次序的,但是可以在编译程序的时候采用优化方法对指令的执行次序进行精心安排,
把能并行执行的指令同时放入不同的对应的功能部件。
* 超标量处理机属于MIMD。
2)超级流水线处理机:
也就是使用了流水线技术的处理机。和超标量处理机一样:其硬件也不能调整指令的执行次序,由编译程序解决优化问题。
* 超级流水线处理机属于MISD。
3)超长指令字处理机(VLIW):
VLIW是一种单指令流多操作码多操作数的系统结构。编译程序在编译时,
把那些能并行执行的操作组合在一起,成为一条有多个操作段的超长指令。由这条超长指令控制VLIW中多个互相独立的功能部件,
每个操作段控制一个功能部件,相当于同时执行多条指令。
* VLIW属于SIMD。
4)向量处理机:
也就是能利用相应的指令和硬件,对向量的各个元素进行并行处理的计算机。
向量处理机在进行向量计算时,并大型机的效率要高得多。
向量处理机的分类:
1. 巨型计算机:能对大量的数据进行浮点运算,同时它还可以是进行标量计算和一般数据处理的
通用计算机。
2. 向量协处理机(也叫做数组处理机):处理浮点运算和向量计算的
专用处理机,它是
连接在主机总线上的(也就是说,向量协处理机并不是一个完全独立的计算机系统,它寄生在主机上)。
向量处理机一般采用流水线方式工作。
向量处理机的结构特点:
1. 为了存储系统能及时提供数据:配有一个大容量的,分成多个模块交错工作的主存储器。
2. 为了提高运算速度:采用多个功能部件——向量运算部件,浮点运算部件,整数运算部件和地址计算部件。
5)多处理机系统:
这种处理机具有两个或者两个以上的处理器,共享输入/输出子系统,在操作系统的统一控制下,通过共享主存或者高速通信网络进行通信,协同求解一个复杂的问题。