本發(fā)明涉及計算機技術(shù)領(lǐng)域,特別涉及一種系統(tǒng)時鐘監(jiān)控方法及裝置。
背景技術(shù):
系統(tǒng)時鐘是服務(wù)器系統(tǒng)中非常重要的組成部分,在服務(wù)器中多用來為cpu、集成南橋(platformcontrollerhub,pch)、高速串行計算機擴展總線標準(peripheralcomponentinterconnectexpress,pci-e)槽和基板管理控制器(baseboardmanagementcontroller,bmc)設(shè)備提供時鐘。
系統(tǒng)時鐘需要滿足一定的頻率要求,當系統(tǒng)時鐘頻率超出允許范圍時,服務(wù)器會因系統(tǒng)時鐘異常而發(fā)生計時不準甚至宕機。因此,有必要對系統(tǒng)時鐘進行監(jiān)控,以保證服務(wù)器能夠正常運行。
目前,一般的服務(wù)器均無法實現(xiàn)對系統(tǒng)時鐘進行監(jiān)控,只能夠通過人工計時的方式來驗證系統(tǒng)時鐘是否異常。
技術(shù)實現(xiàn)要素:
本發(fā)明實施例提供了一種系統(tǒng)時鐘監(jiān)控方法及裝置,能夠?qū)崿F(xiàn)對系統(tǒng)時鐘進行監(jiān)控。
第一方面,本發(fā)明實施例提供了一種系統(tǒng)時鐘監(jiān)控方法,包括:
根據(jù)預(yù)先設(shè)定的目標時鐘周期,對待監(jiān)控時鐘的時鐘周期進行調(diào)頻處理,獲得第一時鐘周期;
根據(jù)所述目標時鐘周期,對參考時鐘的時鐘周期進行調(diào)頻處理,獲得第二時鐘周期;
在每一個所述第一時鐘周期,向具有預(yù)設(shè)容量的存儲空間中存儲至少一個校驗數(shù)據(jù),其中,在所述存儲空間的容量不足時對存儲時間較長的數(shù)據(jù)進行覆蓋;
在每一個所述第二時鐘周期,從所述存儲空間中讀取較先存儲的至少一個所述校驗數(shù)據(jù),并將讀取到的所述至少一個所述校驗數(shù)據(jù)從所述存儲空間中刪除,其中,當所述存儲空間在不存在所述校驗數(shù)據(jù)時,讀取特定數(shù)據(jù)作為所述校驗數(shù)據(jù);
根據(jù)在連續(xù)兩個所述第二時鐘周期讀取到的至少兩個所述校驗數(shù)據(jù),判斷所述待監(jiān)控時鐘是否異常。
優(yōu)選地,所述根據(jù)在連續(xù)兩個所述第二時鐘周期讀取到的至少兩個所述校驗數(shù)據(jù)判斷所述待監(jiān)控時鐘是否異常,包括:
確定在連續(xù)兩個所述第一時鐘周期存儲到所述存儲空間中的至少兩個所述校驗數(shù)據(jù)之間的關(guān)聯(lián)關(guān)系;
判斷在連續(xù)兩個所述第二時鐘周期讀取到的至少兩個所述校驗數(shù)據(jù)是否符合所述關(guān)聯(lián)關(guān)系;
如果是,確定所述待監(jiān)控時鐘正常,否則確定所述待監(jiān)控時鐘異常。
優(yōu)選地,所述根據(jù)在連續(xù)兩個所述第二時鐘周期讀取到的至少兩個所述校驗數(shù)據(jù)判斷所述待監(jiān)控時鐘是否異常,包括:
確定在連續(xù)兩個所述第一時鐘周期存儲到所述存儲空間中的至少兩個所述校驗數(shù)據(jù)之間的關(guān)聯(lián)關(guān)系;
判斷在連續(xù)兩個所述第二時鐘周期讀取到的至少兩個所述校驗數(shù)據(jù)是否符合所述關(guān)聯(lián)關(guān)系,如果否,記錄一次校驗數(shù)據(jù)異常;
判斷本次所記錄的所述校驗數(shù)據(jù)異常與上一次所記錄的所述校驗數(shù)據(jù)異常之間的時間間隔是否小于預(yù)設(shè)的時長閾值,如果是,確定所述待監(jiān)控時鐘異常,否則確定所述待監(jiān)控時鐘正常。
優(yōu)選地,在所述記錄一次所述校驗數(shù)據(jù)異常之后,進一步包括:
暫停執(zhí)行所述在每一個所述第二時鐘周期從所述存儲空間中讀取較先存儲的至少一個所述校驗數(shù)據(jù),并在暫停時長達到預(yù)先設(shè)定的緩沖時長后,重新開始執(zhí)行所述在每一個所述第二時鐘周期從所述存儲空間中讀取較先存儲的至少一個所述校驗數(shù)據(jù);
其中,所述緩沖時長大于或等于一個所述第二時鐘周期。
優(yōu)選地,所述根據(jù)預(yù)先設(shè)定的目標時鐘周期,對待監(jiān)控時鐘的時鐘周期進行調(diào)頻處理,獲得第一時鐘周期,包括:
根據(jù)預(yù)先設(shè)定的目標時鐘周期和待監(jiān)控時鐘的標準時鐘周期的比值,確定第一調(diào)頻參數(shù),利用所述第一調(diào)頻參數(shù)對所述待監(jiān)控時鐘的實際時鐘周期進行縮放,獲得第一時鐘周期;
所述根據(jù)所述目標時鐘周期,對參考時鐘的時鐘周期進行調(diào)頻處理,獲得第二時鐘周期,包括:
根據(jù)預(yù)先設(shè)定的目標周期和參考時鐘的時鐘周期的比值,確定第二調(diào)頻參數(shù),利用所述第二調(diào)頻參數(shù)對所述參考時鐘的時鐘周期進行縮放,獲得第二時鐘周期。
優(yōu)選地,在所述在每一個所述第一時鐘周期,向具有預(yù)設(shè)容量的存儲空間中存儲至少一個校驗數(shù)據(jù)之前,進一步包括:
依次在所述存儲空間中存儲至少一個符合所述關(guān)聯(lián)關(guān)系的緩沖數(shù)據(jù)。
第二方面,本發(fā)明實施例提供了一種系統(tǒng)時鐘監(jiān)控裝置,包括:調(diào)頻處理單元、存儲單元、讀取單元和判斷單元;
所述調(diào)頻處理單元,用于根據(jù)預(yù)先設(shè)定的目標時鐘周期,對待監(jiān)控時鐘的時鐘周期進行調(diào)頻處理,獲得第一時鐘周期,還用于根據(jù)所述目標時鐘周期,對參考時鐘的時鐘周期進行調(diào)頻處理,獲得第二時鐘周期;
所述存儲單元,用于在所述調(diào)頻處理單元獲取的每一個所述第一時鐘周期,向具有預(yù)設(shè)容量的存儲空間中存儲至少一個校驗數(shù)據(jù),其中,在所述存儲空間的容量不足時對存儲時間較長的數(shù)據(jù)進行覆蓋;
所述讀取單元,用于在所述調(diào)頻處理單元獲取的每一個所述第二時鐘周期,從所述存儲空間中讀取所述存儲單元所較先存儲的至少一個所述校驗數(shù)據(jù),并將讀取到的所述至少一個所述校驗數(shù)據(jù)從所述存儲空間中刪除,其中,當所述存儲空間在不存在所述校驗數(shù)據(jù)時,讀取特定數(shù)據(jù)作為所述校驗數(shù)據(jù);
所述判斷單元,用于根據(jù)所述讀取單元在連續(xù)兩個所述第二時鐘周期讀取到的至少兩個所述校驗數(shù)據(jù),判斷所述待監(jiān)控時鐘是否異常。
優(yōu)選地,所述判斷單元包括:第一確定子單元和第一判斷子單元;
所述第一確定子單元,用于確定在連續(xù)兩個所述第一時鐘周期存儲到所述存儲空間中的至少兩個所述校驗數(shù)據(jù)之間的關(guān)聯(lián)關(guān)系;
所述第一判斷子單元,用于判斷在連續(xù)兩個所述第二時鐘周期讀取到的至少兩個所述校驗數(shù)據(jù)是否符合所述第一確定子單元確定的所述關(guān)聯(lián)關(guān)系,如果是,確定所述待監(jiān)控時鐘正常,否則確定所述待監(jiān)控時鐘異常。
優(yōu)選地,所述判斷單元包括:第二確定子單元和第二判斷子單元;
所述第二確定子單元,確定在連續(xù)兩個所述第一時鐘周期存儲到所述存儲空間中的至少兩個所述校驗數(shù)據(jù)之間的關(guān)聯(lián)關(guān)系;
所述第二判斷子單元,用于判斷在連續(xù)兩個所述第二時鐘周期讀取到的至少兩個所述校驗數(shù)據(jù)是否符合所述第二確定子單元確定的所述關(guān)聯(lián)關(guān)系,如果否,記錄一次校驗數(shù)據(jù)異常,還用于判斷本次所記錄的所述校驗數(shù)據(jù)異常與上一次所記錄的所述校驗數(shù)據(jù)異常之間的時間間隔是否小于預(yù)設(shè)的時長閾值,如果是,確定所述待監(jiān)控時鐘異常,否則確定所述待監(jiān)控時鐘正常。
優(yōu)選地,所述第二判斷子單元,進一步用于在記錄一次所述校驗數(shù)據(jù)發(fā)生異常之后,對所述讀取單元進行觸發(fā);
所述讀取單元,進一步用于在接收到所述第二判斷子單元的觸發(fā)時,暫停執(zhí)行所述在每一個所述第二時鐘周期從所述存儲空間中讀取較先存儲的至少一個所述校驗數(shù)據(jù),并在暫停時長達到預(yù)先設(shè)定的緩沖時長后,重新開始執(zhí)行所述在每一個所述第二時鐘周期從所述存儲空間中讀取較先存儲的至少一個所述校驗數(shù)據(jù),其中,所述緩沖時長大于或等于一個所述第二時鐘周期。
優(yōu)選地,所述調(diào)頻處理單元,用于根據(jù)預(yù)先設(shè)定的目標時鐘周期和待監(jiān)控時鐘的標準時鐘周期的比值,確定第一調(diào)頻參數(shù),利用所述第一調(diào)頻參數(shù)對所述待監(jiān)控時鐘的實際時鐘周期進行縮放,獲得第一時鐘周期,還用于根據(jù)預(yù)先設(shè)定的目標周期和參考時鐘的時鐘周期的比值,確定第二調(diào)頻參數(shù),利用所述第二調(diào)頻參數(shù)對所述參考時鐘的時鐘周期進行縮放,獲得第二時鐘周期。
優(yōu)選地,所述存儲單元,進一步用于依次在所述存儲空間中存儲至少一個符合所述關(guān)聯(lián)關(guān)系的緩沖數(shù)據(jù)。
在本發(fā)明實施例中,為了待監(jiān)控時鐘和參考時鐘的時鐘周期有可比性,所以根據(jù)預(yù)先設(shè)定的目標時鐘周期,將待監(jiān)控的時鐘周期調(diào)頻至第一時鐘周期,以及將參考時鐘的時鐘周期調(diào)頻至第二時鐘周期,在每一個第一時鐘周期時向存儲空間中存入至少一個校驗數(shù)據(jù),是為了在每一個第二時鐘周期從存儲空間中讀取較先存儲的至少一個校驗數(shù)據(jù),由于存儲空間的容量有限,當?shù)谝粫r鐘周期與第二時鐘周期不同時,會導(dǎo)致存儲空間中的校驗數(shù)據(jù)溢出或校驗數(shù)據(jù)不存在,使得從存儲空間中讀取出的校驗數(shù)據(jù)產(chǎn)生相對應(yīng)的變化。因此,可以通過從存儲空間中讀取到的校驗數(shù)據(jù),來確定第一時鐘周期和第二時鐘周期是否相同,從而可以確定待監(jiān)控時鐘是否異常,實現(xiàn)對系統(tǒng)時鐘進行監(jiān)控。
附圖說明
為了更清楚地說明本發(fā)明實施例或現(xiàn)有技術(shù)中的技術(shù)方案,下面將對實施例或現(xiàn)有技術(shù)描述中所需要使用的附圖作簡單地介紹,顯而易見地,下面描述中的附圖是本發(fā)明的一些實施例,對于本領(lǐng)域普通技術(shù)人員來講,在不付出創(chuàng)造性勞動的前提下,還可以根據(jù)這些附圖獲得其他的附圖。
圖1是本發(fā)明一實施例提供的一種系統(tǒng)時鐘監(jiān)控方法的流程圖;
圖2是本發(fā)明一實施例提供的另一種系統(tǒng)時鐘監(jiān)控方法的流程圖;
圖3是本發(fā)明一實施例提供的又一種系統(tǒng)時鐘監(jiān)控方法的流程圖;
圖4是本發(fā)明一實施例提供的再一種系統(tǒng)時鐘監(jiān)控方法的流程圖;
圖5是本發(fā)明一實施例提供的一種系統(tǒng)時鐘監(jiān)控裝置的結(jié)構(gòu)示意圖;
圖6是本發(fā)明一實施例提供的另一種系統(tǒng)時鐘監(jiān)控裝置的結(jié)構(gòu)示意圖;
圖7是本發(fā)明一實施例提供的又一種系統(tǒng)時鐘監(jiān)控裝置的結(jié)構(gòu)示意圖。
具體實施方式
為使本發(fā)明實施例的目的、技術(shù)方案和優(yōu)點更加清楚,下面將結(jié)合本發(fā)明實施例中的附圖,對本發(fā)明實施例中的技術(shù)方案進行清楚、完整地描述,顯然,所描述的實施例是本發(fā)明一部分實施例,而不是全部的實施例,基于本發(fā)明中的實施例,本領(lǐng)域普通技術(shù)人員在沒有做出創(chuàng)造性勞動的前提下所獲得的所有其他實施例,都屬于本發(fā)明保護的范圍。
如圖1所示,本發(fā)明實施例提供了一種系統(tǒng)時鐘監(jiān)控方法,該方法可以包括以下步驟:
步驟101:根據(jù)預(yù)先設(shè)定的目標時鐘周期,對待監(jiān)控時鐘的時鐘周期進行調(diào)頻處理,獲得第一時鐘周期;
步驟102:根據(jù)所述目標時鐘周期,對參考時鐘的時鐘周期進行調(diào)頻處理,獲得第二時鐘周期;
步驟103:在每一個所述第一時鐘周期,向具有預(yù)設(shè)容量的存儲空間中存儲至少一個校驗數(shù)據(jù),其中,在所述存儲空間的容量不足時對存儲時間較長的數(shù)據(jù)進行覆蓋;
步驟104:在每一個所述第二時鐘周期,從所述存儲空間中讀取較先存儲的至少一個所述校驗數(shù)據(jù),并將讀取到的所述至少一個所述校驗數(shù)據(jù)從所述存儲空間中刪除,其中,當所述存儲空間在不存在所述校驗數(shù)據(jù)時,讀取特定數(shù)據(jù)作為所述校驗數(shù)據(jù);
步驟105:根據(jù)在連續(xù)兩個所述第二時鐘周期讀取到的至少兩個所述校驗數(shù)據(jù),判斷所述待監(jiān)控時鐘是否異常。
在本發(fā)明實施例中,為了待監(jiān)控時鐘和參考時鐘的時鐘周期有可比性,所以根據(jù)預(yù)先設(shè)定的目標時鐘周期,將待監(jiān)控的時鐘周期調(diào)頻至第一時鐘周期,以及將參考時鐘的時鐘周期調(diào)頻至第二時鐘周期,在每一個第一時鐘周期時向存儲空間中存入至少一個校驗數(shù)據(jù),是為了在每一個第二時鐘周期從存儲空間中讀取較先存儲的至少一個校驗數(shù)據(jù),由于存儲空間的容量有限,當?shù)谝恢芷谂c第二周期不同時,會導(dǎo)致存儲空間中的校驗數(shù)據(jù)溢出或校驗數(shù)據(jù)不存在,使得從存儲空間中讀取出的校驗數(shù)據(jù)產(chǎn)生相對應(yīng)的變化。因此,可以通過從存儲空間中讀取到的校驗數(shù)據(jù),來確定第一時鐘周期和第二時鐘周期是否相同,從而可以確定待監(jiān)控時鐘是否異常,實現(xiàn)對系統(tǒng)時鐘進行監(jiān)控。
針對步驟105可以通過如下兩種方式實現(xiàn),具體包括:
方式一:判斷在連續(xù)兩個第二時鐘周期時,從存儲空間讀取到的兩個校驗數(shù)據(jù)是否符合在連續(xù)兩個第一時鐘周期時向存儲空間中存儲時確定的兩個校驗數(shù)據(jù)的關(guān)聯(lián)關(guān)系,從而確定待監(jiān)控時鐘是否異常。
方式二:記錄每次不符合數(shù)據(jù)關(guān)聯(lián)關(guān)系的校驗數(shù)據(jù)發(fā)生異常的時間,判斷每兩次校驗數(shù)據(jù)發(fā)生異常的時間間隔是否小于預(yù)設(shè)的時長閾值,從而判斷待監(jiān)控時鐘是否異常。
下面針對上述兩種判斷待監(jiān)控時鐘是否異常的方法進行詳細說明:
針對方式一,如圖2所示,判斷待監(jiān)控時鐘是否發(fā)生異常的方法可以包括以下步驟:
步驟201:確定在連續(xù)兩個所述第一時鐘周期存儲到所述存儲空間中的至少兩個所述校驗數(shù)據(jù)之間的關(guān)聯(lián)關(guān)系;
步驟202:判斷在連續(xù)兩個所述第二時鐘周期讀取到的至少兩個所述校驗數(shù)據(jù)是否符合所述關(guān)聯(lián)關(guān)系,如果是,執(zhí)行步驟203,否則執(zhí)行步驟204。
步驟203:確定所述待監(jiān)控時鐘正常,繼續(xù)執(zhí)行步驟202;
步驟204:確定所述待監(jiān)控時鐘異常。
方式一提供的確定待監(jiān)控時鐘是否異常的方法,是以在連續(xù)兩個第二時鐘周期讀取到的兩個校驗數(shù)據(jù)為對象,當連續(xù)讀取到的兩個校驗數(shù)據(jù)不符合兩個校驗數(shù)據(jù)對應(yīng)的關(guān)聯(lián)關(guān)系,可能由于向存儲空間存儲校驗數(shù)據(jù)的速率大于從存儲空間讀取校驗數(shù)據(jù)的速率,導(dǎo)致存儲空間中未被讀取的校驗數(shù)據(jù)已經(jīng)被覆蓋,使得連續(xù)讀取到的兩個校驗數(shù)據(jù)不符合對應(yīng)的關(guān)聯(lián)關(guān)系,也可能由于向存儲空間存儲校驗數(shù)據(jù)的速率小于從存儲空間讀取校驗數(shù)據(jù)的速率,導(dǎo)致存儲空間中的校驗數(shù)據(jù)被讀空而讀取到特定數(shù)據(jù),從而使得連續(xù)讀取到的兩個校驗數(shù)據(jù)不符合對應(yīng)的關(guān)聯(lián)關(guān)系,而向存儲空間中存儲校驗數(shù)據(jù)的速率由待監(jiān)控時鐘的實際時鐘周期決定,因此,當連續(xù)讀取到的兩個校驗數(shù)據(jù)與兩個校驗數(shù)據(jù)對應(yīng)的關(guān)聯(lián)關(guān)系不符時,可以判定待監(jiān)控時鐘發(fā)生異常。
針對方式二,如圖3所示,判斷待監(jiān)控時鐘是否發(fā)生異常的方法具體可以包括以下步驟:
步驟301:確定在連續(xù)兩個所述第一時鐘周期存儲到所述存儲空間中的至少兩個所述校驗數(shù)據(jù)之間的關(guān)聯(lián)關(guān)系;
步驟302:判斷在連續(xù)兩個所述第二時鐘周期讀取到的至少兩個所述校驗數(shù)據(jù)是否符合所述關(guān)聯(lián)關(guān)系,如果是,繼續(xù)執(zhí)行步驟302,否則執(zhí)行步驟303;
步驟303:確定所述校驗數(shù)據(jù)發(fā)生異常,并記錄所述校驗數(shù)據(jù)發(fā)生異常的時間;
步驟304:判斷所述校驗數(shù)據(jù)發(fā)生異常的次數(shù)是否等于2,如果是,執(zhí)行步驟305,否則執(zhí)行步驟302;
步驟305:判斷本次所記錄的所述校驗數(shù)據(jù)異常與上一次所記錄的所述校驗數(shù)據(jù)異常之間的時間間隔是否小于預(yù)設(shè)的時長閾值,如果是,執(zhí)行步驟306,否則執(zhí)行步驟307;
步驟306:確定所述待監(jiān)控時鐘異常,并結(jié)束當前流程;
步驟307:將所記錄的異常次數(shù)清零,并執(zhí)行步驟302。
方式二提供的確定待監(jiān)控時鐘是否異常的方法,是以每發(fā)生兩次校驗數(shù)據(jù)不符合對應(yīng)的關(guān)聯(lián)關(guān)系為對象,當?shù)谝淮芜B續(xù)讀取到的兩個校驗數(shù)據(jù)不符合對應(yīng)的關(guān)聯(lián)關(guān)系時,不立即確定待監(jiān)控時鐘發(fā)生異常而是記錄校驗數(shù)據(jù)發(fā)生異常的時間,是由于在待監(jiān)控時鐘向存儲空間存儲校驗數(shù)據(jù)的速率與從存儲空間中讀取校驗數(shù)據(jù)的速率有微小的偏差,當微小的偏差經(jīng)過長時間的累積后,必然會出現(xiàn)一次從存儲空間連續(xù)讀取到的校驗數(shù)據(jù)不符合對應(yīng)的關(guān)聯(lián)關(guān)系的情況,這可能是待監(jiān)控時鐘的固有偏差;繼續(xù)確定并記錄下一次連續(xù)讀取到的兩個校驗數(shù)據(jù)不符合對應(yīng)的關(guān)聯(lián)關(guān)系的時間,在確定兩次校驗數(shù)據(jù)發(fā)生異常之后,確定兩次校驗數(shù)據(jù)發(fā)生異常的時間間隔是否小于預(yù)設(shè)的時長閾值,如果兩次異常發(fā)生的時間間隔小于時長閾值,說明待監(jiān)控時鐘的實際時鐘周期與標準時鐘周期存在較大的差異,確定待監(jiān)控時鐘異常;如果兩次異常發(fā)生的時間差大于時長閾值,說明待監(jiān)控時鐘需要經(jīng)過較長的時間累計才會出現(xiàn)一次異常,此時可以判定待監(jiān)控時鐘是正常的。
方式一的確定待監(jiān)控時鐘是否異常的方法適用于要求待監(jiān)控時鐘非常精準的情況,而方式二提供的確定待監(jiān)控時鐘是否異常的方法,適用于對待監(jiān)控時鐘的精準程度要求一般的情況。因此,方式一和方式二適用于不同的應(yīng)用場景,在實際業(yè)務(wù)實現(xiàn)過程中,可以根據(jù)實際需求進行靈活選擇,從而提高了該校驗方法的適用性。
在本發(fā)明一實施例中,根據(jù)前述方式二所述的確定待監(jiān)控時鐘異常的方法,在記錄一次所述校驗數(shù)據(jù)發(fā)生異常之后,進一步包括:
暫停執(zhí)行所述在每一個所述第二時鐘周期從所述存儲空間中讀取較先存儲的至少一個所述校驗數(shù)據(jù),并在暫停時長達到預(yù)先設(shè)定的緩沖時長后,重新開始執(zhí)行所述在每一個所述第二時鐘周期從所述存儲空間中讀取較先存儲的至少一個所述校驗數(shù)據(jù);
其中,所述緩沖時長大于或等于一個所述第二時鐘周期。
在本發(fā)明一實施例中,在確定并記錄一次校驗數(shù)據(jù)發(fā)生異常之后,不是直接發(fā)出報警信息,也不是繼續(xù)確定并記錄下一次校驗數(shù)據(jù)發(fā)生異常的時間,而是暫停不小于第二時鐘周期的緩沖時長從存儲空間中讀取校驗數(shù)據(jù),此做法的目的是避免因為向存儲空間中存儲校驗數(shù)據(jù)的速率與從存儲空間中讀取校驗數(shù)據(jù)的速率有微小的偏差,所導(dǎo)致的一次從存儲空間連續(xù)讀取到的兩個校驗數(shù)據(jù)不符合對應(yīng)的關(guān)聯(lián)關(guān)系而確定待監(jiān)控時鐘發(fā)生異常的情況。
在本發(fā)明一實施例中,所述根據(jù)預(yù)先設(shè)定的目標時鐘周期,對待監(jiān)控時鐘的時鐘周期進行調(diào)頻處理,獲得第一時鐘周期,包括:
根據(jù)預(yù)先設(shè)定的目標時鐘周期和待監(jiān)控時鐘的標準時鐘周期的比值,確定第一調(diào)頻參數(shù),利用所述第一調(diào)頻參數(shù)對所述待監(jiān)控時鐘的實際時鐘周期進行縮放,獲得第一時鐘周期;
所述根據(jù)所述目標時鐘周期,對參考時鐘的時鐘周期進行調(diào)頻處理,獲得第二時鐘周期,包括:
根據(jù)預(yù)先設(shè)定的目標周期和參考時鐘的時鐘周期的比值,確定第二調(diào)頻參數(shù),利用所述第二調(diào)頻參數(shù)對所述參考時鐘的時鐘周期進行縮放,獲得第二時鐘周期。
在本發(fā)明實施例中,所確定的第一調(diào)頻參數(shù)等于預(yù)設(shè)的目標時鐘周期和待監(jiān)控時鐘的標準時鐘周期的比值,所確定的第二調(diào)頻參數(shù)等于預(yù)設(shè)的目標時鐘周期和參考時鐘的時鐘周期的比值,利用第一調(diào)頻參數(shù)對待監(jiān)控時鐘的實際時鐘周期進行縮放,即可獲得第一時鐘周期,再利用第二調(diào)頻參數(shù)對參考時鐘的時鐘周期進行縮放,即可獲得第二時鐘周期,確定第一調(diào)頻參數(shù)和第二調(diào)頻參數(shù),是為了將待監(jiān)控時鐘的實際時鐘周期縮放后獲得的第一時鐘周期與將參考時鐘的時鐘周期縮放后獲得的第二時鐘周期由可比性。
在本發(fā)明一實施例中,在所述按照創(chuàng)建順序?qū)⑺鲋辽僖粋€校驗數(shù)據(jù)存儲到所述存儲空間中之前,進一步包括:
依次在所述存儲空間中存儲至少一個符合所述數(shù)據(jù)創(chuàng)建規(guī)則的緩沖數(shù)據(jù)。
在本發(fā)明實施例中,在待監(jiān)控時鐘向存儲空間存儲至少一個校驗數(shù)據(jù)之前,向存儲空間中存入至少一個符合數(shù)據(jù)創(chuàng)建規(guī)則的緩沖數(shù)據(jù),存儲緩沖數(shù)據(jù)的操作可以避免系統(tǒng)在剛開始工作時,還未執(zhí)行向存儲空間存儲校驗數(shù)據(jù)的操作就已經(jīng)執(zhí)行從存儲空間讀取校驗數(shù)據(jù)的操作,而導(dǎo)致的從存儲空間中讀取不到校驗數(shù)據(jù)確定待監(jiān)控時鐘發(fā)生異常的情況。
下面結(jié)合前述方式二,對本發(fā)明實施例提供的一種系統(tǒng)時鐘監(jiān)控方法,作進一步詳細說明,如圖4所示,該方法可以包括以下步驟:
步驟401:創(chuàng)建具有預(yù)設(shè)容量的存儲空間。
具體地,預(yù)先創(chuàng)建具有預(yù)設(shè)容量的存儲空間,便于在待監(jiān)控時鐘產(chǎn)生至少一個校驗數(shù)據(jù)之后存儲產(chǎn)生的校驗數(shù)據(jù)。
舉例來說,在服務(wù)器中創(chuàng)建一個容量為1mb的存儲空間。
步驟402:依次在存儲空間中存儲至少一個符合數(shù)據(jù)創(chuàng)建規(guī)則的緩沖數(shù)據(jù)。
具體地,在服務(wù)器剛開始工作向存儲空間存入校驗數(shù)據(jù)之前,向存儲空間中存入至少一個符合數(shù)據(jù)創(chuàng)建規(guī)則的緩沖數(shù)據(jù),防止服務(wù)器剛開始工作,還未執(zhí)行向存儲空間存入校驗數(shù)據(jù)的操作就已經(jīng)執(zhí)行從存儲空間讀取校驗數(shù)據(jù)的操作,而導(dǎo)致讀取不到校驗數(shù)據(jù)發(fā)生的異常情況。
舉例來說,向存儲空間中存入每個均為0.2mb大小且符合數(shù)據(jù)創(chuàng)建規(guī)則的緩沖數(shù)據(jù)a、b、c。
步驟403:確定第一調(diào)頻參數(shù)和第二調(diào)頻參數(shù)。
具體地,根據(jù)待監(jiān)控時鐘的標準時鐘周期和參考時鐘的時鐘周期,確定第一調(diào)頻參數(shù)和第二調(diào)頻參數(shù),其中,待監(jiān)控時鐘的標準時鐘周期是待監(jiān)控時鐘的理論時鐘周期。
舉例來說,服務(wù)器的時鐘源(即為待監(jiān)控時鐘)的時鐘周期為0.02s,參考時鐘的時鐘頻率為0.05s,為了將待監(jiān)控時鐘和參考時鐘的時鐘周期都調(diào)至目標時鐘周期0.1s,可以確定待監(jiān)控時鐘的第一調(diào)頻參數(shù)為5,參考時鐘的第二調(diào)頻參數(shù)為2。
步驟404:利用第一調(diào)頻參數(shù)對待監(jiān)控時鐘的實際時鐘周期進行調(diào)頻,獲取待監(jiān)控時鐘的第一時鐘周期。
具體地,為了將待監(jiān)控時鐘的標準時鐘周期(即為理論時鐘周期)和參考時鐘的時鐘周期都調(diào)頻至目標時鐘周期,需要利用第一調(diào)頻參數(shù)將待監(jiān)控時鐘的標準時鐘周期調(diào)頻至第一時鐘周期。
舉例來說,利用第一調(diào)頻參數(shù)5,將時鐘周期為0.02s的服務(wù)器時鐘源調(diào)頻至時鐘周期為0.1s。
步驟405:利用第二調(diào)頻參數(shù)對參考時鐘的時鐘周期進行調(diào)頻,獲取參考時鐘的第二時鐘周期。
具體地,為了將參考時鐘的時鐘周期和待監(jiān)控時鐘的標準時鐘周期(即為理論時鐘周期)都調(diào)頻至目標時鐘周期,需要利用第二調(diào)頻參數(shù)將參考時鐘的時鐘周期調(diào)頻至第二時鐘周期。
舉例來說,利用第二調(diào)頻參數(shù)2,將時鐘周期為0.05s的參考時鐘調(diào)頻至0.1s。
步驟406:根據(jù)預(yù)設(shè)的數(shù)據(jù)創(chuàng)建規(guī)則,依次在每一個第一時鐘周期創(chuàng)建至少一個校驗數(shù)據(jù),并按照創(chuàng)建順序?qū)⒅辽僖粋€校驗數(shù)據(jù)存儲到存儲空間中。
具體地,在每一個第一時鐘周期創(chuàng)建至少一個符合數(shù)據(jù)創(chuàng)建規(guī)則的校驗數(shù)據(jù),并將創(chuàng)建的校驗數(shù)據(jù)依次存儲到存儲空間中,便于需要校驗數(shù)據(jù)時從存儲空間中讀取,但由于存儲空間的容量有限,所以當存儲空間的容量不足時,后創(chuàng)建的校驗數(shù)據(jù)會覆蓋存儲時間較長的校驗數(shù)據(jù),從而可以確保后創(chuàng)建的校驗數(shù)據(jù)可以存入到存儲空間中。
舉例來說,預(yù)設(shè)的數(shù)據(jù)創(chuàng)建規(guī)則是第一個待監(jiān)控時鐘的0.1s的時鐘周期下存入第一個校驗數(shù)據(jù)a+1,第二個待監(jiān)控時鐘的0.1s的時鐘周期下存入第二個校驗數(shù)據(jù)a+2,第三個待監(jiān)控時鐘的0.1s的時鐘周期下存入第三個校驗數(shù)據(jù)a+3,第四個待監(jiān)控時鐘的0.1s的時鐘周期下存入第四個校驗數(shù)據(jù)a+1,循環(huán)存入a+1、a+2、a+3這三個校驗數(shù)據(jù)于存儲空間中(校驗數(shù)據(jù)a+1、a+2、a+3即為符合數(shù)據(jù)創(chuàng)建規(guī)則的校驗數(shù)據(jù)),每個校驗數(shù)據(jù)的大小均為0.2mb。例如,在第一個待監(jiān)控時鐘的0.1s的時鐘周期下,會產(chǎn)生校驗數(shù)據(jù)a+1,將a+1存入存儲空間中,在第二個待監(jiān)控時鐘的0.1s的時鐘周期下,會產(chǎn)生校驗數(shù)據(jù)a+2,將a+2存入存儲空間中。由于存儲空間的容量為1mb,且存儲空間中已有0.5mb的緩存數(shù)據(jù),剩余的存儲空間的容量為0.5mb只能存入a+1和a+2兩個校驗數(shù)據(jù),如果在第三個待監(jiān)控時鐘的0.1s的時鐘周期下,產(chǎn)生校驗數(shù)據(jù)a+3之后,想將校驗數(shù)據(jù)a+3存入存儲空間,需要覆蓋存儲空間中存儲時間較長的校驗數(shù)據(jù)a+1。
步驟407:在每一個第二時鐘周期,從存儲空間中讀取存儲時間較長的至少一個校驗數(shù)據(jù),并將存儲空間中已被讀取的校驗數(shù)據(jù)刪除。
具體地,由于存儲空間的容量有限,所以在每一個第二時鐘周期,當從存儲空間中讀取存儲時間較長的校驗數(shù)據(jù)之后將該數(shù)據(jù)刪除,便于及時釋放存儲空間的容量。當存儲空間中不存在校驗數(shù)據(jù)時,讀取特定數(shù)據(jù)作為校驗數(shù)據(jù),比如特定數(shù)據(jù)為b。
舉例來說,在第一個參考時鐘的0.1s的時鐘周期時,按照校驗數(shù)據(jù)存入存儲空間的順序,在存儲空間中讀取存儲時間較長的校驗數(shù)據(jù)a+1,讀取校驗數(shù)據(jù)a+1之后,將校驗數(shù)據(jù)a+1從存儲空間中刪除。在第二個參考時鐘的0.1s的時鐘周期時,在存儲空間中讀取存儲時間較長的校驗數(shù)據(jù)a+2,讀取校驗數(shù)據(jù)a+2之后,將校驗數(shù)據(jù)a+2從存儲空間中刪除。
步驟408:判斷在連續(xù)兩個第二時鐘周期讀取到的至少兩個校驗數(shù)據(jù)是否符合數(shù)據(jù)創(chuàng)建規(guī)則,如果是,執(zhí)行步驟409,否則執(zhí)行步驟410。
具體地,根據(jù)從存儲空間讀取到的校驗數(shù)據(jù),依次判斷連續(xù)讀取到的兩個校驗數(shù)據(jù)是否符合校驗數(shù)據(jù)規(guī)則,從而確定待監(jiān)控始終是否異常。
舉例來說,如果在參考時鐘的第一個0.1s的時鐘周期和第二個0.1s的時鐘周期時,從存儲空間中讀取出的校驗數(shù)據(jù)a+1和a+2,是待監(jiān)控時鐘在第一個0.1s和第二個0.1s的時鐘周期時存入的校驗數(shù)據(jù)a+1和a+2,可以確定待監(jiān)控時鐘正常。
如果在參考時鐘的第一個0.1s和第二個0.1s的時鐘周期時,從存儲空間中讀取出的校驗數(shù)據(jù)a+2和a+3,不是待監(jiān)控時鐘在第一個0.1s的時鐘周期時存入的校驗數(shù)據(jù)a+1和a+2,可以確定待監(jiān)控時鐘發(fā)生異常。
步驟409:確定當前校驗數(shù)據(jù)符合數(shù)據(jù)創(chuàng)建規(guī)則,并繼續(xù)執(zhí)行步驟408。
具體地,根據(jù)數(shù)據(jù)創(chuàng)建規(guī)則與當前讀取到的校驗數(shù)據(jù)對比,確認符合數(shù)據(jù)創(chuàng)建規(guī)則之后,繼續(xù)確認下一個從存儲空間讀取出的校驗數(shù)據(jù)是否符合數(shù)據(jù)創(chuàng)建規(guī)則。
舉例來說,在參考時鐘的第一個0.1s的時鐘周期時,從存儲空間中讀取出的校驗數(shù)據(jù)a+1和a+2,是待監(jiān)控時鐘在第一個0.1s的時鐘周期時存入的校驗數(shù)據(jù)a+1和a+2,確定符合數(shù)據(jù)創(chuàng)建規(guī)則,繼續(xù)校驗下一個從存儲空間中讀取出的校驗數(shù)據(jù)。
步驟410:確定校驗數(shù)據(jù)發(fā)生異常,并記錄該校驗數(shù)據(jù)發(fā)生異常的時間。
具體地,在確定從存儲空間讀取出的校驗數(shù)據(jù)不符合數(shù)據(jù)創(chuàng)建規(guī)則后,確定該校驗數(shù)據(jù)發(fā)生異常,并記錄一次該校驗數(shù)據(jù)發(fā)生異常的時間,在記錄一次校驗數(shù)據(jù)發(fā)生異常后,不是直接發(fā)出報警信息,也不是繼續(xù)確定并記錄下一次校驗數(shù)據(jù)發(fā)生異常的時間,而是暫停不小于第二時鐘周期的緩沖時長從存儲空間中讀取校驗數(shù)據(jù),此做法的目的是避免因為向存儲空間中存儲校驗數(shù)據(jù)的速率與從存儲空間中讀取校驗數(shù)據(jù)的速率有微小的偏差,所導(dǎo)致的一次從存儲空間連續(xù)讀取到的兩個校驗數(shù)據(jù)不符合對應(yīng)的關(guān)聯(lián)關(guān)系而確定待監(jiān)控時鐘發(fā)生異常的情況,在達到暫停時長后,繼續(xù)確定下一個不符合數(shù)據(jù)創(chuàng)建規(guī)則的校驗數(shù)據(jù),并記錄該校驗數(shù)據(jù)發(fā)生異常的時間。
舉例來說,由于待監(jiān)控時鐘的實際時鐘周期發(fā)生異常,由原來的0.02s變成0.04s,經(jīng)過第一調(diào)頻參數(shù)5調(diào)頻后,待監(jiān)控時鐘的時鐘周期變?yōu)?.2s。
待監(jiān)控時鐘在第一個0.2s的時鐘周期已經(jīng)存入a+1和a+2兩個校驗數(shù)據(jù)于存儲空間中,在參考時鐘的第一個0.1s的時鐘周期時,從存儲空間讀取校驗數(shù)據(jù)a+1,讀取完a+1后刪除校驗數(shù)據(jù)a+1,此時存儲空間內(nèi)剩余校驗數(shù)據(jù)a+2;
待監(jiān)控時鐘在第二個0.2s的時鐘周期又存入a+3和a+1,在參考時鐘的第二個0.1s時,應(yīng)該讀取到的是a+2,但由于存入的a+3和a+1已將a+2覆蓋,所以讀取到的是a+3,根據(jù)連續(xù)兩次讀取到的a+1和a+3,確定不是按照順序存入的a+1和a+2,所以可以確定校驗數(shù)據(jù)發(fā)生異常,記錄在參考時鐘的第二個0.1s的時鐘周期時校驗數(shù)據(jù)發(fā)生異常,此時存儲空間內(nèi)剩余的校驗數(shù)據(jù)為a+1,并暫停一個0.1s的緩沖時長從存儲空間中讀取校驗數(shù)據(jù);
在暫停的0.1s內(nèi),待監(jiān)控時鐘又存入a+2和a+3兩個校驗數(shù)據(jù),并覆蓋之前存入的a+1,在參考時鐘的第三個0.1s時,應(yīng)該從存儲空間中讀取出a+3,但實際讀取出的為a+2,根據(jù)上一個讀取到的a+3和當前讀取到的a+2,確定校驗數(shù)據(jù)發(fā)生異常,記錄校驗數(shù)據(jù)在參考時鐘的第三個0.1s時發(fā)生第二次異常。
步驟411:判斷校驗數(shù)據(jù)發(fā)生異常的次數(shù)是否等于2,如果是,執(zhí)行步驟412,否則執(zhí)行步驟408。
具體地,在第一次校驗數(shù)據(jù)發(fā)生異常時不能確定待監(jiān)控時鐘發(fā)生異常,是因為待監(jiān)控時鐘有可能因為微小的時鐘周期偏差,經(jīng)過長期積累后導(dǎo)致的一次異常,而是需要確定兩次校驗數(shù)據(jù)異常的時間差來判斷,所以需要先確定校驗數(shù)據(jù)發(fā)生異常的次數(shù)是否等于2。
舉例來說,如果記錄校驗數(shù)據(jù)發(fā)生異常的次數(shù)等于2,再進一步確定兩次異常的時間差。
如果記錄校驗數(shù)據(jù)發(fā)生異常的次數(shù)小于2,則繼續(xù)判斷下次校驗數(shù)據(jù)發(fā)生異常的次數(shù)是否等于2。
步驟412:確定校驗數(shù)據(jù)第二次發(fā)生異常與第一次發(fā)生異常之間的時間間隔是否小于預(yù)先設(shè)定的時長閾值,如果是,執(zhí)行步驟414,否則執(zhí)行步驟413。
具體地,確定兩次校驗數(shù)據(jù)發(fā)生異常的時間差是否符合預(yù)先設(shè)定的時長閾值,從而確定待監(jiān)控時鐘是否異常。
舉例來說,預(yù)先設(shè)定的時長閾值為0.5s,由于第一次發(fā)生數(shù)據(jù)異常和第二次發(fā)生數(shù)據(jù)異常的時間差為0.1s的,小于時長閾值0.5s,可以所以確定待監(jiān)控時鐘異常。
如果第一次發(fā)生數(shù)據(jù)異常和第二次發(fā)生數(shù)據(jù)異常的時間差為0.6s,不小于時長閾值0.5s,可以確定待監(jiān)控時鐘正常。
步驟413:確定待監(jiān)控時鐘正常,并繼續(xù)執(zhí)行步驟408。
具體地,兩次校驗數(shù)據(jù)發(fā)生異常的時間差不小于設(shè)定的時長閾值,可以確定待監(jiān)控時鐘正常。
舉例來說,如果第一次發(fā)生數(shù)據(jù)異常和第二次發(fā)生數(shù)據(jù)異常的時間差為0.1s,不小于時長閾值,可以確定待監(jiān)控時鐘正常。
步驟414:確定待監(jiān)控時鐘異常,并發(fā)出報警信息。
具體地,根據(jù)兩次校驗數(shù)據(jù)發(fā)生異常的時間差小于設(shè)定的時長閾值,可以確定待監(jiān)控時鐘發(fā)生異常,向服務(wù)器發(fā)出報警信息。
舉例來說,如果第一次發(fā)生數(shù)據(jù)異常和第二次發(fā)生數(shù)據(jù)異常的時間差為0.1s,小于時長閾值設(shè)定的0.5s,可以確定待監(jiān)控時鐘異常,向服務(wù)器發(fā)出待監(jiān)控時鐘速度過快的報警信息。
如圖5所示,本發(fā)明實施例提供了一種系統(tǒng)時鐘監(jiān)控裝置,包括:
調(diào)頻處理單元501、存儲單元502、讀取單元503和判斷單元504;
所述調(diào)頻處理單元501,用于根據(jù)預(yù)先設(shè)定的目標時鐘周期,對待監(jiān)控時鐘的時鐘周期進行調(diào)頻處理,獲得第一時鐘周期,還用于根據(jù)所述目標時鐘周期,對參考時鐘的時鐘周期進行調(diào)頻處理,獲得第二時鐘周期;
所述存儲單元502,用于在所述調(diào)頻處理單元501獲取的每一個所述第一時鐘周期,向具有預(yù)設(shè)容量的存儲空間中存儲至少一個校驗數(shù)據(jù),其中,在所述存儲空間的容量不足時對存儲時間較長的數(shù)據(jù)進行覆蓋;
所述讀取單元503,用于在所述調(diào)頻處理單元501獲取的每一個所述第二時鐘周期,從所述存儲空間中讀取所述存儲單元502所較先存儲的至少一個所述校驗數(shù)據(jù),并將讀取到的所述至少一個所述校驗數(shù)據(jù)從所述存儲空間中刪除,其中,當所述存儲空間在不存在所述校驗數(shù)據(jù)時,讀取特定數(shù)據(jù)作為所述校驗數(shù)據(jù);
所述判斷單元504,用于根據(jù)所述讀取單元503在連續(xù)兩個所述第二時鐘周期讀取到的至少兩個所述校驗數(shù)據(jù),判斷所述待監(jiān)控時鐘是否異常。
基于圖5所示的一種系統(tǒng)時鐘監(jiān)控裝置,本發(fā)明一實施例中,如圖6所示,所述判斷單元504包括:第一確定子單元5041和第一判斷子單元5042;
所述第一確定子單元5041,用于確定在連續(xù)兩個所述第一時鐘周期存儲到所述存儲空間中的至少兩個所述校驗數(shù)據(jù)之間的關(guān)聯(lián)關(guān)系;
所述第一判斷子單元5042,用于判斷在連續(xù)兩個所述第二時鐘周期讀取到的至少兩個所述校驗數(shù)據(jù)是否符合所述第一確定子單元5041確定的所述關(guān)聯(lián)關(guān)系,如果是,確定所述待監(jiān)控時鐘正常,否則確定所述待監(jiān)控時鐘異常。
基于圖5所示的所述一種系統(tǒng)時鐘監(jiān)控裝置,本發(fā)明一實施例中,如圖7所示,所述判斷單元504包括:第二確定子單元5043和第二判斷子單元5044;
所述第二確定子單元5043,確定在連續(xù)兩個所述第一時鐘周期存儲到所述存儲空間中的至少兩個所述校驗數(shù)據(jù)之間的關(guān)聯(lián)關(guān)系;
所述第二判斷子單元5044,用于判斷在連續(xù)兩個所述第二時鐘周期讀取到的至少兩個所述校驗數(shù)據(jù)是否符合所述第二確定子單元5043確定的所述關(guān)聯(lián)關(guān)系,如果否,記錄一次校驗數(shù)據(jù)異常,還用于判斷本次所記錄的所述校驗數(shù)據(jù)異常與上一次所記錄的所述校驗數(shù)據(jù)異常之間的時間間隔是否小于預(yù)設(shè)的時長閾值,如果是,確定所述待監(jiān)控時鐘異常,否則確定所述待監(jiān)控時鐘正常。
在本發(fā)明一實施例中,
所述調(diào)頻處理單元,用于根據(jù)預(yù)先設(shè)定的目標時鐘周期和待監(jiān)控時鐘的標準時鐘周期的比值,確定第一調(diào)頻參數(shù),利用所述第一調(diào)頻參數(shù)對所述待監(jiān)控時鐘的實際時鐘周期進行縮放,獲得第一時鐘周期,還用于根據(jù)預(yù)先設(shè)定的目標周期和參考時鐘的時鐘周期的比值,確定第二調(diào)頻參數(shù),利用所述第二調(diào)頻參數(shù)對所述參考時鐘的時鐘周期進行縮放,獲得第二時鐘周期;
在本發(fā)明一實施例中,所述第二判斷子單元,用于在記錄第一次所述校驗數(shù)據(jù)發(fā)生異常之后,對所述讀取單元進行觸發(fā);
所述讀取單元,進一步用于在接收到所述記錄子單元的觸發(fā)時,暫停執(zhí)行所述在每一個所述第二時鐘周期從所述存儲空間中讀取較先存儲的至少一個所述校驗數(shù)據(jù),并在暫停時長達到預(yù)先設(shè)定的緩沖時長后,重新開始執(zhí)行所述在每一個所述第二時鐘周期從所述存儲空間中讀取較先存儲的至少一個所述校驗數(shù)據(jù),其中,所述緩沖時長大于或等于一個所述第二時鐘周期。
在本發(fā)明一實施例中,所述存儲單元,進一步用于依次在所述存儲空間中存儲至少一個符合所述關(guān)聯(lián)關(guān)系的緩沖數(shù)據(jù)。
在本發(fā)明實施例中,為了待監(jiān)控時鐘和參考時鐘的時鐘周期有可比性,所以調(diào)頻處理單元根據(jù)預(yù)先設(shè)定的目標時鐘周期,將待監(jiān)控的時鐘周期調(diào)頻至第一時鐘周期,以及將參考時鐘的時鐘周期調(diào)頻至第二時鐘周期,存儲單元在每一個調(diào)頻處理單元獲取的第一時鐘周期時向存儲空間中存入至少一個校驗數(shù)據(jù),是為了讀取單元在每一個調(diào)頻處理單元獲取的第二時鐘周期從存儲空間中讀取較先存儲的至少一個校驗數(shù)據(jù),由于存儲空間的容量有限,當?shù)谝粫r鐘周期與第二時鐘周期不同時,會導(dǎo)致存儲空間中的校驗數(shù)據(jù)溢出或校驗數(shù)據(jù)不存在,使得從存儲空間中讀取出的校驗數(shù)據(jù)產(chǎn)生相對應(yīng)的變化。因此,判斷單元可以通過讀取單元從存儲空間中讀取到的校驗數(shù)據(jù),來確定第一時鐘周期和第二時鐘周期是否相同,從而可以確定待監(jiān)控時鐘是否異常,實現(xiàn)對系統(tǒng)時鐘進行監(jiān)控。
本發(fā)明各個實施例至少具有如下有益效果:
1、在本發(fā)明實施例中,為了待監(jiān)控時鐘和參考時鐘的時鐘周期有可比性,所以根據(jù)預(yù)先設(shè)定的目標時鐘周期,將待監(jiān)控的時鐘周期調(diào)頻至第一時鐘周期,以及將參考時鐘的時鐘周期調(diào)頻至第二時鐘周期,在每一個第一時鐘周期時向存儲空間中存入至少一個校驗數(shù)據(jù),是為了在每一個第二時鐘周期從存儲空間中讀取較先存儲的至少一個校驗數(shù)據(jù),由于存儲空間的容量有限,當?shù)谝粫r鐘周期與第二時鐘周期不同時,會導(dǎo)致存儲空間中的校驗數(shù)據(jù)溢出或校驗數(shù)據(jù)不存在,使得從存儲空間中讀取出的校驗數(shù)據(jù)產(chǎn)生相對應(yīng)的變化。因此,可以通過從存儲空間中讀取到的校驗數(shù)據(jù),來確定第一時鐘周期和第二時鐘周期是否相同,從而可以確定待監(jiān)控時鐘是否異常,實現(xiàn)對系統(tǒng)時鐘進行監(jiān)控。
2、本發(fā)明實施例中,方式一提供的確定待監(jiān)控時鐘是否異常的方法,是以在連續(xù)兩個第二時鐘周期讀取到的兩個校驗數(shù)據(jù)為對象,當連續(xù)讀取到的兩個校驗數(shù)據(jù)不符合兩個校驗數(shù)據(jù)對應(yīng)的關(guān)聯(lián)關(guān)系,可能由于向存儲空間存儲校驗數(shù)據(jù)的速率大于從存儲空間讀取校驗數(shù)據(jù)的速率,導(dǎo)致存儲空間中未被讀取的校驗數(shù)據(jù)已經(jīng)被覆蓋,使得連續(xù)讀取到的兩個校驗數(shù)據(jù)不符合對應(yīng)的關(guān)聯(lián)關(guān)系,也可能由于向存儲空間存儲校驗數(shù)據(jù)的速率小于從存儲空間讀取校驗數(shù)據(jù)的速率,導(dǎo)致存儲空間中的校驗數(shù)據(jù)被讀空而讀取到特定數(shù)據(jù),從而使得連續(xù)讀取到的兩個校驗數(shù)據(jù)不符合對應(yīng)的關(guān)聯(lián)關(guān)系,而向存儲空間中存儲校驗數(shù)據(jù)的速率由待監(jiān)控時鐘的實際時鐘周期決定,因此,當連續(xù)讀取到的兩個校驗數(shù)據(jù)與兩個校驗數(shù)據(jù)對應(yīng)的關(guān)聯(lián)關(guān)系不符時,可以判定待監(jiān)控時鐘發(fā)生異常。
3、在本發(fā)明實施例中,方式二提供的確定待監(jiān)控時鐘是否異常的方法,是以每發(fā)生兩次校驗數(shù)據(jù)不符合對應(yīng)的關(guān)聯(lián)關(guān)系為對象,當?shù)谝淮芜B續(xù)讀取到的兩個校驗數(shù)據(jù)不符合對應(yīng)的關(guān)聯(lián)關(guān)系時,不立即確定待監(jiān)控時鐘發(fā)生異常而是記錄校驗數(shù)據(jù)發(fā)生異常的時間,是由于在待監(jiān)控時鐘向存儲空間存儲校驗數(shù)據(jù)的速率與從存儲空間中讀取校驗數(shù)據(jù)的速率有微小的偏差,當微小的偏差經(jīng)過長時間的累積后,必然會出現(xiàn)一次從存儲空間連續(xù)讀取到的校驗數(shù)據(jù)不符合對應(yīng)的關(guān)聯(lián)關(guān)系的情況,這可能是待監(jiān)控時鐘的固有偏差;繼續(xù)確定并記錄下一次連續(xù)讀取到的兩個校驗數(shù)據(jù)不符合對應(yīng)的關(guān)聯(lián)關(guān)系的時間,在確定兩次校驗數(shù)據(jù)發(fā)生異常之后,確定兩次校驗數(shù)據(jù)發(fā)生異常的時間間隔是否小于預(yù)設(shè)的時長閾值,如果兩次異常發(fā)生的時間間隔小于時長閾值,說明待監(jiān)控時鐘的實際時鐘周期與標準時鐘周期存在較大的差異,確定待監(jiān)控時鐘異常;如果兩次異常發(fā)生的時間差大于時長閾值,說明待監(jiān)控時鐘需要經(jīng)過較長的時間累計才會出現(xiàn)一次異常,此時可以判定待監(jiān)控時鐘是正常的。
4、在本發(fā)明實施例中,在本發(fā)明一實施例中,在確定并記錄一次校驗數(shù)據(jù)發(fā)生異常之后,不是直接發(fā)出報警信息,也不是繼續(xù)確定并記錄下一次校驗數(shù)據(jù)發(fā)生異常的時間,而是暫停不小于第二時鐘周期的緩沖時長從存儲空間中讀取校驗數(shù)據(jù),此做法的目的是避免因為向存儲空間中存儲校驗數(shù)據(jù)的速率與從存儲空間中讀取校驗數(shù)據(jù)的速率有微小的偏差,所導(dǎo)致的一次從存儲空間連續(xù)讀取到的兩個校驗數(shù)據(jù)不符合對應(yīng)的關(guān)聯(lián)關(guān)系而確定待監(jiān)控時鐘發(fā)生異常的情況。
5、在本發(fā)明實施例中,所確定的第一調(diào)頻參數(shù)等于預(yù)設(shè)的目標時鐘周期和待監(jiān)控時鐘的標準時鐘周期的比值,所確定的第二調(diào)頻參數(shù)等于預(yù)設(shè)的目標時鐘周期和參考時鐘的時鐘周期的比值,利用第一調(diào)頻參數(shù)對待監(jiān)控時鐘的實際時鐘周期進行縮放,即可獲得第一時鐘周期,再利用第二調(diào)頻參數(shù)對參考時鐘的時鐘周期進行縮放,即可獲得第二時鐘周期,確定第一調(diào)頻參數(shù)和第二調(diào)頻參數(shù),是為了將待監(jiān)控時鐘的實際時鐘周期縮放后獲得的第一時鐘周期與將參考時鐘的時鐘周期縮放后獲得的第二時鐘周期由可比性。
6、在本發(fā)明實施例中,在本發(fā)明實施例中,在待監(jiān)控時鐘向存儲空間存儲至少一個校驗數(shù)據(jù)之前,向存儲空間中存入至少一個符合數(shù)據(jù)創(chuàng)建規(guī)則的緩沖數(shù)據(jù),存儲緩沖數(shù)據(jù)的操作可以避免系統(tǒng)在剛開始工作時,還未執(zhí)行向存儲空間存儲校驗數(shù)據(jù)的操作就已經(jīng)執(zhí)行從存儲空間讀取校驗數(shù)據(jù)的操作,而導(dǎo)致的從存儲空間中讀取不到校驗數(shù)據(jù)確定待監(jiān)控時鐘發(fā)生異常的情況。
需要說明的是,在本文中,諸如第一和第二之類的關(guān)系術(shù)語僅僅用來將一個實體或者操作與另一個實體或操作區(qū)分開來,而不一定要求或者暗示這些實體或操作之間存在任何這種實際的關(guān)系或者順序。而且,術(shù)語“包括”、“包含”或者其任何其他變體意在涵蓋非排他性的包含,從而使得包括一系列要素的過程、方法、物品或者設(shè)備不僅包括那些要素,而且還包括沒有明確列出的其他要素,或者是還包括為這種過程、方法、物品或者設(shè)備所固有的要素。在沒有更多限制的情況下,由語句“包括一個〃····〃”限定的要素,并不排除在包括所述要素的過程、方法、物品或者設(shè)備中還存在另外的相同因素。
本領(lǐng)域普通技術(shù)人員可以理解:實現(xiàn)上述方法實施例的全部或部分步驟可以通過程序指令相關(guān)的硬件來完成,前述的程序可以存儲在計算機可讀取的存儲介質(zhì)中,該程序在執(zhí)行時,執(zhí)行包括上述方法實施例的步驟;而前述的存儲介質(zhì)包括:rom、ram、磁碟或者光盤等各種可以存儲程序代碼的介質(zhì)中。
最后需要說明的是:以上所述僅為本發(fā)明的較佳實施例,僅用于說明本發(fā)明的技術(shù)方案,并非用于限定本發(fā)明的保護范圍。凡在本發(fā)明的精神和原則之內(nèi)所做的任何修改、等同替換、改進等,均包含在本發(fā)明的保護范圍內(nèi)。