32位的系统为什么可支持的最大内存是4G?
2^32=4294967296bit是吧!4294967296bit=536870912B=0.5G是这样算的吗?...
2^32 = 4294967296bit是吧!4294967296bit = 536870912B = 0.5G 是这样算的吗?
展开
9个回答
2012-09-24 · 知道合伙人教育行家
关注
展开全部
2^32 = 4 * 2^10 * 2 ^10 *2^10B=4GB
32位X86架构是指个人电脑的地址总线是32位的,CPU、内存控制器、操作系统都是按32位地址总线设计。32位地址总线可以支持的内存地址代码是 4096MB,也就是有4GB的地址代码,可以编4GB个地址。这4GB个地址码正好可以分配给4GB内存。但是,这4GB个地址码不能全部分配给安装在主板上的物理内存。因为个人电脑还有很多设备需要地址代码,以便CPU可以根据地址码找到它们,同时CPU和这些设备交换数据需要暂时存放数据的存储器 ——寄存器,这些寄存器也需要地址代码。比如硬盘控制器、软驱控制器、管理插在PCI槽上的 PCI卡的PCI总线控制器,PCI-E总线控制器和PCI-E显卡,它们都有寄存器都需要系统分配给它们地址代码。这些地址由系统分配,电脑用户在使用中感觉不到。这样一来,当我们为电脑插上总容量为4GB的内存时,就有一部分内存分配不到地址代码而不能使用。
32位X86架构是指个人电脑的地址总线是32位的,CPU、内存控制器、操作系统都是按32位地址总线设计。32位地址总线可以支持的内存地址代码是 4096MB,也就是有4GB的地址代码,可以编4GB个地址。这4GB个地址码正好可以分配给4GB内存。但是,这4GB个地址码不能全部分配给安装在主板上的物理内存。因为个人电脑还有很多设备需要地址代码,以便CPU可以根据地址码找到它们,同时CPU和这些设备交换数据需要暂时存放数据的存储器 ——寄存器,这些寄存器也需要地址代码。比如硬盘控制器、软驱控制器、管理插在PCI槽上的 PCI卡的PCI总线控制器,PCI-E总线控制器和PCI-E显卡,它们都有寄存器都需要系统分配给它们地址代码。这些地址由系统分配,电脑用户在使用中感觉不到。这样一来,当我们为电脑插上总容量为4GB的内存时,就有一部分内存分配不到地址代码而不能使用。
追问
2^32的结果不是位吗?8位一个字节,怎么不用除以8????
展开全部
是因为32位系统只支持32位寻址:即2^32(B) = 4* 2^30(B) = 4294967296(B) = 4*2^20(KB) = 4194304(KB) = 4*2 ^10(MB) = 4096(MB) = 4(GB)
而32位Windows2003 支持大内存是因为 Windows2003有AWE功能,通过算法换算来支持大于4G的内存,但效率会变低,没直接使用64位系统好。 很多32位的XP只看到3点多G的内存是因为系统要预留部分给系统自己使用,只显示3点多G。
而32位Windows2003 支持大内存是因为 Windows2003有AWE功能,通过算法换算来支持大于4G的内存,但效率会变低,没直接使用64位系统好。 很多32位的XP只看到3点多G的内存是因为系统要预留部分给系统自己使用,只显示3点多G。
已赞过
已踩过<
评论
收起
你对这个回答的评价是?
展开全部
先声明:大多数人回答的所谓的32根总线有2^32次方的变换,说的对,但没说清楚,准确说是,按字节调用是2^32种变换, 按位调用就是2^32*8种变换。
再证明:4G的内存,总的可用数据位是 2^32 *8 位,没错 ,就是4G *8bit 即 4G字节;
内存控制和调用的最小单位是1个字节,也就是8位。(小于8位,什么也做不了,所以设计的时候就是8位当成一个字节。 内存里面的寄存器大多也是8个一组的。)
再证明:4G的内存,总的可用数据位是 2^32 *8 位,没错 ,就是4G *8bit 即 4G字节;
内存控制和调用的最小单位是1个字节,也就是8位。(小于8位,什么也做不了,所以设计的时候就是8位当成一个字节。 内存里面的寄存器大多也是8个一组的。)
已赞过
已踩过<
评论
收起
你对这个回答的评价是?
展开全部
有4294967296种组合方式,在内存中如果按1个字节分配1个地址,那么最大能分配内存就是约4.29G字节。但实际比这要小些。
已赞过
已踩过<
评论
收起
你对这个回答的评价是?
推荐律师服务:
若未解决您的问题,请您详细描述您的问题,通过百度律临进行免费专业咨询