亚洲成年人黄色一级片,日本香港三级亚洲三级,黄色成人小视频,国产青草视频,国产一区二区久久精品,91在线免费公开视频,成年轻人网站色直接看

一種指令緩存系統(tǒng)及其取指方法

文檔序號(hào):6443583閱讀:206來源:國(guó)知局
專利名稱:一種指令緩存系統(tǒng)及其取指方法
技術(shù)領(lǐng)域
本發(fā)明涉及微處理器系統(tǒng)中的指令緩存,尤其涉及一種新型高效指令緩存系統(tǒng)及其取指方法。
背景技術(shù)
眾所周知,CPU的存取速度非常快,而內(nèi)存的存取速度相對(duì)較慢。為解決CPU與內(nèi)存之間存取速度不匹配的問題,通常會(huì)采用一個(gè)訪問速度極快的小容量存儲(chǔ)器即緩存(簡(jiǎn)稱CACHE),如一級(jí)緩存,并將可能要訪問的數(shù)據(jù)或指令預(yù)先存儲(chǔ)在緩存中。當(dāng)CPU需要讀取一個(gè)數(shù)據(jù)時(shí),首先以較快的速度在緩存中查找,如果找到就立即讀取并送給CPU處理;如果在緩存中沒找到匹配的數(shù)據(jù),則以相對(duì)慢的速度向下一級(jí)的內(nèi)存中繼續(xù)查找并將數(shù)據(jù)讀取送給CPU處理。盡管緩存的使用能夠極大提高CPU讀寫數(shù)據(jù)的速度,但由于緩存的容量有限,僅能夠存儲(chǔ)內(nèi)存中的少量數(shù)據(jù)。為了提高CPU訪問的命中率,可采用一級(jí)緩存、二級(jí)緩存甚至三級(jí)緩存的多級(jí)緩存系統(tǒng),使CPU能夠逐級(jí)順序訪問多個(gè)緩存,直至查找到匹配的數(shù)據(jù)。為了進(jìn)一步提高緩存的利用率,還可采用一些特定的替換算法,如最近最少使用算法,將最近最少被訪問的數(shù)據(jù)淘汰出緩存。
由于CPU流水線一般都包括五個(gè)步驟,即每條指令的執(zhí)行一般都經(jīng)過IF(指令獲取)、DE (指令譯碼)、EX (執(zhí)行)、MEM (訪問存儲(chǔ)器)和WB (數(shù)據(jù)寫回)。為了使CPU的性能得到最大程度的發(fā)揮,除了緩存之外,很多芯片內(nèi)部都有預(yù)取指令和數(shù)據(jù)的功能。如MIPS 早期適用于嵌入式領(lǐng)域的Mips4kc核就具有四字節(jié)大小的預(yù)取指令功能,它設(shè)計(jì)在取指令模塊中。但該預(yù)取是針對(duì)順序執(zhí)行指令情況下而設(shè)計(jì),如果遇上跳轉(zhuǎn)或中斷則一般是舍棄預(yù)取的指令。
同時(shí),大部分CPU (包括mipS4kc)向外部(例如CACHE或RAM)取指令時(shí)一般都是發(fā)出一個(gè)請(qǐng)求信號(hào)和相應(yīng)32位的指令虛擬地址。該信號(hào)和虛擬地址被內(nèi)存管理單元(簡(jiǎn)稱MMU)接收。此時(shí)MMU根據(jù)指令的虛擬地址和CPU對(duì)虛擬地址空間的劃分,將虛擬地址轉(zhuǎn)換為相應(yīng)的物理地址,就到CACHE (CACHE開啟以及該地址對(duì)應(yīng)的數(shù)據(jù)可在CACHE中有備份情況下)或內(nèi)存RAM中獲得32位的指令,然后將指令返回給CPU去執(zhí)行。
在這種情況下,如果CPU執(zhí)行的是順序的四條指令,則MMU需要做四次地址轉(zhuǎn)換, CACHE要匹配四次或者M(jìn)MU四次經(jīng)過總線向RAM獲取指令。這在一定程度上增加了總線的帶寬壓力,也不利于降低芯片功耗。發(fā)明內(nèi)容
根據(jù)本發(fā)明的第一個(gè)方面,提供一種指令緩存系統(tǒng),包括微處理器、系統(tǒng)控制協(xié)處理器、內(nèi)存管理單元,該微處理器與系統(tǒng)控制協(xié)處理器、微處理器與內(nèi)存管理單元、以及系統(tǒng)控制協(xié)處理器與內(nèi)存管理單元之間分別建立連接,以進(jìn)行指令的存取控制及處理,其中, 內(nèi)存管理單元通過總線與內(nèi)存或外部存儲(chǔ)器建立連接,微處理器中還設(shè)有零級(jí)緩存,其包括兩個(gè)存儲(chǔ)塊,每個(gè)存儲(chǔ)塊中分別存儲(chǔ)四條指令,且每個(gè)存儲(chǔ)塊設(shè)有標(biāo)簽值。
所述每個(gè)存儲(chǔ)塊的標(biāo)簽值為29位,其中,高28位為虛擬地址高位,最低位為有效位,每個(gè)存儲(chǔ)塊的容量為4字(即四條指令)。
所述新型指令緩存系統(tǒng)中還包括一級(jí)緩存,該一級(jí)緩存是一個(gè)四路組相聯(lián)的傳統(tǒng)緩存,其指令讀寫通道均為128位。
所述內(nèi)存管理單元中還設(shè)有銜接零級(jí)緩存、一級(jí)緩存與內(nèi)存之間邏輯控制的控制模塊。
所述控制模塊具有六個(gè)可轉(zhuǎn)換的狀態(tài),分別是空閑、一級(jí)緩存關(guān)閉、一級(jí)緩存命中、一級(jí)緩存未命中、一級(jí)緩存填充以及異常出錯(cuò)。
所述零級(jí)緩存通過內(nèi)存管理單元中的控制邏輯,從一級(jí)緩存或利用總線突發(fā)傳輸從內(nèi)存一次獲取4條指令。所述零級(jí)緩存與一級(jí)緩存或內(nèi)存的數(shù)據(jù)傳輸為每次4字。
根據(jù)本發(fā)明的第二個(gè)方面,提供一種指令緩存系統(tǒng)的取指方法,其中所述指令緩存系統(tǒng)包括零級(jí)緩存和一級(jí)緩存兩個(gè)緩存存儲(chǔ)器,該零級(jí)緩存包括兩個(gè)存儲(chǔ)塊,每個(gè)存儲(chǔ)塊中分別存儲(chǔ)四條指令,且每個(gè)存儲(chǔ)塊設(shè)有標(biāo)簽值,該指令緩存系統(tǒng)還包括內(nèi)存管理單元, 其可從一級(jí)緩存或通過總線向內(nèi)存獲取指令,該方法包括如下步驟
(I)判定指令的虛擬地址是否與零級(jí)緩存的存儲(chǔ)塊的標(biāo)簽值匹配;
(2)執(zhí)行所述步驟(I),若結(jié)果為是,則取出命中存儲(chǔ)塊中相應(yīng)的指令,送至流水線;并判定未命中存儲(chǔ)塊中的指令是否為順序執(zhí)行的下一批指令;
(2’ )執(zhí)行所述步驟(1),若結(jié)果為否,則刷新零級(jí)緩存,并向內(nèi)存管理單元發(fā)出請(qǐng)求,內(nèi)存管理單元從內(nèi)存或一級(jí)緩存中獲得指令,并將指令填充分別至存儲(chǔ)塊中。
(3)執(zhí)行所述步驟(2),若結(jié)果為是,則等待向流水線傳送指令,執(zhí)行步驟⑴;
(3’ )執(zhí)行所述步驟(2),若結(jié)果為否,則向內(nèi)存管理單元發(fā)出請(qǐng)求,內(nèi)存管理單元從內(nèi)存或一級(jí)緩存中獲取四條指令,并將指令填充至該未命中存儲(chǔ)塊中,執(zhí)行步驟(I)。
所述步驟(I)進(jìn)一步包括以下步驟
A)判定指令的虛擬地址的高28位是否與存儲(chǔ)塊標(biāo)簽值的高28位是否匹配;
B)判定所述存儲(chǔ)塊的最低位是否有效。
本發(fā)明的新型指令緩存系統(tǒng)采用零級(jí)緩存代替CPU流水線中的取指令模塊,該零級(jí)緩存中包括兩塊存儲(chǔ)單元,通過兩存儲(chǔ)塊交替運(yùn)行,可以最大限度地提高取指速度,實(shí)現(xiàn)指令預(yù)取功能。此外,零級(jí)緩存中的兩存儲(chǔ)塊實(shí)現(xiàn)了自動(dòng)檢測(cè)填充指令的功能,通過比較標(biāo)簽值可自動(dòng)確定是否需要填充新的指令,同時(shí),零級(jí)緩存和一級(jí)緩存之間、零級(jí)緩存和內(nèi)存之間一次傳輸四條指令,即內(nèi)存管理單元只需做一次虛擬地址到物理地址的轉(zhuǎn)換,極大程度上減少內(nèi)存管理單元和緩存之間、內(nèi)存管理單元和內(nèi)存之間的訪問次數(shù),并且提高了指令獲取速率,降低系統(tǒng)功耗。


圖I是本發(fā)明實(shí)施例一的指令緩存系統(tǒng)的構(gòu)成示意圖。
圖2是本發(fā)明實(shí)施例二的指令緩存系統(tǒng)的構(gòu)成示意圖。
圖3是本發(fā)明中一級(jí)緩存LI的標(biāo)簽值Tag的劃分示意圖。
圖4是本發(fā)明中控制模塊的狀態(tài)機(jī)狀態(tài)轉(zhuǎn)換圖。
圖5是本發(fā)明中取指方法的工作流程圖。
具體實(shí)施方式
下面結(jié)合說明書附圖對(duì)本發(fā)明做進(jìn)一步說明
實(shí)施例一
請(qǐng)參閱圖1,本發(fā)明的新型指令緩存系統(tǒng)的一個(gè)實(shí)施例的構(gòu)成示意圖,以SoC芯片為例。新型指令緩存系統(tǒng)包括微處理器、系統(tǒng)控制協(xié)處理器(CPO)、內(nèi)存管理單元(MMU),在本實(shí)施例中,微處理器采用MIPS 4Kc體系的單核結(jié)構(gòu)。MIPS 4Kc與CPO、MIPS 4Kc與MMU 以及CPO與MMU分別建立連接,以進(jìn)行指令的存取控制及處理。CPO能夠基于MIPS 4Kc體系結(jié)構(gòu),協(xié)助處理器完成異常/中斷處理、高速緩存填充、旁視轉(zhuǎn)換緩沖器(TLB)譯碼填充、 操作模式轉(zhuǎn)換等操作。MMU是用于管理虛擬內(nèi)存、物理內(nèi)存的控制線路,其通過總線與內(nèi)存 (RAM)或其他外部存儲(chǔ)器(如Flash)建立連接,同時(shí)也負(fù)責(zé)虛擬地址映射為物理地址,并提供硬件機(jī)制的內(nèi)存訪問授權(quán)。
此外,本發(fā)明指令緩存系統(tǒng)的微處理器中還設(shè)有零級(jí)緩存(LO),其作用是代替流水線中的取指令模塊。LO包括兩塊存儲(chǔ)單元,分別稱為存儲(chǔ)塊A和存儲(chǔ)塊B(圖I中未示出),每個(gè)存儲(chǔ)塊的大小為4個(gè)字,均設(shè)有29位的標(biāo)簽值(Tag),相應(yīng)分別為Tag 0和Tag 1,其中高28位為虛擬地址位,最低位為有效位(V)。每個(gè)存儲(chǔ)塊中存儲(chǔ)著與Tag值對(duì)應(yīng)的四條指令,兩存儲(chǔ)塊共對(duì)應(yīng)八條指令。
當(dāng)流水線獲取指令時(shí),LO將指令的虛擬地址(簡(jiǎn)稱PC)的第31至第4位,共28 位即VAddr[31:4]與Tag 0、Tag I的高28位進(jìn)行比較,判斷地址是否匹配,并判斷Tag O、 Tag I的最低位是否有效;當(dāng)某一存儲(chǔ)塊(如本實(shí)施例中,存儲(chǔ)塊A)的地址與指令虛擬地址匹配,并且其Tag 0的最低位有效(即V為I)時(shí),則表示存儲(chǔ)塊A匹配,稱為PC命中,此時(shí)根據(jù)指令的虛擬地址的第3至2位(即VAddr[3:2])索引存儲(chǔ)塊A中的四條指令,并將命中的指令返送至流水線中。
此時(shí),未命中的存儲(chǔ)塊(即存儲(chǔ)塊B)則通過一個(gè)簡(jiǎn)單的比較器,來確定存儲(chǔ)塊B 中存儲(chǔ)的指令是否為存儲(chǔ)塊A執(zhí)行完之后接下來要順序執(zhí)行的四條指令。將存儲(chǔ)塊B的 Tag I高28位與存儲(chǔ)塊A的Tag 0的高28位加I進(jìn)行比較,判斷是否相等;如果是,則表明存儲(chǔ)塊B中存儲(chǔ)的指令是存儲(chǔ)塊A執(zhí)行完之后即將順序執(zhí)行的四條指令;如果不是,則表明存儲(chǔ)塊B中存儲(chǔ)的指令不是存儲(chǔ)塊A執(zhí)行完之后即將順序執(zhí)行的四條指令,為了方便下一次讀取,需要向MMU發(fā)送填充請(qǐng)求,通過總線的突發(fā)傳輸向內(nèi)存中獲取接下來要順序執(zhí)行情況下的四條指令,并填充至存儲(chǔ)塊B中。
如果存儲(chǔ)塊A和存儲(chǔ)塊B都沒有被命中,則LO被刷新并請(qǐng)求MMU,通過總線從內(nèi)存中獲取八條指令,分別填充到存儲(chǔ)塊A和存儲(chǔ)塊B中。本發(fā)明零級(jí)緩存采用兩個(gè)存儲(chǔ)塊交替工作,提高了取指速度,降低了總線的帶寬壓力。此外,由于嵌入式系統(tǒng)在上電復(fù)位后、運(yùn)行操作系統(tǒng)之前,一般都會(huì)運(yùn)行一小段程序(簡(jiǎn)稱Boot Loader)來初始化硬件、建立內(nèi)存空間映射等等。這段程序一般被放在不可被緩存映射的地址范圍。此時(shí),LO相當(dāng)于一個(gè)小緩存,起到了很大的加速作用,它一次通過MMU經(jīng)總線從內(nèi)存中獲取四條指令,與傳統(tǒng)的取指令相比,系統(tǒng)相當(dāng)于提高了三倍的速度。另外LO總是開啟的,不存在地址范圍限制的問題。
實(shí)施例二
實(shí)施例二與實(shí)施例一的指令緩存系統(tǒng)結(jié)構(gòu)大致相同,在此不贅述,不同之處在于 實(shí)施例二中還設(shè)有一級(jí)緩存(簡(jiǎn)稱CACHE,在此稱為L(zhǎng)I),請(qǐng)參閱圖2,本發(fā)明的新型指令緩存系統(tǒng)的另一個(gè)實(shí)施例的構(gòu)成示意圖。其中,CPO與LI建立連接,MMU與LI也建立連接, 可管理存儲(chǔ)在LI的指令存取。微處理器通過MMU可以讀取存儲(chǔ)在LI或RAM中的指令。LI 是一個(gè)四路組相聯(lián)的傳統(tǒng)緩存,每路128塊,每塊大小為四個(gè)字。LI具有標(biāo)簽值,其Tag有 27位,包括高21位的物理地址位、4位有效位、I位替換位(采用最近填入算法,即若某緩存線被填充,則該緩存線的替換位為1,所在行的其它緩存線替換位為0)以及I位鎖住位(與 CACHE指令有關(guān),同時(shí)配合替換位裁決替換的緩存塊),LI標(biāo)簽值Tag的劃分請(qǐng)參閱圖3。
此外,本實(shí)施例二中在MMU內(nèi)部還設(shè)有控制模塊(Iconter),其作用是銜接LO與 LI之間的控制邏輯,實(shí)現(xiàn)從LI或RAM中讀取數(shù)據(jù)到L0。Iconter是由一個(gè)狀態(tài)機(jī)來實(shí)現(xiàn)邏輯控制,該狀態(tài)機(jī)設(shè)有6個(gè)狀態(tài),分別是FSM_IDLE (空閑)、FSM_CACHE_CLOSE (LI緩存關(guān)閉)、FSM_CACHE_HIT(L1 緩存命中)、FSM_CACHE_UNHIT (LI 緩存缺失)、FSM_CACHE_FILL (LI 緩存填充)以及FSM_EXCP_0CCUR(異常出錯(cuò))。只要滿足條件,則可以在不同狀態(tài)之間互相轉(zhuǎn)換,請(qǐng)參照?qǐng)D4,示出了該狀態(tài)機(jī)的不同狀態(tài)的轉(zhuǎn)換圖。
其中,本發(fā)明所述新型指令緩存系統(tǒng)的取指方法,請(qǐng)參閱圖5,包括如下步驟
SI :判斷 VAddr [31:4]是否等于 Tag 0 [28:1]或 Tag I [28:1],并判斷 Tag 0
或 Tagl
是否為I ;
S2 :若 VAddr [31:4] =Tag 0 [28:1],且 Tag 0
= 1,表示存儲(chǔ)塊 A 命中,則根據(jù) VAddr [3:2]索引存儲(chǔ)塊A中的四條指令,將命中的相應(yīng)指令送至流水線中;
S3:判斷Tag I [28:1]是否等于Tag 0 [28:1]+1 ;若為是,則等待向流水線傳送指令;若為否,則向MMU發(fā)送填充請(qǐng)求,將接下來要執(zhí)行的四條指令從LI或RAM中取出填充到存儲(chǔ)塊B中。
S2,:若 VAddr[31:4] = Tag 1[28:1],且 Tag I
= 1,表示存儲(chǔ)塊 B 命中,則根據(jù)VAddr [3:2]索引存儲(chǔ)塊B中的四條指令,將命中的相應(yīng)指令送至流水線中;
S3’:判斷Tag 0[28:1]是否等于Tag 1[28:1]+1 ;若為是,則等待向流水線傳送指令;若為否,則向MMU發(fā)送填充請(qǐng)求,將接下來要執(zhí)行的四條指令從LI或RAM中取出填充到存儲(chǔ)塊A中。
S2”:若 VAddr [31:4]不等于 Tag 0 [28:1],也不等于 Tag I [28:1],表示存儲(chǔ)塊 A、 B均不命中,則刷新L0,向MMU發(fā)送填充請(qǐng)求,MMU將接下來要執(zhí)行的八條指令從LI或RAM 中取出,分別填充到存儲(chǔ)塊A和存儲(chǔ)塊B中。
也就是說,首先,將VAddr與LO的Tag 0和Tag I比較,并且檢查相應(yīng)的有效位V 是否有效。如果存儲(chǔ)塊A命中,則根據(jù)VAddr [3:2]位索引存儲(chǔ)塊A中的指令,并將命中的指令返送到流水線中。此時(shí),未命中存儲(chǔ)塊B通過比較器與存儲(chǔ)塊A比較Tag值,確定存儲(chǔ)塊B中是否儲(chǔ)存了存儲(chǔ)塊A接下來要執(zhí)行的另外四條指令,如果不是,則向MMU發(fā)送請(qǐng)求, MMU從LI或RAM中取出接下來應(yīng)執(zhí)行的四條指令,并將這四條指令填充到存儲(chǔ)塊B中。如果存儲(chǔ)塊B命中,同樣也是如此,不再贅述。如果存儲(chǔ)塊A和存儲(chǔ)塊B都沒有命中,則LO被刷新,并請(qǐng)求MMU從LI或通過總線從內(nèi)存中獲取8條指令,分別填充到存儲(chǔ)塊A和存儲(chǔ)塊 B中。存儲(chǔ)塊A和存儲(chǔ)塊B交替工作,提高了取指速度,降低了總線的帶寬壓力。
在本實(shí)施例中,LI采用虛擬地址做索引,物理地址做標(biāo)簽的檢測(cè)命中方式。其中,虛擬地址來自微處理器,而物理地址(取高位21位)來自MMU。Ll首先用指令的虛擬地址第11至4位,即VAddr[ll:4]位索引讀取Ll所在行的四路標(biāo)簽值,然后利用Tag值的高21 位與物理地址PAddr高21位進(jìn)行比較,如果相等并且有效位V都為1,則緩存命中,并將命中所在塊的1 位數(shù)據(jù)經(jīng)MMU送往L0。如果緩存未命中,則Ll請(qǐng)求填充,一次填充四個(gè)字, 并將填充的值送到L0。其工作過程請(qǐng)參閱圖5所示。由LO和Ll組成的新型指令緩存系統(tǒng)能夠極大程度上減少M(fèi)MU和Ll的訪問次數(shù)并且提高了指令獲取速率。而且,如果在Ll沒有開啟或訪問的地址不在Ll映射的范圍,LO 同樣可以從內(nèi)存中一次取四條指令,提高了取指速度,降低了功耗。與傳統(tǒng)的取指令相比, 系統(tǒng)相當(dāng)于提高了三倍的速度。如果在Ll開啟或者CPU訪問的地址范圍在Ll映射的范圍情況下,由于一般的流水線取指模塊都有預(yù)取指令的功能,所以LO和Ll組成的緩存系統(tǒng)在 CPU的取指速度上并沒有呈現(xiàn)出多少加速的優(yōu)勢(shì),但是卻減少了 MMU和Ll的訪問次數(shù)。因?yàn)長(zhǎng)O通過MMU從Ll中一次取回四條指令,并且只做了一次的地址轉(zhuǎn)換,相當(dāng)于減少了三倍的MMU和Ll的訪問次數(shù)而達(dá)到了相同的取指效果,可以降低系統(tǒng)功耗。LO和Ll組成的緩存系統(tǒng)優(yōu)勢(shì)可參照表1的測(cè)試結(jié)果。表1本發(fā)明新型指令緩存系統(tǒng)與傳統(tǒng)緩存系統(tǒng)運(yùn)行測(cè)試結(jié)果比較
^運(yùn)行300循環(huán)時(shí)間運(yùn)行300循環(huán)"""運(yùn)行300循環(huán)Ll
^^^^(ns)MMU開啟次數(shù)
開啟次數(shù)
無L0、Ll 關(guān)閉13967100261000
無 L0、Ll 開啟7410502610026100
LO 開啟、Ll 關(guān)閉465585069000
LO 開啟、Ll 開啟72087569006900實(shí)施例三本發(fā)明實(shí)施例三的新型指令緩存系統(tǒng)的構(gòu)成與實(shí)施例二大致相同,不同之處在于所述微處理器采用的是雙核或四核等SMP技術(shù),而不是單核技術(shù)。由于每個(gè)核都獨(dú)立擁有自己的取指令模塊和一級(jí)緩存,因此本發(fā)明所述由LO與Ll組成的新型指令緩存系統(tǒng),同樣可以提高每個(gè)核的取指令速度,降低系統(tǒng)功耗,從而提高執(zhí)行速度,完成更多的任務(wù)。關(guān)于LO和Ll的具體工作原理及實(shí)現(xiàn)方法可參照實(shí)施例一和實(shí)施例二,此處不再贅述。本發(fā)明并不局限于上述實(shí)施方式,如果對(duì)本發(fā)明的各種改動(dòng)或變形不脫離本發(fā)明的精神和范圍,倘若這些改動(dòng)和變形屬于本發(fā)明的權(quán)利要求和等同技術(shù)范圍之內(nèi),則本發(fā)明也意圖包含這些改動(dòng)和變形。
權(quán)利要求
1.一種指令緩存系統(tǒng),包括微處理器、系統(tǒng)控制協(xié)處理器、內(nèi)存管理單元,該微處理器與系統(tǒng)控制協(xié)處理器、微處理器與內(nèi)存管理單元、以及系統(tǒng)控制協(xié)處理器與內(nèi)存管理單元之間分別建立連接,以進(jìn)行指令的存取控制及處理,內(nèi)存管理單元通過總線與內(nèi)存或外部存儲(chǔ)器建立連接,其特征在于所述微處理器中還設(shè)有零級(jí)緩存,其包括兩個(gè)存儲(chǔ)塊,每個(gè)存儲(chǔ)塊中分別存儲(chǔ)四條指令,且每個(gè)存儲(chǔ)塊設(shè)有標(biāo)簽值。
2.根據(jù)權(quán)利要求I所述的一種指令緩存系統(tǒng),其特征在于所述每個(gè)存儲(chǔ)塊的標(biāo)簽值為29位,其中,高28位為虛擬地址高位,最低位為有效位,每個(gè)存儲(chǔ)塊的容量為4字。
3.根據(jù)權(quán)利要求I或2所述的一種指令緩存系統(tǒng),其特征在于所述指令緩存系統(tǒng)中還包括一級(jí)緩存,該一級(jí)緩存是一個(gè)四路組相聯(lián)的傳統(tǒng)緩存,其指令讀寫通道均為128位。
4.根據(jù)權(quán)利要求3所述的一種指令緩存系統(tǒng),其特征在于所述內(nèi)存管理單元中還設(shè)有銜接零級(jí)緩存與一級(jí)緩存、內(nèi)存之間邏輯控制的控制模塊。
5.根據(jù)權(quán)利要求4所述的一種指令緩存系統(tǒng),其特征在于所述控制模塊具有六個(gè)可轉(zhuǎn)換的狀態(tài),分別是空閑、一級(jí)緩存關(guān)閉、一級(jí)緩存命中、一級(jí)緩存未命中、一級(jí)緩存填充以及異常出錯(cuò)。
6.根據(jù)權(quán)利要求I所述的一種指令緩存系統(tǒng),其特征在于所述零級(jí)緩存可從一級(jí)緩存或通過總線突發(fā)傳輸向內(nèi)存一次獲取4條指令。
7.一種指令緩存系統(tǒng)的取指方法,其中,所述指令緩存系統(tǒng)包括零級(jí)緩存和一級(jí)緩存兩個(gè)緩存存儲(chǔ)器,該零級(jí)緩存包括兩個(gè)存儲(chǔ)塊,每個(gè)存儲(chǔ)塊中分別存儲(chǔ)四條指令,且每個(gè)存儲(chǔ)塊設(shè)有標(biāo)簽值,該指令緩存系統(tǒng)還包括內(nèi)存管理單元,其可從一級(jí)緩存或通過總線向內(nèi)存中獲取指令,所述取指方法包括如下步驟(1)判定指令的虛擬地址是否與零級(jí)緩存的存儲(chǔ)塊的標(biāo)簽值匹配;(2)執(zhí)行所述步驟(I),若結(jié)果為是,則取出命中存儲(chǔ)塊中相應(yīng)指令,送至流水線;并判定未命中存儲(chǔ)塊中的指令是否為順序執(zhí)行的后四條指令;(3)執(zhí)行所述步驟(2),若結(jié)果為是,則等待向流水線傳送指令,執(zhí)行步驟(I)。
8.根據(jù)權(quán)利要求7所述的一種指令緩存系統(tǒng)的取指方法,其特征在于,執(zhí)行所述步驟(1),若結(jié)果為否,則刷新零級(jí)緩存,并向內(nèi)存管理單元發(fā)出請(qǐng)求,內(nèi)存單元管理從內(nèi)存或一級(jí)緩存獲取指令,并將指令分別填充至兩存儲(chǔ)塊中。
9.根據(jù)權(quán)利要求7所述的一種指令緩存系統(tǒng)的取指方法,其特征在于,執(zhí)行所述步驟(2),若結(jié)果為否,則向內(nèi)存管理單元發(fā)出請(qǐng)求,內(nèi)存單元管理從內(nèi)存或一級(jí)緩存獲取指令, 并將指令填充至該未命中存儲(chǔ)塊中,執(zhí)行步驟(I)。
10.根據(jù)權(quán)利要求7所述的一種指令緩存系統(tǒng)的取指方法,其特征在于,所述步驟(I) 進(jìn)一步包括以下步驟A)判定指令的虛擬地址的高28位是否與存儲(chǔ)塊標(biāo)簽值的高28位匹配;B)判定所述存儲(chǔ)塊標(biāo)簽值的最低位是否有效。
全文摘要
本發(fā)明公開了一種指令緩存系統(tǒng)及其取指方法。該指令緩存系統(tǒng)包括微處理器、系統(tǒng)控制協(xié)處理器、內(nèi)存管理單元(MMU),MMU通過總線與內(nèi)存或外部存儲(chǔ)器建立連接,該系統(tǒng)中還設(shè)有零級(jí)緩存(L0)和一級(jí)緩存(L1),L0包括兩個(gè)存儲(chǔ)塊,每個(gè)存儲(chǔ)塊設(shè)有標(biāo)簽值,并分別存儲(chǔ)四條指令。本發(fā)明采用L0代替流水線中的取指令模塊,通過兩個(gè)存儲(chǔ)塊交替運(yùn)行,最大限度地提高取指速度,實(shí)現(xiàn)指令預(yù)取功能。采用比較器對(duì)存儲(chǔ)塊標(biāo)簽值進(jìn)行比較,實(shí)現(xiàn)自動(dòng)檢測(cè)填充指令。L0與L1或內(nèi)存之間一次可傳輸四條指令,減少M(fèi)MU、L1和內(nèi)存的訪問次數(shù),并提高了指令獲取速率,降低系統(tǒng)功耗。
文檔編號(hào)G06F9/30GK102541510SQ20111044553
公開日2012年7月4日 申請(qǐng)日期2011年12月27日 優(yōu)先權(quán)日2011年12月27日
發(fā)明者葉靖文, 粟濤, 陳俊銳, 陳弟虎 申請(qǐng)人:中山大學(xué)
網(wǎng)友詢問留言 已有0條留言
  • 還沒有人留言評(píng)論。精彩留言會(huì)獲得點(diǎn)贊!
1