百科问答小站 logo
百科问答小站 font logo



Linux主机中增加一块内存条后,物理地址如何扩展? 第1页

  

user avatar   bei-ji-85 网友的相关建议: 
      

这个要看硬件(BIOS)怎么给你分配,支持双通道内存的主板,你原来插一根内存,现在插两根一模一样的内存,那么内存地址大概率是交叉分配的,分配规则可能是按照内存单次读取的位宽做交叉的,比如DDR3是64bit-8字节,那么对于一段连续的内存地址来说,以8字节为最小单元交叉均匀分配到两根内存条上(注:内存交错技术在服务器上比较常见,个人PC要看BIOS支持情况)。

另外,物理地址不等于地址空间,PCI的MMIO会占用大量的地址空间,后果可能是虽然你有16G,但可能用不到16G,甚至在64位环境下也可能用不到,因为BIOS不支持。

具体到实际的情况:

可能在大多数人眼里,插上一根8G内存,访问的次序就是顺序排列的,实际不是这样,因为物理地址的很多区域都被掏空了,1M以下被BIOS/显存占了一部分,2G-4G被PCI占了一部分,所以实际的映射关系是这样的:

所以,即使从CPU层面上看,访问某个物理地址,并不一定真实地对应到某个物理地址上。

在Windows上,命令行运行WMIC DEVICEMEMORYADDRESS可以列出物理地址空间被占用的情况,具体到每个PC都可能不一样,分配规则是由BIOS定下来的。




  

相关话题

  我这配置换啥硬件可以打LOL流畅? 
  龚神给微软 Linux 子系统写的支持 DirectX 9、11的代码到底属不属于“驱动”? 
  为何光刻机已经步入7nm时代,主流PC部件的尺寸还是如此“狂野”?主流计算机硬件的尺寸主要由什么决定? 
  为什么 Unix 一切皆文件的设计这么成功,而 C++ 统一的流式 IO 则不甚成功? 
  64G内存是什么体验? 
  用了十年有余的清华同方台式电脑主机,上次拆开来清理装回去之后开不了机了,我该怎么做才能弄好? 
  如何花最少得钱提高下图电脑的运行速度? 
  为什么 Go 和 Rust 常提供静态编译好的 Linux 程序,而 C 不行? 
  rtx3060最低需要什么CPU搭配? 
  主机和PC相比,优势何在? 

前一个讨论
对于因列车晚点导致乘客赶不上后续火车的情况,大家有什么看法呢?
下一个讨论
windows系统为什么不预留一点资源(cpu和内存占用),在执行繁重任务时以保证系统本身的流畅运行?





© 2025-02-22 - tinynew.org. All Rights Reserved.
© 2025-02-22 - tinynew.org. 保留所有权利