计算机组成原理(纪禄平)第三章

  • CPU子系统
    • 总体结构模型
      • 示意图
      • CPU是计算机中的核心部件
        • 数据运算功能
        • 系统控制功能
      • CPU总体结构模型
        • 示意图
          • 主要部件
            • 时序系统
            • 控制部件
            • 缓存部件
            • 寄存器(堆)
            • 运算部件
          • 5个部件通过数据/控制通路互连,实现信息交互
    • 运算与缓存部件
      • 从硬件的角度,CPU内部的主要部件包括
      • 各种功能部件,分别通过数据通路/控制通路互相连接形成CPU的硬件架构—→CPU的微架构
      • 运算部件
        • 对操作数进行运算,主要是算术运算/逻辑运算
        • 基本组成
      • 缓存部件
        • 为提高CPU从主存中读取指令/数据的效率,在CPU内部集成了多级缓存部件
        • 作用
          • 缓存从主存中读取的部分指令/数据
    • 数据寄存部件
      • 寄存器组(堆)
        • 存储各种用途的数据信息
        • 部件选用
          • 一般用小容量的多端口存储器来构成寄存器组,其中1个存储单元作为1个寄存器
        • 基本类型
          • 通用寄存器:多个
            • 通用寄存器有全局唯一地址,可通过地址码访问,可在机器指令中直接使用
            • 功能:提供操作数、地址码、存放运算结果
          • 暂存器
            • 特征
              • 多个,内部专用,无需分配地址码,不能在机器指令中使用
            • 主要用途
              • 用来暂存产生的临时数据,以备在后续操作过程中使用
          • 指令寄存器(IR)
            • 主要用途
              • 只有1个,用于存放指令代码
            • 从存储器(或者指令缓存)中读取到指令以后,就直接存入到指令寄存器中
          • 程序计数器(PC)
            • 主要用途
              • 仅1个,用来指明指令在寄存器中存放位置,即存储单元的地址码
            • 注意
              • 取指令结束后,PC保存的地址码自动修改,以指向下一条指令的存储单元,修改量取决于指令字长和存储器的编址单位
          • 程序状态字寄存器(PSW)
            • 主要用途
              • 仅1个,记录现行程序的运行状态和程序的工作模式
            • PSW-特征位
              • 也叫标志位,反映CPU的当前状态
              • 指令执行时,根据情况自动设置这些特征值,作为后续操作的判断依据,通常有5类:
            • PSW-编程设定位
              • PSW中某些位或字段可通过程序来设定,以决定程序的调试、对中断的响应、程序的运行模式
          • 地址寄存器(MAR)
            • 主要用途
              • 只有1个,读写寄存器时,先要定位存储单元,因此设置MAR来存放目标单元的地址码
              • 先将有效地址送入MAR,再启动后续的读写操作
          • 数据缓冲寄存器(MBR)
            • 主要用途
              • 只有1个,过渡性地存放CPU与主存之间交换的数据
            • 无论是从主存读取的数据,还是写入的主存的数据都要经过MBR
          • 堆栈指针(SP)
            • 主要用途
              • 仅1个,固定存放堆栈的栈顶单元的地址码
    • 时序处理部件
      • 控制器
        • 根据指令、时钟信号、外部信号等信息,产生各种控制信号(微指令),以便控制各种功能部件协同工作,完成指令的功能。
        • 根据产生微指令的方式,有两类控制单元
          • 组合逻辑控制器 组合逻辑硬件电路→控制信号
          • 微程序控制器 微程序译码 →控制信号
      • 时序部件
        • 时序信号
          • [定义]周期、节拍、脉冲等频率型信号序列
          • 产生时序信号的部件称为时序发生器或时序系统,由1个低频振荡器和倍频逻辑组成
          • 低频信号振荡器
            • 它是一个低频脉冲源,能输出固定频率的基准脉冲信号(外频),作为系统时钟信号
            • 系统时钟信号经过倍数放大以后,产生执行指令所需要的各种时序信号:
              • 节拍信号,即CPU时钟周期智信号
              • 工作周期信号,即机器周期信号
              • 指令周期信号
    • 执行流程与控制
      • CPU的工作原理
        • 主要功能
          • 处理指令—控制指令的执行顺序
          • 执行操作—产生控制信号控制部件工作
          • 控制时间—控制各部操作的时序
          • 数据运算—算术和逻辑运算
        • 执行指令流程
          • 读取指令—从存储器中读取
          • 指令译码—通过控制器进行、产生控制信号
          • 指令执行—寻址、取数、运算
          • 后续工作—保存结果、响应外部请求
        • 部件的控制方式
          • CPU是计算机内部技术最复杂的子系统
            • 部件众多
            • 架构复杂
            • 功能多样
          • 各部件协同工作方式
            • 同步控制方式
            • 异步控制方式
          • 同步控制方式的特点
            • 每步操作都向统一的外部时序信号对齐
            • 各步操作之间无交互
            • 例:
          • 异步控制方式的特点
            • 每步操作都不需要向统一的外部时序信号对齐
            • 各步操作之间通过交互应答来实现协同
            • 例:
    • 外部连接与i/o任务
      • 外部连接类型
        • 单处理机系统:通过前端总线与北桥芯片组连接
        • 多处理机系统:高性能CPU中集成了主存、视频和PCI-E接口,CPU之间通过QPI、与芯片组之间通过DMI总线互连
      • 在I/O控制中的任务
        • 主机←接口→外围设备
        • 主机与外设之间进行数据输入/输出操作时,在不同的I/O控制模式下,CPU承担的任务各不相同
          • 程序传送模式
            • CPU直接执行I/O指令
          • 中断模式
            • CPU执行中断服务程序
          • DMA模式
            • CPU管理DMA控制器、善后处理
          • IOP和PPU模式
            • CPU组织I/O程序,管理IOP与PPU,以及善后处理
    • CISC与RISC指令集
      • 指令
        • 计算机执行某类操作的信息的集合,是CPU工作的主要依据
      • 指令集
        • 处理器能执行的全体指令的集合(CISC、RISC)
        • 决定了计算机的硬件功能
        • 计算中软硬件上午分界面
      • 指令字
        • 用来表示指令的一组二进制代码
      • 指令字长
        • 指令中包含的二进制代码位数
      • 机器字长
        • 计算机能够直接处理的二进制数据的位数 = 寄存器的宽度
      • CISC
        • 复杂指令集计算
      • RISC
        • 精简指令集计算
      • CISC的特点
        • 指令数量多
        • 指令长度可以不固定,指令格式和寻址方式多样
        • 很多指令会涉及存储器读写操作,指令周期长
        • 一般在通用处理器中使用
      • RISC的特点
        • 指令数量多、少
        • 指令长度不固定,指令格式和寻址方式种类少
        • 一般只有少量指令(如取数/存数)才会读写存储器,其余指令只涉及CPU内部寄存器,指令周期短
        • 一般在高端服务器CPU中使用
    • 指令的一般格式
      • 指令的基本格式
        • 指令字长
          • 定长指令规格
            • 规整、便于控制
          • 变长指令格式
            • 合理利用存储空间、提高取指令的效率,如超长指令集
        • 操作码结构
          • 定长操作码
            • 各指令θ的位置、位数固定相同
          • 拓展操作码
            • 各指令θ的位置、位数不固定,根据需要变化(设置拓展标志)
          • 复合型操作码
            • 操作码分为几段,每段表示一种二级操作
            • 例:
        • 地址结构
          • 指令中提供地址的方式
            • 显式地址方式
              • 指令中明确指明地址码(直接/间接给出)
            • 隐式地址方式
              • 地址码隐含约定,不在指令中出现
            • 使用隐式地址,可以减少指令中的地址数量,从而简化地址结构
        • 常见的地址结构类型
          • 四地址结构指令
          • 三地址结构指令
          • 二地址结构指令
          • 一地址结构指令
          • 零地址结构指令
        • 指令可能会涉及到的操作数类型
          • 地址码数据
            • 寄存器编号或存储器地址,无符号整数
          • 数值型数据
            • 定点数、浮点数、一般用于补码表示
          • 字符型数据
            • 通常表示为ASCII码/汉字内码格式
          • 逻辑型数据
            • 常规二进制代码,不具备数值意义
        • MIPS32架构的指令格式
    • 常见寻址方式(1)立即寻址、直接寻址
      • 立即寻址
        • 指令中直接包含了操作数
        • 用来提供偏移量、常数、设置初值等
        • 例:
      • 直接寻址
        • 指令中直接给出操作数的地址码
        • 主存直接寻址(绝对寻址)
        • 寄存器直接寻址
          • 针对操作数在寄存器中的情况
    • 常见寻址方式(2)主存、寄存器间接寻址
      • 间接寻址
        • 指令给出操作数的间接地址
        • 一般只在CISC中使用,RISC中一般不用
        • 主存间接寻址
        • 寄存器间接寻址
          • 指针不变(由指令指定),指针内容可变,使同一指令可指向不同存储单元,一实现程序的循环、共享,并提供转移地址
        • 堆栈间接寻址
          • S = ((SP))
    • 常见寻址方式(3)基址、变址及其混合
      • 变址寻址
        • 指令给出一个寄存器号和一个地址量,寄存器内容与地址量之和为有效地址
        • 格式
        • 基址寻址
          • 指令给出一个寄存器号和一个地址量,寄存器内容与地址量之和为有效地址(二维数组的读写)
          • 格式
        • 变址与基址的区别
          • 有效地址 = 寄存器内容(R)+ 指令中的立即数D
          • 变址寻址
            • 指令提供基准量,寄存器提供偏移量
          • 基址寻址
            • 指令提供偏移量,寄存器提供基准量
          • 基址+变址
            • 指令给出两个寄存器号和一个地址量,寄存器内容与地址量之和为有效地址(处理三维数组)
    • 常见寻址方式(4)PC相对寻址、页面寻址
      • PC相对寻址
        • 指令给出偏移量,PC当前值与偏移量相加得到有效地址
      • 页面寻址(伪直接寻址)
        • 指令给出位移量,PC的高位部分与位移量拼接,形成有效地址
        • 例:
      • 指令中的寻址方式约定
        • 操作码可隐含说明不同寻址方式
          • MIPS指令,一般都是采用这种方式
        • 指令中可设置寻址方式字段
          • 例:
    • 指令的功能和类型
      • 按指令格式
        • PDP-11:单、双操作数指令
      • 按操作数寻址方式
        • IBM370
          • RR型(寄存器-寄存器)
          • RX型(寄存器-变址寄存器)
      • 按指令功能
        • 传送、访存、I/O、算术逻辑运算、程序控制、处理机控制等指令
      • 数据传送类指令
        • 主要包括
          • 取数指令、存数指令、数据传送(单字、成组)、数据交换和堆栈操作
        • 主要用来实现
          • 寄存器之间、存储器单元之间以及寄存器-存储器单元的数据传送
          • 设计传送指令时需要考虑
          • (I/O)指令
          • 算术\逻辑运算指令
          • 程序控制类指令
          • 控制处理机的专用指令
          • 面向操作系统的指令
    • 加法单元
      • 输入和输出
      • 全加器
    • 串行与并行进位
      • 进位的基本逻辑
      • 串行加法器
        • 特点
          • 低位向高位依次传递进位信号
          • 例:
          • 影响运算速度的主要因素
            • 进位信号的传递
          • 进位逻辑
            • 进位信号逐位形成
            • 例:
      • 并行加法器
        • 特点
          • 各位进位信号同时形成
        • n位加法器,进位逻辑如下
          • 结构举例
      • 分组:组内并行、组间并行
    • 运算部件的组织
      • 运算器组织
        • 带多路选择器的运算器
        • 带输入锁存器的运算器
        • 位片式运算器
    • MIPS32指令架构(1)指令格式
      • 总体情况
        • 存储器按字节编址
        • 可用寄存器32个,宽度32位
        • RISC架构
      • 可提供的寄存器列表
      • 指令格式与指令集
        • 指令字长固定为32位,寄存器型寻址,指令中给出寄存器号
          • R型指令
            • 操作数和保存结果均通过寄存器进行
              • op:操作码,所有R型指令中都全为0
              • rs:寄存器编码,对应第1个源操作数
              • rt:寄存器编号,对应第2个源操作数
              • rd:寄存器编号,据此保存结果
              • sa:常数,在移位指令中使用
              • func:功能码,指定指令的具体功能
          • I型指令
            • 操作数中涉及立即数,结果保存到寄存器
              • op:标识指令的操作功能
              • rs:第1个源操作数,是寄存器操作数
              • rt:目的寄存器编号,用来保存运算结果
              • imm:第2个源操作,立即数
          • J型指令
            • 实现无条件转移
              • op:确定指令的功能
              • address:转移目标地址的偏移量字段
    • MIPS32指令架构(2)寻址方式
      • 在MIPS32指令集中,不会单设寻址方式说明字段,通过op字段和func字段(针对R型指令)隐含说明
      • R型指令
        • 由op和func字段共同隐含说明当前的寻址方式
      • I型和J型指令
        • 由op字段隐含说明当前指令使用的寻址方式
      • 立即数寻址
        • 操作数在指令中的立即数字段
      • 寄存器直接寻址
        • 操作数直接在寄存器中
      • 基址寻址
        • 操作数由寄存器和立即数字段联合产生
      • PC相对寻址
        • 操作数由寄存器和立即数字段联合产生
      • 伪直接寻址
        • 也叫页面寻址,由PC高4位与指令中的地址段组合产生有效地址
    • MIPS32指令架构(3)指令功能分析
      • R型指令(只列出了9条)
        • 由操作码op配合func字段,确定具体的操作
        • R型指令,存在3中不同类型
          • 3寄存器R型指令
          • 2寄存器R型指令
          • 1寄存器R型指令
        • I型指令(只列出9条)
        • I型指令,存在4中不同类型
          • 面向运算的I型指令
          • 面向访存的I型指令
          • 面向数位设置的I型指令
          • 面向条件转移(分支)的I型指令
        • J型指令(列出2条)
    •  
    •  
  •  
  • 1
    点赞
  • 10
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值