欧美在线观看视频网站,亚洲熟妇色自偷自拍另类,啪啪伊人网,中文字幕第13亚洲另类,中文成人久久久久影院免费观看 ,精品人妻人人做人人爽,亚洲a视频

高速緩沖存儲器及其控制方法

文檔序號:6503850閱讀:180來源:國知局
專利名稱:高速緩沖存儲器及其控制方法
技術領域
本發(fā)明涉及用于使處理器的存儲器訪問高速化的高速緩沖存儲器及其控制方法。
背景技術
在近年來的微處理器中,將例如由SRAM(Static Random AccessMemory靜態(tài)存儲器)等構成的小容量、高速的高速緩沖存儲器配置在微處理器的內部或其附近,并在高速緩沖存儲器中存儲數(shù)據(jù)的一部分,由此,使處理器的存儲器訪問高速化。
在計算機系統(tǒng)中,在從中央處理裝置向高速緩沖存儲器的讀訪問或寫訪問未命中(mishit)時,從主存儲裝置新讀取的數(shù)據(jù)的一部分作為條目(注冊條目)存儲在高速緩沖存儲器的空塊中。此時,在不存在空塊的情況下,需要條目置換處理,選擇多個塊中的某一個,將存儲在所選擇的塊中的條目返回主存儲裝置,使塊內成為空狀態(tài),在該空塊中存儲新讀取的數(shù)據(jù)。在上述條目置換處理中,一般采用選擇存儲有最早以前參照過的數(shù)據(jù)的塊的方法、即LRU(Least Recently Used最近最少使用)譯碼方式。通過該LRU譯碼方式,提高了高速緩沖存儲器的使用效率,其結果是提高了微處理器的執(zhí)行速度。
在微處理器所處理的程序中,存在雖然訪問頻率少、但一旦起動就必須高速處理的特殊的處理、和雖然訪問頻率高但執(zhí)行速度并沒有那么高的要求的處理。
因此,為了與此對應,在例如專利文獻1等的現(xiàn)有技術中,在高速緩沖存儲器中設置有凍結功能。凍結功能是指下述功能,即在高速緩沖存儲器中預先復制雖然訪問頻率少、但一旦起動就必須高速處理的程序,并禁止對該領域進行重寫。通過具有該功能,計算機系統(tǒng)可以在必要時從高速緩沖存儲器讀取程序來執(zhí)行,由此縮短執(zhí)行時間。此外,清除功能是在高速緩沖存儲器內不預先保存雖然訪問頻率高但執(zhí)行速度并沒有那么高的要求的程序及數(shù)據(jù)、從而釋放該區(qū)域的功能。通過具有該功能,可以使高速緩沖存儲器中具有余量,從而可以在高速緩沖存儲器中放入優(yōu)先級高的其他程序及數(shù)據(jù),由此提高高速緩沖存儲器的使用效率,縮短綜合執(zhí)行速度。
專利文獻1日本專利文獻特開2000-200221號公報但是,即使使用凍結功能或使用清除功能,還存在由于高速緩沖錯誤的產生而在進行替換時進行了無用的替換或無用的反寫的情況的問題。
例如,作為產生無用的替換的情況,有處理器寫入了所有的配置要素的情況。此時,即使將新的數(shù)據(jù)從存儲器向高速緩沖存儲器替換,由于所有的都被從處理器寫入,所以替換被無用地結束。
此外,作為產生無用的反寫的情況,有僅將高速緩沖條目作為工作數(shù)據(jù)使用的情況。此時,無論是否為最后可以被丟棄的數(shù)據(jù),都會產生無用的反寫。

發(fā)明內容
本發(fā)明的目的在于提供防止無用的替換和無用的反寫的高速緩沖存儲器。
為了解決上述技術問題,本發(fā)明的高速緩沖存儲器具有標志保持單元,與保持高速緩沖的單位數(shù)據(jù)的高速緩沖條目相對應地保持表示該高速緩沖條目是否有效的有效標志、和表示是否對該高速緩沖條目進行了寫入的臟標志;以及改變單元,根據(jù)來自處理器的指示,與高速緩沖條目的狀態(tài)相反地改變上述有效標志及臟標志中的至少一個。
結構也可以是上述改變單元不從存儲器加載數(shù)據(jù),而對高速緩沖條目設定作為標記的地址,并設置有效標志。
根據(jù)該結構,可以在高速緩沖存儲器上確保用于寫入排列等數(shù)據(jù)的高速緩沖條目,并且,可以防止將命運為被重寫的數(shù)據(jù)從存儲器無用地加載到高速緩沖存儲器。
此外,上述改變單元在保持有被重寫且沒有被反寫的數(shù)據(jù)的狀態(tài)下,對高速緩沖條目重置臟標志。
根據(jù)該結構,可以防止從保持臨時工作數(shù)據(jù)等命運為被丟棄的數(shù)據(jù)的高速緩沖條目進行無用的反寫。
這里,結構也可以是,上述高速緩沖存儲器還具有保持單元,保持由處理器指定的地址范圍;以及確定單元,確定保持屬于被保持的地址范圍內的數(shù)據(jù)的高速緩沖條目;上述改變單元對被確定的高速緩沖條目,改變上述有效標志及臟標志中的至少一個。
根據(jù)該結構,在由處理器指定的地址范圍內,可以防止對高速緩沖存儲器的無用的數(shù)據(jù)加載或向存儲器的無用的反寫。
這里,結構也可以是,上述確定單元具有第一變換單元,在上述地址范圍的開頭地址指向行數(shù)據(jù)的中途時,將該開頭地址變換為指向上述地址范圍中所包含的開頭行的起始行地址;第二變換單元,在上述地址范圍的末尾地址指向行數(shù)據(jù)的中途時,將該末尾地址變換為指向上述地址范圍中所包含的末尾行的末行地址;以及判斷單元,判斷是否存在保持與從上述起始行地址到末行地址的各行地址相對應的數(shù)據(jù)的高速緩沖條目。
根據(jù)該結構,處理器可以與高速緩沖存儲器的行容量及行邊界的地址無關地從任意的地址指定任意的地址(或任意的容量),來作為地址范圍。即,由于在處理器中沒有必要對高速緩沖存儲器的行容量及行邊界的地址進行管理,所以可以消除用于管理高速緩沖存儲器的負荷。
這里,結構也可以是,上述改變單元具有指令檢測單元,對執(zhí)行了帶有臟標志重置指示的存儲器訪問指令的情況進行檢測;以及標志重寫單元,根據(jù)該指令,對被訪問了的高速緩沖條目重置臟標志。
這里,結構也可以是,上述改變單元具有指令檢測單元,對執(zhí)行了帶有有效標志重置指示的存儲器訪問指令的情況進行檢測;以及標志重寫單元,根據(jù)該指令,對被訪問了的高速緩沖條目重置有效標志。
此外,關于本發(fā)明的高速緩沖存儲器的控制方法,也具有和上述同樣的單元、作用。
根據(jù)本發(fā)明的高速緩沖存儲器,可以在高速緩沖存儲器中確保用于寫入排列等的數(shù)據(jù)的高速緩沖條目,并且,可以防止將命運為被重寫的數(shù)據(jù)從存儲器無用地加載到高速緩沖存儲器。
此外,可以防止從保持有臨時工作數(shù)據(jù)等命運為被丟棄的數(shù)據(jù)的高速緩沖條目進行無用的反寫。
進而,處理器可以與高速緩沖存儲器的行容量及行邊界的地址無關地從任意的地址指定任意的地址(或任意的容量),來作為地址范圍。即,由于在處理器中沒有必要對高速緩沖存儲器的行容量即行邊界的地址進行管理,所以可以消除用于管理高速緩沖存儲器的負荷。
發(fā)明效果根據(jù)本發(fā)明的高速緩沖存儲器,可以根據(jù)處理器的指示,在高速緩沖存儲器中確保用于寫入排列等數(shù)據(jù)的高速緩沖條目,并且,可以防止將命運為被重寫的數(shù)據(jù)從存儲器無用地加載到高速緩沖存儲器。并且,可以防止從保持臨時工作數(shù)據(jù)等命運為被丟棄的數(shù)據(jù)的高速緩沖條目進行無用的反寫。


圖1是表示本發(fā)明的實施方式1中的包括處理器、高速緩沖存儲器、存儲器的系統(tǒng)的概略結構的框圖。
圖2是表示高速緩沖存儲器的結構例的框圖。
圖3是高速緩沖條目的詳細的比特結構的示意圖。
圖4是表示控制部的結構的框圖。
圖5是表示標志改變部的結構例的框圖。
圖6(a)表示在起始地址寄存器中寫入起始地址的指令的一個例子。(b)表示在容量(size)寄存器中寫入容量的指令的一個例子。(c)表示在指令寄存器中寫入指令的指令的一個例子。(d)是表示指令的一個例子。
圖7是起始整直器和末尾整直器的說明圖。
圖8是表示在標志重寫部407中的標志改變處理的一個例子的流程圖。
圖9是表示本發(fā)明的實施方式2中的高速緩沖存儲器的結構的框圖。
圖10表示高速緩沖條目的比特結構。
圖11是表示控制部的結構的框圖。
圖12表示標志更新部使用標志U的更新例。
圖13(a)是在不存在弱(weak)標志的情況下高速緩沖條目被替換的情況的示意圖。(b)是表示在替換處理中弱標志W的作用的說明圖。
圖14是表示在替換部中的U標志更新處理的流程圖。
圖15是表示在替換部中的替換處理的流程圖。
圖16是表示標志改變部的結構的框圖。
圖17表示指令格式的一個例子。
圖18是表示在標志重寫部中的W標志設定處理的一個例子的流程圖。
其中1處理器2存儲器3高速緩沖存儲器20地址寄存器21存儲器接口30譯碼器
31a~31d路32a~32d比較器33a~33d“與”電路34“或”電路35選擇器36選擇器37多路分配器38控制器39標記更新部40替換部41標記改變部131a~131d路138控制部139標記更新部140替換部141標記改變部401指令寄存器402起始地址寄存器403容量寄存器404加法運算器405a起始整直器405b起始整直器406a末尾整直器406b末尾整直器407標記重寫部407a標記重寫部
具體實施例方式
(實施方式1)(整體結構)圖1是表示本發(fā)明的實施方式1中的包括處理器1、高速緩沖存儲器3、存儲器2的系統(tǒng)的概略結構的框圖。如該圖所示,本發(fā)明的高速緩沖存儲器3設置在具有處理器1及存儲器2的系統(tǒng)中。
高速緩沖存儲器3具有有效標志V,對每個高速緩沖條目表示高速緩沖條目是否有效;臟標志D,表示是否對該高速緩沖條目寫入。高速緩沖存儲器3在不對保持由處理器1指定的地址的數(shù)據(jù)的高速緩沖條目反寫數(shù)據(jù)的情況下,將臟標志D從1變?yōu)?(不是臟),或者確保與由處理器1指定的地址相對應的高速緩沖條目,不從存儲器加載數(shù)據(jù)而將有效標志V變?yōu)?(有效)。
將臟標志D從1變?yōu)?是為了防止從保持最終被丟棄的臨時工作數(shù)據(jù)的高速緩沖條目進行無用的反寫的情況。此外,通過在確保高速緩沖條目,不從存儲器加載數(shù)據(jù)的情況下將有效標志V變?yōu)?(有效),可以預先確保用于進行配置等寫入的高速緩沖條目。
(高速緩沖存儲器的結構)以下作為高速緩沖存儲器3的具體例,說明在4路組聯(lián)方式的高速緩沖存儲器中適用本發(fā)明的情況的結構。
圖2是表示高速緩沖存儲器3的結構例的框圖。如該圖所示,高速緩沖存儲器3具有地址寄存器20、存儲器接口21、譯碼器30、4個路(線路(way))31a~31d(以下簡稱為路0~3)、4個比較器32a~32d、4個“與”電路33a~33d、“或”電路34、選擇器35、36、多路分配器37、控制器38。
地址寄存器20是保持對存儲器2的訪問地址的寄存器。該寄存器是32比特。如該圖所示,訪問地址從最高位的比特開始依次包括21比特的標記地址、4比特的組索引(圖中的SI)、5比特的字索引(圖中的WI)。這里,標記地址是指被映射(マツピング)到路的存儲器中的區(qū)域(其容量是組數(shù)×塊)。該區(qū)域的容量是由比標記地址還低位的地址比特(A10~A0)決定的容量即2k字節(jié),也是一個路的容量。組索引(SI)是指跨越路0~3的多個組之一。由于組索引是4比特,所以該組數(shù)是16組。由標記地址及組索引確定的高速緩沖條目是替換單位,在存儲于高速緩沖存儲器中的情況下稱為行數(shù)據(jù)或行(line)。行數(shù)據(jù)的容量是由比組索引還低位的地址比特決定的容量即128字節(jié)。若1個字是4字節(jié),則1行數(shù)據(jù)是32字。字索引(WI)是指構成行數(shù)據(jù)的多個字中的1個字。地址寄存器20中的最低位2比特(A1、A0)在字訪問時被忽視。
存儲器接口21是用于從高速緩沖存儲器3向存儲器2的數(shù)據(jù)的反寫以及從存儲器2向高速緩沖存儲器3的數(shù)據(jù)的加載等從高速緩沖存儲器3訪問存儲器2的接口。
譯碼器30對組索引的4比特進行譯碼,選擇跨越4個路0~3的16組中的一個。
4個路0~3是具有相同結構的4個路,具有4×2k字節(jié)的容量。各路具有16個高速緩沖條目。
圖3示出1個高速緩沖條目中的詳細的比特結構。如該圖所示,1個高速緩沖條目包括有效標記V0~V3、21比特的標記、128字節(jié)的行數(shù)據(jù)、臟標志D0~D3。
標記是21比特的標記地址的復制。
行數(shù)據(jù)是由標記地址及組索引確定的塊中的128字節(jié)數(shù)據(jù)的復制,由32字節(jié)的4個輔行構成。
有效標志V0~V3與4個輔行對應,表示輔行是否有效。
臟標志D0~D3與4個輔行對應,表示是否從處理器對該輔行進行了寫入,即表示雖然在輔行中存在被高速緩沖的數(shù)據(jù)但是否有必要為了與存儲器中的數(shù)據(jù)不同而通過寫入來反寫到存儲器中。
比較器32a對地址寄存器20中的標記地址和在由組索引選擇的組中包含的4個標記中的路0的標記是否一致進行比較。比較器32a~32c除了是與路31b~31d對應以外其他都與路32a相相同。
“與”電路33a對有效標志和比較器32a的比較結果是否一致進行比較。將該比較結果設為h0。當比較結果h0是1時,表示存在與地址寄存器20中的標記地址及組索引相對應的行數(shù)據(jù)、即在路0中命中的意思。當比較結果h0是0時,表示未命中?!芭c”電路33b~33d除了與路31b~31d對應以外其他都與路33a相同。該比較結果h1~h3表示在路1~3中是命中還是未命中。
“或”電路34取比較結果h0~h3的“或”。將該“或”的結果設為hit,hit表示是否命中高速緩沖存儲器。
選擇器35從所選擇的組中的路0~3的行數(shù)據(jù)中選擇命中的路的行數(shù)據(jù)。
選擇器36從由選擇器35選擇的32字的行數(shù)據(jù)中選擇字索引所示的1字。
多路分配器37在向高速緩沖條目寫入數(shù)據(jù)時,向路0~3中的1個輸出寫入數(shù)據(jù)。該寫入數(shù)據(jù)也可以是字單位。
控制部38進行高速緩沖存儲器3的整體控制。特別是根據(jù)來自處理器的指令及地址指定,進行V標志的改變和D標志的改變。
(控制部的結構)圖4是表示控制部38的結構的框圖。如該圖所示,控制部38包括標志更新部39、替換部40、標志改變部41。
標志更新部39與現(xiàn)有技術相同,為了反映高速緩沖存儲器的狀態(tài)而進行V標志、D標志的更新。
替換部40與現(xiàn)有技術相同,進行高速緩沖條目的替換。
標志改變部41根據(jù)來自處理器1的指令及地址指定,進行V標志、D標志的改變。該指令中有V標志設定指令和D標志設定指令。
(標志改變部的結構)圖5是表示標志改變部41的結構例的框圖。如該圖所示,標志改變部41具有指令寄存器401、起始地址寄存器402、容量寄存器403、加法運算器404、起始整直器405a、405b、末尾整直器406a、406b、標志重寫部407。
指令寄存器401是可以從處理器1直接訪問的寄存器,保持由處理器1寫入的指令。圖6(c)表示在指令寄存器401中寫入指令的指令的一個例子。該指令是普通的傳送指令(mov指令),指定指令作為源操作數(shù),指定指令寄存器(CR)401作為目的操作數(shù)。圖6(d)是表示指令格式的一個例子。該指令格式包括用于V標志設定指令的2比特的字段、用于D標志設定指令的2比特的字段、和用于指定輔行的4比特的字段。
例如,V標志設定指令如果是“10”,則指示設定為V=0(V重置指令),如果是“11”,指示設定為V=1(V設置指令),如果是“00”,則表示無效(無操作數(shù))。D標志設定指令也一樣。輔行指定字段是用于個別指定輔行的字段。在沒有個別指定的情況下,指定行(所有輔行)。
起始地址寄存器402是可以從處理器1直接訪問的寄存器,保持由處理器1寫入的起始地址。該起始地址表示應設定C標志的地址范圍的開始位置。圖6(a)表示在起始地址寄存器402中寫入起始地址的指令的一個例子。與圖6(c)同樣,該指令也是普通的傳送指令(mov指令)。
容量寄存器403是可以從處理器1直接訪問的寄存器,保持由處理器1寫入的容量。該容量表示從起始地址開始的地址范圍。圖6(b)表示在容量寄存器403中寫入容量的指令的一個例子。該指令也和圖6(c)一樣是普通的傳送指令(mov指令)。此外,容量的單位既可以是字節(jié)數(shù),也可以是行數(shù)(高速緩沖條目數(shù)),還可以是預先決定的單位。
加法運算器404將保持在起始地址寄存器402中的起始地址和保持在容量寄存器403中的容量相加。相加結果是指向地址范圍的終止位置的末尾地址。加法運算器404可以在容量是字節(jié)數(shù)指定的情況下作為字節(jié)地址相加,并在容量是行數(shù)指定的情況下作為行地址相加。
起始整直器405a、405b將起始地址調整到行邊界的位置。起始整直器405a向末尾地址的方向調整,405b向與末尾地址相反的方向調整。通過該調整,處理器1可以與行容量及行邊界無關地指定任意地址,作為起始地址。
末尾整直器406a、406b將末尾地址調整到行邊界的位置。末尾整直器406a向起始地址的方向調整,406b向與起始地址相反的方向調整。通過該調整,處理器1可以與行容量及行邊界無關地指定任意大小,作為上述容量。
圖7表示起始整直器405a、405b和末尾整直器406a、406b的說明圖。在該圖中,從處理器1指定的起始地址指向行N的中途的任意位置。起始整直器405a調整為指向下個行(N+1)的開頭,并將調整后的地址作為整直起始地址a輸出。起始整直器405b調整為指向包括起始地址的數(shù)據(jù)的行N的開頭,并將調整后的地址作為整直起始地址b輸出。將整直起始地址所指的行稱為起始行。
此外,末尾地址指向行M的中途的任意位置。末尾整直器406a調整為指向最近前面的行(M-1)的開頭,將調整后的地址作為整直末尾地址a輸出。末尾整直器405b調整為指向包括末尾地址的數(shù)據(jù)的行M的開頭,將調整后的地址作為整直末尾地址b輸出。整直末尾地址所指的行稱為末行。
如該圖所示,起始整直器405a及末尾整直器406a以行單位進行內側整直。起始整直器405b及末尾整直器406b以行單位進行外側整直。進而,在行單位的外側整直之后可以進一步進行輔行單位的外側整直和內側整直。
標志重寫部407根據(jù)指令從起始行到末行來設定V標志或D標志的值。此時,根據(jù)指令選擇起始行及末行進行內側整直還是外側整直。
(標志改變處理)圖8是表示在標志重寫部407中的標志改變處理的一個例子的流程圖。在該圖中,表示D重置指令和V設置指令。
在該圖中,在指令寄存器401中寫入D重置指令的情況下(S80),標志重寫部407從起始整直器405a、405b、末尾整直器406a、406b的輸出中選擇內側整直的起始行和末行(S81)。這里選擇內側整直是由于行N和行M中的起始地址和末尾地址的外側的數(shù)據(jù)并不一定被處理器1丟棄。
進而,標志重寫部407一邊按順序輸出從起始行到末行的各行地址,一邊進行循環(huán)1的處理(S82~S86)。標志重寫部407對各個行進行相同的處理,所以這里對1行的處理進行說明。
即,在高速緩沖存儲器3沒有從處理器1被訪問的期間內,標志重寫部407向地址寄存器20輸出行地址(S83),在比較器32a~32d中比較地址寄存器20的標記地址和高速緩沖條目的標記,判斷是否命中(S84)。進而,標志重寫部407在命中的情況下,針對命中的高速緩沖條目,將D0~D3標志重置為0(S85),在未命中的情況下,由于沒有登錄在高速緩沖存儲器中,所以什么也不作。
這樣,關于從起始行到末行的各個行,被登錄在高速緩沖存儲器3中的情況下,D0~D3標志被設定為0。標志重寫部407在循環(huán)1結束之后,清除指令寄存器401的指令(S98)。由此,可以防止從保持臨時字數(shù)據(jù)等被丟棄命運的數(shù)據(jù)的高速緩沖條目無用地進行反寫。
此外,在圖8中,在指令寄存器401中寫入V設置指令的情況下(S87),標志重寫部407從起始整直器405a、405b、末尾整直器406a、406b的輸出中選擇外側整直的起始行和末行(S88)。這里選擇外側整直是由于無法確保內側整直中從起始地址到末尾地址的容量。
進而,標志重寫部407一邊按順序輸出從起始行到末行的各行地址,一邊進行循環(huán)2的處理(S89~S97)。標志重寫部407對各行進行相同的處理,所以這里對1行的處理進行說明。
即,在高速緩沖存儲器3沒有從處理器1被訪問期間,標志重寫部407向地址寄存器20輸出行地址(S90),在比較器32a~32d中比較地址寄存器20的標記地址和高速緩沖條目的標記,判斷是否命中(S91)。進而,標志重寫部407在沒有命中的情況下,從與該行地址對應的組內的4個路中選擇一個LRU方式下替換對象的路(S92),并判斷所選擇的路的臟標志D0~D3的邏輯和是否是“1”(S93)。在判斷為該邏輯和是“1”即是臟的情況下,標志重寫部407僅反寫臟的輔行(S94)。在判斷出該邏輯和不是“1”即不臟的情況下,或者在反寫臟的輔行之后,標志重寫部407不從存儲器向高速緩沖條目加載數(shù)據(jù),而將行地址作為標記設定在高速緩沖條目中(S95),將有效標志V0~V3設置為“1”(S96)。這樣,確保了雖然沒有保持有效數(shù)據(jù)但設定為V0~V1=1的1行的高速緩沖條目。
進而,標志重寫部407在循環(huán)1結束之后清除指令寄存器401的指令(S98)。
由此,可以在高速緩沖存儲器中確保用于寫入排列等的數(shù)據(jù)的高速緩沖條目,并且防止無用的反寫。
如上所說明的那樣,根據(jù)本實施方式中的高速緩沖存儲器,利用D重置指令,可以防止從保持命運為被丟棄的數(shù)據(jù)的高速緩沖條目進行無用的反寫。此外,利用V設置指令,可以在高速緩沖存儲器中確保用于寫入排列等的數(shù)據(jù)的高速緩沖條目,并且防止無用的反寫。
此外,在上述實施方式中,說明了D重置指令和V設置指令,但對于V設置指令,也可以通過在圖8所示的S87~S98中刪除步驟S95并在步驟S96中將V0~V3重置為“0”來實現(xiàn)。由此,可以防止無用的反寫,從而釋放高速緩沖條目。
此外,D重置指令可以同樣地執(zhí)行圖8的S80~S86,但若考慮到如果利用存儲指令從處理器1寫入數(shù)據(jù)則D標志被設置的情況、以及由于D標志的設置而產生反寫動作的情況,則不能說很有實用性。但是,可以用于高速緩沖存儲器的測試動作及性能的評價及驗證等中。
(變形例)此外,本發(fā)明的高速緩沖存儲器并不限于上述實施方式的結構,可以進行各種變形。以下說明變形例的幾種。
(1)在上述實施方式中,對V0~V3標志、D0~D3標志同時設置或重置,但也可以以輔行單位進行設置或重置。
例如,在以輔行單位僅處理起始行和末行的情況下,標志重寫部407只要選擇被進行外側整直(行)的起始地址和末尾地址,進而通過進行外側整直(輔行)或內側整直(輔行),來計算起始行的輔行地址和末行的輔行地址,以輔行單位僅處理起始行和末行就可以。此外,處理器1只要在指令中的輔行指定字段中指定其主旨。
例如,在處理器1將容量寄存器403的容量指定為0,在指令中的輔行指定字段中指定了特定的輔行時,標志重寫部407只要僅將所指定的輔行作為對象進行處理就可以。
(2)標志改變部41的結構也可以具有指令檢測部,對帶臟標志重置指示的存儲器訪問指令已被執(zhí)行的情況進行檢測;標志重寫部,根據(jù)該指令,對被訪問了的高速緩沖條目重置臟標志。
進而,結構也可以是指令檢測部檢測出執(zhí)行了帶有效標志重置指示的存儲器訪問指令,標志重寫部根據(jù)該指令,對被訪問了的高速緩沖條目重置有效標志。
(3)在上述實施方式中,以4路組聯(lián)的高速緩沖存儲器為例進行了說明,但路數(shù)是多少都可以。此外,在上述實施方式中,說明了組數(shù)是16的例子,但組數(shù)是多少都可以。
(4)在上述實施方式中,以組聯(lián)的高速緩沖存儲器為例進行了說明,但也可以是全相聯(lián)方式的高速緩沖存儲器。
(5)在上述實施方式中,輔行的容量是行容量的1/4,但也可以是1/2、1/8、1/16等其他的容量。此時,各高速緩沖條目可以分別保持與輔行相同數(shù)量的有效標志及臟標志。
(實施方式2)在實施方式1中說明了進行V標志改變和D標志改變的結構,在本實施方式中,對在具有表示是否繼續(xù)使用(寫入及讀取)的W(weak)標志的高速緩沖存儲器中改變W標志的結構進行說明。
(高速緩沖存儲器的結構)圖9是表示本發(fā)明的實施方式2中的高速緩沖存儲器的結構的框圖。該圖的高速緩沖存儲器與圖2的結構相比,不同點是具有路131a~131d取代路31a~31d,以及具有控制部138取代控制部38。以下省略對相同點的說明,以不同點為中心進行說明。
路131a與路31a相比,不同點是在各高速緩沖條目中追加了W標志及U標志。131b~131d也同樣。
圖10表示高速緩沖條目的比特結構。一個高速緩沖條目保持有效標志V0~V3、21比特的標記、128字節(jié)的行數(shù)據(jù)、弱標志W、使用標志U及臟標志D0~D3。
其中,弱標志W對于來自處理器的訪問,表示是否繼續(xù)使用,關于高速緩沖條目中的替換控制,表示可以比其他高速緩沖條目最先清除的最弱的替換對象。這樣,由于弱標志W具有兩個意思,所以用清除處理和替換處理這兩個處理參照。
使用標志U表示是否存在對該高速緩沖條目的訪問,在由LRU方式中的未命中引起的替換時,替代4路的高速緩沖條目間的訪問順序數(shù)據(jù)來使用。更加正確地說,使用標志U的“1”表示存在訪問,“0”表示沒有。并且,若一個組內的4路的使用標志都成為“1”,則重置為“0”。換言之,使用標志U表示被訪問的時期是舊還是新這兩種相對的狀態(tài)。即,表示使用標志U為“1”的高速緩沖條目比使用標志U為“0”的高速緩沖條目先被訪問。
控制部138與控制部38相比,不同點在于,設定W標志,以及代替LRU方式中的訪問順序信息而使用使用標志U。
(控制部的結構)圖11是表示控制部138的結構的框圖。該圖的控制部138與控制部38比較,不同點在于,取代標志更新部39、替換部40、標志改變部41,而具有標志更新部139、替換部140、標志改變部141。
標志更新部139除了與標志更新部39相同地更新V標志、D標志之外,在高速緩沖存儲器被訪問時進行使用標志U的更新處理。
替換部140不是通過通常的LRU方式,而是通過將使用標志U作為訪問順序的虛擬LRU方式進行替換。并且,在替換處理時,將W=1的高速緩沖條目最先作為替換對象而選擇。
標志改變部141根據(jù)來自處理器1的指令,設定弱標志W。處理器1向高速緩沖存儲器3發(fā)行指示對已經不使用(寫入及讀取)的高速緩沖條目設定弱標志的指令。W=1的高速緩沖條目在高速緩沖錯誤時與使用標志U的值無關,最先作為替換對象。此外,如果W=1的高速緩沖條目是臟,則成為清除處理的對象。
(使用標志U的說明)圖12表示利用標志更新部39的使用標志U的更新例。該圖的上段、中段、下段表示構成跨越路0~3的組N的4個高速緩沖條目。4個高速緩沖條目右端的“1”或“0”分別是使用標志的值。將該4個使用標志U記做U0~U3。
在該圖上段,由于(U0~U3)=(1、0、1、0),所以表示路0、2的高速緩沖條目存在訪問,路1、3的高速緩沖條目不存在訪問。
在該狀態(tài)下,在存儲器訪問命中了組N內的路1的高速緩沖條目的情況下,如該圖中段所示,更新為(U0~U3)=(1、1、1、0)。即,如實線所示,路1的使用標志U從“0”更新為“1”。
進而,在該圖中段的狀態(tài)下,在存儲器訪問命中了組N內的路3的高速緩沖條目的情況下,如該圖下段所示,更新為(U0~U3)=(0、0、0、1)。即,如實線所示,路3的使用標志U1從“0”更新為“1”。并且,如虛線所示,除了路3以外的使用標志U0~U2從“1”更新為“0”。由此,表示路3的高速緩沖條目比路0~2的各高速緩沖條目先被訪問。
如果在高速緩沖錯誤時W=1的高速緩沖條目不存在,則替換部140根據(jù)使用標志決定替換對象的高速緩沖條目,來進行替換。例如,標志更新部39在圖5上段中,將路1和路3的某一個決定為替換對象,在圖5中段中,將路3決定為替換對象,在圖5下段中,將路0~2的某一個決定為替換對象。
(弱標志W的說明)圖13(a)是假定不存在弱標志的情況下的比較例,是高速緩沖條目被替換的情況的示意圖。在該圖中,與圖12一樣,表示構成跨越路0~3的組N的4個高速緩沖條目。4個高速緩沖條目右端的“1”或“0”分別是使用標志的值。此外,僅將數(shù)據(jù)E設為訪問頻率低的數(shù)據(jù),將數(shù)據(jù)A、B、C、D設為訪問頻率高的數(shù)據(jù)。
在該圖(a)的第一段的狀態(tài)中,若處理器1訪問數(shù)據(jù)E,則產生高速緩沖錯誤。由于該高速緩沖錯誤,例如從U=0的高速緩沖條目之中訪問頻率高的數(shù)據(jù)C的高速緩沖條目被替換為訪問頻率低的數(shù)據(jù)E,從而成為第二段狀態(tài)。
在第二段的狀態(tài)中,若處理器1訪問數(shù)據(jù)C,則產生高速緩沖錯誤。由于該高速緩沖錯誤,作為U=0的高速緩沖條目的訪問頻率高的數(shù)據(jù)D的高速緩沖條目被替換為訪問頻率高的數(shù)據(jù)C,從而成為第3段狀態(tài)。
在第三段的狀態(tài)中,若處理器1訪問數(shù)據(jù)D,則產生高速緩沖錯誤。由于該高速緩沖錯誤,例如,訪問頻率高的數(shù)據(jù)C的高速緩沖條目被替換為訪問頻率高的數(shù)據(jù)D,從而成為第4段狀態(tài)。
同樣,在第四段中,使用頻率低的數(shù)據(jù)E也沒有被選擇作為替換對象,留在高速緩沖存儲器中。
在第五段的狀態(tài)中,由于使用頻率低的數(shù)據(jù)E是最舊的(U=0),所以作為替換對象被選擇,并被清除。
這樣,在虛擬的LRU方式中(通常的LRU方式也同樣),在4路的情況下,由訪問頻率低的數(shù)據(jù)E有時最差會誘發(fā)四次高速緩沖錯誤。
圖13(b)是表示在替換處理中的弱標志W的作用的說明圖。
在該圖(b)的第一段的狀態(tài)中(與該圖(a)的第一段相同),若處理器1訪問數(shù)據(jù)E,則產生高速緩沖錯誤。由于該高速緩沖錯誤,例如從U=0的高速緩沖條目之中訪問頻率高的數(shù)據(jù)C的高速緩沖條目被替換為訪問頻率低的數(shù)據(jù)E。此時,處理器1在數(shù)據(jù)E的高速緩沖條目中設定弱標記W為1。從而,在下次的高速緩沖錯誤時,數(shù)據(jù)E的高速緩沖條目被最先清除,從而成為第二段狀態(tài)。
在第二段的狀態(tài)中,若處理器1訪問數(shù)據(jù)C,則產生高速緩沖錯誤。由于該高速緩沖錯誤,作為W=1的高速緩沖條目的訪問頻率低的數(shù)據(jù)E的高速緩沖條目作為替換對象而被選擇,被替換為訪問頻率高的數(shù)據(jù)C,從而成為第三段狀態(tài)。
這樣,通過設置弱標志W,可以減少因訪問頻率低的數(shù)據(jù)誘發(fā)高速緩沖錯誤。
(U標志更新處理)圖14是表示在替換部140中的U標志更新處理的流程圖。在該圖中,有效標志是“0”(無效)的高速緩沖條目的使用標志U被初始化為“0”。
在該圖中,替換部140在高速緩沖命中時(步驟S61),將由組索引選擇的組中的所命中的路的使用標志U設置為“1”(步驟S62),讀取該組內的其他路的使用標志U(步驟S63),判斷所讀取的使用標志U是否全部是“1”(步驟S64),如果不全部是“1”則結束,如果全部是“1”則將其他路的所有使用標志U重置為“0”(步驟S65)。
這樣,替換部140如圖12、13(a)(b)所示的更新例那樣更新使用標志。
(替換處理)圖15是表示在替換部140中的替換處理的流程圖。在該圖中,替換部140在存儲器訪問錯誤時(步驟S91),讀取由組索引選擇的組中的、4路的使用標志U及弱標志W(步驟S92),判斷是否存在W=1的路(步驟S93)。在判斷為不存在W=1的路時,選擇一個U=0的路(步驟S94)。此時,在存在多個使用標志U為“0”的路的情況下,替換部140隨機選擇一個。此外,在判斷為存在W=1的路的情況下,與U標志的值無關地選擇一個W=1的路(步驟S95)。此時,在存在多個弱標志W為“1”的路的情況下,替換部140隨機選擇一個。
進而,替換部140將該組中所選擇的路的高速緩沖條目作為對象進行替換(步驟S96),在替換后將該高速緩沖條目的使用標志U初始化為“1”,將弱標志W初始化為“0”(步驟S97)。此外,此時有效標志V、臟標志D分別被初始化為“1”、“0”。
這樣,在不存在W=1的路的情況下,從使用標志U是“0”的高速緩沖條目中選擇一個替換對象。
此外,在存在W=1的路的情況下,不論使用標志U是“0”還是“1”,從W=1的路的高速緩沖條目中選擇一個替換對象。由此,如圖13(a)、(b)所示,可以減少由訪問頻率低的數(shù)據(jù)留在高速緩沖存儲器中而誘發(fā)高速緩沖錯誤。
(標志改變部141的結構)圖16是表示標志改變部141的結構的框圖。該圖的結構與圖5所示的標志改變部141相比較,不同點為替代標志重寫部407而具有標志重寫部407a。
標志重寫部407a的不同點在于,除了標志重寫部407的功能之外,進行W標志的改變和使用標志U的改變。因此,指令寄存器401中,可以由處理器1對指示W標志的設定的W指令和指示U標志的設定的U指令進行設定。圖17表示這些指令格式的一個例子。該圖的指令格式在圖6(d)所示的指令格式上追加了W指令及U指令的字段。W指令及U指令的內容與D指令和V指令相同。
(W標志設定處理)圖18是表示在標志重寫部407a中的W標志設定處理的一個例子的流程圖。
在指令寄存器401中保持有W標志設定指令的情況下,標志重寫部407a一邊按順序輸出從起始行到末行的各行地址,一邊進行循環(huán)1的處理(S82~S86)。標志重寫部407a對各個行進行相同的處理,所以這里對1行的處理進行說明。
即,標志重寫部407a在高速緩沖存儲器3沒有從處理器1被訪問的期間,向地址寄存器20輸出行地址(S83),在比較器32a~32d中比較地址寄存器20的標記地址和高速緩沖條目的標記,判斷是否命中(S84)。進而,標志重寫部407a在命中的情況下,對命中的高速緩沖條目,將W標志設置為1(S85),在未命中的情況下,由于沒有登錄在高速緩沖存儲器中,所以什么也不作。
由此,關于從起始行到末行的各行,被登錄在高速緩沖存儲器3中的情況下,W標志被設定為“1”。
<U標志設定處理>
在指令寄存器401中保持有U標志設定指令的情況下,標志重寫部407a根據(jù)該指令設定U標志。通過在圖18中將W標志替換為U標志,來與W標志設定處理完全相同地執(zhí)行該處理。
如上說明,根據(jù)本實施方式中的高速緩沖存儲器,通過設定W標志,可以使W=1的高速緩沖條目在高速緩沖錯誤時作為最舊的高速緩沖條目而最先成為替換對象。此外,雖然使用標志U的值僅1比特,但由于訪問順序表示是舊是新,所以通過U標志設定處理,可以對從起始行到末行的各行設定訪問順序。例如,處理器1將想要留在高速緩沖存儲器3中的地址的數(shù)據(jù)作為地址范圍進行指定,從而發(fā)行設定U=1的U標志設定指令。
如上說明,根據(jù)本實施方式中的高速緩沖存儲器,通過設定W標志,可以使W=1的高速緩沖條目在高速緩沖錯誤時作為最舊的高速緩沖條目而最先成為替換對象。此外,雖然使用標志U的值僅1比特,但由于訪問順序表示是舊是新,所以通過U標志設定處理,可以對從起始行到末行的各行設定訪問順序。例如,處理器1只要將想要留在高速緩沖存儲器3中的地址的數(shù)據(jù)作為地址范圍進行指定,從而發(fā)行設定U=1的U標志設定指令就可以。相反地,可以將可以從高速緩沖存儲器3清除的數(shù)據(jù)作為地址范圍進行指定,從而發(fā)行設定U=0的U標志設定指令。
(變形例)(1)雖然W=1的高速緩沖條目最先成為替換對象,但在被替換之前的期間,若為臟,則控制部進行清除(反寫)也可以。
(2)如圖6(a)、(b)、(c)所示的各指令也可以通過編譯器插入程序中。此時,編譯器可以在不進行例如排列數(shù)據(jù)的寫入及在對壓縮動畫數(shù)據(jù)進行譯碼時的塊數(shù)據(jù)的寫入等進一步的寫入的程序位置上插入上述各指令。
工業(yè)實用性本發(fā)明適用于用于使存儲器訪問高速化的高速緩沖存儲器中,例如適用于單片高速緩沖存儲器、片外高速緩沖存儲器、數(shù)據(jù)高速緩沖存儲器、指令高速緩沖存儲器等中。
權利要求
1.一種高速緩沖存儲器,其特征在于,具有標志保持單元,與保持高速緩沖的單位數(shù)據(jù)的高速緩沖條目相對應地保持表示該高速緩沖條目是否有效的有效標志、和表示是否對該高速緩沖條目進行了寫入的臟標志;以及改變單元,根據(jù)來自處理器的指示,與高速緩沖條目的狀態(tài)相反地改變上述有效標志及臟標志中的至少一個。
2.如權利要求1所述的高速緩沖存儲器,其特征在于,上述改變單元不從存儲器加載數(shù)據(jù),而對高速緩沖條目設定作為標記的地址,并設置有效標志。
3.如權利要求2所述的高速緩沖存儲器,其特征在于,上述改變單元在保持有被重寫且沒有被反寫的數(shù)據(jù)的狀態(tài)下,對高速緩沖條目重置臟標志。
4.如權利要求2或3所述的高速緩沖存儲器,其特征在于,上述高速緩沖存儲器還具有保持單元,保持由處理器指定的地址范圍;以及確定單元,確定保持屬于被保持的地址范圍內的數(shù)據(jù)的高速緩沖條目;上述改變單元對被確定的高速緩沖條目,改變上述有效標志及臟標志中的至少一個。
5.如權利要求4所述的高速緩沖存儲器,其特征在于,上述確定單元具有第一變換單元,在上述地址范圍的開頭地址指向行數(shù)據(jù)的中途時,將該開頭地址變換為指向上述地址范圍中所包含的開頭行的起始行地址;第二變換單元,在上述地址范圍的末尾地址指向行數(shù)據(jù)的中途時,將該末尾地址變換為指向上述地址范圍中所包含的末尾行的末行地址;以及判斷單元,判斷是否存在保持與從上述起始行地址到末行地址的各行地址相對應的數(shù)據(jù)的高速緩沖條目。
6.如權利要求1所述的高速緩沖存儲器,其特征在于,上述改變單元具有指令檢測單元,對執(zhí)行了帶有臟標志重置指示的存儲器訪問指令的情況進行檢測;以及標志重寫單元,根據(jù)該指令,對被訪問了的高速緩沖條目重置臟標志。
7.如權利要求1所述的高速緩沖存儲器,其特征在于,上述改變單元具有指令檢測單元,對執(zhí)行了帶有有效標志重置指示的存儲器訪問指令的情況進行檢測;以及標志重寫單元,根據(jù)該指令,對被訪問了的高速緩沖條目重置有效標志。
8.一種高速緩沖存儲器的控制方法,其特征在于,該高速緩沖存儲器與保持高速緩沖的單位數(shù)據(jù)的高速緩沖條目相對應,具有表示該高速緩沖條目是否有效的有效標志、和表示是否對該高速緩沖條目進行了寫入的臟標志;根據(jù)處理器的指示,不從存儲器加載數(shù)據(jù),而對高速緩沖條目設定作為標記的地址并設置有效標志的步驟;根據(jù)處理器的指示,在保持被重寫且沒有被反寫的數(shù)據(jù)的狀態(tài)下,對高速緩沖條目重置臟標志的步驟。
全文摘要
本發(fā)明的高速緩沖存儲器與保持高速緩沖的單位數(shù)據(jù)的高速緩沖條目相對應地具有表示該高速緩沖條目是否有效的有效標志和表示是否對該高速緩沖條目進行了寫入的臟標志;并且具有標志改變部,該標志改變部根據(jù)來自處理器的指示,不從存儲器加載數(shù)據(jù),而對高速緩沖條目設定作為標記的地址,并設置有效標志,或者在保持被重寫且沒有被反寫的數(shù)據(jù)的狀態(tài)下對高速緩沖條目重置臟標志。
文檔編號G06F12/12GK1898654SQ20048003853
公開日2007年1月17日 申請日期2004年12月21日 優(yōu)先權日2003年12月22日
發(fā)明者中西龍?zhí)? 岡林葉月, 田中哲也, 宮阪修二 申請人:松下電器產業(yè)株式會社
網友詢問留言 已有0條留言
  • 還沒有人留言評論。精彩留言會獲得點贊!
1
颍上县| 黑河市| 中西区| 唐河县| 龙山县| 乐清市| 深圳市| 丁青县| 普兰店市| 宣恩县| 乐亭县| 灵武市| 马龙县| 河西区| 通渭县| 工布江达县| 彭山县| 临湘市| 莒南县| 房产| 晋江市| 呼图壁县| 五华县| 遵化市| 永仁县| 广南县| 黄冈市| 东安县| 贵港市| 嘉义市| 满洲里市| 巩留县| 澄迈县| 昌吉市| 白玉县| 磴口县| 东丰县| 都昌县| 晋宁县| 克拉玛依市| 南丹县|