为什么32位系统内存最多为4G?
http://blog.chinaunix.net/space.php?uid=26359455&do=blog&id=2974492
阅读(2192) | 评论(0) | 转发(1) |
<script>window._bd_share_config={"common":{"bdSnsKey":{},"bdText":"","bdMini":"2","bdMiniList":false,"bdPic":"","bdStyle":"0","bdSize":"16"},"share":{}};with(document)0[(getElementsByTagName('head')[0]||body).appendChild(createElement('script')).src='http://bdimg.share.baidu.com/static/api/js/share.js?v=89860593.js?cdnversion='+~(-new Date()/36e5)];</script>
首先看一下32位操作系统:
为什么叫32位操作系统?这里改正下,并不是因为在32位操作系统下,字长为32位,
而是因为cpu是32位的,所以称为32位操作系统。即4字节。而地址总线也是32位,即4字节我们知道从二进制转化到到16进制是 4位 -> 1位 所以32位系统实际能访问的量也就是0x00000000到0xFFFFFFFF这之间的内存地址。再多的我们没法表示地址了。所以最大的寻址能力即为2^32B,即4G,可是实际还到不了4G,因为显卡上的显存(RAM)和BIOS(ROM),以及各种PCI、PCI-E设备上的RAM和ROM,都要占用内存,所以从4G(0xFFFFFFFF)内存的顶端往下,400MB~1GB的地方要留给主板上的其他物理内存。并不是说这些东西的在占用我们的内存,而是因为这些内存的存在使得要把地址空间留给他们,因为1个内存地址仅仅对应一个空间,而不能对应2个,所以这些内存空间对于用户来说实际上是被浪费的。这样用户的内存实际并不能达到4G也就是说用户实际能访问的大概只有0~3G。这就是32位系统的局限性。
于是基于这些情况,INTER, AMD都在扩展自己的一些技术,诸如把地址总线扩充到36位或40位,使得显卡上的显存(RAM)和BIOS(ROM),使得各种PCI、PCI-E设备上的RAM和ROM可以用到4GB以上的内存空间。这种技术称为“内存重映射技术”,它可以使我们更有效的利用内存。
相关热门文章
给主人留下些什么吧!~~
评论热议
【推荐】国内首个AI IDE,深度理解中文开发场景,立即下载体验Trae
【推荐】编程新体验,更懂你的AI,立即体验豆包MarsCode编程助手
【推荐】抖音旗下AI助手豆包,你的智能百科全书,全免费不限次数
【推荐】轻量又高性能的 SSH 工具 IShell:AI 加持,快人一步
· 基于Microsoft.Extensions.AI核心库实现RAG应用
· Linux系列:如何用heaptrack跟踪.NET程序的非托管内存泄露
· 开发者必知的日志记录最佳实践
· SQL Server 2025 AI相关能力初探
· Linux系列:如何用 C#调用 C方法造成内存泄露
· 无需6万激活码!GitHub神秘组织3小时极速复刻Manus,手把手教你使用OpenManus搭建本
· Manus爆火,是硬核还是营销?
· 终于写完轮子一部分:tcp代理 了,记录一下
· 别再用vector<bool>了!Google高级工程师:这可能是STL最大的设计失误
· 单元测试从入门到精通