计算机组成原理:408考研|王道|学习笔记II

系列目录

计算机组成原理 学习笔记I
计算机组成原理 学习笔记II



  • 持续更新~
  • 欢迎评论区留言指正
  • 如果你是Obsidian用户,可以导入自己的笔记库中,效果最佳
  • ⚠️如需转载,请标明出处!

第四章 指令系统

4.1 指令系统

4.1.1 指令格式

  • 指令的定义
    • 指令,又称机器指令,是计算机运行的最小功能单位
    • 一台计算机的所有指令的集合构成该机的指令系统,又称指令集
    • 不能执行其他指令系统的指令——x86架构、ARM架构
  • 指令格式
    • (一条指令)指令=操作码(OP)字段+地址码(A)字段(可能有多个)
  • 🌟指令的分类
    • 地址码数目分类
      • 零地址指令
        • 零地址(指令)的运算类指令又称堆栈运算类指令,两个操作数隐含在栈顶和次栈顶
        • ⚠️堆栈指令的访存次数
      • 一地址指令
      • 二、三地址指令
      • 四地址指令
    • 指令字长分类
      • 定长指令字结构
        • 半字长指令
        • 单字长指令
        • 双字长指令
      • 变长指令字结构
    • 操作码长度分类
      • 定长操作码
      • 可变长操作码(不定长操作码)
        • 定长指令字结构+可变长操作码->扩展操作码指令格式
    • 操作类型分类
      • 数据传送类:进行主存与CPU之间的数据传送
        • LOAD
          • 作用:用指令将数据从主存读到某寄存器中
        • STORE
          • 作用:用指令将数据从某寄存器中写入主存
      • 运算类
        • 算术逻辑操作
          • 算术
          • 逻辑
        • 移位操作
          • 算数移位
          • 逻辑移位
          • 循环移位(带进位和不带进位)
      • 程序控制类:改变程序执行的顺序
        • 转移操作
          • 无条件转移 JMP
          • 条件转移
            • JZ:结果为0
            • JO:结果溢出
            • JC:结果有进位
          • 调用和返回 CALL和RETURN
          • 陷阱(Trap)与陷阱指令
          • 循环指令
      • 输入输出类(I/O):进行CPU和I/O设备之间的数据传送
        • 输入输出操作
          • CPU寄存器与IO端口之间的数据传送(端口即IO接口中的寄存器)

4.1.2 扩展操作码指令格式

定长指令字结构+可变长操作码->扩展操作码指令格式(不同地址数的指令使用不同长度的操作码)

  • 扩展操作码
    • 举例1——指令字长为16位,每个地址码占4位
    • 举例2
  • 指令(的)操作码
    • 操作码分类
      • 定长操作码
      • 扩展操作码(不定长操作码)

4.2 指令的寻址方式

4.2_1 指令寻址

⚠️每一条指令的执行都分为“取指令”、“执行指令”两个阶段

  • 指令寻址
    • 确定下一条要执行的指令的存放地址
    • 由程序计数器PC指明
  • 指令寻址的分类
    • 顺序寻址
      • (PC) + ‘‘1’’ ——> PC
      • 此处的"1"要理解为1个指令字长
      • 每次取指令结束后,一定会PC+“1”
    • 跳跃寻址
      • 执行转移类指令导致的PC值改变

4.2_2 数据寻址

|操作码(OP) | 地址码(A)|

  • 按寻址方式的不同
    • 指令寻址
      下一条欲执行指令的指令地址
      始终由程序计数器PC给出
      • 顺序寻址
      • 跳跃寻址
    • 数据寻址
      • 分类(10种)
        • 隐含寻址(0000)
        • 立即寻址(0001)
        • 直接寻址(0010)
        • 间接寻址(0011)
        • 寄存器寻址(0100)
        • 寄存器间接寻址(0101)
        • 相对寻址(0110)
        • 基址寻址(0111)
        • 变址寻址(1000)
        • 堆栈寻址(1001)
      • 地址码拓展
        • 一地址指令
          • |操作码(OP)|寻址特征|形式地址(A)|
          • 求出操作数的真实地址,称为有效地址(EA)
        • 二地址指令
          • |操作码(OP)|寻址地址|形式地址( A 1 A_1 A1)|寻址地址|形式地址( A 2 A_2 A2)|
      • 直接寻址
      • 间接寻址
        • 一次间址
        • 两次间址
      • 寄存器寻址(不访问主存,只访问寄存器)
      • 寄存器间接寻址(比一般间接寻址快)
      • 隐含寻址(指令中隐含着操作数的地址)
      • 立即寻址(指令执行时间最短)
        • 形式地址A就是操作数本身,又称为立即数(如汇编语言中,LOAD # 985,#表示立即寻址特征),一般采用补码形式
          在这里插入图片描述

4.3 程序的机器级代码表示

4.3.1 高级语言与机器级代码之间的对应

4.3.2 常用的x86汇编指令

4.3.3 AT&T格式和Inter格式

在这里插入图片描述
在这里插入图片描述

4.4 CISC 和 RISC 的基本表示

CISC:Complex Instruction Set Computer
RISC:Reduced Instruction Set Computer
在这里插入图片描述



第五章 中央处理器

5.1 CPU的功能和基本结构

用户不可见的寄存器:MAR、MDR、IR、暂存寄存器

  • CPU的功能
    • 指令控制、操作控制、时间控制、数据加工、中断处理
  • 运算器的功能
    • 对数据进行加工
  • 控制器的功能
    • 取指令、分析指令、执行指令
  • 运算器的基本结构
    • 算术逻辑单元ALU
    • 暂存寄存器
    • 通用寄存器组
    • 累加寄存器ACC
    • 程序状态字寄存器PSW
    • 移位器、计数器
  • 数据通路的基本结构
    管理多条通路:多路选择器MUX与三态门
    • 专用通路
    • 内部总线
  • 控制器的基本结构
    • 程序计数器PC
    • 指令寄存器IR
    • 指令译码器、时序系统、微操作信号发生器
    • 存储器地址寄存器MAR
    • 存储器数据寄存器MDR

5.2 指令执行过程

  • 指令周期
    • 机器周期/CPU周期——CPU时钟周期/节拍
    • 取指周期、间址周期、执行周期、中断周期
    • 标志触发器FE、IND、EX、INT
  • 数据流
    • 取指周期:取指令——根据PC中的内容取出指令代码并存放在IR中
    • 间址周期:取操作数有效地址EA——根据IR中指令地址码操作数有效地址
    • 执行周期:取操作数——根据指令字的操作码和操作数进行相应的操作
    • 中断周期:处理中断请求,保存程序断点,送中断向量
  • 执行方案
    • 单指令周期:所有指令选用相同的执行时间,指令间串行
    • 多指令周期:不同类型指令选用不同的执行步骤,指令间串行
    • 流水线方案:隔一段时间启动一条指令,多条指令处于不同阶段,同时运行

5.3 数据通路的功能和基本结构

5.3.1 数据通路-单总线结构

ALU需要配合暂存器使用

  • 数据通路
    • 定义:数据在功能部件之间传送的路径
    • 基本结构:
      • CPU内部单总线方式
      • CPU内部多总线方式
      • 专用数据通路方式
  • 内部总线:指同一部件,如CPU内部连接各寄存器及运算部件之间的总线
  • 系统总线:指同一计算机系统的各部件,如CPU、内存、通道和各类I/O接口间互相连接的总线

5.3.2 数据通路-专用通路结构

多路选择器MUX与三态门
见PPT例题

5.4 控制器的功能和工作原理

  • 硬布线控制器(计组TOP3难度 但并非重点)
  • 微程序控制器(考试重点,且有概率出大题)
    • 控制单元CU的结构
      • 微地址形成部件
        • 微地址即微指令在CM中的存放地址
        • 通过指令操作码形成对应微程序的第一条微指令的存放地址
      • 顺序逻辑
        • 根据某些机器标志和时序信息确定下一条微指令的存放地址
      • CMAR(µIR)
        • 指明将要执行的下一条微指令(在主存中)的存放地址
      • 地址译码器
        • 将CMAR内的地址信息译码为电信号,控制CM读出微指令
      • 控制存储器(控存)CM
        • 存放所有机器指令对应的微程序(微指令序列)
        • 集成在CU内部,用ROM实现,按地址寻访
        • 通常在CPU出厂时就将所有微程序写入
      • CMDR(µIR)
        • 微指令寄存器,用于存放当前正在执行的微指令
        • CM(µPC)——>µIR
    • 工作原理
      • 指令周期=取指周期——>间址周期——>执行周期——>中断周期
        其中间址、中断周期可有可无
      • 处理取指、间址、中断周期的微指令序列通常是公用的(指令相同)
        指令周期的微指令序列各不相同
      • 取指周期的微指令序列固定从#0开始存放
        执行周期的微指令序列的存放根据指令操作码确定
    • 概念对比
      • 微命令、微操作、微指令、微程序之间的关系
        1个指令对应1个微程序
      • 指令周期:从主存取出并执行一条机器指令所需的时间
      • 微周期(微指令周期):从控制器存储器取出一条微指令并执行相应微操作所需的时间
  • 微指令的设计
    • 微指令格式
      • 水平型微指令
      • 垂直型微指令
      • 混合型微指令
    • 水平型微指令的编码方式
      • 🌟直接编码(直接控制)
        • 控制码的每个bit对应一个微命令,微指令执行速度更快
      • 🌟字段直接编码
        • 将互斥性的微命令分在同一个段内,相容的分在不同的段
        • 每个段留出一个状态表示“不操作”
        • 微指令操作码需要经过译码电路
      • 字段间接编码
    • 下一条微指令地址的形成方式
      • 🌟断定法(下地址法)
      • 🌟计数器法
      • 根据指令操作码确定执行周期微程序首地址
      • 由专门的硬件指明取指/中断周期的微程序首地址

5.5 异常和中断处理(详见OS)

5.6 指令流水线

  • 基本概念
    • 指令执行过程划分为不同阶段,占用不同的资源,就能使多条指令同时执行
    • 表示方法
      • 指令流程图:主要用于分析影响流水线的因素
      • 时空图:主要用于分析流水线的性能
  • 性能指标
    • 吞吐率TP
    • 加速比S
    • 效率E
  • 影响因素
    • 结构相关(资源冲突)
      多条指令争用同一资源
      解决方法:
      • 暂停相关指令
      • 资源重复配置
    • 🌟数据相关(数据冲突)
      后续指令需要用到之前指令的执行结果
      解决方法:
      • 暂停相关指令
        • 硬件阻塞(stall)——根据指令流程图分析耗时
        • 软件插入"NOP"
      • 数据旁路技术
      • 编译优化,调整指令顺序
    • 控制相关(控制冲突)
      遇到转移指令和其他改变PC值的指令时发生
      解决方法:
      • 分支预测
      • 预取两个方向的指令
      • 加快和提前形成条件码
      • 提高转移方向的猜准率
  • 分类
    • 按使用级别:部件功能级、处理机级、处理机间
    • 按完成功能:单功能、多功能
    • 按连接方式:动态、静态
    • 按有无反馈信号:线性、非线性
  • 多发技术
    • 超标量流水线技术
    • 超流水线技术
    • 超长指令字技术

5.7 多处理器的基本概念

5.7.1 SISD、SIMD、MIMD向量处理器的基本概念

  • SISD单指令流单数据流
  • SIMD单指令流多数据流
  • MISD多指令流单数据流
  • MIMD多指令流多数据流
  • 向量处理器(SIMD思想的进阶应用)

5.7.2 共享内存多处理器(Shared Memory multiProcessor, SMP) 的基本概念

多处理器系统(简称)

5.7.3 多核处理器(multicore)的基本概念

和共享内存多处理器是同一个东西,命名角度不同



第六章 总线

6.1 总线概述

  • 总线概念与分类
  • 总线的性能指标
    • 总线的传输周期(总线周期)
    • 总线时钟周期
    • 总线的工作频率
    • 总线的时钟频率
    • 总线宽度
    • 总线带宽
    • 总线复用
    • 信号线数

6.2 总线操作(事务)和定时

  • 总线传输的四个阶段
    • 申请分配阶段
    • 寻址阶段
    • 传输阶段
    • 结束阶段
  • 定时
    • 同步定时方式(同步通信)
    • 异步定时方式(异步通信)——不互锁、半互锁、全互锁
    • 半同步通信
    • 分离式通信

6.3 总线仲裁与总线标准(408不考)



第七章 输入/输出系统

7.1 I/O 系统的基本概念

  • 基本概念
    • IO硬件
      输入设备、输出设备、 外存设备、I/O接口(I/O控制器)
    • IO软件
      • IO指令
        CPU执行的指令,用于控制IO接口或控制通道
      • 通道指令
        通道执行的指令,与CPU机器指令不是一套东西
  • I/O控制方式
    • 程序查询方式
      CPU“忙等”慢速设备完成工作,二者串行工作
    • 程序中断方式
      设备准备数据时,CPU继续工作,设备准备好之后向CPU发出中断请求,CPU在指令周期的末位检查中断并作出中断响应(执行中断处理程序)
    • DMA方式
      主存与IO交换信息时由DMA控制器控制,传输完一整块数据才需要中断
    • 通道方式
      通过IO指令启动通道,通道执行通道指令序列,通道程序放在主存中

7.2 I/O 接口

  • 作用与结构
    作用:
    在这里插入图片描述 结构:

    • 数据缓冲寄存器(DBR)
    • 状态/控制寄存器
    • 串-并转换机构
    • I/O控制逻辑
    • 地址译码逻辑
  • I/O端口
    在这里插入图片描述

    • 指IO控制器(接口电路)中可被CPU直接访问的寄存器
    • 统一编制:IO端口和主存地址空间统一,用访存指令访问IO端口
    • 独立编制:IO端口地址与主存地址相互独立,用IO指令访问IO端口
  • 分类

    • 按数据传送方式
      • 并行接口
      • 串行接口
    • 按主机访问I/O设备的控制方式
      • 程序查询接口
      • 中断接口
      • DMA接口
    • 按功能选择的灵活性
      • 可编程接口
      • 不可编程接口

7.3 I/O 方式🌟

在这里插入图片描述

7.3.1 程序查询方式

在这里插入图片描述

7.3.2 程序中断方式

  • 程序中断方式
    • 中断系统
      • 中断的基本概念

      • 工作流程

        • 中断请求
          ![[截屏2024-07-10 19.35.42.png]]
          • 分类
            • 内中断(又称异常、例外、陷入)
              • 自愿中断——指令中断
              • 强迫中断
                • 硬件故障
                • 软件中断
            • 外中断(中断)
              • 外设请求
              • 人工干预
          • 中断请求标记触发器INTR
        • 中断响应
          • 响应中断的条件
          • 中断判优
            • 软件:查询程序
            • 硬件:排队器
            • 优先级的设置
        • 中断处理
          • 中断隐指令
            • 关中断
            • 保存断点(PC)
            • 引出中断服务程序
              • 软件查询法
              • 硬件向量法——中断向量
          • 中断服务程序
      • 单重中断与多重中断
        在这里插入图片描述

        • 中断服务程序的具体步骤
        • 中断屏蔽技术
          • 屏蔽字
          • 程序执行轨迹
    • 程序中断方式
      • 工作流程
      • CPU占用情况
        • 中断响应(隐指令)
        • 中断服务程序

7.3.3 DMA方式🌟🌟🌟

  • DMA控制器
    • 主要功能
      • 传送前:接收外设的DMA请求,向CPU发出总线请求;接管总线控制权
      • 传送时:管理总线,控制数据传送;确定主存单元地址及长度,能自动修改对应参数
      • 传送后:向CPU报告DMA操作的结束
    • 组成
      • 主存地址计数器:存放要交换数据的主存地址
      • 传送长度计数器:记录传送数据的长度
      • 数据缓冲寄存器:暂存每次传送的数据
      • DMA请求触发器:设置准备好数据后将其置位
      • 控制/状态逻辑:由控制和时许电路及状态标志组成
      • 中断机构:数据传送完毕后触发中断机构,提出中断请求
  • 传送过程
    • 预处理:CPU完成寄存器初值设置等准备工作
    • 数据传送:CPU继续执行主程序,DMA控制器完成数据传送
    • 后处理:CPU执行中断服务程序做DMA结束处理
  • 传送方式
    • 停止CPU访存:需要数据传送时,停止CPU访存,总线控制权交给DMA控制器
    • 交替访存:将CPU周期分为DMA访存和CPU访存两个部分
    • 周期挪用(周期窃取):I/O设备需要访存时,挪用一个或几个存取周期
  • 特点
  • 与中断方式的区别
  • CPU占用情况

相关推荐

最近更新

  1. docker php8.1+nginx base 镜像 dockerfile 配置

    2024-07-11 13:24:01       67 阅读
  2. Could not load dynamic library ‘cudart64_100.dll‘

    2024-07-11 13:24:01       72 阅读
  3. 在Django里面运行非项目文件

    2024-07-11 13:24:01       58 阅读
  4. Python语言-面向对象

    2024-07-11 13:24:01       69 阅读

热门阅读

  1. Linux上将图片转换为PDF

    2024-07-11 13:24:01       24 阅读
  2. PDF预览功能

    2024-07-11 13:24:01       23 阅读
  3. 什么是CNN,它和传统机器学习有什么区别

    2024-07-11 13:24:01       20 阅读
  4. 使用 Vue 3 实现打字机效果

    2024-07-11 13:24:01       23 阅读
  5. 设计模式-单例模式

    2024-07-11 13:24:01       22 阅读
  6. 达梦数据库系列—23. DSC集群搭建

    2024-07-11 13:24:01       18 阅读
  7. RabbitMQ 迁移

    2024-07-11 13:24:01       21 阅读
  8. 【编程范式】理解响应式编程(reactive programming)

    2024-07-11 13:24:01       26 阅读
  9. Python 循环语句

    2024-07-11 13:24:01       21 阅读