chche与DMA的一致性问题
2016-08-14 10:17
330 查看
一、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 操作效果的和。
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 操作效果的和。
相关文章推荐
- DMA和cache一致性问题
- DMA导致的CACHE一致性问题解决方案
- DMA和cache一致性问题
- DMA和cache一致性问题
- DMA和cache一致性问题
- DMA和cache一致性问题解读
- DMA与cache一致性的问题
- [原创]SQL Server 2008 安装过程中遇到“性能计数器注册表配置单元一致性”检查失败 问题的解决方法
- 数据库并发操作的一致性问题
- SQL Server 2008 安装过程中遇到“性能计数器注册表配置单元一致性”检查失败 问题的解决方法
- SQL Server 2008 安装过程中遇到“性能计数器注册表配置单元一致性”检查失败 问题的解决方法
- 在数据库"WSEDSQLDB"中检测到一个可能的数据库一致性问题。|解决方法
- 转-数据库应用基础系列-第2章 并发操作的一致性问题 (2)
- 数据文件SCN的一致性问题
- cache一致性问题
- 中检测到一个可能的数据库一致性问题。|解决方法
- SQL Server 2008 安装过程中遇到“性能计数器注册表配置单元一致性”检查失败 问题的解决方法
- 内存一致性问题
- ActiveSync 没有DMA端口问题的解决方法
- 并发一致性问题