cache write-Through模式下应用的注意事项
来源:互联网 发布:line聊天软件 官方网站 编辑:程序博客网 时间:2024/04/30 14:12
I. cache与DMA
cache工作方式分为直写(Write-through)和回写(Copy-Back)详细介绍见http://blog.csdn.net/kklvsports/article/details/9208475
cache设置Copy-Back工作模式,写操作的时候在将数据写入cache并更新Dirty标志后,不会将数据写入cache对应的主存(只有在该缓存行需要被替换时,cache中的数据才会刷入主存中)。由于DMA(Direct Memory Access)操作无需CPU参与CPU不知道,因此此时如果有DMA(Direct Memory Access)操作需要读取刚才写的内容的话,取到的数据将是错误的,因为此时cache中的数据还未刷入主存。类似DMA写入主存某个地址数据时,CPU不知情也不会更新该地址对应cache中的内容,如果此时CPU要取DMA刚写入的数据话,取到的数据也是错误的。
如何解决上述问题呢?
1. 硬件如果支持snoop功能的话,使能snoop,让硬件保证。
2. DMA访问的空间设置为不可cache属性,但是这样影响性能
3. DMA写主存后,对对应主存地址的cache进行invalidate操作,这样CPU在访问的时候会从主存取得正确的数据;DMA读主存前,对对应主存地址的cache进行flush操作,将cache中较新的数据刷入主存。
II. i-cache和d-cache
L1 Cache分为指令cache(i-cache)和数据cache(d-cache),他们是彼此分离的,互相不感知。取指令的时候查看i-cache,读写数据的时候查看d-cache。所以,如果CPU要执行刚刚拷贝的指令(这些指令是作为数据被首先放到d-cache中)的话,在此之前要将d-cache中的指令flush到主存,并且将i-cache无效,以执行正确的代码。
参考 《see mips run 2rd edition》
- cache write-Through模式下应用的注意事项
- Cache 的write back和write through
- Cache 的write back和write through
- Cache 的write back和write through
- Cache 的write back和write-through
- Cache 的write back和write through
- Cache 的write back和write through
- Cache 的write back和write through
- Cache 的write back和write through
- Cache 的write back和write through
- Cache 的write back和write through
- Cache 的write back和write through
- Cache 的write back和write through
- cache的write through和write back
- cache的两种操作方式(Write-through,Write-back)
- cache 的两种方式Write Through和Write back
- 有關 Cache 的 read/write through/back/allocate
- Cache 中 Write through/Write back 区别
- Python 中赋值语句的小语法
- git 的使用学习
- 小型项目:贪吃蛇中学习win32 API
- 腾讯实习生笔试经验总结
- Android中LayoutParams总结和用法
- cache write-Through模式下应用的注意事项
- Set Matrix Zeroes
- C#笔试题(编程方面,不断更新)
- JAVA注解
- 衣服还要一件一件穿——装饰模式
- 互联网思维到底是什么
- 厌倦了编程书?来试试这3种提高编程技能的有趣方法吧
- ISO7220M芯片调试总结
- Java程序执行Linux命令