免费注册 查看新帖 |

Chinaunix

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

mpcb驱动开发中cache的问题 [复制链接]

论坛徽章:
0
跳转到指定楼层
1 [收藏(0)] [报告]
发表于 2011-12-20 09:44 |只看该作者 |倒序浏览
tile的L2 cache line为64字节,并可以使用编译器内建语句__insn_inv禁止该cache line的使用。
1 若驱动中使用dma_alloc_coherent申请dma buffer,则该函数内部通过禁止pte中的bit位将dma buffer设置为不可以cache的内存区,但是该buffer与应用程序申请的内存之间的数据拷贝需要大量的时间,在大数据量的情况下不满足时间的要求,原因未知;

2 如驱动中使用dma_alloc_coherent函数内部的子函数get_order和alloc_pages_node申请dma缓冲区,则满足应用与驱动之间内存数据拷贝的时间要求,但由于缺少了一步将该dma缓冲区设置为PAGE_HOME_UNCACHED,造成buffer的数据是可以cache的。所以可以在每次读取buffer之前将cache line禁止掉.这样做可以满足时间的要求。


参考MDE的UG101-USER-ARCHITECTURE-REFRENCE chapter 5
您需要登录后才可以回帖 登录 | 注册

本版积分规则 发表回复

  

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

清除 Cookies - ChinaUnix - Archiver - WAP - TOP