计算机底层运转机制:多核、缓存、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

posted @   悟空空空  阅读(1648)  评论(0编辑  收藏  举报
(评论功能已被禁用)
相关博文:
阅读排行:
· 分享一个免费、快速、无限量使用的满血 DeepSeek R1 模型,支持深度思考和联网搜索!
· 基于 Docker 搭建 FRP 内网穿透开源项目(很简单哒)
· ollama系列01:轻松3步本地部署deepseek,普通电脑可用
· 按钮权限的设计及实现
· 25岁的心里话
点击右上角即可分享
微信分享提示