1.计算机的组成
在一台计算机中,主要有6种部件,分别是控制器、运算器、内存储器、外存储器、输入设备和输出设备组成,它们之间的合作关系如下图所示:
- 控制器:主要是分析和执行指令的部件,也是统一指挥并控制计算机各部件协调工作的中心部件,所依据的是机器指令。控制器的组成包括程序计数器、指令寄存器、指令译码器、时序部件、微操作控制信号形成部件和中断机构。
- 运算器:运算器也称算术逻辑单元(ALU),主要是对数据进行算术运算和逻辑运算。通常由ALU(算术/逻辑单元,包括累加器、加法器等)、通用寄存器(AX,BX,CX,DX等,不包含地址寄存器)、多路转换器、数据总线组成。
- 内存储器(内存、主存):主要用于存储现场操作的信息和中间结果,包括机器指令和数据。
- 外存储器(外存、辅存):存储需要长期保存的各种信息。
- 输入设备:接收外界向计算机输入的信息。
- 输出设备:将计算机中的信息向外界输送。
【注意】现在的控制器和运算器是被制造在同一块超大规模集成电路中,统称为CPU(中央处理器)。
2.计算机的分类
计算机是由指令流和数据流组成的,根据指令流和数据流的多倍速特征对计算机系统进行了分类(通常称为Flynn分类),相关的定义如下:
(1)指令流:指令执行的指令序列。
(2)数据流:由指令流调用的数据序列,包括输入数据和中间结果,但不包括输出数据。
(3)多倍性:指在系统性能瓶颈部件上同时处于同一执行阶段的指令或数据的可能个数。
Flynn根据不同的指令流和数据流的组织方式,把计算机系统分成了4大类:
体系结构类型 | 结构 | 关键特性 | 代表 |
---|---|---|---|
SISD | 控制部分:一个 处 理 器:一个 主存模块:一个 | 处理器以顺序的执行方式执行指令 | 单处理机系统(486,586、奔腾) |
SIMD | 控制部分:1个 处 理 器:多个 主存模块:多个 | 各处理器以异步的形式执行同一条指令 | 并行处理机 阵列处理机(数组处理) 超级向量处理机 |
MISD | 控制部分:多个 处 理 器:一个 主存模块:多个 | 被证明不可能,至少不实际 | 目前没有,有文献 称流水线计算机为此类 |
MIMD | 控制部分:多个 处 理 器:多个 主存模块:多个 | 能够实现作业、任务、指令等各级全面 执行 | 多处理机系统 多计算机 |
- 单指令单数据流(SISD):SISD就是传统的顺序执行单处理机算机,其指令部件每次只对一条指令进行译码,并只对一个操作部件分配数据。流水线方式的单处理机有时也被当作SISD。
- 单指令多数据流(SIMD):SIMD就是以并行处理机(队列处理机)为代表,并行处理机包括多个重复的处理单元,由单一指令部件控制,按照同一指令流的要求为它们分配各自所需的不同数据。相联处理机也属于这一类。
- 多指令单数据流(MISD):MISD具有N个处理单元,按N条不同指令的要求对同一数据流及中间结果进行不同的处理。一个处理单元的输出又作为另一个处理单元的输入。这类实际很少见,也有人把流水线看作多个指令部件,称流水线计算机是MISD。
- 多指令多数据流(MIMD):MIMD是指能实现作业、任务、指令等各级全面并行的多机系统。多处理机属于MIMD。当前的高性能服务器与超级计算机大多数具有多个处理机,能进行多任务处理,称为多处理机系统,不论是MPP还SMP都属于这一类。
其中根据指令的应用场景又可将其分为CISC复杂指令计算机(Complex Instruction Set Computer)和RISC(Reduced Instruction Set Computer)精简指令计算机,它们之间的区别如下表所示:
指令系统类型 | 指令 | 寻址方式 | 实现方式 | 其它 |
---|---|---|---|---|
CISC(复杂) | 数量多,使用频率差别大,可变长格式 | 支持多种 | 微程序控制技术 | 研制周期长 |
RISC(精简) | 数量少,使用频率接近,定长格式 大部为单周期指令,操作寄存器 只有Load/Store操作内存 | 支持方式少 | 增加了通用寄存器; 硬布线逻辑控制为主 适合采用流水线 | 1.优化编译 2.有效支持高级 语言 |
3. 计算机流水线处理技术
流水线是指在程序执行时多条指令重叠进行操作的一种准并行处理实现技术。各种部件同时处理是针对不同的指令而言的,它们可同时为多条指令的不同部件进行工作,以提高各部件的利用率和指令的平均执行速度,其处理如程如下:
由于指令序列是按顺序执行,那么在未使用流水线的情况指令的执行情况如下图所示:
由上图得知在未使用流水线的情况下将会浪费大量的时间在等待下一条指令(由于这3条指令分别是由不同的部件来完成的),存在大量的部件的时间片处于空闲状态的,并不能充分的利用部件的处理效率。那么在使用流水线技术的情况下,将会发生什么样的情况呢,为了更好的说明这一点,我们将给出使用流水线技术的情况指令的执行情况,如下图所示:
由上图得知流水线技术就是为了充分利用部件的空闲时间片来处理大量的指令,这样就提高了部件的使用率。流水线技术同时在工业领域也应用广泛,如具有代表性的制造行业(亨利.福特公司)在组装汽车的过程当中就使用了流水线技术来优化其工业效率。可想而知流水线技术的价值与意义。
流水线执行周期是指执行时间最长的一段,其计算公式如下:
- 1条指令执行时间+(指令条数-1)* 流水线执行周期
- 理论公式:(t1+t2+t3+..+tn)+(指令条数-1) * 流水线执行周期
- 实践公式:(指令段+指令条数-1)* 流水线执行周期
流水线的吞吐率是指在单位时间内流水线所完成的任务数量或输出的结果数量,计算流水线吞吐率的基本公式如下:
流水线最大吞吐率是指在理想的情况,流水线的最大吞吐率,是一种理论性的计算方式:
表示执行n条指令的最大吞吐率。
流水线加速比是指完成一批任务,不使用流水线的时间与使用流水线的时间之比,计算流水线的加速比基本公式如下:
4. 多级存储体系
为了加快计算机的处理速度和性价比的考虑,计算机采用了多级存储器,以确保能够获取尽可能的存取效率,同时保持较低的成本。存储体系包括寄存器、Cache(高速缓存)、主存储器、磁盘存储器、光盘存储器、磁带存储器等,存储层次结构如下图所示:
存储器中数据常用的存储方式有顺序存取、直接存取、随机存取和相联存取等4种。
存取类型 | 特点 | 访问方式 | 其它(代表) |
---|---|---|---|
顺序存取 | 无地址,数据以记录的形式进行组织 | 按特定的线性顺序进行访问 | 磁带 |
直接存取 | 有地址与位置无关 | 使用共享的读写装置进行访问 | 磁盘、软盘、光驱 |
随机存取 | 有地址与位置无关 | 无访问序列要求 | 内存、U盘 |
相联存取 | 按内容进行存取 | 与随机存取相似 | Cache |
(1)顺序存取:存储器的数据以记录的形式进行组织。对数据的访问必须按特定的线性顺序进行。 (2)直接存取:与顺序存取相似,直接存取采也使用一个共享的读写装置对所有的数据进行访问。但是每个数据块都拥有唯一的地址标识,读写装置可以直接移动到目的数据块的所在位置进行访问。存取时间也是可变的。
(3)随机存取:存储器的每一个可寻址单元都具有自已唯一的地址和读写装置,系统可以在相同的时间内容对任意一个存储单元的数据进行访问,而与先前的访问序列无关。
(4)相联存取:相联存取也是一种随机存取的形式,但是选择某一单元进行读写的是取决于其内容而不是其地址。与普通的随机存取方式一样,每个单元都有自已的读写装置,读写的时间是一个常数。使用相联存取方式,可以对所有的存储单元的特定位进行比较,选择符合的条件单元进行访问。
【注意】存储器系统的性能取决于存取时间、存储器带宽、存储器周期和数据传输率等来衡量。