[转] Cache在Driver中的使用简介
来源:互联网 发布:java定义数组长度 编辑:程序博客网 时间:2024/06/06 02:56
1.Cache的两个类型
--Write Through
当写数据进Cache时,也同时更新了相应的Memory里的内容
--Write back
只是写到Cache里,Memory的内容要等到cache保存的要被别的数据替换或者系统做cache flush时,才会被更新。
2.Cache的两个函数
--Flush
把Cache内容写回Memory,当Cache为Write through,不需要Flush
--Invalidate
把Cache内容直接丢掉不要。
3.Cache的使用场合
当有DMA在使用memory的时候,一般要用到cache的处理。因为DMA在访问memory时是不经过cache的。比较典型的比如在Ethernet,wireless,USB等driver里,DMA会操作descriptors和packet buffers,Driver要做这些处理
--如果driver使用descripter和packet buffer的地址都是cache的地址,那么
a).Driver在读descripter里一些状态比如Owned by CPU/DMA,有没有收到包时,要对descripter当前结构里的内容做cache invalidate,收到packet后,也要对packet buffer做cache invalidate
b).Driver在写descripter里一些状态比如Owned by DMA,要发送包时,要对descripter当前结构里的内容做cache flush,发送packet时,也要对packet buffer做cache flush
--有些driver会对descripter使用uncache 地址,那么上面两种情况里invalidate/flush就不用做了。一般很少会对packet buffer也用uncache地址的,因为对packet内容的处理将会很频繁,使用uncache会很慢。而descripter一般由于结构比较小,如果也使用cache地址的话,做invalidate/flush的时间消耗可能会比uncache的还要多。
原文在: http://blog.chinaunix.net/u/31934/showart_267202.html
- [转] Cache在Driver中的使用简介
- Cache在Driver中的使用简介
- Cache在嵌入式处理器中的使用问题
- Cache在嵌入式处理器中的使用问题
- Mongodb matlab Driver 使用简介
- Spring Cache简介和使用
- 简介Opencv在Python中的使用
- sqlite数据库在Python中的使用简介
- Cache在CPU中的作用
- asp.net 使用驻留在页面中的Cache缓存常用可定时更新的数据 (转)
- 在GridView中使用Cache
- 在GridView中使用Cache
- 在GridView中使用Cache
- 在GridView中使用Cache
- 在Ibatis中使用Cache
- Cache简介
- 使用BHO技术检测IE在浏览网页时下载到IE cache中的文件
- 使用selenium中的driver.close()函数
- spring继承JUnit
- js正则表达式
- WOW服务器代码(mongos)库 FOR svn
- MovieClip设置以中心点旋转
- 利用JS和CSS实现点击一个link,使页面上某元素隐藏或显示,同时改变link字样的效果
- [转] Cache在Driver中的使用简介
- 几个小工具
- 高校排行榜之乱该如何对症下药?
- linux下安装字体
- 关于SQL server和Oracle中起别名的区别
- 数据库JOIN算法
- 交通违章处罚归来 差4Km驾照就没有了,好险!
- Windows系统下的多显示器模式开发日记 [转]
- 个人空间岁末大回报活动12月25日获奖名单