Advanced Debugging
About AdvDbg Consult Train Services Products Tools Community Contact  
欢迎光临 高端调试 登录 | 注册 | FAQ
 
  ACPI调试
Linux内核调试
Windows内核调试
 
  调试战役
调试原理
新工具观察
 
  Linux
Windows Vista
Windows
 
  Linux驱动
WDF
WDM
 
  PCI Express
PCI/PCI-X
USB
无线通信协议
 
  64位CPU
ARM
IA-32
  CPU Info Center
 
  ACPI标准
系统认证
Desktop
服务器
 
  Embedded Linux
嵌入式开发工具
VxWorks
WinCE
嵌入式Windows
 
  格蠹调试套件(GDK)
  格蠹学院
  小朱书店
  老雷的微博
  《软件调试》
  《格蠹汇编》
  《软件调试(第二版)》
沪ICP备11027180号-1

Windows内核调试

帖子发起人: Thomson   发起时间: 2009-12-07 21:07 下午   回复: 9

Print Search
帖子排序:    
   2009-12-07, 21:07 下午
Thomson 离线,最后访问时间: 2013/3/31 11:42:42 Thomson

发帖数前10位
注册: 2008-07-03
发 贴: 211
32位系统为什么不能完全4G的物理内存?
Reply Quote
在不启用PAE的情况下,在32位系统上只能看到3.5G,或者3G的物理内存, 即使插入的4G内存.

我BIOS有shadow的,但是要具体讲不是很明白...

求指教.
IP 地址: 已记录   报告
   2009-12-07, 21:34 下午
bossin 离线,最后访问时间: 2009/12/7 21:33:29 王半仙

发帖数前500位
注册: 2009-12-07
发 贴: 1
Re: 32位系统为什么不能完全4G的物理内存?
Reply Quote
很简单,外设要占用内存地址空间,比如显卡的显存:256M或512M等。
IP 地址: 已记录   报告
   2009-12-07, 22:13 下午
Thomson 离线,最后访问时间: 2013/3/31 11:42:42 Thomson

发帖数前10位
注册: 2008-07-03
发 贴: 211
Re: 32位系统为什么不能完全4G的物理内存?
Reply Quote
谢谢.

独立显卡也是用物理地址空间吗?
有没有一张图来说明整个4G空间是怎么映射到物理内存上的呢?
IP 地址: 已记录   报告
   2009-12-07, 22:27 下午
Raymond 离线,最后访问时间: 2020/7/3 3:40:25 格蠹老雷

发帖数前10位
注册: 2005-12-19
发 贴: 1,303
Re: 32位系统为什么不能完全4G的物理内存?
Reply Quote
Thomson, 你可以阅读英特尔的北桥手册,通常在System Address Map一章中有详细描述
IP 地址: 已记录   报告
   2009-12-07, 22:53 下午
Coding 离线,最后访问时间: 2010/2/20 12:12:52 Coding

发帖数前10位
注册: 2008-05-31
发 贴: 103
Re: 32位系统为什么不能完全4G的物理内存?
Reply Quote

你还可以看看这篇文章http://blogs.technet.com/markrussinovich/archive/2008/07/21/3092070.aspx


IP 地址: 已记录   报告
   2009-12-07, 23:07 下午
machoman 离线,最后访问时间: 2009/12/24 10:06:22 麻大烦

发帖数前150位
注册: 2009-09-01
发 贴: 6
Re: 32位系统为什么不能完全4G的物理内存?
Reply Quote
啥也不说,学习了。
IP 地址: 已记录   报告
   2009-12-07, 23:29 下午
Thomson 离线,最后访问时间: 2013/3/31 11:42:42 Thomson

发帖数前10位
注册: 2008-07-03
发 贴: 211
Re: 32位系统为什么不能完全4G的物理内存?
Reply Quote
谢谢张老师和coding, 都是非常好的resource.
IP 地址: 已记录   报告
   2009-12-08, 11:14 上午
Coding 离线,最后访问时间: 2010/2/20 12:12:52 Coding

发帖数前10位
注册: 2008-05-31
发 贴: 103
Re: 32位系统为什么不能完全4G的物理内存?
Reply Quote
至于"独立显卡也是用物理地址空间吗?"的问题。
虽然没有深入的玩过独立显卡,不过比如说
程序要从文件中读出一些纹理来渲染,当一部分独立显卡的显存拥有物理地址的话,就可以直接写到显存中了。

"集成显卡需要额外的物理地址空间吗?"也可以有。
比如说,一块内存它既有一个普通的CPU访问物理地址(总线上的地址),他还有另外一个虚拟的"物理地址",当CPU用这个"虚拟的物理地址"访问内存的时候,这个访存请求会被翻译成实际的物理地址。
据个例子说明为什么要有这种需求。
不如说一块内存作为集成显卡的显存,里面放着一张图片。CPU当然可以根据内存在总线的实际物理地址访问这张图片。不过,如果显卡对于这张图片的布局作了优化,并且这个优化对于程序来说是透明的,那么程序根据位置(X,Y)算出的偏移,进而通过页表得到的物理地址就不是真正想要访问的内存单元了。于是集成显卡就可以预留一段"虚拟"的物理地址空间,然后OS可以在页表中把虚拟地址映射到这段"虚拟的”的物理空间上,当内存控制器发现对这段"虚拟的”的物理空间的访问,可以在翻译一次到真正的物理地址。




IP 地址: 已记录   报告
   2009-12-11, 11:24 上午
Thomson 离线,最后访问时间: 2013/3/31 11:42:42 Thomson

发帖数前10位
注册: 2008-07-03
发 贴: 211
Re: 32位系统为什么不能完全4G的物理内存?
Reply Quote
还有一个问题是,即使是在64位系统上,安装了4G内存,然后用mark 文章里面提到的meminfo -r,来但是PFN的映射,发现总共加起来仍然没有4096M, 我算出来好像是4029M, 不知道是什么问题...4G内存应该就是4096M吧?


meminfo -r信息如下:
Physical Memory Range: 0000000000001000 to 000000000009F000 (158 pages, 632 KB)
Physical Memory Range: 0000000000100000 to 00000000BFDFF000 (785663 pages, 3142652 KB)
Physical Memory Range: 0000000100000000 to 000000013C000000 (245760 pages, 983040 KB)
MmHighestPhysicalPage: 1294336

IP 地址: 已记录   报告
   2009-12-15, 16:07 下午
skyworth 离线,最后访问时间: 2009/12/15 16:03:09 skyworth

发帖数前25位
注册: 2008-06-07
发 贴: 55
Surprise [:O] Re: 32位系统为什么不能完全4G的物理内存?
Reply Quote
还有些内存是不分页的,并不是所有的内存都是分页内存
内核有一个未分页内存池
IP 地址: 已记录   报告
高端调试 » 软件调试 » Windows内核调试 » 32位系统为什么不能完全4G的物理内存?

 
Legal Notice Privacy Statement Corporate Governance Corporate Governance
(C)2004-2020 ADVDBG.ORG All Rights Reserved.