组成原理 中央处理器

1.CPU的组成和功能
  • CPU包括运算器控制器,主要职责数据加工操作控制
  • SISD单指令流单数据流计算机:同一时刻只能执行一条指令(即只有一个控制流),处理一个数据(即只有一个数据流)
  • CPU的功能
    • 数据加工:按照指令的功能要求对数据进行各种运算和处理
    • 顺序控制:对程序中指令的执行顺序加以控制
    • 操作控制:CU向相应的操作部件发出操作控制信号
    • 时间控制:定时系统对各种操作的执行过程严格定时,对不同操作之间进行时间协调
    • 中断控制:对程序中断进行开,关设置,且具有检测响应中断请求的能力
  • 数据通路:CPU中全部执行部件的组合,对数据以机器字为单位进行操作
  • 组成CPU的基本功能部件,前四者组成数据通路
    • ALU
    • 寄存器组
    • 片内总线
    • 中断逻辑
    • 控制单元 CU
      • 从数据通路接收并分析当前指令,然后控制数据通路如何执行这条指令
      • 向计算机系统每个部件提供它们协调运行所需的控制信号
      • 依据当前正在执行的指令和其所处的执行步骤,形成并提供这一时刻整机各部件需要的控制信号
  • 微操作:计算机中最基本的不可再分解的操作
  • 微命令:执行微操作所需的控制命令
2.CPU数据通路的结构和组成
  • 指令周期:从读取指令开始到指令执行结束所经历的全部时间
    • 取址周期:从存储器取出指令

      • 1->R是发送读命令,括号意为按照括号内内容作为地址访问存储器对应存储单元
    • 取指周期将指令送到CU后,需对程序计数器进行 +1

      取址周期

    • 间址周期:获得有效地址

      • Ad即Addr,IR指令寄存器中当前指令的地址码字段
        间址周期
    • 执行周期

    • 中断周期

  • 指令周期的操作序列
    • 取指令:将要执行的一条指令从内存单元取出送至CPU
    • 指令译码:分析指令的操作码寻址方式码,确定指令功能操作数类型寻址方式
    • 读取数据
    • 执行操作
    • 存放结构
  • 一个指令周期不同阶段可能会多次用到同一种或同一类部件,处理这种情况的方法有两种
    • 部件冗余:设置多个同种或同类部件分别支持指令周期不同阶段,可实现单周期数据通路
    • 部件复用:同类部件仅设置一个,指令周期不同阶段分时共享这个部件,适合多周期数据通路
  • CPU结构分类
    • 单周期CPU
      • 所有指令周期都仅包含一个时钟周期,即指令周期 = 时钟周期
      • 时钟周期长度取决于数据通路上经历路径最长的指令所需时间
      • 控制单元逻辑简单
      • 常采用分散互连结构
    • 多周期CPU
      • 一个指令周期包含多个时钟周期
      • 可通过部件复用技术降低硬件复杂性
      • 任意时刻仅执行一条指令,但每条指令需要多个时钟周期完成
      • 可使用分散互连结构,也可使用总线结构
    • 流水线CPU
      • 将单周期结构流水线化,CPU可同时执行多条指令
      • 显著提高了CPU吞吐率
  • MIPS 32三种指令类型格式
    • Rs,Rt为源寄存器,Rd为目的寄存器
    • shamt:偏移量shift amount
    • Func:函数码,与OP配合使用
MIPS 32指令格式
3.中断系统
  • 中断源分类
    • 内部中断
      • 人为设置的中断,如访管指令特权指令,功能:将CPU的执行过程从用户现行程序转移到操作系统程序
      • 程序性异常:CPU执行程序中出现的诸如运算溢出除数为0未定义指令
    • 外部中断
      • IO设备:程序中断方式工作的IO接口
      • 硬件故障
  • CPU响应中断的条件:EINT = 1 中断允许触发器为1
4.指令周期流程
  • 取指令阶段(公操作)
    • Addr(IM) <- (PC); IM指令存储器
    • Read(IM);
    • Addl_B <- (PC), (PC) + 4
  • 单总线CPU结构
    • ALU两个数据输入端要设置暂存器,或者一个输入端和输出端设置暂存器
    • 降低了并行性
  • 单总线结构CPU数据通路图
单总线结构CPU数据通路图
5.指令流水处理器
  • 流水线技术
    • 时间并行性
    • 对某个部件来说,前一条指令的一个阶段处理完后就可以顺序处理下一条指令相同阶段,连续多条指令就可以在数据通路上重叠地执行
  • 影响指令流水的因素
    • 结构冒险

      • 硬件不支持多条指令在同一个时钟周期内同时执行
      • 由于指令间竞争硬件资源引发
      • 解决方法:资源重复,即部件冗余
    • 数据冒险

      • 生产数据的源指令和消费数据的目的指令重叠执行时,不能满足程序要求的指令间数据处理的先后关系
      • 由于前面的指令写结果前后面的指令就要读取而造成的
      • 出现原因:数据的引用先于数据的产生
      • 解决方法:
        • 后推法:将数据引用操作推后执行
        • 设置专用数据通路:适当增加硬件使得后面的指令可以从内部资源提前获得所需操作数
          数据冒险
    • 控制冒险

      • 条件转移指令做出决定前,其后序指令已经出现在流水线中
      • 解决方法:
        • 后推法:指令译码阶段ID起始处判断当前指令为分支指令,就把流水线停顿下来,直到完成比较操作转移地址计算
        • 分支预测法:
©著作权归作者所有,转载或内容合作请联系作者
平台声明:文章内容(如有图片或视频亦包括在内)由作者上传并发布,文章内容仅代表作者本人观点,简书系信息发布平台,仅提供信息存储服务。

推荐阅读更多精彩内容