比如8086CPU来说。 地址总线20位 2的20次方 1MB 那内存条呢。 内存条是1MB怎么算?
而且32位CPU 内存寻址能力是4G 内存条也是4G 还有显存 这怎么理解?
地址和地址空间是两个概念,4GB内存需要2^32个地址空间。也就是32bit地址线能表示的最大值,所以32bit下寻址能力是4GB。
地址空间除了内存需要使用,dma设备、bios设备,比如显存、硬盘、io等都需要地址,所以在32bit下安装了4GB内存,并不能利用全部的内存,大约只能用3~3.7GB左右,而且越先进的电脑,外设越多,能用的就越少。
如果你在windows 8.1下打开系统属性,你会看到4GB内存,3.25GB可用之类的信息。
用电话号码打比方,如果电话号码是8位,那么可以表示00000000~99999999。一共1亿不同的号码。但是显然你的城市没有安装1亿门电话,一些号码是空号。
但是反过来说,如果电话号码是3位,那么最多只能表示1000个不同的号,如果你的城市有2000万门,必然有大量的电话没有办法使用。
地址是读写内存的编号,它好比门牌号码。
内存空间,是内存实际数量。
通过地址引导空间的读写。比如的地址范围:00000000-FFFFFFFFF(16位表示)
8088是16位,16位的使用20位索引地址,最大是1M。32位最大搜索的地址,只能4GB,实际使用时,达不到4GB。
计算机系统,使用内存,是分段(区域)使用,内存中分为几个区,一段作为基本内存(主存贮器),一段作为显存,一段作为BIOS,......
段与段之间,不交叉使用。
这样,内存条的使用有一个基本的分配:基本内存(主存贮器),显存,BIOS,......,具体段(分区)的大小,由系统决定,相互之间不干扰的。