專利名稱:用于時鐘歪斜和偏移估計的方法及系統的制作方法
技術領域:
此發明一般涉及計算機系統,并且,尤其涉及計算機系統中的時間同步。更具體地,本發明涉及用于計算機系統中的兩個時鐘之間的時鐘偏移和歪斜(skew)的估計的方法和系統。
背景技術:
現代計算機為了包括確保很多操作以正確順序或同步發生的很多目的而使用時鐘。由此,時鐘自身緊密同步地工作是重要的。典型地,兩個時鐘經常不處于完美的同步,并且,在時鐘之間存在定時差異。另外,兩個時鐘可能不在嚴格相同的頻率下工作,使得時鐘之間的定時差隨時間而改變。時鐘之間的定時差的這種改變被稱為時鐘歪斜。
很多計算機定時協議需要諸如兩個時鐘之間的歪斜和偏移的估計的信息。例如,這兩個時鐘可為本地時鐘及其源時鐘。這些估計的精度對于協議的同步是至關重要的。例如,協議可能需要計算出的兩個服務器之間的日期時間(TOD)偏移包括計算的精度的估計。這被稱為時鐘偏移離差(dispersion),并約束了計算的最壞情況誤差。盡管測量時鐘歪斜的方法和系統是已知的,但這些已知過程趨向于相當復雜、在特定情形下不可靠、或所述兩者。
發明內容
此發明的目的在于,提供用于估計計算機系統中的兩個時鐘之間的時鐘歪斜和偏移的改進的過程。
此發明的另一個目的在于,使用正向延遲和反向延遲兩者來估計計算機系統中兩個時鐘之間的歪斜和偏移。
通過用于估計計算機系統中第一和第二時鐘之間的歪斜和偏移的方法和系統來達到這些和其它目的。該方法包括以下步驟獲得表示第一和第二時鐘之間的正向延遲的第一組數據值;以及獲得表示第一和第二時鐘之間的負的反向延遲的第二組數據值。該方法還包括以下步驟為所述第一組數據值形成下凸包(lower convex hull);以及為所述第二組數據值,在下凸包之下形成上凸包(upper convex hull)。使用那些凸包來估計所述第一和第二時鐘之間的時鐘偏移和歪斜。
在優選實施例中,通過在第一和第二凸包之間形成時鐘線、識別對于第一和第二凸包之間的此時鐘線的最佳位置、并使用所述最佳位置來估計所述第一和第二時鐘之間的時鐘偏移和歪斜,而進行此估計。
通過考慮參照指明并示出本發明的優選實施例的附圖而給出的以下詳細描述,本發明的其它好處和優點將變得清楚。
圖1圖解了可實現本發明的數據處理系統的網絡。
圖2圖解了圖1的網絡中的時鐘機器B和時鐘服務器A之間的分組交換。
圖3示出了時鐘在特定時間點上調節其偏移的延遲測量的圖。
圖4是考慮正向和反向時間延遲兩者的圖。
圖5在同一圖上示出了正向和負的反向延遲線兩者。
圖6以反轉次序示出了反向延遲線的圖。
圖7圖解了用于估計計算機系統中的第一和第二時鐘之間的時鐘歪斜和偏移的過程。
具體實施例方式
圖1圖解了計算機網絡100,其包括服務器102、客戶機104、以及數據存儲單元106。網絡100還包括用于在網絡的裝置之間傳送數據的數據連接110。例如,網絡100可為因特網,但還可為內聯網、局域網、廣域網、點到點鏈路、或其它網絡。
可在網絡100中使用任何適用的服務器102。并且,例如,網絡100的客戶機104可為個人計算機、膝上型計算機、服務器、工作站、大型計算機、或能夠在網絡上通信的其它裝置。類似地,連接器110可包括大范圍的適用裝置,如導線、光纖、或無線通信鏈路。
如上所述,包括服務器定時協議(STP)的各種計算機定時協議需要有關計算機系統或網絡(如網絡100)中的兩個時鐘之間的歪斜和偏移有關的信息。本發明針對于確定時鐘歪斜和偏移估計。
首先,對圖解了本地機器B和時鐘服務器A之間的分組交換的圖2進行參照。根據B的時鐘,分組在時刻T1離開B。根據A的時鐘,分組在時刻T2到達A。根據A的時鐘,機器A隨后在時刻T3發送答復分組。根據B的時鐘,答復消息在時刻T4到達B。通過有規律地發出此類交換消息、并記錄T1、T2、T3、T4時間戳的順序,可獲得機器B的時鐘和機器A的時鐘之間的相對偏移和速度差的估計。
已知這樣的過程,即根據T1、T2、T3、T4時間戳的順序計算正向和反向延遲(FD和BD)的順序。例如,在美國專利申請09/920,138和10/157,610、以及在美國專利6,661,810中描述了這樣的過程。具體地,FD=T2-T1,BD=T4-T3。
不妨使用T1(i)、T2(i)、T3(i)、T4(i)、FD(i)、以及BD(i)來表示第i個分組交換的時間戳和延遲。現有技術在二維平面中構造了兩組延遲點,即{(T1(i),FD(i))|i=1,...}以及{(T1(i),BD(i))|i=1,...}。美國專利6,661,810獨立地考慮兩組點,這可能不能象本發明這樣產生精確的結果。美國專利申請09/920,138和10/157,610結合地考慮兩組點,這產生比美國專利6,661,810更佳的精度。
具體地,美國專利申請10/157,610解決了尋找包括兩個分離的線段的用于延遲數據的兩條平行斜線(skew line)的問題。其適用于時鐘在特定時間點調節其偏移的情況。在調節之前和之后,時鐘在相同的速度下運行。因此,用于調節之前和之后的數據的斜線是平行的。圖3示出了此情形的例子。
參照圖4,如果考慮正向和反向延遲兩者,則可以看出,基底的斜線是對稱的、或為鏡像。
圖5在同一圖上示出了正向和負的反向延遲線兩者。可以觀察到,斜線變為平行。兩條平行斜線之間的距離是兩個機器之間的往返延遲的估計。問題在于,如何找到平行斜線的估計。
找到最佳對平行斜線的一種方式是如圖6所示,以反轉次序繪出反向延遲線。可使用任意適用方法來找到最佳斜線。例如,在美國專利申請第10/157,610號中公開了一種適用方法。
本發明使用對稱凸包算法(symmetric convex hull algorithm)來估計時鐘歪斜和偏移。圖7是此算法的結果的例子。中間的線302是相對時鐘線的最佳估計。此線的截距和斜率提供了兩個時鐘之間的相對偏移和歪斜的估計。相對時鐘線可在頂部的正向延遲包304和底部的負的反向延遲包306之間隨意移動。
優選算法變為構造用于正向延遲的下凸包、以及用于負的反向延遲的上凸包。
從左端開始,在兩個凸包之間逆時針地旋轉一對平行線。
在旋轉期間,將平行線放置為盡可能遠地分開。兩個平行線接觸兩個凸包的頂點。
在旋轉過程中,在頂部的(正向延遲)包上的接觸頂點從左向右移動。在底部的(負的反向延遲)包上的接觸頂點從右向左移動。
當頂部的接觸頂點移動到底部的接觸頂點的右邊時,獲得最佳平行斜線。
如對本領域的技術人員來說將顯而易見的,本發明可以硬件、軟件、或硬件和軟件的組合的方式實現。任何種類的計算機/服務器系統(或適于進行這里描述的方法的其它設備)均是適用的。硬件和軟件的典型組合可為具有計算機程序的通用計算機系統,當加載并執行計算機程序時,執行這里描述的相應的方法。可替換地,可利用包含用于進行本發明的一個或更多功能任務的專用硬件的專用計算機。
還可將本發明嵌入在計算機程序產品中,該計算機程序產品包括允許實現這里描述的方法的所有相應特征,并且,當在計算機系統中加載時,該計算機程序產品能夠執行這些方法。本上下文中的計算機程序、軟件程序、程序、軟件意味著使具有信息處理能力的系統直接執行特定功能、或在以下過程中的任一個或全部之后執行特定功能的一組指令的任何語言的任何表達式、代碼或符號(a)轉換為另一種語言、代碼或符號;以及/或者(b)以不同的物質形式再現。
顯然,在這里公開的發明被良好地計算用來滿足上述目的,但將理解,本領域的技術人員可設計眾多修改和實施例,并且,意圖使所附權利要求涵蓋落入在本發明的真實精神和范圍內的所有這樣的修改和實施例。
相關申請的交叉引用此申請涉及與此一起提交的共同未決申請“時鐘濾波器離差”(代理人卷號POU920050125US1);與此一起提交的申請“用來計算時鐘偏移和歪斜的T4時間戳的使用”(代理人卷號POU920050127US1);以及與此一起提交的申請“濾波器轉折點檢測”(代理人卷號POU920050128US1)。這里,通過引用而將上面提到的申請的公開的全部內容合并于此。
權利要求
1.一種用于估計計算機系統中的第一和第二時鐘之間的時鐘歪斜和偏移的方法,該方法包括以下步驟獲得表示第一和第二時鐘之間的正向延遲的第一組數據值;獲得表示第一和第二時鐘之間的負的反向延遲的第二組數據值;為所述第一組數據值形成下凸包;為所述第二組數據值,在下凸包之下形成上凸包;以及使用所述凸包來估計所述第一和第二時鐘之間的時鐘偏移和歪斜。
2.如權利要求1所述的方法,其中,使用步驟包括以下步驟在所述第一和第二凸包之間形成時鐘線;識別對于所述第一和第二凸包之間的所述時鐘線的最佳位置;以及使用所述最佳位置來估計所述第一和第二時鐘之間的時鐘偏移和歪斜。
3.如權利要求2所述的方法,還包括以下步驟識別對于所述上和下凸包之間的所述時鐘線的上最大位置;識別對于所述上和下凸包之間的所述時鐘線的下最小位置;以及使用所述上最大位置和下最小位置來估計所述第一和第二時鐘之間的時鐘偏移和所述歪斜。
4.如權利要求3所述的方法,其中,識別所述上最大位置的步驟包括以下步驟提供上和下包之間的第一線;以及從所述包的第一端開始,旋轉上和下凸包之間的所述第一線。
5.如權利要求4所述的方法,其中,識別所述下最小位置的步驟包括以下步驟在所述上和下包之間提供與所述第一線平行的第二線;以及從所述包的所述第一端開始,旋轉上和下包之間的所述第二線。
6.如權利要求5所述的方法,其中提供第一線的步驟包括以下步驟在所述第一線接觸所述上凸包的情況下定位所述第一線;以及提供第二線的步驟包括以下步驟在所述第二線接觸所述下凸包的情況下定位所述第二線。
7.一種用于估計計算機系統中第一和第二時鐘之間的時鐘歪斜和偏移的估計系統,該估計系統包括表示第一和第二時鐘之間的正向延遲的第一組數據值;表示第一和第二時鐘之間的負的反向延遲的第二組數據值;用于為所述第一組數據值形成下凸包、并為所述第二組數據值在下凸包之下形成上凸包的部件;以及用于使用所述凸包來估計所述第一和第二時鐘之間的時鐘偏移和歪斜的部件。
8.如權利要求7所述的估計系統,其中,使用部件包括用于在所述第一和第二凸包之間形成時鐘線的部件;用于識別對于所述第一和第二凸包之間的所述時鐘線的最佳位置的部件;以及用于使用所述最佳位置來估計所述第一和第二時鐘之間的時鐘偏移和歪斜的部件。
9.如權利要求8所述的估計系統,還包括用于識別對于所述上和下凸包之間的所述時鐘線的上最大位置的部件;用于識別對于所述上和下凸包之間的所述時鐘線的下最小位置的部件;以及用于使用所述上最大位置和下最小位置來估計所述第一和第二時鐘之間的時鐘偏移和所述歪斜的部件。
10.如權利要求9所述的估計系統,其中,用于識別所述上最大位置的部件包括用于提供上和下包之間的第一線的部件;用于從所述包的第一端開始、旋轉上和下凸包之間的所述第一線的部件。
11.如權利要求10所述的估計系統,其中,用于識別所述下最小位置的部件包括用于在所述上和下包之間提供與所述第一線平行的第二線的部件;以及用于從所述包的所述第一端開始、旋轉上和下包之間的所述第二線的部件。
12.如權利要求11所述的估計系統,其中用于提供第一線的部件包括用于在所述第一線接觸所述上凸包的情況下定位所述第一線的部件;以及用于提供第二線的部件包括用于在所述第二線接觸所述下凸包的情況下定位所述第二線的部件。
13.一種可由機器讀取的計算機存儲裝置,其有形地實現可由機器執行的指令程序,以執行于估計計算機系統中的第一和第二時鐘之間的時鐘歪斜和偏移的方法步驟,所述方法是根據前述方法權利要求中的任一個。
全文摘要
公開了用于估計計算機系統中兩個時鐘之間的歪斜和偏移的方法和系統。該方法包括以下步驟獲得表示第一和第二時鐘之間的正向延遲的第一組數據值;以及獲得表示第一和第二時鐘之間的負的反向延遲的第二組數據值。該方法還包括以下步驟為所述第一組數據值形成下凸包;以及為所述第二組數據值在下凸包之上形成上凸包。使用那些凸包來估計所述第一和第二時鐘之間的時鐘偏移和歪斜。在優選實施例中,通過識別第一和第二凸包之間的最佳時鐘線來進行此估計。
文檔編號H04L12/56GK1929363SQ20061012133
公開日2007年3月14日 申請日期2006年8月21日 優先權日2005年9月9日
發明者張立, 米歇爾·H·T·哈克, 斯科特·M·卡爾森 申請人:國際商業機器公司