chche与DMA的一致性问题
来源:互联网 发布:打印机的端口名是什么 编辑:程序博客网 时间:2024/06/06 17:43
一、chche原理
1. cache是一种高速缓冲存储器,主要作用:提高cpu数据读取速率,协调cpu速度与内存存储速度之间的差异。
2. cpu可以快速的从cache中读取数据,但是如何得到cpu在下一个时间段内用到的内存中的数据? 局部性原理:如果cpu当前时间用到内存中的某块数据,那么就将这块数据的周围数据存入cache中,为下一个时间段cpu读取数据做准备。
3. 直接映像:主存的一个字块只能映像到Cache的一个准确确定的字块中。
全相联映像:指主存的一个字块可以映像到整个Cache的任何一个字块中。
组相联映像:是对全相联和直接映像的一种折中的处理方案
二、chche与DMA的一致性问题
1.在进行DMA操作时,如果没有对cache进行适当的操作,将产生两种错误:① DMA 将外部数据直接传到内存中,但cache 中仍然保留的是旧数据,这样处理器在访问数据时直接访问缓存将得到错误的数据 (DMA从外设读取数据)②处理器在处理数据时数据会先存放到cache 中,此时cache 中的数据有可能还没来得及写回到内存中的数据。如果这时DMA 直接从内存中取出数据传送到外设,外设将可能得到错误的数据(DMA向外设写数据)
2.解决问题的方法:在DMA目标地址范围内禁止chche功能。
3.在DMA目标地址范围内是否使用chche??可以根据DMA缓冲区期望保留的的时间长短来决策。因此出现了① 一致性DMA映射 ②流式DMA映射
三、一致性DMA映射与流式DMA映射
一致性DMA映射申请的缓存区能够使用cache,并且保持cache一致性。一致性映射具有很长的生命周期(该驱动的生命周期),在这段时间内占用的映射寄存器,即使不使用也不会释放。
流式DMA映射方式生命周期比较短,禁用cache。一些硬件对流式映射有优化。建立流式DMA映射,需要告诉内核数据的流动方向。
1. DMA 从外设读取数据到供处理器使用时,可先进性invalidate 操作。这样将迫使处理器在读取cache中的数据时,先从内存中读取数据到缓存,保证缓存和内存中数据的一致性。
2.DMA 向外设写入由处理器提供的数据时,可先进性writeback 操作。这样可以DMA传输数据之前先将缓存中的数据写回到内存中。
如果不清楚DMA 操作的方向,也可先同时进行invalidate 和writeback 操作。操作的结果等同于invalidate 和 writeback 操作效果的和。
- chche与DMA的一致性问题
- 一致性DMA与流式DMA
- DMA和cache一致性问题
- DMA和cache一致性问题
- DMA和cache一致性问题
- DMA和cache的一致性
- mips一致性DMA映射、流式DMA映射的使用
- mips一致性DMA映射、流式DMA映射的使用
- 对流式DMA和一致性DMA的认识
- 对流式DMA和一致性DMA的认识
- 关于YL2410 DMA 与SPI 的问题
- DMA及cache一致性的学习心得
- DMA及cache一致性的学习心得
- DMA及cache一致性的学习心得 --dma_alloc_writecombine
- DMA及cache一致性的学习心得
- DMA及cache一致性的学习心得
- DMA及cache一致性的学习心得
- DMA及cache一致性的学习心得
- 递归小论(1)
- 【产品经理学习】产品经理对互联网产品小白的学习建议
- 设计模式GOF23——模板方法模式
- 递归小论(2)
- jQuery mouseover与mouseenter,mouseout与mouseleave的区别
- chche与DMA的一致性问题
- 《深入理解mybatis原理(十)》 Mybatis插件原理简单分析
- Mixing Milk
- 局部二值化算法Niblack OpenCV实现
- 软件开发过程一 需求分析与设计
- 18.新增选择器
- 递归小论(3)
- 使用JS判断所用浏览器的类型
- Android API Guides (译)导读