【计算机组成原理】CPU的工作原理

news2024/11/24 1:38:19

一.CPU的组成结构

        CPU主要有运算器、控制器、寄存器和内部总线等组成,其大概的样子长这样:

        看不懂没关系,我们将采用自顶而下的方法来讲解CPU的具体工作原理,我们首先来说一下什么叫寄存器,顾名思义,寄存器就是用于暂存东西的,类似去超市的时候门口放着的那些暂存箱,你把东西临时放进去,等逛完超市之后就把它拿回来,就这么个作用,如果有兴趣想要了解一下寄存器为什么可以暂存东西,可以参考以前写过的文章:【计算机组成原理】寄存器的本质——锁存器

二.CPU的思考过程

        首先,CPU摸鱼了很久,终于想起来要干点活了,不然该被优化了,那么它第一件事情就是去领取一下任务,但是任务在哪里找呢?这时候,它就打开了程序计数器PC(作用请看第三节3.1.程序计数器PC

        程序计数器PC里面保存了下一条待运行指令(也可以称为任务,但是一般都叫指令)的地址,这个程序计数器PC就像个悬赏榜一样,告诉CPU任务发起人在哪里,让CPU去指定的地址找任务发起人,执行相应的指令。

        当CPU在程序计数器PC找到地址后,会将当前所访问的内存单元的地址保存到地址寄存器AR(作用请看第三节3.2.地址寄存器AR中去,然后让程序计数器PC指向下一条待运行的指令:

        紧接着,CPU就拿着地址顺着地址总线找到了任务发起人,并且拿到了指令,把指令从数据总线里取出来放到了指令寄存器IR(作用请看第三节3.3.指令寄存器IR中:

        指令寄存器IR拿到指令后,指令译码器ID(作用请看第三节3.4.指令译码器ID找上门来,根据指令格式(作用请看第三节3.5.指令格式)检查指令寄存器中的指令,分析出来操作码是什么,操作数在哪里之类的,如果操作数在内存中,就需要将相应的操作数从内存中取回至存储单元SRAM处,如果在寄存器中就直接就直接取用了。

        操作控制器OC拿着清单检查发现操作数准备好了,操作码也有了,然后就给CPU的运算部门下达指令,开始运算,这时真正指令执行的时刻才到来。

        运算器开始工作,算数逻辑单元ALU(作用请看第三节3.6.算数逻辑单元ALU开始进行运算,期间如果数据过多处理不过来,就将数据暂时存放在累加寄存器AC(作用请看第三节3.7.累加寄存器AC中,如果有操作数在存储单元里即将需要使用了,就把数据暂存在数据缓冲寄存器DR(作用请看第三节3.8.数据缓冲寄存器DR中,将计算的状态存放在状态寄存器PSW(作用请看第三节3.9.状态寄存器PSW中。

        运算结束后,CPU继续回到程序计数器PC里面去,看看悬赏榜上的其他任务,周而复始,开始循环。

三.各寄存器的功能作用

        3.1.程序计数器PC

        程序计数器PC:又称为指令计数器,程序在第一次执行之前会将起始地址存入计数器中,往后每执行一条指令,CPU就自动修改PC的内容,以便随时保持着PC里面存放的地址总是下一条将要执行的指令的地址。程序执行分为顺序执行转移执行两种。顺序执行时,CPU修改PC的过程就是简单地加1,转移执行时,后续指令的地址会根据当前指令的地址加上转移的偏移量得到,或者根据转移指令给出的直接转移地址得出。在8086CPU中,程序计数器PC就是CS:IP寄存器。CS:IP是怎么用地址加法器找到对应地址以及自加1的,可以以前发过的文章:【汇编语言】CS:IP寄存器

        3.2.地址寄存器AR

        地址寄存器AR:地址寄存器保存当前CPU所访问的内存单元的地址。存在的意义是由于内存和CPU存在着速度上的差异,需要用到地址寄存器充当缓存的作用,知道内存的读/写操作完成为止。

        3.3.指令寄存器IR

        指令寄存器IR:当CPU执行一条指令时,会将指令从内存中取出来放到缓冲寄存器,然后再送入指令寄存器IR中暂存。指令译码器会根据指令寄存器IR的内容产生各种位操作指令,控制其他的组成部件工作,完成所需的功能。

        3.4.指令译码器ID

        指令译码器ID:对指令中的操作码字段进行分析解释,识别该指令规定的操作,向操作控制器发出具体的控制信号,控制各部件工作,完成所需的功能。

        3.5.指令格式

        一般的指令格式如下:

前缀

操作码

寻址方式、操作数类型

立即数

偏移量

         前缀用于记录指令的一些辅助信息,例如rep、段超越前缀等等,操作码就是mov、jmp这种操作码,寻址方式是指CPU的寻址方式(后续会编写一篇关于CPU寻址方式的文章,如果有更新会及时在这里添加链接),比如基址寻址、变址寻址等,操作数类型记录使用什么寄存器之类的,如果指令使用了立即数,就会将其记录在立即数这部分,如果寻址方式使用了偏移量,就会在偏移量部分记录指令格式中的偏移量部分。

        3.6.算数逻辑单元ALU

         算数逻辑单元ALU:是运算器中最重要的组成部件,负责处理数据,实现对数据的算是运算和逻辑运算

         3.7.累加寄存器AC

         累加寄存器AC:当运算器的算数逻辑单元执行算术或者逻辑运算时,ALU提供一个临时工作区。比如进行减法运算时,会先将被减数去除暂存在AC中,再从内存中取出减数,然后通AC的被减数相减,所得到的结果送至AC中,运算结果是放在累加器中的。

         3.8.数据缓冲寄存器DR

         数据缓冲寄存器DR:对存储单元进行读/写操作时,使用DR暂存有存储单元读/写的一条指令或者数据字,将不同时间段内读/写的数据分隔开来。也可以作为CPU和内存、外部设备之间的数据传输中转站/缓冲区。

         3.9.状态寄存器PSW

         状态寄存器PSW:用于保存由算数指令和逻辑指令运行或者测试的结果建立的各种条件码内容,只要分为状态标志和控制标志。如进位标志(C)、溢出标志(V)、为0标志(Z)、为负标志(N)、中断标志(I)、方向标志(D)和单步标志等等。

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

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

相关文章

同等学力申硕就一个硕士学位,这有什么用?

很多想在职考研的同学报名前都会拿不定主意选哪种方式好。 想考非全日制研究生吧!又怕难,卷不过在校生。 选同等学力吧,就一个研究生硕士学位,学历层次还是本科,用处不大。 其他的国际硕士学费又太贵,负…

Linux 安装 Redis7.x

Linux 安装 Redis7.x 下载redis7检查linux版本检查是否有 gcc什么是 gcc查看 gcc 是否有安装 安装 redis7查看默认安装目录启动服务连接服务服务关闭Redis的删除卸载Redis数据类型 下载redis7 下载地址:https://download.redis.io/releases/ 检查linux版本 [root…

Jmeter 的 jar 包开发环境搭建,看这一篇就够了!

1、JDK环境变量配置 JAVA_HOMEE:\Program Files\Java\jdk1.8.0_102 Path%JAVA_HOME%\bin; CLASSPATH.;%JAVA_HOME%\lib\dt.jar;.;%JAVA_HOME%\lib\tools.jar 验证环境变量有没有生效:看到如下信息说明 JDK 环境变量已经生效 2、配置 maven 环境 1、下载地址&am…

ASIWebPageRequest库

Objective-C//导入ASIWebPageRequest库#import"ASIWebPageRequest.h"//创建ASIWebPageRequest对象ASIWebPageRequest*request[ASIWebPageRequest requestWithURL:[NSURL URLWithString: "https://cloud.tencent.com/"]];//设置代理服务器地址和端口[reques…

性能监控软件的功能及关键作用

随着信息技术的不断发展,各类系统和应用程序在我们的日常生活中扮演着越来越重要的角色。无论是企业级的服务器集群,还是个人电脑,都需要保证其性能稳定并保持高效运行。为了实现这一目标,性能监控软件成为了不可或缺的工具。本文…

解决msvcr100.dll丢失问题的方法,修复msvcr100.dll丢失的教程

在计算机使用过程中,我遇到了一个关于msvcr100.dll丢失的问题,就是“msvcr100.dll丢失”。msvcr100.dll是Microsoft Visual C 2010的一个动态链接库文件,它包含了许多C运行库函数的实现。当我们在使用一些软件或者游戏时,这些程序…

降低存储网络55% 延迟!阿里云存储论文入选计算机顶会

近日,计算机系统领域的国际顶级学术会议USENIX ATC 2023在美国波士顿市举行。凭借在规模化部署和应用模型上的创新,阿里云存储团队发表的技术论文《Deploying User-space TCP at Cloud Scale with LUNA》被顶会收录,这是继NSDI 21、SIGCOMM 2…

基于人工势场法的航线规划

GitHub - zzuwz/Artificial-Potential-Field: 2D平面下的人工势场法 GitHub - mellody11/Artificial-Potential-Field: 机器人导航--人工势场法及其改进 matlab2020a可以运行

图片批量添加文件名水印

图片现在需要批量添加水印很简单,但是需要添加的水印内容为文件名称比较麻烦。 同时有些能添加文件名称的又有后缀例如(.jpg、.png等等) 这里有个软件可以选择是否加后缀,或者使用图片文件大小来当水印都可以。

YOLOv8添加AIFI(Attention-based Intrascale Feature Interaction模块替换SPPF模块)

1. 引言 1.1 相关介绍 模块名称:Attention-based Intrascale Feature Interaction 论文名称:RT-DETR: DETRs Beat Yolos on Real-time Object Detection 这是论文中的图,此处将其中的AIFI模块拿过来改进YOLOv8。 1.2 其他可改进SPPF模块 …

6-7 二叉树的非递归遍历 分数 10

文章目录 1.非递归前序遍历1.1C写法及解析1.2本题ac答案 2.非递归中序遍历2.非递归后序遍历2.1栈模拟实现非递归C写法本题ac答案本题flag标记法 2.2逆序思想2.3整体代码 1.非递归前序遍历 1.1C写法及解析 vector<int> preorderTraversal(TreeNode* root) {vector<in…

数据结构(超详细讲解!!)第十九节 块链串及串的应用

1.定义 由于串也是一种线性表&#xff0c;因此也可以采用链式存储。由于串的特殊性&#xff08;每个元素只有一个字符&#xff09;&#xff0c;在具体实现时&#xff0c;每个结点既可以存放一个字符&#xff0c;也可以存放多个字符。每个结点称为块&#xff0c;整个链表称为块链…

linux杀毒软件ClamAV下载、安装(在线安装、离线安装)

流程图 下载 ClamAVNet 离线安装脚本 #扫描文件路径&#xff0c;程序安装路径&#xff0c;当然也可以全盘扫描&#xff0c;全盘扫描的时候路径设置为"/"即可 scanfile"/home" #分钟 小时 日 月 年, 例:0 0 * * * 表示每天0时0秒 scantime"0 0 * * *…

2023/11/2 JAVA学习

接口里面只有这两个东西,无构造器,代码块之类的 私有方法可以在接口里的其他默认方法,或私有方法中访问 静态方法,类持有,可直接调用 接口多继承,可以一个接口继承其他几个接口把几个接口合并成一个接口 先创建外部类,再创建成员内部类 在外部类中无法直接访问内部类的方法变量…

04 训练 windows环境下调用GPU资源做模型训练加速示例

笔者有一台windows电脑,要想在训练yolo模型的时候提升速度,可以按照笔者本文的示例进行。 1、检查可用GPU资源 可以在设备管理器中检查电脑中是否含有GPU设备,如下图所示,可以在设备管理器中检查显卡信息,证明我们有GPU资源可以在训练模型的时候调用。 2、核对显卡算力 …

TIME_WAIT相关知识

四次挥手 这是TCP四次握手的过程图。 TCP 连接终止时&#xff0c;主机 1 先发送 FIN 报文&#xff0c;主机 2 进入 CLOSE_WAIT 状态&#xff0c;并发送一个 ACK 应答&#xff0c;同时&#xff0c;主机 2 通过 read 调用获得 EOF&#xff0c;并将此结果通知应用程序进行主动关闭…

uniapp app端选取(上传)多种类型文件

这里仅记录本人一些遇到办法&#xff0c;后台需要file对象&#xff0c;而App端运行在jsCore内&#xff0c;并非浏览器环境&#xff0c;并没有File类&#xff0c;基本返回的都是blob路径&#xff0c;uni-file-picker得app端只支持图片和视频&#xff0c;我这边需求是音视频都要支…

浏览器请求http地址,自动跳转成https

谷歌浏览器&#xff1a; 点击url地址左侧的锁&#xff0c;选择【网站设置】 点击【隐私和安全】&#xff0c;将【不安全内容】改为允许&#xff0c;然后刷新即可

协力共创智能未来:乐鑫 ESP RainMaker 云方案线下研讨会圆满落幕

近日&#xff0c;乐鑫 ESP RainMaker 云方案线下研讨会&#xff08;深圳&#xff09;在亚马逊云科技与合作伙伴嘉宾的支持下成功举办&#xff0c;吸引了众多来自智能家电、照明电工、能源和宠物等行业的品牌客户、方案商和制造商。研讨会围绕如何基于乐鑫 ESP RainMaker 硬件连…