2 hkmyht Hkmyht 于 2016.02.28 16:00 提问

8086内存空间地址 和内存条

图片说明
比如8086CPU来说。 地址总线20位 2的20次方 1MB 那内存条呢。 内存条是1MB怎么算?

而且32位CPU 内存寻址能力是4G 内存条也是4G 还有显存 这怎么理解?

2个回答

caozhy
caozhy   Ds   Rxr 2016.02.28 18:49

地址和地址空间是两个概念,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万门,必然有大量的电话没有办法使用。

caozhy
caozhy 回复Hkmyht: 早期计算机的地址线和字长不同,我解释了,8086的字长是16bit,但是寻址能力是20bit
接近 2 年之前 回复
Hkmyht
Hkmyht 16位CPU内存条最大支持64k对吧。那么现在的32位CPU 4GB寻址能力(4294967295)内存条就占4G 还有其他存储器可能他的内存地址空间不就够了吧。
接近 2 年之前 回复
caozhy
caozhy 回复Hkmyht: 16位计算机,比如8086,寻址能力是20bit,也就是1M,80286是24bit,是16MB。在dos下,内存最大支持是640K。就是因为1M的限制。bill gates层说过,对pc机来说,640K内存足够了,成为一个经典笑柄。
接近 2 年之前 回复
caozhy
caozhy 回复Hkmyht: 16位计算机,地址线是20条,而不是16条,所以寻址能力是16MB
接近 2 年之前 回复
Hkmyht
Hkmyht 先说说内存地址空间吧(cpu把物理存储器芯片(芯片包括:内存条 BIOS 显卡 等等)看成一个逻辑的存储器等于内存地址空间)但是这个内存空间地址寻址受总线控制 16位1MB 32位4GB。上面理解没错就推下面了。既然最大寻址1MB(8086)如果我加上1MB内存条怎么理解。32位CPU(最大寻址4GB)我装上4G内存条4G显卡。
接近 2 年之前 回复
lyhoo163
lyhoo163   Rxr 2016.02.29 07:31

地址是读写内存的编号,它好比门牌号码。
内存空间,是内存实际数量。
通过地址引导空间的读写。比如的地址范围:00000000-FFFFFFFFF(16位表示)

8088是16位,16位的使用20位索引地址,最大是1M。32位最大搜索的地址,只能4GB,实际使用时,达不到4GB。

计算机系统,使用内存,是分段(区域)使用,内存中分为几个区,一段作为基本内存(主存贮器),一段作为显存,一段作为BIOS,......
段与段之间,不交叉使用。

这样,内存条的使用有一个基本的分配:基本内存(主存贮器),显存,BIOS,......,具体段(分区)的大小,由系统决定,相互之间不干扰的。

Hkmyht
Hkmyht 你也说16位CPU 索引地址是1MB对吧。 然后由系统支配。(这些内存地址空间,在物理上是由各个存储器组成有BIOS 内存条 显卡。。等等)反正大小不能超过1MB。比如我插上了一条1MB的内存条。CPU又怎么解释?如果前面的说法成立。CPU已经给内存条分配的地址。那内存条大小在哪里?(或者说内存条大小不能超过CPU 给各个存储器分配的区域)
接近 2 年之前 回复
Csdn user default icon
上传中...
上传图片
插入图片
准确详细的回答,更有利于被提问者采纳,从而获得C币。复制、灌水、广告等回答会被删除,是时候展现真正的技术了!