專利名稱:時鐘管理系統(tǒng)及方法
技術(shù)領(lǐng)域:
本發(fā)明涉及一種時鐘管理系統(tǒng)及方法,尤其涉及一種交換機時鐘管理系統(tǒng)及方法。
背景技術(shù):
眾所周知,個人計算機(甚至于昂貴的工作站)主機板上所使用的實時時鐘芯片總是不夠準確。為此,人們在計算機設備(包括個人計算機、工作站以及具有處理器之網(wǎng)絡設備等)的發(fā)展進程中開發(fā)了多種技術(shù)以獲得精確的計時方式。1999年3月9日公告的美國第5,881,271號專利提供有一種時鐘管理系統(tǒng)及方法。該時鐘管理系統(tǒng)包括有第一時鐘輸入、時鐘輸出以及可編程延遲裝置。該第一時鐘輸入載有具第一時鐘循環(huán)的時鐘輸入信號。該時鐘輸出載有具有與第一時鐘循環(huán)同步的循環(huán)輸出時鐘信號。該可編程延遲裝置用于接收輸入時鐘信號以及用于產(chǎn)生輸出時鐘信號,所產(chǎn)生的輸出時鐘信號至少比輸入時鐘信號延遲一個可編程延遲時間。該可編程延遲使得該輸出時鐘信號與該輸入時鐘信號同步。該時鐘管理系統(tǒng)的好處之一在于能夠生成與處理器時鐘相同步的時鐘信號。
上述現(xiàn)有的時鐘管理系統(tǒng)及方法雖然能夠生成與處理器時鐘相同步的時鐘信號,但是沒有提供一種解決方案來可以從不同的時間信息源獲取時間信息,并依不同的時間需求,比如在夏令時期間(Daylight Saving Time)來自動改變所輸出的時間。當該時鐘輸出失效以后,用戶將無法獲得時鐘信號。因此需要一種系統(tǒng)及方法能夠從不同的時間源來獲得時間信息,并根據(jù)不同的時間需求提供不同的時間信息。
發(fā)明內(nèi)容為了解決上述問題,本發(fā)明提供了一種時鐘管理系統(tǒng)及方法,其可從不同的時間源獲取時間信息,即當一種時間源失去功效后,還可提供后備時間源獲取時間信息。
本發(fā)明還提供了一種時鐘管理系統(tǒng)及方法,其可根據(jù)不同的時間需求提供不同的時間信息。
為達成上述的發(fā)明目的,本發(fā)明提供的時鐘管理系統(tǒng)包括有一用戶接口、一時鐘管理器、一事件日志、一實時時鐘以及一CPU時鐘。該用戶接口在用戶及本發(fā)明時鐘管理系統(tǒng)之間提供了一個交互接口,主要用于從時鐘管理器中獲取當前的日期和時間,以及將用戶所設定的日期和時間傳送給時鐘管理器。時鐘管理器則基于閏年、月度范圍(小于等于12)、各月份的日期范圍(小于等于28、29、30或31)、以及時間范圍(小于24)等資料確定用戶所設定的日期和時間是否有效。事件日志用于從時鐘管理器中獲得當前的日期和時間,并在有事件發(fā)生時顯示該日期和時間。實時時鐘向時鐘管理器提供日期和時間。實時時鐘的寄存器中存儲有24小時制、以二進制編碼的十進制(Binary-CodedDecimal,BCD)格式的年、月、周、日、時、分和秒等時間資料。對閏年和各月天數(shù)變化的修正可由實時時鐘自動進行。CPU時鐘在本發(fā)明時鐘管理系統(tǒng)接通電源時開始計時,并將接通電源時的時間作為其缺省時間。CPU時鐘計數(shù)所生成的時間可用于仿真當前日期和時間。時鐘管理器還包括有一個日歷模塊以及一夏令時模塊。該日歷模塊用于檢查用戶所設定的日期和時間范圍是否有誤,并校正閏年及各月的天數(shù)。夏令時模塊用于在夏令時期間內(nèi)將時鐘向前撥一個小時。
本發(fā)明所提供的時鐘管理方法包括有如下步驟(i)請求當前的日期和時間;(ii)確定實時時鐘是否可用;(iii)如果實時時鐘可用,則讀取實時時鐘的時間信息以作為當前時間;或(iv)如果實時時鐘不可用,則讀取CPU時鐘的時間信息并轉(zhuǎn)換為當前時間;(v)確定當前是否處于夏令時期間內(nèi);(vi)如果當前處于夏令時期間,則將所獲取之當前時間進行調(diào)整;以及(vii)返回當前時間至用戶接口。
采用本發(fā)明之時鐘管理系統(tǒng)及方法,可從兩種不同的時間來源獲取時間信息,當一種時間源失效時,可從另一種時間源獲得時間信息,保證了時間信息提供的連續(xù)性,并可在夏令時期間內(nèi)自動調(diào)整輸出的時間。
圖1是本發(fā)明時鐘管理系統(tǒng)的架構(gòu)圖。
圖2是圖1中的時鐘管理器根據(jù)CPU時鐘仿真當前時間的時間換算表。
圖3是本發(fā)明時鐘管理方法的流程圖。
具體實施方式圖1所示為本發(fā)明時鐘管理系統(tǒng)100的架構(gòu)圖。在本發(fā)明的具體實施方式
中,該時鐘管理系統(tǒng)1 00包括有一用戶接口101、一時鐘管理器102、一事件日志103、一實時時鐘104以及一CPU時鐘105。該用戶接口101可以是命令行接口(Command Line Interface,CLI),亦可為網(wǎng)絡瀏覽器等人機接口,其在用戶及本發(fā)明時鐘管理系統(tǒng)100之間提供一個交互接口。用戶接口101主要用于從時鐘管理器1 02中獲取當前的日期和時間,以及將用戶所設定的日期和時間傳送給時鐘管理器102。時鐘管理器102則基于閏年、月度范圍(小于等于12)、各月之日期范圍(小于等于28、29、30或31)、以及時間范圍(小于24)等資料確定用戶所設定的日期和時間是否有效。事件日志103則用于從時鐘管理器102中獲得當前的日期和時間,并在有事件發(fā)生時顯示該日期和時間。實時時鐘104為本發(fā)明時鐘管理系統(tǒng)100提供日期和時間。實時時鐘104之寄存器(沒有畫出)中存儲有24小時制、以二進制編碼的十進制(Binary-Coded Decimal,BCD)格式的年、月、周、日、時、分和秒等時間資料。對閏年和各月天數(shù)變化的修正可由實時時鐘104自動進行。CPU時鐘105在本發(fā)明之時鐘管理系統(tǒng)100接通電源時開始計時,并將接通電源時的時間作為其缺省時間Tf。CPU時鐘105計數(shù)所生成的時間可用于仿真當前日期和時間。
時鐘管理器102定義了一個標志(沒有畫出),用于表示實時時鐘104是否可用。當該標志表示實時時鐘104可用時,時鐘管理器102從實時時鐘104中獲取當前的日期和時間,并且在用戶通過用戶接口101設定時間時,將所設定的時間存儲到實時時鐘104中。當該標志表示實時時鐘104不可用時,時鐘管理器102將攫取CPU時鐘105計數(shù)所生成的時間來仿真當前時間。
時鐘管理器102還包括有一個日歷模塊1021以及一夏令時期間(Daylight-Saving Time,DST)模塊1022。該日歷模塊1021用于檢查用戶所設定的日期和時間范圍是否有誤,并校正閏年及各月的天數(shù)。夏令時模塊1022用于在夏令時期間內(nèi)將時鐘管理器102所獲得的時間再加上一個小時。當夏令時模塊1022致能(Enabled)時,其在用戶接口101以及事件日志103請求日期和時間時,將時鐘管理器102從實時時鐘104所獲得的時間(或基于CPU時鐘105仿真而得的時間)進行調(diào)整,即將所獲得的時間加上一個小時。時鐘管理器105向用戶返回的時間即為該調(diào)整過的時間。夏令時模塊1022之致能與除能(Disabled)由用戶通過用戶接口101進行設定。
圖2所示為時鐘管理器102為響應用戶接口101或者事件日志103的請求而基于CPU時鐘105仿真當前時間的時間換算表200。其中,當前時間是指本發(fā)明時鐘管理系統(tǒng)100發(fā)送給用戶的時間。觸發(fā)事件是指導致時鐘管理器102向用戶發(fā)送時間的事件。其中,第一、二、三......次表示用戶每次向本發(fā)明時鐘管理系統(tǒng)查詢當前時間的事件,設定是指用戶人工設定時間的事件,溢出(Overflow)是指CPU時鐘105因其最大計數(shù)值的限制而導致溢出的事件。在本發(fā)明的具體實施方式
中,CPU時鐘105的寄存器是以32位表示,其計數(shù)單位為10毫秒,因此其最大計數(shù)值為2的32次方即4294967295,最大可計數(shù)時間Tmax為42949672950毫秒。當CPU時鐘105的寄存器計數(shù)超過4294967295,亦即計時超過42949672.950秒時便會溢出,亦即每經(jīng)過497天左右的時間CPU時鐘105會溢出一次。存儲的時間是指時鐘管理器102在每次觸發(fā)事件后存儲的時間。
以下的說明是基于時鐘管理器102中的標志表示實時時鐘104不可用,需利用CPU時鐘105來仿真當前時間的假設來進行的。當用戶第一次通過用戶接口101向時鐘管理器102請求當前時間時,時鐘管理器102發(fā)送給用戶接口101的時間T1為CPU時鐘105的缺省時間Tf與CPU時鐘105計數(shù)所生成的時間TCPU1之和。同時時鐘管理器102將所發(fā)送的時間T1與當前CPU時鐘105計數(shù)所生成的時間TCPU1存儲起來。在以后每次所傳送的時間Ti為缺省時間Tf與該次CPU時鐘105所計數(shù)的時間TCPUi之和,或者為該次CPU時鐘105所計數(shù)的時間TCPUi與上次CPU時鐘105所計數(shù)的時間CPU時間TCPUi-1之差、再與上次所存儲的當前時間Ti-1之和。當用戶通過用戶接口101對CPU時鐘105進行設定時,時鐘管理器102傳送給用戶接口101的時間Tj則為該設定的時間Ts。當CPU時鐘105溢出后,時鐘管理器102第一次傳送給用戶接口101的當前時間Tm為前一次所存儲的時間Tm-1加上CPU時鐘105可計數(shù)的最大時間Tmax之和,再減去溢出前CPU時鐘105所顯示的最后一個時間值TCPUm-1,最后加上當前CPU時鐘105所計數(shù)的時間TCPUm之值。設定及溢出后第二、三、......次時鐘管理器102所傳送給用戶接口101的時間算法則因循時間Ti之算法。
圖3所示為本發(fā)明時鐘管理方法的流程圖。當用戶通過用戶接口101向時鐘管理器102請求當前時間時,時鐘管理器102查詢其所定義的標志以確定實時時鐘104是否可用(步驟S301)。如果實時時鐘104可用,時鐘管理器102讀取實時時鐘104中的時間以作為當前時間(步驟S302)。如果實時時鐘104不可用,時鐘管理器102讀取CPU時鐘104計數(shù)所生成的時間,并依據(jù)前述算法將其轉(zhuǎn)換為當前時間(步驟S303)。夏令時模塊1022依據(jù)所獲得的時間確定當前是否處于夏令時期間(步驟S304)。如果當前不處于夏令時期間,時鐘管理器102直接向用戶接口101返回其所獲得的當前時間(步驟S306)。如果當前是處于夏令時,夏令時模塊1022則調(diào)整時鐘管理器102所獲得的當前時間,即將該當前時間增加一個小時(步驟S305)。然后時鐘管理器102將上述調(diào)整過的時間返回給用戶接口101(步驟S306)。
權(quán)利要求
1.一種時鐘管理系統(tǒng),其特征在于包括有一用戶接口、一時鐘管理器、一實時時鐘以及一CPU時鐘,其中用戶接口用于從時鐘管理器中獲取當前的日期和時間,以及將用戶所設定的日期和時間傳送給時鐘管理器;時鐘管理器用于確定用戶所設定的日期及時間是否有效,以及從實時時鐘獲得當前的日期及時間,或根據(jù)CPU時鐘所提供的資料仿真當前時間;實時時鐘用于向時鐘管理器提供當前的日期和時間;CPU時鐘用于在時鐘管理系統(tǒng)通電后從一缺省時間開始計時,所計時間可用于仿真當前日期和時間。
2.如權(quán)利要求1所述的時鐘管理系統(tǒng),更包括有一事件日志,用于從時鐘管理器中獲得當前的日期和時間,并在有事件發(fā)生時顯示該日期和時間。
3.如權(quán)利要求1所述的時鐘管理系統(tǒng),其特征在于時鐘管理器包括有一個表示實時時鐘是否可用的標志。
4.如權(quán)利要求1所述的時鐘管理系統(tǒng),其特征在于時鐘管理器更包括有一日歷模塊,用于檢查用戶所設定的日期和時間范圍是否有誤,并校正閏年及各月的天數(shù)。
5.如權(quán)利要求1所述的時鐘管理系統(tǒng),其特征在于時鐘管理器更包括有一夏令時模塊,用于在夏令時期間內(nèi)調(diào)整時鐘管理器所獲取的當前時間。
6.如權(quán)利要求1所述的時鐘管理系統(tǒng),其特征在于時鐘管理器是基于閏年、月度范圍、各月份的日期范圍、以及時間范圍資料來確定用戶所設定的日期及時間是否有效。
7.一種時鐘管理方法,其特征在于該方法包括如下步驟(a)請求當前的日期和時間;(b)確定實時時鐘是否可用;(c)如果實時時鐘可用,則讀取實時時鐘的時間信息以作為當前時間;或(d)如果實時時鐘不可用,則讀取CPU時鐘的時間信息并轉(zhuǎn)換為當前時間;(e)返回當前時間至用戶接口。
8.如權(quán)利要求7所述的時鐘管理方法,其特征在于步驟(d)更包括有存儲所讀取的CPU時鐘時間以及所轉(zhuǎn)換的當前時間的步驟。
9.如權(quán)利要求7或8所述的時鐘管理方法,其特征在于所轉(zhuǎn)換的當前時間為所讀取的CPU時鐘時間與CPU時鐘的缺省時間之和。
10.如權(quán)利要求7或8所述的時鐘管理方法,其特征在于當CPU時鐘被設定后,其所轉(zhuǎn)換的當前時間為設定后的時間。
11.如權(quán)利要求7或8所述的時鐘管理方法,其特征在于當CPU時鐘溢出后,所轉(zhuǎn)換的時間為CPU時鐘可計數(shù)的最大時間值與上次所讀取的CPU時鐘時間之差值,再與當前所讀取的CPU時鐘時間以及上次所存儲的時間之和。
全文摘要
一種時鐘管理系統(tǒng)包括一用戶接口、一時鐘管理器、一實時時鐘以及一CPU時鐘。該用戶接口用于從時鐘管理器中獲取當前的日期和時間,以及供用戶設定本發(fā)明時鐘管理系統(tǒng)的日期和時間。時鐘管理器用于確定用戶所設定的日期和時間是否有效。實時時鐘向時鐘管理器提供日期和時間,對閏年和各月天數(shù)變化的修正可由實時時鐘自動進行。CPU時鐘可從一缺省時間點開始計時,其計數(shù)所生成的時間可用于在實時時鐘失效時供時鐘管理器仿真當前的日期和時間。采用本發(fā)明之時鐘管理系統(tǒng)及方法,可從不同的時間來源獲取時間信息,保證了時間信息提供的連續(xù)性。
文檔編號G06F1/10GK1661513SQ200410015598
公開日2005年8月31日 申請日期2004年2月28日 優(yōu)先權(quán)日2004年2月28日
發(fā)明者陳俊安 申請人:鴻富錦精密工業(yè)(深圳)有限公司, 鴻海精密工業(yè)股份有限公司