zoukankan      html  css  js  c++  java
  • 计组原理知识点整理之CPU

    计算机组成原理

    CPU

    基本功能

    • 自动完成取出指令和执行指令的任务

    结构图

    • 虚线框为CPU

    基本部件

    • 运算器

      • 算术逻辑运算单元ALU

        • 执行运算 两个数一个来自缓存寄存器DR 一个来自累加器AC 运算结果暂时存放到累加器中
      • 状态条件寄存器PSW

        • 0标志位 溢出标志位 等
      • 数据缓冲寄存器DR

        • 信息进出CPU都有在这蹲点,不论是指令还是数据进CPU都要先进缓存寄存器
      • 通用寄存器R

    • 控制器

      • 程序计数器PC

        • 下一条将要执行指令的地址
      • 指令寄存器IR

        • 当前正在执行的指令,这里的指令中包含操作码和地址码
      • 指令译码器ID

        • 指令译码器把翻译结果告诉操作控制器和时序产生器,他们再按照时间顺序向计算机的执行部件发出执行命令
      • 操作控制器

        • 功能

          • 建立数据通路
        • 分类

          • 硬布线控制器
          • 微程序控制器
      • 时序产生器

    • cache

      • 地址寄存器AR

        • 存放CPU正在访问的内存的地址,一般和地址总线直接相连

    指令周期

    • 基本概念

      • 指令周期

        • 取指令并执行指令的周期
      • CPU周期/机器周期

        • 从主存中读一条指令的最短周期
      • 时钟周期/节拍脉冲

        • 完成一次微操作
    • 流程

      • 取指令

        • PC中的指令地址被放到指令地址总线上
        • 从指存中根据地址读取指令
        • 指令通过指令总线装入IR中
        • 从IR中取指令
        • PC+1
        • 对指令译码
      • 执行指令

        • 具体分析
    • 指令控制同步

      • 定长指令周期

        • CPU周期固定,节拍数固定,按CPU周期同步

        • 单周期

          • 在一个CPU周期中完成取指令和执行指令操作
      • 变长指令周期

        • CPU周期可变,节拍数可变,按时钟周期数同步
        • 多周期
    • 典型指令的指令周期

      • MOV R0,R1

        • 传送指令:(R0)->R1
      • LAD R1,6

        • 取数指令:从数存6号单元取数到R1中
      • ADD R1,R2

        • 加法指令:(R1)+(R2)->(R2)
      • STO R2,(R3)

        • 存数指令:将R2中的值写入R3中地址的位置
      • JMP 101

        • 转移指令:改变程序执行顺序到101号单元
      • AND R1,R3

        • 逻辑乘:(R1)*(R3)->R3
    • 方框语言表示指令周期

    时序信号

    • 硬布线控制器

      • 主状态周期
      • 节拍电位
      • 节拍脉冲
    • 微程序控制器

      • 节拍电位
      • 节拍脉冲

    微程序控制器

    • 概述

      • 把操作控制信号编写成微指令,放到只读存储器中(控制存储器),当机器运行时 一条一条取出这些微指令,从而产生各种操作控制信号,使相应的部件执行所规定的操作。
    • 概念

      • 微命令

        • 控制部件通过控制线向执行部件发出的各种控制命令
      • 微操作

        • 执行部件接受微命令后所进行的操作

        • 分类

          • 相容性微操作

            • 同时或在同一个CPU周期内可以并行执行的微操作
          • 互斥性微操作

      • 控制部件

      • 执行部件

      • 微指令

        • 在机器的一个CPU周期中,一组实现一点操作功能的微命令的组合
      • 微程序

        • 实现一条机器指令功能的许多条微指令组成的序列
        • 1条机器指令=1个微程序
    • 控制原理

    • 微程序设计

      • 目标

        • 缩短微指令字长度

          • 减小控制存储器的容量
        • 提高微程序执行速度

        • 便于修改微指令

          • 提高设计灵活性
      • 微命令编码

        • 直接表示

          • 微指令字较长
        • 编码表示法

          • 分段二次译码

            • 速度稍稍减慢
            • 较为普遍
        • 混合表示法

          • 把直接表示法和字段编码法混合使用,以便能综合考虑指令字长、灵活性、执行微程序素的等方面的要求
      • 微地址形成方法

        • 计数器
        • 多路转移
      • 微指令

        • 字段

          • 操作字段

          • 顺序字段

            • 决定、产生下一条指令地址
        • 格式

          • 水平型微指令

            • 一次能定义并执行多个并行操作微命令的微指令
            • 控制字段|判别测试字段|下地址字段
          • 垂直型微指令

            • 微指令中设置微操作码字段,采用微操作码编译法,由微操作码规定微指令的功能

    流水CPU

    • 过程

    • 时间

    • 影响因素

      • 资源相关

        • 两条指令同时争用一个功能部件发生冲突

        • 解决

          • 前一指令访存时,后一指令暂停一个时钟周期
          • 增设存储器
      • 数据相关

        • 前一条指令执行完毕以后才能执行下一条指令

        • 解决

          • 在流水CPU的运算器中设置若干运算结果缓冲寄存器,暂时保留运算结果,以便于后继指令直接使用,这称为向前或定向传送技术。
          • 将遇到数据相关的指令及其后续指令都暂停一个至几个时钟周期,直到数据相关问题消失
          • 通过编译器对数据相关的指令编译优化,调整指令顺序。
      • 控制相关

        • 跳转指令

        • 解决

          • 延迟转移
          • 转移预测
    • 性能指标

      • 吞吐率

        • 单位时间内流水线所完成的任务数量TP=n/Tk n是任务数 Tk是处理完成n个任务所用的时间
      • 加速比

        • 不使用流水线和使用流水线所用时间之比S=T0/Tk T0不使用流水线的执行时间 Tk使用流水线的执行时间 S最大可取到k (流水线的段数)
      • 效率

        • E=n个任务占用k时空区有效面积/n个任务所用的时间 与k个流水段所围成的时空区总面积 最高为1

  • 相关阅读:
    express学习
    安装MongoDB步骤
    js事件流
    关于html,css,js三者的加载顺序问题
    重写JS的鼠标右键点击菜单
    深入JS原型与原型链
    eureka学习(二)
    eureka学习(一)
    mysql学习-explain中的extra
    mysql学习-explain
  • 原文地址:https://www.cnblogs.com/wgjmcal/p/13264942.html
Copyright © 2011-2022 走看看