專利名稱:非均勻存儲器存取系統(tǒng)的近似的單調(diào)時間同步方法和系統(tǒng)的制作方法
技術(shù)領(lǐng)域:
本發(fā)明一般涉及數(shù)據(jù)處理系統(tǒng),詳細(xì)地說,涉及多處理器數(shù)據(jù)處理系統(tǒng)。更詳細(xì)地說,本發(fā)明涉及可伸縮的共享存儲器多處理器數(shù)據(jù)處理系統(tǒng)。
對稱多處理(SMP)和非均勻存儲器存取(NUMA)體系結(jié)構(gòu)為可伸縮的數(shù)據(jù)處理技術(shù),該技術(shù)利用多處理器和共享存儲器,來同時處理較大的應(yīng)用程序或多個應(yīng)用程序。通常通過互連對稱共享存儲器多處理器系統(tǒng)與各系統(tǒng)較少數(shù)目的處理器,構(gòu)造可伸縮的共享存儲器多處理器,其中互連保持高速緩沖的相關(guān)性。這樣作會很好地利用其他現(xiàn)有產(chǎn)品或常見的高容量產(chǎn)品,來創(chuàng)建更大的系統(tǒng)。其結(jié)果是產(chǎn)生與高速緩沖相關(guān)的非均勻存儲器存取多處理器(ccNUMA或簡稱為NUMA)。此外,諸如PowerPCTM(紐約Armonk的IBM公司的產(chǎn)品)之類的某些體系結(jié)構(gòu),提供單獨處理器時間寄存器,該寄存器以處理器本身頻率的某一除數(shù)遞增,在PowerPC中,該寄存器稱為“時基寄存器”。PowerPC體系結(jié)構(gòu)要求多處理器系統(tǒng)上的時基的程序易見值單調(diào)增加,這意味著如果某個程序讀取了時基,然后再次讀取它,則第二次的值必須大于等于第一次的值。
多處理器上時基寄存器的值必須彼此充分接近,從而如果某個程序首先在某個處理器上運行,然后在另一個上運行,則該程序讀取的第二時基值大于等于第一時基值。將一個程序從一個處理器移到另一個處理器需要的時間大于103個處理器周期,而時基除數(shù)的數(shù)量級為該周期的幾十倍,這會強制多節(jié)點NUMA系統(tǒng),將該系統(tǒng)內(nèi)所有處理器的時基寄存器,互相同步到大約102個時基滴答內(nèi)。在本公開中,將以時基周期或時基值為單位表示時間,并且可交替使用術(shù)語“周期”和“滴答”。
NUMA系統(tǒng)中通常沒有公用振蕩器,并且隨著時間的推移,時基寄存器彼此漂移,因此必須周期地再同步時基寄存器。盡管某些硬件互連機制的確具有用于此目的的公用振蕩器,并且其他硬件具有特定的數(shù)據(jù)包格式,但并不是總存在此類硬件,其中包格式在其負(fù)載中攜帶一個時間值,并在通過網(wǎng)絡(luò)傳輸時增加該值。因此,需要使用標(biāo)準(zhǔn)硬件和合適邏輯的某些機制。盡管時基同步是重要的,但它在網(wǎng)絡(luò)負(fù)載或?qū)S糜布矫娌荒芴嘿F。然而,仍然需要維護所需同步水平的時基同步機制。
因此,最好提供用于多節(jié)點NUMA多處理器系統(tǒng)的時基同步系統(tǒng)。此外,最好在不需要專用硬件功能的情況下,與當(dāng)前互連實現(xiàn)一起使用同步系統(tǒng)。同時,最好在不對系統(tǒng)內(nèi)的互連或處理器強加顯著系統(tǒng)開銷的情況下,提供同步系統(tǒng)。
因此,本發(fā)明的目的在于,提供一種用于多節(jié)點NUMA多處理器系統(tǒng)的時基同步系統(tǒng),該系統(tǒng)將利用可用的互連實施,而無需專用硬件功能。
本發(fā)明的另一目的在于,提供一種用于多節(jié)點NUMA多處理器系統(tǒng)的時基同步系統(tǒng),該系統(tǒng)不會對系統(tǒng)內(nèi)的互連或處理器強加顯著的運行開銷。
現(xiàn)在說明上述目的的實現(xiàn)。在多節(jié)點非均勻存儲器存取(NUMA)多處理器系統(tǒng)中,同步各節(jié)點上指定節(jié)點的同步處理器。各節(jié)點利用公知技術(shù)實現(xiàn)該節(jié)點上其他處理器的內(nèi)部同步。因此,同步各節(jié)點上的一個處理器就足夠了。作為同步管理器的指定系統(tǒng)節(jié)點,即節(jié)點零,估計以包格式將信息傳輸?shù)较到y(tǒng)中的特定遠(yuǎn)程節(jié)點所需要的時間。所以,將時間值從遠(yuǎn)程節(jié)點傳輸?shù)焦?jié)點零。根據(jù)傳輸時間估計,節(jié)點零將當(dāng)前時間投影到遠(yuǎn)程節(jié)點上,并且與其固有時間進行比較,然后或者更新其固有時鐘,以趕上領(lǐng)先的遠(yuǎn)程節(jié)點,或者將新時間值發(fā)送到其他節(jié)點,從而要求遠(yuǎn)程節(jié)點提前其固有時間,以趕上節(jié)點零上的時間。剩余節(jié)點上的代碼通常是被動的,當(dāng)請求時,響應(yīng)來自節(jié)點零的數(shù)據(jù)包,并設(shè)置時基值。通過總是提前兩個時基中的最落后者,以趕上較早者,保持時基的單調(diào)性。
在以下詳細(xì)說明中,本發(fā)明的上述目的、以及附加目的、特征和優(yōu)點將更加顯而易見。
權(quán)利要求書闡明認(rèn)為是本發(fā)明特征的獨創(chuàng)特征。然而,通過連同附圖參照以下詳細(xì)說明,會充分了解本發(fā)明、使用的最佳模式、其他目的以及其優(yōu)點,其中附圖為
圖1是一個高級框圖,表示能夠?qū)崿F(xiàn)本發(fā)明最佳實施方式的數(shù)據(jù)處理系統(tǒng)的多節(jié)點配置的三個節(jié)點;圖2是一個流程圖,用于同步根據(jù)本發(fā)明之某一實施方式的多節(jié)點NUMA系統(tǒng)中的節(jié)點。
現(xiàn)在參照附圖,特別參照圖1,該圖是一個高級框圖,表示能夠?qū)崿F(xiàn)本發(fā)明最佳實施方式的數(shù)據(jù)處理系統(tǒng)的多節(jié)點配置的三個節(jié)點。數(shù)據(jù)處理系統(tǒng)100由多個節(jié)點組成,其中描述了三個節(jié)點100a、100b和100c。利用互連130將上述節(jié)點連接在一起。各節(jié)點具有局部總線110、111和112;一個或多個處理器(CPU)以及連接到各局部總線110、111和112的存儲器121、123和125。同時,將高速緩沖和目錄控制器(CDC)連接到到局部總線110、111和112以及互連130。一般技術(shù)人員可以理解圖1所示的數(shù)據(jù)處理系統(tǒng)的一般操作。
數(shù)據(jù)處理系統(tǒng)100僅描述了三個節(jié)點100a、100b和100c。各節(jié)點利用各節(jié)點的多處理器,并且典型NUMA系統(tǒng)將利用多個節(jié)點??梢岳斫猓谌我痪植靠偩€上可以有兩個、三個或更多個微處理器,并且在互連130上可以有兩個、三個或更多個節(jié)點。也可以采用從典型背面板總線到全交叉接線器或其他任意可靠連接模式的許多不同方式,實現(xiàn)系統(tǒng)總線。
NUMA數(shù)據(jù)處理系統(tǒng)的主要特性在于,將組合存儲器121、123和125看作一個單一地址空間。存儲器1121可以保留從0到4000的地址(地址存儲單元數(shù)僅用于說明目的,不一定代表實際存儲地址),而存儲器2123可以保留從4000到10000的地址。例如,當(dāng)CPU2102需要存取存儲單元5000時,節(jié)點102a上的CDC122將該請求路由到互連130,然后節(jié)點100b上的CDC124從互連130接收該請求,并將其路由到存儲器2123。NUMA系統(tǒng)上的任意存儲器對任意節(jié)點均是可用的,并且節(jié)點100a也可以存取節(jié)點100c。將和CPU處于相同的節(jié)點上的存儲器稱為“局部存儲器”,而將不同節(jié)點上的存儲器稱為“遠(yuǎn)程存儲器”。所有節(jié)點無需全部具有相同的存儲量或相同數(shù)目的CPU。
參照表1,該表表示用于同步根據(jù)本發(fā)明之某一實施方式的多節(jié)點NUMA系統(tǒng)中之節(jié)點的算法。本發(fā)明是下文所提供算法的修改和擴展,“萬網(wǎng)連接的小群集器中的性能監(jiān)視(Performance Monitoringin a Myrinet-Connected Shrimp Cluster)”,Cheng Liao,MargaretMartonosi,& Douglas W.Clark,ACM Sigmetrics Symposium onParallel and Distributed Tools(SPDT),1998年8月。正如表1所示,該算法表示本發(fā)明的兩面一面在NUMA系統(tǒng)之各節(jié)點上的指定節(jié)點,即節(jié)點零的同步處理器(NSP)上執(zhí)行,一面在NUMA系統(tǒng)中各其他節(jié)點的NSP上執(zhí)行。節(jié)點零智能地估計該節(jié)點以包格式將信息傳輸?shù)较到y(tǒng)中的其他特定節(jié)點所需要的時間。巧合的是,這會提供從指定節(jié)點到節(jié)點零的時間值。根據(jù)此傳輸時間估計,節(jié)點零將當(dāng)前時間投影到其他節(jié)點上,與其固有時間進行比較,然后或者更新其固有時鐘,以趕上領(lǐng)先的遠(yuǎn)程節(jié)點,或者將新時間值發(fā)送到其他節(jié)點,從而通知該節(jié)點提前其固有時間,以趕上節(jié)點零上的時間。其他節(jié)點上的代碼大部分是被動的,當(dāng)請求時,響應(yīng)來自節(jié)點零的數(shù)據(jù)包,并設(shè)置時基值。
在表1所示的算法中,令n為系統(tǒng)中的節(jié)點數(shù),Ertt為互連上從某個節(jié)點到另一節(jié)點然后回到原處的期望往返時間值,STDrtt為標(biāo)準(zhǔn)偏差,而MINrtt為往返時間值的絕對最小值。上述各值為基于互連機制設(shè)計的設(shè)計時間值。作為觀察值的Di,為節(jié)點i上的NSP的漂移,其中Di的符號表示相對于節(jié)點零的NSP的漂移方向。負(fù)號表示節(jié)點i上的NSP的時基滯后或落后于節(jié)點零的時基,而正號表示該時基領(lǐng)先于節(jié)點零的時基,即在其前面。
再同步總是由節(jié)點零發(fā)起的,并且其目標(biāo)為系統(tǒng)中的特定非零節(jié)點。根據(jù)節(jié)點零以及目標(biāo)節(jié)點彼此之間的漂移,調(diào)整再同步間隔。令Xi為節(jié)點i的交叉節(jié)點再同步間隔,其中未定義X0。Xi的初始值為設(shè)計時間參數(shù),并且反映所有節(jié)點上NSP之時基的期望漂移值。
為了進一步降低同步的系統(tǒng)開銷,該算法能夠在適當(dāng)時候降低再同步的頻率,并在需要時增加頻率。該自適應(yīng)在節(jié)點零和單一目標(biāo)節(jié)點之間是雙向的。相對于節(jié)點零漂移很快的節(jié)點,其再同步頻率比漂移較慢的節(jié)點的再同步頻率要高。UTHRES為上閾值,該值表示節(jié)點零和目標(biāo)節(jié)點之間的誤差太大,應(yīng)提高再同步頻率。LTHRES為下閾值,該值表示節(jié)點零和目標(biāo)節(jié)點之間的誤差足夠小,以至應(yīng)降低再同步頻率。XNMORE為用于增加交叉節(jié)點同步頻率的因子,而XNLESS為用于減少交叉節(jié)點同步頻率的因子。
現(xiàn)在參照表2,該圖表示在用于同步根據(jù)本發(fā)明之某一實施方式的多節(jié)點NUMA系統(tǒng)中之節(jié)點的過程中,從節(jié)點零到節(jié)點k然后回到原處的往返時間的計算。必須確定用于估計到節(jié)點k之往返時間(RTTk)的當(dāng)前值的節(jié)點零和節(jié)點k上的機制。在每個節(jié)點再同步時估計此RTT值。
本質(zhì)上,該偽碼通過使節(jié)點零保存TS(發(fā)送的時間),并發(fā)送到目標(biāo)節(jié)點(此時為節(jié)點k),確定平均時間。節(jié)點零從節(jié)點k接收包括節(jié)點k之時間值Tk的應(yīng)答數(shù)據(jù)包,然后將RTT設(shè)置為節(jié)點k的數(shù)據(jù)包的到達時間減去TS。如果RTT無效,例如,時間為負(fù),則節(jié)點零放棄此再同步,并且重新開始等待節(jié)點k的同步到期。將RTT與標(biāo)準(zhǔn)偏差STDrtt的3倍以及往返時間值的絕對最小值MINrtt進行比較,以進一步確定其有效性。如果RTT有效,則將RTTk增加RTT。將此過程重復(fù)n次,其中n是設(shè)計互連時確定的固定次數(shù)。在第n遍結(jié)束時,將RTTk的值設(shè)置為計算值的n分之一。
在本發(fā)明中,同步是在數(shù)據(jù)處理系統(tǒng)的內(nèi)部進行的。在一個相對小的范圍內(nèi),保留時基寄存器的時間值,而沒有調(diào)整節(jié)點所參照的外部時間源。不需要特定的數(shù)字設(shè)置,因此,可以以時基周期或時基值為單位來表示時間。單調(diào)性要求時基寄存器的調(diào)整只能增加其值,而不能降低其值。硬件一般允許在時基寄存器中設(shè)置任意值。尤其是,改變時基寄存器并不會將其強行復(fù)位到零。然而,存在不遵守此假設(shè)的處理器(如,加利福尼亞州San Jose的英特爾公司的IA-32處理器)。
NUMA系統(tǒng)由許多互連節(jié)點組成。該互連具有將一個數(shù)據(jù)包從一個節(jié)點發(fā)送到另一節(jié)點然后回到發(fā)起節(jié)點所需往返時間之期望值的明確定義的、由設(shè)計確定的數(shù)值,以及往返時間的標(biāo)準(zhǔn)偏差。同時還有一個明確定義的往返時間的絕對最小值。此外,假設(shè)該互連大致是對稱的,從而如果往返時間是RTT,則從發(fā)送節(jié)點到目標(biāo)節(jié)點的傳輸時間為RTT/2。
各NUMA節(jié)點可以是一個SMP系統(tǒng),并且該NUMA系統(tǒng)中有一個指定的節(jié)點零,作為同步算法中的管理器。本發(fā)明可同步系統(tǒng)中的NSP,并且假定某些現(xiàn)有機制可參照該節(jié)點的NSP,同步節(jié)點中的剩余處理器。NUMA系統(tǒng)的各節(jié)點具有一個指定的NSP處理器,后者參與同步。各NSP可以具有其特有的振蕩器,并且NSP時基寄存器可以相對于其他寄存器進行正向漂移或反向漂移。通常,振蕩器是精確的,并且漂移率很小。
現(xiàn)在參照圖2,該圖示出一種方法,用于同步根據(jù)本發(fā)明之某一實施方式的多節(jié)點NUMA系統(tǒng)中的節(jié)點。有關(guān)本發(fā)明的偽碼結(jié)構(gòu),請參照表1。該過程從步驟402開始,步驟402說明交叉節(jié)點間隔的初始化。然后,該過程進行到步驟404,后者說明等待特定的交叉節(jié)點間隔到期。此時,交叉節(jié)點間隔k首先到期。過程進行到步驟406,該步驟表示估計節(jié)點零和節(jié)點k之間的往返時間(RTTk)。利用表2所示方法完成此估計。
接著,過程進行到步驟408,該步驟確定步驟406生成的RTTk是否有效。同步依賴于以下時間的精確估計,即攜帶時間信息的數(shù)據(jù)包到達其目的所需要的時間。由于此時間受各種網(wǎng)絡(luò)條件的影響,所以使用最近的數(shù)據(jù)包往返時間來估計下一數(shù)據(jù)包的傳送時間。如果該數(shù)據(jù)包往返時間在設(shè)計期望值周圍呈正態(tài)分布,則幾乎所有往返時間將在設(shè)計期望值的三個標(biāo)準(zhǔn)偏差內(nèi)。為了確保RTTk的值是預(yù)測下次發(fā)送的數(shù)據(jù)包之行為的值,使用多個有效估計數(shù)據(jù)包是很重要的。
如果確定RTTk無效,則過程進行到步驟410,該步驟表示重新開始等待交叉節(jié)點間隔k(Xk)。如果確定RTTk有效,則過程轉(zhuǎn)到步驟412,該過程表示系統(tǒng)確定節(jié)點k上的當(dāng)前時間。接著,過程進行到步驟414,該步驟確定T0是否小于等于節(jié)點k的當(dāng)前時間(CTk)。如果節(jié)點零上的時間T0小于等于節(jié)點k的當(dāng)前時間,則過程進行到步驟416,該步驟將節(jié)點零的時基設(shè)置為節(jié)點k的當(dāng)前時間。如果在步驟414中確定節(jié)點零上的時間大于節(jié)點k的當(dāng)前時間,則過程轉(zhuǎn)到步驟418,該步驟從節(jié)點零上的時基寄存器中,重新讀取時間值。過程繼續(xù)到步驟420,該步驟將新的時基值發(fā)送到節(jié)點k,從而實現(xiàn)了節(jié)點k與節(jié)點零的再同步。
接著,過程進行到步驟422,該步驟確定各節(jié)點時基的漂移速率。如果節(jié)點時基漂移很快,則過程進行到步驟424,該步驟降低再同步間隔,這是由于節(jié)點零和目標(biāo)節(jié)最之間的誤差太大的緣故。然后,過程進行到步驟410。
如果節(jié)點時基漂移較慢,則過程轉(zhuǎn)到步驟426,該步驟增加再同步間隔,這是由于節(jié)點零和目標(biāo)節(jié)點之間的誤差很小,所以應(yīng)降低再同步頻率。然后,過程進行到步驟410,該步驟重新開始節(jié)點k的交叉節(jié)點同步間隔Xk的等待周期。過程繼續(xù)到步驟404,該步驟等待交叉節(jié)點間隔到期,并重復(fù)再同步過程。
本發(fā)明依賴于以下時間的精確估計,即攜帶時間信息的數(shù)據(jù)包到達其目的所需要的時間。由于此時間受各種網(wǎng)絡(luò)條件的影響,所以使用最近的數(shù)據(jù)包往返時間來估計下一數(shù)據(jù)包的傳送時間。通過在檢測到嚴(yán)重過載時省略再同步,本發(fā)明避免了在嚴(yán)重過載期間進行再同步。如果數(shù)據(jù)包往返時間在設(shè)計期望值周圍呈正態(tài)分布,則大部分?jǐn)?shù)據(jù)包會處在該值的三個標(biāo)準(zhǔn)偏差內(nèi)。由于漂移較小,所以對于出現(xiàn)的有效漂移,互連必然嚴(yán)重過載。為了確保RTTk的值預(yù)測下次發(fā)送的數(shù)據(jù)包的行為,使用少數(shù)估計數(shù)據(jù)包是很重要的。
通過總是提前兩個時基中的落后者以趕上較早者,本發(fā)明保持了時基的單調(diào)性。調(diào)整節(jié)點零會導(dǎo)致其他節(jié)點上之時基的臨時漂移,但是會在下次再同步時改正。如果漂移較小,則時基值中的調(diào)整也會較小。可以對本發(fā)明添加一種功能,以允許一個節(jié)點預(yù)測它相對于節(jié)點零的漂移。
重要的是要注意到,盡管在功能完整的數(shù)據(jù)處理系統(tǒng)范圍內(nèi)說明了本發(fā)明,但熟練技術(shù)人員可以理解,能夠以多種形式的指令的計算機可讀介質(zhì)的方式,分發(fā)本發(fā)明的機制,并且本發(fā)明同樣適用,而無需考慮用于實際執(zhí)行分發(fā)的特定類型的信號承載介質(zhì)。計算機可讀介質(zhì)的示例包括諸如只讀存儲器(ROM)或電可擦除可編程只讀存儲器(EEPROM)之類的非易失、硬編碼類型的介質(zhì),諸如軟盤、硬盤或CD-ROM之類的可記錄類型的介質(zhì),以及諸如數(shù)字和模擬通信鏈路之類的傳輸類型介質(zhì)。
表1等待下一個交叉節(jié)點間隔Xi,i=1,…,n到期假設(shè)Xk首先到期計算RTTk,使用圖3中的算法計算節(jié)點k的當(dāng)前往返時間If沒有生成有效的RTTk,則重新開始等待Xk并返回到開始以等待下一個Xi到期根據(jù)接收到的最后的往返數(shù)據(jù)包,獲得Tk,即k的當(dāng)前時間k的當(dāng)前時間CTk,為Tk+RTTk/2If T0CTk重新讀取T0的值將節(jié)點k的新時基T0+RTTk/2發(fā)送到節(jié)點kelse將節(jié)點0的時基值設(shè)置為CTkDIFF=|T0-CTk|If(DIFF<LTHRES)Xk=Xk*XNLESSIf(DIFF>UTHRES)Xk=Xk/XNMORE重新開始等待Xk,并且循環(huán)等待下一個Xi到期其中節(jié)點k不同于節(jié)點零作為對RTT估計數(shù)據(jù)包的應(yīng)答,在返回之前,在各數(shù)據(jù)包中放入當(dāng)前Tk。當(dāng)接收到設(shè)置時間的數(shù)據(jù)包時,將Tk設(shè)置為其中包含的值。
表2將RTTk設(shè)置為0重復(fù)n次將TS設(shè)置為發(fā)送時間向節(jié)點k發(fā)送估計數(shù)據(jù)包等待返回數(shù)據(jù)包到達將RTT設(shè)置為到達時間-TSIf RTT無效返回指示不能估計RTTkRTTk=RTTk+RTT設(shè)置RTTk=RTTk/n為了檢查RTT是否有效If(RTT<MINrtt)返回RTT無效If(RTT<Ertt+3*STDrtt)返回RTT無效If(RTT>Ertt+3*STDrtt)返回RTT無效返回RTT有效為了應(yīng)答節(jié)點k的估計數(shù)據(jù)包一旦收到估計數(shù)據(jù)包,就將Tk放入到數(shù)據(jù)包中,并回送到節(jié)點0盡管參照最佳實施方式具體展示并說明了本發(fā)明,然而熟練技術(shù)人員可以理解,可以在形式和細(xì)節(jié)方面對其進行各種更改,而并不背離本發(fā)明的精神和范圍。
權(quán)利要求
1.一種用于多節(jié)點數(shù)據(jù)處理系統(tǒng)內(nèi)之單調(diào)時間同步的方法,該方法包括以下步驟將n個節(jié)點中的一個節(jié)點指定為節(jié)點零;初始化再同步;估計將數(shù)據(jù)從所述節(jié)點零傳輸?shù)剿龆喙?jié)點數(shù)據(jù)處理系統(tǒng)中的某個目標(biāo)節(jié)點所需要的時間周期;如果所述目標(biāo)節(jié)點的時間領(lǐng)先于所述節(jié)點零的時間,則更新所述節(jié)點零的時間;如果所述節(jié)點零的時間領(lǐng)先于所述目標(biāo)節(jié)點的時間,則更新所述目標(biāo)節(jié)點的時間;對所述多節(jié)點數(shù)據(jù)處理系統(tǒng)中的所有其他節(jié)點,重復(fù)上面所述步驟。
2.權(quán)利要求1的方法,其中估計將數(shù)據(jù)從所述節(jié)點零傳輸?shù)剿龆喙?jié)點數(shù)據(jù)處理系統(tǒng)中的某個目標(biāo)節(jié)點所需要的時間周期,還包括記錄所述節(jié)點零的時間,并從所述節(jié)點零向所述目標(biāo)節(jié)點發(fā)送一個數(shù)據(jù)包;在所述節(jié)點零,記錄所述數(shù)據(jù)包到達所述目標(biāo)節(jié)點的時間;通過從所述數(shù)據(jù)包到達所述目標(biāo)節(jié)點的時間中,減去發(fā)送所述數(shù)據(jù)包的時間,計算數(shù)據(jù)包的傳輸時間;確定所述傳輸時間的有效性;將傳輸時間計算循環(huán)預(yù)定次數(shù);以及求所述傳輸時間計算結(jié)果的平均值。
3.權(quán)利要求2的方法,其中確定傳輸時間計算的有效性,還包括將各往返時間估計值與已知的最小值、期望值減去標(biāo)準(zhǔn)偏差的3倍的值,以及期望值加標(biāo)準(zhǔn)偏差的3倍的值進行比較,其中可根據(jù)設(shè)計信息獲得所述最小值、標(biāo)準(zhǔn)偏差以及期望值。
4.權(quán)利要求2的方法,還包括從所述目標(biāo)節(jié)點接收一個時基值;除最后的所述應(yīng)答數(shù)據(jù)包之外,拋棄所有應(yīng)答數(shù)據(jù)包;以及根據(jù)時間值與從所述目標(biāo)節(jié)點接收的所述時間值的比較結(jié)果,調(diào)整所述節(jié)點零或所述目標(biāo)節(jié)點上的所述時基。
5.權(quán)利要求4的方法,還包括根據(jù)所述目標(biāo)節(jié)點時基相對于節(jié)點零時基的漂移速度的確定,調(diào)整再同步間隔。
6.權(quán)利要求5的方法,還包括當(dāng)所述目標(biāo)節(jié)點的時基相對于所述節(jié)點零的時基快速漂移時,提高再同步節(jié)點的頻率;以及當(dāng)所述目標(biāo)節(jié)點的時基相對于所述節(jié)點零的時基慢速漂移時,降低再同步節(jié)點的頻率。
7.一種計算機可讀介質(zhì)內(nèi)的計算機程序產(chǎn)品,該介質(zhì)具有用于多節(jié)點數(shù)據(jù)處理系統(tǒng)內(nèi)之單調(diào)時間同步的指令,包括以下指令用于將n個節(jié)點中的一個節(jié)點指定為節(jié)點零的所述計算機程序產(chǎn)品內(nèi)的指令;用于初始化再同步的所述計算機程序產(chǎn)品內(nèi)的指令;用于以下估計的所述計算機程序產(chǎn)品內(nèi)的指令,即估計將數(shù)據(jù)從所述節(jié)點零傳輸?shù)剿龆喙?jié)點數(shù)據(jù)處理系統(tǒng)中的某個目標(biāo)節(jié)點所需要的時間周期;用于以下處理的所述計算機程序產(chǎn)品內(nèi)的指令,即如果所述目標(biāo)節(jié)點的時間領(lǐng)先于所述節(jié)點零的時間,則更新所述節(jié)點零的時間;用于以下處理的所述計算機程序產(chǎn)品內(nèi)的指令,即如果所述節(jié)點零的時間領(lǐng)先于所述目標(biāo)節(jié)點的時間,則更新所述目標(biāo)節(jié)點的時間;用于以下處理的所述計算機程序產(chǎn)品內(nèi)的指令,即對所述多節(jié)點數(shù)據(jù)處理系統(tǒng)中的所有其他節(jié)點,重復(fù)上面所述步驟。
8.權(quán)利要求7的計算機程序產(chǎn)品,其中用于估計將數(shù)據(jù)從所述節(jié)點零傳輸?shù)剿龆喙?jié)點數(shù)據(jù)處理系統(tǒng)中的某個目標(biāo)節(jié)點所需要的時間周期的指令,還包括用于以下處理的所述計算機程序產(chǎn)品內(nèi)的指令,即記錄所述節(jié)點零的時間,并從所述節(jié)點零向所述目標(biāo)節(jié)點發(fā)送一個數(shù)據(jù)包;用于以下處理的所述計算機程序產(chǎn)品內(nèi)的指令,即在所述節(jié)點零,記錄所述數(shù)據(jù)包到達所述目標(biāo)節(jié)點的時間;用于以下處理的所述計算機程序產(chǎn)品內(nèi)的指令,即通過從所述數(shù)據(jù)包到達所述目標(biāo)節(jié)點的時間中,減去發(fā)送所述數(shù)據(jù)包的時間,計算數(shù)據(jù)包的傳輸時間;用于確定所述傳輸時間的有效性的所述計算機程序產(chǎn)品內(nèi)的指令;用于將傳輸時間的計算循環(huán)預(yù)定次數(shù)的所述計算機程序產(chǎn)品內(nèi)的指令;以及用于求所述傳輸時間計算結(jié)果的平均值的所述計算機程序產(chǎn)品內(nèi)的指令。
9.權(quán)利要求7的計算機程序產(chǎn)品,其中用于確定有效性的指令還包括用于以下處理的所述計算機程序產(chǎn)品內(nèi)的指令,即將各往返時間估計值與已知的最小值、期望值減去標(biāo)準(zhǔn)偏差的3倍的值,以及期望值加標(biāo)準(zhǔn)偏差的3倍的值進行比較,其中可根據(jù)設(shè)計信息獲得所述最小值、標(biāo)準(zhǔn)偏差以及期望值。
10.權(quán)利要求8的計算機程序產(chǎn)品,還包括用于從所述目標(biāo)節(jié)點接收一個時基值的所述計算機程序產(chǎn)品內(nèi)的指令;用于以下處理的所述計算機程序產(chǎn)品內(nèi)的指令,即除最后的所述應(yīng)答數(shù)據(jù)包之外,拋棄所有應(yīng)答數(shù)據(jù)包;以及用于以下處理的所述計算機程序產(chǎn)品內(nèi)的指令,即根據(jù)時間值與從所述目標(biāo)節(jié)點接收的所述時間值的比較結(jié)果,調(diào)整所述節(jié)點零或所述目標(biāo)節(jié)點上的所述時基值。
11.權(quán)利要求8的計算機程序產(chǎn)品,還包括用于以下處理的所述計算機程序產(chǎn)品內(nèi)的指令,即根據(jù)所述目標(biāo)節(jié)點之時基相對于節(jié)點零之時基的漂移速度的確定,調(diào)整再同步間隔。
12.權(quán)利要求11的計算機程序產(chǎn)品,還包括用于以下處理的所述計算機程序產(chǎn)品內(nèi)的指令,即當(dāng)所述目標(biāo)節(jié)點的時基相對于所述節(jié)點零的時基快速漂移時,提高再同步節(jié)點的頻率;以及用于以下處理的所述計算機程序產(chǎn)品內(nèi)的指令,即當(dāng)所述目標(biāo)節(jié)點的時基相對于所述節(jié)點零的時基慢速漂移時,降低再同步節(jié)點的頻率。
13.一種多節(jié)點數(shù)據(jù)處理系統(tǒng),該系統(tǒng)包括一個用于傳輸數(shù)據(jù)的系統(tǒng)互連;n個節(jié)點,其中各節(jié)點包括多個連接到局部總線的處理器;至少一個連接到所述局部總線的用于存儲所述數(shù)據(jù)的存儲器;以及一個連接到所述局部總線的用于控制所述存儲器的控制器,其中所述控制器還連接到所述系統(tǒng)互連;所述多個處理器中之每個處理器內(nèi)的一個寄存器,該寄存器用于記錄并報告所述多個節(jié)點中之各節(jié)點內(nèi)的時間值;一個指定的節(jié)點零;以及用于同步所述n個節(jié)點之間的時間值的邏輯裝置。
14.權(quán)利要求13的多節(jié)點數(shù)據(jù)處理系統(tǒng),其中用于同步在所述n個節(jié)點之間的時間值的所述邏輯裝置,還包括用于將n個節(jié)點的中一個節(jié)點指定為節(jié)點零的鑒別裝置;用于初始化再同步的裝置;用于以下估計的計算裝置,即估計將數(shù)據(jù)從所述節(jié)點零傳輸?shù)剿龆喙?jié)點數(shù)據(jù)處理系統(tǒng)中的某個目標(biāo)節(jié)點所需要的時間周期;用于確定所述傳輸時間的有效性的確認(rèn)裝置;更新裝置,用于如果所述目標(biāo)節(jié)點的時間領(lǐng)先于所述節(jié)點零的時間,則更新所述節(jié)點零的時間;更新裝置,用于如果所述節(jié)點零的時間領(lǐng)先于所述目標(biāo)節(jié)點的時間,則更新所述目標(biāo)節(jié)點的時間;以及邏輯裝置,用于在所述多節(jié)點數(shù)據(jù)處理系統(tǒng)中的所有其他節(jié)點上,設(shè)置時基值。
15.權(quán)利要求14的多節(jié)點數(shù)據(jù)處理系統(tǒng),其中于確定有效性的確認(rèn)裝置,還包括用于比較各個往返時間估計值與計算值的鑒別裝置,其中所述計算值包括一個已知的最小值、期望值減去標(biāo)準(zhǔn)偏差的3倍的值,以及期望值加標(biāo)準(zhǔn)偏差的3倍的值,其中可根據(jù)設(shè)計信息獲得所述最小值、標(biāo)準(zhǔn)偏差以及期望值。
16.權(quán)利要求14的多節(jié)點數(shù)據(jù)處理系統(tǒng),其中用于估計將數(shù)據(jù)從所述節(jié)點零傳輸?shù)剿龆喙?jié)點數(shù)據(jù)處理系統(tǒng)中的某個目標(biāo)節(jié)點所需要的時間周期的所述估計裝置,還包括用于從所述節(jié)點零向所述目標(biāo)節(jié)點發(fā)送數(shù)據(jù)包的傳輸裝置;用于在所述節(jié)點零從所述目標(biāo)節(jié)點接收時間值的裝置;以及用于比較所述目標(biāo)節(jié)點的時間與所述節(jié)點零的時間的判別裝置。
17.權(quán)利要求14的多節(jié)點數(shù)據(jù)處理系統(tǒng),還包括用于根據(jù)從所述目標(biāo)節(jié)點接收的所述時間值,調(diào)整所述節(jié)點零或所述目標(biāo)節(jié)點上的時基值的邏輯裝置。
18.權(quán)利要求17的多節(jié)點數(shù)據(jù)處理系統(tǒng),還包括用于根據(jù)確定的所述目標(biāo)節(jié)點之時基相對于節(jié)點零之時基的漂移速度,調(diào)整再同步間隔的邏輯裝置。
19.權(quán)利要求18的多節(jié)點數(shù)據(jù)處理系統(tǒng),還包括用于當(dāng)所述目標(biāo)節(jié)點的時基相對于所述節(jié)點零的時基快速漂移時,提高再同步節(jié)點的頻率的同步裝置;以及用于當(dāng)所述目標(biāo)節(jié)點的時基相對于所述節(jié)點零的時基慢速漂移時,降低再同步節(jié)點的頻率的同步裝置。
全文摘要
一種用于多節(jié)點數(shù)據(jù)處理系統(tǒng)內(nèi)之單調(diào)時間同步的方法,該方法包括以下步驟:將n個節(jié)點中的一個節(jié)點指定為節(jié)點零;初始化再同步;估計將數(shù)據(jù)從所述節(jié)點零傳輸?shù)剿龆喙?jié)點數(shù)據(jù)處理系統(tǒng)中的某個目標(biāo)節(jié)點所需要的時間周期;如果所述目標(biāo)節(jié)點的時間領(lǐng)先于所述節(jié)點零的時間,則更新所述節(jié)點零的時間;如果所述節(jié)點零的時間領(lǐng)先于所述目標(biāo)節(jié)點的時間,則更新所述目標(biāo)節(jié)點的時間;對所述多節(jié)點數(shù)據(jù)處理系統(tǒng)中的所有其他節(jié)點,重復(fù)上面所述步驟。
文檔編號G06F1/12GK1314643SQ0013525
公開日2001年9月26日 申請日期2000年12月12日 優(yōu)先權(quán)日1999年12月14日
發(fā)明者弗里曼·利·勞森三世 申請人:國際商業(yè)機器公司