资料介绍
嵌入式系统论文
嵌入式系统中的CACHE问题
摘要:描述了在实时嵌入式系统开发中遇到的与CACHE有关的问题。对引起这些问
题的原因——CACHE和RAM的不一致性进行了讨论。最后,提出了解决问题的方法
。
关键词:嵌入式实时系统 CACHE 不一致性
随着社会的发展、人们生活水平的提高,人们对嵌入式计算机应用的要求也越来越高
。因此,对嵌入式系统的性能要求也越来越高。明显体现在嵌入式系统的CPU速度的
不断提高上。但问题也随之而来,嵌入式CPU的主频不断地提高,一方面加强了CP
U的处理能力,另一方面,在速度上造成了与慢速的系统存储器极不相配的情况,从而
影响了整个系统的性能。
为了解决这个问题,引入了CACHE技术。CACHE是一种高速缓冲存储器,是
为了解决CPU和主存之间速度不匹配而采用的一项重要技术。通过在主存和高速CP
U之间设置一个小容量的高速存储器,在其中存放CPU常用的指令和数据,CPU对
存储器的访问主要体现在对SRAM的存取,CPU可以不必加等待状态而保持高速操
作。
采用CACHE技术,解决了CPU与主存之间速度不匹配的问题;但它又带来了一
些其它问题,如本文将提到的一致性问题。
1 问题的发现与原因
在进行某嵌入式系统项目的开发过程中,有一个环节需要使用DMA方式进行数据传
输。当程序运行后,发现传到目的地的数据块中经常会有一些错误的字节。如:数据本
应为00 01 02 03 04 05 06 07 08 09 0A 0B
...(16进制),结果却是00 01 02 03 00 00 00 00 08
09 0A 0B
...。在某些环节也出现了类似的问题。例如,通过HDLC通道向外发送数据,发
送的总是缓冲区初始化时的内容,实际要发送的数据总是发不出去,但使用调试工具看
内存中的数据,却是正确的。
经过一段时