系列目录
计算机组成原理 学习笔记I
 计算机组成原理 学习笔记II
目录
- 系列目录
 - 第四章 指令系统
 - 4.1 指令系统
 - 4.1.1 指令格式
 - 4.1.2 扩展操作码指令格式
 
- 4.2 指令的寻址方式
 - 4.2_1 指令寻址
 - 4.2_2 数据寻址
 
- 4.3 程序的机器级代码表示
 - 4.3.1 高级语言与机器级代码之间的对应
 - 4.3.2 常用的x86汇编指令
 - 4.3.3 AT&T格式和Inter格式
 
- 4.4 CISC 和 RISC 的基本表示
 
- 第5章 中央处理器
 - 5.1 CPU的功能和基本结构
 - 5.2 指令执行过程
 - 5.3 数据通路的功能和基本结构
 - 5.3.1 数据通路-单总线结构
 - 5.3.2 数据通路-专用通路结构
 
- 5.4 控制器的功能和工作原理
 - 5.5 异常和中断处理(详见OS)
 - 5.6 指令流水线
 - 5.7 多处理器的基本概念
 - 5.7.1 SISD、SIMD、MIMD向量处理器的基本概念
 - 5.7.2 共享内存多处理器(Shared Memory multiProcessor, SMP) 的基本概念
 - 5.7.3 多核处理器(multicore)的基本概念
 
- 第6章 总线
 - 6.1 总线概述
 - 6.2 总线操作(事务)和定时
 - 6.3 总线仲裁与总线标准(408不考)
 
- 第7章 输入/输出系统
 - 7.1 I/O 系统的基本概念
 - 7.2 I/O 接口
 - 7.3 I/O 方式🌟
 - 7.3.1 程序查询方式
 - 7.3.2 程序中断方式
 - 7.3.3 DMA方式🌟🌟🌟
 
- 持续更新~
 - 欢迎评论区留言指正
 - 如果你是Obsidian用户,可以导入自己的笔记库中,效果最佳
 - ⚠️如需转载,请标明出处!
 
第四章 指令系统
4.1 指令系统
4.1.1 指令格式
- 指令的定义 
  
- 指令,又称机器指令,是计算机运行的最小功能单位
 - 一台计算机的所有指令的集合构成该机的指令系统,又称指令集
 - 不能执行其他指令系统的指令——x86架构、ARM架构
 
 - 指令格式 
  
- (一条指令)指令=操作码(OP)字段+地址码(A)字段(可能有多个)
 
 - 🌟指令的分类 
  
- 按地址码数目分类 
    
- 零地址指令 
      
- 零地址(指令)的运算类指令又称堆栈运算类指令,两个操作数隐含在栈顶和次栈顶
 - ⚠️堆栈指令的访存次数
 
 - 一地址指令
 - 二、三地址指令
 - 四地址指令
 
 - 零地址指令 
      
 - 按指令字长分类 
    
- 定长指令字结构 
      
- 半字长指令
 - 单字长指令
 - 双字长指令
 
 - 变长指令字结构
 
 - 定长指令字结构 
      
 - 按操作码长度分类 
    
- 定长操作码
 - 可变长操作码(不定长操作码) 
      
- 定长指令字结构+可变长操作码->扩展操作码指令格式
 
 
 - 按操作类型分类 
    
- 数据传送类:进行主存与CPU之间的数据传送 
      
- LOAD 
        
- 作用:用指令将数据从主存读到某寄存器中
 
 - STORE 
        
- 作用:用指令将数据从某寄存器中写入主存
 
 
 - LOAD 
        
 - 运算类 
      
- 算术逻辑操作 
        
- 算术
 - 逻辑
 
 - 移位操作 
        
- 算数移位
 - 逻辑移位
 - 循环移位(带进位和不带进位)
 
 
 - 算术逻辑操作 
        
 - 程序控制类:改变程序执行的顺序 
      
- 转移操作 
        
- 无条件转移 JMP
 - 条件转移 
          
- JZ:结果为0
 - JO:结果溢出
 - JC:结果有进位
 
 - 调用和返回 CALL和RETURN
 - 陷阱(Trap)与陷阱指令
 - 循环指令
 
 
 - 转移操作 
        
 - 输入输出类(I/O):进行CPU和I/O设备之间的数据传送 
      
- 输入输出操作 
        
- CPU寄存器与IO端口之间的数据传送(端口即IO接口中的寄存器)
 
 
 - 输入输出操作 
        
 
 - 数据传送类:进行主存与CPU之间的数据传送 
      
 
 - 按地址码数目分类 
    
 
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,#表示立即寻址特征),一般采用补码形式

 
 - 形式地址A就是操作数本身,又称为立即数(如汇编语言中,LOAD # 985,#表示立即寻址特征),一般采用补码形式
 
 - 分类(10种) 
      
 
 - 指令寻址
 
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章 中央处理器
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个微程序 - 指令周期:从主存取出并执行一条机器指令所需的时间
 - 微周期(微指令周期):从控制器存储器取出一条微指令并执行相应微操作所需的时间
 
 - 微命令、微操作、微指令、微程序之间的关系
 
 - 控制单元CU的结构 
    
 - 微指令的设计 
  
- 微指令格式 
    
- 水平型微指令
 - 垂直型微指令
 - 混合型微指令
 
 - 水平型微指令的编码方式 
    
- 🌟直接编码(直接控制) 
      
- 控制码的每个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章 总线
6.1 总线概述
- 总线概念与分类
 - 总线的性能指标 
  
- 总线的传输周期(总线周期)
 - 总线时钟周期
 - 总线的工作频率
 - 总线的时钟频率
 - 总线宽度
 - 总线带宽
 - 总线复用
 - 信号线数
 
 
6.2 总线操作(事务)和定时
- 总线传输的四个阶段 
  
- 申请分配阶段
 - 寻址阶段
 - 传输阶段
 - 结束阶段
 
 - 定时 
  
- 同步定时方式(同步通信)
 - 异步定时方式(异步通信)——不互锁、半互锁、全互锁
 - 半同步通信
 - 分离式通信
 
 
6.3 总线仲裁与总线标准(408不考)
第7章 输入/输出系统
7.1 I/O 系统的基本概念
- 基本概念 
  
- IO硬件
输入设备、输出设备、 外存设备、I/O接口(I/O控制器) - IO软件 
    
- IO指令
CPU执行的指令,用于控制IO接口或控制通道 - 通道指令
通道执行的指令,与CPU机器指令不是一套东西 
 - IO指令
 
 - IO硬件
 - 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占用情况
 


















