计算机组成原理知识点整理


计算机组成原理

概论

计算机分类

  • 电子模拟计算机

    • 数值由连续量表示,运算过程连续
  • 电子数字计算机

    • 专用计算机

    • 通用计算机

      • 超级计算机
      • 大型机
      • 服务器
      • PC机
      • 单片机
      • 多核机

计算机发展

  • 五代变化

    • 数据处理机

      • 电子管
    • 工业控制机

      • 晶体管
    • 小型计算机

      • 中小规模集成电路
    • 微型计算机

      • 大规模和超大规模集成电路
    • 单片计算机

      • 巨大规模集成电路
  • 性能指标

    • 吞吐量

      • 在某一时间间隔内处理的信息量
    • 响应时间

      • 从输入有效到系统产生响应的时间度量
    • 利用率

      • 在给定事件间隔内系统被实际使用的时间所占的比重
    • 处理机字长

    • 总线宽度

    • 存储器容量

    • 存储器带宽

    • 主频 f /时钟周期 T

      • f = 1/T
    • CPU执行时间

      • tcpu=CPU执行周期数×CPU时钟周期
    • CPI

      • 执行一条指令所需的平均时钟周期数
      • 执行某个程序所需的时钟周期数÷该程序指令总数
    • MIPS

      • 平均每秒执行多少百万条定点指令数
      • = 指令数 ÷ (CPU执行时间 × 10^6)
    • PLOPS

      • 每秒执行浮点操作的次数

计算机硬件

  • 冯诺依曼结构

    • 组成

      • 运算器
      • 存储器
      • 控制器
      • 输入设备
      • 输出设备
    • 核心

      • 存储程序

计算机软件

  • 系统程序

    • 服务性程序

      • 诊断
      • 排错
      • 练习
    • 语言程序

      • 汇编
      • 编程
      • 解释
    • 操作系统

    • 数据库管理系统

  • 应用程序

多级层次结构

  • 微程序级
  • 一般机器级
  • 操作系统级
  • 汇编语言级
  • 高级系统级

运算器

数据概要

  • 数据格式

    • 数值格式

      • 类型

        • 小数
        • 整数
        • 实数
        • 复数
      • 表示

        • 定点

          • 组成

            • 符号位
            • 数值域
          • 分类

            • 纯整数
            • 纯小数
        • 浮点

          • 组成

            • 符号位 S
            • 指数 E
            • 尾数 M
          • IEEE754标准

            • 组成

              • 符号位 S
              • 指数 E = e+固定偏移值
              • 尾数 M
    • 非数值格式

      • 汉字格式

        • 输入码

          • 数字码
          • 拼音码
          • 字形码
        • 处理

          • 内码
        • 输出码

          • 字模码
      • 字符格式

        • ASCII码
  • 真值

  • 机器码

    • 原码

    • 反码

    • 补码

    • 移码

      • 比较指数大小以及对阶
  • 校验码

运算原理

  • 定点

    • 加法
    • 减法
    • 乘法
    • 除法
  • 浮点

    • 加法/减法

      • 运算流程

        • 0操作数检查

        • 比较解码大小并完成对阶

        • 尾数求和

        • 结果规格化

        • 舍入处理

          • 就近
          • 朝0
          • 朝正无穷
          • 朝负无穷
        • 溢出处理

          • 阶码

            • 上溢
            • 下溢
          • 尾数

            • 上溢
            • 下溢
    • 乘法/除法

      • 运算流程

        • 0操作数检查

        • 比较解码大小并完成对阶

        • 尾数求和

        • 结果规格化

        • 舍入处理

          • 就近
          • 朝0
          • 朝正无穷
          • 朝负无穷
        • 溢出处理

          • 阶码

            • 上溢
            • 下溢
          • 尾数

            • 上溢
            • 下溢

硬件层次

  • 定点运算器

    • 基本组成

      • 算术/逻辑运算单元 ALU
      • 数据缓冲存储器
      • 通用寄存器
      • 数据总线
    • 逻辑运算

      • 逻辑非
      • 逻辑加
      • 逻辑乘
      • 逻辑异
    • 分类

      • 单总线结构
      • 双总线结构
  • 浮点运算器

    • 浮点运算流水线

      • 流水线原理
      • 流水线浮点加法器
  • 并行技术

    • 先行进位
    • 阵列乘除法
    • 流水线

指令系统

指令概述

  • 微指令

    • 硬件
  • 机器指令

    • 简称指令
    • 符号表示---->汇编指令
  • 宏指令

    • 软件

指令系统

  • 指令系统分类

    • 复杂指令系统计算机CSIC

    • 精简指令系统计算机RSIC

      • 选取使用频率最高的一些简单指令,指令条数少
      • 指令长度固定,指令种类少,寻址方式种类少
      • 只有取数存数指令访问存储器,其他都在寄存器中进行
  • 性能要求

    • 完备性

      • 功能齐全
    • 有效性

      • 效率高
    • 规整性

      • 指令格式与数据格式一致性
    • 兼容性

      • 向上兼容
  • 指令格式

    • 指令字

      • 指令字长度

        • 一个指令字中包含二进制代码的位数,其长度应该与计算机的数据字长相匹配,以简化指令访存的操作,一般指令字长为计算机字长的整数倍。

        • 分类

          • 单字长指令

            • 指令字长等于机器字长
          • 双字长指令

            • 指令字长等于两个机器字长指令
            • 目的:提供足够的地址位来解决访问内存任何单元的寻址问题
            • 缺点:是必须两次或多次访问内存以取出一整条指令,降低了CPU的运算速度,又占用了更多的存储空间。
      • 机器字长

        • 计算机能直接处理的二进制数据的位数,他决定了计算机的运算精度。
    • 结构

      • 操作码OP

        • 分类

          • 固定长度

            • 优点:编码方法简单,便于指令的译码
            • 缺点:不方便指令系统中增加新的指令(扩展不方便)
          • 可变长度

            • 减小操作码的平均长度,提高指令编码的效率,指令的扩展方便
          • 计算指令操作码的平均长度

        • 设计

          • 与地址码的设计相匹配

            • 如指令长度固定的情况下,地址码数量较多的指令可以安排较短的操作码,地址码数量较少的指令中可以安排较长的操作码
          • 编码

            • 哈夫曼编码
          • 扩展

      • 地址码A

        • 零地址指令

          • 空操作 停止等
        • 一地址指令

          • AC<-(AC)op(A)

            • 指令编码中只有一个地址码,指出了参加操作的一个操作数的存储位置A
            • 如果还有另一个操作数则隐含在累加器AC中
        • 二地址指令

          • A1<-(A1)op(A2)

            • eg: MOV AL ,BL

      ADD AL,30

        	- 按操作数所在位置分类
      
        		- 寄存器-寄存器(RR)型指令
        		- 寄存器-存储器(RS)型指令
        		- 存储器-存储器(SS)型指令
      
        - 三地址指令
      
        	- A3<-(A1)op(A2)
      
    • 特点

      • 指令字长
      • 地址格式
  • 寻址方式

    • 指令寻址

      • 目的

        • 确定下一条预执行指令的指令地址
      • 寻址方式

        • 顺序寻址

          • (PC)+1->PC 程序计数器自动加1
        • 跳跃寻址

          • 由转移指令JMP指出
    • 数据寻址

      • 目的

        • 把操作数的形式地址A,变换为操作数的有效地址EA
      • 寻址方式

        • 隐含寻址

          • 例如:单地址的指令格式,没有在地址字段指明第二操作数地址,而是规定累加寄存器AC作为第二操作数地址,AC对单地址指令格式来说是隐含地址
        • 立即寻址

          • 形式地址A就是操作数本身
        • 直接寻址

          • EA=A

            • 直接根据读内存找到操作数,形式地址不需要经过任何处理
        • 间接寻址

          • EA=(A)

            • 有效地址由形式地址间接提供,形式地址是操作数的地址的地址
        • 寄存器寻址

          • EA=R

            • 形式地址是寄存器的编号,直接去寄存器中寻址操作数
        • 寄存器间接寻址

          • EA=(R)

            • 操作数里存放的是寄存器的编号,寄存器中存的不是操作数而是操作数的有效地址。所以操作数在存储器里。
        • 偏移寻址

          • EA=A+(R)

            • 形式地址需要和另一个寄存器中的地址相加,
              形式地址A是显示的,另一个地址字段隐含在某个专用的寄存器R中
          • 根据寄存器的不同类型来分类

            • 相对寻址

              • EX=A+(PC) ----PC程序计数器 PC存储当前正在执行指令的地址
            • 基址寻址

              • EA=A+(BR) BR为基地址寄存器
            • 变址寻址

              • EA=A+(IX) IX为变址寄存器(专用) 通用寄存器也可以作为变址寄存器
              • 在程序执行的过程中IX内容可变,形式地址A不变,便于处理数组问题
        • 堆栈寻址

  • 指令分类

    • 数据处理

      • 算数运算型指令
      • 逻辑运算型指令
    • 数据存储

    • 数据传送

      • 输入输出类指令
      • 数据传送类指令
      • 指令传送类指令
      • 标志传送指令
    • 程序控制

      • 系统控制类指令

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

存储器

总线

外存与I/O设备

输入输出系统

相关