har*_*ris 58 ram cpu-architecture 32bit-64bit
什么是32位或64位机器?
这是处理器架构...... 32位机器可以在64位机器上同时读取和写入32位数据....
什么是32位机器可以访问的最大内存?
它是2^32=4Gb
(4Gigabit = 0.5 GigaByte)
这意味着4Gb内存?
如果我对64位机器采用相同的方法,那么我可以使用16ExbiBytes的内存..这可能吗?
我的观念是对的吗?
Cod*_*ray 46
是的,32位架构仅限于寻址最大4 GB的内存.根据操作系统的不同,由于保留的地址空间,这个数字可以进一步减少.
可以通过使用PAE(物理地址扩展)在某些32位体系结构上删除此限制,但必须由处理器支持.PAE使处理器能够访问超过4 GB的内存,但它不会改变单个进程可用的虚拟地址空间量 - 每个进程仍将限制为最多4 GB的地址空间.
是的,从理论上讲,64位架构可以处理1680万兆字节的内存,或者2 ^ 64字节.但我不相信当前流行的实现完全支持这一点; 例如,AMD64架构只能处理高达1TB的内存.此外,您的操作系统还会对受支持的可寻址内存量进行限制.许多版本的Windows(特别是为家庭或其他非服务器使用而设计的版本)都是任意限制的.
Jer*_*fin 21
32位或64位机器的典型含义是外部可见("架构")通用整数寄存器的大小.
这与硬件的构建方式几乎没有关系.例如,让我们考虑(长期过时的)Intel Pentium Pro.它通常被认为是"32位"处理器,即使它支持多达36位的物理地址,也有64位宽的数据总线,并且所有支持的操作数类型的内部计算都在一组寄存器中执行(因此,它们是80位宽,以支持最大的浮点类型).
至少在英特尔处理器的情况下,即使长时间可用较大的物理寻址,32位处理器上任何一个进程的地址空间内直接可见的最大内存量也限制为4千兆字节( 32位寻址).36位物理寻址允许寻址高达64千兆字节的RAM,但在任何给定时间只能直接看到4千兆字节.
对64位计算机的更改主要涉及更改用户可见的内容(或汇编语言级别的代码).再一次,你所看到的很少与真实相同.例如,大多数64位代码将指针/地址视为64位,但实际处理器不支持那么大的地址.当前的CPU支持48位虚拟地址,并且(至少据我所知)最多40位物理寻址.另一方面,它们的设计在未来,当更大的内存变得实用时,它们可以将物理寻址扩展到48位,而不会影响软件.即使它们增加了48位虚拟寻址,在典型情况下它也只会影响少量的操作系统内核(正常代码不受影响,因为它已经假设地址是64位).
所以,不,64位机并没有真正支持多达解决的物理64位,但最典型的64位软件应该保持与做支持直接处理那么多内存未来的处理器兼容.
回到一个非常基本的想法,我们的内存地址有32位.这适用于2 ^ 32个唯一的地址组合.按照惯例,每个地址指向1个字节的数据.因此,我们最多可以访问2 ^ 32个字节的数据.
在32位OS中,每个寄存器存储32位或4个字节.每个时钟周期处理32位(1字)信息.如果要从概念上访问特定的1个字节,我们可以通过执行按位逻辑运算来"提取"各个字节(例如,字节0,字节1,字节2,字节3等).
例如,要获得"dddddddd",请将"aaaaaaaabbbbbbbbccccccccdddddddd"和逻辑AND与"00000000000000000000000011111111"一起使用.
是的,在 32 位计算机上,最大可用内存量约为 4GB。实际上,根据操作系统的不同,由于保留了部分地址空间,它可能会更少:例如,在 Windows 上,您只能使用 3.5GB。
在 64 位上,您确实可以寻址 2^64 字节的内存。并不是说你永远都会拥有这些 - 但话又说回来,很久以前也有人说过同样的事情需要超过 640kb 的内存......
归档时间: |
|
查看次数: |
157512 次 |
最近记录: |