关于寻址空间的理解

来源:互联网 发布:北京骏溢至信 淘宝 编辑:程序博客网 时间:2024/06/05 10:14

原文地址:http://blog.csdn.net/u013176681/article/details/39429809

计算机最小的单位是位(bit),每8位组成一个字节(Byte),字节(B)也是存储器的最小存储单元。 

b、B、Kb、KB、Mb、MB、Gb、GB之间的单位换算如下: 
1B = 2的3次方*b = 8b 
1Kb = 2的10次方*b = 1024b 
1KB = 2的13次方*b = 2的10次方*B =1024B 
1Mb = 2的20次方*b 
1MB = 2的23次方*b = 2的20次方*B 
1Gb = 2的30次方*b 
1GB = 2的33次方*b = 2的30次方*B 
4Gb = 2的32次方*b 
4GB = 2的35次方*b = 2的32次方*B 
至于为什么说16根地址总线的寻址空间为 2的16次方 = 64K(B),是因为字节(B)是内存的最小存储单元,每个地址总线可以对2个存储单元寻址(2B),所以16根地址总线可以寻址 2B的16次方 = 64K(B); 
同理20根地址总线可以寻址的存储器空间是 2B的20次方 = 1MB; 
32根地址总线的寻址空间是 2B的32次方 = 4GB;这也是为什么32位地址总线的系统的最大能搭配4GB内存的原因:再多的话CPU就找不到了。 

关于地址总线和寻址空间的关系可以从下文得到更深刻的理解: 
"8086有20根地址线,所以可寻址的存储器空间为1MB"。因为,2的20次方等于1MB,所以是这个结果。
问,为什么要这样算?这中间的那个过程是怎样的?(硬件是怎么实现的?) 
        假设有这么一台计算机,它只有1根地址线,那么请问它最多能对几个存储单元寻址?答案显然是2个.因为在任何2进制计算机中,所有物理元件只有 0,1两种状态,对应这个例子,我们假设已经把这唯一的一根地址线与两个存储单元a和b连上了,那么究竟怎么确定何时读a何时读b?有一个办法,当地址线上的电压是高电压时我们读a,相反是低电压时,我们读b.如此一来,你应该明白-----一根地址线的情况下,只能对2个存储单元进行寻址 。
        依次类推,2根地址线时可以对4个存储单元进行寻址,对应的电压情况可以是:低低,低高,高低,高高;继续想下去,3根地址线就可以对8个存储单元进行寻址,4根就是16个,也就是说,当有n根地址线时,可以对2的n次方个存储单元进行寻址 。
假如每个存储单元又可以存1个字节的东西,那么20根地址线可寻址的存储器空间就是1MB"2的20次方等于1MB

原创粉丝点击