免费注册 查看新帖 |

Chinaunix

  平台 论坛 博客 文库
12下一页
最近访问板块 发新帖
查看: 13684 | 回复: 16
打印 上一主题 下一主题

请教关于总线地址和物理地址的3个问题问题 [复制链接]

论坛徽章:
0
跳转到指定楼层
1 [收藏(0)] [报告]
发表于 2007-05-15 09:09 |只看该作者 |倒序浏览
请教关于总线地址和物理地址的3个问题问题(第三个问题最总要)

1请问总线地址和物理地址是什么?

2两者和虚拟地址的关系?

3总线地址和物理地址可以转换吗?如果可以,如何转换。

论坛徽章:
0
2 [报告]
发表于 2007-05-15 09:23 |只看该作者
>>1请问总线地址和物理地址是什么?
总线地址就是物理地址

>>2两者和虚拟地址的关系?
虚拟地址经过MMU转换之后的地址是物理地址

还有一个PCI卡上的内存地址(不知该如何称谓),它是独立编址的,从0开始,先把它映射到总线地址上,然后再映射到虚拟地址上,这样内核才能访问

论坛徽章:
0
3 [报告]
发表于 2007-05-15 09:32 |只看该作者
原帖由 qtdszws 于 2007-5-15 09:23 发表于 2楼  
>>1请问总线地址和物理地址是什么?
总线地址就是物理地址


应该说对x86体系是这样的吧, 好象有的体系结构(e.g. SPARC?)就不是这样^_^

论坛徽章:
0
4 [报告]
发表于 2007-05-15 09:57 |只看该作者

回复 #1 北极狐BILL 的帖子

总线地址在外围总线和内存之间使用,通常它们与处理器使用的物理地址相同,但这么做不是必需的.
一些计算机体系架构提供了I/O内存管理单元(IOMMU),它实现总线和主内存之间的重新映射.

论坛徽章:
0
5 [报告]
发表于 2007-05-15 10:00 |只看该作者

回复 #1 北极狐BILL 的帖子

虚拟地址通过页表转换成物理地址的.

论坛徽章:
0
6 [报告]
发表于 2007-05-15 15:17 |只看该作者
原帖由 qtdszws 于 2007-5-15 09:23 发表于 2楼  
>>1请问总线地址和物理地址是什么?
总线地址就是物理地址

>>2两者和虚拟地址的关系?
虚拟地址经过MMU转换之后的地址是物理地址

还有一个PCI卡上的内存地址(不知该如何称谓),它是独立编址 ...



“物理空间就是总线空间”

我以前理解都是认为总线空间就是I/O端口空间。

我想知道我对I/O空间以下几点的理解是否正确:(我的理解可能有误,就是希望大虾指正!!!)

1   I/O端口空间和内存地址空间在非统一寻址的空间中是分开的,也就是说,它的寻址空间是4G(内存寻址空间)+64k(I/O寻址空间)> 4G。这点我理解对了没有?

2   如果是非统一寻址,那么系统(典型的如X86系统)是如何区分两个空间的.因为一个空间是32位的,而I/O空间是16位的。做个假设,我的内存就是那么BT,有4G大,那么I/O端口空间是如何寻址的?

3   如果我对I/O端口空间的理解有误,请大虾们指正。


挣扎在痛苦的概念中,同学说没有必要,但是对于驱动这方面,各个概念应该了解清楚,我认为,所以我固执的请教各位大虾。

论坛徽章:
0
7 [报告]
发表于 2007-05-15 15:30 |只看该作者
可能我没有表示清楚我要问的问题

再重新说一下问题:

1:什么是实际地址,什么是总线地址。两者一样?如果不一样,有何区别。
2:X86体系(先不考虑ARM,MIPS体系结构),有两个寻址空间:内存寻址空间和I/O端口空间,这点对么?
3:对于统一寻址的系统,比如ARM,MIPS体系结构,寻址方式只有一种:内存寻址,且寻址范围为4G。但是对于分开寻址,即非统一寻址系统,其寻址空间是内存空间+I/O端口空间=4G+64k>4G,请问这点理解有没有错误。
4:如果第三点理解没有错误,我问一个极限的情况,当我有一个4G的内存条(就是这么BT)的情况,那么X86系统如何区分我具体使用的是哪个空间。

论坛徽章:
0
8 [报告]
发表于 2007-05-15 15:46 |只看该作者
再问一个

在LDD3中的函数中涉及到了若干个类似函数,一个典型的是inb和outb,请问inb(unsigned port )函数中,这个unsigned port是什么,为几位(16位还是32位?我肯定是16位,在X86系统中)是地址么?是什么地址?实际地址还是其他什么?

论坛徽章:
0
9 [报告]
发表于 2007-05-15 15:49 |只看该作者
内存地址和io地址是独立的,它们由控制总线中的一位来区分。指令也不同.内存用mov等,而io只能用in/out.

广义总线地址包括物理地址和io地址。不过一般只按狭义来理解为物理地址。

虚拟地址经过cpu中的mmu转换后才放到地址总线上的。

论坛徽章:
0
10 [报告]
发表于 2007-05-15 15:52 |只看该作者
unsigned short port,端口号,16位,即io地址
您需要登录后才可以回帖 登录 | 注册

本版积分规则 发表回复

  

北京盛拓优讯信息技术有限公司. 版权所有 京ICP备16024965号-6 北京市公安局海淀分局网监中心备案编号:11010802020122 niuxiaotong@pcpop.com 17352615567
未成年举报专区
中国互联网协会会员  联系我们:huangweiwei@itpub.net
感谢所有关心和支持过ChinaUnix的朋友们 转载本站内容请注明原作者名及出处

清除 Cookies - ChinaUnix - Archiver - WAP - TOP