免费注册 查看新帖 |

Chinaunix

  平台 论坛 博客 文库
12
最近访问板块 发新帖
楼主: cnppk
打印 上一主题 下一主题

[内核模块] 虚拟地址到物理地址的映射 [复制链接]

论坛徽章:
1
水瓶座
日期:2013-09-28 21:40:25
11 [报告]
发表于 2012-12-17 12:59 |只看该作者
回复 1# cnppk

我觉得这个问题可以简单的回答为:如果CPU以虚拟地址访问显存,那就要进行MMU转换;如果CPU以物理地址访问显存,那就不许要MMU转换。


   

论坛徽章:
0
12 [报告]
发表于 2012-12-17 13:39 |只看该作者
bensenq 发表于 2012-12-17 12:59
回复 1# cnppk

我觉得这个问题可以简单的回答为:如果CPU以虚拟地址访问显存,那就要进行MMU转换;如果 ...


跟我理解一个意思

论坛徽章:
0
13 [报告]
发表于 2012-12-17 18:17 |只看该作者
本帖最后由 superwiles 于 2012-12-17 18:38 编辑

我的意思是  显卡的显存地址段在e820 表中属性究竟是什么呢,我估计是reserved。  
显存应该是通过bar 配置
有一种只能作为io来访问,而不真正参与os的内存分配等等操作。
另外一种是 MMIO, 我的意思是 显存是MMIO mapping。


论坛徽章:
2
2015年辞旧岁徽章
日期:2015-03-03 16:54:152015年迎新春徽章
日期:2015-03-04 09:53:17
14 [报告]
发表于 2012-12-17 18:56 |只看该作者
superwiles 发表于 2012-12-17 18:17
我的意思是  显卡的显存地址段在e820 表中属性究竟是什么呢,我估计是reserved。  
显存应该是通过bar 配置 ...





e820 总共就这么几种类型, 你说的是哪种,同学?


同学,你的术语太乱了,please define your "io" at first, 不过我猜你也知道楼主是正确的了。


论坛徽章:
0
15 [报告]
发表于 2012-12-17 19:46 |只看该作者
本帖最后由 superwiles 于 2012-12-17 20:02 编辑

回复 14# 帅绝人寰


   我认为是第二种, 访问显存走的是  root compex->switch-> end point,  背后靠的是 MMIO(memory mapped IO)机制,
   访问system memory 走的是内存控制器, 路径不同,同时显存也并不被os直接管理。  缺省情况下os的内存分配管理都和显存无关。
   同时 MMIO  应该也是不能cache的。驱动一般要调用ioremap 才可以通过虚址来访问

  BTW:我说的IO 指的是 port I/O,对应于 MMIO


   
   

论坛徽章:
4
天秤座
日期:2013-10-18 13:58:33金牛座
日期:2013-11-28 16:17:01辰龙
日期:2014-01-14 09:54:32戌狗
日期:2014-01-24 09:23:27
16 [报告]
发表于 2012-12-17 21:16 |只看该作者
显卡的配置寄存器可以映射到io空间,显存没必要映射到io空间吧。

论坛徽章:
2
2015年辞旧岁徽章
日期:2015-03-03 16:54:152015年迎新春徽章
日期:2015-03-04 09:53:17
17 [报告]
发表于 2012-12-17 21:20 |只看该作者
懒得说了。  奉劝围观者听我一句: 楼主是对的。

论坛徽章:
0
18 [报告]
发表于 2012-12-17 22:40 |只看该作者
我搞arm的 从arm的结构来说 楼主是对的 arm cpu所发出的memory address access指令全部都会过mmu
您需要登录后才可以回帖 登录 | 注册

本版积分规则 发表回复

  

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

清除 Cookies - ChinaUnix - Archiver - WAP - TOP