理论上:32位=2^32B = 4 * 2^30B = 4GB,这是 32 位下单进程内存上限

目前(2015年5月),Intel的32位架构下,可使用的地址线是36个,可使用的最大物理地址是2^36B,折合64GB,可用的地址空间是4GB。

64位架构下,地址线是46个,所以最大的物理地址是2^46B,折合64TB,可用地址空间也是这么大(目前为止):

为什么32位Windows中实际可用内存少于4G:

虽然物理地址有4G,但CPU如果要访问你的显卡上的显存,就必须把物理地址空间的一部分用于标识显存,这种技术被称为memory-mapped I/O,这样可以让CPU操作显存像操作内存一样。

在Windows的设备管理器里,查看显卡的属性页里的“资源”,可以看到内存映射的地址范围,实际上不管32位还是64位,都需要占用一部分地址空间,32位Windows只有4G的地址空间,被显存占去了一部分,所以可用的地址空间就少于4G了

实际上不仅仅是显存,你电脑上的PCI控制器,各种网卡、声卡、USB控制器等等都需要占用一定的物理内存,所以最终的后果就是可用的物理地址范围变得特别少,最少可能只有1.99GB,这种限制在32位Windows上是不可改变的。

所以,32位WIN7的可用内存才变得那么少,解决问题的唯一途径是换64位系统,或者Linux。

CPU CPU Address Bus Size  Maximum RAM 
8086 20 bit  1MB
8088  20 bit  1MB
80286  24 bit  16MB
80386SX 24 bit  16MB
80386DX  32 bit  4GB
80486SX  32 bit  4GB
80486DX 32 bit  4GB
Pentium I  32 bit  4GB
K6 32 bit  4GB
Duron  32 bit  4GB
Athlon  32 bit  4GB
Athlon XP  32 bit 4GB
Celeron   36 bit 64GB
Pentium Pro 36 bit  64GB
Pentium II 36 bit 64GB
Pentium III 36 bit 64GB
Pentium 4  36 bit 64GB
Athlon   40 bit 1TB 
Athlon-64  40 bit 1TB 
Athlon-64 FX  40 bit 1TB 
Opteron   40 bit 1TB 
Itanium  44 bit  16TB 
Itanium 2   44 bit 16TB 

PAE确实可以让x86硬件支持到能够访问64G的地址空间,Windows的内核也支持使用多达64G的物理地址空间,但是微软偏偏要对各个版本的Windows的物理内存上限作出限制,下面是XP和Win7的物理内存上限

参考:https://blog.csdn.net/w892824196/article/details/80558114

https://bbs.pediy.com/thread-137830.htm

https://docs.microsoft.com/zh-cn/windows/win32/memory/memory-limits-for-windows-releases?redirectedfrom=MSDN

32位,64位系统寻址空间及最大内存相关推荐

  1. 32和64位系统各内置类型所占字节大小(int char long double 指针等)

    指针大小不一样主要原因在于:32位的寻址空间是2^32, 即32个bit,也就是4个字节.同理64位编译器 32/64位操作系统,数据类型字节数对比 32/64位操作系统,数据类型字节数对比 32位 ...

  2. C语言入门经典——基础知识(数据类型)(32位与64位系统基本数据类型的字节数)

    一.读取数据的格式说明符                                                  除此之外:     sizeof(char) =   1          ...

  3. 32位/64位操作系统的最大支持内存的空间

    32位/64位操作系统的最大支持内存的空间 计算机能单独处理的最小内存单位为字节 所以 32位操作系统最大支持:2^32Byte = 2^2 x 2^10 x 2^10 x 2^10Byte = 4G ...

  4. 计算机win7几位,Win7 32位与64位有什么区别 Win7系统32位和64位的区别科普篇

    Win7系统分32位和64位版本,很多人在选择32位和64位系统的时候十分纠结,原因是自己的电脑应该安装哪一种版本,那么Win7 32位与64位有什么区别,下面装机之家分享一下Win7系统32位和64 ...

  5. cmake跨平台编译之判断操作系统平台、32位64位系统

    判断交叉编译: if(CMAKE_CROSSCOMPILING)message(STATUS "Cross Comliling!!!, ARM")set(CURRENT_SYSTE ...

  6. 让使用SQLite的.NET应用自适应32位/64位系统

    Windows 7 64 bit(刚扩到4G内存,果断换64位的,那速度杠杠的) Microsoft Visual Studio 2010 Ultimate 32bit(在64位系统里运行正常) sq ...

  7. 计算机科普小知识——Win7系统32位与64位的区别,该如何选择?

    Win7系统32位与64位的区别 首先我们要知道32位和64位指的是什么.其实这是根据CPU内的寄存器字长来确定的,计算机内部数据都是二进制来呈现的,32位的计算机CPU一次最多能处理32位的二进制数 ...

  8. 如何检查Windows Vista , XP和2003系统是32位或64位( x86或x64 )版本

    您可能会收到一个电脑作为礼物,以及想要找出系统是否设置了一个32位或64位(微软标签,他们作为x86或x64 )为基础的作业系统,这需要特别建造的应用软件. ) . For computer or P ...

  9. 32位/64位系统,jdk32位,64位,32/64位jdk编译出来的class和eclipse 32位和64位

    首先关于32位/64位系统,jdk32位,64位,32/64位jdk编译出来的class和eclipse 32位和64位的一些对应关系做些说明. 1.32位操作系统不可以装64位jdk,64位操作系统 ...

  10. 32位与64位系统基本数据类型的字节数

    32位与64位系统数据类型 不同的平台上对不同的数据类型分配的字节数是不同的,一般的,数据类型的字节数是由编辑器决定的(编译期间决定数据类型长度). 简单来说,平台就是CPU+OS+Compiler, ...

最新文章

  1. 最喜欢的博客书签和站内短信系统
  2. step4 . day1标准IO和文件IO
  3. jupyter 共享_可共享的Jupyter笔记本!
  4. 互联网反欺诈体系中的常用方法
  5. 【NodeJs】用WebStorm创建Express项目时出现:express version is unavailable
  6. Common lisp编译成C的bin(二)
  7. 拼音字母搜索匹配汉字
  8. 计算机命令提示符的使用,命令提示符(电脑系统命令提示符的打开方法)
  9. Spring(SpringBoot)--事务传播机制--应用/实例/详解
  10. win7 局域网服务器 文件共享,Win7系统电脑设置局域网共享文件的操作方法-电脑自学网...
  11. PLSQL Developer 12 破解注册码(64位)
  12. 用10行代码实现鉴黄
  13. python开发的著名游戏制作人是_Python 曾经开发过哪些了不起的程序或游戏?
  14. java Exchanger原理
  15. python接入萤石云HLS直播流(海康威视摄像头4g连接条件下)
  16. Linux下网络丢包故障定位
  17. 大数据可视化-绘制景点热力图
  18. 2022年自考专业考试(英语)外贸函电练习题
  19. 无线网络技术导论笔记(第二讲)
  20. YouTube图片幻灯片分享技巧

热门文章

  1. cad打开卡死_AutoCAD程序启动就卡死的修复工具(解决CAD启动卡死不动)V2.00 修正版...
  2. html中怎样变英文月份,英语月份的巧记方法
  3. 微信/QQ/TIM消息防撤回最新补丁
  4. (论文阅读笔记)Deep Learning based Recommender System: A Survey and New Perspectives
  5. 投资心理和关于延迟满足的三个实验
  6. c语言挖地雷游戏,c扫雷小游戏
  7. CSS calc()函数的用法
  8. Java Seckill Module:seckill
  9. 2020 Jiangsu Collegiate Programming Contest-A.Array
  10. python-2.找出数组中重复的数字