免费注册 查看新帖 |

Chinaunix

  平台 论坛 博客 文库
12
最近访问板块 发新帖
楼主: rawa99999
打印 上一主题 下一主题

关于386CPU使用64TB虚拟内存的解释的另一种方法! [复制链接]

论坛徽章:
0
11 [报告]
发表于 2009-09-29 05:46 |只看该作者
看了半天,我也引用下手册吧:
link:http://www.intel.com/Assets/PDF/manual/253665.pdf

PAGE 68, PAGE 71.

下面是2张图,一个是32BIT cpu的。一个是64BIT CPU的。 注意画红线的地方

[ 本帖最后由 accessory 于 2009-9-29 05:47 编辑 ]

intel1.gif (26.12 KB, 下载次数: 28)

intel1.gif

intel2.gif (23.86 KB, 下载次数: 16)

intel2.gif

论坛徽章:
1
摩羯座
日期:2014-05-01 14:18:58
12 [报告]
发表于 2009-09-30 10:48 |只看该作者
学习一下!虽然不知道说什么呢?

论坛徽章:
0
13 [报告]
发表于 2009-09-30 13:26 |只看该作者
原帖由 rawa99999 于 2009-9-26 10:54 发表
我描述的可能不够严格,这只是一种解释,但是虚拟地址空间最终转化为控制虚拟内存,还有很多办法,比如soft MMU(软件内存管理单元),CPU提供了这种寻址的能力,就一定能控制这么大的虚拟内存,况且64T虚拟内存 ...


我觉得还是好好看看intel volume 3,system program guide里面的第三章,关于 logical address,linear address,physical address及其相互计算的流程,虚拟内存这个词太模糊了。

简单来说,程序中用的是logical address,通过段机制转换成linear address。

linear address只有4G(32位)!!!

logical address无论通过GDT、LDT的几千上万多种表达方式,但每种表达方式只能表达同一个linear address的4G(32位CPU)的一部分或全部。
这样对同一个线性地址的不同表达方式可以直接累加吗?

回到286年代,一共有64K个段,每个段有64K,(只不过每个段比前一个段偏移16字节而重叠),这样我们能说286能访问4G内存吗?实际上还是只有1M的寻址能力,EMS、XMS等不讨论。

论坛徽章:
0
14 [报告]
发表于 2009-10-09 08:10 |只看该作者
呵呵,以楼上几位的意思,intel9000多个32位CPU的服务器也只能有4G内存了。

论坛徽章:
0
15 [报告]
发表于 2009-10-09 08:16 |只看该作者
Ubuntu安装server的kernel,32位的系统可以使用4G以上的内存,最多能到64G。这还不是改写linux内核,针对大内存修改内核能支持更高的内存容量,这还不是虚拟内存管理,还仅仅是物理内存。

论坛徽章:
0
16 [报告]
发表于 2009-10-09 14:04 |只看该作者
晕死,你们两还在PK啊

论坛徽章:
0
17 [报告]
发表于 2009-10-11 10:32 |只看该作者
to rawa99999:
连手册都看不懂还来辩论??
您需要登录后才可以回帖 登录 | 注册

本版积分规则 发表回复

  

北京盛拓优讯信息技术有限公司. 版权所有 京ICP备16024965号-6 北京市公安局海淀分局网监中心备案编号:11010802020122 niuxiaotong@pcpop.com 17352615567
未成年举报专区
中国互联网协会会员  联系我们:huangweiwei@itpub.net
感谢所有关心和支持过ChinaUnix的朋友们 转载本站内容请注明原作者名及出处

清除 Cookies - ChinaUnix - Archiver - WAP - TOP