什么是CPU?CPU的内部结构

发布时间:2024-03-05 11:16
作者:AMEYA360
来源:网络
阅读量:1469

  一、CPU是什么?

  CPU与计算机的关系就相当于大脑和人的关系,它是一种小型的计算机芯片,通常嵌入在电脑的主板上。CPU的构建是通过在单个计算机芯片上放置数十亿个微型晶体管来实现,这些晶体管使它能够执行运行存储在系统内存中的程序所需的计算,所以,也可以说CPU决定了你电脑的计算能力。

  二、CPU实际做什么?

  CPU的工作核心是从程序或应用程序中获取指令并且执行计算。这个过程一共有三个关键阶段:提取,解码和执行。CPU先从系统的RAM中提取指令,随后解码该指令的实际内容,最后再由CPU的相关部分执行该指令。

  三、CPU的内部结构

  刚才提到了很多CPU的重要性,那么CPU的内部结构是什么呢?又是由什么组成的呢?下图展示了一般程序的运行流程(以C语言为例),一般来说,了解程序的运行流程是掌握程序运行机制的基础和前提。

什么是CPU?CPU的内部结构

  在这个流程中,CPU负责解释和运行最终转换成机器语言的内容,CPU主要由两部分构成:控制单元和算数逻辑单元(ALU)。控制单元:从内存中提取指令并解码执行;

  算数逻辑单元(ALU):处理算数和逻辑运算。

  CPU和内存都是由许多晶体管组成的电子部件,可以把它比作计算机的心脏和大脑。它能够接收数据输入、执行指令并且处理相关信息,它与输入/输出(I/O)设备进行通信,这些设备向CPU发送数据和从CPU接收数据。从功能上来看,CPU的内容是由寄存器、控制器、运算器和时钟四部分组成的,各个部分之间通电信号来连通。接下来简单介绍一下内存,为什么说到CPU需要讲一下内存呢?因为内存是与CPU进行沟通的桥梁,计算机中所有程序的运行都在内存中得到运行的。内存一般又被称为主存,它的作用是存放CPU中的运算数据,以及与硬盘等外部存储设备交换的数据。CPU会在计算机运转时,把需要运算的数据调到主存中进行运算。在运算完成之后,CPU将结果传送出来,主存的运行也决定了计算机的稳定运行。主存一般通过控制芯片与CPU相连,由可读写的元素构成,每个字节都有一个地址编号。CPU通过地址从主存中读取数据和指令,也可以根据地址写入数据,注意一点:当计算机关机时,内存中的指令和数据也会被清除。

  四、CPU是寄存器的集合体

  在CPU的四个结构中,寄存器的重要性远远高于其余三个,为什么这么说?因为程序通常是把寄存器作为对象来进行描述的。

  而说到寄存器,就不得不说到汇编语言,说到汇编语言,就不得不说到高级语言,说起高级语言也就不得不提及语言的概念。

  五、计算机语言

  人和人之间最古老和直接的沟通媒介是语言,但是和计算机沟通,就必须按照计算机指令来交换,其中就涉及到语言的问题。最早,为了解决计算机和人类的交流的问题,出现了汇编语言。

  但是汇编语言晦涩难懂,所以又出现了像是C、C++、Java的这种高级语言,因此计算机语言一般分为低级语言和高级语言。

  使用高级语言编写的程序,经过编译转换成机器语言后才能运行,而汇编语言经过汇编器才能转换为机器语言。

  六、汇编语言

  我们先来看一段采用汇编语言表示的代码清单:

  这是采用汇编语言编写程序的一部分,汇编语言采用助记符来编写程序,每个原本是电信号的机器语言指令会有一个与其对应的助记符。比如,mov、add分别是数据的存储(move)和相加(addition)的简写。

  汇编语言和机器语言一一对应,这点和高级语言不同,我们通常把汇编语言编写的程序转换为机器语言的这个过程,称之为汇编。与之相反,将机器语言转化为汇编语言的过程称之为反汇编。

  汇编语言可以帮助你理解计算机做了什么工作,机器语言级别的程序通过寄存器来处理,上面代码中的eax,ebp都是表示的寄存器,它们是CPU内部寄存器的名称。

  因此,可以说CPU是一系列寄存器的集合体。一般,在内存中的存储通过地址编号来表示,寄存器的种类是通过名字来区分。

  那些不同类型的CPU,其内部寄存器的种类、数量以及寄存器存储的数值范围也都是不同的。不过,根据功能的不同,我们可以将寄存器划分为下面几类:

什么是CPU?CPU的内部结构

  其中,程序计数器、标志寄存器、累加寄存器、指令寄存器和栈寄存器只有一个,其他寄存器一般有好几个。

  七、程序计数器

  程序计数器是用来存储下一条指令所在单元的地址。程序在执行时,PC的初值作为程序第一条指令的地址,在顺序执行程序时,控制器先按照程序计数器所指出的指令地址,从内存中取出一条指令,随后分析和执行该指令,并同时将PC的值加1指向下一条要执行的指令。

  我们可以通过一个事例来仔细看一下程序计数器的执行过程:

什么是CPU?CPU的内部结构

  这是一段进行相加的操作,程序启动,在经过编译解析后,会经由操作系统把硬盘中的程序复制到内存中。

  以上示例程序,就是将123和456执行相加的操作,随后将结果输出到显示器上,因为使用机器语言很难描述,所以这些都是经过翻译后的结果。事实上,每个指令和数据都有可能分布在不同的地址上,但是为了更好的说明,就把组成一条指令的内存和数据放在了一个内存地址上。

  地址0100是程序运行的起始位置,Windows等操作系统把程序从硬盘复制到内存以后,就会将程序计数器作为设定为起始位置0100,然后再执行程序,每次执行一条指令后,程序计数器的数值就会增加1,或者是直接指向下一条指令的地址。

  随后,CPU会根据程序计数器的数值,从内存中读取命令并且执行,换言之,程序计数器控制着程序的流程。

  八、条件分支和循环机制

  小伙伴们都学过高级语言,高级语言汇总的条件控制流程主要分为顺序执行、条件分支、循环判断三种。构成:控制单元和算数逻辑单元(ALU)。

  顺序执行是按照地址的内容顺序的执行命令。

  条件分支是根据条件执行任意地址的指令。

  循环是重复执行同一地址的指令。

  一般情况下,顺序执行的情况较简单,每次执行一条指令程序计数器的值就是+1。条件和循环分支会使得程序计数器的值指向任意的地址,这样一来,程序就可以返回到上一个地址来重复执行同一个指令,或者跳转到其它任意指令。

  下面,我们就以条件分支举例来说明程序的执行过程:

什么是CPU?CPU的内部结构

  程序的开始过程和顺序流程是一样的,程序的顺序流程和开始过程相同。

  CPU从0100处就开始执行命令,在0100和0101中都是顺序执行,PC的值顺序+1,执行到0102地址的指令时,判断0106寄存器的数值大于0,跳转到0104地址的指令,再将数值输到显示器中,随后结束程序,0103的指令就被跳过了。

  这和我们程序中的if()判断相同,在不满足条件的情况下,指令一般会直接跳过。因此,PC的执行过程没有直接+1,而是下一条指令的地址。

  九、标志寄存器

  条件和循环分支会使用到 jump(跳转指令),会根据当前的指令来判断是否跳转,上面我们提到了标志寄存器,无论当前累加寄存器的运算结果是正数、负数还是零,标志寄存器都会将其保存。

  CPU在进行运算时,标志寄存器的数值会根据当前运算的结果自动设定,运算结果的正、负和零三种状态由标志寄存器的三个位表示。标志寄存器的第一个字节位、第二个字节位、第三个字节位各自的结果都为1时,分别代表着正数、零和负数。

什么是CPU?CPU的内部结构

  CPU的执行机制比较有意思,假设累加寄存器中存储的XXX和通用寄存器中存储的YYY做比较,执行比较的背后,CPU的运算机制就会做减法运算。而无论减法运算的结果是正数、零还是负数,都会保存到标志寄存器中。

  结果为正表示 XXX 比 YYY 大,结果为零表示 XXX 和 YYY 相等,结果为负表示 XXX 比 YYY 小,程序比较的指令,实际上是在 CPU 内部做减法运算。

  十、函数调用机制

  函数的调用和条件分支,循环机制有所不同,单纯的跳转指令无法实现函数的调用。函数的调用需要在函数内部处理后,处理流程在返回到函数调用点(函数调用指令的下一个地址)。

  函数的调用处理是通过把程序计数器的值设定成函数的存储地址来实现的。

什么是CPU?CPU的内部结构

什么是CPU?CPU的内部结构

  十一、通过地址和索引实现数组

  接下来是基址寄存器和变址寄存器,通过这两个寄存器,可以对主存上的特定区域进行划分,以此实现类似数组的操作。

  首先,可以用十六进制数将计算机内存上的 00000000 - FFFFFFFF 的地址划分出来。这样,凡是该范围的内存地址,只要有一个 32 位的寄存器,就可以查看全部地址。

  但是,要是想像数组那样,分割特定的内存区域以达到连续查看的目的的话,使用两个寄存器会更方便一些,比如,我们用两个寄存器来表示内存的值。

什么是CPU?CPU的内部结构

  这种表示方式很像数组的构造,数组是指同样长度的数据,在内存中进行连续排列的数据构造。

  用数组名表示数组全部的值,通过索引来区分数组的各个数据元素,例如: a[0] - a[4],[]内的 0 - 4 就是数组的下标。

  十二、CPU指令执行过程

  那说了这么多,CPU到底是怎么一条条的执行指令的呢?几乎全部的冯·诺伊曼型计算机的CPU,工作都可以分为5个阶段:取指令、指令译码、执行指令、访存取数、结果写回。

  取指令阶段就是将内存中的指令读取到CPU中寄存器的过程,程序寄存器用于存储下一条指令所在的地址;

  在取指令完成后,立马进入指令译码阶段,在指令译码阶段,指令编码器按照预先的指令格式,对取回的指令进行拆分和解释,识别区分出不同的指令类别和各种获取操作数的方法;

  执行指令阶段的任务是完成指令所规定的各种操作,具体实现指令的功能;

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

  结果写回阶段作为最后一个阶段,把执行指令阶段的运行结果数据“写回”到某种存储形式:结果数据经常被写到CPU的内部寄存器中,以便被后续的指令快速地存取。

(备注:文章来源于网络,信息仅供参考,不代表本网站观点,如有侵权请联系删除!)

在线留言询价

相关阅读
cpu温度过高的原因及解决方法
  中央处理器(CPU)是计算机系统的核心组件之一,它的稳定运行对整个系统性能至关重要。然而,CPU在长时间高负荷运行下容易产生过热问题,导致性能下降甚至损坏硬件。本文将探讨CPU温度过高的原因及解决方法,帮助用户更好地管理CPU温度,确保系统正常运行。  一、cpu温度过高的原因:  1.1 散热系统不足:  散热风扇故障:风扇堵塞或损坏会导致空气流动不畅,影响散热效果。  散热片脏污:散热片积聚灰尘会阻碍散热效率,增加CPU温度。  1.2 运行负载过高:  超频:超频会使CPU工作在超出设计规格的频率下,产生更多热量。  大型程序运行:运行大型游戏或软件会使CPU负载过高,导致过热。  1.3 环境因素:  通风不良:环境通风差会增加周围温度,影响散热效果。  高温天气:夏季高温天气使得散热更加困难。  二、cpu温度过高的解决方法:  2.1 清洁散热系统:  清洁散热风扇:定期清洁风扇,确保风扇顺畅运转。  清理散热片:使用压缩空气或软刷清理散热片上的灰尘和污垢。  2.2 优化CPU负载:  关闭后台运行程序:减少后台占用可以降低CPU负载。  避免超频:恢复CPU到默认频率以降低热量产生。  2.3 提高通风条件:  增加散热器:安装更大更高效的散热器来降低CPU温度。  改善机箱通风:保证机箱内部空间通风良好,避免热量滞留。  2.4 使用散热软件:  监控CPU温度:使用专业软件实时监控CPU温度,及时发现问题。  调整风扇转速:通过软件调整风扇转速,提高散热效果。  CPU温度过高可能会引发系统不稳定、性能下降甚至硬件损坏,因此用户需要注意并及时处理。通过清洁散热系统、优化CPU负载、改善通风条件和使用散热软件等措施,可以有效降低CPU温度,延长硬件寿命,提高系统稳定性。持续关注CPU温度并采取适当措施是确保计算机正常运行的重要步骤,也是保护硬件投资的关键。
2024-04-29 15:43 阅读量:288
CPU、MPU、MCU、SOC、SOPC、MCM都是什么?
  在嵌入式开发中,我们经常会接触到一些专业术语,例如CPU、MCU、MPU、SOC和MCM等,这些缩写代表了不同类型的电子处理单元,它们在消费电子、计算机硬件、自动化和工业系统中扮演着重要角色。下面AMEYA360将介绍每个术语的基本含义和它们在实际使用中的区别:  CPU  CPU (Central Processing Unit) - 中央处理单元:由运算器、控制器和寄存器及相应的总线构成。它可以是一个独立的处理器芯片或一个内含多核处理器的大型集成电路。  众所周知的三级流水线:取址、译码、执行的对象就是CPU,CPU从存储器或高速缓冲存储器中取出指令,放入指令寄存器,并对指令译码,然后执行指令。所谓的计算机的可编程性其实就是指对CPU的编程。  MCU  MCU (Microcontroller Unit) - 微控制器单元: MCU是一个紧凑型处理器,随着大规模集成电路的出现及发展,把计算机的CPU、RAM、ROM、定时器和输入输出I/O引脚集成在一个芯片上。比如51、STC、Cortex-M这些芯片,它们的内部除了CPU外还包含了RAM和ROM,可直接添加简单的器件(电阻,电容)等构成最小系统就可以运行代码了。  MCU常用于嵌入式系统,如家用电器、汽车电子设备和医疗设备中。与MPU相比,MCU更多的是自成一体的解决方案,可独立执行预定的任务。  MPU  MPU (Microprocessor Unit) - 微处理器单元:是一种更具体的CPU类型,微处理器通常代表功能强大的CPU(可理解为增强型的CPU),这种芯片往往是计算机和高端系统的核心CPU。  例如嵌入式开发者最熟悉的ARM的Cortex-A芯片,他们都属于MPU。MPU主要在个人电脑、服务器和其他高性能计算设备中使用。微处理器单元的设计注重于高性能指令处理。  SOC/SOPC  SoC (System on Chip) - 片上系统:是一种集成电路,它将所有或大部分必要的电子电路和部件集成到单一芯片上。包括CPU核心、内存、输入/输出控制器、外围设备和其他功能模块。SoC的设计目标是为了让它能够作为系统的主要计算引擎。MCU只是芯片级的芯片,而SOC是系统级的芯片,它集成了MCU和MPU的优点,即拥有内置RAM和ROM的同时又像MPU那样强大,它可以存放并运行系统级别的代码,也就是说可以运行操作系统。  SoPC (System on a Programmable Chip) - 可编程片上系统:是指硬件逻辑可编程的片上系统,如FPGA(现场可编程门阵列)被用于创建系统级的设计。与传统的SoC相比,SoPC提供了更多的灵活性,因为硬件逻辑可以在芯片制造后根据需求进行修改和配置。  举个例子说明便于理解,单片机的硬件配置是固化好了的,我们能够编程修改的是软件配置,本来是串口通信功能,通过修改代码变成AD采样功能,也就是说硬件配置是固定了的,只能通过修改软件来选择其中的一项或多项功能。  而SoPC可以修改硬件配置信息使其成为相应的芯片,可以是MCU,也可以是SOC。  MCM  MCM (Multi-Chip Module) - 多芯片模块:MCM是将多个独立的集成电路封装在一个单独的芯片上的技术。与将所有功能集成到单个集成电路的SoC不同,MCM通常用于封装性能更强、功能专注的独立集成电路。它们可以提供类似系统总线的内部连接,使得性能更优于单芯片解决方案。  在嵌入式开发中,接触频率较多的一般是MCU和SOC,而现在STM32也几乎成为了MCU的代名词,SOC目前则以Cortex-A系列为主,开发难度也有所差异,对于嵌入式从业者来说,弄清楚这些专业概念是必备的。
2024-01-02 11:32 阅读量:1318
cpu和gpu的区别和用处
  在计算机领域,CPU(中央处理器)和GPU(图形处理器)是两个常见且重要的概念。它们都是计算机系统中的核心组件,但在设计、功能和应用方面存在着一些重要的区别。本文AMEYA360电子元器件采购网将详细介绍CPU和GPU的定义、特点以及它们在计算机系统中的作用。  一、CPU:中央处理器  CPU是一种通用处理器,也被称为中央处理器。它是计算机系统的大脑,负责执行各种指令和计算任务。CPU由多个核心组成,每个核心都能够独立地执行指令,具有高度的灵活性和通用性。CPU通过调度和控制数据的流动来处理各种计算任务,并与其他系统组件进行交互。  CPU具有以下特点:  通用性:CPU是一种通用处理器,可以执行各种不同类型的指令和计算任务。  单指令多数据(SIMD):CPU通过使用SIMD技术,可以同时处理多个数据元素,提高并行计算能力。  控制逻辑:CPU具有强大的控制逻辑,能够解析和执行复杂的指令序列,实现复杂的计算和控制流程。  多核处理:现代CPU通常由多个核心组成,每个核心可以独立地执行任务,提高整体计算能力。  CPU广泛应用于各种计算机系统和设备中:  个人电脑:CPU是个人电脑的核心处理器,负责运行操作系统、应用程序和处理用户输入输出等任务。  服务器:在服务器领域,CPU承担着处理大量请求和数据的重要角色,以支持网站、云服务和数据库等应用。  移动设备:CPU在智能手机、平板电脑和可穿戴设备等移动设备中发挥着关键作用,实现高效的计算和功耗管理。  二、GPU:图形处理器  GPU是一种专门设计用于图形渲染和并行计算的处理器。它最初被设计为处理图像和视频数据,并在显示屏上呈现出高质量的图形效果。随着计算需求的增加,GPU逐渐演变为具有强大并行计算能力的通用处理器,可用于高性能计算和深度学习等领域。  GPU具有以下特点:  并行计算:GPU采用了大量的处理单元,可同时执行大规模的数据并行计算任务。  浮点运算:GPU具有强大的浮点运算能力,可以高效地执行大量的浮点计算操作。  存储带宽:为了支持高速计算和数据传输,GPU通常拥有较大的存储带宽,以满足对大规模数据的处理需求。  GPU广泛应用于以下领域:  游戏和图形渲染:GPU最初被设计用于游戏和图形渲染,能够实现逼真的图像效果和流畅的动画呈现。  科学计算:由于其强大的并行计算能力,GPU在科学计算、物理模拟和天文学等领域发挥着重要作用。科学家可以利用GPU的高性能计算能力加速复杂的模拟、数据分析和计算任务。  深度学习和人工智能:深度学习需要大量的并行计算来处理神经网络模型的训练和推断。GPU的并行架构和高性能计算能力使其成为深度学习和人工智能领域的关键技术。  密码学和密码破解:由于GPU在处理大量数字运算方面的优势,它们也被广泛应用于密码学和密码破解领域,以提供快速的密钥生成和攻击。  三、CPU和GPU的区别  CPU和GPU之间存在以下明显的区别:  架构设计:CPU是一种通用处理器,具有强大的控制逻辑和较少的核心数,适用于处理各种类型的指令和计算任务。而GPU则采用了并行计算的架构设计,具有大量的处理单元,用于高效地执行大规模的并行计算任务。  计算能力:GPU在浮点运算和并行计算方面具有出色的性能,尤其擅长处理大规模数据集和复杂的数值计算。相比之下,CPU在单个线程和串行计算任务上的性能较为突出。  用途:CPU主要用于通用计算任务,包括操作系统、应用程序和各种常规计算。而GPU则主要用于图形渲染、游戏开发、科学计算、深度学习等需要大规模并行计算的领域。  功耗和散热:由于GPU具有大量的处理单元和高功率消耗,它们通常会产生较高的热量。相比之下,CPU的功耗和散热要低一些,适合于运行在功耗受限环境中的设备。  价格和成本效益:由于其专用的设计和高性能计算能力,GPU相对较昂贵。而CPU则更加普遍且价格相对较低。
2023-12-13 09:41 阅读量:1306
新一代国产CPU正式发布!无需依赖任何国外授权技术
  我国自主研发的新一代国产CPU发布  CPU是计算机运算与控制的核心,如同人的“大脑”一样指挥各部件的运行。11月28日,我国自主研发的新一代通用CPU——龙芯3A6000在北京正式发布。工业和信息化部电子信息司副司长史惠康说,这标志着国产CPU在自主可控程度与产品性能上达到新高度,也证明我国有能力在自研CPU架构上做出一流产品。  此次发布的龙芯3A6000,采用我国自主设计的指令系统和架构,无需依赖国外授权技术,是我国自主研发、自主可控的新一代通用处理器,可运行多种类的跨平台应用,满足多类大型复杂桌面应用场景。  图为我国自主研发的新一代通用CPU——龙芯3A6000。(受访者供图)  一般而言,CPU性能的提升主要有两条路径,一个是提升主频,一个是优化内核设计。龙芯3A6000性能的提升主要通过设计优化来实现。其主频达到2.5GHz,集成4个最新研发的高性能LA664处理器核,支持同时多线程技术,全芯片共8个逻辑核。与上一代的龙芯3A5000相比,单线程通用处理性能提升60%,多进程通用处理器性能提升100%。  中国电子技术标准化研究院赛西实验室测试结果显示,龙芯3A6000处理器总体性能与英特尔2020年上市的第10代酷睿四核处理器相当。  龙芯3A6000的自主可控程度在国产通用CPU中首屈一指。围绕完全自主设计的指令系统龙架构,龙芯不仅推出了自研的CPU内核,其内部集成的GPU内核、加减密IP、高速传输接口IP、存储接口IP、音视频接口IP、UART等其他接口IP,以及各种规格的寄存器堆等硬核IP也均为自研。  “我国信息产业的根本出路在于构建独立于X86和ARM体系之外的自主生态体系。”龙芯中科董事长、中科院计算技术研究所研究员胡伟武说。经多年积累,龙芯中科从基于自主IP的芯片研发、基于自主指令系统的软件生态等方面夯实自主信息产业基础。  具有完全自主、技术先进、兼容生态等特点的龙架构目前已建成与X86、ARM并列的Linux基础软件体系,得到与指令系统相关的主要国际软件开源社区的支持,得到国内统信、麒麟、欧拉、龙蜥、开源鸿蒙等操作系统,以及WPS、微信、QQ、钉钉、腾讯会议等基础应用的支持。
2023-11-29 10:54 阅读量:1238
  • 一周热料
  • 紧缺物料秒杀
型号 品牌 询价
MC33074DR2G onsemi
BD71847AMWV-E2 ROHM Semiconductor
CDZVT2R20B ROHM Semiconductor
TL431ACLPR Texas Instruments
RB751G-40T2R ROHM Semiconductor
型号 品牌 抢购
BU33JA2MNVX-CTL ROHM Semiconductor
IPZ40N04S5L4R8ATMA1 Infineon Technologies
BP3621 ROHM Semiconductor
STM32F429IGT6 STMicroelectronics
ESR03EZPJ151 ROHM Semiconductor
TPS63050YFFR Texas Instruments
热门标签
ROHM
Aavid
Averlogic
开发板
SUSUMU
NXP
PCB
传感器
半导体
相关百科
关于我们
AMEYA360微信服务号 AMEYA360微信服务号
AMEYA360商城(www.ameya360.com)上线于2011年,现 有超过3500家优质供应商,收录600万种产品型号数据,100 多万种元器件库存可供选购,产品覆盖MCU+存储器+电源芯 片+IGBT+MOS管+运放+射频蓝牙+传感器+电阻电容电感+ 连接器等多个领域,平台主营业务涵盖电子元器件现货销售、 BOM配单及提供产品配套资料等,为广大客户提供一站式购 销服务。