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


    计算机组成原理

    概论

    计算机分类

    • 电子模拟计算机

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

      • 专用计算机

      • 通用计算机

        • 超级计算机
        • 大型机
        • 服务器
        • 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设备

    输入输出系统

  • 相关阅读:
    对类对象使用new时地址分配的情况
    c++堆与栈的简单认识
    多态公有继承
    Cookie & Session & JSP入门
    Response & ServletContext
    Java网络编程篇文章阅读顺序
    URL编程
    UDP网络编程
    TCP网络编程
    InetAddress类的使用
  • 原文地址:https://www.cnblogs.com/wgjmcal/p/13264800.html
Copyright © 2020-2023  润新知