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

计算机组成原理——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, 基址寄存器,标志寄存器,状态寄存器,通用寄存器
对系统程序员可见虚拟存储器
http://www.xdnf.cn/news/10653.html

相关文章:

  • 【Doris基础】Apache Doris中的Version概念解析:深入理解数据版本管理机制
  • postman工具使用
  • 鸿蒙进阶——Mindspore Lite AI框架源码解读之模型加载详解(一)
  • Java线程同步与内存模型详解
  • react与vue的渲染原理
  • 第十二节:第四部分:集合框架:List系列集合:LinkedList集合的底层原理、特有方法、栈、队列
  • css使用scoped之后样式失效问题
  • Day43打卡(补41+42) @浙大疏锦行
  • Git实战--基于已有分支克隆进行项目开发的完整流程
  • springboot 集成webFilter登录认证信息过滤 DEMO原型介绍
  • 混和效应模型在医学分析中的应用
  • 16.FreeRTOS
  • 学习BI---基本操作---数据集操作
  • HealthBench医疗AI评估基准:技术路径与核心价值深度分析(下)
  • 机器人夹爪的选型与ROS通讯——机器人抓取系统基础系列(六)
  • TomatoSCI数据分析实战:探索社交媒体成瘾
  • 【计算机网络】第3章:传输层—拥塞控制原理
  • php执行后报502,无错误提示的排查和解决
  • 前端面经高阶组件HOC 和 HOOKS Redux
  • 企业展示型网站模板HTML5网站模板下载指南
  • 【具身智能】【机械臂】各类机械臂对比
  • SQL Views(视图)
  • c++类和对象-继承
  • 打家劫舍与最长有效括号:动态规划与字符串处理的双重魅力
  • 也说字母L:柔软的长舌
  • Cursor 0.51 全网首歌新功能深度体验:Generate Memories 让 AI 编程助手拥有“记忆“
  • Docker私有仓库Harbor安装指南
  • SQL进阶之旅 Day 11:复杂JOIN查询优化
  • pytorch学习之矩阵分解
  • 在Linux中配置内网可访问的YUM光盘源