嵌入式系统中的CACHE问题

时间:2023-05-01 08:46:06 计算机论文 我要投稿
  • 相关推荐

嵌入式系统中的CACHE问题

摘要:描述了在实时嵌入式系统开发中遇到的与CACHE有关的问题。对引起这些问题的原因——CACHE和RAM的不一致性进行了讨论。最后,提出了解决问题的方法。

    关键词:嵌入式实时系统 CACHE 不一致性

随着社会的发展、人们生活水平的提高,人们对嵌入式计算机应用的要求也越来越高。因此,对嵌入式系统的性能要求也越来越高。明显体现在嵌入式系统的CPU速度的不断提高上。但问题也随之而来,嵌入式CPU的主频不断地提高,一方面加强了CPU的处理能力,另一方面,在速度上造成了与慢速的系统存储器极不相配的情况,从而影响了整个系统的性能。

为了解决这个问题,引入了CACHE技术。CACHE是一种高速缓冲存储器,是为了解决CPU和主存之间速度不匹配而采用的一项重要技术。通过在主存和高速CPU之间设置一个小容量的高速存储器,在其中存放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通道向外发送数据,发送的总是缓冲区初始化时的内容,实际要发送的数据总是发不出去,但使用调试工具看内存中的数据,却是正确的。

经过一段时间的调试,发现出现这种现象的环节都使用了DMA传输数据。在通过HDLC通道发送数据的例子中,HDLC通道内部也是用DMA方式从内存直接读数据并向外发送。经过分析,认为问题的原因是出在CACHE上,是由于CACHE数据与内存数据的不一致性造成的。

所谓CACHE数据与内存数据的不一致性,是指:在采用CACHE的系统中,同样一个数据可能既存在于CACHE中,也存在于主存中,数据一样则具有一致性,数据若不一样就叫做不一致性。具体表现在两个方面:

(1)更新

[1] [2] [3] [4] 

【嵌入式系统中的CACHE问题】相关文章:

嵌入式系统与通信技术在汽车安全中的应用05-02

PPSM嵌入式RTOS中的窗口系统开发12-01

嵌入式系统报告10-18

ART270嵌入式系统在测井仪器调试及检测中的应用04-29

嵌入式实时操作系统VxWorks及其在地震勘探仪器中的应用04-28

GPS卫星定位系统设计中几个问题的探讨05-01

弹载嵌入式系统设计技术05-01

嵌入式船舶电站监测系统的设计04-28

嵌入式系统学习心得03-07

双高嵌入式工控机平台在电力系统中的应用05-02