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

article/2025/7/4 17:02:44

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.hkcw.cn/article/kPlDyJhoMA.shtml

相关文章

LINUX62软链接;核心目录;错题:rpm -qa |grep<包名> 、rpm -ql<包名>;rm -r rm -rf;合并 cat

硬链接 软链接 软链接 [rootcode axel-2.4]# which axel /usr/bin/which: no axel in (/sbin:/bin:/usr/sbin:/usr/bin) [rootcode axel-2.4]# ln -s /opt/axel/bin/axel /usr/bin [rootcode axel-2.4]# axel https://mirrors.aliyun.com/centos-stream/ 初始化下载: https:/…

[Java恶补day13] 53. 最大子数组和

休息了一天,开始补上! 给你一个整数数组 nums ,请你找出一个具有最大和的连续子数组(子数组最少包含一个元素),返回其最大和。 子数组是数组中的一个连续部分。 示例 1: 输入:nums …

C++哈希表:冲突解决与高效查找

引入 通过CSTL库中的unordered_map和unordered_set的学习,我们还需要其底层结构是什么,如何实现的,本节重点讲解哈希 哈希概念 顺序结构以及平衡树中,元素关键码与其存储位置之间没有对应关系,因此在查找一个元素是…

【科研绘图系列】R语言绘制论文比较图(comparison plot)

禁止商业或二改转载,仅供自学使用,侵权必究,如需截取部分内容请后台联系作者! 文章目录 介绍加载R包数据下载导入数据数据预处理画图1画图2画图3系统信息介绍 这篇文章详细介绍了如何使用R语言进行工作流中不同步骤的比较分析,包括数据预处理、特征选择、模型训练和结果可…

录屏不再难,从功能到体验深度测评

在日常工作和学习中,录屏是一项非常常见的需求,比如制作教程、记录操作过程、录制线上会议等。市面上虽然有不少录屏工具,但要么功能受限,要么广告繁多,甚至需要付费解锁高级功能,使用起来并不方便。 这款…

2023年12月6级第一套第一篇

在这里才找完题干,所以答案在下一句虽然不重要,不用看,重要的是但是 A:critic在虽然部分,不重要, c选项前面的部分也在虽然部分,不重要定位的下一句就是答案,还有冒号,看…

Linux --TCP协议实现简单的网络通信(中英翻译)

一、什么是TCP协议 1.1 、TCP是传输层的协议,TCP需要连接,TCP是一种可靠性传输协议,TCP是面向字节流的传输协议; 二、TCPserver端的搭建 2.1、我们最终好实现的效果是 客户端在任何时候都能连接到服务端,然后向服务…

多群组部署

相关概念 星形拓扑和并行多组 如下图,星形组网拓扑和并行多组组网拓扑是区块链应用中使用较广泛的两种组网方式。 星形拓扑:中心机构节点同时属于多个群组,运行多家机构应用,其他每家机构属于不同群组,运行各自应用…

unidbg patch 初探 微博deviceId 案例

声明 本文章中所有内容仅供学习交流使用,不用于其他任何目的,抓包内容、敏感网址、数据接口等均已做脱敏处理,严禁用于商业用途和非法用途,否则由此产生的一切后果均与作者无关! 逆向过程 看了b站迷人瑞信那个由于是…

如何自定义WordPress主题(5个分步教程)

如果您已经安装了一个 WordPress 主题,但它不太适合您,您可能会感到沮丧。在定制 WordPress 主题方面,您有很多选择。 挑战在于找到正确的方法。 在本篇文章中,我将引导您了解自定义 WordPress 主题的各种选项,帮助您…

【兽医处方专用软件】佳易王兽医电子处方软件:高效智能的宠物诊疗管理方案

一、软件概述与核心优势 (一)试用版获取方式 资源下载路径:进入博主头像主页第一篇文章末尾,点击卡片按钮;或访问左上角博客主页,通过右侧按钮获取详细资料。 说明:下载文件为压缩包&#xff…

【nssctf第三题】[NSSCTF 2022 Spring Recruit]easy C

这是题目&#xff0c;下载附件打开是个C文件 #include <stdio.h> #include <string.h>int main(){char a[]"wwwwwww";char b[]"dvxbQd";//try to find out the flagprintf("please input flag:");scanf(" %s",&a);if…

DAY41 CNN

可以看到即使在深度神经网络情况下&#xff0c;准确率仍旧较差&#xff0c;这是因为特征没有被有效提取----真正重要的是特征的提取和加工过程。MLP把所有的像素全部展平了&#xff08;这是全局的信息&#xff09;&#xff0c;无法布置到局部的信息&#xff0c;所以引入了卷积神…

助力活力生活的饮食营养指南

日常生活中&#xff0c;想要维持良好的身体状态&#xff0c;合理的营养补充至关重要。对于易受身体变化困扰的人群来说&#xff0c;更需要从饮食中摄取充足养分。​ 蛋白质是身体的重要 “建筑材料”&#xff0c;鱼肉、鸡肉、豆类制品富含优质蛋白&#xff0c;易于消化吸收&am…

CA-Net复现

复现结果–Dice&#xff1a;90.093802&#xff0c;Jaccard&#xff1a;82.077802&#xff0c;95HD&#xff1a;6.89387267&#xff0c;ASD&#xff1a;1.76263258&#xff0c;与原文一致 感想 第16篇完全复现的论文

【具身智能】【机械臂】各类机械臂对比

选购指标 选购指标 说明机械-负载1w以内通常200g负载&#xff08;一袋酸奶&#xff09;&#xff0c;1w-5w 1kg负载&#xff08;1L饮料&#xff09;&#xff0c;5w 3kg负载机械-精度越贵精度越高机械-夹爪是否支持更换夹爪等&#xff0c;能否支持力控夹爪机械-AGV扩展 …

云服务器无法远程连接怎么办?

当云服务器无法远程连接&#xff08;比如 SSH、RDP 连接不上&#xff09;时&#xff0c;可以按照以下步骤逐一排查和解决&#xff1a; ✅ 一、检查网络连通性 &#x1f539; 1. 确认公网 IP 是否正确 登录云服务商后台查看分配给服务器的公网 IP&#xff0c;确保你连接的目标地…

PolyGen:一个用于 3D 网格的自回归生成模型 论文阅读

[2002.10880] PolyGen&#xff1a;一个用于 3D 网格的自回归生成模型 --- [2002.10880] PolyGen: An Autoregressive Generative Model of 3D Meshes 图 2&#xff1a;PolyGen 首先生成网格顶点&#xff08;左侧&#xff09;&#xff0c;然后基于这些顶点生成网格面&#xff0…

从 LeetCode 到日志匹配:一行 Swift 实现规则识别

文章目录 摘要描述题解答案题解代码分析示例测试及结果时间复杂度空间复杂度总结 摘要 在开发中我们经常遇到“模式匹配”的问题&#xff0c;比如日志分类、用户意图识别、甚至是在一些权限系统中做规则映射判断。这类问题的本质是判断两个结构是否具有一致的对应关系。LeetCo…

基于Qt的app开发的过渡期

写在前面 这篇博客主要工作是解释和思考&#xff0c;不记录我做项目的过程&#xff0c;因为这篇博客是我要理解其他人的代码&#xff0c;其中涉及到tcp的服务器客户端交互、MySQL、多线程 这部分涉及到计算机网络&#xff0c;是笔者没学的部分&#xff0c;所以对我来说理解它们…