软件设计师-03,计算机组成原理02

体系结构、指令流水线、存储系统

SISD:Single Instruction, Single Data,单指令流单数据流

SIMD:Single Instruction, Multiple Data,单指令流多数据流

MISD:Multiple Instruction, Single Data,多指令流单数据流

MIMD:Multiple Instruction, Multiple Data,多指令流多数据流

CISC:Complex Instruction Set Computer,复杂指令系统

RISC:Reduced Instruction Set Computer,精简指令系统

MTTF:Mean Time To Failure,平均无故障时间

MTTR:Mean Time To Repair,平均故障修复时间

MTBF:Mean Time Between Failures,平均故障间隔时间

计算机体系结构分类


Flynn分类法

image-20230916163708534

  • 指令流对应的是控制部分

  • 数据流对应的是处理器

image-20230916164906320

计算机指令


基本概念
  • 计算机指令的组成:一条指令由操作码和操作数两部分组成,操作码决定要完成的操作,操作数指参加运算的数据及其所在的单元地址。

  • 在计算机中,操作要求和操作数地址都由二进制数码表示,分别称作操作码和地址码,整条指令以二进制编码的形式存放在存储器中。

  • 计算机指令执行过程:取指令一一分析指令一一执行指令三个步骤,首先将程序计数器PC中的指令地址取出,送入地址总线,CPU依据指令地址去内存中取出指令内容存入指令寄存器IR:而后由指令译码器进行分析,分析指令操作码:最后热行指今。取出指今热行所需的源操作数


指令寻址方式
  • 顺序寻址方式:当执行一段程序时,是一条指令接着一条指令地顺序执行。

  • 跳跃寻址方式:指下一条指令的地址码不是由程序计数器给出,而是由本条指令直接给出。程序跳跃后,按新的指令地址开始顺序执行。因此,程序计数器的内容也必须相应改变,以便及时跟踪新的指令地址。

  • 指令操作数的寻址方式

    • 立即寻址方式:指令的地址码字段指出的不是地址,而是操作数本身。
    • 直接寻址方式:在指令的地址字段中直接指出操作数在主存中的地址。
    • 间接寻址方式:指令士也址码字段所指同的存储单元中存储的是操作数的地址。
    • 寄存器寻址方式:指令中的地址码是寄存器的编号。
    • 其他寻址方式

指令系统
  • CISC

    复杂指令系统,兼容性强,指令繁多,长度可变,微程序控制

  • RISC

    精简指令系统,指令少,使用频率接近,主要依靠硬件实现(通用寄存器、硬布线逻辑控制)

image-20230916165708678

image-20230916170141403


指令流水线

指令流水线的原理:指令流水线原理:将指令分成不同段,每段由不同的部分去处理,因此可以产生叠加的效果,所有的部件去处理指令的不同段,如下图所示

image-20230916170500855
  • 流水线周期:指令分成不同执行段,其中执行时间最长的段为流水线周期

  • 流水线执行时间:1条指令总执行时间+(总指令条数-1)*流水线周期

  • 流水线吞吐率:总指令条数/流水线执行时间

  • 流水线加速比:不使用流水线总执行时间/使用流水线总执行时间

  • 超标量流水线技术:常规流水线是度为1的,即每个流水线阶段只执行一个部分,当度大于1时,就是超标量技术,当度为3时,相当于3条流水线并行执行,即取指、分析、执行每个阶段都同时处理3条指令,因此,当题目提到度的概念时,计算时需要将:指令条数=指令条数/度。然后再套流水线执行时间的公式。

image-20230916171319962

image-20230918170158720

存储系统


基本概念
  • 计算机存储系统的层次结构:

    image-20230918170254077

    从上而下,容量越来越大,速度越来越慢

  • 计算机采用分级存储体系的主要目的是为了解决储存容量、成本和速度之间的矛盾问题

  • 两级存储:Cache-主存、主存-辅存(虚拟存储体系)


局部性原理

局部性原理:总的来说,在CPU运行时,所访问的数据会趋向于一个较小的局部空间地址内,包括下面两个方面:

  • 时间部性原理:如果一个数据项正在被访问,那么在近期它很可能会被再次访问,即在相邻的时间里会访问同一个数据项

    • 比如循环语句
  • 空间局部性原理:在最近的将来会用到的数据的地址和现在正在访问的数据地址很可能是相近的,即相邻的空间地址会被连续访问

    • 比如数据结构:数组等

高速缓存Cache

高速缓存(Cache):是用来存储当前最活跃的程序和数据的一种硬件组件,直接与CPU交互,位于CPU和主存之间,容量小,速度通常达到内存的5-10倍。Cache由半导体材料构成,其内容是主存内存的副本拷贝,对于程序员来说是透明的。

Cache组成:本身由两部分组成:控制部分和存储器。存储器用于存储数据,控制部分的作用是判断CPU要访问的数据是否已经在Cache中。在则命中;不在,根据一定的替换算法,从主存中获取需要的数据并存储到Cache中。

地址映射:在CPU工作时,它发送的是主存单元的地址,但实际需要读取/写入的信息来自于Cache存储器。因此,需要将主存地址转换为Cache存储器的地址,这个过程称为地址映射。地址映射由硬件自动完成,通常有以下三种方法:

  • 直接映像:将Cache存储器等分成块,主存也等分成块并编号。

    主存中的块与Cache中的块的对应关系是固定的,也即二者块号相同才能命中。地址变换简单但不灵活,容易造成资源浪费。

    image-20230918171621088
  • 全相联映像:同样都等分成块并编号。主存中任意一块都与Cache中任意一块对应。

    可以随意调入Cache任意位置,但地址变换复杂,速度较慢。因为主存可以随意调入Cache任意块,只有当Cache满了才会发生块冲突,是最不容易发生块冲突的映像方式。

    image-20230918171951749
  • 组组相连映像:内存和Cache都先分块再分组。组内直接映像,组间全相联映像。

    前面两种方式的结合将Cache存储器先分块再分组,主存也同样先分块再分组,组间采用直接映像即主存中组号与Cache中组号相同的组才能命中,但是组内全相联映像,也即组号相同的两个组内的所有块可以任意调换。

image-20230918190532560


Cache命中率
  • 当CPU所访问的数据在Cache中时,称为命中,直接从Cache中读取数据,否则没有命中,需要从主存中读取所需的数据。

image-20230918190905474

  • 这道题中,取指令的命中率为98%,说明有98%的指令从Cache中取到;那么剩下的2%将会从主存中取到。

    取数也是一样,但是只有1/5的指令需要额外取一个数。所以还需要再乘以20%。


主存编址

image-20230918192920637

1695036509501
  • 这道题中,需要注意的点:

    • 大写K表示1024,小写k表示1000
    • 大写B表示字节Byte,小写b表示位bit。而一个字节为8位,即1B=8b

IO设备


总线

从广义上讲,任何连接两个以上电子元器件的导线都可以称为总线,通常分为以下三类:

  • 内部总线:内部芯片级别的总线,芯片与处理器之间通信的总线。

  • 系统总线:是板级总线,用于计算机内各部分之间的连接,具体分为数据总线(并行数据传输位数)、地址总线(系统可管理的内存空间的大小)、控制总线(传送控制命令)。代表的有ISA总线、EISA总线、PCI总线。

  • 外部总线:设备一级的总线,微机和外部设备的总线。代表的有RS232(串行总线)、SCSI(并行总线)、USB(通用串行总线,即插即用,支持热插拔)。

image-20230918193637740

  • 本题注意:

    • 串行是一条总线,适用于长距离低速传输
    • 并行是多条总线,适用于短距离高速传输
    • 半双工总线相当于窄的双向道路,虽然允许双向同行但是一次只能同行一个方向。全双工就是宽的双向道

系统分析


系统可靠性分析

公式:

  • 平均无故障时间MTTF=1/失效率。

  • 平均故障修复时间MTTR=1/修复率。

  • 平均故障间隔时间MTBF=MTTF+MTTR

  • 系统可用性=MTTF/(MTTF+MTTR)*100%

无论什么系统,都是由多个设备组成的,协同工作,而这多个设备的组合方式可以是串联,并联,也可以是混合模式,假设每个设备的可靠性为R1,R2…Rn,则不同系统的可靠性R的计算公式如下:

  • 串联系统:一个设备不可靠,整个系统崩溃

    image-20230918194430784
  • 并联系统,所有设备都不可靠,整个系统才崩溃

    image-20230918194519708
  • 混合系统,划分串联、并联:

    image-20230918194637617
image-20230918194953643