女人自慰AV免费观看内涵网,日韩国产剧情在线观看网址,神马电影网特片网,最新一级电影欧美,在线观看亚洲欧美日韩,黄色视频在线播放免费观看,ABO涨奶期羡澄,第一导航fulione,美女主播操b

電子發(fā)燒友App

硬聲App

0
  • 聊天消息
  • 系統(tǒng)消息
  • 評論與回復(fù)
登錄后你可以
  • 下載海量資料
  • 學(xué)習(xí)在線課程
  • 觀看技術(shù)視頻
  • 寫文章/發(fā)帖/加入社區(qū)
會員中心
創(chuàng)作中心

完善資料讓更多小伙伴認(rèn)識你,還能領(lǐng)取20積分哦,立即完善>

3天內(nèi)不再提示
創(chuàng)作
電子發(fā)燒友網(wǎng)>電子資料下載>嵌入式開發(fā)>詳談嵌入式編程需注意的Cache機制和原理

詳談嵌入式編程需注意的Cache機制和原理

2017-11-01 | rar | 0.6 MB | 次下載 | 1積分

資料介紹

1 Cache的原理
  Cache即高速緩存,它的出現(xiàn)基于兩種因素:一、CPU的速度和性能提高很快,而主存速度較低且價格高;二、程序執(zhí)行的局部性特點。將速度較快而容量有限的SRAM構(gòu)成Cache,可以盡可能發(fā)揮CPU的高速度。CPU與外設(shè)交換數(shù)據(jù)時經(jīng)常用到buffer(緩沖),這與緩存極其相似,只不過Cache是為了提高CPU和內(nèi)存之間的數(shù)據(jù)交換速度而設(shè)計,而buffer是為了提高內(nèi)存和硬盤(或其他I/O設(shè)備)之間的數(shù)據(jù)交換速度而設(shè)計的。
  Baidu快照(cache.baidu.com)就是一個緩存的例子,其作用與計算機CPU緩存有類似之處。 Cache的原理如圖1所示。
  詳談嵌入式編程需注意的Cache機制和原理
  在讀取內(nèi)存數(shù)據(jù)的同時CPU將數(shù)據(jù)保存到Cache數(shù)據(jù)區(qū),同時更新Cache映射表(保存地址信息,表示該地址的數(shù)據(jù)是否已在Cache數(shù)據(jù)區(qū),即是否命中)。這樣,CPU再次讀取該地址數(shù)據(jù)時,就可以直接從Cache提取。讀Cache的時間遠(yuǎn)小于直接讀內(nèi)存,可提高CPU讀取數(shù)據(jù)的效率。
  Cache數(shù)據(jù)區(qū)有成塊讀取的特性(Cache映射表保存的地址是塊地址,節(jié)省空間,也符合程序執(zhí)行的局部性特點)。Cache數(shù)據(jù)區(qū)遠(yuǎn)遠(yuǎn)小于內(nèi)存空間,就需要相應(yīng)的替代算法。比如最近最少使用算法,可將新數(shù)據(jù)替代使用頻率低的數(shù)據(jù),同時更新映射表信息。可以推想,Cache空間越大,命中率越高。
  寫內(nèi)存需要直接更新內(nèi)存。如果映射表存在該地址信息,還需要同時更新Cache數(shù)據(jù)區(qū)。這種Cache訪問方式就稱作“直寫”,Samsung公司ARM7微處理器S3CA510B就是這種方式。以下所討論的Cache問題除非特殊說明,否則都是“直寫”方式。
  2 嵌入式編程時需注意的問題
  2.1 訪問外設(shè)使用Cache的問題
  在訪問內(nèi)存時使用Cache是不會出現(xiàn)問題的,但如果訪問數(shù)據(jù)易變外設(shè)(數(shù)據(jù)不依賴于CPU寫操作而改變)時使用Cache就可能出現(xiàn)問題。問題在于外設(shè)數(shù)據(jù)的改變不僅僅依靠CPU寫操作,CPU第一次讀取外設(shè)數(shù)據(jù)時將外設(shè)的數(shù)據(jù)和地址信息保存到Cache,第二次讀取外設(shè)數(shù)據(jù)時就可能有問題出現(xiàn)。這是因為數(shù)據(jù)直接從Cache提取,而外設(shè)的數(shù)據(jù)可能有改變。
  因此,在訪問易變外設(shè)時要禁止使能Cache,直接讀取外設(shè)數(shù)據(jù)到CPU,而不經(jīng)過Cache的任何環(huán)節(jié),即保證不改變Cache映射表和Cache數(shù)據(jù)區(qū)內(nèi)容。
  S3C4510B的SYSCFG SFR(特殊功能寄存器)有用來控制Cache使能或不使能的,通過對該SFR的設(shè)置可暫時禁止Cache或重新恢復(fù)Cache功能。這樣就可以在讀取外設(shè)前禁止Cache,讀取結(jié)束后重新使能Cache,保證了外設(shè)數(shù)據(jù)讀取的正確性。寫數(shù)據(jù)到外設(shè)時采用“直寫”方式,更沒有問題。
  2.2 開關(guān)Cache引發(fā)的新問題
  在Cache開關(guān)期間,如果有另一個進程/任務(wù)訪問內(nèi)存,在此期間寫內(nèi)存并且該內(nèi)存在Cache中已有映射(注意,它也是被禁止Cache的,所以它不會同時更新Cache數(shù)據(jù)區(qū)的內(nèi)容),那么在Cache重新使能之后Cache數(shù)據(jù)區(qū)的信息已經(jīng)過時了,而Cache映射表還是Cache禁止之前的狀態(tài),如果CPU此時讀數(shù)據(jù)就會得到過時的數(shù)據(jù)。這樣看來,引發(fā)的問題范圍更廣了,連內(nèi)存的數(shù)據(jù)讀寫正確性都無法保證。與內(nèi)存泄漏的影響來比較,內(nèi)存泄漏如果是一顆定時炸彈,那么Cache問題就可以說是隨時隨地都可能踩上的雷區(qū),因為程序一旦開始就可能引發(fā)爆炸。
  如圖2所示,Cache使能時Cache映射表和Cache數(shù)據(jù)區(qū)保存了內(nèi)存的數(shù)據(jù)信息,這是CPU訪問內(nèi)存時通過圖中實線箭頭通路實現(xiàn)的。內(nèi)存的信息可以與Cache的信息保持一致。
  詳談嵌入式編程需注意的Cache機制和原理
  Cache禁止時的情況有所變化。由圖2中虛線箭頭通路直接進行內(nèi)存訪問,且地址0x00處的數(shù)據(jù)由55變?yōu)锳A,但Cache區(qū)的信息仍為之前的狀態(tài)。很明顯,Cache的數(shù)據(jù)是應(yīng)該廢棄的,但是Cache映射表仍保存0x00的地址信息。Cache重新使能后,CPU再次讀取0x00地址的數(shù)據(jù),由于Cache仍是命中,直接從Cache數(shù)據(jù)區(qū)中提取數(shù)據(jù),這樣讀出來的數(shù)據(jù)就是0x55了。
  由S3C4510B數(shù)據(jù)手冊第4節(jié)的第21頁可知:通過對SYSCFG寄存器的CE位置1或清0可使能/關(guān)閉Cache,但是Cache沒有內(nèi)容自動刷新功能,在重新使能Cache時需考慮Cache數(shù)據(jù)的正確性。

下載該資料的人也在下載 下載該資料的人還在閱讀
更多 >

評論

查看更多

下載排行

本周

  1. 1TC358743XBG評估板參考手冊
  2. 1.36 MB  |  330次下載  |  免費
  3. 2開關(guān)電源基礎(chǔ)知識
  4. 5.73 MB  |  6次下載  |  免費
  5. 3100W短波放大電路圖
  6. 0.05 MB  |  4次下載  |  3 積分
  7. 4嵌入式linux-聊天程序設(shè)計
  8. 0.60 MB  |  3次下載  |  免費
  9. 5基于FPGA的光纖通信系統(tǒng)的設(shè)計與實現(xiàn)
  10. 0.61 MB  |  2次下載  |  免費
  11. 6基于FPGA的C8051F單片機開發(fā)板設(shè)計
  12. 0.70 MB  |  2次下載  |  免費
  13. 751單片機窗簾控制器仿真程序
  14. 1.93 MB  |  2次下載  |  免費
  15. 8基于51單片機的RGB調(diào)色燈程序仿真
  16. 0.86 MB  |  2次下載  |  免費

本月

  1. 1OrCAD10.5下載OrCAD10.5中文版軟件
  2. 0.00 MB  |  234315次下載  |  免費
  3. 2555集成電路應(yīng)用800例(新編版)
  4. 0.00 MB  |  33564次下載  |  免費
  5. 3接口電路圖大全
  6. 未知  |  30323次下載  |  免費
  7. 4開關(guān)電源設(shè)計實例指南
  8. 未知  |  21548次下載  |  免費
  9. 5電氣工程師手冊免費下載(新編第二版pdf電子書)
  10. 0.00 MB  |  15349次下載  |  免費
  11. 6數(shù)字電路基礎(chǔ)pdf(下載)
  12. 未知  |  13750次下載  |  免費
  13. 7電子制作實例集錦 下載
  14. 未知  |  8113次下載  |  免費
  15. 8《LED驅(qū)動電路設(shè)計》 溫德爾著
  16. 0.00 MB  |  6653次下載  |  免費

總榜

  1. 1matlab軟件下載入口
  2. 未知  |  935054次下載  |  免費
  3. 2protel99se軟件下載(可英文版轉(zhuǎn)中文版)
  4. 78.1 MB  |  537796次下載  |  免費
  5. 3MATLAB 7.1 下載 (含軟件介紹)
  6. 未知  |  420026次下載  |  免費
  7. 4OrCAD10.5下載OrCAD10.5中文版軟件
  8. 0.00 MB  |  234315次下載  |  免費
  9. 5Altium DXP2002下載入口
  10. 未知  |  233046次下載  |  免費
  11. 6電路仿真軟件multisim 10.0免費下載
  12. 340992  |  191185次下載  |  免費
  13. 7十天學(xué)會AVR單片機與C語言視頻教程 下載
  14. 158M  |  183278次下載  |  免費
  15. 8proe5.0野火版下載(中文版免費下載)
  16. 未知  |  138040次下載  |  免費