用于嵌入式系統(tǒng)的高速緩存器的制造方法
【專利摘要】本發(fā)明提供一種用于嵌入式系統(tǒng)的高速緩存器,包括地址路徑模塊、數(shù)據(jù)路徑模塊、控制邏輯模塊和指令存儲(chǔ)模塊;指令存儲(chǔ)模塊包括指令數(shù)據(jù)寄存器、指令地址寄存器、狀態(tài)寄存器,指令數(shù)據(jù)寄存器用于集中存放所述若干個(gè)指令段中各自的指令信息,所述指令地址寄存器用于集中存放所述若干個(gè)指令段中各自的指令地址信息,所述狀態(tài)寄存器用于集中存放所述若干個(gè)指令段中各自的有效狀態(tài)信息;當(dāng)CPU處理單元向所述指令存儲(chǔ)器進(jìn)行指令編程操作時(shí),如果指令地址寄存器內(nèi)指令地址信息與所述指令編程操作的地址匹配,則狀態(tài)寄存器中相應(yīng)的指令狀態(tài)位置“0”即無效。本發(fā)明可以方便的清除指令段,且在CPU對(duì)指令存儲(chǔ)器執(zhí)行編程操作后,可以支持僅清除掉高速緩存器中該編程地址對(duì)應(yīng)的指令段,大大縮短了清除緩存的時(shí)間。
【專利說明】用于嵌入式系統(tǒng)的高速緩存器
【技術(shù)領(lǐng)域】
[0001]本發(fā)明涉及嵌入式系統(tǒng)領(lǐng)域,具體涉及一種用于嵌入式系統(tǒng)的高速緩存器。
【背景技術(shù)】
[0002]目前針對(duì)指令Cache的實(shí)現(xiàn)主要包括以下幾種:內(nèi)嵌在CPU中,通過CPU執(zhí)行特殊的Cache指令來實(shí)現(xiàn)Cache的flush等操作;還有就是獨(dú)立在CPU外部的片上指令Cache,但其屬性等狀態(tài)信息和數(shù)據(jù)、地址信息一起存儲(chǔ)到一塊memory中,當(dāng)用戶讀取指令后,讀入的指令會(huì)填充到Cache內(nèi)部的一個(gè)cache line中,此后如果用戶對(duì)外部的存儲(chǔ)設(shè)備執(zhí)行編程操作,為了保證外部存儲(chǔ)器與cache的一致性,就需要flush整塊memory,這樣帶來的后果就是效率低下,因?yàn)橛脩粜枰獙?duì)指令存儲(chǔ)器的編程操作及其少,如果因?yàn)榫幊滩僮鲗?dǎo)致用戶flush整塊memory,不僅耗時(shí)較長(zhǎng),而且嚴(yán)重降低了整個(gè)系統(tǒng)的性能。
【發(fā)明內(nèi)容】
[0003]本發(fā)明目的是提供一種用于嵌入式系統(tǒng)的高速緩存器,該用于嵌入式系統(tǒng)的高速緩存器不僅可以方便的flush cache,而且在CPU對(duì)指令存儲(chǔ)器執(zhí)行編程操作后,可以支持僅flush掉Cache中該編程地址對(duì)應(yīng)的cache line,大大縮短了原有技術(shù)在遇到CPU對(duì)指令存儲(chǔ)器執(zhí)行編程操作時(shí)需要flush cache的時(shí)間,而且只會(huì)flush被修改的cache line,不會(huì)影響cache里其他的內(nèi)容,不會(huì)對(duì)系統(tǒng)性能造成大的影響。
[0004]為達(dá)到上述目的,本發(fā)明采用的技術(shù)方案是:一種用于嵌入式系統(tǒng)的高速緩存器,包括地址路徑模塊、數(shù)據(jù)路徑模塊、控制邏輯模塊和指令存儲(chǔ)模塊;所述地址路徑模塊用于將來自CPU處理單元的讀/編程地址信息傳輸?shù)街噶畲鎯?chǔ)器;所述數(shù)據(jù)路徑模塊用于響應(yīng)CPU處理單元的讀請(qǐng)求將位于指令存儲(chǔ)器內(nèi)的指令信息傳輸給CPU處理單元,或者,響應(yīng)CPU處理單元發(fā)出的指令編程操作,改變指令存儲(chǔ)器內(nèi)的指令內(nèi)容;所述控制邏輯模塊根據(jù)來自CPU處理單元的讀/編程控制信號(hào)和來自指令存儲(chǔ)器的響應(yīng)信號(hào),控制地址路徑模塊和數(shù)據(jù)路徑模塊;
所述指令存儲(chǔ)模塊存儲(chǔ)若干個(gè)指令段,該指令段由指令地址位、指令狀態(tài)位和指令數(shù)據(jù)位組成,所述指令數(shù)據(jù)位用于存儲(chǔ)來自指令存儲(chǔ)器的指令信息,所述指令地址位用于存儲(chǔ)指令數(shù)據(jù)位中指令信息在指令存儲(chǔ)器中對(duì)應(yīng)的指令地址信息,所述指令狀態(tài)位用于標(biāo)識(shí)所述指令段中指令信息是否有效;
所述指令存儲(chǔ)模塊包括指令數(shù)據(jù)寄存器、指令地址寄存器、狀態(tài)寄存器,所述指令數(shù)據(jù)寄存器用于集中存放所述若干個(gè)指令段中各自的指令信息,所述指令地址寄存器用于集中存放所述若干個(gè)指令段中各自的指令地址信息,所述狀態(tài)寄存器用于集中存放所述若干個(gè)指令段中各自的有效狀態(tài)信息;
當(dāng)CPU處理單元向所述指令存儲(chǔ)器進(jìn)行指令編程操作時(shí),如果指令地址寄存器內(nèi)指令地址信息與所述指令編程操作的地址匹配,則狀態(tài)寄存器中相應(yīng)的指令狀態(tài)位置“O”即無效; 當(dāng)CPU處理單元向所述指令存儲(chǔ)器讀指令信息時(shí),待讀指令地址與指令地址寄存器進(jìn)行比較,如果待讀指令地址與其中一個(gè)地址匹配且該指令地址對(duì)應(yīng)狀態(tài)寄存器的指令狀態(tài)位有效時(shí),指令段匹配成功,由指令數(shù)據(jù)寄存器輸出數(shù)據(jù)通過數(shù)據(jù)路徑模塊傳輸給CPU處理單元,同時(shí)控制邏輯會(huì)生成對(duì)應(yīng)的總線應(yīng)答信號(hào)輸出給處理器;否則,指令段匹配失敗,所述指令讀操作被bypass到指令存儲(chǔ)器,由指令存儲(chǔ)器輸出數(shù)據(jù)通過數(shù)據(jù)路徑模塊傳輸給CPU處理單元,同時(shí),讀出的指令信息會(huì)根據(jù)其地址填充到所述指令數(shù)據(jù)寄存器相應(yīng)位置,指令地址寄存器存放讀出的指令信息在指令存儲(chǔ)器的地址信息,且狀態(tài)寄存器中相應(yīng)的指令狀態(tài)位置“I”即有效。
[0005]上述技術(shù)方案中的進(jìn)一步改進(jìn)方案如下:
上述方案中,所述指令數(shù)據(jù)位存放至少2個(gè)指令信息。
[0006]由于上述技術(shù)方案運(yùn)用,本發(fā)明與現(xiàn)有技術(shù)相比具有下列優(yōu)點(diǎn)和效果:
本發(fā)明用于嵌入式系統(tǒng)的高速緩存器,其不僅可以方便的flush cache,而且在CPU對(duì)指令存儲(chǔ)器執(zhí)行編程操作后,可以支持僅flush掉Cache中該編程地址對(duì)應(yīng)的cache line,大大縮短了原有技術(shù)在遇到CPU對(duì)指令存儲(chǔ)器執(zhí)行編程操作時(shí)需要flush cache的時(shí)間,而且只會(huì)flush被修改的cache line,不會(huì)影響cache里其他的內(nèi)容,不會(huì)對(duì)系統(tǒng)性能造成大的影響。
【專利附圖】
【附圖說明】
[0007]附圖1為本發(fā)明用于嵌入式系統(tǒng)的高速緩存器結(jié)構(gòu)示意圖;
附圖2為本發(fā)明用于嵌入式系統(tǒng)存儲(chǔ)系統(tǒng)結(jié)構(gòu)示意圖。
[0008]以上附圖中:1、地址路徑模塊;2、數(shù)據(jù)路徑模塊;3、控制邏輯模塊;4、指令存儲(chǔ)模塊;41、指令數(shù)據(jù)寄存器;42、指令地址寄存器;43、狀態(tài)寄存器。
【具體實(shí)施方式】
[0009]下面結(jié)合附圖及實(shí)施例對(duì)本發(fā)明作進(jìn)一步描述:
實(shí)施例:一種用于嵌入式系統(tǒng)的高速緩存器,包括地址路徑模塊1、數(shù)據(jù)路徑模塊2、控制邏輯模塊3和指令存儲(chǔ)模塊4 ;所述地址路徑模塊I用于將來自CPU處理單元的讀/編程地址信息傳輸?shù)街噶畲鎯?chǔ)器;所述數(shù)據(jù)路徑模塊2用于響應(yīng)CPU處理單元的讀請(qǐng)求將位于指令存儲(chǔ)器內(nèi)指令信息傳輸給CPU處理單元,或者,響應(yīng)CPU處理單元發(fā)出的指令編程操作,改變指令存儲(chǔ)器內(nèi)的指令內(nèi)容;所述控制邏輯模塊3根據(jù)來自CPU處理單元的讀/編程控制信號(hào)和來自指令存儲(chǔ)器的響應(yīng)信號(hào),控制地址路徑模塊I和數(shù)據(jù)路徑模塊2 ;
所述指令存儲(chǔ)模塊4存儲(chǔ)若干個(gè)指令段,該指令段由指令地址位、指令狀態(tài)位和指令數(shù)據(jù)位組成,所述指令數(shù)據(jù)位用于存儲(chǔ)來自指令存儲(chǔ)器的指令信息,所述指令地址位用于存儲(chǔ)指令數(shù)據(jù)位中指令信息在指令存儲(chǔ)器中對(duì)應(yīng)的指令地址信息,所述指令狀態(tài)位用于標(biāo)識(shí)所述指令段中指令信息是否有效;
所述指令存儲(chǔ)模塊4包括指令數(shù)據(jù)寄存器41、指令地址寄存器42、狀態(tài)寄存器43,所述指令數(shù)據(jù)寄存器41用于集中存放所述若干個(gè)指令段中各自的指令信息,所述指令地址寄存器42用于集中存放所述若干個(gè)指令段中各自的指令地址信息,所述狀態(tài)寄存器43用于集中存放所述若干個(gè)指令段中各自的有效狀態(tài)信息; 當(dāng)CPU處理單元向所述指令存儲(chǔ)器進(jìn)行指令編程操作時(shí),如果指令地址寄存器42內(nèi)指令地址信息與所述指令編程操作的地址匹配,則狀態(tài)寄存器43中相應(yīng)的指令狀態(tài)位置“O”即無效;
當(dāng)CPU處理單元向所述指令存儲(chǔ)器讀指令信息時(shí),待讀指令地址與指令地址寄存器42進(jìn)行比較,如果待讀指令地址與其中一個(gè)地址匹配且該指令地址對(duì)應(yīng)狀態(tài)寄存器43的指令狀態(tài)位有效時(shí),指令段匹配成功,由指令數(shù)據(jù)寄存器41輸出數(shù)據(jù)通過數(shù)據(jù)路徑模塊2傳輸給CPU處理單元,同時(shí)控制邏輯會(huì)生成對(duì)應(yīng)的總線應(yīng)答信號(hào)輸出給處理器;否則,指令段匹配失敗,所述指令讀操作被bypass到指令存儲(chǔ)器,由指令存儲(chǔ)器輸出數(shù)據(jù)通過數(shù)據(jù)路徑模塊2傳輸給CPU處理單元,同時(shí),讀出的指令信息會(huì)根據(jù)其地址填充到所述指令數(shù)據(jù)寄存器41相應(yīng)位置,指令地址寄存器42存放讀出的指令信息在指令存儲(chǔ)器的地址信息,且狀態(tài)寄存器43中相應(yīng)的指令狀態(tài)位置“I”即有效。
[0010]上述指令數(shù)據(jù)位存放至少2個(gè)指令信息。
[0011]狀態(tài)位(V)指示本cache line是否已填充有效的數(shù)據(jù),當(dāng)讀指令時(shí),讀入的指令會(huì)根據(jù)地址填充到相應(yīng)的cache line。此時(shí),狀態(tài)位“V”置“ 1”,表示該cache line有效。當(dāng)需要清除該cache line中的數(shù)據(jù)時(shí),將狀態(tài)位“V”置“O”。當(dāng)CPU讀取指令時(shí),首先會(huì)判斷該指令是否已經(jīng)在cache里,如果地址匹配且V有效,則表示該數(shù)據(jù)在cache里,發(fā)生cache hit ;反之如果地址不匹配,或者對(duì)應(yīng)cache line的V無效,則表示該數(shù)據(jù)不在cache里,發(fā)生 cache miss。
[0012]在本技術(shù)方案中,將每個(gè)cache line中的狀態(tài)位V獨(dú)立出來,不再和地址及數(shù)據(jù)存儲(chǔ)在ram中,而是通過寄存器組來實(shí)現(xiàn),并通過一個(gè)系統(tǒng)控制寄存器可以在單周期實(shí)現(xiàn)cache的初始化,簡(jiǎn)化了軟件初始化過程,節(jié)省了初始化時(shí)間。
[0013]上述實(shí)施例只為說明本發(fā)明的技術(shù)構(gòu)思及特點(diǎn),其目的在于讓熟悉此項(xiàng)技術(shù)的人士能夠了解本發(fā)明的內(nèi)容并據(jù)以實(shí)施,并不能以此限制本發(fā)明的保護(hù)范圍。凡根據(jù)本發(fā)明精神實(shí)質(zhì)所作的等效變化或修飾,都應(yīng)涵蓋在本發(fā)明的保護(hù)范圍之內(nèi)。
【權(quán)利要求】
1.一種用于嵌入式系統(tǒng)的高速緩存器,其特征在于:包括地址路徑模塊(I)、數(shù)據(jù)路徑模塊(2 )、控制邏輯模塊(3 )和指令存儲(chǔ)模塊(4 );所述地址路徑模塊(I)用于將來自CPU處理單元的讀/編程地址信息傳輸?shù)街噶畲鎯?chǔ)器;所述數(shù)據(jù)路徑模塊(2)用于響應(yīng)CPU處理單元的讀請(qǐng)求將位于指令存儲(chǔ)器內(nèi)的指令信息傳輸給CPU處理單元,或者,響應(yīng)CPU處理單元發(fā)出的指令編程操作,改變指令存儲(chǔ)器內(nèi)的指令內(nèi)容;所述控制邏輯模塊(3)根據(jù)來自CPU處理單元的讀/編程控制信號(hào)和來自指令存儲(chǔ)器的響應(yīng)信號(hào),控制地址路徑模塊(I)和數(shù)據(jù)路徑模塊(2); 所述指令存儲(chǔ)模塊(4)存儲(chǔ)若干個(gè)指令段,該指令段由指令地址位、指令狀態(tài)位和指令數(shù)據(jù)位組成,所述指令數(shù)據(jù)位用于存儲(chǔ)來自指令存儲(chǔ)器的指令信息,所述指令地址位用于存儲(chǔ)指令數(shù)據(jù)位中指令信息在指令存儲(chǔ)器中對(duì)應(yīng)的指令地址信息,所述指令狀態(tài)位用于標(biāo)識(shí)所述指令段中指令信息是否有效; 所述指令存儲(chǔ)模塊(4)包括指令數(shù)據(jù)寄存器(41)、指令地址寄存器(42)、狀態(tài)寄存器(43),所述指令數(shù)據(jù)寄存器(41)用于集中存放所述若干個(gè)指令段中各自的指令信息,所述指令地址寄存器(42)用于集中存放所述若干個(gè)指令段中各自的指令地址信息,所述狀態(tài)寄存器(43)用于集中存放所述若干個(gè)指令段中各自的有效狀態(tài)信息; 當(dāng)CPU處理單元向所述指令存儲(chǔ)器進(jìn)行指令編程操作時(shí),如果指令地址寄存器(42)內(nèi)指令地址信息與所述指令編程操作的地址匹配,則狀態(tài)寄存器(43)中相應(yīng)的指令狀態(tài)位置“O”即無效; 當(dāng)CPU處理單元向所述指令存儲(chǔ)器讀指令信息時(shí),待讀指令地址與指令地址寄存器(42)進(jìn)行比較,如果待讀指令地址與其中一個(gè)地址匹配且該指令地址對(duì)應(yīng)狀態(tài)寄存器(43)的指令狀態(tài)位有效時(shí),指令段匹配成功,由指令數(shù)據(jù)寄存器(41)輸出數(shù)據(jù)通過數(shù)據(jù)路徑模塊(2)傳輸給CPU處理單元,同時(shí)控制邏輯會(huì)生成對(duì)應(yīng)的總線應(yīng)答信號(hào)輸出給處理器;否貝1J,指令段匹配失敗,所述指令讀操作被bypass到指令存儲(chǔ)器,由指令存儲(chǔ)器輸出數(shù)據(jù)通過數(shù)據(jù)路徑模塊(2)傳輸給CPU處理單元,同時(shí),讀出的指令信息會(huì)根據(jù)其地址填充到所述指令數(shù)據(jù)寄存器(41)相應(yīng)位置,指令地址寄存器(42)存放讀出的指令信息在指令存儲(chǔ)器的地址信息,且狀態(tài)寄存器(43)中相應(yīng)的指令狀態(tài)位置“I”即有效。
2.根據(jù)權(quán)利要求1所述的用于嵌入式系統(tǒng)的高速緩存器,其特征在于:所述指令數(shù)據(jù)位存放至少2個(gè)指令信息。
【文檔編號(hào)】G06F13/16GK103810122SQ201310721853
【公開日】2014年5月21日 申請(qǐng)日期:2013年12月24日 優(yōu)先權(quán)日:2013年12月24日
【發(fā)明者】鄭茳, 肖佐楠, 匡啟和, 竺際隆, 張艷麗, 李利 申請(qǐng)人:蘇州國(guó)芯科技有限公司