鱼C论坛

 找回密码
 立即注册
查看: 1990|回复: 16

突然想到了关于地址总线的问题

[复制链接]
发表于 2013-8-22 15:50:53 | 显示全部楼层 |阅读模式
1鱼币
QQ截图20130822155017.png 假如要查找的地址超过了地址总线的宽度该咋办

想知道小甲鱼最近在做啥?请访问 -> ilovefishc.com
回复

使用道具 举报

发表于 2013-8-22 16:56:27 | 显示全部楼层
这个问题。。。
我这样来解答你,我反问一句,寻址宽度的定义是什么?

内存地址是如何表达的,CPU又是如何进行寻址的。

这些问题明白了你应该就不会这样来问了。。
想知道小甲鱼最近在做啥?请访问 -> ilovefishc.com
回复

使用道具 举报

发表于 2013-8-22 16:58:14 | 显示全部楼层
那就寻不到了啊,就像现在好多机器,32为的操作系统,超过4G,其余的内存就寻址不到了,内存浪费。
想知道小甲鱼最近在做啥?请访问 -> ilovefishc.com
回复

使用道具 举报

发表于 2013-8-22 17:02:54 | 显示全部楼层

寻址宽度是活的,不管多少内存都是可以寻址到的,仁兄不要乱回答啊。。。
只是32位系统只有4G内存,如果32位被微软定义为8G的话还是可以寻址到的
寻址是CPU,不是系统!
想知道小甲鱼最近在做啥?请访问 -> ilovefishc.com
回复

使用道具 举报

发表于 2013-8-22 17:26:07 | 显示全部楼层
楼主这么和你说吧~~~如果你的机器有8G内存,你装一个32位的系统。那它最多寻址4G 那么剩余的寻不到。就浪费了(因此迷恋很负责的把自己的机器装成了64位,用的很辛苦)。同样的如果查找的地址超过 了就找不到了。而且一般不会出现地址超出的。8086汇编语言采用段+偏移的方式构成一个20位的物理地址。如果段地址过大是有可能超出寻址范围的。FFFFH*16+FFFFH从基本看上去对了但是 操作系统在分配的时候应该不会分配这么大的段地址给 程序。在程序载入到内存的时候这个过程由操作系统分配内存。因此。在写程序的时候我们的段地址一般都不是写死的。
想知道小甲鱼最近在做啥?请访问 -> ilovefishc.com
回复

使用道具 举报

发表于 2013-8-22 17:30:36 | 显示全部楼层
我理解寻址宽度是受CPU寄存器限制的,如果CPU内部的寄存器只有32位,那么外部地址总线就算有64位,CPU内部ALU做运算的时候,也只能存放32位的数据啊。所以我理解不是内存有多大,CPU就都可以寻址到的。

为啥说操作系统这个例子是我觉得,现在机器硬件上已经设计成64位了,但是32位操作系统没有使用高32位,所以即使你有更多的内存,在软件设计上,操作系统依然限制了你使用的物理内存内容范围是4G。

楼主应该提问的是物理内存寻址范围吧。不对请指正。
想知道小甲鱼最近在做啥?请访问 -> ilovefishc.com
回复

使用道具 举报

发表于 2013-8-22 20:25:08 | 显示全部楼层
你是说FFFF:FFFF这种情况吗??

这种情况算出来的实际地址是10FFEF,会把前面的1舍去,所以地址会是0FFEF
想知道小甲鱼最近在做啥?请访问 -> ilovefishc.com
回复

使用道具 举报

发表于 2013-8-22 22:07:32 | 显示全部楼层
(⊙o⊙)…32位的电脑你插入500G的内存显示能用的也只有4G而已
你认为会有你说的这种可能吗???
想知道小甲鱼最近在做啥?请访问 -> ilovefishc.com
回复

使用道具 举报

发表于 2013-8-22 22:09:36 | 显示全部楼层
565123 发表于 2013-8-22 20:25
你是说FFFF:FFFF这种情况吗??

这种情况算出来的实际地址是10FFEF,会把前面的1舍去,所以地址会是0FFE ...

会这样啊~~~我没试过·~~~呵呵~~~{:7_174:} 倒是我 错了
想知道小甲鱼最近在做啥?请访问 -> ilovefishc.com
回复

使用道具 举报

发表于 2013-8-22 22:11:57 | 显示全部楼层
CPU只能搜寻2的N次方地址超了搜不出来
想知道小甲鱼最近在做啥?请访问 -> ilovefishc.com
回复

使用道具 举报

发表于 2013-8-22 23:48:18 | 显示全部楼层
地址线可以复用的啊,就比如说,10根地址线,地址总线的宽带是20吧,这10根线先传高10位再传低10位。我这是打个比方,具体多少位我也不知道了
想知道小甲鱼最近在做啥?请访问 -> ilovefishc.com
回复

使用道具 举报

发表于 2013-8-23 13:26:16 | 显示全部楼层
超 过了地扯总线将会找不到。
想知道小甲鱼最近在做啥?请访问 -> ilovefishc.com
回复

使用道具 举报

发表于 2013-8-23 14:55:12 | 显示全部楼层
这个问题真没仔细想过,但是我想它查找的地址不可能超过地址总线的!如果真的超过,应该是找不到!
想知道小甲鱼最近在做啥?请访问 -> ilovefishc.com
回复

使用道具 举报

发表于 2013-8-23 18:08:27 | 显示全部楼层
本帖最后由 604274069 于 2013-8-23 18:13 编辑

地址总线的宽度N是最多寻址2的N次方内存单元。
:loveliness:
想知道小甲鱼最近在做啥?请访问 -> ilovefishc.com
回复

使用道具 举报

发表于 2013-8-23 22:05:34 | 显示全部楼层
CPU设计的时候就已经考虑到这点了,地址总线的宽度比CPU内部寄存器的数量多。8086CPU地址总线为20根,内部总线只有16根,所以才发明分段寻址方式。
想知道小甲鱼最近在做啥?请访问 -> ilovefishc.com
回复

使用道具 举报

发表于 2013-8-28 08:19:17 | 显示全部楼层
这个应该是就找不到了吧。。。
想知道小甲鱼最近在做啥?请访问 -> ilovefishc.com
回复

使用道具 举报

发表于 2013-9-3 13:24:10 | 显示全部楼层
顶。。。。{:1_1:}顶。。。。{:1_1:}
想知道小甲鱼最近在做啥?请访问 -> ilovefishc.com
回复

使用道具 举报

您需要登录后才可以回帖 登录 | 立即注册

本版积分规则

小黑屋|手机版|Archiver|鱼C工作室 ( 粤ICP备18085999号-1 | 粤公网安备 44051102000585号)

GMT+8, 2024-11-17 07:27

Powered by Discuz! X3.4

© 2001-2023 Discuz! Team.

快速回复 返回顶部 返回列表