发布网友 发布时间:2022-06-13 18:14
共1个回答
热心网友 时间:2023-10-14 23:05
嵌入式系统?CACHE是一种高速缓冲存储器,是为了解决CPU和主存之间速度不匹配而采用的一项重要技术。通过在主存和高速CPU之间设置一个小容量的高速存储器,在其中存放CPU常用的指令和数据,CPU对存储器的访问主要体现在对SRAM的存取,CPU可以不必加等待状态而保持高速操作。所谓CACHE数据与内存数据的不一致性,是指:在采用CACHE的系统中,同样一个数据可能既存在于CACHE中,也存在于主存中,数据一样则具有一致性,数据若不一样就叫做不一致性。具体表现在两个方面:(1)更新时可能CACHE中的数据更新,而主存未更新,则造成数据丢失;(2)在有DMA控制器的系统和多处理器系统中,有多个部件可以访问主存。这时,可能其中有些部件是直接访问主存,也可能每个DMA部件和处理器配置一个CACHE。这样,主存的一个区块可能对应于多个CACHE中的一个区块。于是会产生主存中的数据被某个总线部件更新过,而某个CACHE中的内容未更新,造成数据过时。CACHE的基本工作模式有两种:write-through模式和 copyback模式。在write-through模式下,所有的写操作都写入CACHE和RAM,保证了CACHE和RAM的一致。然而,每次对RAM都有写操作会使处理器的处理能力降低,并且占用总线带宽。在copyback模式下,写操作只写入CACHE,不写入RAM,从而提高了处理器性能和总线带宽。copyback模式下,CACHE中的内容只有在需要的时候才写到RAM中。当CACHE中无可用空间时,一般使用最近最少使用算法(LRU)来决定哪一个CACHE项被替换。copyback模式提供了很高的系统性能,但是需要更多的一致性作保证。可以采用以下几种加入代码的方法来解决一致性的问题(1)对于时间上不是那么关键的程序段,可以先用下面的代码维护数据CACHE的一致性。cacheInvalidate (DATA_CACHE,address,bytes); �