两个人的电影免费视频_国产精品久久久久久久久成人_97视频在线观看播放_久久这里只有精品777_亚洲熟女少妇二三区_4438x8成人网亚洲av_内谢国产内射夫妻免费视频_人妻精品久久久久中国字幕

Cache存取的控制方法及裝置的制作方法

文檔序號(hào):6338298閱讀:240來源:國知局
專利名稱:Cache存取的控制方法及裝置的制作方法
技術(shù)領(lǐng)域
本發(fā)明涉及通信領(lǐng)域,具體而言,涉及一種緩存(Cache)存取的控制方法及裝置。
背景技術(shù)
Cache的應(yīng)用可以大幅提高程序執(zhí)行效率,并減少對(duì)外部總線以及外部存儲(chǔ)器的訪問。但是,Cache的工作一般情況下是不可控的,這就給某些實(shí)時(shí)性應(yīng)用帶來了問題。為了減少增加Cache而帶來的時(shí)間不確定問題,有些實(shí)時(shí)性系統(tǒng)甚至關(guān)掉Cache來滿足實(shí)際需要,更有的實(shí)時(shí)操作系統(tǒng)將Cache也歸入實(shí)時(shí)性能殺手(RealTime-Killer)的行列。如果可以使Cache能夠按照需求動(dòng)態(tài)控制,就可以避免上述問題,應(yīng)用系統(tǒng)可以根據(jù)應(yīng)用場景的不同動(dòng)態(tài)配置好Cache中的數(shù)據(jù),使其工作情況完全可控,進(jìn)而達(dá)到了既滿足需求又不喪失實(shí)時(shí)性的目的。一般Cache控制的方式是開辟特定的隨機(jī)接入存儲(chǔ)器(Random Access Memory, 簡稱為RAM)區(qū)間,將該區(qū)間設(shè)為可Cache的,這樣產(chǎn)生的需快速存取的代碼段和程序段都需要在編譯的時(shí)候放置到預(yù)先設(shè)為可Cache的固定地址空間中去,從而達(dá)到快速存取的目的。該方案的好處就在于操作更簡單,Cache控制器只需要具備地址的Cache Mask功能即可實(shí)現(xiàn),能夠達(dá)到Cache控制的目的,但是該方法不能靈活控制Cache內(nèi)容。例如,Linux內(nèi)核就是使用分配特定地址區(qū)間的方式來使特定的數(shù)據(jù)或指令放置到可Cache空間中去的。相應(yīng)的字段(Action)關(guān)鍵字為. data. read_mostly. data. cacheline_aligned圖1是根據(jù)相關(guān)技術(shù)的普通Cache控制方式的示意圖,如圖1所示,在普通Cache 的控制方式中,程序的代碼段和數(shù)據(jù)段可以加載到不同的RAM區(qū)間或者加載到連續(xù)的RAM 區(qū)間。這些區(qū)間可以統(tǒng)一設(shè)為可Cache的或者不可Cache的。在普通Cache的控制方式中沒有Cache段的概念。用戶不容易控制特定程序或特定數(shù)據(jù)一定存放在Cache中。圖2是根據(jù)相關(guān)技術(shù)的Cache段方式的示意圖,如圖1所示,在特定Cache段的處理方式中,程序中的需要經(jīng)常訪問的指令和數(shù)據(jù)被統(tǒng)一放置到特定的段中,并進(jìn)而被放置到特定的地址區(qū)間中去,該地址區(qū)間為可Cache的內(nèi)存空間,這樣,就可以實(shí)現(xiàn)某些指令和數(shù)據(jù)的靜態(tài)Cache控制的方式,使其可以在程序編譯和加載時(shí)被確切放置在Cache中。Cache段方式在一定程度上解決了特定指令和數(shù)據(jù)的存放問題,使其可以人工控制放置在Cache中,但是該方法有一定的局限性數(shù)據(jù)是靜態(tài)控制的,只能在編譯的時(shí)候就設(shè)定好,在程序加載時(shí)放置到Cache空間中,其不能實(shí)現(xiàn)動(dòng)態(tài)控制的目的,并且被放置到 Cache中之后,還有被置換出來的隱患。申請(qǐng)?zhí)枮?00810156535. 2名稱為《一種面向嵌入式應(yīng)用的軟件可控Cache的實(shí)現(xiàn)方法》的專利申請(qǐng)?zhí)峁┝艘环NCache的控制方法,圖3是根據(jù)相關(guān)技術(shù)的硬件Cache 控制器方式進(jìn)行Cache控制的示意圖,如圖3所示,其實(shí)際實(shí)現(xiàn)時(shí)為ARM (Advanced RISC Machines)另外增加了一個(gè)緩存控制器(Cache控制器),該方案具有以下局限性一方面主中央控制器(Central Processor Unit,簡稱為CPU)局限于ARM控制器,另外一方面還需要另外增加Cache控制器這樣的硬件設(shè)備,操作方法也顯繁瑣和復(fù)雜。具體地,該方案雖然確實(shí)也可以實(shí)現(xiàn)Cache控制的功能,其優(yōu)點(diǎn)在于另外增加的Cache控制器邏輯可以實(shí)現(xiàn)某應(yīng)用Cache存取的數(shù)據(jù)統(tǒng)計(jì)和匯總,并根據(jù)匯總結(jié)果得到三類不同的數(shù)據(jù)(CN,CSl, CS2), 該分類信息再重新輸入給Cache硬件控制器,使其對(duì)于這三類信息分別處理,不通過Cache 或者直接被鎖定到Cache中并進(jìn)而提高系統(tǒng)執(zhí)行效率,但是該方法基本仍屬于靜態(tài)控制方式,針對(duì)特定應(yīng)用產(chǎn)生特定數(shù)據(jù)來配置Cache控制器。由于該方案另外增加了 Cache控制器硬件,并且,該設(shè)計(jì)基于ARM7CPU,不方便向其他平臺(tái)進(jìn)行移植和擴(kuò)展。綜上所述,圖1所示的方案中沒有任何Cache控制的策略,Cache執(zhí)行對(duì)上層應(yīng)用完全透明,用戶無法把指定的需要加速處理的程序和數(shù)據(jù)告知Cache控制器。圖2所示的方案中,只能在程序加載時(shí)將需要加速的數(shù)據(jù)和指令放置到固定的地址區(qū)間,屬于靜態(tài)控制,在軟件執(zhí)行過程中不能動(dòng)態(tài)修改,數(shù)據(jù)和指令如果在加載時(shí)被鎖定到Cache中,那么在其不需要頻繁讀寫時(shí)也不能被釋放,這樣,減少了 Cache實(shí)際可用空間, 造成Cache利用率的下降。如果在加載時(shí)數(shù)據(jù)和指令沒有被鎖定到Cache中,則將造成頻繁讀寫指令和數(shù)據(jù)被其他非頻繁指令數(shù)據(jù)替換出去的危險(xiǎn)。圖3所示的方案中,另外增加了 Cache硬件控制器,這和目前的主流Cache控制器設(shè)計(jì)存在兼容性的問題,另外,需要根據(jù)特定應(yīng)用來實(shí)際統(tǒng)計(jì)Cache使用情況,這增加了附加操作,不能靈活加以使用,并且其需要根據(jù)特定應(yīng)用產(chǎn)生特定的分類信息,本質(zhì)上還屬于靜態(tài)控制的范疇,另外,由于該方案是硬件設(shè)計(jì),對(duì)特定的硬件平臺(tái)(例如ARM)有比較大的依賴性,不方便向其他平臺(tái)移植和擴(kuò)展。

發(fā)明內(nèi)容
本發(fā)明的主要目的在于提供一種Cache存取的控制方案,以至少解決上述的相關(guān)技術(shù)中不能靈活進(jìn)行Cache存取的動(dòng)態(tài)控制的問題。根據(jù)本發(fā)明的一個(gè)方面,提供了一種Cache存取的控制方法,包括處理器獲取執(zhí)行周期中的關(guān)鍵指令和/或數(shù)據(jù);在執(zhí)行周期中,處理器將指令和/或數(shù)據(jù)存儲(chǔ)到Cache 中,并鎖定指令和/或數(shù)據(jù)。根據(jù)本發(fā)明的另一方面,提供了一種Cache存取的控制裝置,包括獲取模塊,用于獲取執(zhí)行周期中的關(guān)鍵指令和/或數(shù)據(jù);存儲(chǔ)模塊,用于在執(zhí)行周期中將指令和/或數(shù)據(jù)存儲(chǔ)到Cache中;鎖定模塊,用于鎖定指令和/或數(shù)據(jù)。通過本發(fā)明,采用在執(zhí)行周期內(nèi),使用軟件的方式動(dòng)態(tài)地將常用的指令和數(shù)據(jù)存儲(chǔ)到Cache中,并鎖定存儲(chǔ)的指令和數(shù)據(jù)的方式,解決了相關(guān)技術(shù)中不能靈活進(jìn)行Cache存取的動(dòng)態(tài)控制的問題,進(jìn)而達(dá)到了動(dòng)態(tài)Cache存取的靈活控制的效果。


此處所說明的附圖用來提供對(duì)本發(fā)明的進(jìn)一步理解,構(gòu)成本申請(qǐng)的一部分,本發(fā)明的示意性實(shí)施例及其說明用于解釋本發(fā)明,并不構(gòu)成對(duì)本發(fā)明的不當(dāng)限定。在附圖中圖1是根據(jù)相關(guān)技術(shù)的普通Cache控制方式的示意圖;圖2是根據(jù)相關(guān)技術(shù)的Cache段方式的示意圖3是根據(jù)相關(guān)技術(shù)的硬件Cache控制器方式進(jìn)行Cache控制的示意圖;圖4是根據(jù)本發(fā)明實(shí)施例的Cache存取的控制方法的流程圖;圖5是根據(jù)本發(fā)明實(shí)施例的軟件動(dòng)態(tài)Cache控制方式的示意圖;圖6是根據(jù)本發(fā)明實(shí)施例的Cache RAM動(dòng)態(tài)變化情況的示意圖;圖7是根據(jù)本發(fā)明實(shí)施例三的硬件系統(tǒng)的示意圖;圖8是根據(jù)本發(fā)明實(shí)施例的清lock標(biāo)志流程圖;圖9是根據(jù)本發(fā)明實(shí)施例的寫Cache tag RAM的流程圖;圖10是根據(jù)本發(fā)明實(shí)施例的寫Cache RAM流程圖;圖11是根據(jù)本發(fā)明實(shí)施例的Cache存取的控制裝置的結(jié)構(gòu)框圖。
具體實(shí)施例方式下文中將參考附圖并結(jié)合實(shí)施例來詳細(xì)說明本發(fā)明。需要說明的是,在不沖突的情況下,本申請(qǐng)中的實(shí)施例及實(shí)施例中的特征可以相互組合。實(shí)施例一本發(fā)明實(shí)施例提供了一種Cache存取的控制方法,圖4是根據(jù)本發(fā)明實(shí)施例的 Cache存取的控制方法的流程圖,如圖4所示,該方法包括步驟S402,處理器獲取執(zhí)行周期中常用的指令和/或數(shù)據(jù);步驟S404,在執(zhí)行周期中,處理器將該指令和/或數(shù)據(jù)存儲(chǔ)到Cache中,并鎖定該指令和/或數(shù)據(jù)。本實(shí)施例中,在執(zhí)行周期內(nèi),使用軟件的方式動(dòng)態(tài)地將常用的指令和數(shù)據(jù)存儲(chǔ)到 Cache中,并鎖定存儲(chǔ)的指令和數(shù)據(jù),從而實(shí)現(xiàn)了動(dòng)態(tài)Cache存取的靈活控制。其中,常用的指令和數(shù)據(jù)即為在該執(zhí)行周期下經(jīng)常需要讀寫的指令和數(shù)據(jù)。需要說明的是,上述處理器可以是CPU或數(shù)字信號(hào)處理器(Digital Signal I^rocessor,簡稱為DSP)等器件。在本發(fā)明實(shí)施例的一個(gè)優(yōu)選實(shí)現(xiàn)方式中,步驟S404可以包括處理器將指令存儲(chǔ)到Cache的指令緩存(I-Cache)標(biāo)簽(TAG)RAM中和I-Cache RAM中,并鎖定Cache中存儲(chǔ)該指令的區(qū)域;和/或處理器將數(shù)據(jù)存儲(chǔ)到Cache的數(shù)據(jù)緩存(D-Cache)TAG RAM和數(shù)據(jù)緩存隨機(jī)接入存儲(chǔ)器D-Cache RAM中,并鎖定Cache中存儲(chǔ)該數(shù)據(jù)的區(qū)域。在本發(fā)明實(shí)施例的另一個(gè)優(yōu)選實(shí)現(xiàn)方式中,鎖定指令和/或數(shù)據(jù)可以包括處理器指示該Cache對(duì)應(yīng)的Cache控制器鎖定上述指令和/或數(shù)據(jù)。其中,該Cache控制器支持行鎖定或支持路鎖定。當(dāng)緩存控制器支持行鎖定時(shí),處理器指示Cache對(duì)應(yīng)的緩存控制器鎖定指令和/ 或數(shù)據(jù)可以包括處理器指示緩存控制器鎖定Cache中存儲(chǔ)指令和/或數(shù)據(jù)的行;當(dāng)緩存控制器支持路鎖定時(shí),處理器指示Cache對(duì)應(yīng)的緩存控制器鎖定指令和/或數(shù)據(jù)可以包括 處理器指示緩存控制器鎖定Cache中存儲(chǔ)指令和/或數(shù)據(jù)的路。在本發(fā)明實(shí)施例的另一個(gè)優(yōu)選實(shí)現(xiàn)方式中,在上述執(zhí)行周期結(jié)束之后,可以釋放 Cache中的指令和/或數(shù)據(jù)。實(shí)施例二相對(duì)于相關(guān)技術(shù)中目前Cache段控制的方法和現(xiàn)狀,本實(shí)施例提出了一種新的簡單易行的動(dòng)態(tài)Cache控制的軟件實(shí)現(xiàn)方法,該方法在大部分情況下并不需要修改原有的Cache硬件,也不需要增加另外的Cache控制器,并且也不依賴于具體的CPU,該方法基本符合和遵循目前的Cache控制器的主流設(shè)計(jì),實(shí)際操作較為簡單。本實(shí)施例采用軟件實(shí)現(xiàn),沒有增加其他的硬件設(shè)備,另外,本實(shí)施例還采用動(dòng)態(tài)控制方式,這樣可以最大限度地發(fā)揮Cache的利用率,從而克服了圖2所示的靜態(tài)控制方式的缺點(diǎn)。并且,本實(shí)施例沒有采用圖3中的硬件實(shí)現(xiàn),而是采用軟件方式找到某一特定應(yīng)用的關(guān)鍵算法和函數(shù),從而避免了增加硬件的成本。在本實(shí)施例中,將經(jīng)常需要讀寫的指令和數(shù)據(jù)動(dòng)態(tài)地放置到Cache中,使其可以在特定的執(zhí)行周期下保留在Cache中而不被置換,進(jìn)而提高了系統(tǒng)的執(zhí)行效率。下面對(duì)本實(shí)施例的實(shí)現(xiàn)過程進(jìn)行說明。圖5是根據(jù)本發(fā)明實(shí)施例的軟件動(dòng)態(tài)Cache控制方式的示意圖,圖6是根據(jù)本發(fā)明實(shí)施例的Cache RAM動(dòng)態(tài)變化情況的示意圖。第1執(zhí)行周期中,將該周期需要頻繁讀寫的指令和數(shù)據(jù)存放到Cache中并鎖定該數(shù)據(jù),在第2個(gè)執(zhí)行周期中,第1執(zhí)行周期中放置在 Cache中并被鎖定的程序段/數(shù)據(jù)段可能已經(jīng)不需要經(jīng)常讀寫,此時(shí)可以釋放Cache中被鎖定數(shù)據(jù)和指令,并由程序動(dòng)態(tài)地將第2周期下頻繁讀寫的指令和數(shù)據(jù)內(nèi)容放置在Cache中以提高該程序執(zhí)行周期的執(zhí)行效率,后續(xù)周期的操作方式與此類似。采用上述方式,需要鎖定的數(shù)據(jù)大小根據(jù)實(shí)際應(yīng)用自由配置,而其他Cache空間中的內(nèi)容則不受影響。當(dāng)沒有任何鎖定數(shù)據(jù)時(shí),Cache控制器和普通應(yīng)用完全相同,當(dāng)全部Cache RAM都被鎖定后,則此時(shí) Cache可以當(dāng)作緊密式耦合內(nèi)存(Tightly Coupled Memory,簡稱為TCM)使用。由于本實(shí)施例采用的是動(dòng)態(tài)配置,因此,不會(huì)造成使用空間上的浪費(fèi)。實(shí)施例三圖7是根據(jù)本發(fā)明實(shí)施例三的硬件系統(tǒng)的示意圖,如圖7所示,CPU可以直接控制 Cache中的數(shù)據(jù),使其真正達(dá)到軟件可控的目的。在本發(fā)明實(shí)施例中,需要現(xiàn)有的硬件具有以下功能=Cache控制器能夠支持行鎖定、路鎖定或者其他鎖定功能,優(yōu)選地,Cache控制器能夠支持行鎖定,因?yàn)槠渌i定的方式下,鎖定的數(shù)據(jù)或指令的空間顆粒度較大,可能會(huì)導(dǎo)致Cache利用率下降;Cache tag (TAG) RAM和Cache RAM能夠直接讀寫。本實(shí)施例的Cache存取的控制方法的實(shí)現(xiàn)步驟包括步驟101 準(zhǔn)備相應(yīng)算法中需要加速的指令和數(shù)據(jù)段空間,如果有多個(gè)算法,則需要?jiǎng)澐殖绦驁?zhí)行周期,定義每個(gè)執(zhí)行周期中需要加速的指令和數(shù)據(jù)段空間(該步驟可以采用算法靜態(tài)研究或者統(tǒng)計(jì)某函數(shù)被實(shí)際加載和執(zhí)行的次數(shù)來完成)。步驟102 修改原執(zhí)行程序,在每個(gè)程序執(zhí)行周期前增加步驟103-107。步驟103 關(guān)閉 I-Cache 和 D-Cache。步驟104 釋放原Cache tag RAM中所有被lock行,將其有效(valid)標(biāo)志設(shè)為無效,鎖定(lock)標(biāo)志設(shè)為無效。步驟105 根據(jù)當(dāng)前Cache配置(例如,路數(shù)、集Get)大小、Cache行(Line)大小、Cache置換策略等),將需要加速的指令段從當(dāng)前指令空間讀出并寫入I-Cache tag RAM(對(duì)應(yīng)地址)以及I-Cache RAM(對(duì)應(yīng)內(nèi)容)中,并將相應(yīng)行l(wèi)ock標(biāo)志設(shè)為有效。將 valid標(biāo)志也設(shè)為有效。步驟106 根據(jù)當(dāng)前Cache配置(例如,路數(shù)、Set大小、Cacheline大小、Cache 置換策略等),將需要加速的數(shù)據(jù)段從當(dāng)前數(shù)據(jù)空間讀出并寫入D-Cache tag RAM(對(duì)應(yīng)地址)以及D-Cache RAM(對(duì)應(yīng)內(nèi)容)中,并將相應(yīng)行l(wèi)ock標(biāo)志設(shè)為有效。將valid標(biāo)志也設(shè)為有效。需要說明的是,步驟105和步驟106的順序可以置換,步驟105和步驟106也可以僅采用其中的一個(gè)步驟,然后就進(jìn)行到步驟107。步驟107 使能 I-Cache 和 D-Cache。步驟108 執(zhí)行相應(yīng)算法或程序。步驟109 重復(fù)步驟103至步驟108,直到所有算法都執(zhí)行完成。上述步驟中,步驟104至步驟106相對(duì)于現(xiàn)有技術(shù)是進(jìn)行了改進(jìn)和創(chuàng)新的,步驟 101中的算法對(duì)應(yīng)執(zhí)行周期的劃分也是創(chuàng)新的。由于數(shù)據(jù)Cache和指令Cache的處理方式基本相同,因此,下面僅以數(shù)據(jù)Cache為例說明一下步驟104和步驟106的詳細(xì)實(shí)現(xiàn)細(xì)節(jié)。該示例只針對(duì)特定Cache配置下的操作步驟(例如,選擇多路組相聯(lián)模式,選擇最近最少用(Least Recently Used,簡稱為LRU) 替換策略,每個(gè)Cache Line中的基本單位為32bit地址等),在實(shí)際使用時(shí),可以以實(shí)際的 Cache硬件配置為準(zhǔn)來選擇合適的操作步驟。步驟104包括清除掉所有被lock的tag RAM數(shù)據(jù),需要說明的是,在實(shí)際使用時(shí), 可以使用Cache的FLUSH (清除)動(dòng)作由硬件來完成清除Cache tag RAM或者在找到?jīng)]有 lock的地址時(shí)就自動(dòng)停止。圖8是根據(jù)本發(fā)明實(shí)施例的清lock標(biāo)志流程圖,如圖8所示, 該流程包括步驟801,地址 addr = 0。步驟802,讀取該地址Cache tag RAM數(shù)據(jù)。步驟803,該地址是否有效,S卩,valid = 1,以及是否已經(jīng)鎖定,S卩,Lock = 1,如果均為是,則進(jìn)行步驟804,否則,進(jìn)行步驟805 ;步驟804,清除Lock位和valid位。步驟 805,addr+ = 1。步驟806,當(dāng)前地址是否已經(jīng)為標(biāo)簽大小,即,判斷addr = tag_RAMSUE是否成立, 如果是,則流程結(jié)束,否則,返回步驟802。步驟106可以包括以下步驟106_1和步驟106_2。步驟106_1 在D-Cache tag RAM中建立需加速的數(shù)據(jù)段。圖9是根據(jù)本發(fā)明實(shí)施例的寫Cache tag RAM的流程圖,如圖9所示,該流程包括步驟901,地址為數(shù)據(jù)開始,addr = DATA_START。步驟902,Cache 中的行為 0,line = 0。步驟903,Cache 中的路為 0,way = 0。步驟904,產(chǎn)生addr地址對(duì)應(yīng)的tag地址數(shù)據(jù),并設(shè)lock標(biāo)志為1,valid標(biāo)志為 1。艮口,data = tag_data (addr, 1,1)。步驟905,將數(shù)據(jù)(data)寫到當(dāng)前l(fā)ine和way對(duì)應(yīng)的Cache tagRAM中。PM 906, addr+ = cache_line_size。步驟907,判斷地址addr是否小于數(shù)據(jù)末端,即判斷addr < DATA_END是否成立, 如果是,則進(jìn)行步驟908,否則,流程結(jié)束。
步驟 908,way+= 1。步驟909,判斷當(dāng)前路way是否大于或等于最大路值,即,判斷way > = MAX_WAY是否成立,如果是,則進(jìn)行步驟910,否則,返回步驟904。步驟910,line+= 1。步驟911,判斷當(dāng)前行l(wèi)ine是否大于或等于最大行值,即,判斷l(xiāng)ine > = MAX_ LINE是否成立,如果是,則流程結(jié)束,否則,返回步驟903。步驟106_2 在D-Cache RAM中建立需加速數(shù)據(jù)段。圖10是根據(jù)本發(fā)明實(shí)施例的寫Cache RAM流程圖,如圖10所示,該流程包括步驟1001,地址為數(shù)據(jù)開始,addr = DATA_START。步驟1002,Cache 中的行為 0,line = 0。步驟1003,Cache 中的路為 0,way = 0。步驟1004,讀出addr地址對(duì)應(yīng)的長度為cache_line_size的全部數(shù)據(jù)并存入d_ data[]數(shù)組中。步驟1005,將d_data[]數(shù)組的全部內(nèi)容寫到當(dāng)前l(fā)ine和way對(duì)應(yīng)的Cache RAM 中。PM 1006, addr+ = cache_line_size。步驟1007,判斷地址addr是否小于數(shù)據(jù)末端,即判斷addr < DATA_END是否成立, 如果是,則進(jìn)行步驟1008,否則,流程結(jié)束。步驟 1008,way+ = 1。步驟1009,判斷當(dāng)前路way是否大于或等于最大路值,即,判斷way >= MAX_WAY 是否成立,如果是,則進(jìn)行步驟1010,否則,返回步驟1004。步驟1010,line+= 1。步驟1011,判斷當(dāng)前行l(wèi)ine是否大于或等于最大行值,S卩,判斷l(xiāng)ine >=MAX_ LINE是否成立,如果是,則流程結(jié)束,否則,返回步驟1003。需要說明的是,上述實(shí)例僅是對(duì)本發(fā)明實(shí)施例所述方法的示例性的說明,根據(jù)這些例子,本領(lǐng)域技術(shù)人員很容易想到在本發(fā)明的思想下對(duì)其進(jìn)行修改和擴(kuò)充。例如,針對(duì)不同的Cache置換策略或者不同的組策略來修改程序流程,本發(fā)明實(shí)施例主要是提供動(dòng)態(tài)控制Cache的思路和方法,該思想和方法并不局限于上面實(shí)施例,還應(yīng)包含其他類似的符合動(dòng)態(tài)Cache控制思路的用例。實(shí)施例四本發(fā)明實(shí)施例還提供了一種Cache存取的控制裝置,該裝置可以用于實(shí)現(xiàn)上述方法,并且,該裝置可以用于CPU或DSP等處理器中。圖11是根據(jù)本發(fā)明實(shí)施例的Cache存取的控制裝置的結(jié)構(gòu)框圖,如圖11所示,該裝置包括獲取模塊1102,用于獲取執(zhí)行周期中常用的指令和/或數(shù)據(jù);存儲(chǔ)模塊1104,耦合至獲取模塊1102,用于在執(zhí)行周期中將指令和/或數(shù)據(jù)存儲(chǔ)到Cache中;鎖定模塊1106, 耦合至存儲(chǔ)模塊1104,用于鎖定指令和/或數(shù)據(jù)。在本發(fā)明實(shí)施例的一個(gè)優(yōu)選實(shí)例中,存儲(chǔ)模塊1104用于將指令存儲(chǔ)到Cache的指令緩存標(biāo)簽隨機(jī)接入存儲(chǔ)器I-Cache TAG RAM和指令緩存隨機(jī)接入存儲(chǔ)器I-Cache RAM 中,鎖定模塊1106用于鎖定Cache中存儲(chǔ)指令的區(qū)域;和/或存儲(chǔ)模塊1104用于將數(shù)據(jù)存儲(chǔ)到Cache的數(shù)據(jù)緩存標(biāo)簽隨機(jī)接入存儲(chǔ)器D-Cache TAG RAM和數(shù)據(jù)緩存隨機(jī)接入存儲(chǔ)器 D-Cache RAM中,鎖定模塊1106用于鎖定Cache中存儲(chǔ)數(shù)據(jù)的區(qū)域。其中,鎖定模塊1106用于指示Cache對(duì)應(yīng)的緩存控制器鎖定指令和/或數(shù)據(jù)。在本發(fā)明實(shí)施例的另一個(gè)優(yōu)選實(shí)例中,緩存控制器支持行鎖定或支持路鎖定,當(dāng)緩存控制器支持行鎖定時(shí),鎖定模塊1106用于指示緩存控制器鎖定Cache中存儲(chǔ)指令和/ 或數(shù)據(jù)的行;當(dāng)緩存控制器支持路鎖定時(shí),鎖定模塊1106用于指示緩存控制器鎖定Cache 中存儲(chǔ)指令和/或數(shù)據(jù)的路。綜上所述,本發(fā)明實(shí)施例在執(zhí)行周期內(nèi),使用軟件的方式動(dòng)態(tài)地將常用的指令和數(shù)據(jù)存儲(chǔ)到Cache中,并鎖定存儲(chǔ)的指令和數(shù)據(jù),從而達(dá)到了動(dòng)態(tài)Cache存取的靈活控制的效果。顯然,本領(lǐng)域的技術(shù)人員應(yīng)該明白,上述的本發(fā)明的各模塊或各步驟可以用通用的計(jì)算裝置來實(shí)現(xiàn),它們可以集中在單個(gè)的計(jì)算裝置上,或者分布在多個(gè)計(jì)算裝置所組成的網(wǎng)絡(luò)上,可選地,它們可以用計(jì)算裝置可執(zhí)行的程序代碼來實(shí)現(xiàn),從而,可以將它們存儲(chǔ)在存儲(chǔ)裝置中由計(jì)算裝置來執(zhí)行,并且在某些情況下,可以以不同于此處的順序執(zhí)行所示出或描述的步驟,或者將它們分別制作成各個(gè)集成電路模塊,或者將它們中的多個(gè)模塊或步驟制作成單個(gè)集成電路模塊來實(shí)現(xiàn)。這樣,本發(fā)明不限制于任何特定的硬件和軟件結(jié)合。以上所述僅為本發(fā)明的優(yōu)選實(shí)施例而已,并不用于限制本發(fā)明,對(duì)于本領(lǐng)域的技術(shù)人員來說,本發(fā)明可以有各種更改和變化。凡在本發(fā)明的精神和原則之內(nèi),所作的任何修改、等同替換、改進(jìn)等,均應(yīng)包含在本發(fā)明的保護(hù)范圍之內(nèi)。
權(quán)利要求
1.一種緩存Cache存取的控制方法,其特征在于,包括 處理器獲取執(zhí)行周期中的關(guān)鍵指令和/或數(shù)據(jù);在所述執(zhí)行周期中,所述處理器將所述指令和/或所述數(shù)據(jù)存儲(chǔ)到Cache中,并鎖定所述指令和/或所述數(shù)據(jù)。
2.根據(jù)權(quán)利要求1所述的方法,其特征在于,所述處理器將所述指令和/或所述數(shù)據(jù)存儲(chǔ)到Cache中,并鎖定所述指令和/或所述數(shù)據(jù)包括所述處理器將所述指令存儲(chǔ)到所述Cache的指令緩存標(biāo)簽隨機(jī)接入存儲(chǔ)器I-Cache TAG RAM和指令緩存隨機(jī)接入存儲(chǔ)器I-Cache RAM中,并鎖定所述Cache中存儲(chǔ)所述指令的區(qū)域;和/或所述處理器將所述數(shù)據(jù)存儲(chǔ)到所述Cache的數(shù)據(jù)緩存標(biāo)簽隨機(jī)接入存儲(chǔ)器D-Cache TAG RAM和數(shù)據(jù)緩存隨機(jī)接入存儲(chǔ)器D-Cache RAM中,并鎖定所述Cache中存儲(chǔ)所述數(shù)據(jù)的區(qū)域。
3.根據(jù)權(quán)利要求1所述的方法,其特征在于,鎖定所述指令和/或所述數(shù)據(jù)包括 所述處理器指示所述Cache對(duì)應(yīng)的緩存控制器鎖定所述指令和/或所述數(shù)據(jù)。
4.根據(jù)權(quán)利要求3所述的方法,其特征在于,所述緩存控制器支持行鎖定或支持路鎖定。
5.根據(jù)權(quán)利要求4所述的方法,其特征在于,所述處理器指示所述Cache對(duì)應(yīng)的緩存控制器鎖定所述指令和/或所述數(shù)據(jù)包括所述處理器指示所述緩存控制器鎖定所述Cache中存儲(chǔ)所述指令和/或所述數(shù)據(jù)的行;或者所述處理器指示所述緩存控制器鎖定所述Cache中存儲(chǔ)所述指令和/或所述數(shù)據(jù)的路。
6.根據(jù)權(quán)利要求1至5中任一項(xiàng)所述的方法,其特征在于,在所述執(zhí)行周期結(jié)束之后,釋放所述Cache中的所述指令和/或所述數(shù)據(jù)。
7.一種緩存Cache存取的控制裝置,其特征在于,包括 獲取模塊,用于獲取執(zhí)行周期中的關(guān)鍵指令和/或數(shù)據(jù);存儲(chǔ)模塊,用于在所述執(zhí)行周期中將所述指令和/或所述數(shù)據(jù)存儲(chǔ)到Cache中; 鎖定模塊,用于鎖定所述指令和/或所述數(shù)據(jù)。
8.根據(jù)權(quán)利要求7所述的裝置,其特征在于,所述存儲(chǔ)模塊用于將所述指令存儲(chǔ)到所述Cache的指令緩存標(biāo)簽隨機(jī)接入存儲(chǔ)器 I-Cache TAG RAM和指令緩存隨機(jī)接入存儲(chǔ)器I-Cache RAM中,所述鎖定模塊用于鎖定所述 Cache中存儲(chǔ)所述指令的區(qū)域;和/或所述存儲(chǔ)模塊用于將所述數(shù)據(jù)存儲(chǔ)到所述Cache的數(shù)據(jù)緩存標(biāo)簽隨機(jī)接入存儲(chǔ)器 D-Cache TAG RAM和數(shù)據(jù)緩存隨機(jī)接入存儲(chǔ)器D-Cache RAM中,所述鎖定模塊用于鎖定所述 Cache中存儲(chǔ)所述數(shù)據(jù)的區(qū)域。
9.根據(jù)權(quán)利要求7所述的裝置,其特征在于,所述鎖定模塊用于指示所述Cache對(duì)應(yīng)的緩存控制器鎖定所述指令和/或所述數(shù)據(jù)。
10.根據(jù)權(quán)利要求9所述的裝置,其特征在于,所述緩存控制器支持行鎖定或支持路鎖定,所述鎖定模塊用于指示所述緩存控制器鎖定所述Cache中存儲(chǔ)所述指令和/或所述數(shù)據(jù)的行;或者所述鎖定模塊用于指示所述緩存控制器鎖定所述Cache中存儲(chǔ)所述指令和/ 或所述數(shù)據(jù)的路。
全文摘要
本發(fā)明公開了一種Cache存取的控制方法及裝置,該方法包括處理器獲取執(zhí)行周期中的關(guān)鍵指令和/或數(shù)據(jù);在執(zhí)行周期中,處理器將指令和/或數(shù)據(jù)存儲(chǔ)到Cache中,并鎖定指令和/或數(shù)據(jù)。本發(fā)明解決了相關(guān)技術(shù)中不能靈活進(jìn)行Cache存取的動(dòng)態(tài)控制的問題,進(jìn)而達(dá)到了動(dòng)態(tài)Cache存取的靈活控制的效果。
文檔編號(hào)G06F12/08GK102567220SQ20101058413
公開日2012年7月11日 申請(qǐng)日期2010年12月10日 優(yōu)先權(quán)日2010年12月10日
發(fā)明者王翔宇 申請(qǐng)人:中興通訊股份有限公司
網(wǎng)友詢問留言 已有0條留言
  • 還沒有人留言評(píng)論。精彩留言會(huì)獲得點(diǎn)贊!
1
镇安县| 砀山县| 泊头市| 榆树市| 中江县| 黄浦区| 丹东市| 宜春市| 高青县| 光山县| 宜黄县| 鄂托克前旗| 宁夏| 宜兰县| 温州市| 舞阳县| 莱西市| 武清区| 靖远县| 韶关市| 壶关县| 临高县| 海宁市| 诸暨市| 甘泉县| 孙吴县| 梅州市| 云龙县| 侯马市| 阳西县| 疏勒县| 湖口县| 大方县| 友谊县| 唐河县| 界首市| 北海市| 中卫市| 子洲县| 昌平区| 大同县|