|
主题 : : 寻址2G或者更大的内存条是怎么实现的? [待解决] |
回复[ 8次 ]
点击[ 682次 ] | |
|
|
|
|
[帖 主]
[ 发表时间:2011-03-18 04:55 ]
[引用]
[回复]
[ top ] | |
荣誉值:0
信誉值:0
注册日期:2011-03-18 04:39 |
CPU地址总线宽度是20,那么寻址能力是1M。假如内存条是2G,那么CPU怎么能那对它进行寻址呢?将2G分成2048M吗?如果是,那么又是怎么实现的?实在想不通了,大家帮解决下,谢谢了。 | | |
|
|
|
|
[第1楼]
[ 回复时间:2011-03-19 00:03 ]
[引用]
[回复]
[ top ] | |
荣誉值:0
信誉值:0
注册日期:2011-03-03 22:40 |
16位处理器地址线是20位,而32位处理器是32位,可以寻址4gb内存空间 | | |
|
|
|
|
[第2楼]
[ 回复时间:2011-03-19 13:51 ]
[引用]
[回复]
[ top ] | |
荣誉值:0
信誉值:0
注册日期:2011-03-18 04:39 |
回楼上,那32位处理器是不是就用不了8G的内存条呢? | | |
|
|
|
|
[第3楼]
[ 回复时间:2011-03-22 23:39 ]
[引用]
[回复]
[ top ] | |
荣誉值:0
信誉值:0
注册日期:2011-03-22 23:34 |
|
|
|
|
|
[第4楼]
[ 回复时间:2011-04-11 14:58 ]
[引用]
[回复]
[ top ] | |
荣誉值:4
信誉值:0
注册日期:2011-04-02 14:52 |
32位操作系统最大寻址是4G,实际上一般只能支持3.25G,如果要支持4G必须对系统进行修改 | | |
|
|
|
|
[第5楼]
[ 回复时间:2011-05-03 01:34 ]
[引用]
[回复]
[ top ] | |
荣誉值:0
信誉值:0
注册日期:2011-05-02 12:38 |
现在的地址总线一般都是32位…直接是保护模式直接寻址…应该没有段的概念…具体不了解…我们现在学的是实模式… | | |
|
|
|
|
[第6楼]
[ 回复时间:2011-05-06 23:33 ]
[引用]
[回复]
[ top ] | |
荣誉值:0
信誉值:0
注册日期:2011-05-06 06:09 |
在8086时代寄存器是16位的,地址总线是20位。为了寻到1M的内存空间引进了段地址+偏移地址的概念。现在的CPU一般都是32位,部分是64位。如果CPU内部总线和地址总线都是32位的话,应该就用不着段地址+偏移地址的方式寻址,可以直接寻址了吧。这时我猜测的。 | | |
|
|
|
|
[第7楼]
[ 回复时间:2011-05-08 21:34 ]
[引用]
[回复]
[ top ] | |
荣誉值:0
信誉值:0
注册日期:2009-09-02 18:58 |
处理器寻址的大小和内存条没直接的关系。就像及时32位的处理器可以寻更大的硬盘地址一样。只要主板支持就可以支持更大的内存条。可以像寻硬盘那样用地址加法器吗!像6楼说的!我也是猜测的! | | |
|
|
|
|
[第8楼]
[ 回复时间:2011-05-12 13:28 ]
[引用]
[回复]
[ top ] | |
荣誉值:0
信誉值:0
注册日期:2011-05-12 13:09 |
大家好 我新来的.请多多指教。
8086CPU地址总线宽度是20,那么寻址能力是1M=1024KByte=1048576Byte,2的20次方=1048576。也就是说CPU能访问到1048576个内存单元,因为内存单元的最小存储单位为Byte,所以他的寻址能力为1048576个Byte.
对于一个需要寻址到2GByte内存单元的CPU,需要多宽的地址总线?2GByte=2147483648Byte,只要是2的n次方大于或等于2147483648,理论上都可以寻址到2GByte的内存地址,但是实际应用中可能没有那么随意的地址总线宽带。比如上面的2的31次方等于2147483648,对于大多数CPU地址总线直接被设计为32为,所以一个地址总线宽带为32位的CPU可以寻址到你的2GB内存。
对于32/64位的CPU寻址能力,以前看到过一篇文章,讲的是32、64位的CPU地址总线宽带不一定是32/64位,可能是其他数。实际中好像是这样的。。
http://hi.baidu.com/wkevin/blog/item/25e15b43991b7c169213c6ae.html | | |