当前位置: 首页 > news >正文

计算机组成原理——CPU的功能和基本结构

5.1 CPU的功能和基本结构

整理自beokayy课程视频

1.CPU的组成

CPU的组成

  • 程序计数器(PC)
    • 存放即将执行指令的地址。
    • 顺序执行时,PC+“1”形成下条指令地址。在有的机器中,PC本身具有“+1”计数功能,也有的机器借助运算部件完成自增。
    • 需要改变程序执行顺序时,通常会根据转移类指令提供的信息生成转移目标指令的地址,并将其作为下条指令地址送PC。每个程序开始执行之间,总是把程序中第一条指令的地址送到PC中。
  • 指令寄存器(IR)
    • 用以存放现行指令。
    • 每条指令总是先从存储器中取出后才能在CPU中执行,指令取出后存放在指令寄存器中,以便送指令译码器进行译码。
  • 指令译码器(ID)
    • 对指令寄存器中的操作码部分进行分析解释,产生相应的译码信号提供给操作控制信号形成部件,以产生控制信号。
  • 启停控制逻辑
    • 脉冲源产生一定频率的脉冲信号作为整个机器的时钟脉冲,它是CPU时序的基准信号。
    • 启停控制逻辑在需要时能保证可靠地开放或封闭时钟脉冲,控制时序信号的发生与停止,并实现对机器的启动与停机。
  • 时序信号产生部件
    • 以时钟脉冲为基础,产生不同指令对应的周期、节拍、工作脉冲等时序信号,实现机器指令执行过程的时序控制。
  • 操作控制信号形成部件
    • 综合时序信号、指令译码信号和执行部件反馈的条件标志等,形成不同指令的操作所需要的控制信号。
  • 总线控制逻辑
    • 实现对总线传输的控制,包括对数据和地址信息的缓冲与控制。
    • CPU对于存储器的访问通过总线进行,CPU将存储访问命令(即读写控制信号)送到控制线,将要访问的存储单元地址送到地址线,并通过数据线取指令或者与存储器交换数据信息。
  • 中断机构
    • 实现对异常情况和外部中断请求的处理。
控制器运算器
PCALU
IR暂存寄存器
MARACC

2.CPU的功能

  • CPU的基本功能是取指令、分析指令和执行指令:
    • 取指令
      • 控制器必须具备能自动地从存储器中取出指令的功能。
      • 要求控制器能自动形成指令的地址,并能发出取指令的命令,将对应此地址的指令取到控制器中。
    • 分析指令
      • 首先分析指令要完成什么操作,即控制器发出什么操作命令。
      • 其次分析参与这次操作的操作数地址,即操作数的有效地址。
    • 执行指令
      • 根据分析指令产生的操作命令和操作数地址的要求,形成操作控制信号序列,通过对运算器、存储器以及I/O设备的操作,执行每条指令。
  • 总之,CPU必须具有以下功能:
    • 控制程序顺序执行
    • 产生完成每条指令所需的控制命令
    • 对各种操作加以时间上的控制
    • 对数据进行算术运算和逻辑运算

3.CPU的寄存器

  • 用户可见的寄存器(在调用子程序钱,必须将所有用户可见的寄存器的内容保存起来):
    • 通用寄存器
      • 可由程序设计者指定许多功能,可用于存放操作数,也可作为满足某种寻址方式所需的寄存器。
      • 可作为机器用专用寄存器,比如基址寄存器、变址寄存器或栈指寄存器。
    • 数据寄存器
      • 用于存放操作数,其位数应满足多数数据类型的数值范围。
    • 地址寄存器
      • 用于存放地址,其本身可以具有通用性,也可以用于特殊的寻址方式。
    • 条件码寄存器
      • 这类寄存器中存放条件码,条件码是CPU根据运算结果由硬件设置的位。
  • 用户透明寄存器
    • MAR:存储器地址寄存器,用于存放将被访问的存储单元的地址。
    • MDR:存储器数据寄存器,用于存放欲存入存储器中的数据或最近从存储器中读出的数据。
    • IR:指令寄存器,存放当前欲执行的指令。
  • ALU 外围还有另一些寄存器,这些寄存器用于 ALU 的输入 / 输出以及用于和 MDR 及用户可见寄存器交换数据。
类别寄存器
对所有人可见PSW, PC
对所有人透明MAR, MDR, IR, CACHE
对应用程序员透明暂存寄存器,虚拟寄存器
对汇编程序员可见PC, ACC, 基址寄存器,标志寄存器,状态寄存器,通用寄存器
对系统程序员可见虚拟存储器

相关文章:

  • SQL进阶之旅 Day 12:分组聚合与HAVING高效应用
  • 【Pytorch学习笔记】模型模块06——hook函数
  • 蓝云APP:云端存储,便捷管理
  • 第2篇:数据库连接池原理与自定义连接池开发实践
  • 列表推导式(Python)
  • 题目 3230: 蓝桥杯2024年第十五届省赛真题-星际旅行
  • 通讯录Linux的实现
  • Linux中的mysql逻辑备份与恢复
  • 资源预加载+懒加载组合拳:从I/O拖慢到首帧渲染的全面优化方案
  • Higress项目解析(二):Proxy-Wasm Go SDK
  • 人工智能在智能制造业中的创新应用与未来趋势
  • 普中STM32F103ZET6开发攻略(二)
  • 《Effective Python》第六章 推导式和生成器——将迭代器作为参数传递给生成器,而不是调用 send 方法
  • 力扣刷题Day 68:搜索插入位置(35)
  • 【DSP数字信号处理】期末复习笔记(二)
  • 【笔记】Windows系统部署suna基于 MSYS2的Poetry 虚拟环境backedn后端包编译失败处理
  • 295. 数据流的中位数
  • 二、Kubernetes 环境搭建
  • CA-Net复现
  • 8、电解电容—数据手册解读
  • 怎么做自己的公司网站放在百度/网络广告怎么做
  • h5制作网页/应用商店关键词优化
  • 北京网络建站/营销网站建设培训学校
  • 北京 集团公司网站建设/网站页面排名优化
  • 公司网站备案条件/电商网店
  • 无锡 网站制作 大公司/淘宝运营培训多少钱