计算机组成原理——CPU的结构和功能

CPU的结构和功能:

CPU的结构:

  • CPU的功能:
    • 控制器功能:
      • 取指令 指令控制
      • 分析指令 操作控制
      • 执行指令,发出各种操作命令
      • 控制程序的输入及输出 时间控制
      • 总线管理 处理中断
      • 异常情况和特殊请求
    • 运算器:
      • 实现算术运算和逻辑运算 数据加工
  • CPU的结构框图
    在这里插入图片描述
  • CPU的寄存器:
    • 用户可见寄存器
      • 通用寄存器 存放操作数 某一种寻址方式的专门寄存器
      • 数据寄存器 存放操作数 两个寄存器拼接存放双倍字长数据
      • 地址寄存器 存放地址
      • 条件码寄存器 条件码 作为分支的依据
    • 控制和状态寄存器
      • 控制寄存器 PC->MAR->M->MDR->IR 由CPU控制
      • 状态寄存器 存放条件码
      • PSW寄存器 存放程序状态字 存放程序的中断现场
  • 控制单元CU和中断系统
    • CU产生全部指令的位操作命令序列,使用下面两种来实现
      • 组合逻辑设计 硬连线逻辑
      • 微程序设计 存储逻辑
    • 中断系统
  • ALU,运算逻辑部件

指令周期:

  • 指令周期的基本概念:

    • 指令周期:
      • 取出并指令一条指令需要的时间
      • 完成一条指令:
        • 取指,分析 取指周期
        • 执行 执行周期
          在这里插入图片描述
  • 每条指令的指令周期不同
    在这里插入图片描述

  • 具有间接寻址的指令周期
    在这里插入图片描述

  • 具有中断周期的指令周期
    在这里插入图片描述

  • 指令周期的流程:
    在这里插入图片描述

  • CPU工作周期的标志

    • CPU访存的四种性质:
      • 取指令 取指周期
      • 取地址 间址周期
      • 存取操作数或结果 执行周期
      • 存程序断点 中断周期
      • 在不同的周期,一个访存操作的意义是不同的
        在这里插入图片描述
        通过时钟,固定个时钟周期对应一个机器周期,来确定从前的访存操作发生在哪个周期
  • 指令周期的数据流

    • 指令周期数据流:
      在这里插入图片描述PC给出地址,给MAR,CU发出读命令,通过控制总线到存储器,通过数据总线将数据给MDR,将MDR的数据给IR,CU发出PC+1指令
    • 间址周期数据流:
      在这里插入图片描述
    • 执行周期数据流
      不同指令不同
    • 中断周期数据流:
      在这里插入图片描述CU给出断点保存位置,给MAR,再地址总线,存储器中,发出写命令,PC将寄存器值存放到MDR,存入内存,CU给出中断服务程序地址。

指令流水

  • 如何提高机器速度

    • 提高访存速度:
      高速芯片,cache,多体并行
    • 提高IO和主机之间的传输速度
      中断,DMA,通道
    • 提高运算器速度
      高速芯片,改进算法,快速进位链
    • 提高整机处理能力
      高速配件,改进系统结构,开发系统并行性
  • 系统并行性:

    • 并行概念:
      • 并发:两个或多个以上时间在统一时间段发生
      • 同时:连个或多个时间在同一时刻发生
    • 并行等级:
      • 过程级,程序,进程 粗粒度,通过软件实现
      • 指令级,指令之间,指令内部 细粒度,硬件实现
  • 指令流水的原理:
    在这里插入图片描述

  • 影响指令流水的效率因素:
    在这里插入图片描述执行时间大于取值时间,使用指令部件缓冲区,当执行部件空闲就会取指令部件缓冲区中取出指令
    在这里插入图片描述
    其中的FO为取操作数,WO为存放结果,FI为取指令
    指令预取技术:利用空闲时间,将多条指令预取到CPU中

    在这里插入图片描述解决方法:后推法,旁路技术(将发生冲突的结果直接写入第二条指令的输入,节约时间)

    在这里插入图片描述

  • 流水线性能:

    • 吞吐率:单位时间内流水线完成的指令或输出结果的数量
      m段流水线,每段时间为t

      • 最大吞吐率:完全未发生冲突
        Tmax=1/t
      • 实际吞吐率,连续处理n条指令的吞吐量
        Tp=n/m * t+(n-1) * t在这里插入图片描述实际吞吐量就是求出处在实际工作情况下,每条指令的平均执行时间:(m * t+(n-1) * t)/n;再用1/每条指令的平均执行时间,得到的是n/(m * t+(n-1) * t),也就是单位时间可以执行的指令数
        最大吞吐量和实际吞吐量的区别就在于:最大吞吐量没有将流水线开始时的状况加入计算,只计算了在第一条指令执行完后,流水线进入平稳状态后的吞吐量
    • 加速比:
      在这里插入图片描述 * 效率:
      在这里插入图片描述

  • 其他流水技术:
    在这里插入图片描述在这里插入图片描述
    这个和增加流水线级数有什么区别:流水线级之间有锁存器,用来存放上一级完成的结果,送入下一级,当下一级空闲就取出指令,在超流水技术中,相同级之间的不同段不需要加入这样的锁存器
    在这里插入图片描述
    在这里插入图片描述
    在这里插入图片描述

中断系统:

  • 概述:

    • 引起中断的各种因素

      • 人为设置转管程序
        在这里插入图片描述
      • 程序性事故
        溢出,操作码不能识别,除法异常
      • 硬件故障
      • IO设备中断
      • 外部事件
    • 中断系统要解决的问题

      • 各中断源如何向CPU提出中断
      • 多个中断源提出中断如何
      • CPU在什么条件,什么时间,方式响应中断
      • 如何保护现场
      • 如何找到入口地址
      • 如何恢复现场
      • 处理中断过程中,出现新中断怎么办
    • 中断请求标记和中断判优逻辑

      • 中断请求标记
        • INTR 一个中断源对应一个INTR
        • 多个INTR组成了中断请求标记寄存器
          在这里插入图片描述
    • 中断判优逻辑

      • 硬件实现(排队器)
        • 排队器分散在各个中断源的接口电路中,链式排队器
          • 见第五章
        • 集中在CPU中
          在这里插入图片描述
      • 软件实现:
        在这里插入图片描述
    • 入口地址

      • 硬件向量法:
        在这里插入图片描述
      • 软件查询法:
        在这里插入图片描述
  • 中断响应:

    • 响应的条件:
      • 允许中断触发器 EINT=1
      • 响应中断的时间
        • 通常情况为指令结束之后,查询并执行中断
          在这里插入图片描述
    • 中断隐指令:
      • 保存程序断点
        • 断点存放在指定位置
      • 寻找服务程序入口地址
        • 向量地址->PC 硬件方式
        • 中断识别程序入口地址M->PC 软件方式
      • 硬件关中断
        • EINT置为0
          在这里插入图片描述
        • INT中断标记
        • EINT允许中断
        • R-S触发器
        • 排队器中只要有一个请求了中断,当EINT为1则通过或门和与非门,得到INT为0,表示有中断请求,这时0信号通过非门,将EINT的R置为1,EINT为0,表示不可以被中断,同时排队器通过地址形成部件得到中断源地址。
        • RS触发器:
          S=0,R=0时候,Q状态保持不变。
          S=1,R=0时候,Q状态被设置为1.
          S=0,R=1时候,Q状态被设置为0.
          S=1,R=1时候,Q状态不确定。
  • 保护现场:

    • 保护现场:
      • 断点 中断隐指令
      • 寄存器内容 中断服务程序
    • 恢复现场:
      • 中断服务程序
    • 中断服务程序:
      • 保护现场
      • 其他服务程序
      • 恢复现场
      • 中断返回
  • 多重中断:

    • 在执行中断服务程序过程中,又被中断了,当该中断优先级高,中断当前中断服务程序
    • 实现多重中断的条件:
      • EINT,提前设置开中断指令
  • 屏蔽技术:

    • 屏蔽触发器的作用
      在这里插入图片描述
      第一种表示在发出中断时使用mask,来屏蔽某个中断的提出,
      第二种表示在中断提出后,在即将进入排队器时,于mask做与非运算让某个中断不能进入排队。
      在这里插入图片描述
      每个中断源的中断屏蔽字对应一个位,可以通过这样的设置来决定,当某个中断请求发出,该将各个中断源的中断屏蔽字设为什么

    • 屏蔽技术可以改变处理优先级

      • 响应优先级 不可改变
      • 处理优先级 可以改变
        在这里插入图片描述响应优先级指定是,当某个时刻某有中断执行,需要选择哪个进入,处理优先级指的时,当某个低优先级中断执行时,可以被高优先级中断打断
        在这里插入图片描述
    • 新屏蔽字设置:
      在这里插入图片描述
      置屏蔽字,是将某个中断的屏蔽字设置到MASK中,也就是设置处理优先级,恢复屏蔽字是将MASK设置到初始,也就是恢复到响应优先级

  • 多重中断的断步保护:两种方法
    在这里插入图片描述

  • 2
    点赞
  • 5
    收藏
    觉得还不错? 一键收藏
  • 2
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论 2
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值