32位计算机直接访问的内存,32位64位-32位计算机可以访问多少内存?

32位64位-32位计算机可以访问多少内存?

32位或64位计算机是什么意思?

这是处理器架构…一台32位计算机可以与64位计算机同时读写32位数据…。

32位计算机可以访问的最大内存是多少?

它是2^32=4Gb(4Gigabit = 0.5 GigaByte)

那意味着4Gb的ram?

如果我对64位计算机考虑相同的方式,那么我可以拥有16ExbiBytes的内存。这可能吗?

我的概念正确吗?

7个解决方案

46 votes

是的,一个32位体系结构仅限于寻址最大4 GB的内存。 根据操作系统的不同,由于保留了地址空间,该数字甚至可以进一步减少。

可以通过使用PAE(物理地址扩展)在某些32位体系结构上消除此限制,但是处理器必须支持此限制。 PAE使处理器能够访问超过4 GB的内存,但不会更改单个进程可用的虚拟地址空间量-每个进程仍将限制为最大4 GB的地址空间。

是的,从理论上讲,64位体系结构可以处理1680万兆兆字节的内存,即2 ^ 64字节。 但是我不相信当前流行的实现完全支持这一点。 例如,AMD64架构最多只能寻址1 TB的内存。 此外,您的操作系统还将对受支持的可寻址内存量进行限制。 Windows的许多版本(尤其是设计用于家庭或其他非服务器使用的版本)受到任意限制。

Cody Gray answered 2019-11-09T14:40:11Z

21 votes

32位或64位计算机通常表示的是外部可见(“已架构”)通用整数寄存器的大小。

不过,这与硬件的构建关系不大。 例如,让我们考虑一下(已过时的)英特尔奔腾Pro。 即使它支持多达36位的物理地址,具有64位宽的数据总线,并且通常在内部将所有受支持的操作数类型的计算在一组寄存器中进行( 因此为80位宽,以支持最大的浮点类型)。

至少就Intel处理器而言,即使较长时间可以使用更大的物理地址,但32位处理器上任何一个进程的地址空间内直接可见的最大内存量也限制为4 GB( 32位寻址)。 36位物理寻址允许寻址多达64 GB的RAM,但是在任何给定时间只能直接看到其中的4 GB。

对64位计算机的更改主要涉及更改对用户可见的内容(或在汇编语言级别进行编码)。 同样,您看到的东西很少与真实的东西相同。 例如,大多数64位代码将指针/地址视为64位,但实际的处理器不支持那么大的地址。 当前的CPU支持48位虚拟地址,并且(至少据我所知)最多支持40位物理地址。 另一方面,它们的设计目的是在将来,当更大的内存成为现实时,它们可以将物理寻址扩展到48位,而完全不影响软件。 即使在增加48位虚拟地址的情况下,通常情况下,它也只会影响少量的操作系统内核(正常代码不会受到影响,因为它已经假定地址是64位)。

因此,不行:一台64位计算机实际上并不支持最多64位物理寻址,但是大多数典型的64位软件应与将来支持直接寻址那么多RAM的处理器保持兼容。

Jerry Coffin answered 2019-11-09T14:41:10Z

9 votes

回到一个基本的想法,我们的内存地址有32位。 算出2 ^ 32个唯一的地址组合。 按照惯例,每个地址指向1个字节的数据。 因此,我们最多可以访问2 ^ 32字节的数据。

在32位OS中,每个寄存器存储32位或4个字节。 每个时钟周期处理32位(1字)信息。 如果要访问特定的1个字节,从概念上讲,我们可以通过执行按位逻辑运算来“提取”各个字节(例如,字节0,字节1,字节2,字节3等)。

例如。 得到“ dddddddd”,“ aaaaaaaabbbbbbbbbbccccccccdddddddd”和逻辑与“ 0000000000000000000000001111111”。

Kevin Lee answered 2019-11-09T14:41:57Z

5 votes

基本上32位架构可以满足您的预期4GB。有一些技术可以使处理器处理更多数据,例如AWE或PAE。

rkosegi answered 2019-11-09T14:42:22Z

4 votes

是的,在32位计算机上,可用的最大内存量约为4GB。 实际上,由于保留了部分地址空间,因此取决于操作系统,它可能更少:例如,在Windows上,只能使用3.5GB。

在64位上,您确实可以寻址2 ^ 64字节的内存。 并不是说您将拥有这些内存,但是很久以前,有人又说过同样的事情,即需要超过640kb的内存...

ThiefMaster answered 2019-11-09T14:42:57Z

2 votes

没有你的概念是不对的。 为了正确设置,您需要回答您错误回答的问题:

32位或64位计算机是什么意思?

该问题的答案是“ CPU中重要的是32位或64位”。 所以问题是什么是重要的? 很多人说数据总线的宽度决定了机器是32位还是64位。 但是最新的32位处理器都没有32位或64位宽的数据总线。 大多数32位系统将至少具有36位以支持更多RAM。 大多数64位处理器具有不超过48位宽的数据总线,因为这已经是很多内存了。

因此,据我所知,一台32位或64位计算机是由其在计算中使用的通用寄存器的大小或计算机所使用的“自然字大小”决定的。

请注意,32位OS是另一回事。 您可以在64位计算机上运行32位OS。 此外,您可以在64位OS上运行32位应用程序。 如果您不了解其中的区别,请发布另一个问题。

因此,如果在处理器中启用了正确的寻址模式,则处理器可以寻址的最大RAM量为2 ^(数据总线的宽度,以位为单位)。

还要注意的是,没有什么可以阻止某人在数据总线和存储体之间引入多路复用的,它会选择一个存储体,然后对RAM进行寻址(分两步进行)。 这样,您可以寻址更多的RAM。 但这是不切实际的,而且效率很低。

Saurabh answered 2019-11-09T14:44:08Z

-5 votes

基本上,“ x位机器”一词并不取决于您的机器。 这就是为什么我们不需要更改处理器或其他硬件即可从32位系统迁移到64位系统(反之亦然)的原因。

32位和64位代表计算机上运行的操作系统的寻址能力。

但是,这仍然并不意味着x位操作系统能够寻址2 ^ x GB内存。 因为“ GB”中的“ B”表示“字节”而不是“位”。 1个字节等于8位。

实际上,尽管应该为OS保留一些内存,但32位系统甚至无法寻址2 ^ 32/8 = 2 ^ 29 GB的内存空间。

它刚好低于3 GB。

antonio answered 2019-11-09T14:45:11Z

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值