05. CPU从内存中读取数据的流程

1.CPU从内存中读取数据简介

2.硬件基础

3.CPU 读取内存数据的完整步骤

4.关键优化点: 缓存的分级与性能影响


1.CPU从内存中读取数据简介

CPU从内存中读取数据的核心是通过"地址总线, 数据总线, 控制总线"的协同配合, 结合CPU多级缓存的优化, 完成地址寻址

-> 指令传输 -> 数据读取 -> 缓存存储的全过程

用一个通俗的类比理解: 把CPU比作工厂的加工车间, 内存比作仓库, 数据比作零件, 总线就是连接车间和仓库的运输管道

2.硬件基础

a.地址总线: 专门传输内存地址的通道, 相当于"电话线路", CPU通过它告诉内存"我要哪个位置的数据"; 地址总线的位数决

定了CPU的最大寻址空间

比如: 32位地址总线最多能寻址2^32个地址, 64位则支持远超4GB的内存

b.控制总线: 传输控制指令的通道, 相当于"指令开关", CPU通过它发送"读或写"的命令, 告诉内存执行什么操作

c.数据总线: 专门传输实际数据的通道, 相当于"传送带", 内存把找到的数据通过它传给CPU;数据总线的位数决定了单次传

输的数据量

比如: 64位CPU的数据线一次能传8字节(64bit)

d.内存控制器: 负责协调CPU和内存的通信, 相当于"仓库管理员", 接收CPU的地址和指令, 然后到内存对应位置取数据

3.CPU 读取内存数据的完整步骤

a.CPU生成目标内存地址

当程序执行到需要读取数据的指令时(比如: C#中读取一个变量的值), CPU的指令译码器会解析指令, 生成该数据对应的物理

内存地址(如果是虚拟内存, 会先通过MMU内存管理单元转换为物理地址)

类比: 工厂车间确定需要的零件在仓库的货架号

b.发送地址和读指令

CPU通过地址总线, 把目标物理地址发送给内存控制器; 同时通过控制总线, 发送读命令

类比: 车间通过电话(地址总线)告诉仓库管理员货架号, 同时说"我要取这个位置的零件"(控制总线)

c.内存定位并返回数据

内存控制器接收到地址和读命令后, 会到内存的对应地址位置, 取出存储的数据; 然后通过数据总线, 将数据传输回CPU

类比: 仓库管理员找到对应货架的零件, 放在传送带上(数据总线)送到车间

d.数据存入CPU缓存

现代CPU都有多级缓存(L1、L2、L3), 缓存的读写速度远快于内存(L1缓存速度接近CPU主频); 数据传到CPU后,会优先存入缓

存, 而不是直接进入CPU运算核心; 当CPU下次再需要这个数据时, 会先查缓存

- 缓存命中: 直接从缓存读取, 速度极快

- 缓存未命中: 才会重复上述步骤, 去内存读取

类比: 车间把常用的零件放在车间内部的小货架(缓存), 下次要用不用再跑仓库

4.关键优化点: 缓存的分级与性能影响

CPU缓存是提升读取性能的核心, 层级越靠近CPU核心, 速度越快、容量越小

在这里插入图片描述

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值