32位操作系统最多只支持4G内存。
CPU能不能直接访问硬盘的数据呢, 不能。 只能通过把硬盘的数据先放到内存里, 然后再从内存里访问硬盘的数据。我们平时玩游戏碰上读图loading 进度条的这个过程, 就是把数据从硬盘读到内存的过程啊。 读完条后地图的数据就在内存中了。
内存是把8个8个bit排成1组, 每1组成为1个单位, 大小是1byte(字节), CPU每一次只能访问1个byte, 而不能单独去访问具体的1个小格子(bit)。1个byte字节就是内存的最小的IO单位。
1千兆字节(gb)=1073741824字节(b)。
32位只支持2^32个寻址。也就是4294967296字节的大小。除以上面的1073741824得到4G。
2^32 = 4 * 1024(G) * 1024(M) * 1024(K) = 4294967296 , 就是4G 啊, 而每1个地址对应1个1个字节, 容量就是1byte, 所以2^32个地址就总共能对应应4GB 的内存容量啊, 这里的B指的是byte 字节啊。
既然32位系统里内存地址长度是32位的. 所以32位的地址范围就是从 0000 0000 0000 0000 0000 0000 0000 0000 到 1111 1111 1111 1111 1111 1111 1111 1111 啦(Ox00000000 ~ OxFFFFFFFF), 这里有几个地址呢? 明显是有 2^32 个啦。每个地址对应一个8bit的的内存单位。
64位操作系统,最高支持2^32*4G内存,非常大了。
一个地址,对应一个字节的内存容量。一个字节的内存容量能够存储8bit。4个字节的内存容量,存储32bit,存储一个地址。
内存存储于访问:
内存最小单位是一些类似于二极管这样的东西,它能存储一个电状态,高或低,可表示1或0。
这些单元经过组织起来保存数据,组织的方法是8个编成一个字节,4个字节一个字,每组数据都可以读写。
这些单元按照顺序排放后用地址编号,按照地址可访问其中的任一个字、字节。
这些电路访问时由两组数据连线:地址线和数据线,比如都是32位的,地址线描述要访问的具体单元,数据线存放要给这个单元赋值的数据(写访问)或读出的数据(读访问)。
这些单元上电时才能保持状态,所以内存你一掉电(关机),其中的数据就丢失了。