cpu全称

(cpu全称英文)

作者:cxuan

每个人都是程序员,每个人都是处理计算机的程序员,每个人都是处理计算机软件和硬件的程序员,每个人都是CPU处理程序员,所以,无论你是玩硬件还是做软件,你的世界离不开计算机的核心 - CPU

CPU是什么

CPU 的全称是 Central Processing Unit,毫不夸张地说,它是你电脑中最硬核的组件。CPU 它可以使你的计算机成为计算机的核心组件,但它不能代表你的计算机,CPU 与计算机的关系相当于大脑和人的关系。CPU 它可以使你的计算机成为计算机的核心组件,但它不能代表你的计算机,CPU 与计算机的关系相当于大脑和人之间的关系。它是一种嵌入台式机、笔记本电脑或平板电脑主板的小型计算机芯片。在单个计算机芯片上放置数十亿个微晶体管 CPU。 这些晶体管使其能够执行存储在系统内存中的程序所需的计算,即 CPU 它决定了你计算机的计算能力。

CPU 实际做什么

CPU 核心是从程序或应用程序中获取指令并执行计算。这一过程可分为三个关键阶段:提取、解码和执行。CPU从系统的 RAM 提取指令,解码指令的实际内容,然后通过 CPU 执行该指令的相关部分。

RAM : 随机存储器(英语:Random Access Memory,缩写:RAM),也叫主存,是和 CPU 内部存储器直接交换数据。它可以随时读写(刷新时除外),速度快,通常用作操作系统或其他正在运行的程序临时数据存储介质

CPU 的内部结构

说了这么多 CPU 所以 CPU 什么是内部结构?它是由什么组成的?下图显示了一般程序的运行过程(以下图) C 以语言为例),可以说理解程序的运行过程是掌握程序运行机制的基础和前提。

在这个过程中,CPU 负责解释和操作最终转化为机器语言的内容。

CPU 主要由控制单元两部分组成: 和 算术逻辑单元(ALU)

控制单元:从内存中提取指令并解码执行算数逻辑单元(ALU):处理算数和逻辑操作

CPU 它是计算机的心脏和大脑,它和内存是由许多晶体管组成的电子部件。它接收数据输入,执行指令并处理信息。它与输入/输出(I / O)通信设备 CPU 发送数据和从 CPU 接收数据。

从功能的角度来看,CPU 的内部由寄存器、控制器、操作员和时钟这四个部分由电信号连接。

寄存器是中央处理器的一部分。它们可用于暂存指令、数据和地址。可视为一种内存。根据不同的类型,一个 CPU 内部会有 20 - 100个寄存器。控制器负责将内存上的指令和数据读入寄存器,并根据指令结果控制计算机运算器,负责从内存中读入寄存器的数据时钟 负责发出 CPU 时钟信号开始计时

接下来,简单解释一下为什么内存 CPU 你需要谈论内存,因为内存是与 CPU 沟通的桥梁。所有的计算机程序都在内存中运行,内存也被称为主存储,其作用是存储 CPU 与硬盘等外部存储设备交换的操作数据和数据。只要计算机在运行,CPU 需要操作的数据将转移到主存进行操作,当操作完成后CPU主存的运行也决定了计算机的稳定运行。

通过控制芯片和主存 CPU 连接由可读写元素组成,每个字节(1) byte = 8 bits)都有地址号,注意是字节,而不是位置。CPU 从主存中读取地址和指令,或根据地址写入数据。注:当计算机关时,内存中的指令和数据也会被清除。

CPU 是寄存器的集合体

在 CPU 在四个结构中,我们的程序员只需要了解寄存器,其余三个不需要太注意。为什么这么说?因为程序描述寄存器作为对象。

说到寄存器,我不得不说汇编语言。我在大学学习信息管理和信息系统,所以我没有学习汇编课程(即使有这门课程,我也不会努力学习hhhh),作为一名硬核程序员,出来混总是要还的。说到汇编语言,我们必须谈论高级语言。说到高级语言,我们必须涉及语言的概念。

计算机语言

我们生来最明显的特点之一就是我们可以通过说话来实现彼此的交流,但是电脑听不懂你说的话。如果你想和他交流,你必须按照照计算机指令交换,这涉及到语言问题。计算机由二进制组成。它只能理解二进制,即机器语言,但普通人无法理解机器语言,此时,需要一种计算机能够识别和理解的语言。首先是汇编语言。但汇编语言晦涩难懂,所以又出现了 C,C ,Java 这种高级语言。但汇编语言晦涩难懂,所以又出现了 C,C ,Java 这种高级语言。

因此,计算机语言一般分为低级语言(机器语言、汇编语言)和高级语言两种。用高级语言编写的程序只有在编译成机器语言后才能运行,而汇编语言只有通过汇编才能转换成机器语言。

汇编语言

首先,让我们来看看用汇编语言表示的代码清单

mov eax, dword ptr[ebp-8]/* 从内存复制数值 eax */add eax, dword ptr[ebp-0Ch]/* 把 eax 与内存值相加 */mov dword ptr[ebp-4], eax /* 把 eax 存储在内存中的数值(上一步的结果)*/

采用汇编语言(assembly)编写程序的一部分。采用汇编语言 助记符(memonic) 为了编写程序,每原本是电信号的机器语言指令都会有相应的助记符,例如 mov,add 它们是数据存储(move)和相加(addition)的简写。汇编语言采用 助记符(memonic) 为了编写程序,每原本是电信号的机器语言指令都会有相应的助记符,例如 mov,add 它们是数据存储(move)和相加(addition)简写。汇编语言与机器语言一一对应。这与高级语言大不相同。通常,我们将汇编语言编写程序转换为机器语言的过程称为 汇编;反之,机器语言转化为汇编语言的过程称为 反汇编。

汇编语言可以帮助你理解计算机做了什么。机器语言级程序由寄存器处理,上述代码中的程序 eax,ebp 都是代表寄存器,是 CPU 内部寄存器的名称可以说CPU 是一系列寄存器的集合体。在内存中的存储通过地址编号来表示,而寄存器的种类则通过名字来区分。

不同类型的 CPU ,内部寄存器的类型、数量和数值范围不同。然而,根据不同的功能,寄存器可以分为以下几类

其中程序计数器、累加寄存器、标志寄存器、指令寄存器和堆栈寄存器只有一个,通常有多个其他寄存器。

程序计数器

程序计数器(Program Counter)用于存储下一个指令所在单位的地址。

程序执行时,PC第一个值是程序第一个指令的地址。在顺序执行程序时,控制器首先根据程序计数器指出的指令地址从内存中提取指令,然后分析和执行指令PC值加1指向下一条要执行的指令。

让我们以一个例子详细看看程序计数器的执行过程

这是一个相加的操作。程序启动后,操作系统将硬盘中的程序复制到内存中。示例中的程序是 123 和 456 执行相加操作,并将结果输出到显示器上。由于机器语言难以描述,这是翻译的结果。事实上,每个指令和数据都可能分布在不同的地址上,但为了方便解释,将组成指令的内存和数据放在内存地址上。

地址 0100 是程序运行的起始位置。Windows 操作系统将程序从硬盘复制到内存后,将程序计数器设置为起始位置 0100,然后执行程序个指令后,程序计数器的值就会增加1(或直接指向下一个指令的地址),然后,CPU 从内存中读取命令并执行程序计数器的值,即,程序计数器控制程序的流程

条件分支和循环机制

我们都学过高级语言,高级语言中的条件控制流程主要分为三种:顺序执行、条件分支、循环判断三种,顺序执行是按照地址的内容顺序的执行指令。条件分支是根据条件执行任何地址的指令。循环是重复执行同一地址的指令。

顺序执行相对简单,每个指令程序计数器的值都是 1。条件和循环分支将程序计数器的值指向任何地址,以便程序可以返回到地址,重复执行相同的指令,或跳转到任何指令。

以条件分支为例,说明程序的执行过程(循环也很相似)

程序的开始过程与顺序流程相同,CPU 从0100开始执行命令,在0100和010101顺序执行,PC 的值顺序 1执行0102地址指令时,判断0106寄存器值大于0,跳转(jump)将数值输出到0104地址的指令中,然后结束程序,0103 指令跳过了,这与我们程序中的指令有关 if() 判断是一样的,指令会直接跳过,不符合条件。所以 PC 没有直接执行过程 一是下一个指令的地址。

标志寄存器

使用条件和循环分支 jump(跳转指令)将根据当前指令判断是否跳转。我们上面提到了标志寄存器,无论当前累计寄存器的计算结果是正、负还是零,标志寄存器将保存(也负责溢出和奇偶校验)

溢出(overflow):指运算结果超过寄存器长度范围的奇偶校验(parity check):是指检查结果的值是偶数还是奇数

CPU 在操作过程中,根据当前的操作结果果自动设置,标志寄存器的三个位置表示正、负、零三种状态。标志寄存器的第一个字节位、第二个字节位和第三个字节位分别为1时,分别代表正、零和负。标志寄存器的第一个字节位、第二个字节位和第三个字节位分别为1时,分别代表正、零和负。

CPU 假设累积寄存器中存储的执行机制更有趣 XXX 存储在通用寄存器中的和 YYY 比较、实施比较的背后,CPU 减法操作将是运算机制。而无论减法运算的结果是正数、零还是负数,都会保存到标志寄存器中。结果是正表示 XXX 比 YYY 大,结果为零 XXX 和 YYY 相等,结果为负表示 XXX 比 YYY 小。程序比较的指令,实际上是在 CPU 内部减法操作。

函数调用机制

接下来,我们将继续介绍函数调用机制即使是高级语言编写的程序,函数调用处理也是通过将程序计数器的值设置为函数的存储地址来实现的。函数执行跳转指令后,必须返回。简单的指令跳转毫无意义。以下是实现函数跳转的例子

图中将变量 a 和 b 分别赋值为 123 和 456 ,调用 MyFun(a,b) 方法,指令跳转。图中的地址是将 C 语言编译成机器语言后运行时的地址,因为1行 C 编译后,程序通常会变成多行机器语言,因此图中的地址是分散的。在执行完 MyFun(a,b)程序返回指令后 MyFun(a,b) 下一个指令,CPU 继续执行以下指令。

调用和返回函数的两个重要指令是 call 和 return 在程序计数器之前设置函数的入口地址,call 指令将调用函数后要执行的指令地址存储在名为栈的主存中。函数处理后,通过函数出口执行 return 指令。return 该指令的功能是将保存在栈中的地址设置为程序计数器。MyFun 01544 地址保存在栈中,MyFun 函数处理完成后,0154地址将保存在程序计数器中。调用过程如下

函数调用的处理将在一些高级语言的条件或循环语句中转化为 call 指令,函数结束后的处理 则会