亚洲一级电影在线观看,九九精品无码专区免费,亚洲AV无码资源在线观看 ,欧美国产高清

嵌入式系統(tǒng)中的CACHE問題

時(shí)間:2024-08-26 14:14:51 理工畢業(yè)論文 我要投稿
  • 相關(guān)推薦

嵌入式系統(tǒng)中的CACHE問題

摘要:描述了在實(shí)時(shí)嵌入式系統(tǒng)開發(fā)中遇到的與CACHE有關(guān)的問題。對引起這些問題的原因——CACHE和RAM的不一致性進(jìn)行了討論。最后,提出了解決問題的方法。

隨著社會(huì)的發(fā)展、人們生活水平的提高,人們對嵌入式計(jì)算機(jī)應(yīng)用的要求也越來越高。因此,對嵌入式系統(tǒng)的性能要求也越來越高。明顯體現(xiàn)在嵌入式系統(tǒng)的CPU速度的不斷提高上。但問題也隨之而來,嵌入式CPU的主頻不斷地提高,一方面加強(qiáng)了CPU的處理能力,另一方面,在速度上造成了與慢速的系統(tǒng)存儲(chǔ)器極不相配的情況,從而影響了整個(gè)系統(tǒng)的性能。

為了解決這個(gè)問題,引入了CACHE技術(shù)。CACHE是一種高速緩沖存儲(chǔ)器,是為了解決CPU和主存之間速度不匹配而采用的一項(xiàng)重要技術(shù)。通過在主存和高速CPU之間設(shè)置一個(gè)小容量的高速存儲(chǔ)器,在其中存放CPU常用的指令和數(shù)據(jù),CPU對存儲(chǔ)器的訪問主要體現(xiàn)在對SRAM的存取,CPU可以不必加等待狀態(tài)而保持高速操作。

采用CACHE技術(shù),解決了CPU與主存之間速度不匹配的問題;但它又帶來了一些其它問題,如本文將提到的一致性問題。

1 問題的發(fā)現(xiàn)與原因

在進(jìn)行某嵌入式系統(tǒng)項(xiàng)目的開發(fā)過程中,有一個(gè)環(huán)節(jié)需要使用DMA方式進(jìn)行數(shù)據(jù)傳輸。當(dāng)程序運(yùn)行后,發(fā)現(xiàn)傳到目的地的數(shù)據(jù)塊中經(jīng)常會(huì)有一些錯(cuò)誤的字節(jié)。如:數(shù)據(jù)本應(yīng)為00 01 02 03 04 05 06 07 08 09 0A 0B ...(16進(jìn)制),結(jié)果卻是00 01 02 03 00 00 00 00 08 09 0A 0B ...。在某些環(huán)節(jié)也出現(xiàn)了類似的問題。例如,通過HDLC通道向外發(fā)送數(shù)據(jù),發(fā)送的總是緩沖區(qū)初始化時(shí)的內(nèi)容,實(shí)際要發(fā)送的數(shù)據(jù)總是發(fā)不出去,但使用調(diào)試工具看內(nèi)存中的數(shù)據(jù),卻是正確的。

經(jīng)過一段時(shí)間的調(diào)試,發(fā)現(xiàn)出現(xiàn)這種現(xiàn)象的環(huán)節(jié)都使用了DMA傳輸數(shù)據(jù)。在通過HDLC通道發(fā)送數(shù)據(jù)的例子中,HDLC通道內(nèi)部也是用DMA方式從內(nèi)存直接讀數(shù)據(jù)并向外發(fā)送。經(jīng)過分析,認(rèn)為問題的原因是出在CACHE上,是由于CACHE數(shù)據(jù)與內(nèi)存數(shù)據(jù)的不一致性造成的。

所謂CACHE數(shù)據(jù)與內(nèi)存數(shù)據(jù)的不一致性,是指:在采用CACHE的系統(tǒng)中,同樣一個(gè)數(shù)據(jù)可能既存在于CACHE中,也存在于主存中,數(shù)據(jù)一樣則具有一致性,數(shù)據(jù)若不一樣就叫做不一致性。具體表現(xiàn)在兩個(gè)方面:

(1)更新時(shí)可能CACHE中的數(shù)據(jù)更新,而主存未更新,則造成數(shù)據(jù)丟失;

(2)在有DMA控制器的系統(tǒng)和多處理器系統(tǒng)中,有多個(gè)部件可以訪問主存。這時(shí),可能其中有些部件是直接訪問主存,也可能每個(gè)DMA部件和處理器配置一個(gè)CACHE。這樣,主存的一個(gè)區(qū)塊可能對應(yīng)于多個(gè)CACHE中的一個(gè)區(qū)塊。于是會(huì)產(chǎn)生主存中的數(shù)據(jù)被某個(gè)總線部件更新過,而某個(gè)CACHE中的內(nèi)容未更新,造成數(shù)據(jù)過時(shí)。

2 問題的分析

要解釋這個(gè)問題,首先要了解CACHE的工作模式。CACHE的基本工作模式有兩種:write-through模式和 copyback模式。在write-through模式下,所有的寫操作都寫入CACHE和RAM,保證了CACHE和RAM的一致。然而,每次對RAM都有寫操作會(huì)使處理器的處理能力降低,并且占用總線帶寬。在copyback模式下,寫操作只寫入CACHE,不寫入RAM,從而提高了處理器性能和總線帶寬。copyback模式下,CACHE中的內(nèi)容只有在需要的時(shí)候才寫到RAM中。當(dāng)CACHE中無可用空間時(shí),一般使用最近最少使用算法(LRU)來決定哪一個(gè)CACHE項(xiàng)被替換。copyback模式提供了很高的系統(tǒng)性能,但是需要更多的一致性作保證。為了便于理解,給出一個(gè)使用了CACHE的系統(tǒng)的邏輯框圖,如圖1所示。

該系統(tǒng)中兩個(gè)地方會(huì)發(fā)生CACHE的不一致性:

(1)數(shù)據(jù)CACHE / RAM

數(shù)據(jù)CACHE與RAM之間的問題源于處理器和其他總線控制器對RAM的異步讀寫訪問。DMA設(shè)備和其他總線控制器對RAM的訪問是引起CACHE一致性問題的主要原因,這個(gè)問題可以通過在程序中加入一些代碼來解決。

(2)共享CACHE LINE

當(dāng)一個(gè)CACHE LINE被兩個(gè)以上的線程共享時(shí),也會(huì)產(chǎn)生一致性問題。當(dāng)某個(gè)線程使一個(gè)CACHE LINE無效時(shí),這個(gè)CACHE LINE中的一些項(xiàng)可能屬于另外一個(gè)線程。這個(gè)問題也可以通過一定的方法來避免,只要在分配內(nèi)存時(shí)大小是CACHE LINE大小的整數(shù)倍即可。

在哈佛體系結(jié)構(gòu)、copyback模式和無軟件干預(yù)的前提下,最佳的保持一致性的方法就是使用具有總線監(jiān)聽能力的硬件。將CACHE、RAM、DMA設(shè)備和其它所有的總線主控設(shè)備都連到一個(gè)物理總線上,以使CACHE可以對該總線上的總線交互過程進(jìn)行監(jiān)聽,CACHE將對總線上的地址周期和控制(讀/寫)比特監(jiān)聽,數(shù)據(jù)周期則被延遲到需要時(shí)才進(jìn)行。當(dāng)CACHE中的一項(xiàng)被一個(gè)異步操作修改時(shí),該CACHE項(xiàng)就會(huì)被標(biāo)為無效。如果處理器對一個(gè)已經(jīng)被標(biāo)為無效的CACHE項(xiàng)進(jìn)行訪問時(shí),CACHE就會(huì)從RAM中重新載入有效數(shù)據(jù)。在copyback模式下,處理器對CACHE進(jìn)行寫操作時(shí),RAM相應(yīng)地址中的內(nèi)容就變成過時(shí)。如果另外一個(gè)設(shè)備想訪問RAM中的這部分內(nèi)容,CACHE就會(huì)搶占該訪問周期,將有效的數(shù)據(jù)寫入RAM。然后被搶占的訪問周期重新開始并將讀到RAM中的有效數(shù)據(jù)。但是,目前提供監(jiān)聽能力的板子并不多。

3 解決的方法

根據(jù)上面的分析和討論,可見問題正是由數(shù)據(jù)CACHE / RAM的不一致性引起的。雖然關(guān)掉CACHE就可以解決一致性的問題,并且能夠減小程序開發(fā)的復(fù)雜度。但是一個(gè)高性能的系統(tǒng)是需要CACHE的,關(guān)掉CACHE會(huì)大大降低系統(tǒng)的性能。因此,本文僅討論在程序中加入代碼來克服一致性問題的方法。

可以采用以下幾種加入代碼的方法來解決一致性的問題?本文使用WIND RIVER公司的嵌入式實(shí)時(shí)多任務(wù)操作系統(tǒng)VxWORKS,下面的函數(shù)都是VxWORKS提供的?:

(1)對于時(shí)間上不是那么關(guān)鍵的程序段,可以先用下面的代碼維護(hù)數(shù)據(jù)CACHE的一致性。

cacheInvalidate ?DATA_CACHE? address? bytes??

/? 輸入緩

【嵌入式系統(tǒng)中的CACHE問題】相關(guān)文章:

嵌入式實(shí)時(shí)系統(tǒng)中的優(yōu)先級(jí)反轉(zhuǎn)問題03-18

嵌入式Linux系統(tǒng)中的GUI系統(tǒng)的研究與移植03-18

嵌入式系統(tǒng)中的Flash存儲(chǔ)管理03-18

UML 在嵌入式系統(tǒng)設(shè)計(jì)中的應(yīng)用03-18

嵌入式系統(tǒng)中“軟外設(shè)”的研究03-19

嵌入式系統(tǒng)中的內(nèi)存壓縮技術(shù)03-18

嵌入式系統(tǒng)中的線性Flash文件系統(tǒng)設(shè)計(jì)03-21

嵌入式系統(tǒng)中的PS/2接口設(shè)計(jì)11-22

液晶顯示在嵌入式系統(tǒng)中的應(yīng)用03-21

主站蜘蛛池模板: 精品精品国产高清a毛片牛牛| 日韩人妻无码精品—专区| 亚洲欧美日韩另类丝袜一区| 婷婷色国产精品视频一区| 一级毛片不卡片免费观看| 欧美xxxxx性喷潮| 四虎影视国产精品永久地址 | 久久久无码精品一区二区三区蜜桃 | 日韩AV无遮挡污污在线播放| 老司机亚洲精品影院| 手机在线国产精品| 国产无遮挡A片又黄又爽小直播 | 女同国产精品一区二区| 九九视频在线观看视频6| 新竹县| 亚洲青涩在线| 日本免费高清一本视频| 永胜县| 人妻丰满av无码中文字幕 | av国产剧情md精品麻豆| 久久国产精品萌白酱免费| 武冈市| 韩国三级l中文字幕无码| 欧美乱妇高清免费96欧美乱妇高清| 赤峰市| 亚洲综合极品香蕉久久网| 成人欧美一区二区三区黑人| 宁化县| 中文字幕巨大的乳专区| 国产精品99久久免费| 精品国产自| 国产精品一区二区香蕉| 亚洲最大av无码网站最新| 99视频精品全国免费品| 2018亚洲а∨天堂| 极品美女高潮呻吟国产剧情| 中文字幕无码免费久久99| 国产在线一区二区在线视频| 亚洲乱码一区av春药高潮 | 中文字幕免费视频| 久久无码av三级|