简单了解CPU的工作原理

news2025/2/25 0:06:07

目录

一、基本结构以及对应功能

(1)基本结构

(2)几个重要寄存器的详细介绍

操作码 (Opcode)

操作数 (Operands)

指令表 (Instruction Table)

第一个:程序计数器 (PC)

第二个:指令寄存器 (IR,Instruction Register)

第三个:内存地址寄存器 (MAR)

第四个:内存缓冲区寄存器 (MBR)

第五个:累加寄存器 (ACC,Accumulator)

二、工作流程

1. 取指(Fetch)

2. 解码(Decode)

3. 执行(Execute)

4.写回(Writeback)

三、CPU的性能的评判标准(做一个补充)

1)频率

2)核心数

3)缓存

4)功耗和散热

5)工艺/架构


要了解CPU(中央处理器,Central Processing Unit)的工作原理,要先了解它的基结构。

一、基本结构以及对应功能

(1)基本结构

  • 算术逻辑单元(ALU,Arithmetic Logic Unit):负责执行所有的算术和逻辑运算。(内含多个组件
  • 控制单元(CU,Control Unit):负责从内存中获取指令、解释指令,并将控制信号发送给其他部件以执行指令。(内含多个组件
  • 寄存器:小而高速的存储单元,用于暂存数据和指令。(种类很多,等一下介绍几个常见的

(2)几个重要寄存器的详细介绍(了解即可)

想要理解CPU的工作流程,以下几个寄存器一定要有所了解。

在了解寄存器之前我们先了解一下这几个概念:

 一个指令(二进制构成,如:0010 1110等),前半段表示操作码,后半段表示操作数。

操作码 (Opcode)

  • 定义: 操作码(Opcode)是指令的一部分,用于指定CPU应该执行的操作类型。
  • 作用: 它告诉CPU应该进行什么操作,例如加法、减法、跳转、加载数据等。

操作数 (Operands)

  • 定义: 操作数(Operands)是指令的一部分,用于指定操作所需的数据或数据的位置。
  • 作用: 它们是操作码所作用的具体数据或数据的地址,可以是立即数、寄存器、内存地址等。
  • 类型:
    • 立即数: 指令中直接包含的数值,例如5
    • 寄存器: 指定一个寄存器,例如R1
    • 内存地址: 指定一个内存地址,例如0x1000
  • 示例(已经把二进制指令翻译):
    • 在指令ADD R1, R2中,R1R2是操作数。
    • 在指令MOV R1, 5中,R1是目标操作数,5是源操作数。

指令表 (Instruction Table)

  • 定义: 指令本身是一个数字,用二进制保存在内存中的某一个位置。每一个二进制数字就对应一个操作码,如图:

接下来我们正式来介绍这五个比家中要的寄存器:

第一个:程序计数器 (PC)

  • 功能: 程序计数器用于存储即将执行的指令的地址
  • 作用: 它负责跟踪程序的执行顺序,每当一条指令被取出并执行后程序计数器的值就会自动增加,指向下一条指令的地址。这样,程序计数器确保了程序的指令按正确的顺序被执行
  • 详细描述:
    1. 初始化: 当一个程序开始运行时,程序计数器被初始化为程序的起始地址。
    2. 指令获取: 在每个时钟周期,CPU会从程序计数器指定的地址取出一条指令。
    3. 自增: 取出指令后,程序计数器通常会增加(或跳转)到下一条指令的地址,除非遇到跳转指令。

***tips***:

时钟周期:

时钟周期是CPU从开始到执行完一个指令所花费的时间,因此严格意义上来讲,每个时钟周期的时间都是不一样的。


程序计数器简记技巧

功能:储存即将执行的指令的地址

作用:确保每条指令能够按预定顺序执行

第二个:指令寄存器 (IR,Instruction Register)

  • 功能: 指令寄存器用于存储当前正在执行的指令
  • 作用: 它确保CPU可以在执行期间快速访问当前指令的操作码操作数。指令寄存器使得指令的解码和执行过程更高效。
  • 详细描述:
    1. 指令加载: 当程序计数器(PC)指向的指令被取出后,这条指令会被加载到指令寄存器中。
    2. 指令解码: 在指令寄存器中存储指令的同时,指令解码器会解析这条指令,确定其操作码和操作数。
    3. 指令执行: 解析完成后,CPU根据解码结果执行相应的操作,如算术运算、数据传输等。

***tips***:

指令寄存器简记技巧:

功能:储存当前正在执行的指令

作用:使CPU能快速访问指令中的操作数和操作码,使得CPU对指令的解码和执行过程更加高效。(寄存器的访问速度非常快,不过存储容量低)


第三个:内存地址寄存器 (MAR)

  • 功能: 内存地址寄存器用于存储当前CPU正在访问的内存地址。<这一点一定要记住>
  • 作用: MAR负责在CPU和内存之间传递地址信息。当CPU需要读取或写入数据时,它会把目标内存地址加载到MAR中。

第四个:内存缓冲区寄存器 (MBR)

  • 功能: 内存缓冲区寄存器用于暂时存储从内存中读取或将要写入内存的数据。<一定要记住>
  • 作用: 它是CPU和内存之间的数据交换缓冲区。当CPU从内存读取数据或向内存写入数据时,MBR充当中间存储器。(类似于两个变量的交换,需要用到一个中间变量才能实现)

第五个:累加寄存器 (ACC,Accumulator)

  • 功能: 累加寄存器主要用于存储算术和逻辑运算的中间结果或者用于计算的数据。<要记住>
    例如A+B=C,在运算过程中累加寄存器会先后存储A、B、C

     
  • 作用: 它在算术逻辑单元(ALU)进行运算时,充当一个主要的操作数和结果存储位置。

二、工作流程(要求能够描述)

CPU的基本工作流程通常被描述为“取指、解码、执行、写回”四个主要步骤。

这些步骤共同组成了一个指令周期。以3+2=5这个程序为例:

1. 取指(Fetch)

在这个阶段,CPU从内存中获取下一条指令。

  • 程序计数器(PC):指向内存地址0x1000,其中存储着指令ADD R1, R2, R3(假设这条指令表示将R2和R3的值相加,结果存储在R1中)。
  • 取指操作:将PC的值送到内存地址总线,读取指令ADD R1, R2, R3,并将其放入指令寄存器(IR)中。
  • 更新程序计数器:PC增加,以指向下一条指令的地址(假设是0x1004)。
     

2. 解码(Decode)

在这个阶段,CPU解码刚刚取回的指令,以确定需要执行的操作和操作数。

  • 指令解码器:将IR中的指令解码为操作码(Opcode)和操作数。操作码指示这是一个加法操作,操作数R1、R2、R3指示需要的寄存器。
  • 生成控制信号:控制单元生成相应的控制信号,准备调度算术逻辑单元(ALU)和寄存器

3. 执行(Execute)

在这个阶段,CPU执行指令。

  • 读取寄存器:从寄存器文件中读取R2和R3的值(假设R2的值是3,R3的值是2)。
  • 算术逻辑单元(ALU):将R2和R3的值送入ALU,执行加法操作。ALU计算3 + 2 = 5(结果存储到ACC)。

4.写回(Writeback)

在这个阶段,CPU将执行结果写回到指定的寄存器或内存位置。

  • 结果存储:将ALU计算得到的结果5从ACC通过内存缓冲区寄存器(MBR)存入到对应内存地址。
     

虽然在人看来,一个简单的加法都要这么繁琐的步骤完成。

但是CPU的执行速度是非常快的,而且在实际情况中,同一时刻CPU可以执行多个程序(并发执行)。

因此CPU是智能系统最核心的部分。

三、CPU的性能的评判标准(做一个补充)

1)频率

频率越高,一秒中CPU运算的次数就越多。

2)核心数

现代CPU通常具有多个核心,每个核心都可以执行指令。较多的核心数意味着CPU可以同时处理更多的任务,从而提高性能。

3)缓存

CPU具有多级缓存,包括L1、L2、L3等。(1到3访问速度逐渐变慢、存储容量不断增加)缓存的作用是存储常用的数据和指令,以便CPU更快地访问。较大且更快的缓存可以提高CPU的性能。

4)功耗和散热

CPU的功耗和散热问题也会影响其性能。较低的功耗和有效的散热系统可以保持CPU在高负载下的稳定性能。

5)架构

CPU的架构决定了其指令集和内部组织结构。较新的架构通常会引入更高效的指令集和更复杂的内部结构,从而提高性能。(比如英特尔的超线程技术,AMD的zen架构


本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.coloradmin.cn/o/1824139.html

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈,一经查实,立即删除!

相关文章

STM32学习笔记(三)--EXTI外部中断详解

&#xff08;1&#xff09;配置步骤1.配置RCC 打开外设时钟2.配置GPIO 选择端口输入模式3.配置AFIO 选择要用的一路GPIO 连接至EXTI 4.配置EXTI 选择边沿触发方式 上升沿 下降沿 双边沿 选择触发响应方式 中断响应 事件响应 5.配置NVIC 选择一个合适的优先…

Uni-App中的u-datetime-picker时间选择器Demo

目录 前言Demo 前言 对于网页端的推荐阅读&#xff1a;【ElementUI】详细分析DatePicker 日期选择器 事情起因是两个时间选择器同步了&#xff0c;本身是从后端慢慢步入全栈&#xff0c;对此将这个知识点从实战进行提炼 通过Demo进行总结 Demo 用于选择日期和时间的组件&a…

宝藏速成秘籍(3)选择排序法

一、前言 1.1、概念 选择排序法&#xff08;Selection Sort&#xff09;是一种简单直观的排序算法。它的基本思想是&#xff1a;每次从待排序的数组中选择最小&#xff08;或最大&#xff09;的元素&#xff0c;将其放在已排序部分的末尾&#xff0c;直到所有元素都排序完毕。…

外网访问公司内网服务器?

【天联】组网天联可以解决不同地区电脑与电脑、设备与设备、电脑与设备之间的信息远程通信问题。在全国各主要节点部署加速服务器&#xff0c;实现在低带宽、跨运营商的网络环境下高速访问&#xff1b;这为公司内网服务器提供了一个可行的外网访问解决方案。 在现代办公环境中…

智能驾驶新高度:比亚迪无图城市领航夜闯城中村

在各种创新科技日新月异的今天&#xff0c;智能驾驶技术也给我们带来了越来越多的惊喜。 近日&#xff0c;比亚迪旗下的高端品牌腾势&#xff0c;凭借其全新车型腾势N7&#xff0c;在智能驾驶领域展现出了令人瞩目的实力。 在一场别开生面的“无图城市领航”实测中&#xff0c;…

Unet心电信号分割方法(Pytorch)

心血管疾病是一种常见病&#xff0c;严重影响人们的健康及日常生活。 近年来随着人们生活习惯的不断变化&#xff0c;心血管疾病对人们影响愈加明显&#xff0c;发病率呈现出逐年攀升的趋势&#xff0c;心血管疾病是中国城乡居民死亡的首要原因。心电图ECG已被广泛用于研究心跳…

跨境电商卖家入驻美国线下商超困难吗?

对于跨境电商卖家来说&#xff0c;入驻美国线下商超确实具有一定的挑战性&#xff0c;但并非不可能。成功的关键在于卖家是否具备必要的条件和资质&#xff0c;以及是否能够有效应对美国市场的挑战。 1、卖家需要满足美国相关法律法规的要求 需要拥有合法的经营执照、提供准确…

AI绘画入门教程(非常详细)从零基础入门到精通Midjourney提示词,咒语

Microorganisms infiltrating through brain-machine interfaces --v 6.0 Microorganisms infiltrating through brain-machine interfaces ,redpupil --v 6.0 Microorganisms infiltrating through brain-machine interfaces,billion girls dream --v 6.0 --niji 6 “动漫风”…

Kafka性能优化策略综述:提升吞吐量与可靠性

Kafka性能优化策略综述&#xff1a;提升吞吐量与可靠性 优化 Kafka 的性能可以从多个方面入手&#xff0c;包括配置调优、架构设计和硬件资源优化。下面详细介绍一些常用的优化策略&#xff1a; 1. 分区设计 增加分区数量&#xff1a;更多的分区意味着更高的并行处理能力&a…

德国欧洲杯观战掌中宝

点击标题下「蓝色微信名」可快速关注 今天03:00&#xff0c;德国欧洲杯即将拉开帷幕&#xff0c;首战德国对阵苏格兰&#xff0c;24支欧洲国家队&#xff0c;分为6个小组&#xff0c;你是谁的拥趸&#xff1f; 本届欧洲杯的比赛时间有三个&#xff0c;分别是零点、凌晨三点和晚…

Ollama在MacOS、Linux本地部署千问大模型及实现WEB UI访问

一、前言 阿里通义千问发布了Qwen2&#xff0c;提供了0.5B&#xff5e;72B的量级模型&#xff0c;在​​Ollama官网​​可以搜索qwen2查看&#xff0c;本文提供了Ollama的下载&#xff08;在线/离线安装&#xff09;、Ollama运行模型、使用WebUI连接模型以及页面简单配置。 …

Real3D:利用真实世界图像扩展3D重建模型

原理&#xff1a; 在3D重建领域&#xff0c;单视图重建任务由于其固有的不确定性而充满挑战。为了克服这一难题&#xff0c;研究者们一直在探索如何利用大型数据集训练模型以学习形状和纹理的通用先验知识。然而&#xff0c;现有训练方法依赖于合成数据或多视图捕获&#xff0c…

【实例分享】银河麒麟高级服务器操作系统环境资源占用异常-情况分析及处理方法

1.情况描述 使用vsftp进行文件传输&#xff0c;发现sshd进程cpu占用异常&#xff0c;并且su和ssh登录相比正常机器会慢2秒左右。 图&#xff11; 2.问题分析 通过strace跟踪su和sshd进程&#xff0c;有大量ssh:notty信息。 图2 配置ssh绕过pam模块认证后&#xff0c;ssh连接速…

【计算机视觉】人脸算法之图像处理基础知识(二)

图像处理基础知识&#xff08;二&#xff09; 1.图像的颜色空间转换 我们常见的图像通常由R&#xff08;红色&#xff09;、G&#xff08;绿色&#xff09;、B&#xff08;蓝色&#xff09;组成。但是在很多时候我们会将彩色图像转换成灰度图像进行处理。此时会用到cv2.cvtCo…

EasyGBS服务器和终端配置

服务器配置 修改easygbs.ini sip/host为本机IP&#xff0c;否则终端能登录&#xff0c;无法视频。 [sip] host192.168.3.190 终端用于登录的用户名和密码 default_usertest default_passwordtest1234 default_guest_userguest default_guest_passwordtest1234终端配置 关…

【Quartus 13.0】EP1C3144I7 部署4*6矩阵键盘

仿照 正点原子 的 Sample 修改 V2手册 P266 没有用这个 给出的手动按键控制的矩阵模块 为 4*6 矩阵键盘外接模块 每一个按键自带led&#xff0c;所以对应的接口是合并在一起的一个引脚 按下后 LED 亮&#xff0c;vice versa 底部 LED*8 目前不清楚有什么用 或许可以变成 16进…

使用sherpa-ncnn进行中文语音识别(ubuntu22)

获取该开源项目的渠道&#xff0c;是我在b站上&#xff0c;看到了由csukuangfj制作的一套语音识别视频。以下地址均为csukuangfj在视频中提供&#xff0c;感谢分享&#xff01; 新一代Kaldi RISC-V: VisionFive2 上的实时中英文语音识别_哔哩哔哩_bilibili 开源项目地址&…

Vue41-vc实例与vm实例

一、 vc实例与vm实例的区别 vc实例与vm实例&#xff0c;99%结构都是类似的&#xff0c;仅2点不同&#xff1a; el属性data的书写格式 1-1、 el属性 vc有的功能vm都有&#xff0c;但是vm能通过el决定为哪个容器服务&#xff0c;但是vc却不行&#xff01; 1-2、data的书写格式

利用Cesium和JS实现地点点聚合功能

引言 在实现基于地图的业务场景时&#xff0c;当地图上需要展示过多的标记点时&#xff0c;大量的分散点会使地图上显得杂乱无章&#xff0c;导致标记点对地图上的其他重要信息造成遮挡和混淆&#xff0c;降低地图整体的可读性。 标记点的聚合就很好的解决了这些痛点的同时&a…

理解Es的DSL语法(二):聚合

前一篇已经系统介绍过查询语法&#xff0c;详细可直接看上一篇文章&#xff08;理解DSL语法&#xff08;一&#xff09;&#xff09;&#xff0c;本篇主要介绍DSL中的另一部分&#xff1a;聚合 理解Es中的聚合 虽然Elasticsearch 是一个基于 Lucene 的搜索引擎&#xff0c;但…