一種建立處理器Cache檢查點的方法、裝置及系統的制作方法
【技術領域】
[0001]本發明涉及計算機技術領域,具體涉及一種建立處理器Cache檢查點的方法、裝置及系統。
【背景技術】
[0002]在計算機系統中,處理器高速緩沖存儲器(CPU Cache)是用于減少處理器訪問內存所需平均時間的部件,其容量遠小于內存,但速度卻可以接近處理器的頻率。同時,某個進程周期性地保存執行程序的狀態至穩定存儲器,系統在失效后能夠根據這些信息得以恢復,每一個被保存的程序狀態稱為檢查點,目前檢查點技術廣泛用于系統的容錯設計中。則Cache檢查點就是針對Cache建立的檢查點,它保存了某一時刻的整個Cache狀態,在故障遷移和狀態恢復中,如果可以使用Cache檢查點恢復Cache狀態,那么處理器就不用初始化Cache,節約了大量的Cache重建時間,加快了系統故障恢復和狀態遷移的速度。
[0003]在現有技術中,建立Cache檢查點的方法,是在處理器工作的過程中,利用Cache的空閑時間導出建立過程開始時刻的Cache狀態到壓縮器中,從而建立Cache檢查點。在Cache檢查點建立過程中,如果沒有對Cache的更新操作,所有的Cache內容會按照Cache地址順序依次導出到壓縮器中。但是如果有對Cache的更新操作,并且更新操作對應的Cache行中的原有內容尚未導出,就需要暫停處理器操作,將此Cache行原有的內容先導出到壓縮器,然后再啟動處理器更新該Cache行,即在需要更新未導出區域的數據時,需要首先保存原有數據,也就需要延遲處理器更新數據的操作,暫停流水線或者暫停訪存操作。因此,現有技術建立處理器Cache檢查點的方法存在影響處理器運行的情況,影響系統的正常運行。
【發明內容】
[0004]有鑒于此,本發明實施例的主要目的是提供一種建立處理器Cache檢查點的方法、裝置及系統,以解決現有技術中建立處理器Cache檢查點的方法存在影響處理器運行的情況,影響系統的正常運行的問題。
[0005]為解決上述問題,本發明提供的技術方案如下:
[0006]第一方面,本發明提供了一種建立處理器Cache檢查點的方法,所述方法包括:
[0007]在將Cache中的內容逐行導出的過程中,當接收到處理器寫Cache信號時,檢測確定處理器寫Cache操作對應的Cache行在Cache的已導出部分,則執行處理器寫Cache操作,并同時將所述寫Cache操作寫入Cache行中的內容進行導出;
[0008]當接收到處理器寫Cache信號時,檢測確定處理器寫Cache操作對應的Cache行在Cache的未導出部分,則執行處理器寫Cache操作,并暫停將Cache中的內容進行導出;
[0009]當接收到處理器讀Cache信號時,執行處理器讀Cache操作,并暫停將Cache中的內容進行導出。
[0010]在第一方面的第一種可能的實現方式中,所述方法還包括:
[0011]當接收到的處理器讀Cache信號時,檢測確定處理器讀Cache操作對應的Cache行是下一被導出的Cache行,則執行處理器讀Cache操作,并同時將所述讀Cache操作對應的Cache行中的內容進行導出。
[0012]結合第一方面或者第一方面的第一種可能的實現方式,在第一方面的第二種可能的實現方式中,所述方法還包括:
[0013]控制地址生成器由Cache行地址范圍的一端開始生成第一地址。
[0014]結合第一方面的第二種可能的實現方式,在第三種可能的實現方式中,所述將Cache中的內容逐行導出的過程具體為:將所述第一地址所對應的Cache行中的內容導出到壓縮器內存儲,每導出一 Cache行后則控制所述地址生成器將第一地址變化為下一Cache行地址。
[0015]結合第一方面的第三種可能的實現方式,在第四種可能的實現方式中,所述判斷所述寫操作對應的Cache行是否是已導出的Cache行,包括:
[0016]所述檢測確定處理器寫Cache操作對應的Cache行在Cache的已導出部分,包括:
[0017]接收比較器的比較結果,所述比較器用于比較處理器寫Cache操作對應的Cache行地址與當前第一地址的大小;
[0018]當所述地址生成器由Cache行地址范圍的低地址端開始生成第一地址時,所述比較結果為處理器寫Cache操作對應的Cache行地址小于當前第一地址,確定處理器寫Cache操作對應的Cache行在Cache的已導出部分;
[0019]當所述地址生成器由Cache行地址范圍的高地址端開始生成第一地址時,所述比較結果為處理器寫Cache操作對應的Cache行地址大于當前第一地址,確定處理器寫Cache操作對應的Cache行在Cache的已導出部分。
[0020]結合第一方面的第三種可能的實現方式,在第五種可能的實現方式中,所述檢測確定處理器寫Cache操作對應的Cache行在Cache的未導出部分,包括:
[0021]接收比較器的比較結果,所述比較器用于比較處理器寫Cache操作對應的Cache行地址與當前第一地址的大小;
[0022]當所述地址生成器由Cache行地址范圍的低地址端開始生成第一地址時,所述比較結果為處理器寫Cache操作對應的Cache行地址大于或等于當前第一地址,確定處理器寫Cache操作對應的Cache行在Cache的未導出部分;
[0023]當所述地址生成器由Cache行地址范圍的高地址端開始生成第一地址時,所述比較結果為處理器寫Cache操作對應的Cache行地址小于或等于當前第一地址,確定處理器寫Cache操作對應的Cache行在Cache的未導出部分。
[0024]結合第一方面的第三種可能的實現方式,在第六種可能的實現方式中,所述檢測確定處理器讀Cache操作對應的Cache行是下一被導出的Cache行,包括:
[0025]接收比較器的比較結果,所述比較器還用于比較所述處理器讀Cache操作對應的Cache行地址與當前第一地址的大小;
[0026]所述比較結果為處理器讀Cache操作對應的Cache行地址等于當前第一地址,確定處理器讀Cache操作對應的Cache行是下一被導出的Cache行。
[0027]第二方面,本發明提供了一種建立處理器Cache檢查點的裝置,所述裝置包括:
[0028]接收單元,用于在將Cache中的內容逐行導出的過程中,接收處理器寫Cache信號或者接收處理器讀Cache信號;
[0029]第一確定單元,用于在所述接收單元接收到處理器寫Cache信號時,檢測確定處理器寫Cache操作對應的Cache行在Cache的已導出部分;
[0030]第一處理單元,用于在所述第一確定單元檢測確定處理器寫Cache操作對應的Cache行在Cache的已導出部分時,執行處理器寫Cache操作;
[0031]第一導出單元,用于在所述第一確定單元檢測確定處理器寫Cache操作對應的Cache行在Cache的已導出部分時,將所述寫Cache操作寫入Cache行中的內容進行導出;
[0032]第二確定單元,用于在所述接收單元接收到處理器寫Cache信號時,檢測確定處理器寫Cache操作對應的Cache行在Cache的未導出部分;
[0033]第二處理單元,用于在所述第二確定單元檢測確定處理器寫Cache操作對應的Cache行在Cache的未導出部分時,執行處理器寫Cache操作,并暫停將Cache中的內容進行導出;
[0034]第三處理單元,用于在所述接收單元接收到處理器讀Cache信號時,執行處理器讀Cache操作,并暫停將Cache中的內容進行導出。
[0035]在第二方面的第一種可能的實現方式中,所述裝置還包括:
[0036]第三確定單元,用于在所述接收單元接收到處理器讀Cache信號時,檢測確定處理器讀Cache操作對應的Cache行是下一被導出的Cache行;
[0037]第四處理單元,用于在所述第三確定單元檢測確定處理器讀Cache操作對應的Cache行是下一被導出的Cache行時,執行處理器讀Cache操作;
[0038]第二導出單元,用于在所述第三確定單元檢測確定處理器讀Cache操作對應的Cache行是下一被導出的Cache行時,將所述讀Cache操作對應的Cache行中的內容進行導出。
[0039]結合第二方面或者第二方面的第一種可能的實現方式,在第二種可能的實現方式中,所述裝置還包括:
[0040]控制單元,用于控制地址生成器由Cache行地址范圍的一端開始生成第一地址。
[0041]結合第二方面的第二種可能的實現方式,在第三種可能的實現方式中,所述將Cache中的內容逐行導出的過程具體為:將所述控制單元控制地址生成器生成的第一地址所對應的Cache行中的內容導出到壓縮器內存儲,每導出一 Cache行后則所述控制單元控制所述地址生成器將第一地址變化為下一 Cache行地址。
[0042]結合第二方面的第三種可能的實現方式,在第四種可能的實現方式中,所述第一確定單元包括:
[0043]接收子單元,用于接收比較器的比較結果,所述比較器用于比較處理器寫Cache操作對應的Cache行地址與當前第一地址的大小;
[0044]第一確定子單元,用于當所述地址生成器由Cache行地址范圍的低地址端開始生成第一地址時,所述接收子單元接收到的比較結果為處理器寫Cache操作對應的Cache行地址小于當前第一地址,確定處理器寫Cache操作對應的Cache行在Cache的已導出部分;
[0045]第二確定子單元,用于當所述地址生成器由Cache行地址范圍的高地址端開始生成第一地址時,所述接收子單元接收到的比較結果為處理器寫Cache操作對應的Cache行地址大于當前第一地址,確定處理器寫Cache操作對應的Cache行在Cache的已導出部分。
[0046]結合第二方面的第三種可能的實現方式,在第五種可能的實現方式中,所述第二確定單元包括:
[0047]接收子單元,用于接收比較器的比較結果,所述比較器用于比較處理器寫Cache操作對應的Cache行地址與當前第一地址的大小;
[0048]第三確定子單元,用于當所述地址生成器由Cache行地址范圍的低地址端開始生成第一地址時,所述接收子單元接收到的比較結果為處理器寫Cache操作對應的Cache行地址大于或等于當前第一地址,確定處理器寫Cache操作對應的Cache行在Cache的未導出部分;
[0049]第四確定子單元,用于當所述地址生成器由Cache行地址范圍的高地址端開始生成第一地址時,所述接收子單元接收到的比較結果為處理器寫Cache操作對應的Cache行地址小于或等于當前第一地址,確定處理器寫Cache操作對應的Cache行在Cache的未導出部分。
[0050]結合第二方面的第三種可能的實現方式,在第六種可能的實現方式中,所述第三確定單元包括:
[0051]接收子單元,用于接收比較器的比較結果,所述比較器還用于比較所述處理器讀Cache操作對應的Cache行地址與當前第一地址的大小;
[0052]第五確定子單元,用于所述接收子單元接收的比較結果為處理器讀Cache操作對應的Cache行地址等于當前第一地址,確定處理器讀Cache操作對應的Cache行是下一被導出的Cache行。
[0053]第三方面,本發明提供了一種建立處理器Cache檢查點的系統,所述系統包括:
[0054]導出控制器,是本發明第二方面所述的建立處理器Cache檢查點的裝置;
[0055]地址生成器,用于根據所述導出控制器的控制生成第一地址;
[0056]比較器,用于比較處理器寫Cache操作對應的Cache行地址與當前第一地址的大小,比較所述處理器讀Cache操作對應的Cache行地址與當前第一地址的大小,并將比較結果發送給所述導出控制器;
[0057]壓縮器,用于存儲Cache行的內容。
[0058]由此可見,本發明實施例具有如下有益效果:
[0059]本發明實施例在將Cache中的內容逐行導出的過程中,如果檢測確定處理器需要寫Cache且寫Cache操作對應的Cache行在Cache的已導出部分,則執行處理器寫Cache操作,并同時將所述寫Cache操作寫入Cache行中的內容進行導出;如果檢測確定處理器需要寫Cache且寫Cache操作對應的Ca