您可以捐助,支持我们的公益事业。

1元 10元 50元





认证码:  验证码,看不清楚?请点击刷新验证码 必填



  求知 文章 文库 Lib 视频 iPerson 课程 认证 咨询 工具 讲座 模型库 Model Center   Code  
会员   
   
业务架构设计
4月18-19日 在线直播
基于UML和EA进行系统分析设计
4月25-26日 北京+在线
AI 智能化软件测试方法与实践
5月23-24日 上海+在线
   
 
 订阅
一文读懂电脑“心脏”,CPU硬件工作原理

 
作者:往事敬秋风
  22  次浏览      3 次
 2025-5-6
 
编辑推荐:
本文主要介绍了CPU硬件工作原理等相关内容。 希望对您的学习有所帮助。
本文来自于微信公众号深度Linux,由火龙果软件Linda编辑、推荐。

在数字时代,电脑已然成为我们生活与工作中不可或缺的得力助手。从日常办公时飞速处理文档、表格,到闲暇娱乐时流畅运行大型 3A 游戏,再到科研领域进行复杂模拟运算,电脑的身影无处不在。但不知你是否曾好奇,究竟是什么在背后支撑着电脑如此高效地运转?答案便是电脑的 “心脏”——CPU。

它虽小巧,却蕴含着巨大能量,宛如一位不知疲倦的指挥家,协调电脑各个部件,精准执行我们发出的每一个指令。今天,就让我们一同走进 CPU 的神秘世界,深度剖析其硬件工作原理,揭开它强大算力背后的奥秘 。

一、CPU核心概述

在电脑的世界里,CPU 堪称最为核心的部件,犹如人类的大脑之于身体,其重要性不言而喻。简单来说,CPU(Central Processing Unit)即中央处理器 ,是一块超大规模的集成电路,也是电脑的运算核心和控制核心。它承担着处理、运算计算机内部所有数据的重任,无论是运行办公软件、浏览网页,还是畅玩大型游戏,电脑的每一个操作指令,都需要经过 CPU 的处理才能得以实现。

1.1CPU实际做什么?

PU的核心是从程序或应用程序获取指令并执行计算。该过程分为三个关键阶段:获取,解码和执行。CPU从RAM中提取指令,对指令的实际含义进行解码,然后使用CPU的相关部分执行指令。

执行的指令或计算可能涉及基本算术,将某些数字进行比较或在内存中移动它们。由于计算设备中的所有内容均由数字01表示,因此这些简单的任务等同于CPU的工作。从启动Windows到观看哔哩哔哩视频,一切都很轻松。

在现代系统中,CPU并不能完成所有任务,但是它仍必须将其所需的功能编号提供给专用硬件。例如,它告诉图形卡显示爆炸效果,因为您单击了脚踩雷,或者告诉硬盘驱动器将Office文档传输到系统的RAM中,以便更快地进行访问。

1.2CPU有多重要?

尽管CPU对整体系统性能的重要性不如从前,但它在运行设备方面仍起着重要作用。由于它仅负责执行程序中的命令,因此CPU速度越快,许多应用程序的运行速度就越快。

也就是说,快速的CPU并不是全部。处理器,无论多么强大,都无法轻松渲染最新的3D游戏,也无法存储信息。这就是其他组件(例如图形卡和内存)发挥作用的地方。

简而言之,CPU并不是万能的,但它非常重要。通常,更快的CPU意味着您的系统或设备将运行得更快。至少它本身不会成为瓶颈。多个内核和线程可以帮助您一次执行更多操作。

二、CPU的内部构造

CPU 的内部构造犹如一座精密而复杂的城市,各个部件各司其职,协同合作,共同完成各种复杂的计算任务。其主要由逻辑运算单元、控制单元和存储单元(寄存器和缓存)等部分组成。每个部分都有着独特的功能,它们相互配合,确保 CPU 高效地运行 。

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

控制单元:从内存中提取指令并解码执行;

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

CPU和内存都是由许多晶体管组成的电子部件,可以把它比作计算机的心脏和大脑。它能够接收数据输入,执行指令并且处理相关信息。它与输入/输出(I / O)设备进行通信,这些设备向 CPU 发送数据和从 CPU 接收数据。从功能上来看,CPU的内容是由寄存器、控制器、运算器和时钟四部分组成的,各个部分之间通电信号来连通。

2.1逻辑运算单元

逻辑运算单元(Arithmetic Logic Unit,简称 ALU)是 CPU 的执行单元,也是其核心部分,承担着数据处理和运算的重任。它就像是一位精通各种运算规则的数学家,能够快速准确地对数据进行处理。ALU 主要由一系列的逻辑电路组成,这些电路由最基本的与门、或门、非门等逻辑门构成,别看它们结构简单,却能组合出强大的运算功能。其主要进行二进制的算术运算,如加法、减法、乘法和除法 ,这些基本的算术运算构成了计算机进行各种复杂数学计算的基础。

除了算术运算,ALU 还能执行逻辑运算,比如与、或、非、异或等。这些逻辑运算在计算机进行条件判断、数据比较以及控制程序流程等方面发挥着关键作用。以简单的加法运算为例,当我们在计算机中输入两个数字进行相加时,数据会被传输到 ALU 中,ALU 根据加法运算规则,对这两个二进制数据进行处理,最终得出正确的结果 。

2.2控制单元

控制单元(Control Unit,简称 CU)堪称 CPU 的指挥中心,它统筹协调着 CPU 的各项操作,确保计算机系统有序运行。控制单元主要由指令寄存器(Instruction Register,IR)、译码器(Instruction Decoder,ID)和操作控制器(Operation Controller,OC)等组成。指令寄存器用于存放从内存中读取的指令,这些指令就像是计算机的行动指南;译码器则负责对指令进行解析,将指令翻译成计算机能够理解的微操作信号,就如同将外语翻译成母语,让计算机明白要执行的具体任务;

操作控制器根据译码器的输出结果,产生相应的控制信号,指挥 CPU 的其他部件协同工作,比如控制数据的传输路径、协调运算单元的操作时序等。在程序运行过程中,控制单元会从内存中依次读取指令,将其存入指令寄存器,经过译码器解析后,操作控制器会根据指令的要求,向逻辑运算单元、存储单元等发出控制信号,从而实现程序的顺序执行、条件跳转、循环等各种流程控制 。

2.3存储单元(寄存器和缓存)

存储单元是 CPU 中用于存储数据和指令的部分,主要包括寄存器和缓存。寄存器是 CPU 内部的高速存储单元,数量较少但速度极快,在数据处理过程中,寄存器用于临时存储数据、指令以及运算结果等。比如在进行复杂的数学运算时,参与运算的数据会先被存入寄存器,运算完成后,结果也会暂时存放在寄存器中,等待进一步的处理或传输。由于寄存器与 CPU 的运算单元直接相连,能够在极短的时间内完成数据的读写操作,大大提高了 CPU 的数据处理效率 。缓存则是位于 CPU 和内存之间的高速存储区域,其速度比内存快,但容量相对较小。

缓存一般分为一级缓存(L1 Cache)、二级缓存(L2 Cache)和三级缓存(L3 Cache),级别越高,容量越大,但速度相对越慢 。缓存的作用是存储 CPU 近期可能会频繁访问的数据和指令,当 CPU 需要读取数据或指令时,首先会在缓存中查找,如果能在缓存中找到,就可以直接读取,避免了从速度较慢的内存中读取数据,从而大大提高了 CPU 的访问速度和整体性能。例如,当我们打开一个常用的软件时,软件的相关指令和数据会被预先加载到缓存中,这样在我们使用软件的过程中,CPU 就能快速地从缓存中获取所需信息,使软件运行更加流畅 。

三、CPU 如何控制硬件

了解了 CPU 的内部构造后,我们再来看看它是如何与外部硬件设备进行交互,从而实现对整个计算机系统的控制的 。

3.1硬件控制的关键 —— 外设寄存器

CPU 虽然强大,但它并不能直接控制硬件设备,而是通过一种名为外设寄存器的特殊存储单元来间接实现对硬件的控制 。外设寄存器就像是 CPU 与硬件设备之间的 “翻译官”,负责传达 CPU 的指令和数据 。简单来说,每个硬件设备都有与之对应的外设寄存器,这些寄存器被映射到 CPU 的寻址范围内,成为内存空间的一部分 。这样一来,CPU 就可以像访问内存一样,通过内存访问指令(如 ldr/str 指令 )来操作外设寄存器,进而控制硬件设备的工作状态 。

例如,当我们想要控制一个 LED 灯的亮灭时,CPU 会通过内存访问指令向与 LED 灯对应的外设寄存器写入相应的数据,告诉寄存器是要让 LED 灯亮起还是熄灭 。寄存器接收到指令后,再将其转化为硬件设备能够理解的电信号,从而实现对 LED 灯的控制 。而芯片的地址映射表则是我们找到这些硬件地址的关键工具,它详细记录了地址空间的映射关系,帮助我们准确无误地找到对应的硬件地址 。

3.2以 LED 实验为例

为了更直观地理解 CPU 是如何通过外设寄存器控制硬件的,我们以一个简单的 LED 实验为例进行说明 。假设我们使用的开发板核心板芯片为 S5P6818 ,首先,我们需要查看 FS6818 底板原理图和 FS6818 核心板原理图,通过引脚追连线电路,最终找到与 LED 相连的核心板 CPU 引脚,假设为 GPIOA28 。这里的 GPIOA28 是一个复用引脚,具有多种功能 。接着,我们查阅 S5P6818 芯片用户手册,在手册的第二章中可以找到关于每个 IO 引脚作用的介绍,通过查看 function Table,重点关注function 0 - 3,根据实际需求选择GPIOA28 的对应功能 。由于我们要控制LED,所以选择将其设置为GPIO(通用输入输出)功能 。

GPIO 是通用的输入输出接口,在这个开发板中一共有 160 个,分为 ABCDE 五组,每组 32 个,GPIOA28 属于 A 组的第 28 个 。然后,我们要找到对应 GPIO 硬件映射的地址,也就是找到能够控制该硬件的寄存器 。这些寄存器在 CPU 外部,有对应的地址,我们可以在芯片手册的寄存器描述(Register Description)部分找到相关信息 。引脚作为硬件,其控制都会映射到内存的一个地址,所以操作硬件实际上就是操作内存 。在这个实验中,控制 GPIO 引脚功能的主要有 GPIOxALTFN0 和 GPIOxALTFN1 两个寄存器,以控制 A 类 GPIO 的 32 个引脚为例,就需要八个字节来管理 ,其中‘x’代表 ABCDE 组 。

此外,还有 GPIOxOUTENB 寄存器用于设置 GPIO 的模式(输入或输出模式),GPIOxOUT 寄存器用于设置 GPIO 输出的值(高电平或低电平) 。以控制 GPIOA28 为例,我们需要进行以下操作:首先,分析电路原理图,得出 LED 的控制方法,假设是高电平亮、低电平灭 ;确定 LED 与 SOC 的连接关系为 GPIOA28 ;然后,根据芯片手册,找到对应的寄存器,将 GPIOA28 设置成 GPIO 功能,对应的寄存器是 GPIOAALTFN1,其地址为 0xC001A024 ,我们向该寄存器写入数据 0x00000000 ;

接着,将 GPIOA28 设置成 OUTPUT 功能,对应的寄存器是 GPIOAOUTENB,地址为 0xC001A004 ,写入数据 0x10000000 ;最后,要设置 GPIOA28 输出高电平或低电平,对应的寄存器是 GPIOAOUT,地址为 0xC001A000 ,若要让 LED 亮,写入数据 0x10000000 ,若要让 LED 灭,写入数据 0x00000000 。通过这样一系列对寄存器的设置和操作,CPU 就能够实现对 LED 灯亮灭的控制 。

四、CPU的工作流程

CPU 的工作流程是一个复杂而有序的过程,它就像是一场精密的交响乐演奏,每个环节都紧密配合,确保计算机能够高效地运行各种程序 。CPU 执行指令的过程主要分为以下几个阶段:取指令、指令译码、执行指令、访存取数(若需要)、结果写回 。

4.1取指令

取指令(Instruction Fetch,IF)阶段是将一条指令从主存中取到指令寄存器的过程 。程序计数器(Program Counter,PC)中的数值,用来指示当前指令在主存中的位置 。当一条指令被取出后,PC 中的数值将根据指令字长度而自动递增 。例如,若为单字长指令,则 (PC)+1->PC;若为双字长指令,则 (PC)+2->PC,依此类推 。这就好比一位指挥家,按照既定的顺序,依次从乐谱架(主存)上拿起乐谱(指令),每拿起一份乐谱,就标记下下一份乐谱的位置(PC 递增),以便后续准确地获取 。取指令的速度往往受到内存访问速度的限制,因此现代计算机系统中通常会采用各种缓存技术来加速指令的获取 。缓存就像是指挥家身边的助手,提前将常用的乐谱准备好,当指挥家需要时,能够快速地提供,大大提高了获取乐谱的效率 。

4.2指令译码

取出指令后,计算机立即进入指令译码(Instruction Decode,ID)阶段 。在指令译码阶段,指令译码器按照预定的指令格式,对取回的指令进行拆分和解释,识别区分出不同的指令类别以及各种获取操作数的方法 。在组合逻辑控制的计算机中,指令译码器对不同的指令操作码产生不同的控制电位,以形成不同的微操作序列;在微程序控制的计算机中,指令译码器用指令操作码来找到执行该指令的微程序的入口,并从此入口开始执行 。

指令译码器就像是一位专业的翻译,将从主存中获取的指令翻译成计算机各个部件能够理解的 “语言”,告诉它们该做什么以及如何去做 。例如,当指令译码器接收到一条加法指令时,它会识别出这是一个加法操作,并解析出参与加法运算的操作数来自哪里,是寄存器还是内存中的某个地址 。

4.3执行指令

在取指令和指令译码阶段之后,接着进入执行指令(Execute,EX)阶段 。此阶段的任务是完成指令所规定的各种操作,具体实现指令的功能 。为此,CPU 的不同部分被连接起来,以执行所需的操作 。例如,如果要求完成一个加法运算,算术逻辑单元(ALU)将被连接到一组输入和一组输出,输入端提供需要相加的数值,输出端将含有最后的运算结果 。执行指令阶段是 CPU 工作流程中的核心环节,它就像是一位技艺精湛的工匠,根据指令译码器传达的任务要求,运用各种工具(CPU 的不同部件),精心地完成各种操作,实现指令的功能 。

4.4访存取数(若需要)

根据指令需要,有可能要访问主存,读取操作数,这样就进入了访存取数(Memory,MEM)阶段 。此阶段的任务是:根据指令地址码,得到操作数在主存中的地址,并从主存中读取该操作数用于运算 。并非所有的指令都需要访存取数,只有当指令涉及到从内存中读取数据作为操作数时,才会进入这个阶段 。

例如,当执行一条需要读取内存中某个变量值进行计算的指令时,CPU 会根据指令中的地址码,在主存中找到对应的地址,然后读取该地址处的数据,将其作为操作数参与后续的运算 。访存取数阶段就像是从仓库中提取原材料的过程,CPU 根据指令的要求,准确地从主存这个 “仓库” 中取出所需的 “原材料”(操作数),为后续的运算做好准备 。

4.5结果写回

作为最后一个阶段,结果写回(Write Back,WB)阶段把执行指令阶段的运行结果数据 “写回” 到某种存储形式 。结果数据经常被写到 CPU 的内部寄存器中,以便被后续的指令快速地存取;在有些情况下,结果数据也可被写入相对较慢、但较廉价且容量较大的主存 。许多指令还会改变程序状态字寄存器中标志位的状态,这些标志位标识着不同的操作结果,可被用来影响程序的动作 。例如,当执行完一个减法运算后,如果结果为负数,程序状态字寄存器中的符号标志位可能会被设置为 1,表示结果为负 。

这个标志位可以被后续的条件判断指令读取,根据标志位的状态决定程序的执行流程 。结果写回阶段就像是将完成的产品进行存放的过程,CPU 将执行指令得到的结果 “存放” 到合适的地方(寄存器或主存),同时更新相关的标志位,为后续的程序执行提供必要的信息 。在指令执行完毕、结果数据写回之后,若无意外事件(如结果溢出等)发生,计算机就接着从程序计数器 PC 中取得下一条指令地址,开始新一轮的循环,下一个指令周期将顺序取出下一条指令 。

五、影响CPU性能的因素

CPU 的性能受到多种因素的综合影响,这些因素相互关联,共同决定了 CPU 在各种计算任务中的表现 。了解这些影响因素,不仅有助于我们在选购 CPU 时做出更明智的决策,还能让我们更好地理解计算机系统的性能瓶颈,从而有针对性地进行优化 。

5.1核心数与线程数

核心数就像是工厂里的生产线数量,生产线越多,能够同时进行的生产任务也就越多。CPU 的核心数越多,它就能够同时处理更多的任务,在多任务处理和并行计算方面具有明显的优势 。例如,当我们同时运行多个大型软件,如视频编辑软件、3D 建模软件以及多个浏览器窗口时,多核心的 CPU 能够将不同的任务分配到各个核心上并行处理,大大提高了工作效率,减少了系统的卡顿现象 。

而线程数则可以理解为每条生产线上的工人数量,工人越多,生产线的生产效率就越高。超线程技术允许一个物理核心在逻辑上模拟出多个线程,让单个核心能够同时执行多个指令流,就像一个工人可以同时完成多项简单任务一样 。通过超线程技术,CPU 可以在不增加物理核心数量的情况下,提高资源利用率,增强多任务处理能力 。例如,一个四核八线程的 CPU,虽然只有四个物理核心,但通过超线程技术,它可以同时处理八个线程的任务,在处理多线程任务时,性能相比四核四线程的 CPU 有显著提升 。

5.2主频

主频是 CPU 的时钟频率,简单来说,就是 CPU 在单位时间内的工作频率 。它就像是汽车发动机的转速,转速越高,单位时间内发动机完成的工作循环就越多,汽车的动力也就越强 。对于 CPU 来说,主频越高,意味着它在单位时间内能够完成的运算次数就越多,运行速度也就越快 。在一些对计算速度要求极高的应用场景,如科学计算、金融数据分析等,高主频的 CPU 能够显著缩短计算时间,提高工作效率 。不过,主频并不是决定 CPU 性能的唯一因素,核心数、缓存大小等其他因素同样会对 CPU 的性能产生重要影响 。

5.3缓存大小

缓存是位于 CPU 和内存之间的高速存储区域,它的作用类似于一个临时仓库 。当 CPU 需要读取数据或指令时,首先会在缓存中查找,如果能在缓存中找到,就可以直接读取,避免了从速度较慢的内存中读取数据,大大提高了 CPU 的访问速度和整体性能 。缓存越大,就能够存储更多的常用数据和指令,CPU 在执行任务时能够更少地等待数据,进而实现更高效的处理能力 。在进行大型游戏或视频编辑时,需要频繁访问大量的数据,较大的缓存可以将常用的数据保留在快速存储中,减少从内存读取的次数,显著提升游戏的流畅度和视频编辑的速度 。如果缓存较小,CPU 就需要频繁地访问较慢的内存,可能导致游戏卡顿、视频编辑过程中出现延迟等问题 。

5.4制程工艺

制程工艺是指制造 CPU 时所采用的技术和工艺水平,通常用纳米(nm)来表示 。制程工艺越先进,晶体管的体积就越小,在相同面积的芯片上就可以集成更多的晶体管 。这不仅能够提高 CPU 的性能,还能降低其功耗和发热量 。以 7nm 制程工艺为例,相比 14nm 制程工艺,7nm 制程工艺下的晶体管体积更小,集成度更高,CPU 可以在更小的芯片面积上实现更多的功能 。同时,由于晶体管之间的距离缩短,信号传输速度更快,CPU 的运行速度也得到了提升 。而且,更小的晶体管尺寸意味着更低的功耗,这对于笔记本电脑、平板电脑等移动设备来说尤为重要,能够延长设备的续航时间 。

   
22 次浏览       3
 
相关文章

CMM之后对CMMI的思考
对软件研发项目管理的深入探讨
软件过程改进
软件过程改进的实现
 
相关文档

软件过程改进框架
软件过程改进的CMM-TSP-PSP模型
过程塑造(小型软件团队过程改进)
软件过程改进:经验和教训
 
相关课程

以"我"为中心的过程改进(iProcess )
iProcess过程改进实践
CMMI体系与实践
基于CMMI标准的软件质量保证

最新活动计划
人工智能.机器学习TensorFlow 5-22[北京]
AI智能化软件测试方法与实践 5-23[北京]
图数据库与知识图谱 5-22[北京]
DeepSeek大模型应用开发 6-12[厦门]
基于 UML 和EA进行分析设计 6-23[北京]
嵌入式软件架构-高级实践 7-9[北京]
 
 
最新文章
iPerson的过程观:要 过程 or 结果
基于模型的需求管理方法与工具
敏捷产品管理之 Story
敏捷开发需求管理(产品backlog)
Kanban看板管理实践精要
最新课程
基于iProcess的敏捷过程
软件开发过程中的项目管理
持续集成与敏捷开发
敏捷过程实践
敏捷测试-简单而可行
更多...   
成功案例
英特尔 SCRUM-敏捷开发实战
某著名汽车 敏捷开发过程与管理实践
北京 敏捷开发过程与项目管理
东方证券 基于看板的敏捷方法实践
亚信 工作量估算
更多...