專利名稱:用于在第一和第二計算機(jī)上同步計時時鐘的系統(tǒng)和方法
技術(shù)領(lǐng)域:
本發(fā)明涉及一種用于在一個聯(lián)網(wǎng)系統(tǒng)中的第一和第二計算機(jī)上同步計時時鐘的系統(tǒng)、方法和產(chǎn)品。
背景技術(shù):
聯(lián)網(wǎng)系統(tǒng)中的計算機(jī)服務(wù)器被配置來保持計時同步。計算機(jī)服務(wù)器利用計時同步來確定計算機(jī)服務(wù)器完成任務(wù)的時間順序。追蹤完成任務(wù)的順序?qū)τ谛迯?fù)例如被破壞的或丟失的文件是有用的。
為了獲得計時同步,計算機(jī)服務(wù)器互相交換由計時時鐘確定的時間標(biāo)記。這種方法的一個缺點,在于當(dāng)計算機(jī)接近最大處理能力來運(yùn)行其它任務(wù)時,從第一計算機(jī)中的計時時鐘訪問計時時間標(biāo)記值的第一計算機(jī)中的軟件程序,可能無法立即生成一個包含所述時間標(biāo)記值的報文。這樣,當(dāng)從第一計算機(jī)向第二計算機(jī)發(fā)送所述報文時,所述時間標(biāo)記值可能不能精確地表示發(fā)送所述報文的實際時間。而且,從第一計算機(jī)向第二計算機(jī)發(fā)送的所述報文的發(fā)送時間間隔可以變化。當(dāng)?shù)诙嬎銠C(jī)接收所述報文并試圖使它的計時時鐘與所述時間標(biāo)記值同步時,可能在第一計算機(jī)中的計時時鐘和第二計算機(jī)中的計時時鐘之間出現(xiàn)相對較大的時間差異。
因此,需要有一種系統(tǒng)和一種方法來提供在相互通信的計算機(jī)之間計時時鐘的改善的同步。
發(fā)明內(nèi)容
提供了一種依照典型的實施例,使分別在第一和第二計算機(jī)上的第一和第二計時時鐘同步的方法。第一計算機(jī)在一個第一網(wǎng)絡(luò)接口卡上有一個第三時鐘。第二計算機(jī)在一個第二網(wǎng)絡(luò)接口卡上有一個第四時鐘。第一和第二網(wǎng)絡(luò)接口卡經(jīng)由通信網(wǎng)絡(luò)而相互通信。所述方法包括生成一個有一個第一時間差異值和一個第二時間標(biāo)記值的第一報文,并從第一網(wǎng)絡(luò)接口卡發(fā)送所述第一報文。所述第一時間差異值對應(yīng)于在第一計時時鐘和第三時鐘之間的時間差異。所述第二時間標(biāo)記值對應(yīng)于當(dāng)從第一網(wǎng)絡(luò)接口卡發(fā)送所述第一報文時,由第一網(wǎng)絡(luò)接口卡上的第三時鐘確定的時間。所述方法進(jìn)一步包括在第二計算機(jī)的第二接口卡上接收所述第一報文。所述方法進(jìn)一步包括生成一個有所述第一時間差異值、所述第二時間標(biāo)記值、一個第三時間標(biāo)記值、一個第四時間差異值以及一個第五時間標(biāo)記值的第二報文,并從第二網(wǎng)絡(luò)接口卡發(fā)送所述第二報文。所述第三時間標(biāo)記值對應(yīng)于當(dāng)由第二網(wǎng)絡(luò)接口卡接收到所述第一報文時,由第二網(wǎng)絡(luò)接口卡上的第四時鐘確定的時間。所述第四時間差異值對應(yīng)于在第二計時時鐘和第四時鐘之間的時間差異。所述第五時間標(biāo)記值對應(yīng)于當(dāng)從第二網(wǎng)絡(luò)接口卡發(fā)送所述第二報文時,由第四時鐘確定的時間。所述方法進(jìn)一步包括在第一網(wǎng)絡(luò)接口卡上接收所述第二報文,并確定一個與所述第二報文相關(guān)的第六時間標(biāo)記值。所述第六時間標(biāo)記值對應(yīng)于當(dāng)由第一網(wǎng)絡(luò)接口卡接收到所述第二報文時,由第三時鐘確定的時間。所述方法進(jìn)一步包括根據(jù)第一時間差異值、第二時間標(biāo)記值、第三時間標(biāo)記值、第四時間差異值、第五時間標(biāo)記值以及第六時間標(biāo)記值,來確定一個對應(yīng)于在第一和第二計時時鐘之間的時間差異的第七時間差異值。
提供了一種依照另一典型實施例的聯(lián)網(wǎng)系統(tǒng)。所述聯(lián)網(wǎng)系統(tǒng)包括一個有一個第一網(wǎng)絡(luò)接口卡和一個第一計時時鐘的第一計算機(jī),以及一個有一個第二網(wǎng)絡(luò)接口卡和一個第二計時時鐘的第二計算機(jī)。第一網(wǎng)絡(luò)接口卡有一個第三時鐘,并且第二網(wǎng)絡(luò)接口卡有一個第四時鐘。第一計算機(jī)被配置來生成一個有一個第一時間差異值和一個第二時間標(biāo)記值的第一報文,并從第一網(wǎng)絡(luò)接口卡發(fā)送所述第一報文。所述第一時間差異值對應(yīng)于在第一計時時鐘和第三時鐘之間的時間差異。所述第二時間標(biāo)記值對應(yīng)于當(dāng)從第一網(wǎng)絡(luò)接口卡發(fā)送所述第一報文時,由第一網(wǎng)絡(luò)接口卡上的第三時鐘確定的時間。第二計算機(jī)被配置來在第二接口卡上接收所述第一報文。第二計算機(jī)進(jìn)一步被配置來生成一個有所述第一時間差異值、所述第二時間標(biāo)記值、一個第三時間標(biāo)記值、一個第四時間差異值以及一個第五時間標(biāo)記值的第二報文,并從第二網(wǎng)絡(luò)接口卡發(fā)送所述第二報文。所述第三時間標(biāo)記值對應(yīng)于當(dāng)由第二網(wǎng)絡(luò)接口卡接收到所述第一報文時,由第二網(wǎng)絡(luò)接口卡上的第四時鐘確定的時間。所述第四時間差異值對應(yīng)于在第二計時時鐘和第四時鐘之間的時間差異。所述第五時間標(biāo)記值對應(yīng)于當(dāng)從第二網(wǎng)絡(luò)接口卡發(fā)送所述第二報文時,由第四時鐘確定的時間。第一計算機(jī)進(jìn)一步被配置來在第一網(wǎng)絡(luò)接口卡上接收所述第二報文,并確定一個與所述第二報文相關(guān)的第六標(biāo)記值。所述第六時間標(biāo)記值對應(yīng)于當(dāng)由第一網(wǎng)絡(luò)接口卡接收到所述第二報文時,由第三時鐘確定的時間。第一計算機(jī)進(jìn)一步被配置來根據(jù)第一時間差異值、第二時間標(biāo)記值、第三時間標(biāo)記值、第四時間差異值、第五時間標(biāo)記值以及第六時間標(biāo)記值,來確定一個對應(yīng)于在第一和第二計時時鐘之間的時間差異的第七時間差異值。
提供了一種依照另一典型實施例的產(chǎn)品。所述產(chǎn)品包括一個其中編碼了一個計算機(jī)程序以使分別在第一和第二計算機(jī)上的第一和第二計時時鐘同步的計算機(jī)存儲介質(zhì)。第一計算機(jī)在一個第一網(wǎng)絡(luò)接口卡上有一個第三時鐘,并且第二計算機(jī)在一個第二網(wǎng)絡(luò)接口卡上有一個第四時鐘。第一和第二網(wǎng)絡(luò)接口卡經(jīng)由通信網(wǎng)絡(luò)而相互通信。所述計算機(jī)存儲介質(zhì)包括代碼,以用于生成一個有一個第一時間差異值和一個第二時間標(biāo)記值的第一報文,并從第一網(wǎng)絡(luò)接口卡發(fā)送所述第一報文。所述第一時間差異值對應(yīng)于在第一計時時鐘和第三時鐘之間的時間差異。所述第二時間標(biāo)記值對應(yīng)于當(dāng)從第一網(wǎng)絡(luò)接口卡發(fā)送所述第一報文時,由第一網(wǎng)絡(luò)接口卡上的第三時鐘確定的時間。所述產(chǎn)品進(jìn)一步包括代碼,以用于在第二計算機(jī)的第二接口卡上接收所述第一報文。所述產(chǎn)品進(jìn)一步包括代碼,以用于生成一個有所述第一時間差異值、所述第二時間標(biāo)記值、一個第三時間標(biāo)記值、一個第四時間差異值以及一個第五時間標(biāo)記值的第二報文,并從第二網(wǎng)絡(luò)接口卡發(fā)送所述第二報文。所述第三時間標(biāo)記值對應(yīng)于當(dāng)由第二網(wǎng)絡(luò)接口卡接收到所述第一報文時,由第二網(wǎng)絡(luò)接口卡上的第四時鐘確定的時間。所述第四時間差異值對應(yīng)于在第二計時時鐘和第四時鐘之間的時間差異。所述第五時間標(biāo)記值對應(yīng)于當(dāng)從第二網(wǎng)絡(luò)接口卡發(fā)送所述第二報文時,由第四時鐘確定的時間。所述產(chǎn)品進(jìn)一步包括代碼,以用于在第一網(wǎng)絡(luò)接口卡上接收所述第二報文,并確定一個與所述第二報文相關(guān)的第六時間標(biāo)記值。所述第六時間標(biāo)記值對應(yīng)于當(dāng)由第一網(wǎng)絡(luò)接口卡接收到所述第二報文時,由第三時鐘確定的時間。所述產(chǎn)品進(jìn)一步包括代碼,以用于根據(jù)第一時間差異值、第二時間標(biāo)記值、第三時間標(biāo)記值、第四時間差異值、第五時間標(biāo)記值以及第六時間標(biāo)記值,來確定一個對應(yīng)于在第一和第二計時時鐘之間的時間差異的第七時間差異值。
對于一個熟悉技術(shù)的人來說,基于查看下列附圖以及詳細(xì)的描述,依照實施例的其它系統(tǒng)和方法將是或?qū)⒆兊蔑@而易見。預(yù)期這種額外的系統(tǒng)和方法完全在附上的權(quán)利要求的范圍之內(nèi)。
圖1是一個用于使在第一和第二計算機(jī)上的第一和第二計時時鐘同步的聯(lián)網(wǎng)系統(tǒng);圖2描繪了一個從圖1的第一計算機(jī)向第二計算機(jī)發(fā)送的第一同步報文;圖3描繪了在圖2的第一同步報文從第一計算機(jī)發(fā)送之前,它的有效載荷部分;圖4描繪了在被第二計算機(jī)接收之后,圖2的第一同步報文的有效載荷部分;圖5描繪了一個從第二計算機(jī)向第一計算機(jī)發(fā)送的第二同步報文;圖6描繪了在圖5的第二同步報文從第二計算機(jī)發(fā)送之前,它的有效載荷部分;圖7描繪了在被第一計算機(jī)接收之后,圖5的第二同步報文的有效載荷部分;以及圖8-11是一種用于使在第一和第二計算機(jī)上的第一和第二計時時鐘同步的方法的流程圖。
具體實施例方式
參見圖1,提供了一個用于同步分別在計算機(jī)12、14中的計時時鐘30、70的聯(lián)網(wǎng)系統(tǒng)10。該聯(lián)網(wǎng)系統(tǒng)10包括計算機(jī)12、計算機(jī)14以及一個通信網(wǎng)絡(luò)16。
計算機(jī)12通過通信網(wǎng)絡(luò)16可操作地與計算機(jī)14通信。計算機(jī)12包括一個處理器18和一個可操作地與所述處理器18通信的網(wǎng)絡(luò)接口卡20。
處理器18包括所述計時時鐘30、一個管理程序模塊32以及一個同步數(shù)據(jù)緩沖器34。計時時鐘30生成一個表示當(dāng)前時間的時間值(TOD1)。當(dāng)處理器18確定將從計算機(jī)12向計算機(jī)14發(fā)送一個同步報文時,處理器18促使管理程序模塊32從時鐘30中獲得所述時間值(TOD1)。管理程序模塊32利用公式δ1=TOD1-HCATIME1,來計算在計時時鐘30和網(wǎng)絡(luò)接口卡時鐘48之間的時間差異(δ1),其中HCATIME1的值由時鐘48生成。此后,管理程序模塊32將δ1的值傳遞給同步數(shù)據(jù)緩沖器34,其覆寫保存在緩沖器34中的一個同步報文100中的δ1的值。此后,緩沖器34將所述同步報文100傳遞給網(wǎng)絡(luò)接口卡20的報文頭部生成模塊40。
網(wǎng)絡(luò)接口卡20被可操作地連接到處理器18,并被提供來向計算機(jī)14發(fā)送報文以及從計算機(jī)14接收報文。網(wǎng)絡(luò)接口卡20包括所述報文頭部生成模塊40、一個同步確定覆寫模塊42、一個報文存儲模塊44、一個網(wǎng)絡(luò)接口卡時鐘48以及一個通信端口50。
參見圖1-4,提供了報文頭部生成模塊40以在一個從計算機(jī)12發(fā)送的同步報文中包括傳輸協(xié)議信息。特別地,當(dāng)報文頭部生成模塊40從同步數(shù)據(jù)緩沖器34中接收同步報文100時,模塊40覆寫同步報文100中的字段102、104和106。字段102包括一個與計算機(jī)12的通信端口50相關(guān)的端口1地址,以及一個與計算機(jī)14的通信端口90相關(guān)的端口2地址。字段104包括一個接收同步緩沖號碼(B2),其與計算機(jī)14的專用于接收同步報文的一個同步數(shù)據(jù)緩沖器74相關(guān)。字段106包括一個發(fā)送同步緩沖號碼(B1),其與計算機(jī)12的專用于接收同步報文的同步數(shù)據(jù)緩沖器34相關(guān)。
提供了同步確定覆寫模塊42以確定從報文頭部生成模塊40或通信端口50接收的報文是否包括一個用于使計時時鐘30、70同步的同步報文。而且,進(jìn)一步提供模塊42來在一個從由計算機(jī)12發(fā)送的或由計算機(jī)12接收的同步報文中覆寫一個從網(wǎng)絡(luò)接口卡時鐘48中獲得的時間標(biāo)記值。
當(dāng)同步確定覆寫模塊42從報文頭部生成模塊40中接收第一報文100時,模塊42將報文100中的緩沖號碼(B2)與一個對應(yīng)于計算機(jī)14的同步數(shù)據(jù)緩沖器74的第一預(yù)定值相比較,以確定報文100是否是一個同步報文。當(dāng)緩沖號碼(B2)等于第一預(yù)定值時,這表示報文100是一個同步報文,模塊42訪問一個由網(wǎng)絡(luò)接口卡時鐘48生成的時間標(biāo)記值(TX_TIME1)。該時間標(biāo)記值(TX_TIME1)對應(yīng)于報文100從計算機(jī)12發(fā)送的時間。此后,模塊42覆寫同步報文100中的時間標(biāo)記值(TX_TIME1),并將報文100傳遞給通信端口50。通信端口50通過通信網(wǎng)絡(luò)16向計算機(jī)14的通信端口90發(fā)送同步報文100。
或者,當(dāng)同步確定覆寫模塊42從通信端口50中接收一個報文150時,模塊42將報文150中的緩沖號碼(Bl)與一個對應(yīng)于計算機(jī)12的同步數(shù)據(jù)緩沖器34的第二預(yù)定值相比較,以確定接收到的報文150是否是一個來自計算機(jī)14的同步報文。當(dāng)緩沖號碼(Bl)等于第二預(yù)定值時,這表示報文150是一個同步報文,模塊42獲得一個由網(wǎng)絡(luò)接口卡時鐘48生成的時間標(biāo)記值(RX_TIME1)。該時間標(biāo)記值(RX_TIME1)對應(yīng)于計算機(jī)12接收到報文150的時間。此后,模塊42覆寫報文150中的時間標(biāo)記值(RX_TIME1)。此后,模塊42將報文150傳遞給報文存儲模塊44。
提供了報文存儲模塊44,以將由計算機(jī)12接收的同步報文引導(dǎo)到同步數(shù)據(jù)緩沖器34。例如,當(dāng)計算機(jī)12接收同步報文150時,同步確定覆寫模塊42將報文150傳遞給報文存儲模塊44。此后,報文存儲模塊44將報文150傳遞給同步數(shù)據(jù)緩沖器34。
參見圖1,計算機(jī)14通過通信網(wǎng)絡(luò)16可操作地與計算機(jī)12通信。計算機(jī)14包括一個處理器60和一個可操作地與所述處理器60通信的網(wǎng)絡(luò)接口卡62。
處理器60包括所述計時時鐘70、一個管理程序模塊72以及一個同步數(shù)據(jù)緩沖器74。計時時鐘70生成一個表示當(dāng)前時間的時間值(TOD2)。當(dāng)處理器70確定在從計算機(jī)12接收了一個同步報文100之后將發(fā)送一個同步報文時,處理器70促使管理程序模塊72從時鐘70中獲得所述時間值(TOD2)。管理程序模塊72利用公式δ2=TOD2-HCATIME2,來計算在計時時鐘70和網(wǎng)絡(luò)接口卡時鐘88之間的時間差異(δ2),其中HCATIME2的值由時鐘88生成。此后,管理程序模塊72復(fù)制報文100的有效載荷區(qū)域,并在保存于緩沖器74中的報文150中保存所述復(fù)制的有效載荷區(qū)域。而且,管理程序模塊72覆寫報文150中的所述值(δ2)。此后,緩沖器74將報文150傳遞給網(wǎng)絡(luò)接口卡62的報文頭部生成模塊80。
參見圖1-4,網(wǎng)絡(luò)接口卡62被可操作地連接到處理器60,并被提供來從計算機(jī)14向計算機(jī)12發(fā)送報文以及從計算機(jī)12接收報文。網(wǎng)絡(luò)接口卡62包括所述報文頭部生成模塊80、一個同步確定覆寫模塊82、一個報文存儲模塊84、一個網(wǎng)絡(luò)接口卡時鐘88以及一個通信端口90。
提供了報文頭部生成模塊80以在一個從計算機(jī)14發(fā)送的同步報文中包括傳輸協(xié)議信息。特別地,當(dāng)報文頭部生成模塊80從同步數(shù)據(jù)緩沖器74中接收同步報文150時,模塊80覆寫同步報文150中的字段152、154和156。字段152包括一個與計算機(jī)12的通信端口50相關(guān)的端口1地址,以及一個與計算機(jī)14的通信端口90相關(guān)的端口2地址。字段154包括一個接收同步緩沖號碼(B1),其與計算機(jī)12的專用于接收同步報文的一個同步數(shù)據(jù)緩沖器34相關(guān)。字段156包括一個發(fā)送同步緩沖號碼(B2),其與計算機(jī)14的專用于接收同步報文的同步數(shù)據(jù)緩沖器74相關(guān)。
提供了同步確定覆寫模塊82以確定從報文頭部生成模塊80或通信端口90接收的報文是否包括一個用于使計時時鐘30、70同步的同步報文。而且,進(jìn)一步提供模塊82來在一個從由計算機(jī)14發(fā)送的或由計算機(jī)14接收的同步報文中覆寫一個從網(wǎng)絡(luò)接口卡時鐘88中獲得的時間標(biāo)記值。
當(dāng)同步確定覆寫模塊82從通信端口90中接收報文100時,模塊82將報文100中的緩沖號碼(B2)與一個對應(yīng)于同步數(shù)據(jù)緩沖器74的第一預(yù)定值相比較,以確定報文100是否是一個同步報文。當(dāng)緩沖號碼(B2)等于第一預(yù)定值時,這表示報文100是一個同步報文,模塊82訪問一個由網(wǎng)絡(luò)接口卡時鐘88生成的時間標(biāo)記值(RX_TIME2)。該時間標(biāo)記值(RX_TIME2)對應(yīng)于計算機(jī)14接收到報文100的時間。此后,模塊82覆寫同步報文100中的時間標(biāo)記值(RX_TIME2),并將報文100傳遞給報文存儲模塊84。
或者,當(dāng)同步確定覆寫模塊82從報文頭部生成模塊80中接收報文150時,模塊82將緩沖號碼(B1)與一個對應(yīng)于計算機(jī)12的同步數(shù)據(jù)緩沖器34的第二預(yù)定值相比較,以確定報文150是否是一個從計算機(jī)14發(fā)送的同步報文。當(dāng)緩沖號碼(B1)等于第二預(yù)定值時,這表示報文150是一個同步報文,模塊82獲得一個由網(wǎng)絡(luò)接口卡時鐘88生成的時間標(biāo)記值(TX_TIME2)。該時間標(biāo)記值(TX_TIME2)對應(yīng)于從計算機(jī)14發(fā)送報文150的時間。此后,模塊82覆寫報文150中的時間標(biāo)記值(TX_TIME2)。此后,模塊82將報文150傳遞給通信端口90,其通過通信網(wǎng)絡(luò)16向計算機(jī)12的通信端口50發(fā)送報文150。
提供了報文存儲模塊84,以將由計算機(jī)14接收的同步報文引導(dǎo)到同步數(shù)據(jù)緩沖器74。例如,當(dāng)計算機(jī)14接收同步報文100時,同步確定覆寫模塊82將報文100傳遞給報文存儲模塊84。報文存儲模塊84將報文100傳遞給同步數(shù)據(jù)緩沖器74。
參見圖8-11,將利用聯(lián)網(wǎng)系統(tǒng)10來解釋一種用于使在一個聯(lián)網(wǎng)系統(tǒng)中的計時時鐘同步的方法。
在步驟200中,處理器80在計算機(jī)12的同步數(shù)據(jù)緩沖器34中加載報文100的一部分。
在步驟202中,管理程序模塊32在同步數(shù)據(jù)緩沖器34的報文100中,保存在由計時時鐘30生成的時間值(TOD1)和由網(wǎng)絡(luò)接口卡時鐘48生成的時間值(HCATime1)之間的差異值(δ1)。
在步驟204中,同步數(shù)據(jù)緩沖器34將報文100傳遞給網(wǎng)絡(luò)接口卡20中的報文頭部生成模塊40。
在步驟206中,報文頭部生成模塊40在報文100的標(biāo)題部分中覆寫下列信息(i)計算機(jī)12的端口1地址和計算機(jī)14的端口2地址,(ii)與計算機(jī)14中的同步數(shù)據(jù)緩沖器74相關(guān)的同步緩沖號碼(B2),以及(iii)與計算機(jī)12中的同步數(shù)據(jù)緩沖器34相關(guān)的同步緩沖號碼(B1)。此后,報文頭部生成模塊40將報文100傳遞給同步確定覆寫模塊42。
在步驟208中,同步確定覆寫模塊42將同步緩沖號碼(B1)與一個預(yù)定值相比較,以便確定報文100是否是一個同步報文。當(dāng)報文100是一個同步報文時,模塊42在報文100中覆寫從網(wǎng)絡(luò)接口卡時鐘48中獲得的發(fā)送的時間標(biāo)記(TX_TIME1),并將報文100傳遞給通信端口50。通信端口50通過通信網(wǎng)絡(luò)16向計算機(jī)14的通信端口90發(fā)送報文100。
在步驟210中,同步確定覆寫模塊82將同步緩沖號碼(B2)與一個預(yù)定值相比較,以便確定報文100是否是一個同步報文。當(dāng)報文100是一個同步報文時,模塊82在報文100中覆寫從網(wǎng)絡(luò)接口卡時鐘88中獲得的接收的時間標(biāo)記值(RX_TIME2),并將報文100傳遞給報文存儲模塊84。
在步驟212中,報文存儲模塊84將報文100傳遞給同步數(shù)據(jù)緩沖器74。
在步驟214中,管理程序模塊72在緩沖器74中的一個報文150的有效載荷區(qū)域中復(fù)制所述報文100。管理程序模塊72在報文150中進(jìn)一步保存在來自時鐘70的(TOD2)時間值和來自時鐘88的(HCATIME2)的值之間的差異值(δ2)。
在步驟216中,同步數(shù)據(jù)緩沖器74將報文150傳遞給網(wǎng)絡(luò)接口卡62中的報文頭部生成模塊80。
在步驟218中,報文頭部生成模塊80在報文100的標(biāo)題部分中覆寫下列信息(i)計算機(jī)12的端口1地址和計算機(jī)14的端口2地址,(ii)與計算機(jī)12中的同步數(shù)據(jù)緩沖器34相關(guān)的同步緩沖號碼(B1),以及(iii)與計算機(jī)14中的同步數(shù)據(jù)緩沖器74相關(guān)的同步緩沖號碼(B2)。此后,報文頭部生成模塊80將報文150傳遞給同步確定覆寫模塊82。
在步驟220中,同步確定覆寫模塊82將同步緩沖號碼(B2)與一個預(yù)定值相比較,以便確定報文150是否是一個同步報文。當(dāng)報文150是一個同步報文時,模塊82在報文150中覆寫從網(wǎng)絡(luò)接口卡時鐘88中獲得的發(fā)送的時間標(biāo)記(TX_TIME2),并將報文150傳遞給通信端口90。通信端口90通過通信網(wǎng)絡(luò)16向計算機(jī)12的通信端口50發(fā)送報文150。
在步驟222中,同步確定覆寫模塊42將報文150中的同步緩沖號碼(B1)與一個預(yù)定值相比較,以便確定報文150是否是一個同步報文。當(dāng)報文150是一個同步報文時,模塊42在報文150中覆寫從網(wǎng)絡(luò)接口卡時鐘48中獲得的接收的時間標(biāo)記值(RX_TIME1),并將報文150傳遞給報文存儲模塊44。
在步驟224中,報文存儲模塊44將報文150傳遞給同步數(shù)據(jù)緩沖器34。
在步驟226中,管理程序模塊32利用下述公式ΔT1=1/2((RX_TIME2-TX_TIME1)-(RX_TIME1-TX_TIME2)),來計算在網(wǎng)絡(luò)接口卡時鐘48和網(wǎng)絡(luò)接口卡時鐘88之間的時間差異(ΔT1)。
在步驟228中,管理程序模塊32利用下述公式ΔT2=1/2((RX_TIME2-TX_TIME1)-(RX_TIME1-TX_TIME2))+(δ2-δ1),來計算在計時時鐘30和計時時鐘70之間的時間差異(ΔT2)。
在步驟230中,處理器18使用時間差異(ΔT2),使計時時鐘30與計時時鐘70同步。
所述用于使分別在第一和第二計算機(jī)中的第一和第二計時時鐘同步的系統(tǒng)和方法,表現(xiàn)出與已知的系統(tǒng)和方法相比相當(dāng)大的優(yōu)勢。所述系統(tǒng)和方法提供了利用由分別在第一和第二計算機(jī)中的第一和第二網(wǎng)絡(luò)接口卡時鐘生成的時間標(biāo)記值的技術(shù)效果,以更精確地使第一和第二計時時鐘同步。特別地,因為網(wǎng)絡(luò)接口卡中的時鐘可以生成非常精確的與接收和發(fā)送報文相關(guān)的時間標(biāo)記值,可以利用這些時間標(biāo)記值來獲得計時時鐘的更精確的同步。特別地,所述方法和系統(tǒng)可以實現(xiàn)在第一和第二計時時鐘之間的次微秒級同步。
盡管本發(fā)明是參照一個典型的實施例來描述的,但那些熟悉技術(shù)的人應(yīng)當(dāng)理解可以進(jìn)行各種改變,并且等效物可以替代其元件而無需背離本發(fā)明的范圍。此外,可以對本發(fā)明的講授進(jìn)行許多修改,以適合于特殊的情形而無需背離其范圍。因此,意在本發(fā)明不受被公開以用于執(zhí)行本發(fā)明的所述實施例的限制,而是本發(fā)明包括落在計劃的權(quán)利要求的范圍內(nèi)的所有實施例。而且,使用術(shù)語的第一、第二等并不表示任何重要性的順序,而是術(shù)語的第一、第二等用于在元件之間進(jìn)行辨別。
權(quán)利要求
1.一種用于使分別在第一和第二計算機(jī)上的第一和第二計時時鐘同步的方法,所述第一計算機(jī)在一個第一網(wǎng)絡(luò)接口卡上有一個第三時鐘,所述第二計算機(jī)在一個第二網(wǎng)絡(luò)接口卡上有一個第四時鐘,所述第一和第二網(wǎng)絡(luò)接口卡經(jīng)由一個通信網(wǎng)絡(luò)相互通信,該方法包括生成一個有一個第一時間差異值和一個第二時間標(biāo)記值的第一報文,并從第一網(wǎng)絡(luò)接口卡發(fā)送所述第一報文,所述第一時間差異值對應(yīng)于在第一計時時鐘和第三時鐘之間的時間差異,所述第二時間標(biāo)記值對應(yīng)于當(dāng)從第一網(wǎng)絡(luò)接口卡發(fā)送所述第一報文時,由第一網(wǎng)絡(luò)接口卡中的第三時鐘確定的時間;在第二計算機(jī)的第二接口卡上接收所述第一報文;生成一個有所述第一時間差異值、所述第二時間標(biāo)記值、一個第三時間標(biāo)記值、一個第四時間差異值以及一個第五時間標(biāo)記值的第二報文,并從第二網(wǎng)絡(luò)接口卡發(fā)送所述第二報文,所述第三時間標(biāo)記值對應(yīng)于當(dāng)由第二網(wǎng)絡(luò)接口卡接收到所述第一報文時,由在第二網(wǎng)絡(luò)接口卡上的第四時鐘確定的時間,所述第四時間差異值對應(yīng)于在第二計時時鐘和第四時鐘之間的時間差異,所述第五時間標(biāo)記值對應(yīng)于當(dāng)從第二網(wǎng)絡(luò)接口卡發(fā)送所述第二報文時,由第四時鐘確定的時間;在第一網(wǎng)絡(luò)接口卡上接收所述第二報文,并確定一個與所述第二報文相關(guān)的第六時間標(biāo)記值,所述第六時間標(biāo)記值對應(yīng)于當(dāng)由第一網(wǎng)絡(luò)接口卡接收到所述第二報文時,由第三時鐘確定的時間;以及根據(jù)第一時間差異值、第二時間標(biāo)記值、第三時間標(biāo)記值、第四時間差異值、第五時間標(biāo)記值以及第六時間標(biāo)記值,來確定一個對應(yīng)于在第一和第二計時時鐘之間的時間差異的第七時間差異值。
2.權(quán)利要求1的方法,其中所述第一報文進(jìn)一步包括第一和第二端口地址,所述第一端口地址與第一計算機(jī)的一個第一通信端口相關(guān),所述第二端口地址與第二計算機(jī)的一個第二通信端口相關(guān)。
3.權(quán)利要求2的方法,其中所述第一報文進(jìn)一步包括第一和第二緩沖器地址,所述第一緩沖器地址與第一計算機(jī)中的一個用于接收包含時間標(biāo)記值的報文的第一緩沖器相關(guān),所述第二緩沖器地址與第二計算機(jī)中的一個用于接收包含時間標(biāo)記值的報文的第二緩沖器相關(guān)。
4.權(quán)利要求1的方法,進(jìn)一步包括根據(jù)所述第七時間差異值來修改第一計時時鐘,以使第一計時時鐘與第二計時時鐘同步。
5.一種聯(lián)網(wǎng)的系統(tǒng),其包括一個有一個第一網(wǎng)絡(luò)接口卡和一個第一計時時鐘的第一計算機(jī),以及一個有一個第二網(wǎng)絡(luò)接口卡和一個第二計時時鐘的第二計算機(jī),所述第一網(wǎng)絡(luò)接口卡有一個第三時鐘,所述第二網(wǎng)絡(luò)接口卡有一個第四時鐘;所述第一計算機(jī)被配置來生成一個有一個第一時間差異值和一個第二時間標(biāo)記值的第一報文,并從第一網(wǎng)絡(luò)接口卡發(fā)送所述第一報文,所述第一時間差異值對應(yīng)于在第一計時時鐘和第三時鐘之間的時間差異,所述第二時間標(biāo)記值對應(yīng)于當(dāng)從第一網(wǎng)絡(luò)接口卡發(fā)送所述第一報文時,由第一網(wǎng)絡(luò)接口卡中的第三時鐘確定的時間;所述第二計算機(jī)被配置來在第二接口卡上接收所述第一報文,所述第二計算機(jī)進(jìn)一步被配置來生成一個有所述第一時間差異值、所述第二時間標(biāo)記值、一個第三時間標(biāo)記值、一個第四時間差異值以及一個第五時間標(biāo)記值的第二報文,并從第二網(wǎng)絡(luò)接口卡發(fā)送所述第二報文,所述第三時間標(biāo)記值對應(yīng)于當(dāng)由第二網(wǎng)絡(luò)接口卡接收到所述第一報文時,由在第二網(wǎng)絡(luò)接口卡上的第四時鐘確定的時間,所述第四時間差異值對應(yīng)于在第二計時時鐘和第四時鐘之間的時間差異,所述第五時間標(biāo)記值對應(yīng)于當(dāng)從第二網(wǎng)絡(luò)接口卡發(fā)送所述第二報文時,由第四時鐘確定的時間;以及所述第一計算機(jī)進(jìn)一步被配置來在第一網(wǎng)絡(luò)接口卡上接收所述第二報文,并確定一個與所述第二報文相關(guān)的第六時間標(biāo)記值,所述第六時間標(biāo)記值對應(yīng)于當(dāng)由第一網(wǎng)絡(luò)接口卡接收到所述第二報文時,由第三時鐘確定的時間,所述第一計算機(jī)進(jìn)一步被配置來根據(jù)第一時間差異值、第二時間標(biāo)記值、第三時間標(biāo)記值、第四時間差異值、第五時間標(biāo)記值以及第六時間標(biāo)記值,來確定一個對應(yīng)于在第一和第二計時時鐘之間的時間差異的第七時間差異值。
6.一個權(quán)利要求5的系統(tǒng),其中所述第一報文進(jìn)一步包括第一和第二端口地址,所述第一端口地址與第一計算機(jī)的一個第一通信端口相關(guān),所述第二端口地址與第二計算機(jī)的一個第二通信端口相關(guān)。
7.一個權(quán)利要求6的系統(tǒng),其中所述第一報文進(jìn)一步包括第一和第二緩沖器地址,所述第一緩沖器地址與第一計算機(jī)中的一個用于接收包含時間標(biāo)記值的報文的第一緩沖器相關(guān),所述第二緩沖器地址與第二計算機(jī)中的一個用于接收包含時間標(biāo)記值的報文的第二緩沖器相關(guān)。
8.一個權(quán)利要求5的系統(tǒng),其中第一計算機(jī)進(jìn)一步被配置來根據(jù)所述第七時間差異值來修改第一計時時鐘,以使第一計時時鐘與第二計時時鐘同步。
9.一種制造產(chǎn)品,其包括一個其中編碼了一個計算機(jī)程序以使分別在第一和第二計算機(jī)上的第一和第二計時時鐘同步的計算機(jī)存儲介質(zhì),所述第一計算機(jī)在一個第一網(wǎng)絡(luò)接口卡上有一個第三時鐘,所述第二計算機(jī)在一個第二網(wǎng)絡(luò)接口卡上有一個第四時鐘,所述第一和第二網(wǎng)絡(luò)接口卡經(jīng)由一個通信網(wǎng)絡(luò)相互通信,所述計算機(jī)存儲介質(zhì)包括用于生成一個有一個第一時間差異值和一個第二時間標(biāo)記值的第一報文、并從第一網(wǎng)絡(luò)接口卡發(fā)送所述第一報文的代碼,所述第一時間差異值對應(yīng)于在第一計時時鐘和第三時鐘之間的時間差異,所述第二時間標(biāo)記值對應(yīng)于當(dāng)從第一網(wǎng)絡(luò)接口卡發(fā)送所述第一報文時,由第一網(wǎng)絡(luò)接口卡中的第三時鐘確定的時間;用于在第二計算機(jī)的第二接口卡上接收所述第一報文的代碼;用于生成一個有所述第一時間差異值、所述第二時間標(biāo)記值、一個第三時間標(biāo)記值、一個第四時間差異值以及一個第五時間標(biāo)記值的第二報文并從第二網(wǎng)絡(luò)接口卡發(fā)送所述第二報文的代碼,所述第三時間標(biāo)記值對應(yīng)于當(dāng)由第二網(wǎng)絡(luò)接口卡接收到所述第一報文時,由在第二網(wǎng)絡(luò)接口卡上的第四時鐘確定的時間,所述第四時間差異值對應(yīng)于在第二計時時鐘和第四時鐘之間的時間差異,所述第五時間標(biāo)記值對應(yīng)于當(dāng)從第二網(wǎng)絡(luò)接口卡發(fā)送所述第二報文時,由第四時鐘確定的時間;用于在第一網(wǎng)絡(luò)接口卡上接收所述第二報文、并確定一個與所述第二報文相關(guān)的第六時間標(biāo)記值的代碼,所述第六時間標(biāo)記值對應(yīng)于當(dāng)由第一網(wǎng)絡(luò)接口卡接收到所述第二報文時,由第三時鐘確定的時間;以及用于根據(jù)第一時間差異值、第二時間標(biāo)記值、第三時間標(biāo)記值、第四時間差異值、第五時間標(biāo)記值以及第六時間標(biāo)記值,來確定一個對應(yīng)于在第一和第二計時時鐘之間的時間差異的第七時間差異值的代碼。
10.一個權(quán)利要求9的產(chǎn)品,其中所述第一報文進(jìn)一步包括第一和第二端口地址,所述第一端口地址與第一計算機(jī)的一個第一通信端口相關(guān),所述第二端口地址與第二計算機(jī)的一個第二通信端口相關(guān)。
11.一個權(quán)利要求9的產(chǎn)品,其中所述第一報文進(jìn)一步包括第一和第二緩沖器地址,所述第一緩沖器地址與第一計算機(jī)中的一個用于接收包含時間標(biāo)記值的報文的第一緩沖器相關(guān),所述第二緩沖器地址與第二計算機(jī)中的一個用于接收包含時間標(biāo)記值的報文的第二緩沖器相關(guān)。
12.一個權(quán)利要求9的產(chǎn)品,進(jìn)一步包括用于根據(jù)所述第七時間差異值來修改第一計時時鐘,以使第一計時時鐘與第二計時時鐘同步的代碼。
全文摘要
提供了一種用于使分別在第一和第二計算機(jī)上的第一和第二計時時鐘同步的系統(tǒng)、方法和產(chǎn)品。第一和第二計算機(jī)有第一和第二網(wǎng)絡(luò)接口卡,其上分別有第三和第四時鐘。系統(tǒng)利用由第三和第四時鐘生成的時間標(biāo)記值,以使第一和第二計時時鐘同步。
文檔編號G04G5/00GK1822536SQ20051012728
公開日2006年8月23日 申請日期2005年12月5日 優(yōu)先權(quán)日2004年12月17日
發(fā)明者布魯斯·M.·沃克, 托馬斯·A.·格里格, 理查德·K.·埃里克森, 戴維·F.·克拉多克 申請人:國際商業(yè)機(jī)器公司