淡季文
2015-03-06 03:29
采纳率: 0%
浏览 3.2k

为什么cpu的地址总线位数与主存成2的n次方关系?

一根地址线,代表一个bit位,n位宽度的地址总线可寻址范围是2的n次方个地址。
比如:若只有一根地址总线,那么可以索引地址0、地址1的两个内存地址。
若有两根地址总线,那么可以索引2^2=4个内存地址:00、01、10、11
以此类推,32位地址总线,能够索引2的32次方个地址,即4G内存地址空间。
为什么是这样?

  • 点赞
  • 写回答
  • 关注问题
  • 收藏
  • 邀请回答

7条回答 默认 最新

  • blownewbee 2015-03-06 03:45

    不见得。早期286有20bit的寻址,最大识别16MB内存。在x86时代,服务器使用36bit寻址,最大64GB,一些显卡有192bit的总线位宽。现在的x64处理器,虽然在逻辑上是64bit,但是考虑硬件实现的简单以及根本用不到那么大的地址范围,其实是54bit或者58bit的(Intel是54bit)

    点赞 评论
  • blownewbee 2015-03-06 03:49

    但是好比我们在日常生活中用10进制喜欢凑个整一样,2^n相当于二进制的凑整,因为这样,无非就是一些数字后面加0就可以了。
    我们喜欢用1 10 100 1000,但是有时候也用 20 30 150 250……部分凑整。一样,二进制我们除了喜欢用 2 4 8 16,也用 24 48 96 108...

    点赞 评论
  • blownewbee 2015-03-06 03:58

    为什么是2的n次方,这个是小学生的数学。
    一个二进制有2个可能,那么将两个二进制组合起来就是2 x 2个可能,3个就是2x2x2,以此类推,n个就是2^n。
    还是拿10进制举例,一个3位数,可以表示的范围是1000,一个8位数就是1亿。也就是10^n。

    点赞 评论
  • sxper 2015-03-06 08:04

    因为是电路的关系。比如单片机8位。的8个io口,每个io口有低电平0 高电平1.2种状态。于是。8个线总共可以表示2^8的信息,在一个时间断点上。

    点赞 评论
  • tf221884 2015-03-06 08:16

    按楼主总结的,计算机中的数据选址是用二进制,也就是0,1的多次累加作为地址,用0,1的原因是选址的时候是用的是类似于3-8译码器的东西,就是三根线的高低电平决定了出口8根线的某一根电平的变化,类似内存地址也是这样,多个1,0决定了一个数据存储单元的读取

    点赞 评论
  • 朔望两弦 2015-03-06 08:55

    你知道为啥windows 7 32位不能用到4G以上的内存吗?为啥windows 7 64 bit可以。Mac 垃圾桶 甚至用16G的内存,你细细想一下这是为啥。
    提示:2的64次方可以寻址多少,
    当然如果你不理解为啥是2的n次方,计算机只认识0和1,他们也只有2位。

    点赞 评论
  • oyljerry 2015-03-06 13:55

    高低电平来作为计算机信号,所以一位就是2的一次方,多少位就是2多少次方地址空间。

    点赞 评论

相关推荐 更多相似问题