国产精品1024永久观看,大尺度欧美暖暖视频在线观看,亚洲宅男精品一区在线观看,欧美日韩一区二区三区视频,2021中文字幕在线观看

  • <option id="fbvk0"></option>
    1. <rt id="fbvk0"><tr id="fbvk0"></tr></rt>
      <center id="fbvk0"><optgroup id="fbvk0"></optgroup></center>
      <center id="fbvk0"></center>

      <li id="fbvk0"><abbr id="fbvk0"><dl id="fbvk0"></dl></abbr></li>

      一種建立處理器Cache檢查點(diǎn)的方法、裝置及系統(tǒng)的制作方法_4

      文檔序號(hào):8380836閱讀:來(lái)源:國(guó)知局
      于在第一確定單元檢測(cè)確定處理器寫(xiě)Cache操作對(duì)應(yīng)的Cache行在Cache的已導(dǎo)出部分時(shí),執(zhí)行處理器寫(xiě)Cache操作。
      [0161]第一導(dǎo)出單元707,用于在第一確定單元檢測(cè)確定處理器寫(xiě)Cache操作對(duì)應(yīng)的Cache行在Cache的已導(dǎo)出部分時(shí),將寫(xiě)Cache操作寫(xiě)入Cache行中的內(nèi)容進(jìn)行導(dǎo)出,并進(jìn)入第一判斷單元;
      [0162]第二確定單元708,用于在接收單元接收到處理器寫(xiě)Cache信號(hào)使第二判斷單元的判斷結(jié)果為存在對(duì)Cache的寫(xiě)操作時(shí),檢測(cè)確定處理器寫(xiě)Cache操作對(duì)應(yīng)的Cache行在Cache的未導(dǎo)出部分;
      [0163]第二處理單元709,用于在第二確定單元檢測(cè)確定處理器寫(xiě)Cache操作對(duì)應(yīng)的Cache行在Cache的未導(dǎo)出部分時(shí),執(zhí)行處理器寫(xiě)Cache操作,并暫停將Cache中的內(nèi)容進(jìn)行導(dǎo)出,并進(jìn)入第一判斷單元;
      [0164]第三確定單元710,用于在接收單元接收到處理器讀Cache信號(hào)使第二判斷單元的判斷結(jié)果為存在對(duì)Cache的讀操作時(shí),檢測(cè)確定處理器讀Cache操作對(duì)應(yīng)的Cache行是下一被導(dǎo)出的Cache行;
      [0165]第四處理單元711,用于在第三確定單元檢測(cè)確定處理器讀Cache操作對(duì)應(yīng)的Cache行是下一被導(dǎo)出的Cache行時(shí),執(zhí)行處理器讀Cache操作;
      [0166]第二導(dǎo)出單元712,用于在第三確定單元檢測(cè)確定處理器讀Cache操作對(duì)應(yīng)的Cache行是下一被導(dǎo)出的Cache行時(shí),將讀Cache操作對(duì)應(yīng)的Cache行中的內(nèi)容進(jìn)行導(dǎo)出,并進(jìn)入第一判斷單元。
      [0167]第四確定單元713,用于在接收單元接收到處理器讀Cache信號(hào)使第二判斷單元的判斷結(jié)果為存在對(duì)Cache的讀操作時(shí),檢測(cè)確定處理器讀Cache操作對(duì)應(yīng)的Cache行不是下一被導(dǎo)出的Cache行;
      [0168]第三處理單元714,用于第四確定單元檢測(cè)確定處理器讀Cache操作對(duì)應(yīng)的Cache行不是下一被導(dǎo)出的Cache行,執(zhí)行處理器讀Cache操作,暫停將Cache中的內(nèi)容進(jìn)行導(dǎo)出。
      [0169]在本發(fā)明的一些實(shí)施例中,本發(fā)明實(shí)施例建立處理器Cache檢查點(diǎn)的裝置還可以包括:
      [0170]控制單元,用于控制地址生成器由Cache行地址范圍的一端開(kāi)始生成第一地址。
      [0171]在本發(fā)明的一些實(shí)施例中,將Cache中的內(nèi)容逐行導(dǎo)出的過(guò)程具體為:將控制單元控制地址生成器生成的第一地址所對(duì)應(yīng)的Cache行中的內(nèi)容導(dǎo)出到壓縮器內(nèi)存儲(chǔ),每導(dǎo)出一 Cache行后則控制單元控制地址生成器將第一地址變化為下一 Cache行地址。
      [0172]在本發(fā)明的一些實(shí)施例中,第一確定單元可以包括:
      [0173]接收子單元,用于接收比較器的比較結(jié)果,比較器用于比較處理器寫(xiě)Cache操作對(duì)應(yīng)的Cache行地址與當(dāng)前第一地址的大??;
      [0174]第一確定子單元,用于當(dāng)?shù)刂飞善饔蒀ache行地址范圍的低地址端開(kāi)始生成第一地址時(shí),接收子單元接收到的比較結(jié)果為處理器寫(xiě)Cache操作對(duì)應(yīng)的Cache行地址小于當(dāng)前第一地址,確定處理器寫(xiě)Cache操作對(duì)應(yīng)的Cache行在Cache的已導(dǎo)出部分;
      [0175]第二確定子單元,用于當(dāng)?shù)刂飞善饔蒀ache行地址范圍的高地址端開(kāi)始生成第一地址時(shí),接收子單元接收到的比較結(jié)果為處理器寫(xiě)Cache操作對(duì)應(yīng)的Cache行地址大于當(dāng)前第一地址,確定處理器寫(xiě)Cache操作對(duì)應(yīng)的Cache行在Cache的已導(dǎo)出部分。
      [0176]在本發(fā)明的一些實(shí)施例中,第二確定單元可以包括:
      [0177]接收子單元,用于接收比較器的比較結(jié)果,比較器用于比較處理器寫(xiě)Cache操作對(duì)應(yīng)的Cache行地址與當(dāng)前第一地址的大小;
      [0178]第三確定子單元,用于當(dāng)?shù)刂飞善饔蒀ache行地址范圍的低地址端開(kāi)始生成第一地址時(shí),接收子單元接收到的比較結(jié)果為處理器寫(xiě)Cache操作對(duì)應(yīng)的Cache行地址大于或等于當(dāng)前第一地址,確定處理器寫(xiě)Cache操作對(duì)應(yīng)的Cache行在Cache的未導(dǎo)出部分;
      [0179]第四確定子單元,用于當(dāng)?shù)刂飞善饔蒀ache行地址范圍的高地址端開(kāi)始生成第一地址時(shí),接收子單元接收到的比較結(jié)果為處理器寫(xiě)Cache操作對(duì)應(yīng)的Cache行地址小于或等于當(dāng)前第一地址,確定處理器寫(xiě)Cache操作對(duì)應(yīng)的Cache行在Cache的未導(dǎo)出部分。
      [0180]在本發(fā)明的一些實(shí)施例中,第三確定單元可以包括:
      [0181]接收子單元,用于接收比較器的比較結(jié)果,比較器還用于比較處理器讀Cache操作對(duì)應(yīng)的Cache行地址與當(dāng)前第一地址的大??;
      [0182]第五確定子單元,用于接收子單元接收的比較結(jié)果為處理器讀Cache操作對(duì)應(yīng)的Cache行地址等于當(dāng)前第一地址,確定處理器讀Cache操作對(duì)應(yīng)的Cache行是下一被導(dǎo)出的Cache 行。
      [0183]這樣,本發(fā)明實(shí)施例從檢查點(diǎn)建立時(shí)刻起,在不存在對(duì)Cache的讀寫(xiě)操作即Cache空閑狀態(tài)時(shí),逐行導(dǎo)出Cache中的內(nèi)容到壓縮器內(nèi)存儲(chǔ),在Cache不空閑時(shí),暫停Cache導(dǎo)出過(guò)程,但當(dāng)對(duì)Cache進(jìn)行寫(xiě)操作即發(fā)生Cache更新操作時(shí),且更新操作發(fā)生在Cache的已導(dǎo)出部分,更新的數(shù)據(jù)需要同時(shí)存儲(chǔ)到壓縮器內(nèi),這樣導(dǎo)出到壓縮器中的數(shù)據(jù)是每一 Cache行內(nèi)的最新數(shù)據(jù),建立的Cache檢查點(diǎn)是建立過(guò)程結(jié)束時(shí)刻的Cache狀態(tài)。在整個(gè)Cache檢查點(diǎn)建立過(guò)程中,在處理器一直處于正常工作的狀態(tài)時(shí),沒(méi)有因?yàn)榻ache檢查點(diǎn)中斷或推遲處理器的任何操作,建立Cache檢查點(diǎn)的過(guò)程不存在影響處理器運(yùn)行的情況,保證了系統(tǒng)的正常運(yùn)行。
      [0184]相應(yīng)的,參見(jiàn)圖8所不,本發(fā)明實(shí)施例建立處理器Cache檢查點(diǎn)的系統(tǒng)實(shí)施例一,可以包括:
      [0185]導(dǎo)出控制器801,可以是上述的建立處理器Cache檢查點(diǎn)的裝置實(shí)施例。
      [0186]地址生成器802,用于根據(jù)導(dǎo)出控制器的控制生成第一地址;
      [0187]比較器803,用于比較處理器寫(xiě)Cache操作對(duì)應(yīng)的Cache行地址與當(dāng)前第一地址的大小,比較處理器讀Cache操作對(duì)應(yīng)的Cache行地址與當(dāng)前第一地址的大小,并將比較結(jié)果發(fā)送給導(dǎo)出控制器;
      [0188]壓縮器804,用于存儲(chǔ)Cache行的內(nèi)容。
      [0189]本系統(tǒng)實(shí)施例的工作原理是:
      [0190]導(dǎo)出控制器在接收外部輸入的使能信號(hào)時(shí),控制地址生成器由Cache行地址范圍的一端開(kāi)始生成第一地址,并判斷是否存在對(duì)Cache的讀寫(xiě)操作;
      [0191]如果不存在對(duì)Cache的讀寫(xiě)操作時(shí),將第一地址所對(duì)應(yīng)的Cache行中的內(nèi)容導(dǎo)出到壓縮器內(nèi)存儲(chǔ),并控制地址生成器將第一地址變化為下一 Cache行地址,判斷全部Cache行是否已經(jīng)被導(dǎo)出;如果全部Cache行已經(jīng)被導(dǎo)出,則建立處理器Cache檢查點(diǎn)結(jié)束,如果Cache行沒(méi)有被全部導(dǎo)出,繼續(xù)判斷是否存在對(duì)Cache的讀寫(xiě)操作;如果存在對(duì)Cache的讀寫(xiě)操作時(shí),判斷讀寫(xiě)操作的類型;
      [0192]如果對(duì)Cache的讀寫(xiě)操作為對(duì)Cache的寫(xiě)操作,接收比較器的比較結(jié)果,判斷比較結(jié)果是否為寫(xiě)操作對(duì)應(yīng)的Cache行是已導(dǎo)出的Cache行;如果對(duì)Cache的讀寫(xiě)操作為對(duì)Cache的讀操作,接收比較器的比較結(jié)果,判斷比較器的比較結(jié)果是否為讀操作對(duì)應(yīng)的Cache行地址等于當(dāng)前第一地址;
      [0193]如果比較器的比較結(jié)果為寫(xiě)操作對(duì)應(yīng)的Cache行是已導(dǎo)出的Cache行,將寫(xiě)操作寫(xiě)入該Cache行的內(nèi)容同時(shí)存儲(chǔ)到壓縮器內(nèi)存儲(chǔ),返回判斷全部Cache行是否已經(jīng)被導(dǎo)出;如果比較器的比較結(jié)果為寫(xiě)操作對(duì)應(yīng)的Cache行不是已導(dǎo)出的Cache行,暫停對(duì)Cache行的導(dǎo)出,返回判斷全部Cache行是否已經(jīng)被導(dǎo)出;
      [0194]如果比較器的比較結(jié)果為讀操作對(duì)應(yīng)的Cache行地址等于當(dāng)前第一地址,并控制地址生成器將第一地址變化為下一 Cache行地址,返回判斷全部Cache行是否已經(jīng)被導(dǎo)出;如果比較器的比較結(jié)果為讀操作對(duì)應(yīng)的Cache行地址不等于當(dāng)前第一地址,暫停對(duì)Cache行的導(dǎo)出,返回判斷全部Cache行是否已經(jīng)被導(dǎo)出。
      [0195]也就是說(shuō),在將Cache中的內(nèi)容逐行導(dǎo)出的過(guò)程中,當(dāng)接收到處理器寫(xiě)Cache信號(hào)時(shí),檢測(cè)確定處理器寫(xiě)Cache操作對(duì)應(yīng)的Cache行在Cache的已導(dǎo)出部分,則執(zhí)行處理器寫(xiě)Cache操作,并同時(shí)將寫(xiě)Cache操作寫(xiě)入Cache行中的內(nèi)容進(jìn)行導(dǎo)出。
      [0196]當(dāng)接收到處理器寫(xiě)Cache信號(hào)時(shí),檢測(cè)確定處理器寫(xiě)Cache操作對(duì)應(yīng)的Cache行在Cache的未導(dǎo)出部分,則執(zhí)行處理器寫(xiě)Cache操作,并暫停將Cache中的內(nèi)容進(jìn)行導(dǎo)出。
      [0197]當(dāng)接收到的處理器讀Cache信號(hào)時(shí),檢測(cè)確定處理器讀Cache操作對(duì)應(yīng)的Cache行是下一被導(dǎo)出的Cache行,則執(zhí)行處理器讀Cache操作,并同時(shí)將讀Cache操作對(duì)應(yīng)的Cache行中的內(nèi)容進(jìn)行導(dǎo)出。
      [0198]當(dāng)接收到處理器讀Cache信號(hào)時(shí),檢測(cè)確定處理器讀Cache操作對(duì)應(yīng)的Cache行不是下一被導(dǎo)出的Cache行,執(zhí)行處理器讀Cache操作,并暫停將Cache中的內(nèi)容進(jìn)行導(dǎo)出。
      [0199]這樣,可以實(shí)現(xiàn)將導(dǎo)出結(jié)束時(shí)刻的Cache狀態(tài)導(dǎo)出到壓縮器中存儲(chǔ)。
      [0200]參見(jiàn)圖9所示,是本發(fā)明實(shí)施例建立處理器Cache檢查點(diǎn)的系統(tǒng)實(shí)施例二,在實(shí)際應(yīng)用中,結(jié)合具體的Cache結(jié)構(gòu),本發(fā)明實(shí)施例增加的硬件模塊包括地址生成器、比較器、導(dǎo)出控制器、壓縮器以及若干個(gè)選擇器。
      [0201]在實(shí)際應(yīng)用中,當(dāng)Dump_enable使能信號(hào)有效,系統(tǒng)使能了 Cache檢查點(diǎn)建立,開(kāi)始建立Cache檢查點(diǎn),導(dǎo)出控制器控制地址生成器開(kāi)始生成第一地址(以從低地址端生成第一地址為例);
      [0202]導(dǎo)出控制器接收處理器訪存單元(LSQ)發(fā)出的Valid信號(hào),判斷是否存在對(duì)Cache的讀寫(xiě)操作;
      [0203]當(dāng)Valid信號(hào)無(wú)效時(shí),代表Cache空閑,導(dǎo)出控制器向壓縮器發(fā)送使能Dump信號(hào),通過(guò)Addr_sel信號(hào)選擇地址生成器生成的第一地址作為Cache讀寫(xiě)地址,將地址生成器生成的第一地址對(duì)應(yīng)的Cache行內(nèi)容導(dǎo)出到壓縮器,導(dǎo)出數(shù)據(jù)包括該Cache行內(nèi)的Tag、Valid、Data等全部數(shù)據(jù),然后控制地址生成器自增到下一 Cache地址。如果Cache仍空閑,重復(fù)上述過(guò)程;
      [0204]當(dāng)Valid信號(hào)有效時(shí),代表Cache不空閑,導(dǎo)出控制器無(wú)效Dump信號(hào),暫停導(dǎo)出過(guò)程。但當(dāng)檢測(cè)到以下兩種情況發(fā)生時(shí),導(dǎo)出控制器使能Dump信號(hào),導(dǎo)出相應(yīng)數(shù)據(jù):
      [0205]第一,接收LSQ發(fā)送的寫(xiě)信號(hào)Wr或者讀信號(hào)Rw,以判斷讀寫(xiě)操作的類型,當(dāng)為處理器更新已導(dǎo)出部分的Cache時(shí),即Wr信號(hào)有效,同時(shí)接收比較器Cpr_res信號(hào),當(dāng)?shù)谝坏刂沸∮贑ache的讀寫(xiě)地址Address時(shí),同時(shí)將更新的數(shù)據(jù)導(dǎo)出到壓縮器中;
      [0206]第二,當(dāng)為讀操作時(shí),接收比較器Cpr_res信號(hào),當(dāng)Cache的讀寫(xiě)地址Address等于第一地址時(shí),將第一地址對(duì)應(yīng)的Cache行內(nèi)容導(dǎo)出到壓縮器內(nèi)存儲(chǔ);
      [0207]具體的,導(dǎo)出控制器發(fā)出Dsel信號(hào),選擇壓縮器的數(shù)據(jù)來(lái)源,當(dāng)將更新的數(shù)據(jù)存儲(chǔ)到壓縮器中時(shí),利用Dsel信號(hào)控制選擇ND數(shù)據(jù)流;當(dāng)將Cache的數(shù)據(jù)導(dǎo)出到壓縮器中時(shí),利用Dsel信號(hào)控制選擇Cache的數(shù)據(jù)流;
      [0208]當(dāng)?shù)刂飞善鬟_(dá)到地址最大值時(shí),導(dǎo)出結(jié)束,Cache此時(shí)刻的狀態(tài)全部存儲(chǔ)在壓縮器中,一個(gè)Cache檢查點(diǎn)建立過(guò)程完成。
      [0209]其中,LSQ (load store queue,訪存隊(duì)列)其作用就是緩存處理器對(duì)于Cache的訪存操作,并將訪存操作發(fā)送到Cache,在本發(fā)明實(shí)施例中,LSQ的作用是向Cache發(fā)送讀寫(xiě)命令,以使能相應(yīng)的Wr或Rw信號(hào),在Wr寫(xiě)使能信號(hào)有效時(shí),送入寫(xiě)數(shù)據(jù),在Rw讀使能信號(hào)有效時(shí),讀出數(shù)據(jù)。
      [0210]另外,FSM (Finite State Machine,有限狀態(tài)機(jī)),其相當(dāng)于Cache的控制器模塊,用于生成各種Cache控制信號(hào),并與其它模塊(LSQ和內(nèi)存Mem)進(jìn)行交互。FulI信號(hào)用于標(biāo)示壓縮器存儲(chǔ)空間是否已滿,如果存儲(chǔ)空間已滿,則不能繼續(xù)存儲(chǔ)新數(shù)據(jù)。
      [0211]這樣,本發(fā)明實(shí)施例從檢查點(diǎn)建立時(shí)刻起,在處理器不存在對(duì)Cache的讀寫(xiě)操作即Cache空閑狀態(tài)時(shí),逐行導(dǎo)出Cache中的內(nèi)容到壓縮器內(nèi)存儲(chǔ),在Cache不空閑時(shí),暫停Cache導(dǎo)出過(guò)程,但當(dāng)對(duì)Cache進(jìn)行寫(xiě)操作即發(fā)生Cache更新操作時(shí),且更新操作發(fā)生在Cache的已導(dǎo)出部分,更新的數(shù)據(jù)需要同時(shí)存儲(chǔ)到壓縮器內(nèi),這樣導(dǎo)出到壓縮器中的數(shù)據(jù)是每
      當(dāng)前第4頁(yè)1 2 3 4 5 
      網(wǎng)友詢問(wèn)留言 已有0條留言
      • 還沒(méi)有人留言評(píng)論。精彩留言會(huì)獲得點(diǎn)贊!
      1