專利名稱:高速緩沖存儲器系統(tǒng)及其控制方法
技術(shù)領(lǐng)域:
本發(fā)明涉及高速緩沖存儲器系統(tǒng)及其控制方法,尤其涉及在高速 緩沖存儲器系統(tǒng)中提高軟件的控制性的技術(shù)。
背景技術(shù):
近幾年的微處理機,例如,將包括靜態(tài)隨機存取存儲器(SRAM: Static Random Access Memory)等的容量小且速度快的高速緩沖存 儲器設(shè)置到微處理機內(nèi)部或者附近,通過將數(shù)據(jù)的一部分存儲在高速 緩沖存儲器中,使微處理機高速訪問存儲器。以提高高速緩沖效率(提高命中率,減少高速緩沖未命中的等待時 間)為目的的以往的幾種技術(shù)是眾所周知的。其技術(shù)之一就是預加載(或 者預取),在高速緩沖未命中發(fā)生之前,事先在高速緩存中填入近期將 要使用的數(shù)據(jù)(例如專利文獻1)。利用該技術(shù),把線Oine)加載到高速 緩存上,該線含有按照預取命令指定的地址,從而實現(xiàn)減少高速緩沖 未命中。專利文獻l:(日本)特開平7-295882號公報然而,根據(jù)所述通常技術(shù)是由硬件來監(jiān)視訪問存儲器的狀況,并 且由硬件自主進行高速緩沖操作,而此時,因為不能正確預測,反而 產(chǎn)生無謂的傳送。這種問題,不僅是在所述通常技術(shù)中存在,其他以 提高高速緩沖效率為目的的各種技術(shù)中也同樣存在。通過硬件自主控 制高速緩沖來提高效率存在著無法逾越的界限,為了打破該界限,可 以考慮通過軟件來控制的方法
發(fā)明內(nèi)容
本發(fā)明鑒于所述問題而提出,其目的在于提供一種高速緩沖存儲器 系統(tǒng),該高速緩沖存儲器系統(tǒng)具有有利于積極接收來自軟件的控制以 進行處理的結(jié)構(gòu)。為了達到所述目的,本發(fā)明的高速緩沖存儲器系統(tǒng),包括高速緩 沖存儲器,設(shè)在處理器和存儲器之間;以及傳送及屬性控制單元,控 制所述高速緩沖存儲器;所述傳送及屬性控制單元包括指令輸入部, 通過所述處理器執(zhí)行預先規(guī)定的命令,該指令輸入部接收如下指令, 即,該指令示出高速緩沖數(shù)據(jù)的傳送及屬性操作和指定該操作對象的 地址;以及操作請求部,向所述高速緩沖存儲器請求操作,該操作是 對所述地址的操作且是由所述指令示出的操作。而且,也可以是,所述指令輸入部進一步從所述處理器接收與所述 指令相對應(yīng)的地址范圍;所述操作請求部向所述高速緩沖存儲器依次 請求對多個地址的所述操作,該多個地址屬于所述地址范圍。根據(jù)該結(jié)構(gòu),通過使處理器執(zhí)行所述預先規(guī)定的命令,從軟件可 以要求高速緩沖數(shù)據(jù)的傳送及屬性操作,所以可以獲得這種高速緩沖 存儲器,即,結(jié)構(gòu)適合積極接收軟件的控制進行處理的高速緩沖存儲 器。而且,也可以是,所述高速緩沖存儲器,與高速緩沖數(shù)據(jù)的管理單 位即高速緩沖項相對應(yīng),具有標簽存儲部,存儲標簽,該標簽示出 存儲器地址的上位部,該存儲器地址與所述高速緩沖項中存儲的高速 緩沖數(shù)據(jù)相對應(yīng);以及標志存儲部,存儲以下標志有效標志,示出 所述高速緩沖項是否有效;臟標志,示出所述高速緩沖項是否被進行 過寫入操作;弱標志,示出所述高速緩沖項的訪問順序被強制設(shè)為最 舊;所述高速緩沖存儲器,按照來自所述傳送及屬性控制單元的請求, 執(zhí)行以下操作中的一個操作填入操作,在命中指定地址的高速緩沖 項不存在的情況下,通過選擇成為置換對象的高速緩沖項,將存儲器 中與所述指定地址相對應(yīng)的數(shù)據(jù)載入所述選擇的高速緩沖項中,并設(shè)
定標簽并設(shè)置有效標志;接觸操作,在命中指定地址的高速緩沖項不 存在的情況下,通過選擇成為置換對象的高速緩沖項,來設(shè)定標簽并 設(shè)置有效標志,而不是將數(shù)據(jù)從存儲器載入到所述被選擇的高速緩沖 項;回寫操作,在命中指定地址的高速緩沖項存在且已經(jīng)設(shè)置了臟禾示 志的情況下,將該高速緩沖項的數(shù)據(jù)保存到存儲器,并復位臟標志; 無效化操作,在命中指定地址的高速緩沖項存在的情況下,復位有効: 標志,而不是按照臟標志的狀態(tài)將該高速緩沖項的數(shù)據(jù)保存到存儲器; 回寫兼無效化操作,在命中指定地址的高速緩沖項存在的情況下,當 臟標志已被設(shè)置時,將該高速緩沖項的數(shù)據(jù)保存到存儲器,并復位臟 標志及有效標志,當臟標志已被復位時,則只復位該高速緩沖項的有 效標志;以及最舊化操作,在命中指定地址的高速緩沖項存在的情況 下,設(shè)置該高速緩沖項的弱標志。根據(jù)該結(jié)構(gòu),所述六種操作具有提高高速緩沖命中率、減少不必 要的總線交易、總線交易的均衡化(時間分布)的效果,通過在軟件的積 極控制下進行處理,來提高高速緩沖效率,這種結(jié)構(gòu)是最適合的。而且,也可以是,所述傳送及屬性控制單元還具有地址調(diào)整部,該 地址調(diào)整部進行調(diào)整,使所述地址范圍的開頭及末尾示出高速緩沖項 的開頭數(shù)據(jù),該高速緩沖項是所述高速緩沖存儲器的高速緩沖數(shù)據(jù)的 管理單位;所述操作請求部,向所述高速緩沖存儲器依次請求對多個 地址的所述操作,該多個地址包含在所述調(diào)整后的地址范圍中。根據(jù)該結(jié)構(gòu),所述地址調(diào)整部進行調(diào)整,使所述地址范圍的開頭 及末尾示出所述高速緩沖項的開頭數(shù)據(jù),程序設(shè)計者和編譯程序無需 管理高速緩沖存儲器的線邊界或者線大小,這樣可以減輕高速緩沖管 理的負擔。而且,也可以是,所述傳送及屬性控制單元,進一步具有指令存 儲部,存儲多個指令和與各個指令相對應(yīng)的地址范圍;以及指令選擇 部,從所述存儲的多個指令中選擇一個指令;所述操作請求部,依次 請求對屬于與所述被選擇的指令相對應(yīng)的地址范圍的多個地址的、由
該指令所示的操作。而且,優(yōu)選的是,所述指令選擇部,在還沒有完成關(guān)于所述被選擇的指令的所有請求之前,選擇其他指令;所述操作請求部,依次請求 對地址的操作,該地址是在以前的指令再次被選擇的情況下對該指令 尚未請求的地址。根據(jù)該結(jié)構(gòu),所述傳送及屬性控制單元可以保持多個指令進行處 理,所以適合以下情況,例如所述處理器進行多任務(wù)處理的情況下各 任務(wù)發(fā)出例如所述多個命令的情況。而且,也可以是,所述傳送及屬性控制單元,進一步具有執(zhí)行判 斷部,判斷所述處理器是否對預測地址執(zhí)行了特定的命令,該預測地 址是與下次預定的請求有關(guān)而決定的地址;以及實效地址生成部,在 判斷為肯定的情況下,通過在所述預測地址加上規(guī)定的偏移值或減去 規(guī)定的偏移值,來生成實效地址;所述操作請求部,對所述生成的實 效地址請求所述操作。而且,優(yōu)選的是,所述傳送及屬性控制單元還具有指令存儲部,存 儲多個指令和與各個指令相對應(yīng)的地址范圍;所述執(zhí)行判斷部對所述 被存儲的各指令進行判斷,判斷所述處理器是否對預測地址執(zhí)行了特 定的命令,該預測地址與所述存儲的各指令相對應(yīng);所述傳送及屬性 控制單元還具有指令選擇部,從判斷為肯定的指令中選擇一個指令; 所述實效地址生成部,通過在預測地址加上規(guī)定值或減去規(guī)定值來生 成實效地址,該預測地址與所述選擇的指令相對應(yīng);所述操作請求部 請求如下操作,該操作是由所述選擇指令所示出的操作,并且該操作 是對所述生成的實效地址進行的操作。根據(jù)該結(jié)構(gòu),所述指定的命令特別適合附預取命令的情況,并且 對操作對象請求所述操作與對操作對象執(zhí)行命令同步,所以能有效地 操作高速緩沖項。而且,也可以是,所述傳送及屬性控制單元還具有地址輸出部,依 次輸出指定各高速緩沖項的地址,該高速緩沖項是所述高速緩沖存儲
器的高速緩沖數(shù)據(jù)的管理單位;所述操作請求部向所述高速緩沖存儲 器請求對一個以上的高速緩沖項的依次操作,該一個以上的高速緩沖 項包括根據(jù)所述輸出的地址所指定的高速緩沖項,所述高速緩沖存儲 器按照所述請求執(zhí)行依次操作。在此,所述操作也可以是回寫操作。根據(jù)該結(jié)構(gòu),很明顯有利于總線交易的均衡化(時間分布)。 而且,也可以是,所述指令輸入部從所述處理器接收以下指令單 獨指令,指示對單一地址的操作;命令觸發(fā)指令,指示針對多個地址 進行的操作與所述處理器執(zhí)行的特定命令同步進行,該多個地址包含 在地址范圍內(nèi);區(qū)域指令,指示針對多個地址進行的操作與所述處理 器執(zhí)行的特定命令非同步進行,該多個地址包含在地址范圍內(nèi);自動 清除指令,指示依次回寫高速緩沖數(shù)據(jù);所述操作請求部,按照預先 設(shè)定的優(yōu)先順序,選擇與各指令相對應(yīng)的操作請求,并向所述高速緩 沖存儲器請求操作。在此,所述預先設(shè)定的優(yōu)先順序可以是所述指令的順序。 根據(jù)該結(jié)構(gòu),可以按照與各操作的執(zhí)行模式相對應(yīng)的恰當?shù)捻樞?來請求操作。另外,本發(fā)明不僅是作為所述高速緩沖存儲器系統(tǒng)來實現(xiàn),而且 也可以作為高速緩沖存儲器系統(tǒng)的控制方法來實現(xiàn),該控制方法是由 高速緩沖存儲器系統(tǒng)包括的具有特征性的單元來執(zhí)行的處理作為步驟 的方法。根據(jù)本發(fā)明的高速緩沖存儲器系統(tǒng),通過使處理器執(zhí)行所述預先 規(guī)定的命令,軟件可以請求高速緩沖數(shù)據(jù)的傳送及屬性操作,所以有 利于得到具有以下結(jié)構(gòu)的高速緩沖存儲器系統(tǒng),S卩,積極接收來自軟 件的控制以進行處理的結(jié)構(gòu)。為了提高高速緩沖效率而采用的所述操作具有提高高速緩沖效率 的效果,并在軟件的積極控制下進行這些操作時,可以實現(xiàn)硬件和軟 件的功能分擔恰到好處,其結(jié)果,可以避免通過自主控制提高高速緩
沖效率而導致硬件的規(guī)模過大。
圖1是示出了本發(fā)明實施方式涉及的計算機系統(tǒng)的整體結(jié)構(gòu)例的方框圖,該計算機系統(tǒng)包含處理器、高速緩沖存儲器、存儲器、TAC。 圖2是示出了高速緩沖存儲器的結(jié)構(gòu)例的方框圖。 圖3是示出了使用標志更新的例子的圖。圖4(a)是示出了不存在弱標志(weak flag)的情況下高速緩沖項 (cache entry)被置換的圖,圖4(b)是示出了置換處理中弱標志W(wǎng)的作 用的說明圖。圖5是示出了高速緩沖存儲器的工作原始(primitive)處理的一個 例子的流程圖。圖6是示出了高速緩沖存儲器的自動清除(auto cleaner)處理的 一個例子的流程圖。圖7是示出了變化實施例涉及的高速緩沖項的結(jié)構(gòu)例的圖。圖8是示出了高速緩沖存儲器和TAC之間的接口的一個例子的圖。圖9是示出了 TAC的結(jié)構(gòu)例的方框圖。圖lO(a)是示出了命令的一個例子的圖,該命令的內(nèi)容為在工作原 始寄存器寫入指令,圖10(b)是示出了指令的一個例子的圖。圖ll(a)是示出了在起始地址寄存器寫入起始地址的命令的一個 例子的圖,圖ll(b)是示出了在大小寄存器寫入大小的命令的一個例子 的圖,圖ll(c)是示出了在指令寄存器寫入指令的命令的一個例子的圖, 圖ll(d)是示出了指令的一個例子的圖。圖12(a)是示出了在TAC控制寄存器寫入指令的命令的一個例子 的圖,圖12(b)是示出了指令的一個例子的圖。圖13是說明了地址調(diào)整的內(nèi)容的概念圖。圖14是示出了地址存儲部的結(jié)構(gòu)的方框圖。
圖15是示出了區(qū)域指令控制部的區(qū)域指令控制處理的一個例子 的流程圖。圖16是示出了命令觸發(fā)指令(instruction triggered command)控制部的命令觸發(fā)指令控制處理的一個例子的流程圖。圖17是示出了自動清除控制部的自動清除控制處理的一個例子 的流程圖。圖18是示出了操作請求部的操作請求處理的一個例子的流程圖。符號說明1處理器 2存儲器 3高速緩沖存儲器4 TAC(Transfer and Attribute Controller:傳送及屬性控制器)20地址寄存器 21存儲器I/F22多路解調(diào)器(Demultiplexer) 30解碼器31a 31d通路(way) 32a 32d比較器 33a 33d"與"電路 34 "或"電路 35選擇器 36選擇器 37多路解調(diào)器 38控制部40指令輸入(command entry)部 41區(qū)域指令控制部42命令觸發(fā)指令控制部 43自動清除控制部 44操作請求部 401工作原始寄存器 402起始地址寄存器 403大小寄存器 404指令寄存器 405TAC控制寄存器 411地址調(diào)整部 412指令存儲部 413指令選擇部 421地址調(diào)整部 422指令存儲部 423執(zhí)行判斷部 424指令選擇部425實效地址(実効7Kl/7)生成部 431清除地址輸出部具體實施方式
以下,參照
本發(fā)明的實施方式。 <全體結(jié)構(gòu)>圖1是示出計算機系統(tǒng)的全體結(jié)構(gòu)的方框圖,該計算機系統(tǒng)含有 本發(fā)明實施方式的處理器1、存儲器2、高速緩沖存儲器3、 TAC4。 本實施方式的高速緩沖存儲器3和TAC4相當于本發(fā)明的高速緩沖存 儲器系統(tǒng)。TAC4通過執(zhí)行處理器1預先規(guī)定的命令接收指令,該指令示出 了高速緩沖數(shù)據(jù)的傳送及屬性操作和指定該操作對象的地址,并且所 述TAC4向高速緩沖存儲器3請求該指令所示出的操作。
如通常的一般高速緩沖存儲器一樣,高速緩沖存儲器3按照處理 器1訪問存儲器,進行數(shù)據(jù)的高速緩沖存儲。還有,處理器1不進4亍 存儲器訪問處理的時候,按照來自TAC4的請求,執(zhí)行6種高速纟愛沖 數(shù)據(jù)的傳送及屬性操作,以及執(zhí)行自動清除。該6種操作被稱作工作 原始操作。關(guān)于工作原始操作及自動清除,以后詳細說明。想通過利用軟件來超越由硬件自主控制時高速緩沖效率不能超越 的界限時,本發(fā)明的高速緩沖存儲器系統(tǒng)的如上結(jié)構(gòu),適合積極接收 來自軟件的控制。<高速緩沖存儲器的結(jié)構(gòu)>以下,說明在4通路集聯(lián)方式高速緩沖存儲器適用了本發(fā)明的個青 況的結(jié)構(gòu),該4通路集聯(lián)方式高速緩沖存儲器是高速緩沖存儲器3的 具體例子。圖2是示出高速緩沖存儲器3的結(jié)構(gòu)例的方框圖。如該圖所示, 高速緩沖存儲器3包括地址寄存器20、存儲器I/F21、多路解調(diào)器 22、解碼器30、 4個通路31a 31d(以下簡稱為通路0 3)、 4個比較 器32a 32d、 4個"與"電路33a 33d、"或"電路34、選擇器35、 36、 多路解調(diào)器37、控制部38。多路解調(diào)器22按照來自控制部38的控制優(yōu)先選擇處理器發(fā)出的 存儲器2的訪問地址,當沒有來自處理器l的存儲器訪問時,其選擇 TAC4發(fā)出的地址。地址寄存器20是存儲選擇的訪問地址的寄存器。該訪問地址為 32比特。如圖2所示,訪問地址從最高位的比特開始,按照順序包括 21比特的標簽地址、4比特的組索弓l(圖中的SI)、 5比特的字索弓K圖 中的WI)。在此,標簽地址指定映射到通路上的存儲器中的區(qū)域(該大 小為組數(shù)xi央)。該區(qū)域的大小是2k字節(jié),是由比標簽地址低位的地址 比特(A10 A0)所決定的大小,這也是1個通路的大小。組索弓KSI) 指跨越通路0 3的多個組之一。由于組索引是4比特,因此該組數(shù)是 16組。用標簽地址和組索引來確定的高速緩沖項是置換單位,高速緩
沖項存儲在高速緩沖存儲器的情況下,被稱為線數(shù)據(jù)或者線。線數(shù)據(jù)的大小是128字節(jié),是由比組索弓l低位的地址比特所決定的大小。若 設(shè)1個字為4字節(jié)時,則1個線數(shù)據(jù)是32字。字索引(WI)是指,構(gòu)成 線數(shù)據(jù)的多個字中的1個字。地址寄存器20中的最低位2比特(A1, AO),在字訪問時被忽視。存儲器I/F21是用于從高速緩沖存儲器3訪問存儲器2的I/F, 例如,從高速緩沖存儲器3向存儲器2進行數(shù)據(jù)回寫(writeback),或 從存儲器2向高速緩沖存儲器3裝入數(shù)據(jù)等。解碼器30解碼組索引的4比特,選擇跨越4個通路0 3的16 組中的1個。4個通路0 3是具有同樣結(jié)構(gòu)的4個通路,且具有4x2k字節(jié)的 容量。各通路有16個高速緩沖項。1個高速緩沖項包括:有效標志(valid flag)V、 21比特的標簽、128字節(jié)的線數(shù)據(jù)、弱標志W(wǎng)、使用標志U、 臟標志(Dirtyflag)D。標簽是21比特的標簽地址的復制。線數(shù)據(jù)是由標簽地址及組索引 所確定的塊中的128字節(jié)數(shù)據(jù)的復制。有效標志V示出該高速緩沖項的數(shù)據(jù)有效與否。弱標志W(wǎng)對處理器的訪問而言,其示出了是否是訪問頻率低的訪 問,對高速緩沖存儲器的置換控制而言,其將該高速緩沖項的訪問J頓 序強制設(shè)為最舊(oldest),即示出將訪問該高速緩沖項的時期認定為比 訪問其他任何高速緩沖項的時期都早。弱標志W(wǎng)示出最強的置換對象, 就是在其他高速緩沖項之前最先逐出的置換對象。使用標志U示出了是否訪問過高速緩沖項,該使用標志U ^f戈替 LRU方式中高速緩沖項之間的訪問順序數(shù)據(jù)而被使用。更準確地說, 使用標志U的1表示進行過訪問,而0表示沒有進行過訪問。然而, 1個組內(nèi)的4個通路的使用標志U全部是1的情況下,則將使用^^志 U設(shè)成1的通路之外其他通路的使用標志U都復位成0。換言之,使 用標志U示出了訪問時期是舊還是新的2個相對狀態(tài)。即,使用標志
U為1的高速緩沖項表示在使用標志為0的高速緩沖項之后被訪問過。 臟標志D示出處理器是否對該高速緩沖項進行了寫入,即是否有必要在存儲器回寫,因為當存儲在線中的數(shù)據(jù)由于寫入有可能與存儲器中的數(shù)據(jù)不同,所以要回寫。(進行了寫入時,存儲在線上的數(shù)據(jù)與存儲器中的數(shù)據(jù)不同,所以要進行回寫)比較器32a進行比較,即,比較地址寄存器20中的標簽地址和由組索引所選擇的組中包含的4個標簽中的通路0的標簽是否一致。至于比較器32b 32c,除了與通路31b 31d對應(yīng)之外與比較器32a相同。"與"電路33a對有效標志與比較器32a的比較結(jié)果是否一致進 行邏輯積。該比較結(jié)果設(shè)為hO。比較結(jié)果hO為1的情況下,表示地 址寄存器20中的標簽地址與對應(yīng)組索引的線數(shù)據(jù)一致,即表示在通路 O存在命中。比較結(jié)果hO為O的情況下,則表示未命中。至于"與" 電路33b 33d,除了與通路31b 31d對應(yīng)之外與電路33a相同。該 比較結(jié)果hl h3,表示在通路1 3是存在命中還是未存在命中。"或"電路34取比較結(jié)果hO h3的邏輯和。將邏輯和的結(jié)果設(shè) 為hit。 hit表示在高速緩沖存儲器是否存在命中。選擇器35在被選擇的組的通路0 3的線數(shù)據(jù)中,選擇命中的通 路的線數(shù)據(jù)。選擇器36在由選擇器35選擇的32字的線數(shù)據(jù)中,選擇字索引 所示的1字。多路解調(diào)器37在高速緩沖項寫入數(shù)據(jù)時,向通路0 3的1個通 路輸出寫入數(shù)據(jù)。該寫入數(shù)據(jù)可以是字單位??刂撇?8則控制高速緩沖存儲器3的整體。 <使用標志U的說明>圖3示出了由控制部38更新使用標志的例子。該圖的上行,中 行,下行分別示出4個高速緩沖項,該4個高速緩沖項構(gòu)成跨越通路0 3的組N。 4個高速緩沖項右側(cè)的1或者0是使用標志的值。將該4
個使用標志U記為U0 U3。由于該圖上行是(U0 U3Xl, 0, 1, 0),通路0和通路2的高 速緩沖項表示有過訪問,通路1和通路3的高速緩沖項表示沒有訪問。在該狀態(tài)下,存儲器訪問命中了組N內(nèi)通路1的高速緩沖項時, 如該圖中行所示,更新為(U0 U3h(1, 1, 1, 0)。艮卩,如實線所示 通路1的使用標志Ul從0更新到1。進而,該圖中行的狀態(tài)下,在存儲器訪問命中了組N內(nèi)通路3的 高速緩沖項的情況下,如該圖下行所示,更新為(U0 U3X0, 0, 0, 1)。艮卩,如實線所示,通路3的使用標志U1從0更新到1。進而,如 虛線所示,通路3以外的使用標志U0 U2從1更新到0。這表示訪 問通路3的高速緩沖項在最后,訪問通路0 2的各高速緩沖項都在之 刖??刂撇?8,若在高速緩沖未命中并且又不存在W-l的高速緩沖 項時,則按照使用標志決定置換對象的高速緩沖項,以進行置換。例 如,在圖3上行,控制部38將通路1和通路3中的任一個決定為置換 對象,在圖3中行,將通路3決定為置換對象,在圖3下行,將通路 1 2中的任一個決定為置換對象。<弱標志\¥的說明>圖4(a)是示出了假設(shè)弱標志不存在的情況下高速緩沖項被置換的 狀況的圖,該圖是與弱標志存在的情況相比較的圖。與圖3—樣,在 該圖中也示出了 4個高速緩沖項,該4個高速緩沖項組成跨越通路0 3的組N。 4個高速緩沖項右側(cè)的1或者0是使用標志的值。還有,只 將數(shù)據(jù)E設(shè)成訪問頻率低的數(shù)據(jù),而數(shù)據(jù)A, B, C, D設(shè)成訪問頻率 高的數(shù)據(jù)。在圖4(a)的第1段的狀態(tài)下,若處理器1訪問數(shù)據(jù)E時,則發(fā)生 高速緩沖未命中。由于該高速緩沖未命中,例如,U=0的高速緩沖項 中訪問頻率高的數(shù)據(jù)C的高速緩沖項被訪問頻率低的數(shù)據(jù)E所置換, 則成為第2段的狀態(tài)。
在第2段的狀態(tài)下,若處理器1訪問數(shù)據(jù)C,則發(fā)生高速緩沖未 命中。由于該高速緩沖未命中,U=0的高速緩沖項中訪問頻率高的數(shù) 據(jù)D的高速緩沖項被訪問頻率高的數(shù)據(jù)C所置換,即成為第3段的狀 態(tài)。在第3段的狀態(tài)下,若處理器1訪問數(shù)據(jù)D,則發(fā)生高速緩沖未 命中。由于該高速緩沖未命中,例如,訪問頻率高的數(shù)據(jù)A的高速緩 沖項被訪問頻率高的數(shù)據(jù)D所置換,即成為第4段的狀態(tài)。同樣,即使在第4段中,使用頻率低的數(shù)據(jù)E還沒被選為置換對 象,依然留在高速緩沖存儲器中。在第5段的狀態(tài)下,使用頻率低的數(shù)據(jù)E因為最舊(11=0),所以 被選為置換對象,并被逐出。這樣,在模擬LRU方式中(即時在通常的LRU方式中),因為訪 問頻率低的數(shù)據(jù)E,在4通路的情況下最多導致4次高速緩沖未命中。圖4(b)是說明圖,其示出了在置換處理中弱標志W(wǎng)的作用。在圖4(b)的第1段的狀態(tài)(與圖4(a)的第1段相同)下,若處理器1 訪問數(shù)據(jù)E,則發(fā)生高速緩沖未命中。由于該高速緩沖未命中,例如, U=0的高速緩沖項中訪問頻率高的數(shù)據(jù)C的高速緩沖項被訪問頻率低 的數(shù)據(jù)E所置換。此時,處理器1在數(shù)據(jù)E的高速緩沖項上設(shè)值為1 的弱標志W(wǎng)。這樣成為第2段的狀態(tài),下次出現(xiàn)高速緩沖未命中時, 數(shù)據(jù)E的高速緩沖項將最先被逐出。在第2段的狀態(tài)下,若處理器1訪問數(shù)據(jù)C,則發(fā)生高速緩沖未 命中。由于該高速緩沖未命中,例如,W-l的高速緩沖項,即訪問頻 率低的數(shù)據(jù)E的高速緩沖項選為置換對象,訪問頻率高的數(shù)據(jù)C置換 數(shù)據(jù)E,成為第3段的狀態(tài)。這樣,通過設(shè)置弱標志W(wǎng),可以減少高速緩沖未命中,該高速緩 沖未命中是因為存在訪問頻率低的數(shù)據(jù)而導致的。<工作原始操作>其次,說明高速緩沖存儲器3所執(zhí)行的6種工作原始操作。工作
原始操作如下所述,其針對由TAC4所指定的單一地址進行。(1) 填入操作(Filling Operation):在命中所述地址的高速緩沖項 不存在的情況下,選擇成為置換對象的高速緩沖項,將對應(yīng)所述指定 地址的存儲器數(shù)據(jù)載入到所述選擇的高速緩沖項中,并設(shè)置標簽以及 設(shè)置有效標志V。該操作有利于提高高速緩沖的命中率。(2) 接觸操作(Touch Operation):在命中所述地址的高速緩沖項不 存在的情況下,選擇成為置換對象的高速緩沖項,不把數(shù)據(jù)從存儲器 載入到所述選擇的高速緩沖項,而直接設(shè)置標簽以及設(shè)置有效標志V。 該操作有利于提高高速緩沖命中率,也有利于減少不必要的總線交易 (bus transaction)。(3) 回寫操作(Write Back Operation):在命中所述地址的高速緩 沖項存在且設(shè)置了臟標志D的情況下,將該高速緩沖項的數(shù)據(jù)保存到 存儲器,并復位臟標志D。該操作有利于總線交易的均衡化(時間分布 temporal distribution)。(4) 無效化操作(Invalidation Operation):在命中所述地址的高速 緩沖項存在的情況下,不按照臟標志把高速緩沖項的數(shù)據(jù)保存到存儲 器,而直接復位有效標志V。該操作有利于減少不必要的總線交易。(5) 回寫兼無效化操作(Write Back and Invalidation Operation):在命中所述地址的高速緩沖項存在的情況下,若設(shè)置了 臟標志D,則將該高速緩沖項的數(shù)據(jù)保存到存儲器,并復位臟標志D 及有效標志V,若臟標志D已被復位,則只復位該高速緩沖項的有效 標志V。該操作有利于總線交易的均衡化(時間分布)。(6) 最舊化操作(Weakening Operation):在命中所述地址的高速 緩沖項存在的情況下,設(shè)置該高速緩沖項的弱標志W(wǎng)。該操作有利于 提高高速緩沖命中率。<工作原始處理>圖5是流程圖,示出高速緩沖存儲器3的工作原始處理的一個例 子的流程。TAC4發(fā)出工作原始操作的指定I和指定操作對象的地址A,
則啟動該工作原始處理,執(zhí)行被指定的工作原始操作。如果控制部38正處理所述處理器1訪問存儲器時,等到該處理 結(jié)束為止(S101為"是");而當處理器1不進行存儲器訪問的期間,多 路解調(diào)器22選擇TAC4發(fā)出的地址(S102)。在命中所述地址的高速緩沖項存在的情況下(S103為"是"),將該 命中的高速緩沖項作為操作對象,此時只有無效化、最舊化、回寫、 回寫兼無效化(S104)能夠被執(zhí)行。若被指定的工作原始操作是回寫或 者回寫兼無效化,并且當臟標志D是1時,進行回寫(S105 S106); 進而,若被指定的工作原始操作是回寫兼無效化,則復位有效標志 V(S107 S108)。而且,若被指定的工作原始操作是無效化,則有效 標志V(S110)被復位,若所述工作原始操作是最舊化,則弱標志 W(S109)被設(shè)置。在命中所述地址的高速緩沖項不存在的情況下(S103為"否"),只 能執(zhí)行填入和接觸(Slll)。在該情況下,選擇成為置換對象的高速緩沖 項(S112),當該高速緩沖項的臟標志D是1時,進行回寫(S113 S114),并設(shè)定標簽地址(S115);此外,若指定的工作原始操作是填入, 則將數(shù)據(jù)從存儲器載入該高速緩沖項(S117),之后設(shè)置V標志(S118)。<自動清除>其次,說明高速緩沖存儲器3執(zhí)行的自動清除。自動清除是一種 操作,其針對TAC4所指定的單一地址進行。關(guān)于所述地址所示組的各高速緩沖項(如果參照圖2具體地說,各 高速緩沖項是組索引SI所指示的組內(nèi)的4個高速緩沖項,該組索引包 含在所述地址中),若一同設(shè)有臟標志D及弱標志W(wǎng),則進行回寫。該操作有利于總線交易的均衡化(時間分布)。<自動清除處理>圖6是流程圖,其示出了高速緩沖存儲器3的自動清除處理的一 個例子的流程。從TAC4發(fā)出自動清除的指定I和指定操作對象的地 址A時啟動該自動清除處理。
如果控制部38正處理處理器1訪問存儲器時,等到該處理結(jié)束 為止(S201為"是");另外,處理器1不進行存儲器訪問的期間,多路 解調(diào)器22選擇TAC4發(fā)出的地址(S202)。組索引所指定的組的各高速緩沖項重復以下操作(S203 S207), 該組索引包含在所述地址中。若臟標志D是1且弱標志W(wǎng)是KS204為"是"),則進行回寫,并 復位臟標志D(S205 S206)。<變化實施例>另外,本發(fā)明的高速緩沖存儲器并非限定在所述實施方式中的結(jié) 構(gòu),其可以有多種變化。以下,對幾個變化實施例進行說明。(1) 所述實施方式中以4通路集聯(lián)高速緩沖存儲器為例進行了說 明,但是通路數(shù)可以是其他數(shù)目。還有,所述實施方式中說明了組數(shù) 為16的例子,但是組數(shù)也可以是其他數(shù)目。(2) 所述實施方式中以集聯(lián)高速緩沖存儲器為例進行了說明,但是 也可以是全關(guān)聯(lián)方式或直接映射(direct mapping)方式的高速緩沖存 儲器。(3) 所述實施方式中以線作為高速緩沖數(shù)據(jù)的置換單位進行了說 明,但是也可以把一條線劃分為4的各部分即子線作為置換單位。在 該情況下,各高速緩沖項分別存儲4個有效標志以及4個臟標志。圖7是該情況下的高速緩沖項的結(jié)構(gòu)圖。除了將線的1/4作為子 線以外,也可以將線的1/2, 1/8, 1/16作為子線。在該情況下,各高 速緩沖項分別存儲子線和同樣數(shù)目的有效標志及臟標志。至于置換單 位是以線作為單位還是以子線作為單位,可按照來自TAC4的指示來 進行切換。(4) 還可以設(shè)置其他通路(非活動通路inactive way),在該通路 中,作為高速緩沖存儲器的幾個功能(例如置換功能)被限制。至于是否 將各通路設(shè)成所述的非活動通路,還是設(shè)成可以利用所有功能的活動 通路,可按照來自TAC4的指示來進行切換。<高速緩沖存儲器及TAC之間的接口的一個例子>圖8是接口(收發(fā)的信號)的示例圖,該接口在高速緩沖存儲器3 和TAC4之間。該例子中可以考慮適用所述的變化實施例。用32比特的地址來指定操作對象。請求、接受請求、執(zhí)行完成被 用于關(guān)于發(fā)行請求的信號交換(handshake)中。填入、接觸、回寫、無 效化、回寫兼無效化、最舊化、自動清除等指定所請求的操作。將每 個通路設(shè)成活動通路還是設(shè)成非活動通路,則由3比特的活動通路來 指定。再填入(refill)單位指定將置換單位設(shè)成線還是子線。<TAC的結(jié)構(gòu)>其次說明關(guān)于TAC的結(jié)構(gòu)。圖9是方框圖,其示出了TAC4結(jié)構(gòu)例。為了向高速緩沖存儲器 3請求進行如下操作,即按照處理器l發(fā)出的指令的操作,所述TAC4 包括指令輸入部40、區(qū)域指令控制部41、命令觸發(fā)指令控制部42、 自動清除控制部43、操作請求部44。TAC4從處理器1接收的指令有以下單獨指令,指代對單一地 址的操作;命令觸發(fā)指令,指代對地址范圍包含的多個地址所進行的 操作與所述處理器執(zhí)行的特定命令同步地進行;區(qū)域指令,指代對地 址范圍包含的多個地址所進行的操作與所述處理器執(zhí)行的特定命令非 同步地進行;自動清除指令,指代按順序回寫高速緩沖數(shù)據(jù)。指令輸入部40是通過執(zhí)行處理器1預先規(guī)定的命令而寫入指令 和地址的寄存器組,該指令輸入部40包括工作原始寄存器401、起 始地址寄存器402、大小寄存器403、指令寄存器404、 TAC控制寄 存器405。所述寄存器,例如被賦予預先規(guī)定的存儲器地址等,這樣 就可以從處理器1直接進行訪問,并且存儲由處理器1所寫入的內(nèi)容。區(qū)域指令控制部41是一種功能塊,其最多可存儲4個區(qū)域指令, 并且生成與所存儲的指令相對應(yīng)的請求,該區(qū)域指令控制部41包括 地址調(diào)整部411、指令存儲部412、指令選擇部413。命令觸發(fā)指令控制部42是一種功能塊,其最多可存儲4個命令
觸發(fā)指令,并且與處理器1執(zhí)行的特定命令同步生成請求,該請求與 所存儲的指令相對應(yīng),該命令觸發(fā)指令控制部42包括地址調(diào)整部421、指令存儲部422、執(zhí)行判斷部423、指令選擇部424、實效地址 生成部425。自動清除控制部43是生成自動清除請求的功能塊,其包括清除地 址輸出部431。<指令輸入部>單獨指令被寫進工作原始寄存器401,并由工作原始寄存器401 來存儲。圖10(a)示出了一個命令的例子,該命令的內(nèi)容為在工作原始寄存 器401寫入單獨指令。該命令是標準的傳送命令(mov命令),其指定 作為源操作數(shù)的指令和作為目的操作數(shù)(destination operand)的工作 原始寄存器(PR)401。圖10(b)示出了命令格式的一個例子。該命令格式包括操作對象地 址和指定工作原始操作。指令輸入部40向操作請求部44輸出請求,該請求與存儲在工作 原始寄存器401的單獨指令相對應(yīng)。區(qū)域指令及命令觸發(fā)指令被寫入到起始地址寄存器402、大小寄 存器403、指令寄存器404。圖ll(a)示出了命令的一個例子,該命令是在起始地址寄存器 (SAR)402寫入起始地址的命令。該命令也與圖10(a)—樣是標準的傳 送命令。起始地址示出指令操作對象的開頭地址。圖ll(b)示出了命令的一個例子,該命令是在大小寄存器(Size Register)403寫入大小(Size)的命令。該命令也是標準的傳送命令。所 述大小表示所述操作對象的大小。大小的單位只要是預先規(guī)定的單位 就可以,可以是字節(jié)數(shù),也可以是線數(shù)(高速緩沖項數(shù))。圖ll(c)示出了命令的一個例子,該命令是在指令寄存器(CR)404 寫入指令的命令。該命令也是普通的傳送命令。
圖ll(d)示出命令格式的一個例子。該命令格式包括命令觸發(fā)標 志,該標志指定是否使操作請求與執(zhí)行特定命令觸發(fā)(即,指令是命令觸發(fā)指令還是區(qū)域指令);工作原始操作的指定;增量值(increment value),該增量值示出在指定的地址范圍內(nèi)作為操作對象的多個地址的 間隔。例如該增量值是線的大小時,可對地址范圍內(nèi)的所有高速緩沖數(shù) 據(jù)依次進行所希望的操作。而且,所述特定命令是附算后增量(post— increment)的載入和存儲指令的情況下,若該增量值作為該命令的算 后增量值,可對該命令的操作對象依次進行所希望的操作。若起始地址寄存器402、大小寄存器403、指令寄存器404中寫 入所述內(nèi)容,且該指令如果是區(qū)域指令,指令輸入部40輸出到區(qū)域指 令控制部41;如果是命令觸發(fā)指令,則輸出到命令觸發(fā)指令控制部42。自動清除指令位于TAC控制寄存器405內(nèi)預先規(guī)定的比特位置 上,更新自動清除標志的值,自動清除標志示出自動清除是設(shè)為有效 還是無效。圖12(a)示出了命令的一個例子,該命令是對自動清除標志(與 TAC控制寄存器405整體的內(nèi)容一起)進行更新的命令。該命令也是標 準的傳送命令。圖12(b)示出了命令格式的一個例子。該命令格式與TAC控制寄 存器的格式相對應(yīng),所述比特位置包含自動清除標志的新的值。所述指令輸入部40將存儲在TAC控制寄存器405的自動清除標 志的值輸出到自動清除控制部43 。<區(qū)域指令控制部>在區(qū)域指令控制部41中,地址調(diào)整部411從指令輸入部40獲得 有關(guān)區(qū)域指令的地址范圍,并且調(diào)整所述區(qū)域的兩端,以使兩端地址 分別指向高速緩沖項的開頭數(shù)據(jù),指令存儲部412最多可存儲4個調(diào) 整了地址范圍之后的區(qū)域指令,指令選擇部413選擇指令存儲部存儲 的一個區(qū)域指令(例如,存儲時間最長的一個),生成與選擇的區(qū)域指令
相對應(yīng)的請求,輸出到操作請求部44。 <地址調(diào)整部>
在此,詳細說明地址調(diào)整部411的地址調(diào)整功能的內(nèi)容。
地址調(diào)整部411,首先對起始地址寄存器402存儲的起始地址和 大小寄存器403存儲的大小進行相加。相加結(jié)果是指向地址范圍的結(jié) 束位置的結(jié)束地址。如所述一樣,大小由預先規(guī)定的單位來顯示就可 以,如果該單位是字節(jié),就作為字節(jié)地址進行相加;如果是線,就作 為線地址進行相加。
其次,地址調(diào)整部411調(diào)整起始地址及結(jié)束地址。
圖13是概念圖,用于說明該調(diào)整內(nèi)容。在該圖中,起始地址指向 線N的開頭以外的任意位置。起始地址調(diào)整為調(diào)整起始地址a(align start address a),以便指向下一個線(N+1)的開頭;或者調(diào)整為調(diào)整 起始地址b,以便指向包含起始地址數(shù)據(jù)的線N的開頭。調(diào)整起始地 址所指的線稱為起始線。
還有,結(jié)束地址指向線M的開頭以外的任意位置。結(jié)束地址調(diào)整 為調(diào)整結(jié)束地址a,以便指向僅前的線(M—1)的開頭;或者調(diào)整為調(diào) 整結(jié)束地址b,以便指向包含結(jié)束地址數(shù)據(jù)的線M的開頭。調(diào)整結(jié)束 地址所指的線稱為結(jié)束線。
如同所述,起始地址及結(jié)束地址,以線單位進行向內(nèi)調(diào)整或者向 外調(diào)整。進行了線單位的向外調(diào)整后,進一步也可以進行子線單位的 向外調(diào)整和向內(nèi)調(diào)整。
由于該調(diào)整處理器1可以指定任意起始地址和任意大小,而不管 線大小及線邊界。
<指令存儲部>
指令存儲部412,從地址調(diào)整部411獲得調(diào)整起始地址和調(diào)整結(jié) 束地址,并且從指令寄存器404獲得工作原始操作和增量值并保存。
圖14是示出了指令存儲部412結(jié)構(gòu)的方框圖。指令存儲部412 由4個寄存器4121 4124構(gòu)成,優(yōu)選的是可讀出各寄存器內(nèi)容的FIFO(先進先出First In First Out)方式的隊列(queue)。各寄存器存 儲從地址調(diào)整部411獲得的調(diào)整起始地址及調(diào)整結(jié)束地址和從指令寄 存器404獲得的增量值及工作原始操作。調(diào)整起始地址按照來自操作 請求部44的控制在每次請求時加上增量值,從而不斷地進行更新,作 為現(xiàn)行地址(current address)而使用。 <指令選擇部>
指令選擇部413選擇指令存儲部412存儲的指令之一(例如存儲 時間最長的一個,即FIFO隊列的開頭),生成表示現(xiàn)行地址和工作原 始操作的一個請求,并輸出到操作請求部44。
<區(qū)域指令控制處理>
圖15是流程圖,示出了區(qū)域指令控制部41的區(qū)域指令控制處理 的一個例子的流程。
若在指令輸入部40登記了區(qū)域指令時(S301為"是"),地址調(diào)整部 411調(diào)整該指令的地址(S302),并將地址調(diào)整后的指令登記到指令存儲 部412(S303)。該指令登記在尚未存儲指令的寄存器中;或者,在所 有寄存器都存儲指令的情況下,則是通過覆蓋最舊的指令來進行登記。 另外,現(xiàn)行地址可以覆蓋超過調(diào)整結(jié)束地址的(這表示對所有對象地址 請求操作已結(jié)束)指令,或者預先消除該指令;并且,在所有寄存器存 儲指令的情況下,也可以考慮不登記新的指令,而是使處理器1發(fā)生 例外。
若已經(jīng)登記了指令(S304為"是"),則指令選擇部413選擇最舊的 指令,將示出現(xiàn)行地址和工作原始操作的請求,并輸出到操作請求部 44(S305)。
另外,指令選擇部413也可以選擇除最舊指令之外的指令。具體 而言可以考慮這種選擇,例如,設(shè)置可知道發(fā)行了各指令的任務(wù)和現(xiàn)
在處理器1執(zhí)行的現(xiàn)行任務(wù)的結(jié)構(gòu)之后,比起最舊的指令優(yōu)先選擇現(xiàn) 行任務(wù)提供的指令。
該結(jié)構(gòu)(例如適合處理器1進行多任務(wù)處理的情況)可以在任務(wù)切
換之后優(yōu)先處理現(xiàn)行任務(wù)所提供的指令。而且,指令存儲部412按每 個指令存儲現(xiàn)行地址,所以再選擇其他的指令之后,選擇原來的指令 的情況下,可以向原來的指令請求操作,該操作針對還沒請求的地址。 <命令觸發(fā)指令控制部>
在命令觸發(fā)指令控制部42中,地址調(diào)整部421從指令輸入部40 獲得有關(guān)命令觸發(fā)指令的地址范圍,并且調(diào)整該區(qū)域兩端,使兩端地 址分別指向高速緩沖項的開頭數(shù)據(jù),指令存儲部422可最多存儲4個 調(diào)整地址范圍之后的命令觸發(fā)指令。執(zhí)行判斷部423判斷所述處理器 是否對預測地址執(zhí)行了特定的命令,該預測地址是對所存儲的各指令 所規(guī)定的地址,指令選擇部424選擇被判斷為肯定的指令之一(例如, 存儲時間最長的一個),將實效地址的請求輸出到操作請求部44,該實 效地址是實效地址生成部425生成的地址。
在此,地址調(diào)整部421及指令存儲部422分別與地址調(diào)整部411 及指令存儲部412相同,所以省略說明。
<執(zhí)行判斷部>
預測地址,以判斷處理器1是否執(zhí)行了把該預測地址作為操作數(shù)的指 定命令(具體而言,附算后增量的裝入命令、以及附算后增量的存儲指 令)。為了進行所述判斷,例如,處理器1將信號C提供給執(zhí)行判斷部 423,該信號C示出附算后增量的載入命令和附算后增量的存儲指令 正在執(zhí)行中,執(zhí)行判斷部423可以在提供信號C的期間對地址總線上
<指令選擇部、以及實效地址生成部>
指令選擇部424選擇執(zhí)行判斷部423判斷為肯定的指令之一(例 如最舊的一個)。當被選擇的指令示出填入或者接觸的情況下,實效地 址生成部425,在該指令的現(xiàn)行地址(所述的預測地址)上加上1個線的 偏移值(offset value),從而生成成為指令操作對象的實效地址。而且, 當被選擇的指令示出回寫、無效化、回寫兼無效化、或最舊化的情況
下,從該指令的現(xiàn)行地址減去1個線的偏移值,從而生成成為指令的
操作對象的實效地址。并且,指令選擇部424生成示出該實效地址和 指定工作原始操作的一個請求,并輸出到操作請求部44,并且通過在 現(xiàn)行地址上增加增量值來進行更新,該現(xiàn)行地址與被選擇的指令相對 應(yīng)。
另外,所述說明中將置換單位設(shè)為線,使用了 1個線的偏移值, 不過,當置換單位是子線的情況下,可以使用更小(例如2個子線)的偏 移值。
<命令觸發(fā)指令控制處理>
圖16是流程圖,示出了命令觸發(fā)指令控制部42的命令觸發(fā)指令 控制處理的一個例子的流程。
在指令輸入部40登記了命令觸發(fā)指令時(S401為"是"),地址調(diào)整 部421調(diào)整該指令的地址(S402),并將地址調(diào)整后的指令登記到指令 存儲部422(S303)。該指令與區(qū)域指令的情況一樣,登記在尚未存儲 指令的寄存器中,或者所有寄存器存儲指令的情況下是通過覆蓋最舊 的指令來進行登記。另外,在現(xiàn)行地址超過調(diào)整結(jié)束地址(即,發(fā)行完 請求,該請求是對地址范圍內(nèi)的所有對象地址的請求)的指令上進行覆 蓋,或者預先消除這樣的指令,并且,所有寄存器存儲指令的情況下, 也可以考慮不登記新的指令,而是使處理器l發(fā)生例外。
當?shù)怯浟酥噶顣r(S404為"是"),執(zhí)行判斷部423對所述特定命令 的操作數(shù)地址與各指令的現(xiàn)行地址進行比較(S405)。當存在地址一致 的指令時(S406為"是"),指令選擇部424選擇其中最舊的一個(S407), 實效地址生成部425,對被選擇的指令生成實效地址,指令選擇部424 將示出該實效地址和工作原始操作的請求輸出到操作請求部44,并且 通過在現(xiàn)行地址上增加增量值來進行更新,該現(xiàn)行地址與被選擇的指 令相對應(yīng)(S408)。
<自動清除控制部>
在自動清除控制部43中,清除地址輸出部431按順序輸出地址,
該地址是指定高速緩沖存儲器3的各高速緩沖項的地址。清除地址輸 出部431也可以是存儲地址并輸出的簡單的寄存器。
該清除地址(例如在4通路集聯(lián)方式的高速緩沖存儲器(參照圖2) 中)可以使用指定各組的地址。就圖2的例子具體說明,所述地址的代 表是從OxOOOOOOOO到0x00000780的間隔0x0080(組的單位地址)的 16個地址。因為所述地址中包含組索引SI的所有值,所以可以指定 所有組。
自動清除控制部43在從TAC控制寄存器405獲得示出自動清除 為有效的標志值的期間向操作請求部44輸出自動清除操作的請求,該 自動清除操作的請求是對從清除地址輸出部431輸出的地址進行的請 求。
<自動清除控制處理>
圖17是流程圖,其示出了自動清除控制部43的自動清除控制處 理的一個例子的流程。
在從TAC控制寄存器405獲得示出自動清除為有效的標志值的 情況下(S501為"是"),自動清除控制部43向操作請求部44輸出自動 清除操作(S502),該自動清除操作是對從清除地址輸出部431輸出的 地址來進行的。
<操作請求處理>
根據(jù)以上說明,操作請求部44最多可以接受4個請求,g卩,按 照單獨指令的請求,按照命令觸發(fā)指令的請求,按照區(qū)域指令的請求, 自動清除操作的請求。操作請求部44在同時接受這些請求的情況下, 根據(jù)預先設(shè)定的優(yōu)先順序選擇其中的一個請求,并將選擇的請求傳送 到高速緩沖存儲器3上。所述預先設(shè)定的優(yōu)先順序,也可以是所述指 令的順序。
還有,操作請求部44傳送了按照命令觸發(fā)指令的請求、按照區(qū)域 指令的請求、自動清除操作的請求的情況下控制指令的現(xiàn)行地址以及 清除地址,以便顯示該請求的下一個操作對象。
圖18是流程圖,示出了操作請求部44的操作請求處理的一個例 子的流程。
若存在按照單獨指令的請求(S601為"是"),則向高速緩沖存儲器 3傳送該請求(S602)。傳送了按照單獨指令的請求之后,操作請求部 44可以刪除工作原始寄存器的內(nèi)容。
若存在按照命令觸發(fā)指令的請求(S603為"是"),則向高速緩沖存 儲器3傳送該請求(S604)。與傳送的請求相對應(yīng)的指令的現(xiàn)行地址依 指令選擇部424選擇該指令的時候進行增量)超過調(diào)整結(jié)束地址的情況 下,可以刪除該指令。
若存在按照區(qū)域指令的請求(S606為"是"),則向高速緩沖存儲器 3傳送該請求(S607),之后通過區(qū)域指令控制部41使區(qū)域指令的現(xiàn)行 地址增加增量值,以此來更新(S608)。根據(jù)該更新,現(xiàn)行地址超過了 調(diào)整結(jié)束地址的情況下,可以刪除該指令。
若存在按照自動清除指令的請求(S609為"是"),則向高速緩沖存 儲器3傳送該請求(S610),之后控制自動清除控制部43,使清除地址 輸出部431輸出的地址加上單位地址。
<結(jié)論>
如同所述說明,TAC4通過執(zhí)行處理器1預先規(guī)定的命令,接收 與高速緩沖數(shù)據(jù)的傳送及屬性操作有關(guān)的指令,按照該指令向高速緩 沖存儲器3請求6種工作原始操作及自動清除操作;高速緩沖存儲器3 利用處理器1訪問存儲器時進行的通常的高速緩沖存儲的間隙時間, 執(zhí)行按照TAC4的請求的操作。
該6種工作原始操作及自動清除操作,具有提高高速緩沖命中率、 減少不必要的總線交易、總線交易的均衡化(時間分布)的效果,且通過 使處理器1執(zhí)行所述預先規(guī)定的命令(例如,參照圖10、圖11、圖12) 可以由軟件來請求。因此,為了提高高速緩沖效率且在軟件的積極控 制下進行所述操作,這種結(jié)構(gòu)是最適合的。
而且,所述的特定命令可以通過編譯程序插入到程序中。具體而
言,可以考慮以下作法編譯程序通過判斷數(shù)據(jù)的生存期間等獲知數(shù) 據(jù)最初被訪問的程序位置,在該位置之前插入請求填入操作的指令, 并且,類似地,獲知沒有數(shù)據(jù)被進行寫入操作的程序位置,在該位置 之后插入請求最舊化的指令??紤]高速緩沖存儲器3進行的6種工作原始操作及自動清除操作 的內(nèi)容不需要在通常的硬件上做大規(guī)模的增加、也不需要進行修改就可以實現(xiàn)高速緩沖存儲器3,所述通常的硬件是按照處理器訪問存儲器進行普通的高速緩沖存儲操作的硬件。TAC4也只具備以下簡單的功能獲得來自處理器1的指令、指 令的入隊列(queuing)和選擇、順序產(chǎn)生對多個地址的請求、管理向高 速緩沖存儲器3傳送請求。通過將硬件的結(jié)構(gòu)簡化為所述程度且便于接受來自軟件的控制, 可以使硬件和軟件的功能分擔恰到好處,其結(jié)果,避免硬件的規(guī)模過 大,就能通過自主控制提高高速緩沖效率。本發(fā)明可適用于提高軟件控制的高速緩沖存儲器,例如,適用于 單片(on—chip)高速緩沖存儲器,芯片外(off—chip)高速緩沖存儲器, 數(shù)據(jù)高速緩沖存儲器,命令高速緩沖存儲器等。
權(quán)利要求
1、一種高速緩沖存儲器系統(tǒng),其特征在于,包括高速緩沖存儲器,設(shè)在處理器和存儲器之間;以及傳送及屬性控制單元,控制所述高速緩沖存儲器;所述傳送及屬性控制單元包括指令輸入部,通過所述處理器執(zhí)行預先規(guī)定的命令,該指令輸入部接收如下指令,即,該指令示出高速緩沖數(shù)據(jù)的傳送及屬性操作和指定該操作對象的地址;以及操作請求部,向所述高速緩沖存儲器請求操作,該操作是對所述地址的操作且是由所述指令示出的操作。
2、 根據(jù)權(quán)利要求1所述的高速緩沖存儲器系統(tǒng),其特征在于, 所述高速緩沖存儲器,與高速緩沖數(shù)據(jù)的管理單位即高速緩沖項相對應(yīng),具有標簽存儲部,存儲標簽,該標簽示出存儲器地址的上位部,該存儲 器地址與所述高速緩沖項中存儲的高速緩沖數(shù)據(jù)相對應(yīng);以及標志存儲部,存儲以下標志有效標志,示出所述高速緩沖項是否 有效;臟標志,示出所述高速緩沖項是否被進行過寫入操作;弱標志, 示出所述高速緩沖項的訪問順序被強制設(shè)為最舊;所述高速緩沖存儲器,按照來自所述傳送及屬性控制單元的請求, 執(zhí)行以下操作中的一個操作填入操作,在命中指定地址的高速緩沖項不存在的情況下,通過選 擇成為置換對象的高速緩沖項,將存儲器中與所述指定地址相對應(yīng)的 數(shù)據(jù)載入所述被選擇的高速緩沖項中,并設(shè)定標簽并設(shè)置有效標志;接觸操作,在命中指定地址的高速緩沖項不存在的情況下,通過選 擇成為置換對象的高速緩沖項,來設(shè)定標簽并設(shè)置有效標志,而不是 將數(shù)據(jù)從存儲器載入到所述被選擇的高速緩沖項;回寫操作,在命中指定地址的高速緩沖項存在且已經(jīng)設(shè)置了臟標志 的情況下,將該高速緩沖項的數(shù)據(jù)保存到存儲器,并復位臟標志;無效化操作,在命中指定地址的高速緩沖項存在的情況下,復位有 效標志,而不是按照臟標志的狀態(tài)將該高速緩沖項的數(shù)據(jù)保存到存儲 器;回寫兼無效化操作,在命中指定地址的高速緩沖項存在的情況下, 當臟標志已被設(shè)置時,將該高速緩沖項的數(shù)據(jù)保存到存儲器,并復位 臟標志及有效標志,當臟標志已被復位時,則只復位該高速緩沖項的 有效標志;以及最舊化操作,在命中指定地址的高速緩沖項存在的情況下,設(shè)置該 高速緩沖項的弱標志。
3、 根據(jù)權(quán)利要求1或2所述的高速緩沖存儲器系統(tǒng),其特征在于, 所述指令輸入部進一步從所述處理器接收與所述指令相對應(yīng)的地址范圍;所述操作請求部向所述高速緩沖存儲器依次請求對多個地址的所 述操作,該多個地址屬于所述地址范圍。
4、 根據(jù)權(quán)利要求3所述的高速緩沖存儲器系統(tǒng),其特征在于, 所述傳送及屬性控制單元還具有地址調(diào)整部,該地址調(diào)整部進行調(diào)整,使所述地址范圍的開頭及末尾示出高速緩沖項的開頭數(shù)據(jù),該高 速緩沖項是所述高速緩沖存儲器的高速緩沖數(shù)據(jù)的管理單位;所述操作請求部,向所述高速緩沖存儲器依次請求對多個地址的所 述操作,該多個地址包含在所述調(diào)整后的地址范圍中。
5、 根據(jù)權(quán)利要求3或4所述的高速緩沖存儲器系統(tǒng),其特征在于, 所述傳送及屬性控制單元,進一步具有 指令存儲部,存儲多個指令和與各個指令相對應(yīng)的地址范圍;以及 指令選擇部,從所述存儲的多個指令中選擇一個指令; 所述操作請求部,依次請求對屬于與所述被選擇的指令相對應(yīng)的地 址范圍的多個地址的、由該指令所示的操作。
6、 根據(jù)權(quán)利要求5所述的高速緩沖存儲器系統(tǒng),其特征在于, 所述指令選擇部,在還沒有完成關(guān)于所述被選擇的指令的所有請求之前,選擇其他指令;所述操作請求部,依次請求對地址的操作,該地址是在以前的指令 再次被選擇的情況下對該指令尚未請求的地址。
7、 根據(jù)權(quán)利要求3所述的高速緩沖存儲器系統(tǒng),其特征在于, 所述傳送及屬性控制單元,進一步具有執(zhí)行判斷部,判斷所述處理器是否對預測地址執(zhí)行了特定的命令, 該預測地址是與下次預定的請求有關(guān)而決定的地址;以及實效地址生成部,在判斷為肯定的情況下,通過在所述預測地址加 上規(guī)定的偏移值或減去規(guī)定的偏移值,來生成實效地址;所述操作請求部,對所述生成的實效地址請求所述操作。
8、 根據(jù)權(quán)利要求7所述的高速緩沖存儲器系統(tǒng),其特征在于, 所述傳送及屬性控制單元還具有指令存儲部,存儲多個指令和與各個指令相對應(yīng)的地址范圍;所述執(zhí)行判斷部對所述被存儲的各指令進行判斷,判斷所述處理器 是否對預測地址執(zhí)行了特定的命令,該預測地址與所述存儲的各指令 相對應(yīng);所述傳送及屬性控制單元還具有指令選擇部,從判斷為肯定的指令 中選擇一個指令;所述實效地址生成部,通過在預測地址加上規(guī)定值或減去規(guī)定值來生成實效地址,該預測地址與所述選擇的指令相對應(yīng);所述操作請求部請求如下操作,該操作是由所述選擇指令所示出的 操作,并且該操作是對所述生成的實效地址進行的操作。
9、 根據(jù)權(quán)利要求1所述的高速緩沖存儲器系統(tǒng),其特征在于, 所述傳送及屬性控制單元還具有地址輸出部,依次輸出指定各高速緩沖項的地址,該高速緩沖項是所述高速緩沖存儲器的高速緩沖數(shù)據(jù)的管理單位;所述操作請求部包括請求存儲單元,存儲對一個以上的高速緩沖項 的任一個操作請求,該一個以上的高速緩沖項包括根據(jù)所述輸出的地 址所指定的高速緩沖項,且所述操作請求部在存儲有操作請求的期間 自發(fā)地持續(xù)進行操作請求。
10、 根據(jù)權(quán)利要求1或9所述的高速緩沖存儲器系統(tǒng),其特征在于,所述操作請求部向所述高速緩沖存儲器請求的操作是回寫操作; 所述高速緩沖存儲器按照所述請求執(zhí)行回寫操作。
11、 根據(jù)權(quán)利要求1或2所述的高速緩沖存儲器系統(tǒng),其特征在于,所述指令輸入部從所述處理器至少接收以下指令中的一個:單獨指 令,指示對單一地址的操作;命令觸發(fā)指令,指示針對多個地址進行 的操作與所述處理器執(zhí)行的特定命令同步進行,該多個地址包含在地 址范圍內(nèi);區(qū)域指令,指示針對多個地址進行的操作與所述處理器執(zhí) 行的特定命令非同步進行,該多個地址包含在地址范圍內(nèi);依次操作 指令,指示依次操作高速緩沖數(shù)據(jù);所述操作請求部,按照預先設(shè)定的優(yōu)先順序,選擇與各指令相對應(yīng) 的操作請求,并向所述高速緩沖存儲器請求操作。
12、 根據(jù)權(quán)利要求11所述的高速緩沖存儲器系統(tǒng),其特征在于, 所述操作請求部,按照所述指令的順序,向所述高速緩沖存儲器請求與各指令相對應(yīng)的操作。
13、 一種控制高速緩沖存儲器的控制方法,該高速緩沖存儲器設(shè)在處理器和存儲器之間,其特征在于,該方法包括以下步驟獲得步驟,從所述處理器獲得指令,該指令示出高速緩沖數(shù)據(jù)的傳送及屬性操作和指定該操作對象的地址;以及操作請求步驟,向所述高速緩沖存儲器請求操作,該操作是對所述 地址的操作且是由所述指令示出的操作。
全文摘要
本發(fā)明提供一種高速緩沖存儲器系統(tǒng),積極接收來自軟件的控制進行處理,該高速緩沖存儲器系統(tǒng)包括在處理器(1)和存儲器(2)之間被設(shè)置的高速緩沖存儲器(3)以及控制所述高速緩沖存儲器的TAC(TransferandAttributeController)(4),TAC(4)通過執(zhí)行處理器(1)預先規(guī)定的命令,來接收示出高速緩沖數(shù)據(jù)的傳送及屬性操作和指定該操作對象的地址的指令,并向所述高速緩沖存儲器請求操作,該操作是對所述地址的操作且是所述指令示出的操作。
文檔編號G06F12/08GK101151600SQ20068001055
公開日2008年3月26日 申請日期2006年2月8日 優(yōu)先權(quán)日2005年4月8日
發(fā)明者中島雅逸, 中西龍?zhí)? 岡林葉月, 田中哲也, 金子圭介 申請人:松下電器產(chǎn)業(yè)株式會社