嵌入式中cache使用及数据操作一致性机制
来源:互联网 发布:cntv for mac 编辑:程序博客网 时间:2024/05/30 04:29
嵌入式中RAM实际使用的地址空间会出现不连续的情况,如片上RAM2块,片外DRAM 1块,映射后可能出现如下情况:
在使用cache时,就要特别注意,要注意每一块RAM地址空间的配置,每一块可以被配置成cache映射区和cache非映射区。
在嵌入式系统中,一般会存在多master(主设备)情况,如典型的master:CPU0,CPU1, DMA0, DMA1, SATA, NANDC等。
一般典型的嵌入式32位地址空间映射如下图示:
对在cache映射区的地址空间操作,就要考虑memory存储的内容一致性。多master内如果有cache存在时就要考
虑数据分散的一致性问题。要确保多master读取写入数据时整体的一致性。可以通过总线探测,cache等及时回刷等技术来实现
对某一地址空间存储的数据一致性保证。
对不在cache映射区的地址空间操作,每次master操作该地址空间时,都会去RAM中直接读取数据,可以保证RAM中数据一致性。
保证了某内存地址数据的唯一性后,就能保证多master同时能够使用到想要的数据吗?这是不可能的,多master同时读取数据时,
又涉及到多master对总线的抢占使用问题。如果多master同时在使用总线访问RAM,由于总线仲裁机制原因,可能会出现某个master
读取的数据出现老数据和新数据混合现象造成数据混乱,导致程序出错。
因此,需要保证某一个master在执行某个代码片段时使用数据的正确性,让多个master顺序使用某RAM地址空间的存续数据。
硬件原子操作数据指令应运而生,如load/store、swp、总线探测等指令。这种指令可以保证访问RAM时原子性操作,基于此,
操作系统之上的互斥锁,自旋锁,信号量,读写锁等得以实现。这些锁机制都要基于底层硬件的原子指令来实现。
否则锁机制就是一句空话。
- 嵌入式中cache使用及数据操作一致性机制
- 嵌入式系统中Cache一致性问题分析
- DMA及cache一致性
- EDMA使用中遇到cache一致性的问题
- OpenJpa 的 cache 机制及使用
- ZendFramework中使用Cache缓存机制
- DMA及cache一致性的学习心得
- DMA及cache一致性的学习心得
- DMA及cache一致性的学习心得 --dma_alloc_writecombine
- DMA及cache一致性的学习心得
- DMA及cache一致性的学习心得
- DMA及cache一致性的学习心得
- DMA及cache一致性的学习心得
- DMA及cache一致性的学习心得
- 多处理机Cache一致性问题及解决办法
- Cache 一致性
- cache 一致性
- Android 使用Cache机制
- JS-移动端判断上拉和下滑
- springMail的JavaMailSender和MimeMessagePreparator发送邮件
- 淘宝应对"双11"的技术架构分析
- 虚拟币开发专题(山寨币都有哪些平台可以交易)
- 随机点名并且讲三个分成随机一组随机点名
- 嵌入式中cache使用及数据操作一致性机制
- 机器学习-最大熵模型详解
- 【Android_View】ImageView源码简析笔记(一)
- Laravel 记录SQL日志
- JSP编写定制标签之处理属性
- Play framework HTTP form表单数据校验
- 【分享】安卓手机如何安装谷歌三件套
- linux下查看进程使用文件描述符的详细信息
- 机器学习基础 总结笔记