CPU:中央处理器(CPU,英语:Central Processing Unit / Processor),是电子计算机的主要设备之一,电脑中的核心配件。其功能主要是解释计算机指令以及处理计算机软件中的数据。电脑中所有操作都由CPU负责读取指令,对指令译码并执行指令的核心部件。

这是CPU的大致组成,易于理解。

解释:

ALU:这是逻辑运算单元,用于计算。如,加减乘除,位移操作,按位逻辑运算。

Registers:这是寄存器可用来暂存指令、数据和地址。其中地址反面:可以存放任何类型的地址,包括内存地址、I/O地址、中断向量地址等。

PC:这是程序计数器,程序计数器是用于存放下一条指令所在单元的地址的地方。当执行一条指令时,首先需要根据PC中存放的指令地址,将指令由内存取到指令寄存器中(就是寄存器),此过程称为"取指令"。与此同时,PC中的地址或自动加1或由转移指针给出下一条指令的地址。此后经过分析指令,执行指令。完成第一条指令的执行,而后根据PC取出第二条指令的地址,如此循环,执行每一条指令。

就是下一条指令的地址。

cache:这是高速缓冲存储器,位于CPU与内存之间的临时存储器,它的容量比内存小但交换速度快。在缓存中的数据是内存中的一小部分,但这一小部分是短时间内CPU即将访问的,当CPU调用大量数据时,就可避开内存直接从缓存中调用,从而加快读取速度。

区别寄存器和高速缓冲器:

1、寄存器:

寄存器是CPU内部的高速存储单元,主要用于存放程序运行过程中所使用的各种数据,寄存器的容量最小,但存取速度最高。

2、高速缓冲存储器:

简称高速缓存Cache,其存取速度与CPU速度相当,非常快,但成本高且容量较小(一般为几KB到几百KB),主要用来存放使用频率较高的少量信息。

高速缓存可以保存数据副本,访问高速缓存要比访问内存中的原始数据效率更高,速度更快。

扩展:CPU从内存拿东西,拿到的东西会先到高速缓冲器,然后再到寄存器。

CU和MMU暂时不做太多解释,会另外启一篇文章。

MMU(内存管理单元)是一种硬件设备,用于将虚拟地址映射到物理地址,以实现虚拟内存管理。它可以提供内存保护、内存分配和内存映射等功能,以确保系统的安全性和可靠性。

CU(控制单元)是一种硬件设备,用于控制CPU的指令流程,以及指令的执行和数据的传输。以确保系统的正确运行。

下面不会提到这两个

总地来说,其实cpu分会三个单位:控制单元、数据单元、逻辑运算单元。

并且每个单元其实是由寄存器构成地。

CPU各个模块的由来:

首先,需要从语言开始,正常人很少会手语,这是因为我们有自己的语言,并且我们没有去学手语,那么手语是怎么来的呢?手语其实是一个一个动作产生来表达自己想法,而这些动作的规定了什么动作是什么意思,这才组成了手语。

同样,我们如果用灯泡来规定一种语言,可以规定打开或者关闭的意思,也可以规定打开几次或者关闭几次的意思,还可以规定通过间隔时间进行开关的意思。一系列的意思的组成就形成了一种语言,也就是灯泡语言。

到后来,出现了二进制。

再后来,通过电路的电路的开关,或是灯泡的开关,确定了0和1。

我们可以通过各种方式,确定灯泡的开关,可以是打开,然后灯泡亮,也可以是关闭,灯泡亮。也就是输入1可以输出1或者0,输入0可以输出1或者0。

之后,发明出了,与门、或门、异或门、与非门、或非门,可以理解为C语言的按位与、按位或、按位疑惑,就是输入两个数,输出不同的结果。就相当于两个开关控制一个灯泡。

通过各种门的结合就发明出了加法器:

但是一个加法器只能算出一位,这种叫做半加器:

如果要算多位,只需要把他们串联起来就行了。此时就叫做全加器。

有了加法器,就可以得到加减乘除等等的运算,因为这些运算,都可以从+法中得到。

然后这些不同的运算结合后就得到了上面说的ALU

然后出现了时钟电路,当通电后,线圈产生磁场 把开关b拿下来,然后电就不通了,b又回去了,又通了。。。。

为什么需要这个时钟电路呢,因为程序在运算时,是需要同步的,但是如果一直通着电,程序就会停在那里,或者某个单元提前做事,或者没做,比如运算逻辑单元提前运算,如果3+5,如果运算单元先动了,而寄存器才把数据传到一半,或压根没传,那么就由可能算出错误答案,需要由时间才能分先后,最后才能得到8

再到后来出现了锁存器,这个东西输入什么就输出什么:

但是锁存器只有一位,那么8个锁存器就可以有8位,1024个锁存器就可以有1k,有了1k就可以有1G和1T,那么这是什么?这其实就是存储器。内存、寄存器。。。

有了存储器,我们就可以把数据放到内部,也开关吧地址放到内部,当程序执行的时候就会通过地址,找到数据。

有了这些,就出现了registers和pc以及cache

当程序执行时,通过地址找到数据,通过数字信号执行表达式,再通过pc找到下一行代码,然后再由时钟信号改变控制端,执行下一行代码,由此实现了程序的自动化。

数据从内存到CPU是通过总线传输的。

但是底层任何数据或是地址都是由0和1组成的。

那么从内存到cpu的时候怎么知道是地址还是数据呢?

其实总线分为三条:

1.控制线

CPU从控制线读过来的是 指令(加减法之类的操作符)

2.地址线

CPU从地址线读过来的是 地址

3.数据线

CPU从数据线读过来的是 数据

一个程序的执行:首先把可执行文件存放在内存 ,再从main的起始地址,读出指令和地址,然后传入cpu,把进行运算后的结果返回内存。

CPU指令的执行流程

一、取指令阶段
取指令(Instruction Fetch,IF)阶段是将一条指令从主存中取到指令寄存器的过程。

程序计数器PC中的数值,用来指示当前指令在主存中的位置。当一条指令被取出后,PC中的数值将根据指令字长度而自动递增。

二、指令译码阶段
取出指令后,计算机立即进入指令译码(Instruction Decode,ID)阶段。

在指令译码阶段,指令译码器按照预定的指令格式,对取回的指令进行拆分和解释,识别区分出不同的指令类别以及各种获取操作数的方法。

三、执行指令阶段
在取指令和指令译码阶段之后,接着进入执行指令(Execute,EX)阶段。

此阶段的任务是完成指令所规定的各种操作,具体实现指令的功能。为此,CPU的不同部分被连接起来,以执行所需的操作。

四、访存取数阶段
根据指令需要,有可能要访问主存,读取操作数,这样就进入了访存取数(Memory,MEM)阶段。

此阶段的任务是:根据指令地址码,得到操作数在主存中的地址,并从主存中读取该操作数用于运算。

五、结果写回阶段
作为最后一个阶段,结果写回(Write Back,WB)阶段把执行指令阶段的运行结果数据“写回”到某种存储形式。

结果数据经常被写到CPU的内部寄存器中,以便被后续的指令快速地存取;

在有些情况下,结果数据也可被写入相对较慢、但较廉价且容量较大的主存。许多指令还会改变程序状态字寄存器中标志位的状态,这些标志位标识着不同的操作结果,可被用来影响程序的动作。

在指令执行完毕、结果数据写回之后,若无意外事件(如结果溢出等)发生,计算机就接着从程序计数器PC中取得下一条指令地址,开始新一轮的循环,下一个指令周期将顺序取出下一条指令。

CPU内部细分与计算机工作过程(执行程序时,CPU与内存之间数据详细交替过程):

计算机底层:计算机工作过程_srhqwe的博客-CSDN博客

计算机底层:CPU结构与组成原理、工作原理相关推荐

  1. 单片机中存储器扩展位地址线怎么算_51单片机CPU结构各部件的原理详细分析

    一. 51单片机串行口工作原理 MCS-51系列单片机片内有一个串行I/O端口,通过引脚RXD(P3.0)和TXD(P3.1)可与外设电路进行全双工的串行异步通信. 1.串行端口的基本特点 8031单 ...

  2. SSD固态硬盘的结构和基本工作原理概述

    展开 我们都知道,早期的电脑CPU是可以直接从硬盘上面读取数据进行处理的,随着科技的进步,时代的发展,计算机硬件的发展速度也是极其迅猛.CPU主频的不断提升,从单核到双核,再到多核:CPU的处理速度越 ...

  3. BOSHIDA 电源模块 PLC的硬件结构配置与工作原理

    BOSHIDA  电源模块 PLC的硬件结构配置与工作原理 中.大型PLC的结构外型,它通常采用积木式结构,可以根据需要将各种标准模块进行搭接,常用的模块有电源模块.CPU模块.输入模块.输出模块以及 ...

  4. 区间比较_Simulink(离散PIDamp;区间检测模块)+AURIX功能安全板过流比较电路+电机结构应用与工作原理学习网站...

    1 Simulink Simulink-离散PID&区间检测模块 a.离散PID模块 离散PID模块中可以对PID类型以及相应的系数进行设置: PID模块可以选择三种不同的方式进行积分,包括前 ...

  5. 计算机系统—CPU结构和内部工作

    一.计算机系统硬件组成 计算机系统的基本组成由:计算器.控制器.存储器.输入和输出设备这5大核心部件组成. 运算器和控制器等继承在一起成为CPU.以下通过这张图能够非常清楚的表达计算机系统.先从全局上 ...

  6. Part1:使用 TensorFlow 和 Keras 的 NeRF计算机图形学和深度学习——计算机图形学世界中相机的工作原理

    Part1:使用 TensorFlow 和 Keras 的 NeRF计算机图形学和深度学习 1. 效果图 2. 原理 2.0 前向成像模型 2.1 世界坐标系 2.2 相机坐标系 2.3 坐标变换 2 ...

  7. 【软考学习4】计算机构成——CPU 结构、Flynn 分类法、CISC和RISC

    CPU 结构.Flynn 分类法.CISC/RISC都是软考中较为常见的知识点,需要了解每种类型的特征.它们之间的区别. 一.CPU结构 数学家 冯·诺依曼 认为,计算机应当分为以下五个部分: 运算器 ...

  8. 计算机主板时钟,主板时钟电路工作原理

    主板时钟电路工作原理 时钟电路工作原理: DC3.5V电源经过二极管和L1(L1可以用0Ω电阻代替)进入分频器后,分频器开始工作,和晶体一起产生振荡.在晶体的两脚均可以看到波形.晶体的两脚之间的阻值在 ...

  9. CPU处理器架构和工作原理浅析

    汇编语言是学习计算机如何工作的很好的工具,它需要我们具备计算机硬件的工作知识. 基本微机设计 下图给出了假想机的基本设计.中央处理单元(CPU)是进行算术和逻辑操作的部件,包含了有限数量的存储位置-- ...

最新文章

  1. AI一分钟|美团确认收购摩拜;特斯拉今年第一季度产量创历史新高
  2. Uber网站国际化的工程实践(CMS篇)
  3. 【2019.7.16 NOIP模拟赛 T1】洗牌(shuffle)(找环)
  4. loj 1316(spfa预处理+状压dp)
  5. 断言(assert)详解
  6. sklearn自学指南(part42)--使用手册的目录
  7. servlet ---- EL表达式
  8. Java学习(8):贪吃蛇游戏
  9. 2012、2014、2016、2020年最全数据合集产学研专题2.0
  10. 【渗透测试】IIS6.0的安装、使用与相关漏洞
  11. 吉比特无源光纤说明书_光纤上网是如何实现的?
  12. xml--json代码大全
  13. python有一对兔子,从出生后第3个月起每个月都生一对兔子
  14. CAD怎么调整绘图区左下方显示坐标的框
  15. outlook附加文件超过服务器允许大小,如何在Outlook中更改或增加附件大小限制?...
  16. Android LifeCycle详解
  17. Easy Problem 9 判断质数
  18. 金仓数据库KingbaseES数据迁移
  19. setContentView(R.layout.activity_main);一直报错,原来是glide惹得祸
  20. pygame 界面制作编程需要

热门文章

  1. 云计算概论 -- 云使能技术
  2. 苹果电脑系统还原出现服务器,苹果电脑恢复出厂设置【解答方法】
  3. 腾讯云.xb 数据库备份恢复
  4. mysql 表锁 MDL锁 行锁
  5. C语言--02输出一个字符的ASCII值
  6. The environmenthvariable 'Path' seems to ave some paths containing characters (';', '' or ';;').
  7. linux 文件备份工具,四种时下流行 Linux备份工具比较与操作实例
  8. 无法找到模块“vue-awesome-swiper/dist/ssr”的声明文件
  9. LSTM trick之LSTMP
  10. Backpack-problem背包九讲笔记