计算机体系结构分类
Flynn分类法:
体系结构类型 | 结构 | 特性 | 代表 |
---|---|---|---|
单指令流单数据流SISD | 控制部分:一个 处理器:一个 主存模块:一个 | 单处理器系统 | |
单指令流多数据流SIMD | 控制部分:一个 处理器:多个 主存模块 | 各处理器以异步的形式执行同一条指令 | 并行处理机 阵列处理机 超级向量处理机 |
多指令流单数据流MISD | 控制部分:多个 处理器:一个 主存模块:多个 | 被证明不可能至是不实际 | 目前没有,有文献称流水线计算机为此类 |
多指令流多数据流MIMD | 控制部分:多个 处理器:多个 | 能够实现作业、任务、指令等各级全面并行 | 多核处理机系统多核计算机 |
计算机指令
计算机指令就是指挥机器工作的指示和命令,程序就是一系列按一定顺序排列的指令,执行程序的过程就是计算机的工作过程;控制器靠指令指挥机器工作,人们用指令表达自己的意图,并交给控制器执行。
计算机指令的组成:一条指令由操作码和操作数两部分组成操作码决定要完成的操作,操作数指参加运算的数据及其所在的单元地址。
计算机指令执行过程:取指令-分析指令--执行指令三个步骤,首先将程序计数器PC中的指令地址取出,送入地址总线,CPU依据指令地址去内存中取出指令内容存入指令寄存器IR;而后由指令译码器进行分析,分析指令操作码;最后执行指令,取出指令执行所需的源操作数。
指令寻址的方式:
顺序寻址方式: 当执行一段程序时,是一条指令接着一条指令地顺序执行。
跳跃寻址方式: 指下一条指令的地址码不是由程序计数器给出,而是由本条指令直接给出。程序跳跃后,按新的指令地址开始顺序执行。因此,程序计数器的内容也必须相应改变以便及时跟踪新的指令地址。
指令操作数的寻址方式:
立即寻址方式:指令的地址码字段指出的不是地址,而是操作数本身。
直接寻址方式:在指的地址字段中直接指出操作数在主存中的地址。
间接寻址方式:指令地址码字段所指向的存储单元中存储的是操作数的地址。
寄存器寻址方式:指令中的地址码是寄存器的编号
CISC是复杂指令系统,兼容性强,指令繁多、长度可变,由微程序实现,RISC是精简指令系统,指令少,使用频率接近,主要依靠硬件实现(通用寄存器、硬布线逻辑控制)。具体区别如下:
指令系统类型 | 指令 | 寻址方式 | 实现方式 | 其它 |
---|---|---|---|---|
CISC (复杂) | 数量多,使用频率差别大,可变长格式 | 支持多种 | 微程序控制技术(微码) | 研制周期长 |
RISC (精简) | 数量少,使用频率接近,定长格式,大部分为单周期指令,操作寄存器,只有Load/Store操作内存 | 支持方式少 | 增加了通用寄存器;硬布线逻辑控制为主,效支持高级语适合采用流水线 | 优化编译,有效支持高级语音 |
指令流水线:
指令流水线原理:将指令分成不同段,每段由不同的部分去处理,因此可以产生叠加的效果,所有的部件去处理指令的不同段,如下图所示:
存储系统
计算机存储系统的层次结构:如下图所示:
计算机采用分级存储体系的主要目的是为了解决存储容量、成本和速度之间的矛盾问题。
两级存储:Cache-主存、主存-辅存 (虚拟存储体系)
局部性原理:总的来说,在CPU运行时,所访问的数据会趋向于一个较小的局部空间地址内,包括下面两个方面:
时间局部性原理:如果一个数据项正在被访问,那么在近期它很可能会被再次访问,即在相邻的时间里会访问同一个数据项。
空间局部性原理:在最近的将来会用到的数据的地址和现在正在访问的数据地址很可能是相近的,即相邻的空间地址会被连续访问。
高速缓存Cache:
高速缓存Cache用来存储当前最活跃的程序和数据,直接与CPU交互,位于CPU和主存之间,容量小,速度为内存的5-10倍,由半导体材料构成。其内容是主存内存的副本拷贝,对于程序员来说是透明的。
Cache由控制部分和存储器组成,存储器存储数据,控制部分判断CPU要访问的数据是否在Cache中,在则命中,不在则依据一定的算法从主存中替换。
地址映射:在CPU工作时,送出的是主存单元的地址,而应从Cache存储器中读/写信息。这就需要将主存地址转换为Cache存储器地址,这种地址的转换称为地址映像,由硬件自动完成映射分为下列三种方法:
直接映像:将Cache存储器等分成块,主存也等分成块并编号。主存中的块与Cache中的块的对应关系是固定的,也即二者块号相同才能命中。地址变换简单但不灵活,容易造成资源浪费。(如图所示):
全相联映像:同样都等分成块并编号。主存中任意一块都Cache中任意一块对应。因此可以随意调入Cache任意位置,但地址变换复杂,速度较慢。因为主存可以随意调入Cache任意块,只有当Cache满了才会发生块冲突,是最不容易发生块冲突的映像方式。如图所示:
组组相连映像:前面两种方式的结合将Cache存储器先分块再分组,主存也同样先分块再分组,组间采用直接映像即主存中组号与Cache中组号相同的组才能命中,但是组大全相联映像,也即组号相同的两个组内的所有块可以任意调换。
总线
从广义上讲,任何连接两个以上电子元器件的导线都可以称为总线,通常分为以下三类:
内部总线:内部芯片级别的总线,芯片与处理器之间通信的总线
系统总线:是板级总线,用于计算机内各部分之间的连接,代表的有ISA总线、EISA总线、PCL总线。
外部总线:设备一级的总线,微机和外部设备的总线。代表的有RS232 (串行总线) 、SCSl (并行总线) 、USB (通用串行总线即插即用,支持热插拔)。
还有一些其他的总线,比如半双工总线、全双工总线、串行总线、并行总线等等
可靠性分析
可靠性的相关慨念
平均无故障时间:MTTF=1/失效率
平均故障修复时间:MTTR=1/修复率
平均故障间隔时间:MTBF=MTTF+MTTR
系统可用性=MTTF/ (MTTF+MTTR)*100%
无论什么系统,都是由多个设备组成的,协同工作,而这多个设备的组合方式可以是串联、并联,也可以是混合模式以及N模冗余,假设每个设备的可靠性为R1,R2......Rn,则不同的系统的可靠性R的计算公式如下串行系统可靠性计算公式:R1*R2*R3*...*Rn
注意:串联系统,一个设备不可靠,整个系统崩溃
并联系统:所有设备都不可靠,整个系统才崩溃
并行系统可靠性计算公式:1-(1-R1)*(1-R2)*(1-R3)*...*(1-Rn)
混合系统:串联和并联都存在
系统可靠性计算,实例如下: