计算机底层运转机制:多核、缓存、CPU、CU、ALU、Cache
现代CPU
《编译型语言与解释型语言如何在计算机底层运行》中提到,计算机依靠编译器将源代码(编译型编程代码:C之类)编译成机器码执行,准确说,就是用CPU执行。
冯 诺伊曼架构
冯⋅ \cdot⋅诺伊曼(1945)提出当前计算机的主流架构,包含以下三大部分:
CPU(Central Processing Unit):包含控制单元(Control Unit)、逻辑运算单元(Arithmetic/Logic Unit);
内存:存储指令、数据;
输入输出设备;
概念解析
CPU(Central Processing Unit)
CPU,中央处理器,负责执行用户和操作系统下发的指令。此处指令,是以01二进制形式组织的机器码,在物理底层,01用来控制高低电位。
指令集
除了加减指令,CPU的电路还要实现很多其他指令:内存读取、逻辑判断。
指令控制物理电位,不同电路厂家电路设计不同,则电路上所能进行的二进制码就不同。
某类CPU能支持一种指令集(instruction set architechture),指令集相当于一种设计图纸,规定了一种CPU架构实现哪些指令。
常见的指令集有:
x86:常见
ARM:常见
MIPS
SPARC:龙芯
Power:IBM小型机
有了指令集:
硬件开发人员只需要关心如何设计电路;
软件开发人员只关心如何使用01机器码实现软件功能;
单核CPU的架构
前面图片展示了冯⋅ \cdot⋅诺伊曼计算机架构,下图展示了一个单核CPU的架构:
其中包含:
Control Unit(CU):控制单元,协调管理;
Arithmetic Logic Unit(ALU):数学逻辑单元,接受控制单元CU的命令,负责进行加减乘、与或非运算。
Register:ALU是负责计算逻辑,具体计算的数据是存放在寄存器(Register,几KB大小)中,寄存器以极高的速度(<1纳秒)与CU和ALU交互。
寄存器中的数据是临时寄存的,这些数据和指令会被ALU和CU拿来立即进行计算,如果寄存器中没有CPU想要的数据,CPU会去内存或硬盘中读取。
BUS:总线,如果寄存器中没有CPU需要的数据,CPU会去内存或硬盘中读取,这个读取内存或其他设备数据的过程,是通过Bus(总线)来实现,计算机中有多条总线。
举例说明计算过程:
对于一个加法运算,计算机需要知道两个问题:
本次所执行的是哪个指令;
该指令的执行对象是什么;
具体过程:
控制单元CU先取指令(Fetch);
指令译码(Decode)解析出要执行什么指令;
确认指令是对哪些数据(操作数Operand)进行操作;
将操作数从主存加载到寄存器中;
ALU执行指令(Execute);
结果写回Store;
存储金字塔
计算机的速度瓶颈,已经变成了超高速的CPU运算速度(纳秒级别)与落后的数据读取速度(百纳秒)之间的矛盾。
CPU计算完成后,要闲置几十倍的时间,等待存取。
CPU的寄存器存取速度极快,但是造价成本太高,发热量大,不能被大量采用。通常,CPU的寄存器只有几KB;
L1 Cache和L2 Cache一般设计在CPU上,访问延迟在几~几十纳秒内;
主存的访问延迟在百纳秒内;
速度越快,意味着成本越高。所以硬件设计是在现有技术水平、期望计算速度、成本、散热等因素之间所做的trade-off。
多核
当单个CPU主频超过一定范围后,CPU成本和散热成了很大的问题,主频很难突破10GHz。
为了获得更快的计算速度和更好的性能,芯片设计者决定绕过主频,采用人海战术,在一块CPU中增加多个核心(Core)。
一个核心是一个可以运行指令的独立单元,它包含了ALU和寄存器,并配备L1和L2 Cache。多个核心共享L3 Cache。
上图是一个多核处理器电路图。下图是多个多核处理器:
服务器可以支持多个处理器(CPU),支持单个CPU的服务器称为单路服务器;支持两个CPU的服务器称为双路服务器。上图是Intel的四路架构,系统支持四个CPU,假如每块CPU内有8个核心,系统可对外提供32核计算能力。
————————————————
版权声明:本文为CSDN博主「quantLearner」的原创文章,遵循CC 4.0 BY-SA版权协议,转载请附上原文出处链接及本声明。
原文链接:https://blog.csdn.net/The_Time_Runner/article/details/103348137
【推荐】国内首个AI IDE,深度理解中文开发场景,立即下载体验Trae
【推荐】编程新体验,更懂你的AI,立即体验豆包MarsCode编程助手
【推荐】抖音旗下AI助手豆包,你的智能百科全书,全免费不限次数
【推荐】轻量又高性能的 SSH 工具 IShell:AI 加持,快人一步
· 分享一个免费、快速、无限量使用的满血 DeepSeek R1 模型,支持深度思考和联网搜索!
· 基于 Docker 搭建 FRP 内网穿透开源项目(很简单哒)
· ollama系列01:轻松3步本地部署deepseek,普通电脑可用
· 按钮权限的设计及实现
· 25岁的心里话