專利名稱:信息處理裝置以及高速緩存控制方法
技術(shù)領(lǐng)域:
本發(fā)明涉及實(shí)現(xiàn)高速緩沖存儲(chǔ)器的訪問(wèn)高速化的信息處理裝置以及 高速緩存控制方法。
背景技術(shù):
伴隨著處理器中的處理高速化,需要縮短對(duì)存儲(chǔ)器的訪問(wèn)時(shí)間。作 為其中的一個(gè)手段,使用下述預(yù)取方法,即在處理器進(jìn)行訪問(wèn)請(qǐng)求之 前,預(yù)測(cè)處理器請(qǐng)求訪問(wèn)的地址,將該地址的數(shù)據(jù)預(yù)先保持在高速緩存 中。
但是,對(duì)于上述預(yù)取方法而言,雖然當(dāng)在程序執(zhí)行中對(duì)連續(xù)的地址 進(jìn)行存儲(chǔ)器訪問(wèn)時(shí)能夠檢測(cè)出連續(xù)訪問(wèn)模式,但是在跨越高速緩沖存儲(chǔ) 器的登記塊邊界的訪問(wèn)順序發(fā)生顛倒的情況下或在訪問(wèn)地址是分散的情 況下,存在由于不能檢測(cè)出該訪問(wèn)中的連續(xù)訪問(wèn)模式而基于針對(duì)無(wú)效訪 問(wèn)地址的預(yù)取進(jìn)行登記等問(wèn)題。另外,下述專利文獻(xiàn)公開(kāi)了預(yù)取方法。
專利文獻(xiàn)l:日本特開(kāi)2002-215456號(hào)公報(bào)
發(fā)明內(nèi)容
本發(fā)明的信息處理裝置的目的在于,即使在跨越高速緩沖存儲(chǔ)器的 登記塊邊界的訪問(wèn)順序發(fā)生顛倒的情況下或在訪問(wèn)地址是分散的情況 下,也能夠檢測(cè)出該訪問(wèn)中的連續(xù)訪問(wèn)模式。
本實(shí)施例的信息處理裝置的特征在于,具有處理器;存儲(chǔ)有數(shù)據(jù) 的第1存儲(chǔ)部;第2存儲(chǔ)部,其從該第1存儲(chǔ)部中取得在該處理器中進(jìn) 行處理的數(shù)據(jù);條目保持部,其對(duì)以塊為單位保持在該第2存儲(chǔ)部中的 數(shù)據(jù)的訪問(wèn)歷史進(jìn)行管理;以及控制部,當(dāng)該處理器的訪問(wèn)目的地從當(dāng) 前塊轉(zhuǎn)移到剛剛訪問(wèn)的塊時(shí),該控制部更新保持在該條目保持部中的對(duì)當(dāng)前塊的訪問(wèn)歷史。
另外,本實(shí)施例的信息處理裝置的特征在于,該條目保持部保持訪 問(wèn)方向信息,該訪問(wèn)方向信息表示該處理器訪問(wèn)的該塊的轉(zhuǎn)移方向。
另外,本實(shí)施例的信息處理裝置的特征在于,該條目保持部將多個(gè) 地址和訪問(wèn)方向信息對(duì)應(yīng)起來(lái),保持為條目信息。
另外,本實(shí)施例的信息處理裝置的特征在于,該控制部對(duì)該條目保 持部所保持的多個(gè)塊中的 一部分的塊進(jìn)行更新。
另外,本實(shí)施例的信息處理裝置的特征在于,該控制部對(duì)與所更新 的訪問(wèn)歷史對(duì)應(yīng)的地址范圍和與更新前的訪問(wèn)歷史對(duì)應(yīng)的地址范圍進(jìn)行 保持。
另外,本實(shí)施例的信息處理裝置的特征在于,該條目保持部具有多 個(gè)與該塊對(duì)應(yīng)的地址范圍,該控制部根據(jù)該處理器訪問(wèn)的塊的轉(zhuǎn)移,對(duì) 保持在該條目保持部中的地址范圍進(jìn)行更新。
另外,本實(shí)施例的信息處理裝置的特征在于,該控制部對(duì)該地址范 圍中的一部分地址范圍進(jìn)行更新。
另外,本實(shí)施例的信息處理裝置的特征在于,該控制部對(duì)所更新的 地址范圍和更新前的地址范圍進(jìn)行保持。
另外,本實(shí)施例的信息處理裝置的特征在于,該條目保持部將該塊 和該訪問(wèn)方向信息對(duì)應(yīng)起來(lái),保持為條目信息。
另外,本實(shí)施例的信息處理裝置的特征在于,該控制部對(duì)判斷為該 處理器訪問(wèn)的數(shù)據(jù)的地址包含在該塊內(nèi)的多個(gè)條目信息進(jìn)行檢測(cè),當(dāng)判 斷為檢測(cè)出的多個(gè)條目信息的該訪問(wèn)方向信息互不相同時(shí),對(duì)該訪問(wèn)方 向信息進(jìn)行重置。
另外,本實(shí)施例的信息處理裝置的特征在于,該地址范圍是該第2 存儲(chǔ)部中的連續(xù)地址的集合,該條目信息具有地址連續(xù)的地址范圍的組。
另外,本實(shí)施例的信息處理裝置的特征在于,構(gòu)成該條目信息的地 址范圍由以更細(xì)小的地址集合為單位的子地址范圍構(gòu)成,該條目信息具 有訪問(wèn)歷史信息,該訪問(wèn)歷史信息表示在各個(gè)子地址范圍中是否存在訪 問(wèn)。另外,本實(shí)施例的信息處理裝置的特征在于,該控制部根據(jù)來(lái)自該 處理器的訪問(wèn)的發(fā)生來(lái)改變跨距寬度,該跨距寬度表示預(yù)讀到該第2存 儲(chǔ)部中的數(shù)據(jù)的地址范圍。
另外,本實(shí)施例的信息處理裝置的特征在于,在更新該條目時(shí),該 控制部將該處理器所訪問(wèn)的地址設(shè)定在構(gòu)成該條目信息的多個(gè)地址范圍 的中心附近。
另外,本實(shí)施例的信息處理裝置的特征在于,當(dāng)該控制部判斷為該 處理器的訪問(wèn)地址包含在訪問(wèn)進(jìn)行方向的子地址范圍內(nèi)時(shí),該控制單元
確定預(yù)讀到該第2存儲(chǔ)部中的數(shù)據(jù)。
另外,本實(shí)施例的信息處理裝置的特征在于,該訪問(wèn)方向信息是表 示該處理器訪問(wèn)的塊的轉(zhuǎn)移方向的升序位和降序位。
另外,本實(shí)施例的信息處理裝置的特征在于,當(dāng)該控制部檢測(cè)出多 個(gè)該條目信息且判斷為訪問(wèn)進(jìn)行方向的開(kāi)頭側(cè)的塊中包含有該處理器要 訪問(wèn)的數(shù)據(jù)的地址時(shí),該控制部對(duì)該多個(gè)條目信息進(jìn)行重置。
本實(shí)施例的髙速緩存控制方法是信息處理裝置執(zhí)行的數(shù)據(jù)的高速緩
存控制方法,該信息處理裝置具有處理數(shù)據(jù)的處理器、存儲(chǔ)數(shù)據(jù)的第1 存儲(chǔ)部、以及對(duì)來(lái)自該第1存儲(chǔ)部的數(shù)據(jù)進(jìn)行高速緩存的第2存儲(chǔ)部, 該高速緩存控制方法的特征在于,該信息處理裝置執(zhí)行下述步驟對(duì)以 塊為單位保持在該第2存儲(chǔ)部中的數(shù)據(jù)的訪問(wèn)歷史進(jìn)行管理的步驟;以 及當(dāng)該處理器的訪問(wèn)目的地從當(dāng)前塊轉(zhuǎn)移到剛剛訪問(wèn)的塊時(shí),更新保持 在該條目保持部中的對(duì)當(dāng)前塊的訪問(wèn)歷史的步驟。
根據(jù)本發(fā)明的預(yù)取方法,記錄連續(xù)的多個(gè)地址集合并保持高速緩存 塊單位的訪問(wèn)歷史,由此,即使在發(fā)生跨越高速緩沖存儲(chǔ)器的登記塊邊 界的訪問(wèn)順序顛倒的情況下或在訪問(wèn)地址分散的情況下,也能夠檢測(cè)出 該訪問(wèn)中的連續(xù)訪問(wèn)模式。
圖1是本實(shí)施例中的信息處理裝置的硬件框圖。
圖2是本實(shí)施例中的預(yù)取地址隊(duì)列的條目結(jié)構(gòu)的圖。圖3是本實(shí)施例中的預(yù)取地址隊(duì)列的條目結(jié)構(gòu)的圖。
圖4是存儲(chǔ)器訪問(wèn)時(shí)的預(yù)取控制裝置的動(dòng)作流程圖。 圖5是與登記初始階段的預(yù)取隊(duì)列一致時(shí)的動(dòng)作流程圖。 圖6是升序模式下的二級(jí)高速緩存預(yù)取關(guān)聯(lián)流程圖。 圖7是升序模式下的一級(jí)高速緩存預(yù)取關(guān)聯(lián)流程圖。 圖8是從初始登記到初始階段為止的存儲(chǔ)器訪問(wèn)時(shí)的動(dòng)作示例。 圖9是升序模式下的存儲(chǔ)器訪問(wèn)時(shí)的動(dòng)作示例。 圖10是示出本實(shí)施例的訪問(wèn)模式監(jiān)視單元106在預(yù)取地址隊(duì)列107 中檢測(cè)出多個(gè)條目時(shí)的圖。
標(biāo)號(hào)說(shuō)明
101…處理器單元、102…一級(jí)高速緩存、103…二級(jí)高速緩存、104… 主存儲(chǔ)裝置、105…預(yù)取控制裝置、106…訪問(wèn)模式監(jiān)視單元、107…預(yù)取 地址隊(duì)列、108…一級(jí)高速緩存預(yù)取請(qǐng)求發(fā)行單元、109…二級(jí)高速緩存 預(yù)取請(qǐng)求發(fā)行單元、110…預(yù)取地址隊(duì)列更新單元、201…頁(yè)地址、202… 頁(yè)內(nèi)地址、203…登記區(qū)域內(nèi)訪問(wèn)歷史、204…頁(yè)內(nèi)地址、205…登記區(qū)域 內(nèi)訪問(wèn)歷史、206…跨距寬度(stride width)、 207…有效位、208…升 序位、209…降序位、210…控制位、301…頁(yè)地址、302…頁(yè)內(nèi)地址、303… 登記區(qū)域內(nèi)訪問(wèn)歷史、304…頁(yè)內(nèi)地址、305…登記區(qū)域內(nèi)訪問(wèn)歷史、306… 跨距寬度、307…有效位、308…升序位、309…降序位、310…控制位
具體實(shí)施例方式
圖1是本實(shí)施例的信息處理裝置100的框圖。
信息處理裝置100構(gòu)成為包括處理器單元101、 一級(jí)高速緩存102、 二級(jí)高速緩存103、主存儲(chǔ)裝置104、以及預(yù)取控制裝置105。預(yù)取控制 裝置105構(gòu)成為包括訪問(wèn)模式監(jiān)視單元106、預(yù)取地址隊(duì)列107、 一級(jí) 高速緩存預(yù)取請(qǐng)求發(fā)行單元108、 二級(jí)高速緩存預(yù)取請(qǐng)求發(fā)行單元109、 以及預(yù)取地址隊(duì)列更新單元110構(gòu)成。
本實(shí)施例中的信息處理裝置100具有一級(jí)高速緩存102、 二級(jí)高速緩存103的高速緩存系統(tǒng),并預(yù)讀訪問(wèn)模式,將數(shù)據(jù)預(yù)取到該高速緩存
系統(tǒng)中。預(yù)取是指信息處理裝置100預(yù)先將數(shù)據(jù)讀出到一級(jí)高速緩存102或二級(jí)高速緩存103中的功能。與在加載(Load)指令等數(shù)據(jù)的讀出指令后進(jìn)行讀出的處理相比,信息處理裝置100的預(yù)取處理可大幅度縮減信息處理裝置100的處理響應(yīng)速度。本實(shí)施例的信息處理裝置100通過(guò)硬件實(shí)現(xiàn)了預(yù)取功能。由硬件實(shí)現(xiàn)的預(yù)取具有記錄訪問(wèn)地址模式的硬件裝置。并且,在由硬件構(gòu)成的訪問(wèn)監(jiān)視模式單元106監(jiān)視訪問(wèn)地址的同時(shí),信息處理裝置100進(jìn)行預(yù)取處理。另外,也可以由軟件替代硬件來(lái)實(shí)現(xiàn)預(yù)取功能。基于軟件的預(yù)取可通過(guò)編譯程序在源代碼指令串中預(yù)先插入預(yù)取指令來(lái)實(shí)現(xiàn)。
本實(shí)施例的信息處理裝置100在預(yù)取地址隊(duì)列107的1個(gè)條目中記錄連續(xù)的多個(gè)地址集合,并且使得記錄的地址集合的單位大于二級(jí)高速緩存103的高速緩存塊,由此,在更廣的地址范圍中全局性地檢測(cè)訪問(wèn)模式。由此,即使在局部的訪問(wèn)順序改變或每隔一定間隔的分散的訪問(wèn)
的情況下,信息處理裝置ioo也可檢測(cè)出連續(xù)訪問(wèn)模式。
并且,在本實(shí)施例的信息處理裝置100保持的廣大的地址范圍中,通過(guò)對(duì)高速緩存塊單位等更細(xì)小的單位地址范圍中的訪問(wèn)歷史信息進(jìn)行保持,也可檢測(cè)出局部性的訪問(wèn)的連續(xù)性。
信息處理裝置100可在同一條目上檢測(cè)出全局性的連續(xù)訪問(wèn)模式和局部性的連續(xù)訪問(wèn)模式,因此通過(guò)調(diào)整預(yù)取的發(fā)行定時(shí)和進(jìn)行預(yù)取的數(shù)據(jù)大小,可以將對(duì)多個(gè)級(jí)別的預(yù)取匯總起來(lái)進(jìn)行控制。
處理器單元101是執(zhí)行信息處理裝置100中的運(yùn)算處理的單元。運(yùn)算處理是加法、減法、乘法處理等,執(zhí)行"或"、"與"這些邏輯運(yùn)算等。
一級(jí)高速緩存102是訪問(wèn)速度高于二級(jí)高速緩存102、主存儲(chǔ)裝置104的存儲(chǔ)裝置。通過(guò)在一級(jí)髙速緩存102中存儲(chǔ)使用頻率較高的數(shù)據(jù),能夠減少對(duì)低速的主存儲(chǔ)裝置104的訪問(wèn),并且能夠使信息處理裝置100整體的處理高速化。
二級(jí)高速緩存是在安裝有2個(gè)級(jí)別的高速緩沖存儲(chǔ)器的處理器中的比一級(jí)高速緩存102更低速且更大容量的存儲(chǔ)器。在本實(shí)施例中, 一級(jí)高速緩存102的登記更新以及替換的控制單位設(shè)為64字節(jié),二級(jí)高速緩存103的登記更新的控制單位設(shè)為256字節(jié)。因此, 一級(jí)高速緩存102向二級(jí)高速緩存103按照64字節(jié)單位進(jìn)行數(shù)據(jù)的登記請(qǐng)求, 一級(jí)高速緩存102與登記請(qǐng)求對(duì)應(yīng)地從二級(jí)高速緩存103按照64字節(jié)單位登記數(shù)據(jù)。另外,二級(jí)高速緩存103向主存儲(chǔ)裝置104按照256字節(jié)單位進(jìn)行數(shù)據(jù)的登記請(qǐng)求,二級(jí)高速緩存103與登記請(qǐng)求對(duì)應(yīng)地從主存儲(chǔ)裝置104按照256字節(jié)單位登記數(shù)據(jù)。
主存儲(chǔ)裝置104是保持在信息處理裝置100中進(jìn)行處理的數(shù)據(jù)整體的存儲(chǔ)器,是比二級(jí)高速緩存更低速且更大容量的存儲(chǔ)器。
預(yù)取控制裝置105是將預(yù)測(cè)為處理器單元101處理的數(shù)據(jù)預(yù)先登記在一級(jí)高速緩存102或二級(jí)高速緩存103中的裝置。如上所述,預(yù)取控制裝置105構(gòu)成為包括訪問(wèn)模式監(jiān)視單元106、預(yù)取地址隊(duì)列107、 一級(jí)高速緩存預(yù)取請(qǐng)求發(fā)行單元108、二級(jí)高速緩存預(yù)取請(qǐng)求發(fā)行單元109、以及預(yù)取地址隊(duì)列更新單元110。
構(gòu)成預(yù)取控制裝置105的訪問(wèn)模式監(jiān)視單元106是對(duì)處理器單元所請(qǐng)求的存儲(chǔ)器訪問(wèn)請(qǐng)求進(jìn)行監(jiān)視的單元。 一級(jí)高速緩存102將與來(lái)自處理器單元101的存儲(chǔ)器訪問(wèn)請(qǐng)求對(duì)應(yīng)的數(shù)據(jù)轉(zhuǎn)發(fā)給處理器單元101。
預(yù)取地址隊(duì)列107由多個(gè)條目構(gòu)成。各個(gè)條目是地址信息,存儲(chǔ)有64位地址。后述的圖2是本實(shí)施例的預(yù)取地址隊(duì)列107的條目結(jié)構(gòu)。
訪問(wèn)模式監(jiān)視單元106是對(duì)處理器單元101的存儲(chǔ)器訪問(wèn)請(qǐng)求進(jìn)行監(jiān)視的單元。當(dāng)從處理器單元101向一級(jí)高速緩存102進(jìn)行存儲(chǔ)器訪問(wèn)請(qǐng)求時(shí),訪問(wèn)模式監(jiān)視單元106將與存儲(chǔ)器訪問(wèn)請(qǐng)求對(duì)應(yīng)的地址和登記在預(yù)取地址隊(duì)列107的各條目中的地址進(jìn)行比較。然后,訪問(wèn)模式監(jiān)視單元106根據(jù)比較結(jié)果,向一級(jí)高速緩存預(yù)取請(qǐng)求發(fā)行單元108和二級(jí)高速緩存預(yù)取請(qǐng)求發(fā)行單元109進(jìn)行指示,指示進(jìn)行預(yù)取請(qǐng)求。指示預(yù)取請(qǐng)求的具體的判斷基準(zhǔn)將在后面敘述。
一級(jí)高速緩存預(yù)取請(qǐng)求發(fā)行單元108根據(jù)訪問(wèn)模式監(jiān)視單元106的指示,向二級(jí)高速緩存103請(qǐng)求預(yù)取到一級(jí)高速緩存102中的數(shù)據(jù)。一級(jí)高速緩存102根據(jù)一級(jí)高速緩存預(yù)取請(qǐng)求發(fā)行單元108的預(yù)取請(qǐng)求,從二級(jí)高速緩存103中預(yù)取數(shù)據(jù)。這里,具體而言, 一級(jí)高速緩存102進(jìn)行的預(yù)取是指 一級(jí)高速緩存102向二級(jí)高速緩存103進(jìn)行一級(jí)高速緩存登記請(qǐng)求,二級(jí)高速緩存103根據(jù)一級(jí)高速緩存登記請(qǐng)求,將登記數(shù)據(jù)轉(zhuǎn)發(fā)給一級(jí)髙速緩存102。
二級(jí)高速緩存預(yù)取請(qǐng)求發(fā)行單元109根據(jù)訪問(wèn)模式監(jiān)視單元106的指示,向二級(jí)高速緩存103請(qǐng)求預(yù)取的數(shù)據(jù)。二級(jí)高速緩存103根據(jù)二級(jí)高速緩存預(yù)取請(qǐng)求發(fā)行單元109的預(yù)取請(qǐng)求,從主存儲(chǔ)裝置104中預(yù)取數(shù)據(jù)。這里,具體而言,二級(jí)高速緩存103進(jìn)行的預(yù)取是指二級(jí)高速緩存103向主存儲(chǔ)裝置104進(jìn)行二級(jí)高速緩存登記請(qǐng)求,主存儲(chǔ)裝置104根據(jù)該二級(jí)高速緩存登記請(qǐng)求,將登記數(shù)據(jù)轉(zhuǎn)發(fā)給二級(jí)高速緩存103。
一級(jí)高速緩存預(yù)取請(qǐng)求發(fā)行單元108以及二級(jí)高速緩存預(yù)取請(qǐng)求發(fā)行單元109根據(jù)處理器單元101的存儲(chǔ)器訪問(wèn),分別針對(duì)一級(jí)高速緩存102以及二級(jí)高速緩存103生成預(yù)取地址,并發(fā)行預(yù)取請(qǐng)求。
預(yù)取地址隊(duì)列更新單元110是對(duì)構(gòu)成預(yù)取地址隊(duì)列107的條目進(jìn)行更新的單元。訪問(wèn)模式監(jiān)視單元106保持存儲(chǔ)器訪問(wèn)模式。存儲(chǔ)器訪問(wèn)模式是指處理器單元101向一級(jí)高速緩存102請(qǐng)求存儲(chǔ)器訪問(wèn)的地址的歷史模式。訪問(wèn)模式監(jiān)視單元106取得并保持在處理器單元101向一級(jí)高速緩存102請(qǐng)求存儲(chǔ)器訪問(wèn)的定時(shí)所請(qǐng)求的地址,生成存儲(chǔ)器訪問(wèn)模式。并且,當(dāng)取得新的存儲(chǔ)器訪問(wèn)請(qǐng)求時(shí),訪問(wèn)模式監(jiān)視單元106將該存儲(chǔ)器訪問(wèn)請(qǐng)求與所保持的存儲(chǔ)器訪問(wèn)模式進(jìn)行比較。當(dāng)比較的結(jié)果是存儲(chǔ)器訪問(wèn)請(qǐng)求的地址不在所保持的存儲(chǔ)器訪問(wèn)模式中時(shí),訪問(wèn)模式監(jiān)視單元106將當(dāng)前的訪問(wèn)地址信息初始登記在預(yù)取地址隊(duì)列107中,并使條目有效。這里,附近地址是指根據(jù)存儲(chǔ)器訪問(wèn)模式預(yù)測(cè)的、訪問(wèn)模式監(jiān)視單元106判斷為處理器單元101在預(yù)定時(shí)間內(nèi)訪問(wèn)的地址。
預(yù)取地址隊(duì)列更新單元110是對(duì)預(yù)取地址隊(duì)列107的條目進(jìn)行更新的單元。預(yù)取地址隊(duì)列更新單元110對(duì)預(yù)取地址隊(duì)列107中的最舊條目進(jìn)行更新。登記在預(yù)取地址隊(duì)列107中的條目具有歷史計(jì)數(shù)器。預(yù)取地址隊(duì)列107參照歷史計(jì)數(shù)器來(lái)判斷最舊的條目。歷史計(jì)數(shù)器是表示可登記在預(yù)取地址隊(duì)列107中的條目的登記或更新的順序的計(jì)數(shù)器。該歷史計(jì)數(shù)器可通過(guò)使用構(gòu)成條目的位的一部分來(lái)表示連續(xù)的序號(hào)而實(shí)現(xiàn)。并 且,當(dāng)在預(yù)取地址隊(duì)列107中進(jìn)行條目的更新時(shí),預(yù)取地址隊(duì)列更新單 元110清除最舊(例如歷史計(jì)數(shù)器的連續(xù)序號(hào)為最大)的條目,并登記
新的條目。并且,預(yù)取地址隊(duì)列更新單元110使登記在預(yù)取地址隊(duì)列107 中的條目的歷史計(jì)數(shù)器分別增計(jì)數(shù)(Count Up)。由此,信息處理裝置100 可進(jìn)行預(yù)取地址隊(duì)列107的條目登記或更新。另外,預(yù)取地址隊(duì)列更新 單元110也可以構(gòu)成為從無(wú)效條目中選擇對(duì)預(yù)取的地址進(jìn)行登記的條目。 預(yù)取地址隊(duì)列更新單元110根據(jù)條目具有的標(biāo)志(表示條目無(wú)效的標(biāo)志) 來(lái)判斷條目是否是無(wú)效條目。
另外,在訪問(wèn)模式監(jiān)視單元106判斷為處理器單元101的連續(xù)訪問(wèn) 是按照地址的遞增方向進(jìn)行的情況下,訪問(wèn)模式監(jiān)視單元106判斷為連 續(xù)訪問(wèn)仍然按照地址的升序方向進(jìn)行,而預(yù)取訪問(wèn)地址附近的地址。
接著,對(duì)信息處理裝置100中的存儲(chǔ)器訪問(wèn)處理進(jìn)行說(shuō)明。
處理器單元101首先向一級(jí)高速緩存102進(jìn)行存儲(chǔ)器訪問(wèn)請(qǐng)求。一 級(jí)高速緩存102判斷是否保持有與來(lái)自處理器單元101的存儲(chǔ)器訪問(wèn)請(qǐng) 求對(duì)應(yīng)的數(shù)據(jù)。當(dāng)判斷為本身保持有與存儲(chǔ)器訪問(wèn)請(qǐng)求對(duì)應(yīng)的存儲(chǔ)器訪 問(wèn)數(shù)據(jù)時(shí), 一級(jí)高速緩存102將相應(yīng)的存儲(chǔ)器訪問(wèn)數(shù)據(jù)轉(zhuǎn)發(fā)給處理器單 元101。當(dāng)判斷為本身沒(méi)有保持與存儲(chǔ)器訪問(wèn)請(qǐng)求對(duì)應(yīng)的存儲(chǔ)器訪問(wèn)數(shù)據(jù) 時(shí), 一級(jí)高速緩存102向二級(jí)高速緩存103請(qǐng)求相應(yīng)的存儲(chǔ)器訪問(wèn)數(shù)據(jù) 的一級(jí)高速緩存登記。
與一級(jí)高速緩存102相同,二級(jí)高速緩存103判斷是否保持有與一 級(jí)高速緩存登記請(qǐng)求對(duì)應(yīng)的存儲(chǔ)器訪問(wèn)數(shù)據(jù)。當(dāng)二級(jí)高速緩存103判斷 為本身保持有存儲(chǔ)器訪問(wèn)數(shù)據(jù)時(shí),從二級(jí)高速緩存103向一級(jí)高速緩存 102轉(zhuǎn)發(fā)與登記請(qǐng)求對(duì)應(yīng)的存儲(chǔ)器訪問(wèn)數(shù)據(jù)。另外,當(dāng)二級(jí)高速緩存103 判斷為本身沒(méi)有保持與登記請(qǐng)求對(duì)應(yīng)的存儲(chǔ)器訪問(wèn)數(shù)據(jù)時(shí),從二級(jí)高速 緩存103向主存儲(chǔ)裝置104進(jìn)行相應(yīng)的存儲(chǔ)器訪問(wèn)數(shù)據(jù)的二級(jí)高速緩存
登記請(qǐng)求。
主存儲(chǔ)裝置104向二級(jí)高速緩存103轉(zhuǎn)發(fā)與登記請(qǐng)求對(duì)應(yīng)的存儲(chǔ)器 訪問(wèn)數(shù)據(jù)。另外,預(yù)取控制裝置105對(duì)預(yù)測(cè)為處理器單元101將訪問(wèn)的存儲(chǔ)器
訪問(wèn)數(shù)據(jù)進(jìn)行預(yù)取。由此,能夠使信息處理裝置100的處理更加高速化。
并且,在本實(shí)施例的預(yù)取方法中,記錄連續(xù)的多個(gè)地址集合,保持 高速緩存線單位的訪問(wèn)歷史。由此,即使在跨越高速緩沖存儲(chǔ)器的登記 塊邊界的訪問(wèn)順序發(fā)生顛倒的情況下或在訪問(wèn)地址是分散的情況下,本 實(shí)施例的預(yù)取方法也能夠檢測(cè)出該訪問(wèn)中的連續(xù)訪問(wèn)模式。
訪問(wèn)模式監(jiān)視單元106監(jiān)視處理器單元101對(duì)一級(jí)高速緩存102的 存儲(chǔ)器訪問(wèn)請(qǐng)求,生成并保持存儲(chǔ)器訪問(wèn)模式。訪問(wèn)模式監(jiān)視單元106 從預(yù)取地址隊(duì)列107中讀出條目,將存儲(chǔ)器訪問(wèn)模式與構(gòu)成條目的地址 進(jìn)行比較。 一級(jí)高速緩存預(yù)取請(qǐng)求發(fā)行單元108以及二級(jí)高速緩存預(yù)取 請(qǐng)求發(fā)行單元109根據(jù)比較結(jié)果,預(yù)取與構(gòu)成條目的地址對(duì)應(yīng)的數(shù)據(jù)。 此時(shí),訪問(wèn)模式監(jiān)視單元106讀出預(yù)取地址隊(duì)列107的條目,將其轉(zhuǎn)發(fā) 給一級(jí)高速緩存預(yù)取請(qǐng)求發(fā)行單元108以及二級(jí)高速緩存預(yù)取請(qǐng)求發(fā)行 單元109。一級(jí)高速緩存預(yù)取請(qǐng)求發(fā)行單元108以及二級(jí)高速緩存預(yù)取請(qǐng) 求發(fā)行單元109根據(jù)接收到的條目,向一級(jí)高速緩存102以及二級(jí)高速 緩存103請(qǐng)求預(yù)取數(shù)據(jù)。另外,預(yù)取地址隊(duì)列更新單元110更新預(yù)取地 址隊(duì)列107的條目。訪問(wèn)模式監(jiān)視單元106向預(yù)取地址隊(duì)列更新單元110 進(jìn)行指示,由此,預(yù)取地址隊(duì)列更新單元110更新預(yù)取地址隊(duì)列107。
一級(jí)高速緩存預(yù)取請(qǐng)求發(fā)行單元108向一級(jí)高速緩存102請(qǐng)求預(yù)取, 二級(jí)高速緩存預(yù)取請(qǐng)求發(fā)行單元109向二級(jí)高速緩存103請(qǐng)求預(yù)取。一 級(jí)高速緩存102和二級(jí)高速緩存103根據(jù)針對(duì)各個(gè)高速緩存(一級(jí)高速 緩存102、 二級(jí)高速緩存103)的預(yù)取請(qǐng)求,取得訪問(wèn)模式監(jiān)視單元106 預(yù)測(cè)為存儲(chǔ)器訪問(wèn)數(shù)據(jù)的數(shù)據(jù)。然后, 一級(jí)高速緩存102和二級(jí)高速緩 存103對(duì)訪問(wèn)模式監(jiān)視單元106預(yù)測(cè)為存儲(chǔ)器訪問(wèn)數(shù)據(jù)的該數(shù)據(jù)進(jìn)行預(yù) 取。
圖2是本實(shí)施例的條目的結(jié)構(gòu)。構(gòu)成條目200的地址包含頁(yè)地址 201、頁(yè)內(nèi)地址202、登記區(qū)域內(nèi)訪問(wèn)歷史203、頁(yè)內(nèi)地址204、登記區(qū)域 內(nèi)訪問(wèn)歷史205、跨距寬度206、有效位207、升序位208、降序位209、 控制位210。一級(jí)高速緩存102的登記更新以及替換的控制單位是64字節(jié),二級(jí) 高速緩存103的登記更新的控制單位是256字節(jié)。并且,對(duì)主存儲(chǔ)裝置 104的虛擬存儲(chǔ)地址控制中的物理存儲(chǔ)器與虛擬存儲(chǔ)器之間的轉(zhuǎn)換進(jìn)行 管理的頁(yè)大小是4兆字節(jié),主存儲(chǔ)裝置104的整體是按照64位地址管理 的。
以往的預(yù)取地址隊(duì)列僅對(duì)1個(gè)頁(yè)內(nèi)地址進(jìn)行地址登記。另外,以往 的預(yù)取地址隊(duì)列按照一級(jí)高速緩存控制單位即64字節(jié)單位進(jìn)行地址登 記。因此,以往的訪問(wèn)模式監(jiān)視單元不能檢測(cè)出跨越64字節(jié)單位邊界的 地址范圍內(nèi)的連續(xù)訪問(wèn),因此,在訪問(wèn)順序顛倒或進(jìn)行每隔一定間隔的 訪問(wèn)的情況下,不能發(fā)行適當(dāng)?shù)念A(yù)取。另外,當(dāng)以往的處理器單元跨越 不能檢測(cè)出連續(xù)訪問(wèn)的64字節(jié)邊界而進(jìn)行存儲(chǔ)器訪問(wèn)時(shí),訪問(wèn)模式監(jiān)視 單元將相同的訪問(wèn)地址范圍登記在條目中,預(yù)取地址隊(duì)列的使用效率顯 著降低。
接著,對(duì)登記在本實(shí)施例的條目200中的地址信息進(jìn)行說(shuō)明。地址 信息是64位(從位63到位0),在該地址信息中登記有42位(從位63 到位22)的頁(yè)地址201、 14位(從位21到位8)的頁(yè)內(nèi)地址202、以及 14位(從位21到位8)的頁(yè)內(nèi)地址204。
頁(yè)地址201是對(duì)主存儲(chǔ)裝置104的虛擬存儲(chǔ)地址控制中的物理存儲(chǔ) 器與虛擬存儲(chǔ)器之間的轉(zhuǎn)換進(jìn)行管理的地址,登記在二級(jí)高速緩存的控 制單位即256字節(jié)邊界之前。
可作為頁(yè)內(nèi)地址202和頁(yè)內(nèi)地址204登記的連續(xù)的地址范圍相當(dāng)于 512字節(jié)。因此,訪問(wèn)模式監(jiān)視單元106能夠在1個(gè)條目中預(yù)取以往的2 個(gè)條目中的預(yù)取范圍,能夠檢測(cè)出連續(xù)訪問(wèn)。
并且,分別由4位構(gòu)成的登記區(qū)域內(nèi)訪問(wèn)歷史203以及登記區(qū)域內(nèi) 訪問(wèn)歷史205表示分別按照比256字節(jié)更細(xì)的、 一級(jí)高速緩存控制單位 即64字節(jié)X4而得到的訪問(wèn)歷史。由此,訪問(wèn)模式監(jiān)視單元106能夠使 用登記區(qū)域內(nèi)訪問(wèn)歷史203以及登記區(qū)域內(nèi)訪問(wèn)歷史205來(lái)檢測(cè)處理器 單元101對(duì)一級(jí)高速緩存102和二級(jí)高速緩存103的局部性的連續(xù)訪問(wèn)。 跨距寬度206是表示預(yù)取后面多大的地址范圍的信息。有效位207是表示條目有效的信息。升序位208是監(jiān)視升序的連續(xù)訪問(wèn)的信息。降序位 209是監(jiān)視降序的連續(xù)訪問(wèn)的信息。控制位210是用于其它地址控制的f言
肩、o
圖3是示出本實(shí)施例中的條目300的結(jié)構(gòu)的圖。條目300的結(jié)構(gòu)基 本上與條目200相同,是條目的結(jié)構(gòu)的變形之一。
對(duì)于圖3的實(shí)施例的預(yù)取地址隊(duì)列而言,條目的結(jié)構(gòu)信息與圖2相 同,但頁(yè)內(nèi)地址302以及頁(yè)內(nèi)地址304的登記單位分別為1千字節(jié)單位 (從位21到位9),能夠在比圖2的條目200的512字節(jié)范圍更廣的1千 字節(jié)的地址范圍內(nèi)監(jiān)視訪問(wèn)模式。因此,與條目200相比,圖3所示的 條目300能夠更全局地檢測(cè)連續(xù)訪問(wèn)。條目300按照比條目200的512 字節(jié)更細(xì)的、 一級(jí)高速緩存控制單位即64字節(jié)X8來(lái)記錄訪問(wèn)歷史。因 此,訪問(wèn)模式監(jiān)視單元106能夠使用登記區(qū)域內(nèi)訪問(wèn)歷史303以及登記 區(qū)域內(nèi)訪問(wèn)歷史305來(lái)檢測(cè)處理器單元101對(duì)一級(jí)高速緩存102和二級(jí) 高速緩存103的局部性的連續(xù)訪問(wèn)。
.由此,本實(shí)施例的具有高速緩存系統(tǒng)的信息處理裝置100具有記錄 從過(guò)去進(jìn)行存儲(chǔ)器訪問(wèn)的地址到被預(yù)期將來(lái)訪問(wèn)的附近地址的單元,豐艮 據(jù)該記錄完成的登記地址和后續(xù)訪問(wèn)地址之間的比較,來(lái)檢測(cè)連續(xù)訪問(wèn) 模式,發(fā)行高速緩存塊的預(yù)取請(qǐng)求。并且,信息處理裝置100的特征在 于,記錄包含訪問(wèn)地址在內(nèi)的連續(xù)多個(gè)高速緩存塊地址集合,或者記錄 以大于高速緩存塊的塊為單位的地址集合的組,檢測(cè)大于高速緩存塊單 位的連續(xù)訪問(wèn),而控制預(yù)取。
圖4是本實(shí)施例的預(yù)取控制的流程圖。
訪問(wèn)模式監(jiān)視單元106監(jiān)視來(lái)自處理器單元101的對(duì)一級(jí)高速緩存 102的存儲(chǔ)器訪問(wèn)請(qǐng)求。當(dāng)處理器單元101向一級(jí)高速緩存102請(qǐng)求存儲(chǔ) 器訪問(wèn)時(shí),訪問(wèn)模式監(jiān)視單元106檢測(cè)該存儲(chǔ)器訪問(wèn)請(qǐng)求(步驟S401)。 然后,訪問(wèn)模式監(jiān)視單元106判斷與存儲(chǔ)器訪問(wèn)請(qǐng)求對(duì)應(yīng)的訪問(wèn)地址是 否屬于構(gòu)成預(yù)取地址隊(duì)列107的條目的登記地址范圍(步驟S402)。包含 作為訪問(wèn)地址比較對(duì)象的登機(jī)地址范圍的條目的有效位是"1"。當(dāng)訪問(wèn) 地址與登記地址范圍一致時(shí)(步驟S402:是),訪問(wèn)模式監(jiān)視單元106根據(jù)相應(yīng)的條目的升序位以及降序位,判斷監(jiān)視的連續(xù)訪問(wèn)的方向是否已
經(jīng)確定為升序或降序(步驟S403)。
當(dāng)訪問(wèn)模式監(jiān)視單元106判斷為沒(méi)有確定連續(xù)訪問(wèn)的方向的升序降 序時(shí)(步驟S403:否),轉(zhuǎn)移到圖5所示的登記初始模式的處理流程。在 后面敘述圖5中的登記初始模式的處理流程。
當(dāng)訪問(wèn)模式監(jiān)視單元106判斷為已經(jīng)確定連續(xù)訪問(wèn)的方向的升序降 序時(shí)(步驟S403:是),訪問(wèn)模式監(jiān)視單元106判斷升序位是否是"1" (步驟S404)。當(dāng)訪問(wèn)模式監(jiān)視單元106判斷為升序位是"1"時(shí)(步驟 S404:是),轉(zhuǎn)移到升序模式的處理流程(步驟S406)。當(dāng)訪問(wèn)模式監(jiān)4見(jiàn) 單元106判斷為升序位不是"1"(升序位是"0")時(shí)(步驟S404:否), 轉(zhuǎn)移到降序模式的處理流程(步驟S405)。降序模式的處理流程是與升序 處理流程對(duì)稱的處理流程。
訪問(wèn)模式監(jiān)視單元106判斷被請(qǐng)求存儲(chǔ)器訪問(wèn)的訪問(wèn)地址是否屬于 構(gòu)成預(yù)取地址隊(duì)列的條目的登記地址范圍(步驟S402)。當(dāng)訪問(wèn)地址與登 記地址范圍不一致、不存在與訪問(wèn)地址一致的預(yù)取地址隊(duì)列時(shí)(步驟 S402:否),預(yù)取地址隊(duì)列更新單元110將訪問(wèn)地址以及其附近地址新登 記在預(yù)取地址隊(duì)列107中。然后,訪問(wèn)模式監(jiān)視單元106判斷訪問(wèn)地址 是256字節(jié)的登記訪問(wèn)范圍較大側(cè)(128字節(jié) 255字節(jié))、還是登記訪 問(wèn)范圍較小側(cè)(0字節(jié) 127字節(jié))。更具體而言,判斷訪問(wèn)地址的位7 是否是"1"(步驟S408),以使得訪問(wèn)地址位于登記在預(yù)取地址隊(duì)列的有 效條目中的地址范圍的中心附近。訪問(wèn)模式監(jiān)視單元106根據(jù)訪問(wèn)地址 的位7的狀態(tài),判斷將條目登記在地址遞增方向(步驟S409)、還是將條 目降序地登記在地址降序方向。
在步驟S408中,當(dāng)訪問(wèn)地址的位7是"1"時(shí)(步驟S408:是), 更新預(yù)取地址隊(duì)列107沒(méi)有使用的條目,訪問(wèn)模式監(jiān)視單元106登記新 的訪問(wèn)地址(步驟S409)。這是上述的升序登記,訪問(wèn)模式監(jiān)視單元106 向頁(yè)內(nèi)地址202登記使訪問(wèn)地址加上256字節(jié)后得到的地址(訪問(wèn)地址 + 256字節(jié)),向頁(yè)內(nèi)地址204登記訪問(wèn)地址。
在步驟S408中,當(dāng)訪問(wèn)地址的位7不是"1"(位7是"0")時(shí)(步驟S408:否),更新預(yù)取地址隊(duì)列107沒(méi)有使用的條目,訪問(wèn)模式監(jiān)視單
元106登記新的訪問(wèn)地址(步驟S410)。這是上述的降序地址方向的登記, 向頁(yè)內(nèi)地址202登記訪問(wèn)地址,向頁(yè)內(nèi)地址204登記從訪問(wèn)地址中減去 256字節(jié)后的地址(訪問(wèn)地址一256字節(jié))。
圖5是本實(shí)施例的登記初始模式的處理流程圖。登記初始模式是訪 問(wèn)模式監(jiān)視單元106進(jìn)行初始登記的模式。首先,登記在登記初始模式 的預(yù)取地址隊(duì)列107中的條目與訪問(wèn)地址一致(步驟S501)。然后,訪問(wèn) 模式監(jiān)視單元106判斷訪問(wèn)地址是登記地址范圍中的升序地址遞增側(cè)(較 大側(cè)的256字節(jié))還是降序地址降序側(cè)(較小側(cè)的256字節(jié))(步驟S502)。 即步驟S02是訪問(wèn)模式監(jiān)視單元106判斷訪問(wèn)模式的訪問(wèn)方向的步驟。
當(dāng)訪問(wèn)模式監(jiān)視單元106判斷為訪問(wèn)地址與升序側(cè)(較大姻的256 字節(jié)) 一致時(shí)(步驟S502:是),訪問(wèn)模式監(jiān)視單元106判斷一致的訪問(wèn) 地址的位7是否是"1"(步驟S503)。即步驟S503是訪問(wèn)模式監(jiān)視單 元106判斷訪問(wèn)模式的訪問(wèn)方向是升序方向還是降序方向的步驟。
當(dāng)訪問(wèn)模式監(jiān)視單元106判斷為位7是"1"時(shí)(步驟S503:是), 訪問(wèn)模式監(jiān)視單元106判斷為相應(yīng)的預(yù)取地址隊(duì)列107應(yīng)追蹤的方向是 升序側(cè),然后,進(jìn)行升序模式動(dòng)作(步驟S504)。在步驟S504中,處理 器單元101的存儲(chǔ)器訪問(wèn)向升序側(cè)進(jìn)行(較大側(cè)的128字節(jié))。因此,訪 問(wèn)模式監(jiān)視單元106判斷為相應(yīng)的條目應(yīng)追蹤的方向是升序側(cè)。然后, 預(yù)取地址隊(duì)列107進(jìn)行升序模式動(dòng)作。
然后,使相應(yīng)條目的預(yù)取地址隊(duì)列的頁(yè)內(nèi)地址202、 204加上256字 節(jié)來(lái)使訪問(wèn)地址增大。另外,設(shè)為升序位208為"1",降序位209為"0"。
另夕卜,當(dāng)訪問(wèn)模式監(jiān)視單元106判斷為位7不是"1"(位7是"0") 時(shí)(步驟S503:否),訪問(wèn)模式監(jiān)視單元106判斷為訪問(wèn)模式既沒(méi)有向升 序側(cè)進(jìn)行也沒(méi)有向降序側(cè)進(jìn)行,因而繼續(xù)初始模式動(dòng)作(步驟S505)。這 里,初始模式動(dòng)作是指不進(jìn)行預(yù)取請(qǐng)求的模式。
另外,同樣,當(dāng)訪問(wèn)模式監(jiān)視單元106判斷為訪問(wèn)地址與降序側(cè)(較 小側(cè)的256字節(jié)) 一致時(shí)(步驟S502:否),訪問(wèn)模式監(jiān)視單元106判斷 一致的訪問(wèn)地址的位7是否是"1"(步驟S506)。當(dāng)訪問(wèn)模式監(jiān)視單元106判斷為命中的條目的位7是"1"時(shí)(步驟S506:是),訪問(wèn)模式監(jiān) 視單元106判斷為訪問(wèn)模式既沒(méi)有向升序側(cè)進(jìn)行也沒(méi)有向降序側(cè)進(jìn)行, 繼續(xù)初始階段動(dòng)作(步驟S505)。
當(dāng)訪問(wèn)模式監(jiān)視單元106判斷為命中的條目的位7是"1"時(shí)(步驟 S506:否),訪問(wèn)模式監(jiān)視單元106判斷為相應(yīng)的預(yù)取地址隊(duì)列應(yīng)追蹤的 方向是降序側(cè),然后進(jìn)行降序模式動(dòng)作(歩驟S507)。
然后,訪問(wèn)模式監(jiān)視單元106從相應(yīng)條目的頁(yè)內(nèi)地址202、 204中減 去256字節(jié)來(lái)使訪問(wèn)地址減小。另外,訪問(wèn)模式監(jiān)視單元106使條目的 升序位208為"0",降序位209為"1"。在步驟S507中,處理器單元101 的存儲(chǔ)器訪問(wèn)向降序側(cè)后退(較小側(cè)的128字節(jié))。因此,訪問(wèn)模式監(jiān)視 單元106判斷為預(yù)取地址隊(duì)列107應(yīng)追蹤的方向是降序側(cè),然后進(jìn)行降 序模式動(dòng)作。
圖6是本實(shí)施例的升序模式的處理流程圖。升序模式是使訪問(wèn)地址 每次增加256字節(jié)的模式。升序模式是在預(yù)取地址隊(duì)列107的條目與升 序側(cè)一致的情況下的二級(jí)高速緩存預(yù)取的處理流程圖。
首先,訪問(wèn)模式監(jiān)視單元106判斷為訪問(wèn)地址與升序模式的預(yù)取地 址隊(duì)列107 —致(步驟S601)。訪問(wèn)模式監(jiān)視單元106在登記地址范圍的 升序側(cè)(較大側(cè)的256字節(jié))監(jiān)視全局性的訪問(wèn)模式,并且實(shí)現(xiàn)二級(jí)高 速緩存預(yù)取請(qǐng)求的定時(shí)。
訪問(wèn)模式監(jiān)視單元106判斷訪問(wèn)地址是登記地址范圍中的升序側(cè) (較大側(cè)的256字節(jié))還是降序側(cè)(較小側(cè)的256字節(jié))(步驟S602)。 即,訪問(wèn)模式監(jiān)視單元106判斷訪問(wèn)地址是進(jìn)行二級(jí)高速緩存預(yù)取還是 更新預(yù)取地址隊(duì)列的條目信息(步驟S602)。這里,訪問(wèn)地址是處理器單 元101向一級(jí)高速緩存102進(jìn)行存儲(chǔ)器訪問(wèn)請(qǐng)求的數(shù)據(jù)的地址。
當(dāng)訪問(wèn)模式監(jiān)視單元106判斷為訪問(wèn)地址是登記地址范圍中的升序 側(cè)時(shí)(步驟S602:是),訪問(wèn)模式監(jiān)視單元106判斷訪問(wèn)地址的位7是否 是"1"(步驟S603)。訪問(wèn)地址的位7是"1",表示登記地址范圍的位7 是"1",存儲(chǔ)器訪問(wèn)進(jìn)行到登記地址范圍的開(kāi)頭。在升序模式動(dòng)作時(shí), 訪問(wèn)模式監(jiān)視單元106在升序側(cè)(較大側(cè)的256字節(jié))監(jiān)視全局性的訪問(wèn)模式,并且實(shí)現(xiàn)二級(jí)高速緩存預(yù)取請(qǐng)求的定時(shí)。訪問(wèn)模式監(jiān)視單元106
判斷是進(jìn)行二級(jí)高速緩存預(yù)取、還是更新預(yù)取地址隊(duì)列107的條目信息。 條目信息是指登記在預(yù)取地址隊(duì)列107中的全部條目。
當(dāng)訪問(wèn)模式監(jiān)視單元106判斷為訪問(wèn)地址的位7是"1"時(shí)(步驟 S603:是),訪問(wèn)模式監(jiān)視單元106增大進(jìn)行二級(jí)高速緩存103中的二級(jí) 高速緩存預(yù)取的跨距寬度206,更新預(yù)取地址隊(duì)列107的條目信息(步驟 S604)。當(dāng)在升序側(cè)一致且進(jìn)行二級(jí)高速緩存預(yù)取時(shí),訪問(wèn)模式監(jiān)視單元 106判斷訪問(wèn)是否已進(jìn)行到登記地址范圍的開(kāi)頭。當(dāng)訪問(wèn)已進(jìn)行到登記地 址范圍的開(kāi)頭的步驟S604中的更新結(jié)果是訪問(wèn)已進(jìn)行到登記地址范圍的 開(kāi)頭時(shí),預(yù)取地址隊(duì)列更新單元110進(jìn)行預(yù)取,并且使登記在預(yù)取地址 隊(duì)列107中的數(shù)據(jù)整體前進(jìn)256字節(jié),進(jìn)行更新。此時(shí),與512字節(jié)的 登記地址范圍相對(duì),預(yù)取地址隊(duì)列107是256字節(jié),另外,預(yù)取地址隊(duì) 列107對(duì)在更新前后重疊的256字節(jié)的登記地址范圍的訪問(wèn)歷史信息進(jìn) 行保持。另外,當(dāng)訪問(wèn)模式監(jiān)視單元106判斷為命中的條目的位7不是 "1"(位7是"0")時(shí)(步驟S603:否),訪問(wèn)模式監(jiān)視單元106接下 來(lái)判斷是否存在對(duì)包含有訪問(wèn)地址的128字節(jié)在內(nèi)的訪問(wèn)地址范圍進(jìn)行 訪問(wèn)的訪問(wèn)歷史(步驟S605)。
當(dāng)訪問(wèn)模式監(jiān)視單元106判斷為不存在對(duì)與訪問(wèn)地址相同的128字 節(jié)區(qū)域進(jìn)行訪問(wèn)的訪問(wèn)歷史時(shí)(步驟S605:否),訪問(wèn)模式監(jiān)視單元106 指示二級(jí)高速緩存預(yù)取請(qǐng)求發(fā)行單元109用登記跨距寬度向升序側(cè)進(jìn)行 二級(jí)高速緩存預(yù)取請(qǐng)求。二級(jí)高速緩存預(yù)取請(qǐng)求發(fā)行單元109根據(jù)指示, 生成二級(jí)高速緩存預(yù)取請(qǐng)求(步驟S606)。
當(dāng)訪問(wèn)模式監(jiān)視單元106判斷為存在對(duì)與訪問(wèn)地址相同的128字節(jié) 區(qū)域進(jìn)行訪問(wèn)的訪問(wèn)歷史時(shí)(步驟S605:是),訪問(wèn)模式監(jiān)視單元106不 指示二級(jí)高速緩存預(yù)取請(qǐng)求發(fā)行單元109進(jìn)行二級(jí)高速緩存預(yù)取請(qǐng)求, 而是記錄訪問(wèn)地址的訪問(wèn)歷史(步驟S607)。無(wú)論是在步驟S604、步驟 S606、步驟S607中的哪個(gè)情況下,訪問(wèn)模式監(jiān)視單元106都預(yù)先記錄與 訪問(wèn)地址對(duì)應(yīng)的訪問(wèn)歷史。
當(dāng)在S606中判斷為不存在訪問(wèn)歷史時(shí),信息處理裝置IOO進(jìn)行預(yù)取,并且預(yù)先更新條目信息,使預(yù)取地址計(jì)算用的跨距寬度增加256字節(jié)來(lái)
更預(yù)先取出數(shù)據(jù),從而為步驟S604中的將來(lái)的預(yù)取做準(zhǔn)備。當(dāng)訪問(wèn)地址 范圍的降序側(cè)(較小側(cè)的256字節(jié)) 一致時(shí)或當(dāng)即使在訪問(wèn)地址范圍的 升序側(cè)一致、在128字節(jié)區(qū)域中也存在訪問(wèn)歷史時(shí),訪問(wèn)模式監(jiān)視單元 106判斷為連續(xù)訪問(wèn)沒(méi)有進(jìn)行,不進(jìn)行二級(jí)高速緩存預(yù)取的請(qǐng)求。這里, 128字節(jié)區(qū)域是指包含訪問(wèn)地址在內(nèi)的128字節(jié)的訪問(wèn)地址范圍。
圖7是本實(shí)施例的升序模式下的一級(jí)高速緩存預(yù)取的流程圖。
訪問(wèn)模式監(jiān)視單元106判斷升序模式的預(yù)取地址隊(duì)列一致(步驟 S701)。訪問(wèn)模式監(jiān)視單元106判斷是否存在對(duì)使訪問(wèn)地址加上64字節(jié) 得到的一級(jí)高速緩存線進(jìn)行訪問(wèn)的訪問(wèn)歷史(步驟S702)。在升序模式動(dòng) 作時(shí),訪問(wèn)模式監(jiān)視單元106監(jiān)視以64字節(jié)為單位記錄的訪問(wèn)歷史信息, 實(shí)現(xiàn)一級(jí)高速緩存預(yù)取請(qǐng)求的定時(shí)。
然后,當(dāng)訪問(wèn)模式監(jiān)視單元106判斷為存在對(duì)使訪問(wèn)地址加上64字 節(jié)得到的一級(jí)高速緩存線進(jìn)行訪問(wèn)的訪問(wèn)歷史時(shí)(步驟S702:是),由于 處理器單元101已經(jīng)進(jìn)行了存儲(chǔ)器訪問(wèn),因此訪問(wèn)模式監(jiān)視單元106不 生成一級(jí)高速緩存預(yù)取請(qǐng)求(步驟S704)。另外,當(dāng)訪問(wèn)模式監(jiān)視單元 106判斷為不存在對(duì)使訪問(wèn)地址加上64字節(jié)得到的一級(jí)高速緩存線進(jìn)行 訪問(wèn)的訪問(wèn)歷史時(shí)(步驟S702:否),訪問(wèn)模式監(jiān)視單元106生成一級(jí)高 速緩存預(yù)取請(qǐng)求(步驟S703)
由此,本實(shí)施例的信息處理裝置100實(shí)現(xiàn)了下述預(yù)取控制。實(shí)現(xiàn)本 實(shí)施例的預(yù)取方法的信息處理裝置100具有高速緩存系統(tǒng)。并且,本實(shí) 施例的信息處理裝置100具有記錄從過(guò)去進(jìn)行存儲(chǔ)器訪問(wèn)的地址到將來(lái) 預(yù)測(cè)將訪問(wèn)的附近地址的單元,根據(jù)該記錄完成的登記地址和后續(xù)訪問(wèn) 地址之間的比較,來(lái)檢測(cè)連續(xù)訪問(wèn)模式,發(fā)行高速緩存塊的預(yù)取請(qǐng)求。 并且,信息處理裝置100記錄包含訪問(wèn)地址在內(nèi)的連續(xù)多個(gè)高速緩存塊 地址集合,或者記錄以大于高速緩存塊的塊為單位的地址集合的組,由 此來(lái)檢測(cè)大于高速緩存塊單位的全局性的連續(xù)訪問(wèn),控制預(yù)取。
另外,本實(shí)施例的信息處理裝置100實(shí)現(xiàn)了下述預(yù)取方法。信息處 理裝置100檢測(cè)連續(xù)訪問(wèn)模式。并且,信息處理裝置在比登記在1個(gè)條目中的高速緩存塊更廣的多個(gè)塊地址范圍內(nèi),記錄以更精細(xì)的子塊為單 位的詳細(xì)訪問(wèn)歷史。由此,信息處理裝置100根據(jù)登記相同地址區(qū)域的 期間內(nèi)的局部性訪問(wèn)的進(jìn)行狀況或者訪問(wèn)次數(shù),來(lái)改變預(yù)取發(fā)行定時(shí)、 跨距寬度、預(yù)取數(shù)據(jù)大小,同時(shí)請(qǐng)求預(yù)取并進(jìn)行預(yù)取。
另外,本實(shí)施例的信息處理裝置100實(shí)現(xiàn)了下述預(yù)取方法。信息處 理裝置100檢測(cè)連續(xù)訪問(wèn)模式,并進(jìn)行預(yù)取到高速緩存中的預(yù)取。信息 處理裝置100在多個(gè)級(jí)別的高速緩存中對(duì)記錄多個(gè)塊地址集合與登記地 址范圍中的詳細(xì)訪問(wèn)歷史的單元進(jìn)行共享。并且,信息處理裝置100根
據(jù)高速緩存級(jí)別,對(duì)比較地址范圍、預(yù)取發(fā)行定時(shí)、跨距寬度、以及預(yù) 取數(shù)據(jù)大小等進(jìn)行控制,由此使用同一資源來(lái)控制預(yù)取數(shù)據(jù)到多個(gè)級(jí)別 的預(yù)取。
另外,本實(shí)施方式的信息處理裝置100實(shí)現(xiàn)下述預(yù)取方法。信息處 理裝置100向1個(gè)條目登記多個(gè)地址塊和地址塊的訪問(wèn)歷史。并且,當(dāng) 處理器單元101連續(xù)地進(jìn)行存儲(chǔ)器訪問(wèn)時(shí),將登記在條目中的地址塊的
開(kāi)始地址在訪問(wèn)方向上轉(zhuǎn)移來(lái)進(jìn)行更新。更新前的登記地址范圍和更新
后的登記地址范圍部分重復(fù)。并且,以使得處理器單元101的訪問(wèn)地址
位于登記地址范圍的中心附近的方式,來(lái)轉(zhuǎn)移登記地址塊的開(kāi)始地址, 且繼續(xù)利用重復(fù)的登記地址范圍的詳細(xì)訪問(wèn)歷史。由此,即使在塊邊界,
本實(shí)施例的信息處理裝置100也能夠適當(dāng)?shù)乜刂祁A(yù)取請(qǐng)求。
另外,本實(shí)施方式的信息處理裝置100也實(shí)現(xiàn)下述預(yù)取方法。信息 處理裝置100檢測(cè)處理器單元101的連續(xù)訪問(wèn)模式,將數(shù)據(jù)預(yù)取到一級(jí) 高速緩存102或二級(jí)高速緩存103。在條目中登記有地址范圍的狀態(tài)下, 信息處理裝置100將第一次預(yù)取的數(shù)據(jù)轉(zhuǎn)移到后續(xù)地址處,其之間的距 離是從過(guò)去繼續(xù)使用的跨距寬度。并且,信息處理裝置100保持登記在 條目中的地址范圍,并且,第2次以后的預(yù)取是對(duì)距離為下述跨距寬度 的后續(xù)地址進(jìn)行的,即該跨距寬度是使前一次預(yù)取時(shí)的跨距寬度增加 了前一次預(yù)取時(shí)的數(shù)據(jù)大小而得到的。由此,信息處理裝置100能夠加
快預(yù)取的預(yù)讀程度。
另外,本實(shí)時(shí),的信息處理裝置100實(shí)現(xiàn)下述預(yù)取方法。當(dāng)信息處理裝置100將連續(xù)的多個(gè)地址塊初始登記為1個(gè)條目時(shí),以使得訪問(wèn)地 址位于登記地址范圍的中心附近的方式來(lái)登記多個(gè)地址塊。并且,信息
處理裝置100通過(guò)檢測(cè)后續(xù)訪問(wèn)在登記的范圍內(nèi)觀察是升序還是降序,
來(lái)全局性地確定連續(xù)訪問(wèn)是升序方向還是降序方向。
另外,本實(shí)施例的信息處理裝置100實(shí)現(xiàn)下述預(yù)取方法。當(dāng)信息處 理裝置100檢測(cè)出處理器單元101的訪問(wèn)與多個(gè)不同的條目的登記地址 范圍多命中時(shí),信息處理裝置100根據(jù)多命中的條目之間的連續(xù)訪問(wèn)檢
測(cè)的可信度或連續(xù)訪問(wèn)的進(jìn)行程度,來(lái)確定優(yōu)先的條目和無(wú)效的條目。
另外,本實(shí)施例的信息處理裝置100實(shí)現(xiàn)下述預(yù)取方法。當(dāng)信息處 理裝置100在多個(gè)不同的條目中檢測(cè)出連續(xù)訪問(wèn)多命中時(shí),當(dāng)尚未確定
存儲(chǔ)器訪問(wèn)升序降序的條目與已經(jīng)確定存儲(chǔ)器訪問(wèn)升序降序的條目多命
中時(shí),信息處理裝置100使己經(jīng)確定存儲(chǔ)器訪問(wèn)升序降序的條目?jī)?yōu)先,
使尚未確定存儲(chǔ)器訪問(wèn)升序降序的條目無(wú)效。
另外,本實(shí)施例的信息處理裝置100實(shí)現(xiàn)下述預(yù)取方法。信息處理
裝置ioo檢測(cè)存儲(chǔ)器訪問(wèn)的連續(xù)訪問(wèn)模式,進(jìn)行預(yù)取到高速緩存的預(yù)取。
當(dāng)信息處理裝置100檢測(cè)出與多個(gè)不同的條目多命中的連續(xù)訪問(wèn)時(shí),當(dāng)
已經(jīng)確定連續(xù)訪問(wèn)的方向是升序還是降序的條目多命中時(shí),使在訪問(wèn)進(jìn) 行方向的開(kāi)頭側(cè)的多命中的條目無(wú)效。
圖8是本實(shí)施例的預(yù)取隊(duì)列從新登記到初始模式的動(dòng)作示例的圖。 圖8的行分別表示從時(shí)刻A到時(shí)刻D+l,圖8的列分別在5位二進(jìn)制數(shù) (00000 10100=OB 1280B)的范圍內(nèi)表示以64B為單位的地址進(jìn)行。 這里,由于表示對(duì)附近地址的連續(xù)訪問(wèn)的動(dòng)作,因此,地址高位是相同 的,在圖8中省略敘述。
在圖8中,用粗線框包圍的區(qū)域是登記在預(yù)取地址隊(duì)列107中的區(qū) 域。并且,記有"X"的訪問(wèn)地址區(qū)域意味著訪問(wèn)地址與登記在預(yù)取地 址隊(duì)列107中的條目不一致的情況。另外,在記有"〇"的訪問(wèn)地址區(qū) 域中, 一級(jí)高速緩存102生成一級(jí)髙速緩存預(yù)取(L1PF)。在記有" " 的訪問(wèn)地址區(qū)域中,二級(jí)高速緩存103生成二級(jí)高速緩存預(yù)取(L2PF)。 在記有"△"的訪問(wèn)地址區(qū)域中,訪問(wèn)模式監(jiān)視單元106判斷為該訪問(wèn)地址區(qū)域與登記在預(yù)取地址隊(duì)列107中的條目一致,但是不向一級(jí)高速
緩存預(yù)取請(qǐng)求發(fā)行單元108和二級(jí)高速緩存預(yù)取請(qǐng)求發(fā)行單元109進(jìn)行 預(yù)取請(qǐng)求。
在時(shí)刻A,處理器單元101向一級(jí)高速緩存102的訪問(wèn)地址區(qū)域 "00010"進(jìn)行存儲(chǔ)器訪問(wèn)請(qǐng)求,訪問(wèn)模式監(jiān)視單元106監(jiān)視并檢測(cè)處理 器單元101對(duì)訪問(wèn)地址區(qū)域"00010"的存儲(chǔ)器訪問(wèn)請(qǐng)求。訪問(wèn)地址區(qū)域 是指包含處理器單元101進(jìn)行存儲(chǔ)器訪問(wèn)請(qǐng)求的訪問(wèn)地址的高速緩存塊。 然后,在時(shí)刻A,訪問(wèn)模式監(jiān)視單元106判斷為在預(yù)取地址隊(duì)列107中不 存在與訪問(wèn)地址一致的條目。
然后,在時(shí)刻A+l,訪問(wèn)模式監(jiān)視單元106將訪問(wèn)地址范圍登記在 預(yù)取地址隊(duì)列107的條目中。登記的訪問(wèn)地址范圍是"00000 00011" 256字節(jié)。
在時(shí)刻B,處理器單元101向一級(jí)高速緩存102的訪問(wèn)地址區(qū)域 "00011"進(jìn)行存儲(chǔ)器訪問(wèn)請(qǐng)求。訪問(wèn)模式監(jiān)視單元106監(jiān)視處理器單元 101對(duì)"00011"的存儲(chǔ)器訪問(wèn)請(qǐng)求,不對(duì)一級(jí)高速緩存102進(jìn)行新的預(yù) 取,也不將新的條目登記在預(yù)取地址隊(duì)列107中。在時(shí)刻B+1,處理器單 元101不向一級(jí)髙速緩存102進(jìn)行存儲(chǔ)器訪問(wèn)請(qǐng)求。另外,在時(shí)刻B+1, 訪問(wèn)模式監(jiān)視單元106不將新的條目登記在預(yù)取地址隊(duì)列107中。
在時(shí)刻C,處理器單元101向一級(jí)髙速緩存102的訪問(wèn)地址區(qū)域 "00101"進(jìn)行存儲(chǔ)器訪問(wèn)請(qǐng)求。訪問(wèn)模式監(jiān)視單元106監(jiān)視處理器單元 101對(duì)"00101"的存儲(chǔ)器訪問(wèn)請(qǐng)求,不對(duì)一級(jí)高速緩存102進(jìn)行新的預(yù) 取,不將新的條目登記在預(yù)取地址隊(duì)列107中。在時(shí)刻C+1,處理器單元 101不向一級(jí)高速緩存102進(jìn)行存儲(chǔ)器訪問(wèn)請(qǐng)求。即,在時(shí)刻B、時(shí)刻C, 當(dāng)訪問(wèn)模式監(jiān)視單元106判斷為后續(xù)訪問(wèn)地址與登記在預(yù)取地址隊(duì)列107 中的條目的地址區(qū)域一致時(shí),信息處理裝置100轉(zhuǎn)移到初始模式動(dòng)作流 程。當(dāng)訪問(wèn)模式監(jiān)視單元106判斷為由于沒(méi)有進(jìn)行太多連續(xù)訪問(wèn)因而無(wú) 需預(yù)取時(shí),預(yù)取控制裝置105不進(jìn)行預(yù)取。
在時(shí)刻D,處理器單元101向一級(jí)高速緩存102的訪問(wèn)地址區(qū)域 "00111"進(jìn)行存儲(chǔ)器訪問(wèn)請(qǐng)求。訪問(wèn)模式監(jiān)視單元106將地址范圍"00100 01011"的條目新登記在預(yù)取地址隊(duì)列107中。然后,訪問(wèn)模 式監(jiān)視單元106向二級(jí)高速緩存預(yù)取請(qǐng)求發(fā)行單元109指示發(fā)行下述預(yù) 取請(qǐng)求,即請(qǐng)求將訪問(wèn)地址范圍"01000 01011"預(yù)取到二級(jí)高速緩 存103中。在時(shí)刻D+1,處理器單元101不對(duì)一級(jí)高速緩存102進(jìn)行存儲(chǔ) 器訪問(wèn)。二級(jí)高速緩存預(yù)取請(qǐng)求發(fā)行單元109請(qǐng)求將訪問(wèn)地址范圍
"01000 01011"預(yù)取到二級(jí)高速緩存103中。即,在時(shí)刻D,訪問(wèn)模式 監(jiān)視單元106判斷為在條目的訪問(wèn)地址范圍內(nèi),處理器單元101的連續(xù) 訪問(wèn)在升序側(cè)進(jìn)行。因此,信息處理裝置100對(duì)256字節(jié)后的數(shù)據(jù)進(jìn)行 二級(jí)高速緩存預(yù)取,使預(yù)取地址隊(duì)列107的條目中的地址加上256字節(jié), 將降序位重置為"0",更新條目。訪問(wèn)模式監(jiān)視單元106所更新的條目 作為升序模式進(jìn)行動(dòng)作。
圖9是本實(shí)施例的升序模式時(shí)的動(dòng)作示例的圖。圖9的行分別表示 從時(shí)刻E到時(shí)刻L+l,圖9的列分別在5位二進(jìn)制數(shù)(00000 10100二0B 1280B)的范圍內(nèi)表示以64字節(jié)為單位的地址進(jìn)行。這里,由于在圖9 中表示對(duì)附近地址的連續(xù)訪問(wèn)的動(dòng)作,因此,地址高位是相同的,在圖9 中省略敘述。
另外,在圖9中,用粗線框包圍的區(qū)域是登記在預(yù)取地址隊(duì)列107 中的區(qū)域。并且,在記有"〇"的訪問(wèn)地址區(qū)域中, 一級(jí)高速緩存102 生成一級(jí)高速緩存預(yù)取(L1PF)。在記有"◎"的訪問(wèn)地址區(qū)域中,二級(jí) 高速緩存103生成二級(jí)高速緩存預(yù)取(L2PF)。在記有"△"的訪問(wèn)地址 區(qū)域中,訪問(wèn)模式監(jiān)視單元106判斷為該訪問(wèn)地址區(qū)域與登記在預(yù)取地 址隊(duì)列107中的條目一致,但是不向一級(jí)高速緩存預(yù)取請(qǐng)求發(fā)行單元108 和二級(jí)高速緩存預(yù)取請(qǐng)求發(fā)行單元109進(jìn)行預(yù)取請(qǐng)求。
在時(shí)刻E,登記在預(yù)取地址隊(duì)列107中的地址區(qū)域是"00100 01011"。并且,處理器單元101對(duì)訪問(wèn)地址區(qū)域"00110"中所包含的訪 問(wèn)地址進(jìn)行存儲(chǔ)器請(qǐng)求。在時(shí)刻E+l,訪問(wèn)模式監(jiān)視單元106判斷為該訪 問(wèn)地址區(qū)域與登記在預(yù)取地址隊(duì)列107中的條目一致。另外,訪問(wèn)模式 監(jiān)視單元106不向一級(jí)高速緩存預(yù)取請(qǐng)求發(fā)行單元108和二級(jí)高速緩存 預(yù)取請(qǐng)求發(fā)行單元109進(jìn)行預(yù)取請(qǐng)求。這是因?yàn)?,存在?duì)訪問(wèn)地址加上64字節(jié)而得到的訪問(wèn)地址區(qū)域進(jìn)行訪問(wèn)的訪問(wèn)歷史。
接著,在時(shí)刻F,處理器單元101對(duì)訪問(wèn)地址區(qū)域"00111"進(jìn)行存 儲(chǔ)器訪問(wèn)請(qǐng)求。在時(shí)刻F+1,訪問(wèn)模式監(jiān)視單元106向一級(jí)高速緩存預(yù)取 請(qǐng)求發(fā)行單元108指示一級(jí)高速緩存預(yù)取的請(qǐng)求。這里,訪問(wèn)模式監(jiān)視 單元106判斷為不存在對(duì)訪問(wèn)地址加上64字節(jié)得到的訪問(wèn)地址區(qū)域 "01000"進(jìn)行訪問(wèn)的訪問(wèn)歷史。
在時(shí)刻G,處理器單元101對(duì)訪問(wèn)地址區(qū)域"01001"中所包含的地 址進(jìn)行存儲(chǔ)器訪問(wèn)請(qǐng)求。訪問(wèn)模式監(jiān)視單元106對(duì)訪問(wèn)地址加上256字 節(jié)而得到的訪問(wèn)地址區(qū)域"01100 01111"進(jìn)行二級(jí)高速緩存預(yù)取,對(duì) 訪問(wèn)地址加上64字節(jié)而得到的訪問(wèn)地址區(qū)域"01010"進(jìn)行一級(jí)高速緩 存預(yù)取。
在時(shí)刻H,處理器單元101對(duì)訪問(wèn)地址區(qū)域"01000"中所包含的地 址進(jìn)行存儲(chǔ)器訪問(wèn)請(qǐng)求。在時(shí)刻"H+1",訪問(wèn)模式監(jiān)視單元106判斷為 該訪問(wèn)地址區(qū)域與登記在預(yù)取地址隊(duì)列107中的條目一致。另外,訪問(wèn) 模式監(jiān)視單元106不向一級(jí)高速緩存預(yù)取請(qǐng)求發(fā)行單元108和二級(jí)高速 緩存預(yù)取請(qǐng)求發(fā)行單元109進(jìn)行預(yù)取請(qǐng)求。
在時(shí)刻J,進(jìn)一步進(jìn)行處理器單元101的存儲(chǔ)器訪問(wèn),處理器單元 101對(duì)訪問(wèn)地址區(qū)域"01010"中所包含的訪問(wèn)地址進(jìn)行存儲(chǔ)器訪問(wèn)請(qǐng)求, 由于訪問(wèn)地址位于預(yù)取地址隊(duì)列的登記地址范圍的開(kāi)頭附近,因此,使 用于通過(guò)預(yù)取而預(yù)先取出數(shù)據(jù)的跨距寬度增加到512字節(jié),來(lái)進(jìn)行二級(jí) 高速緩存預(yù)取,并且使預(yù)取地址隊(duì)列的登記地址范圍前進(jìn)256字節(jié),跨 距寬度也更新為512字節(jié)。然后,在時(shí)刻J+l,訪問(wèn)模式監(jiān)視單元106向 一級(jí)高速緩存預(yù)取請(qǐng)求發(fā)行單元108指示預(yù)取請(qǐng)求。
在時(shí)刻K,處理器單元101對(duì)訪問(wèn)地址區(qū)域"01011"中所包含的訪 問(wèn)地址進(jìn)行存儲(chǔ)器訪問(wèn)請(qǐng)求。在時(shí)刻K+1,訪問(wèn)模式監(jiān)視單元106向一級(jí) 高速緩存預(yù)取請(qǐng)求發(fā)行單元108指示預(yù)取請(qǐng)求。同樣,在時(shí)刻L,處理器 單元101對(duì)訪問(wèn)地址區(qū)域"01101"中所包含的地址進(jìn)行存儲(chǔ)器訪問(wèn)請(qǐng)求。 訪問(wèn)模式監(jiān)視單元106向一級(jí)高速緩存預(yù)取請(qǐng)求發(fā)行單元108指示預(yù)取 請(qǐng)求,并且也向二級(jí)高速緩存預(yù)取請(qǐng)求發(fā)行單元109指示預(yù)取請(qǐng)求。這里, 一級(jí)高速緩存102預(yù)取訪問(wèn)地址區(qū)域"01110", 二級(jí)高速緩存103 預(yù)取訪問(wèn)地址區(qū)域"10100 11111"。
圖10是示出本實(shí)施例的訪問(wèn)模式監(jiān)視單元106在預(yù)取地址隊(duì)列107 中檢測(cè)出多個(gè)條目時(shí)的圖。以下,該多個(gè)條目的檢測(cè)稱為多命中檢測(cè)。
在訪問(wèn)模式監(jiān)視單元106進(jìn)行多命中撿測(cè)的條目中,對(duì)于尚未確定 升序、降序方向的條目而言,訪問(wèn)模式監(jiān)視單元106進(jìn)行選擇的優(yōu)先級(jí) 較低。因此,當(dāng)多命中檢測(cè)出標(biāo)有升序、降序兩個(gè)方向的箭頭的條目時(shí), 訪問(wèn)模式監(jiān)視單元106使該條目無(wú)效。在圖10中,訪問(wèn)1001、 1003、 1005 符合這種情況。
接著,對(duì)于已經(jīng)確定升序、降序的條目而言,在進(jìn)行方向的開(kāi)頭側(cè), 被多命中檢測(cè)出的條目的優(yōu)先級(jí)較低,也成為無(wú)效對(duì)象。在訪問(wèn)1002中, 訪問(wèn)模式監(jiān)視單元106多命中檢測(cè)向相同的升序方向進(jìn)行的多個(gè)條目。 對(duì)于訪問(wèn)1002而言,訪問(wèn)模式監(jiān)視單元106使登記有相對(duì)于進(jìn)行方向更 靠前的地址區(qū)域的條目?jī)?yōu)先,因此使在進(jìn)行方向前側(cè)命中檢測(cè)出的條目 無(wú)效。
在訪問(wèn)1004中,訪問(wèn)模式監(jiān)視單元106對(duì)向升序降序的反方向進(jìn)行 的多個(gè)條目進(jìn)行多命中檢測(cè)。在訪問(wèn)1004中,由于不清楚將來(lái)預(yù)測(cè)進(jìn)行 的地址范圍,所以訪問(wèn)模式監(jiān)視單元106使多命中檢測(cè)出的這兩方的條 目無(wú)效。
這樣,當(dāng)訪問(wèn)模式監(jiān)視單元106進(jìn)行多命中檢測(cè)時(shí),本實(shí)施例的預(yù) 取控制裝置105根據(jù)至此為止的連續(xù)訪問(wèn)的程度,高效地確定無(wú)效條目。
這樣,另外,本實(shí)施例的信息處理裝置100具有處理器單元101; 主存儲(chǔ)裝置104;以及中間存儲(chǔ)部(一級(jí)高速緩存102、二級(jí)高速緩存103), 其從該主存儲(chǔ)裝置104中對(duì)在該處理器單元101中處理的數(shù)據(jù)進(jìn)行高速 緩存。并且,信息處理裝置100進(jìn)行數(shù)據(jù)的高速緩存控制,并且具有預(yù) 取地址隊(duì)列107,該預(yù)取地址隊(duì)列107將包含該處理器單元101對(duì)該主存 儲(chǔ)裝置104或該中間存儲(chǔ)部(一級(jí)高速緩存102、 二級(jí)高速緩存103)進(jìn) 行訪問(wèn)的地址在內(nèi)的、連續(xù)的附近多個(gè)地址保持為1個(gè)條目。信息處理 裝置100的特征在于,控制更新,使得訪問(wèn)中的地址位于登記在1個(gè)條目中的地址范圍的中心,并控制訪問(wèn)模式監(jiān)視單元106由其檢測(cè)在登記
的地址范圍中后續(xù)訪問(wèn)已在連續(xù)方向進(jìn)行,并進(jìn)行預(yù)取。
另外,進(jìn)行數(shù)據(jù)的高速緩存控制的信息處理裝置100的特征在于,
具有處理器單元101;存儲(chǔ)有數(shù)據(jù)的主存儲(chǔ)裝置104;中間存儲(chǔ)部(一
級(jí)高速緩存102、 二級(jí)高速緩存103),其從該主存儲(chǔ)裝置104中對(duì)在該
處理器單元101中處理的數(shù)據(jù)進(jìn)行高速緩存;以及預(yù)取地址隊(duì)列107,其
將包含該處理器單元101對(duì)該主存儲(chǔ)裝置104或該中間存儲(chǔ)部(一級(jí)高 速緩存102、 二級(jí)高速緩存103)進(jìn)行訪問(wèn)的地址在內(nèi)的、連續(xù)的附近多 個(gè)地址保持為1個(gè)條目信息,并且檢測(cè)該處理器單元101對(duì)該主存儲(chǔ)裝 置104或該中間存儲(chǔ)部(一級(jí)高速緩存102、 二級(jí)高速緩存103)進(jìn)行訪 問(wèn)的地址已在連續(xù)方向進(jìn)行,進(jìn)行預(yù)取以及訪問(wèn)歷史條目的更新。
另外,信息處理裝置100的特征在于,僅更新預(yù)取地址隊(duì)列107的 一個(gè)條目所保持的連續(xù)的多個(gè)地址中的部分地址,使條目保持的地址登 記范圍逐漸前進(jìn)。
另外,信息處理裝置100的特征在于,登記在預(yù)取地址隊(duì)列107中 的條目保持有表示訪問(wèn)方向的訪問(wèn)方向標(biāo)志,檢測(cè)該處理器單元101對(duì) 該主存儲(chǔ)裝置104或該中間存儲(chǔ)部(一級(jí)高速緩存102、 二級(jí)高速緩存 103)的訪問(wèn)進(jìn)行方向,控制進(jìn)行預(yù)取的方向。
工業(yè)上的可利用性
本發(fā)明的信息處理裝置進(jìn)行預(yù)取來(lái)提高信息處理裝置的處理速度。 并且,當(dāng)在訪問(wèn)順序顛倒情況下進(jìn)行預(yù)取處理時(shí),本發(fā)明的信息處理裝 置是非常有用的。
權(quán)利要求
1.一種信息處理裝置,其特征在于,該信息處理裝置具有處理器;存儲(chǔ)有數(shù)據(jù)的第1存儲(chǔ)部;第2存儲(chǔ)部,其從該第1存儲(chǔ)部中取得在該處理器中進(jìn)行處理的數(shù)據(jù);條目保持部,其對(duì)以塊為單位保持在該第2存儲(chǔ)部中的數(shù)據(jù)的訪問(wèn)歷史進(jìn)行管理;以及控制部,當(dāng)該處理器的訪問(wèn)目的地從當(dāng)前塊轉(zhuǎn)移到剛剛訪問(wèn)的塊時(shí),該控制部更新保持在該條目保持部中的對(duì)當(dāng)前塊的訪問(wèn)歷史。
2. 根據(jù)權(quán)利要求1所述的信息處理裝置,其特征在于, 該條目保持部保持訪問(wèn)方向信息,該訪問(wèn)方向信息表示該處理器訪問(wèn)的該塊的轉(zhuǎn)移方向。
3. 根據(jù)權(quán)利要求2所述的信息處理裝置,其特征在于, 該條目保持部將多個(gè)地址和訪問(wèn)方向信息對(duì)應(yīng)起來(lái),保持為條目信息。
4. 根據(jù)權(quán)利要求1所述的信息處理裝置,其特征在于, 該控制部對(duì)該條目保持部所保持的多個(gè)塊中的一部分的塊進(jìn)行更新。
5. 根據(jù)權(quán)利要求4所述的信息處理裝置,其特征在于, 該控制部對(duì)與所更新的訪問(wèn)歷史對(duì)應(yīng)的地址范圍和與更新前的訪問(wèn)歷史對(duì)應(yīng)的地址范圍進(jìn)行保持。
6. 根據(jù)權(quán)利要求1所述的信息處理裝置,其特征在于, 該條目保持部具有多個(gè)與該塊對(duì)應(yīng)的地址范圍, 該控制部根據(jù)該處理器訪問(wèn)的塊的轉(zhuǎn)移,對(duì)保持在該條目保持部中的地址范圍進(jìn)行更新。
7. 根據(jù)權(quán)利要求6所述的信息處理裝置,其特征在于, 該控制部對(duì)該地址范圍中的一部分地址范圍進(jìn)行更新。
8. 根據(jù)權(quán)利要求7所述的信息處理裝置,其特征在于, 該控制部對(duì)所更新的地址范圍和更新前的地址范圍進(jìn)行保持。
9. 根據(jù)權(quán)利要求2所述的信息處理裝置,其特征在于,該條目保持部將該塊和該訪問(wèn)方向信息對(duì)應(yīng)起來(lái),保持為條目信息。
10. 根據(jù)權(quán)利要求9所述的信息處理裝置,其特征在于,該控制部對(duì)判斷為該處理器訪問(wèn)的數(shù)據(jù)的地址包含在該塊內(nèi)的多個(gè) 條目信息進(jìn)行檢測(cè),當(dāng)判斷為檢測(cè)出的多個(gè)條目信息的該訪問(wèn)方向信息 互不相同時(shí),對(duì)該訪問(wèn)方向信息進(jìn)行重置。
11. 根據(jù)權(quán)利要求9所述的信息處理裝置,其特征在于, 該地址范圍是該第2存儲(chǔ)部中的連續(xù)地址的集合,該條目信息具有地址連續(xù)的地址范圍的組。
12. 根據(jù)權(quán)利要求9所述的信息處理裝置,其特征在于, 構(gòu)成該條目信息的地址范圍由以更細(xì)小的地址集合為單位的子地址范圍構(gòu)成,該條目信息具有訪問(wèn)歷史信息,該訪問(wèn)歷史信息表示在各個(gè) 子地址范圍中是否存在訪問(wèn)。
13. 根據(jù)權(quán)利要求9所述的信息處理裝置,其特征在于, 該控制部根據(jù)來(lái)自該處理器的訪問(wèn)的發(fā)生來(lái)改變跨距寬度,該跨距寬度表示預(yù)讀到該第2存儲(chǔ)部中的數(shù)據(jù)的地址范圍。
14. 根據(jù)權(quán)利要求9所述的信息處理裝置,其特征在于, 在更新該條目時(shí),該控制部將該處理器所訪問(wèn)的地址設(shè)定在構(gòu)成該條目信息的多個(gè)地址范圍的中心附近。
15. 根據(jù)權(quán)利要求9所述的信息處理裝置,其特征在于, 當(dāng)該控制部判斷為該處理器的訪問(wèn)地址包含在訪問(wèn)進(jìn)行方向的子地址范圍內(nèi)時(shí),該控制單元確定預(yù)讀到該第2存儲(chǔ)部中的數(shù)據(jù)。
16. 根據(jù)權(quán)利要求9所述的信息處理裝置,其特征在于, 該訪問(wèn)方向信息是表示該處理器訪問(wèn)的塊的轉(zhuǎn)移方向的升序位和降序位。
17. 根據(jù)權(quán)利要求9所述的信息處理裝置,其特征在于, 當(dāng)該控制部檢測(cè)出多個(gè)該條目信息且判斷為訪問(wèn)進(jìn)行方向的開(kāi)頭側(cè)的塊中包含有該處理器要訪問(wèn)的數(shù)據(jù)的地址時(shí),該控制部對(duì)該多個(gè)條目 信息進(jìn)行重置。
18. —種信息處理裝置執(zhí)行的數(shù)據(jù)的高速緩存控制方法,該信息處理裝置具有處理數(shù)據(jù)的處理器、存儲(chǔ)數(shù)據(jù)的第1存儲(chǔ)部、以及對(duì)來(lái)自 該第1存儲(chǔ)部的數(shù)據(jù)進(jìn)行高速緩存的第2存儲(chǔ)部,該高速緩存控制方法 的特征在于,該信息處理裝置執(zhí)行下述步驟-對(duì)以塊為單位保持在該第2存儲(chǔ)部中的數(shù)據(jù)的訪問(wèn)歷史進(jìn)行管理的 步驟;以及當(dāng)該處理器的訪問(wèn)目的地從當(dāng)前塊轉(zhuǎn)移到剛剛訪問(wèn)的塊時(shí),更新保 持在該條目保持部中的對(duì)當(dāng)前塊的訪問(wèn)歷史的步驟。
全文摘要
一種信息處理裝置以及高速緩存控制方法。在對(duì)64位訪問(wèn)地址的歷史進(jìn)行記錄的隊(duì)列的1個(gè)條目(200)中具有1個(gè)頁(yè)地址(201)(從位63到位22);2個(gè)頁(yè)內(nèi)地址(202、204)(從位21到位8);以及2個(gè)由4位構(gòu)成的登記區(qū)域內(nèi)訪問(wèn)歷史(203、205)。登記區(qū)域內(nèi)訪問(wèn)歷史(203、205)內(nèi)的1位與一級(jí)高速緩存的登記單位即64字節(jié)的區(qū)域?qū)?yīng),表示是否存在對(duì)該64字節(jié)區(qū)域的訪問(wèn)。頁(yè)地址(201)和2個(gè)頁(yè)內(nèi)地址(202、204)與二級(jí)高速緩存的登記單位即256字節(jié)的2倍(512字節(jié))的區(qū)域?qū)?yīng)。并且,適當(dāng)?shù)馗马?yè)地址(201)和2個(gè)頁(yè)內(nèi)地址(202、204),使得最新的訪問(wèn)地址位于與頁(yè)地址(201)以及2個(gè)頁(yè)內(nèi)地址(202、204)對(duì)應(yīng)的512字節(jié)區(qū)域的中心附近。
文檔編號(hào)G06F12/08GK101689144SQ20078005342
公開(kāi)日2010年3月31日 申請(qǐng)日期2007年6月19日 優(yōu)先權(quán)日2007年6月19日
發(fā)明者大河原英喜, 山崎巌 申請(qǐng)人:富士通株式會(huì)社