. : : Assembly Language : : .  |  首页  |  我提出的问题  |  我参与的问题  |  我的收藏  |  消息中心   |  游客  登录  | 
提问 | 未解决 | 已解决 | 精华区 | 搜索 |
  《汇编语言》论坛 ->基础知识
主题 : :  1个CPU的寻址能力为8KB,那么它的地址总线宽度为多少?  [待解决] 回复[ 83次 ]   点击[ 4146次 ]  
puwen
[帖 主] [ 发表时间:2010-10-26 09:24 ] 
荣誉值:0
信誉值:0
注册日期:2010-10-25 23:36
我不理解,CPU寻址的最小单位到底是bit还是Byte?

如果是Byte的话,那8K的寻址能力,宽度应该为13(8*1024)(这里的8指什么1024又是什么,为什么要相乘,是不是以后都可以照这个方法来算?)

书上举了一个例子,说10根导线可以传送10位2进制数据,所以可以转送10^2的数据,那他说的10位2进制数据不就是在说有10bit吗?1bit不是等于1位2进制数据吗?
editcue
[第41楼] [ 回复时间:2011-07-09 15:48 ] 
荣誉值:0
信誉值:0
注册日期:2011-07-07 16:21
我觉得之所以会出错是因为概念没弄清。
“寻址能力”是指:CPU能寻找地址的最大范围。你可以把他想象成“门牌号”的总数量。
“总线宽度”是指:CPU能支持的最大位数。你可以把他想象成“门牌号”的位数。多少线就多少位数。
由于CPU只能识别高低电位(也就是0和1),所以“门牌号”每个位只能有两种选择。
假设现在我们的“门牌号”位数是三位,那么我们的用0和1组合的数字就有以下几个。
000 001 010 011 100 101 110 111
我们数一下总共有8种组合,也就是2^3。
同理,我们8KB的寻址能力就是8192个“门牌号”
反推过来“门牌号”位数则是8192=2^13,总共13位,也就是13条线。
------------------
回复:
有些朋友说是16。
这里就需要先弄清一个问题。
在CPU每条线能传输1bit,也就是0或1的二进制数,即是一位数据。
个人猜测,可能是历史原因,1bit数据并不是一条完整的信息,而计算机传输一条完整的信息,最小位数必须为8位,也就是1Byte大小。
你可以看看,我们现在的CPU位数都能被8整除。(Intel 4004 4040 除外,这是四位的CPU)
至于为什么是8位,这应该与8086那个年代有关。
回到正题,现在我们一个完整的“门牌号”必须是八位或以上的组合,也就是“门牌号”不会出现00;0111这样的号数(00000000不等于00,前面的0不能被省略,因为只有高低电位,没有“无电位”),那么地址组合总数,当然不能是以Bit为基本单位了,正确的基本单位应该是Byte。
所以13才是正解。
需要登录后才能回帖 -->> 请单击此处登录
    Copyright © 2006-2024   ASMEDU.NET  All Rights Reserved