查看原文
其他

神秘消失的内存去哪了?

Wolf UEFI社区 2023-12-29
点击上方“公众号” 可以订阅哦!

有位朋友买了8G内存,但在鲁大师上看只有7.8G,怀疑是不是被骗了:

有些人可能误认为是硬盘界的“1G=1000MB”的原因。稍微懂点的可能认为被显存占据了。事实上,这个问题没有那么简单。只有BIOS工程师有资格回答这个问题,让我们小中见大,扮演一下神探柯南,来看一下“神秘消失”的内存去哪了?

他被骗了吗?

前一阵内存涨价,是不是内存厂商把7.8G的内存当作8G内存卖,谋取暴利呢?相信本专栏的大部分读者对这个阴谋论都会莞尔一笑的。是的,不可能。看过本专栏内存系列文章的人都了解了一些内存的相关原理:

内存系列一:快速读懂内存条标签

内存系列二:深入理解硬件原理

内存系列三:内存初始化浅析

内存都是由Rank、chip和bank组成。0.2G的内存连一个bank都组成不了,更别说chip了。Chip是经销商能够偷梁换柱的最小单位。

鲁大师出问题了?

鲁大师并没有问题,只是没有把问题标识清除。”柯南“的电脑也是8G内存,我们来看一下系统属性怎么说:

任务管理器呢?

这下清楚了,是有8G内存的,不过只有7.9G可用(他的例子是7.8G)。内存这么贵,苍蝇也是肉,0.1G去哪了呢?

微软干的?

是不是Windows偷偷藏起来了?明明有8G,却只给我们用7.9G,垄断真可恶!微软表示很无辜,它也想用那个0.1G啊。多点总是好的,省得老往硬盘里面倒腾。排除所有的不可能,真相只有一个!

微软引导愤怒的群众来到BIOS家门口。

BIOS干的?!

在微软出示的证据清单面前(E820表或者memory map),BIOS低下了头,喃喃地承认了。“宝宝心里也苦啊”,BIOS泪流满面。BIOS开始向围观吃瓜群众介绍情况。

BIOS负责内存的初始化、测试并且最后向操作系统报告内存情况,堪称内存的总管了。总管虽然表面光鲜,但工作却并不轻松,有不少相关单位都想在其中分一杯羹。为了协调各个单位,BIOS通过UMA来统一管理分配的内存:

这些相关单位包括核显、ME等等。他们总是想要占据内存更多空间,BIOS只能在内存中偷一些给他们用。

真的是Stolen memory啊。BIOS自己也要用内存,虽然大部分在启动OS时都还回去了(Boot time memory),但还是留了些自用(Reserved, runtime /ACPI memory)。这些部分,BIOS在最后给操作系统的交割清单中都标明要用,OS不得侵犯,否则死机啊啥的BIOS就不管了!

结论

吃瓜群众听的似懂非懂,好像觉得有些道理,慢慢散去了。只有一个人留了下来,那就是原来的苦主。苦主盯住BIOS和柯南,眼睛通红,像要喷出火来:”为什么柯南是7.9,我是7.8,这不公平!“。柯南悠悠的说,谁让你的BIOS不给力呢?说着,乘苦主不备,飞也似的逃了!


继续滑动看下一个

您可能也对以下帖子感兴趣

文章有问题?点此查看未经处理的缓存