專利名稱:面向多核多線程微處理器的虛擬活躍頁(yè)緩沖方法及裝置的制作方法
技術(shù)領(lǐng)域:
本發(fā)明涉 及多核多線程微處理器體系結(jié)構(gòu)設(shè)計(jì)中的片外存儲(chǔ)帶寬優(yōu)化技術(shù)領(lǐng)域,具體涉及一種針對(duì)處理器線程數(shù)目較多的情況下的面向多核多線程微處理器的虛擬活躍頁(yè)緩沖方法及裝置。
背景技術(shù):
主流的片外存儲(chǔ)器使用DDR2和DDR3存儲(chǔ)器(后文統(tǒng)稱DDR),都是基于SDRAM搭建。DDR SDRAM是一個(gè)由片排(rank)、體(bank)、行(row)和列(column)索引的四維的存儲(chǔ)結(jié)構(gòu)。存儲(chǔ)器控制器一般以先進(jìn)先出的順序向SDRAM傳遞訪存指令,這種按程序順序調(diào)度的方法實(shí)現(xiàn)簡(jiǎn)單,但由于存儲(chǔ)體競(jìng)爭(zhēng),對(duì)同一存儲(chǔ)體的連續(xù)訪問(wèn)必須等待前一個(gè)訪問(wèn)完成才能進(jìn)行,存儲(chǔ)器帶寬利用率較低。SDRAM芯片中活躍頁(yè)實(shí)際上和敏感放大器息息相關(guān),SDRAM中活躍頁(yè)將被“讀”到敏感放大器上,后續(xù)的訪問(wèn)就可以直接訪問(wèn),速度很快。影響活躍頁(yè)數(shù)量的最主要因素有敏感放大器的數(shù)量和功耗,但是敏感放大器的面積較大,數(shù)量不可能無(wú)限增大,另外,每個(gè)敏感放大器的功耗不小,也限制了敏感放大器的總數(shù)量。在現(xiàn)階段,物理活躍頁(yè)的數(shù)目受到物理制造工藝的限制非常有限,DDR2/DDR3 JDEC標(biāo)準(zhǔn)中定義了每個(gè)DDR存儲(chǔ)器件活躍頁(yè)最多是8個(gè),這是限制訪存性能提高的主要瓶頸。目前片外存儲(chǔ)帶寬優(yōu)化主要有兩個(gè)方向(I)提高活躍頁(yè)的服務(wù)請(qǐng)求數(shù)量,通過(guò)各種軟硬件方法對(duì)訪存流進(jìn)行重新排序,提高存儲(chǔ)器帶寬利用率。在不破壞DDR協(xié)議的基礎(chǔ)上,為了確?;钴S頁(yè)(Open Page)服務(wù)時(shí)間長(zhǎng),需要存儲(chǔ)器控制器對(duì)時(shí)間窗口中的所有請(qǐng)求進(jìn)行調(diào)度。在保證公平性和服務(wù)質(zhì)量的前提下,映射到同一頁(yè)面的多個(gè)請(qǐng)求連續(xù)化,減少頁(yè)面關(guān)閉和激活的次數(shù),增加頁(yè)面活躍的時(shí)間。(2)使連續(xù)地址均勻映射到SDRAM的多個(gè)體,實(shí)現(xiàn)不同體間負(fù)載基本平衡。由于訪存地址存在熱點(diǎn)(Hot-spot),即部分訪存地址可能多次被訪問(wèn),因此地址平衡不等于訪問(wèn)平衡。突破傳統(tǒng)的片外存儲(chǔ)帶寬優(yōu)化方法在多核多線程處理器中的瓶頸,解決多核多線程處理器中由于線程間地址流的相關(guān)性小而導(dǎo)致的SDRAM中的活躍頁(yè)被頻繁開(kāi)啟和關(guān)閉、造成實(shí)際有效帶寬優(yōu)化空間受限的問(wèn)題。對(duì)于多核多線程處理器,地址流間的相關(guān)性小,當(dāng)線程數(shù)較多時(shí),多基址流并發(fā)訪問(wèn)外部存儲(chǔ)器,導(dǎo)致外部存儲(chǔ)器的物理活躍頁(yè)頻繁的開(kāi)啟和關(guān)閉,兩個(gè)連續(xù)的讀請(qǐng)求在訪問(wèn)不同頁(yè)面時(shí)的請(qǐng)求間隔時(shí)間是訪問(wèn)相同頁(yè)面時(shí)的請(qǐng)求間隔時(shí)間的10倍,因此連續(xù)訪問(wèn)之間的頁(yè)面切換嚴(yán)重影響訪存帶寬,因此存在訪存性能低、活躍頁(yè)關(guān)閉后再激活的代價(jià)較高的缺點(diǎn)。
發(fā)明內(nèi)容
本發(fā)明要解決的技術(shù)問(wèn)題是提供一種能夠增加存儲(chǔ)器整體的活躍頁(yè)數(shù)量、減少活躍頁(yè)關(guān)閉后再激活的代價(jià)、提高訪存帶寬、訪存性能高、可擴(kuò)展性強(qiáng)的面向多核多線程微處理器的虛擬活躍頁(yè)緩沖方法及裝置。
為了解決上述技術(shù)問(wèn)題,本發(fā)明采用的技術(shù)方案為
一種面向多核多線程微處理器的虛擬活躍頁(yè)緩沖方法,其實(shí)施步驟如下
1)在處理器的片上訪存部件和存儲(chǔ)器控制器之間構(gòu)建虛擬活躍頁(yè)緩沖器,獲取來(lái)自處理器的片上訪存部件的訪存請(qǐng)求并判斷訪存請(qǐng)求的類型,如果訪存請(qǐng)求為讀請(qǐng)求,則跳轉(zhuǎn)執(zhí)行步驟2);如果訪存請(qǐng)求為預(yù)取讀請(qǐng)求,則跳轉(zhuǎn)執(zhí)行步驟4);如果訪存請(qǐng)求為寫(xiě)請(qǐng)求,則跳轉(zhuǎn)執(zhí)行步驟7);
2)根據(jù)訪存請(qǐng)求的請(qǐng) 求地址和歷史訪存請(qǐng)求的請(qǐng)求地址比較判斷訪存請(qǐng)求的訪存模式是否符合預(yù)設(shè)的規(guī)則訪問(wèn)特性,當(dāng)訪存模式符合預(yù)設(shè)的規(guī)則訪問(wèn)特性時(shí)判定為頁(yè)預(yù)測(cè)命中,否則判定為頁(yè)預(yù)測(cè)未命中;
3)判斷訪存請(qǐng)求的所需頁(yè)是否在虛擬活躍頁(yè)緩沖器中,如果訪存請(qǐng)求對(duì)應(yīng)的頁(yè)在虛擬活躍頁(yè)緩沖器中則從虛擬活躍頁(yè)緩沖器獲取數(shù)據(jù)并跳轉(zhuǎn)執(zhí)行步驟6);否則,當(dāng)頁(yè)預(yù)測(cè)命中時(shí)跳轉(zhuǎn)執(zhí)行步驟4),當(dāng)頁(yè)預(yù)測(cè)未命中時(shí)跳轉(zhuǎn)執(zhí)行步驟5);
4)將訪存請(qǐng)求轉(zhuǎn)換為塊讀請(qǐng)求并訪問(wèn)存儲(chǔ)器控制器獲取請(qǐng)求的頁(yè)數(shù)據(jù),將返回的頁(yè)數(shù)據(jù)作為虛擬活躍頁(yè)填充虛擬活躍頁(yè)緩沖器,然后跳轉(zhuǎn)執(zhí)行步驟6);
5)發(fā)送訪存請(qǐng)求到存儲(chǔ)器控制器并訪問(wèn)存儲(chǔ)器控制器獲取請(qǐng)求數(shù)據(jù);
6)將讀請(qǐng)求數(shù)據(jù)返回給處理器的片上訪存部件完成讀請(qǐng)求,預(yù)取讀請(qǐng)求返回的數(shù)據(jù)不需要返回給處理器的片上訪存部件;
7)首先判斷是否命中虛擬活躍頁(yè)緩沖器中的虛擬活躍頁(yè),如果命中虛擬活躍頁(yè)緩沖器中的虛擬活躍頁(yè)則作廢虛擬活躍頁(yè)緩沖器中的所述虛擬活躍頁(yè);然后發(fā)送寫(xiě)請(qǐng)求到存儲(chǔ)器控制器,進(jìn)行訪問(wèn)存儲(chǔ)器控制器完成寫(xiě)請(qǐng)求。作為本發(fā)明面向多核多線程微處理器的虛擬活躍頁(yè)緩沖方法的進(jìn)一步改進(jìn)
所述步驟2)中根據(jù)訪存請(qǐng)求的請(qǐng)求地址和歷史訪存請(qǐng)求的請(qǐng)求地址比較判斷訪存請(qǐng)求的訪存模式是否符合預(yù)設(shè)的規(guī)則訪問(wèn)特性具體是指當(dāng)訪存請(qǐng)求的請(qǐng)求地址中〈rank, bank, row〉索引的頁(yè)被連續(xù)訪問(wèn)兩次時(shí),判定訪存請(qǐng)求的訪存模式符合規(guī)則訪問(wèn)特性,否則判定訪存請(qǐng)求的訪存模式不符合規(guī)則訪問(wèn)特性;其中rank為所述請(qǐng)求地址中的排地址,bank為所述請(qǐng)求地址中的體地址,row為所述請(qǐng)求地址中的行地址。所述步驟4)中將返回的頁(yè)數(shù)據(jù)填充虛擬活躍頁(yè)緩沖器作為虛擬活躍頁(yè)時(shí)具體是指通過(guò)先入先出的存儲(chǔ)方式填充虛擬活躍頁(yè)緩沖器,返回的頁(yè)數(shù)據(jù)在填充虛擬活躍頁(yè)數(shù)據(jù)陣列的同時(shí),旁路輸出到多路選擇器;所述步驟6)中當(dāng)訪存請(qǐng)求對(duì)應(yīng)的頁(yè)在虛擬活躍頁(yè)緩沖器時(shí)讀請(qǐng)求數(shù)據(jù)來(lái)自虛擬活躍頁(yè)數(shù)據(jù)陣列,否則來(lái)自數(shù)據(jù)返回隊(duì)列填充虛擬活躍頁(yè)緩沖器時(shí)的填充數(shù)據(jù)。本發(fā)明還提供一種面向多核多線程微處理器的虛擬活躍頁(yè)緩沖裝置,包括頁(yè)預(yù)測(cè)器、仲裁器、虛擬活躍頁(yè)標(biāo)識(shí)陣列、虛擬活躍頁(yè)數(shù)據(jù)陣列、讀寫(xiě)隊(duì)列、命令隊(duì)列、數(shù)據(jù)返回隊(duì)列、未決表和多路選擇器,所述頁(yè)預(yù)測(cè)器的輸入端、多路選擇器的輸出端分別與處理器的片上訪存部件相連,所述命令隊(duì)列的輸出端、數(shù)據(jù)返回隊(duì)列的輸入端、未決表的輸入端分別與存儲(chǔ)器控制器相連;
所述頁(yè)預(yù)測(cè)器用于接收來(lái)自處理器的片上訪存部件的訪存請(qǐng)求、判斷訪存請(qǐng)求的類型以及訪存請(qǐng)求是否為頁(yè)預(yù)測(cè)命中的頁(yè)預(yù)測(cè)結(jié)果;
所述仲裁器用于仲裁來(lái)自讀寫(xiě)隊(duì)列的讀寫(xiě)請(qǐng)求和來(lái)自數(shù)據(jù)返回隊(duì)列的填充請(qǐng)求并向虛擬活躍頁(yè)標(biāo)識(shí)陣列輸出仲裁結(jié)果;所述虛擬活躍頁(yè)標(biāo)識(shí)陣列用于保存虛擬活躍頁(yè)的頁(yè)地址和狀態(tài)信息,存儲(chǔ)器的每個(gè)體對(duì)應(yīng)一個(gè)獨(dú)立的標(biāo)識(shí)陣列,不同體的標(biāo)識(shí)陣列可以并行訪問(wèn);
所述虛擬活躍頁(yè)標(biāo)識(shí)陣列接收來(lái)自片上訪存請(qǐng)求的請(qǐng)求標(biāo)識(shí)、頁(yè)預(yù)測(cè)器的頁(yè)預(yù)測(cè)結(jié)果、來(lái)自讀寫(xiě)隊(duì)列的讀寫(xiě)請(qǐng)求和來(lái)自仲裁器的仲裁結(jié)果; 所述虛擬活躍頁(yè)數(shù)據(jù)陣列用于保存虛擬活躍頁(yè)的頁(yè)數(shù)據(jù),虛擬活躍頁(yè)數(shù)據(jù)陣列根據(jù)讀寫(xiě)隊(duì)列的讀請(qǐng)求讀數(shù)據(jù)隊(duì)列、根據(jù)數(shù)據(jù)返回隊(duì)列的填充請(qǐng)求寫(xiě)數(shù)據(jù)隊(duì)列;
所述讀寫(xiě)隊(duì)列用于保存讀寫(xiě)VOP緩沖的標(biāo)識(shí)陣列和數(shù)據(jù)陣列的請(qǐng)求,當(dāng)訪存請(qǐng)求為讀請(qǐng)求且訪存請(qǐng)求標(biāo)識(shí)與虛擬活躍頁(yè)標(biāo)識(shí)陣列中的標(biāo)識(shí)比較結(jié)果為匹配時(shí),所述讀寫(xiě)隊(duì)列緩存用于從虛擬活躍頁(yè)數(shù)據(jù)陣列中讀出所需數(shù)據(jù)的訪存請(qǐng)求;當(dāng)訪存請(qǐng)求為寫(xiě)請(qǐng)求且訪存請(qǐng)求標(biāo)識(shí)與虛擬活躍頁(yè)標(biāo)識(shí)陣列中的標(biāo)識(shí)比較結(jié)果為匹配時(shí),所述讀寫(xiě)隊(duì)列緩存用于作廢命中的虛擬頁(yè)的訪存請(qǐng)求;當(dāng)訪存請(qǐng)求標(biāo)識(shí)與虛擬活躍頁(yè)標(biāo)識(shí)陣列中的標(biāo)識(shí)比較結(jié)果為不匹配時(shí),讀寫(xiě)隊(duì)列不緩存訪存請(qǐng)求;
所述命令隊(duì)列用于保存需要發(fā)送到存儲(chǔ)器控制器的包括普通的讀、寫(xiě)請(qǐng)求或者塊讀請(qǐng)求的訪存請(qǐng)求;
所述數(shù)據(jù)返回隊(duì)列用于保存存儲(chǔ)器控制器從外部存儲(chǔ)器返回的讀響應(yīng)數(shù)據(jù)、輸出填充請(qǐng)求和數(shù)據(jù)到數(shù)據(jù)陣列,輸出填充請(qǐng)求到仲裁器、輸出填充數(shù)據(jù)到多路選擇器;
所述未決表用于保存所有等待存儲(chǔ)器控制器返回的塊讀請(qǐng)求的狀態(tài)信息,所述狀態(tài)信息按照請(qǐng)求號(hào)索引存儲(chǔ)于未決表中,若片上訪存讀請(qǐng)求命中虛擬活躍頁(yè)數(shù)據(jù)陣列,但是請(qǐng)求所需數(shù)據(jù)位于記錄在未決表中的一個(gè)未返回的塊讀請(qǐng)求所讀取的物理頁(yè)中,則可以將該請(qǐng)求追加到在未決表中命中的塊讀請(qǐng)求項(xiàng)中,等待塊讀請(qǐng)求所讀取的物理頁(yè)數(shù)據(jù)返回時(shí)一并返回給片上訪存部件;
所述多路選擇器用于根據(jù)仲裁器的仲裁結(jié)果選擇從虛擬活躍頁(yè)數(shù)據(jù)陣列或者從數(shù)據(jù)返回隊(duì)列獲得返回?cái)?shù)據(jù)并輸出給處理器的片上訪存部件。作為本發(fā)明面向多核多線程微處理器的虛擬活躍頁(yè)緩沖裝置的進(jìn)一步改進(jìn)
所述仲裁器為輪轉(zhuǎn)策略仲裁器。所述讀寫(xiě)隊(duì)列、命令隊(duì)列和數(shù)據(jù)返回隊(duì)列均為先入先出結(jié)構(gòu)。本發(fā)明面向多核多線程微處理器的虛擬活躍頁(yè)緩沖方法具有下述優(yōu)點(diǎn)
I、本發(fā)明在外部存儲(chǔ)器物理活躍頁(yè)數(shù)目受限的情況下,通過(guò)為存儲(chǔ)器的每個(gè)體虛擬多個(gè)虛擬活躍頁(yè)的方式,增加了存儲(chǔ)器整體的活躍頁(yè)的數(shù)量,減少了活躍頁(yè)關(guān)閉后再激活的代價(jià)、提高了訪存帶寬,具有訪存性能高、可擴(kuò)展性強(qiáng)的優(yōu)點(diǎn)。2、傳統(tǒng)的訪存調(diào)度技術(shù)主要從提高物理活躍頁(yè)的服務(wù)時(shí)間、平衡多體負(fù)載的角度優(yōu)化片外訪存帶寬,其優(yōu)化空間受到外部存儲(chǔ)器物理活躍頁(yè)數(shù)目的限制,優(yōu)化幅度無(wú)法進(jìn)一步突破;而本發(fā)明提出了虛擬活躍頁(yè)的概念,虛擬活躍頁(yè)的數(shù)目可以根據(jù)需要進(jìn)行線性擴(kuò)展,打破了傳統(tǒng)的僅僅依賴物理活躍頁(yè)的情況下活躍頁(yè)數(shù)目限制,訪存帶寬可以進(jìn)一步提聞。3、本發(fā)明可以與傳統(tǒng)的提高外部存儲(chǔ)器訪問(wèn)帶寬的方法聯(lián)合使用,突破傳統(tǒng)方法在提高訪存帶寬方面的極限。本發(fā)明面向多核多線程微處理器的虛擬活躍頁(yè)緩沖裝置由于具有與本發(fā)明面向多核多線程微處理器的虛擬活躍頁(yè)緩沖方法對(duì)應(yīng)的結(jié)構(gòu),因此也具有上述本發(fā)明面向多核多線程微處理器的虛擬活躍頁(yè)緩沖方法相對(duì)應(yīng)的優(yōu)點(diǎn)。
圖I為本發(fā)明實(shí)施例方法構(gòu)建的虛擬活躍頁(yè)緩沖器的位置示意圖。圖2為本發(fā)明實(shí)施例方法中處理訪存請(qǐng)求為讀請(qǐng)求或預(yù)取讀請(qǐng)求時(shí)的實(shí)施步驟示意圖。圖3為本發(fā)明實(shí)施例方法中處理訪存請(qǐng)求為寫(xiě)請(qǐng)求時(shí)的實(shí)施步驟示意圖。圖4為本發(fā)明實(shí)施例裝置的框架結(jié)構(gòu)示意圖。圖例說(shuō)明1、頁(yè)預(yù)測(cè)器;2、仲裁器;3、虛擬活躍頁(yè)標(biāo)識(shí)陣列;4、虛擬活躍頁(yè)數(shù)據(jù)陣列;5、讀寫(xiě)隊(duì)列;6、命令隊(duì)列;7、數(shù)據(jù)返回隊(duì)列;8、未決表;9、多路選擇器。
具體實(shí)施例方式如圖I、圖2和圖3所示,本實(shí)施例面向多核多線程微處理器的虛擬活躍頁(yè)緩沖方法的實(shí)施步驟如下
1)在處理器的片上訪存部件和存儲(chǔ)器控制器之間構(gòu)建虛擬活躍頁(yè)緩沖器(VirtualOpen Page Buffer,簡(jiǎn)稱VOP緩沖器),獲取來(lái)自處理器的片上訪存部件的訪存請(qǐng)求并判斷訪存請(qǐng)求的類型,如果訪存請(qǐng)求為讀請(qǐng)求,則跳轉(zhuǎn)執(zhí)行步驟2);如果訪存請(qǐng)求為預(yù)取讀請(qǐng)求,則跳轉(zhuǎn)執(zhí)行步驟4);如果訪存請(qǐng)求為寫(xiě)請(qǐng)求,則跳轉(zhuǎn)執(zhí)行步驟7);
2)根據(jù)訪存請(qǐng)求的請(qǐng)求地址和歷史訪存請(qǐng)求的請(qǐng)求地址比較判斷訪存請(qǐng)求的訪存模式是否符合預(yù)設(shè)的規(guī)則訪問(wèn)特性,當(dāng)訪存模式符合預(yù)設(shè)的規(guī)則訪問(wèn)特性時(shí)判定為頁(yè)預(yù)測(cè)命中,否則判定為頁(yè)預(yù)測(cè)未命中;
3)判斷訪存請(qǐng)求的所需頁(yè)是否在虛擬活躍頁(yè)緩沖器中,如果訪存請(qǐng)求對(duì)應(yīng)的頁(yè)在虛擬活躍頁(yè)緩沖器中則從虛擬活躍頁(yè)緩沖器獲取數(shù)據(jù)并跳轉(zhuǎn)執(zhí)行步驟6);否則,當(dāng)頁(yè)預(yù)測(cè)命中時(shí)跳轉(zhuǎn)執(zhí)行步驟4),當(dāng)頁(yè)預(yù)測(cè)未命中時(shí)跳轉(zhuǎn)執(zhí)行步驟5);
4)將訪存請(qǐng)求轉(zhuǎn)換為塊讀請(qǐng)求(塊讀請(qǐng)求每次能夠返回一個(gè)頁(yè)容量如1024K字節(jié)的數(shù)據(jù),普通的讀請(qǐng)求每次僅能夠返回一個(gè)Cache行容量如16字節(jié)數(shù)據(jù))并訪問(wèn)存儲(chǔ)器控制器獲取請(qǐng)求的頁(yè)數(shù)據(jù),將返回的頁(yè)數(shù)據(jù)作為虛擬活躍頁(yè)填充虛擬活躍頁(yè)緩沖器,然后跳轉(zhuǎn)執(zhí)行步驟6);
5)發(fā)送訪存請(qǐng)求到存儲(chǔ)器控制器并訪問(wèn)存儲(chǔ)器控制器獲取請(qǐng)求數(shù)據(jù);
6)將讀請(qǐng)求數(shù)據(jù)返回給處理器的片上訪存部件完成讀請(qǐng)求,預(yù)取讀請(qǐng)求返回的數(shù)據(jù)不需要返回給處理器的片上訪存部件;
7)首先判斷是否命中虛擬活躍頁(yè)緩沖器中的虛擬活躍頁(yè),如果命中虛擬活躍頁(yè)緩沖器中的虛擬活躍頁(yè)則作廢虛擬活躍頁(yè)緩沖器中的虛擬活躍頁(yè);然后發(fā)送寫(xiě)請(qǐng)求到存儲(chǔ)器控制器,進(jìn)行訪問(wèn)存儲(chǔ)器控制器完成寫(xiě)請(qǐng)求。傳統(tǒng)的調(diào)度策略調(diào)度窗口有限,如果不進(jìn)行必要的體系結(jié)構(gòu)優(yōu)化,單純依靠訪存調(diào)度策略的優(yōu)化很難進(jìn)一步提高片外存儲(chǔ)帶寬的效率,而本實(shí)施例中通過(guò)增加虛擬活躍頁(yè)的數(shù)量,在片外存儲(chǔ)器活躍頁(yè)有限的情況下,在片內(nèi)虛擬更多的虛擬活躍頁(yè),例如為存儲(chǔ)器的每個(gè)體虛擬出8 16個(gè)虛擬活躍頁(yè),并且可以根據(jù)需要線性擴(kuò)展,從而能夠有效緩解上述調(diào)度策略調(diào)度窗口有限的問(wèn)題,能夠提高存儲(chǔ)器的訪存性能和訪存帶寬。步驟2)中根據(jù)訪存請(qǐng)求的請(qǐng)求地址和歷史訪存請(qǐng)求的請(qǐng)求地址比較判斷訪存請(qǐng)求的訪存模式是否符合預(yù)設(shè)的規(guī)則訪問(wèn)特性具體是指當(dāng)訪存請(qǐng)求的請(qǐng)求地址中〈rank, bank, row〉索引的頁(yè)被連續(xù)訪問(wèn)兩次時(shí),判定訪存請(qǐng)求的訪存模式符合規(guī)則訪問(wèn)特性,否則判定訪存請(qǐng)求的訪存模式不符合規(guī)則訪問(wèn)特性;其中rank為請(qǐng)求地址中的排地址,bank為請(qǐng)求地址中的體地址,row為請(qǐng)求地址中的行地址。此外,也可以根據(jù)需要定義其它的規(guī)則訪問(wèn)特性。步驟4)中將返回的頁(yè)數(shù)據(jù)填充虛擬活躍頁(yè)緩沖器作為虛擬活躍頁(yè)時(shí)具體是指通過(guò)先入先出的存儲(chǔ)方式填充虛擬活躍頁(yè)緩沖器,返回的頁(yè)數(shù)據(jù)在填充虛擬活躍頁(yè)數(shù)據(jù)陣列4的同時(shí),旁路輸出到多路選擇器9 ;步驟6)中當(dāng)訪存請(qǐng)求對(duì)應(yīng)的頁(yè)在虛擬活躍頁(yè)緩沖器時(shí)讀請(qǐng)求數(shù)據(jù)來(lái)自虛擬活躍頁(yè)數(shù)據(jù)陣列4,否則來(lái)自數(shù)據(jù)返回隊(duì)列7填充虛擬活躍頁(yè)緩沖器時(shí)的填充數(shù)據(jù)。如圖4所示,本實(shí)施例面向多核多線程微處理器的虛擬活躍頁(yè)緩沖裝置包括頁(yè)預(yù) 測(cè)器I、仲裁器2、虛擬活躍頁(yè)標(biāo)識(shí)陣列3、虛擬活躍頁(yè)數(shù)據(jù)陣列4、讀寫(xiě)隊(duì)列5、命令隊(duì)列6、數(shù)據(jù)返回隊(duì)列7、未決表8和多路選擇器9,頁(yè)預(yù)測(cè)器I的輸入端、多路選擇器9的輸出端分別與處理器的片上訪存部件相連,命令隊(duì)列6的輸出端、數(shù)據(jù)返回隊(duì)列7的輸入端、未決表8的輸入端分別與存儲(chǔ)器控制器相連。頁(yè)預(yù)測(cè)器I (Page Predictor,簡(jiǎn)稱PP)用于接收來(lái)自處理器的片上訪存部件的訪存請(qǐng)求、判斷訪存請(qǐng)求的類型以及訪存請(qǐng)求是否為頁(yè)預(yù)測(cè)命中的頁(yè)預(yù)測(cè)結(jié)果。頁(yè)預(yù)測(cè)器I接收來(lái)自處理器片上訪存部件的訪存請(qǐng)求,開(kāi)發(fā)符合順序訪問(wèn)特性的訪存模式,一種簡(jiǎn)單的預(yù)測(cè)方式是每個(gè)〈rank, bank, row〉索弓I的頁(yè)被連續(xù)訪問(wèn)兩次,認(rèn)為可以激發(fā)一個(gè)塊讀操作,存儲(chǔ)器控制器從外部存儲(chǔ)器(外存)讀取一個(gè)完成的物理頁(yè)數(shù)據(jù)到VOP緩沖裝置中。仲裁器2用于仲裁來(lái)自讀寫(xiě)隊(duì)列5的讀寫(xiě)請(qǐng)求和來(lái)自數(shù)據(jù)返回隊(duì)列7的填充請(qǐng)求并向虛擬活躍頁(yè)標(biāo)識(shí)陣列3輸出仲裁結(jié)果。虛擬活躍頁(yè)標(biāo)識(shí)陣列3 (VOP Tag Array,VOP標(biāo)識(shí)陣列)用于保存虛擬活躍頁(yè)的頁(yè)地址和狀態(tài)信息,存儲(chǔ)器的每個(gè)體對(duì)應(yīng)一個(gè)獨(dú)立的標(biāo)識(shí)陣列(Tag),不同體的標(biāo)識(shí)陣列可以并行訪問(wèn);虛擬活躍頁(yè)標(biāo)識(shí)陣列3接收來(lái)自片上訪存請(qǐng)求的請(qǐng)求標(biāo)識(shí)、頁(yè)預(yù)測(cè)器I的頁(yè)預(yù)測(cè)結(jié)果、來(lái)自讀寫(xiě)隊(duì)列5的讀寫(xiě)請(qǐng)求和來(lái)自仲裁器2的仲裁結(jié)果。本實(shí)施例中,虛擬活躍頁(yè)標(biāo)識(shí)陣列3具有雙端口,一個(gè)端口為相聯(lián)存儲(chǔ)器(Content Addressed Memory,簡(jiǎn)稱CAM)端口,用于進(jìn)行Tag比較,另外一個(gè)端口為寫(xiě)端口,用于標(biāo)識(shí)和狀態(tài)更新。虛擬活躍頁(yè)數(shù)據(jù)陣列4 (虛擬活躍頁(yè)數(shù)據(jù)陣列)用于保存虛擬活躍頁(yè)的頁(yè)數(shù)據(jù),虛擬活躍頁(yè)數(shù)據(jù)陣列4根據(jù)讀寫(xiě)隊(duì)列5的讀請(qǐng)求讀數(shù)據(jù)隊(duì)列、根據(jù)數(shù)據(jù)返回隊(duì)列7的填充請(qǐng)求寫(xiě)數(shù)據(jù)隊(duì)列。若虛擬活躍頁(yè)數(shù)據(jù)陣列4僅擁有一個(gè)讀寫(xiě)端口時(shí),需要根據(jù)仲裁器2的仲裁結(jié)果決定處理器讀請(qǐng)求還是填充請(qǐng)求。虛擬活躍頁(yè)數(shù)據(jù)陣列4的容量可以根據(jù)實(shí)際需要線性擴(kuò)展。讀寫(xiě)隊(duì)列5 (Read/Write Queue,簡(jiǎn)稱RWQ)用于保存讀寫(xiě)VOP緩沖的標(biāo)識(shí)陣列和數(shù)據(jù)陣列的請(qǐng)求,當(dāng)訪存請(qǐng)求為讀請(qǐng)求且訪存請(qǐng)求標(biāo)識(shí)與虛擬活躍頁(yè)標(biāo)識(shí)陣列3中的標(biāo)識(shí)比較結(jié)果為匹配時(shí),讀寫(xiě)隊(duì)列5緩存用于從虛擬活躍頁(yè)數(shù)據(jù)陣列4中讀出所需數(shù)據(jù)的訪存請(qǐng)求;當(dāng)訪存請(qǐng)求為寫(xiě)請(qǐng)求且訪存請(qǐng)求標(biāo)識(shí)與虛擬活躍頁(yè)標(biāo)識(shí)陣列3中的標(biāo)識(shí)比較結(jié)果為匹配時(shí),讀寫(xiě)隊(duì)列5緩存用于作廢命中的虛擬頁(yè)的訪存請(qǐng)求;當(dāng)訪存請(qǐng)求標(biāo)識(shí)與虛擬活躍頁(yè)標(biāo)識(shí)陣列3中的標(biāo)識(shí)比較結(jié)果為不匹配時(shí),讀寫(xiě)隊(duì)列5不緩存訪存請(qǐng)求。命令隊(duì)列6 (Command Queue,簡(jiǎn)稱CQ)用于保存需要發(fā)送到存儲(chǔ)器控制器的包括普通的讀、寫(xiě)請(qǐng)求或者塊讀請(qǐng)求的訪存請(qǐng)求。數(shù)據(jù)返回隊(duì)列7 (Return Data Queue,簡(jiǎn)稱RDQ)用于保存從存儲(chǔ)器控制器返回的讀響應(yīng)數(shù)據(jù)、輸出填充請(qǐng)求和數(shù)據(jù)到數(shù)據(jù)陣列,輸出填充請(qǐng)求到仲裁器2、輸出填充數(shù)據(jù)到多路選擇器9。數(shù)據(jù)返回隊(duì)列7保存塊讀請(qǐng)求從存儲(chǔ)器控制器返回的頁(yè)數(shù)據(jù),等待寫(xiě)入虛擬活躍頁(yè)數(shù)據(jù)陣列4中。未決表8 (PendingTable,簡(jiǎn)稱PT)用于保存所有等待存儲(chǔ)器控制器返回的塊讀請(qǐng)求的狀態(tài)信息,狀態(tài)信息按照請(qǐng)求號(hào)索引存儲(chǔ)于未決表8中,若片上訪存讀請(qǐng)求命中虛擬活躍頁(yè)數(shù)據(jù)陣列4,但是請(qǐng)求所需數(shù)據(jù)位于記錄在未決表8中的一個(gè)未返回的塊讀請(qǐng)求所讀取的物理頁(yè)中,則可以將該請(qǐng)求追加到在未決表8中命中的塊讀請(qǐng)求項(xiàng)中,等待塊讀請(qǐng)求所讀取的物理頁(yè)數(shù)據(jù)返回時(shí)一并返回給片上訪存部件。 多路選擇器9用于根據(jù)仲裁器2的仲裁結(jié)果選擇從虛擬活躍頁(yè)數(shù)據(jù)陣列4或者從數(shù)據(jù)返回隊(duì)列7獲得返回?cái)?shù)據(jù)并輸出給處理器的片上訪存部件。本實(shí)施例中,仲裁器2為輪轉(zhuǎn)策略仲裁器。讀寫(xiě)隊(duì)列5、命令隊(duì)列6和數(shù)據(jù)返回隊(duì)列7均為先入先出結(jié)構(gòu)。由于具有順序訪問(wèn)特性的訪存將會(huì)對(duì)同一個(gè)頁(yè)進(jìn)行連續(xù)訪問(wèn),頁(yè)預(yù)測(cè)器I接收來(lái)自處理器訪存部件的請(qǐng)求,根據(jù)訪存地址中的rank號(hào)、bank號(hào)和row號(hào),其中rank為請(qǐng)求地址中的排地址,bank為請(qǐng)求地址中的體地址,row為請(qǐng)求地址中的行地址,判斷由〈rank, bank, row〉索引的物理頁(yè)之前是否被訪問(wèn)過(guò),若已有一次或一次以上的訪問(wèn),貝U頁(yè)預(yù)測(cè)命中,可以將普通的僅取一個(gè)緩存行(Cacheline)數(shù)據(jù)的讀請(qǐng)求轉(zhuǎn)換為一個(gè)對(duì)該緩存行所在物理頁(yè)的塊讀(block load)操作,將整個(gè)物理頁(yè)從外部存儲(chǔ)器讀入到虛擬活躍頁(yè)數(shù)據(jù)陣列4中,保存為一個(gè)虛擬活躍頁(yè);若沒(méi)有訪問(wèn)過(guò),則頁(yè)預(yù)測(cè)不命中,按照普通的訪問(wèn)處理。仲裁器2按照公平的輪轉(zhuǎn)策略對(duì)分別來(lái)自RWQ和RDQ的請(qǐng)求進(jìn)行仲裁,選擇其中的一個(gè)源。若仲裁器2選中了來(lái)自RWQ的請(qǐng)求,如果是讀請(qǐng)求,則根據(jù)命中信息訪問(wèn)虛擬活躍頁(yè)數(shù)據(jù)陣列4,從命中的虛擬活躍頁(yè)中獲得所需的緩存行數(shù)據(jù)送回處理器的片上訪存部件;如果是寫(xiě)請(qǐng)求,則訪問(wèn)虛擬活躍頁(yè)標(biāo)識(shí)陣列3,通過(guò)作廢命中的虛擬活躍頁(yè)在虛擬活躍頁(yè)標(biāo)識(shí)陣列
3中的有效位作廢整個(gè)虛擬頁(yè),維護(hù)數(shù)據(jù)一致性。若仲裁器2選中了來(lái)自RDQ的請(qǐng)求,則從RDQ取出塊讀響應(yīng)包含的物理頁(yè)數(shù)據(jù),按照未決表8中預(yù)先保存的信息,填充到虛擬活躍頁(yè)數(shù)據(jù)陣列4中對(duì)應(yīng)的位置,并修改虛擬活躍頁(yè)標(biāo)識(shí)陣列3中對(duì)應(yīng)的狀態(tài)。每個(gè)存放于虛擬活躍頁(yè)數(shù)據(jù)陣列4中的虛擬活躍頁(yè)的頁(yè)地址作為標(biāo)識(shí)(Tag)保存在標(biāo)識(shí)陣列中。通過(guò)頁(yè)預(yù)測(cè)器I的訪存請(qǐng)求會(huì)將頁(yè)地址(請(qǐng)求標(biāo)識(shí))送入虛擬活躍頁(yè)標(biāo)識(shí)陣列3進(jìn)行比較,判斷是否與其中的某個(gè)標(biāo)識(shí)匹配。對(duì)于讀請(qǐng)求,如果發(fā)現(xiàn)匹配,則說(shuō)明所需的緩存行數(shù)據(jù)已經(jīng)保存于虛擬活躍頁(yè)數(shù)據(jù)陣列4中或者已經(jīng)被虛擬活躍頁(yè)數(shù)據(jù)陣列4預(yù)取但還未寫(xiě)入緩沖器;如果不匹配,則根據(jù)頁(yè)預(yù)測(cè)器I的預(yù)測(cè)結(jié)果決定發(fā)送一個(gè)普通的訪存請(qǐng)求還是塊讀請(qǐng)求。對(duì)于寫(xiě)請(qǐng)求,如果發(fā)現(xiàn)匹配,說(shuō)明虛擬活躍頁(yè)數(shù)據(jù)陣列4中保存了較老的緩存行數(shù)據(jù),為了保證數(shù)據(jù)的一致性,一種簡(jiǎn)單的做法是直接作廢其所在的整個(gè)虛擬活躍頁(yè),寫(xiě)請(qǐng)求發(fā)送到外部存儲(chǔ)器,一種優(yōu)化的做法是不作廢整個(gè)虛擬活躍頁(yè),而是寫(xiě)更新頁(yè)中對(duì)應(yīng)緩存行的數(shù)據(jù)。對(duì)于預(yù)取讀請(qǐng)求,若請(qǐng)求標(biāo)識(shí)與虛擬活躍頁(yè)標(biāo)識(shí)陣列3中的標(biāo)識(shí)比較匹配,則預(yù)取讀命令被取消;若不匹配,則激發(fā)一個(gè)塊讀操作,預(yù)取一個(gè)物理頁(yè)到虛擬活躍頁(yè)數(shù)據(jù)陣列4中,但是不返回?cái)?shù)據(jù)到片上訪存部件。對(duì)于讀請(qǐng)求如果請(qǐng)求標(biāo)識(shí)與虛擬活躍頁(yè)標(biāo)識(shí)陣列3中的標(biāo)識(shí)匹配且所需的數(shù)據(jù)已經(jīng)存在于虛擬活躍頁(yè)數(shù)據(jù)陣列4中,則將該請(qǐng)求及命中信息存入讀寫(xiě)隊(duì)列5中;如果請(qǐng)求標(biāo)識(shí)與虛擬活躍頁(yè)標(biāo)識(shí)陣列3中的標(biāo)識(shí)比較不匹配且頁(yè)預(yù)測(cè)命中,則將該讀請(qǐng)求轉(zhuǎn)換為塊讀請(qǐng)求送入命令隊(duì)列6中,同時(shí)塊讀請(qǐng)求記錄在未決表8中;如果請(qǐng)求標(biāo)識(shí)與虛擬活躍頁(yè)標(biāo)識(shí)陣列3中的標(biāo)識(shí)比較不匹配且頁(yè)預(yù)測(cè)不命中,則將讀請(qǐng)求當(dāng)作普通的讀請(qǐng)求送入命令隊(duì)列6中;如果請(qǐng)求標(biāo)識(shí)與虛擬活躍頁(yè)標(biāo)識(shí)陣列3中的標(biāo)識(shí)匹配且所需數(shù)據(jù)所在的頁(yè)正被虛擬活躍頁(yè)數(shù)據(jù)陣列4通過(guò)塊讀請(qǐng)求從外部存儲(chǔ)器讀取但還未返回,則將該請(qǐng)求與未決表8中記錄的塊讀請(qǐng)求合并。塊讀請(qǐng)求將讀取完整的一個(gè)物理頁(yè),當(dāng)該頁(yè)的數(shù)據(jù)從存儲(chǔ)器控制器返回虛擬活躍頁(yè)數(shù)據(jù)陣列4時(shí),將所有數(shù)據(jù)保留在虛擬活躍頁(yè)數(shù)據(jù)陣列4中作為一個(gè)虛擬活躍頁(yè)。本實(shí)施例面向多核多線程微處理器的虛擬活躍頁(yè)緩沖裝置的工作流程如下
Al)頁(yè)預(yù)測(cè)器I獲取來(lái)自處理器的片上訪存部件的訪存請(qǐng)求并判斷訪存請(qǐng)求的類型 如果訪存請(qǐng)求為讀(load)請(qǐng)求,則跳轉(zhuǎn)執(zhí)行步驟A2);
如果訪存請(qǐng)求為預(yù)取讀(Prefetch load,簡(jiǎn)稱Preload)請(qǐng)求,則跳轉(zhuǎn)執(zhí)行步驟A4); 如果訪存請(qǐng)求為寫(xiě)(store)請(qǐng)求,則跳轉(zhuǎn)執(zhí)行步驟A7)。A2)頁(yè)預(yù)測(cè)器I根據(jù)訪存請(qǐng)求的請(qǐng)求地址和歷史訪存請(qǐng)求的請(qǐng)求地址比較判斷訪存請(qǐng)求的訪存模式是否符合規(guī)則訪問(wèn)特性(順序訪問(wèn)特性或者跨步訪問(wèn)特性等)。本實(shí)施例中,當(dāng)訪存請(qǐng)求的請(qǐng)求地址中〈rank, bank, row〉索引的頁(yè)被連續(xù)訪問(wèn)兩次時(shí),判定訪存請(qǐng)求的訪存模式符合規(guī)則訪問(wèn)特性,否則判定訪存請(qǐng)求的訪存模式不符合規(guī)則訪問(wèn)特性;其中rank為請(qǐng)求地址中的排地址,bank為請(qǐng)求地址中的體地址,row為請(qǐng)求地址中的行地址。當(dāng)訪存模式符合規(guī)則訪問(wèn)特性時(shí)判定為頁(yè)預(yù)測(cè)命中,否則判定為頁(yè)預(yù)測(cè)未命中。A3)虛擬活躍頁(yè)標(biāo)識(shí)陣列3判斷訪存請(qǐng)求的所需頁(yè)是否在虛擬活躍頁(yè)緩沖器中,如果訪存請(qǐng)求對(duì)應(yīng)的頁(yè)在虛擬活躍頁(yè)緩沖器中則從虛擬活躍頁(yè)緩沖器獲取數(shù)據(jù)并跳轉(zhuǎn)執(zhí)行步驟A6)。否則,當(dāng)頁(yè)預(yù)測(cè)命中時(shí)跳轉(zhuǎn)執(zhí)行步驟A4),當(dāng)頁(yè)預(yù)測(cè)未命中時(shí)不對(duì)虛擬活躍頁(yè)數(shù)據(jù)陣列4做任何操作,直接跳轉(zhuǎn)執(zhí)行步驟A5)。A4)命令隊(duì)列6將訪存請(qǐng)求轉(zhuǎn)換為塊讀請(qǐng)求(Block load)并訪問(wèn)存儲(chǔ)器控制器獲取請(qǐng)求的頁(yè)數(shù)據(jù),數(shù)據(jù)返回隊(duì)列7將返回的頁(yè)數(shù)據(jù)作為虛擬活躍頁(yè)填充虛擬活躍頁(yè)數(shù)據(jù)陣列4,然后跳轉(zhuǎn)執(zhí)行步驟A6)。A5)命令隊(duì)列6發(fā)送訪存請(qǐng)求到存儲(chǔ)器控制器并訪問(wèn)存儲(chǔ)器控制器獲取請(qǐng)求數(shù)據(jù)。A6)多路選擇器9選擇從虛擬活躍頁(yè)數(shù)據(jù)陣列4或者數(shù)據(jù)返回隊(duì)列7獲得讀請(qǐng)求數(shù)據(jù)返回給處理器的片上訪存部件完成讀請(qǐng)求,預(yù)取讀請(qǐng)求返回的數(shù)據(jù)不需要返回給處理器的片上訪存部件。A7)虛擬活躍頁(yè)標(biāo)識(shí)陣列3首先判斷是否命中虛擬活躍頁(yè)緩沖器中的虛擬活躍頁(yè),如果命中虛擬活躍頁(yè)緩沖器中的虛擬活躍頁(yè)則作廢虛擬活躍頁(yè)緩沖器中的虛擬活躍頁(yè);然后通過(guò)命令隊(duì)列6發(fā)送寫(xiě)請(qǐng)求到存儲(chǔ)器控制器,進(jìn)行訪問(wèn)存儲(chǔ)器控制器完成寫(xiě)請(qǐng)求。以上所述僅是本發(fā)明的優(yōu)選實(shí)施方式,本發(fā)明的保護(hù)范圍并不僅局限于上述實(shí)施例,凡屬于本發(fā)明思路下的技術(shù)方案均屬于本發(fā)明的保護(hù)范圍。應(yīng)當(dāng)指出,對(duì)于本技術(shù)領(lǐng)域的普通技術(shù)人員來(lái)說(shuō),在不脫離本發(fā)明原理前提下的若干改進(jìn)和潤(rùn)飾,這些改進(jìn)和潤(rùn)飾也 應(yīng)視為本發(fā)明的保護(hù)范圍。
權(quán)利要求
1.一種面向多核多線程微處理器的虛擬活躍頁(yè)緩沖方法,其特征在于其實(shí)施步驟如下 I)在處理器的片上訪存部件和存儲(chǔ)器控制器之間構(gòu)建虛擬活躍頁(yè)緩沖器,獲取來(lái)自處理器的片上訪存部件的訪存請(qǐng)求并判斷訪存請(qǐng)求的類型,如果訪存請(qǐng)求為讀請(qǐng)求,則跳轉(zhuǎn)執(zhí)行步驟2);如果訪存請(qǐng)求為預(yù)取讀請(qǐng)求,則跳轉(zhuǎn)執(zhí)行步驟4);如果訪存請(qǐng)求為寫(xiě)請(qǐng)求,則跳轉(zhuǎn)執(zhí)行步驟7); 2)根據(jù)訪存請(qǐng)求的請(qǐng)求地址和歷史訪存請(qǐng)求的請(qǐng)求地址比較判斷訪存請(qǐng)求的訪存模式是否符合預(yù)設(shè)的規(guī)則訪問(wèn)特性,當(dāng)訪存模式符合預(yù)設(shè)的規(guī)則訪問(wèn)特性時(shí)判定為頁(yè)預(yù)測(cè)命中,否則判定為頁(yè)預(yù)測(cè)未命中; 3)判斷訪存請(qǐng)求的所需頁(yè)是否在虛擬活躍頁(yè)緩沖器中,如果訪存請(qǐng)求對(duì)應(yīng)的頁(yè)在虛擬活躍頁(yè)緩沖器中則從虛擬活躍頁(yè)緩沖器獲取數(shù)據(jù)并跳轉(zhuǎn)執(zhí)行步驟6);否則,當(dāng)頁(yè)預(yù)測(cè)命中時(shí)跳轉(zhuǎn)執(zhí)行步驟4),當(dāng)頁(yè)預(yù)測(cè)未命中時(shí)跳轉(zhuǎn)執(zhí)行步驟5); 4)將訪存請(qǐng)求轉(zhuǎn)換為塊讀請(qǐng)求并訪問(wèn)存儲(chǔ)器控制器獲取請(qǐng)求的頁(yè)數(shù)據(jù),將返回的頁(yè)數(shù)據(jù)作為虛擬活躍頁(yè)填充虛擬活躍頁(yè)緩沖器,然后跳轉(zhuǎn)執(zhí)行步驟6); 5)發(fā)送訪存請(qǐng)求到存儲(chǔ)器控制器并訪問(wèn)存儲(chǔ)器控制器獲取請(qǐng)求數(shù)據(jù); 6)將讀請(qǐng)求數(shù)據(jù)返回給處理器的片上訪存部件完成讀請(qǐng)求,預(yù)取讀請(qǐng)求返回的數(shù)據(jù)不需要返回給處理器的片上訪存部件; 7)首先判斷是否命中虛擬活躍頁(yè)緩沖器中的虛擬活躍頁(yè),如果命中虛擬活躍頁(yè)緩沖器中的虛擬活躍頁(yè)則作廢虛擬活躍頁(yè)緩沖器中的所述虛擬活躍頁(yè);然后發(fā)送寫(xiě)請(qǐng)求到存儲(chǔ)器控制器,進(jìn)行訪問(wèn)存儲(chǔ)器控制器完成寫(xiě)請(qǐng)求。
2.根據(jù)權(quán)利要求I所述的面向多核多線程微處理器的虛擬活躍頁(yè)緩沖方法,其特征在于所述步驟2)中根據(jù)訪存請(qǐng)求的請(qǐng)求地址和歷史訪存請(qǐng)求的請(qǐng)求地址比較判斷訪存請(qǐng)求的訪存模式是否符合預(yù)設(shè)的規(guī)則訪問(wèn)特性具體是指當(dāng)訪存請(qǐng)求的請(qǐng)求地址中〈rank, bank, row〉索引的頁(yè)被連續(xù)訪問(wèn)兩次時(shí),判定訪存請(qǐng)求的訪存模式符合規(guī)則訪問(wèn)特性,否則判定訪存請(qǐng)求的訪存模式不符合規(guī)則訪問(wèn)特性;其中rank為所述請(qǐng)求地址中的排地址,bank為所述請(qǐng)求地址中的體地址,row為所述請(qǐng)求地址中的行地址。
3.根據(jù)權(quán)利要求2所述的面向多核多線程微處理器的虛擬活躍頁(yè)緩沖方法,其特征在于所述步驟4)中將返回的頁(yè)數(shù)據(jù)填充虛擬活躍頁(yè)緩沖器作為虛擬活躍頁(yè)時(shí)具體是指通過(guò)先入先出的存儲(chǔ)方式填充虛擬活躍頁(yè)緩沖器,返回的頁(yè)數(shù)據(jù)在填充虛擬活躍頁(yè)數(shù)據(jù)陣列(4)的同時(shí),旁路輸出到多路選擇器(9);所述步驟6)中當(dāng)訪存請(qǐng)求對(duì)應(yīng)的頁(yè)在虛擬活躍頁(yè)緩沖器時(shí)讀請(qǐng)求數(shù)據(jù)來(lái)自虛擬活躍頁(yè)數(shù)據(jù)陣列(4),否則來(lái)自數(shù)據(jù)返回隊(duì)列(7)填充虛擬活躍頁(yè)緩沖器時(shí)的填充數(shù)據(jù)。
4.一種面向多核多線程微處理器的虛擬活躍頁(yè)緩沖裝置,其特征在于包括頁(yè)預(yù)測(cè)器(I)、仲裁器(2)、虛擬活躍頁(yè)標(biāo)識(shí)陣列(3)、虛擬活躍頁(yè)數(shù)據(jù)陣列(4)、讀寫(xiě)隊(duì)列(5)、命令隊(duì)列(6)、數(shù)據(jù)返回隊(duì)列(7)、未決表(8)和多路選擇器(9),所述頁(yè)預(yù)測(cè)器(I)的輸入端、多路選擇器(9)的輸出端分別與處理器的片上訪存部件相連,所述命令隊(duì)列(6)的輸出端、數(shù)據(jù)返回隊(duì)列(7)的輸入端、未決表(8)的輸入端分別與存儲(chǔ)器控制器相連; 所述頁(yè)預(yù)測(cè)器(I)用于接收來(lái)自處理器的片上訪存部件的訪存請(qǐng)求、判斷訪存請(qǐng)求的類型以及訪存請(qǐng)求是否為頁(yè)預(yù)測(cè)命中的頁(yè)預(yù)測(cè)結(jié)果;所述仲裁器(2)用于仲裁來(lái)自讀寫(xiě)隊(duì)列(5)的讀寫(xiě)請(qǐng)求和來(lái)自數(shù)據(jù)返回隊(duì)列(7)的填充請(qǐng)求并向虛擬活躍頁(yè)標(biāo)識(shí)陣列(3)輸出仲裁結(jié)果; 所述虛擬活躍頁(yè)標(biāo)識(shí)陣列(3)用于保存虛擬活躍頁(yè)的頁(yè)地址和狀態(tài)信息,存儲(chǔ)器的每個(gè)體對(duì)應(yīng)一個(gè)獨(dú)立的標(biāo)識(shí)陣列,不同體的標(biāo)識(shí)陣列可以并行訪問(wèn);虛擬活躍頁(yè)標(biāo)識(shí)陣列(3)接收來(lái)自片上訪存請(qǐng)求的請(qǐng)求標(biāo)識(shí)、頁(yè)預(yù)測(cè)器(I)的頁(yè)預(yù)測(cè)結(jié)果、來(lái)自讀寫(xiě)隊(duì)列(5)的讀寫(xiě)請(qǐng)求和來(lái)自仲裁器(2)的仲裁結(jié)果; 所述虛擬活躍頁(yè)數(shù)據(jù)陣列(4)用于保存虛擬活躍頁(yè)的頁(yè)數(shù)據(jù),虛擬活躍頁(yè)數(shù)據(jù)陣列(4)根據(jù)讀寫(xiě)隊(duì)列(5)的讀請(qǐng)求讀數(shù)據(jù)隊(duì)列、根據(jù)數(shù)據(jù)返回隊(duì)列(7)的填充請(qǐng)求寫(xiě)數(shù)據(jù)隊(duì)列; 所述讀寫(xiě)隊(duì)列(5)用于保存讀寫(xiě)VOP緩沖的標(biāo)識(shí)陣列和數(shù)據(jù)陣列的請(qǐng)求,當(dāng)訪存請(qǐng)求為讀請(qǐng)求且訪存請(qǐng)求標(biāo)識(shí)與虛擬活躍頁(yè)標(biāo)識(shí)陣列(3)中的標(biāo)識(shí)比較結(jié)果為匹配時(shí),所述讀寫(xiě)隊(duì)列(5)緩存用于從虛擬活躍頁(yè)數(shù)據(jù)陣列(4)中讀出所需數(shù)據(jù)的訪存請(qǐng)求;當(dāng)訪存請(qǐng)求為寫(xiě)請(qǐng)求且訪存請(qǐng)求標(biāo)識(shí)與虛擬活躍頁(yè)標(biāo)識(shí)陣列(3)中的標(biāo)識(shí)比較結(jié)果為匹配時(shí),所述讀寫(xiě)隊(duì)列(5)緩存用于作廢命中的虛擬頁(yè)的訪存請(qǐng)求;當(dāng)訪存請(qǐng)求標(biāo)識(shí)與虛擬活躍頁(yè)標(biāo)識(shí)陣列(3)中的標(biāo)識(shí)比較結(jié)果為不匹配時(shí),讀寫(xiě)隊(duì)列(5)不緩存訪存請(qǐng)求; 所述命令隊(duì)列(6)用于保存需要發(fā)送到存儲(chǔ)器控制器的包括普通的讀、寫(xiě)請(qǐng)求或者塊讀請(qǐng)求的訪存請(qǐng)求; 所述數(shù)據(jù)返回隊(duì)列(7)用于保存存儲(chǔ)器控制器從外部存儲(chǔ)器返回的讀響應(yīng)數(shù)據(jù)、輸出填充請(qǐng)求和數(shù)據(jù)到數(shù)據(jù)陣列,輸出填充請(qǐng)求到仲裁器(2)、輸出填充數(shù)據(jù)到多路選擇器(9); 所述未決表(8)用于保存所有等待存儲(chǔ)器控制器返回的塊讀請(qǐng)求的狀態(tài)信息,所述狀態(tài)信息按照請(qǐng)求號(hào)索引存儲(chǔ)于未決表(8)中,若片上訪存讀請(qǐng)求命中虛擬活躍頁(yè)數(shù)據(jù)陣列(4),但是請(qǐng)求所需數(shù)據(jù)位于記錄在未決表(8)中的一個(gè)未返回的塊讀請(qǐng)求所讀取的物理頁(yè)中,則可以將該請(qǐng)求追加到在未決表(8)中命中的塊讀請(qǐng)求項(xiàng)中,等待塊讀請(qǐng)求所讀取的物理頁(yè)數(shù)據(jù)返回時(shí)一并返回給片上訪存部件; 所述多路選擇器(9)用于根據(jù)仲裁器(2)的仲裁結(jié)果選擇從虛擬活躍頁(yè)數(shù)據(jù)陣列(4)或者從數(shù)據(jù)返回隊(duì)列(7)獲得返回?cái)?shù)據(jù)并輸出給處理器的片上訪存部件。
5.根據(jù)權(quán)利要求4所述的面向多核多線程微處理器的虛擬活躍頁(yè)緩沖裝置,其特征在于所述仲裁器(2)為輪轉(zhuǎn)策略仲裁器。
6.根據(jù)權(quán)利要求5所述的面向多核多線程微處理器的虛擬活躍頁(yè)緩沖裝置,其特征在于所述讀寫(xiě)隊(duì)列(5)、命令隊(duì)列(6)和數(shù)據(jù)返回隊(duì)列(7)均為先入先出結(jié)構(gòu)。
全文摘要
本發(fā)明公開(kāi)了一種面向多核多線程微處理器的虛擬活躍頁(yè)緩沖方法及裝置,方法步驟為構(gòu)建虛擬活躍頁(yè)緩沖器,根據(jù)處理器的片上訪存部件的訪存請(qǐng)求來(lái)管理虛擬活躍頁(yè)緩沖器中的虛擬活躍頁(yè)的構(gòu)建、存儲(chǔ)以及刪除,訪存請(qǐng)求為讀請(qǐng)求時(shí)且在虛擬活躍頁(yè)緩沖器中發(fā)生命中時(shí)直接從虛擬活躍頁(yè)緩沖器中讀取虛擬活躍頁(yè)來(lái)提高訪存性能;裝置包括頁(yè)預(yù)測(cè)器(1)、仲裁器(2)、虛擬活躍頁(yè)標(biāo)識(shí)陣列(3)、虛擬活躍頁(yè)數(shù)據(jù)陣列(4)、讀寫(xiě)隊(duì)列(5)、命令隊(duì)列(6)、數(shù)據(jù)返回隊(duì)列(7)、未決表(8)和多路選擇器(9);本發(fā)明能夠增加存儲(chǔ)器整體的活躍頁(yè)數(shù)量,減少活躍頁(yè)關(guān)閉后再激活的代價(jià)、提高訪存帶寬,具有訪存性能高、可擴(kuò)展性強(qiáng)的優(yōu)點(diǎn)。
文檔編號(hào)G06F9/38GK102866957SQ20121026943
公開(kāi)日2013年1月9日 申請(qǐng)日期2012年7月31日 優(yōu)先權(quán)日2012年7月31日
發(fā)明者竇強(qiáng), 周宏偉, 鄧讓鈺, 晏小波, 李永進(jìn), 衣曉飛, 張英, 曾坤, 謝倫國(guó), 唐遇星 申請(qǐng)人:中國(guó)人民解放軍國(guó)防科學(xué)技術(shù)大學(xué)