對稱多處理器(smp)域的動態(tài)形成的制作方法
【技術(shù)領(lǐng)域】
[0001] 本發(fā)明通常涉及計算機(jī)系統(tǒng),并且更具體地涉及對稱多處理器(SMP)域的動態(tài)形 成。
【背景技術(shù)】
[0002] 在當(dāng)今社會,計算機(jī)系統(tǒng)是尋常的。可以在工作場所、家庭或?qū)W校中找到計算機(jī)系 統(tǒng)。計算機(jī)系統(tǒng)可以包括數(shù)據(jù)存儲系統(tǒng)或磁盤存儲系統(tǒng),以處理并存儲數(shù)據(jù)。通常,計算機(jī) 系統(tǒng)被設(shè)計用于通過使用操作系統(tǒng)以管理執(zhí)行應(yīng)用程序所需的計算機(jī)資源來接受并且執(zhí) 行由用戶提供的各種應(yīng)用程序。朝向提高計算機(jī)系統(tǒng)性能的趨勢經(jīng)常聚焦在提供更快、更 高效的處理器上。傳統(tǒng)的數(shù)據(jù)處理系統(tǒng)通常包括通過系統(tǒng)總線與存儲器和I/O部件以及其 他處理器部件互連的單個處理器。隨著技術(shù)改進(jìn),存在通過對稱多處理器(SMP)拓?fù)浣Y(jié)構(gòu) 中的SMP域的動態(tài)形成來提供更快和更高效數(shù)據(jù)處理系統(tǒng)的需求。
【發(fā)明內(nèi)容】
[0003] 在一個實施例中,提供了一種用于在計算環(huán)境中使用至少一個處理器設(shè)備來動態(tài) 形成對稱多處理器(SMP)域的方法。在一個實施例中,僅通過示例的方式,SMP節(jié)點經(jīng)由使 用SMP光學(xué)連接開關(guān)的SMP插座而被動態(tài)地配置,以將連接至SMP節(jié)點的SMP光學(xué)連接鏈 路動態(tài)地連接以基于針對用于交換SMP相干信息的相干通信量的最佳匹配預(yù)期工作負(fù)載 來形成SMP域。SMP節(jié)點被動態(tài)地添加至SMP域之一和/或SMP域之一被動態(tài)地移除。
[0004] 在另一實施例中,提供了一種用于在計算環(huán)境中使用至少一個處理器設(shè)備來動態(tài) 形成對稱多處理器(SMP)域的計算機(jī)系統(tǒng)。計算機(jī)系統(tǒng)包括計算機(jī)可讀介質(zhì)以及與計算機(jī) 可讀介質(zhì)可操作通信的處理器。在一個實施例中,僅通過示例的方式,處理器經(jīng)由使用SMP 光學(xué)連接開關(guān)的SMP插座動態(tài)地配置SMP節(jié)點,以將連接至SMP節(jié)點的SMP光學(xué)連接的鏈 路動態(tài)地連接以基于針對用于交換SMP相干信息的相干通信量的最佳匹配預(yù)期工作負(fù)載 來形成SMP域。SMP節(jié)點被動態(tài)地添加至SMP域之一和/或從SMP域之一被動態(tài)地移除。
[0005] 在又一實施例中,提供了一種用于在計算環(huán)境中使用至少一個處理器設(shè)備來動態(tài) 形成對稱多處理器(SMP)域的計算機(jī)程序產(chǎn)品。計算機(jī)可讀存儲介質(zhì)具有存儲在其上的計 算機(jī)可讀程序代碼部分。計算機(jī)可讀程序代碼部分包括第一可執(zhí)行部分,其經(jīng)由使用SMP 光學(xué)連接開關(guān)的SMP插座動態(tài)地配置SMP節(jié)點,以將連接至SMP節(jié)點的SMP光學(xué)連接的鏈 路動態(tài)地連接以基于針對用于交換SMP相干信息的相干通信量的最佳匹配預(yù)期工作負(fù)載 來形成SMP域。SMP節(jié)點被動態(tài)地添加至SMP域之一和/或從SMP域之一被動態(tài)地移除。
[0006] 除了前述示例性方法實施例之外,提供了其他示例性系統(tǒng)和計算機(jī)產(chǎn)品實施例并 且提供了相關(guān)優(yōu)點。已經(jīng)提供前述
【發(fā)明內(nèi)容】
部分用于以簡化形式介紹在以下【具體實施方式】 部分中進(jìn)一步描述的概念的選集。該
【發(fā)明內(nèi)容】
部分并非旨在標(biāo)識請求保護(hù)主題的關(guān)鍵特征 或必要特征,也并非旨在用作輔助確定請求保護(hù)主題的范圍。請求保護(hù)的主題并不限于解 決了【背景技術(shù)】部分中所述任何或全部缺點的實施方式。
【附圖說明】
[0007] 為了將容易理解本發(fā)明的優(yōu)點,將通過參照附圖中所示的具體實施例來展現(xiàn)如上 簡要描述的本發(fā)明的更具體描述。應(yīng)該理解的是,這些附圖示出了本發(fā)明的實施例并且不 應(yīng)由此視作限制了其范圍,將通過使用附圖采用附加特性和細(xì)節(jié)來描述和解釋本發(fā)明,在 附圖中:
[0008] 圖1是示出了其中可以實現(xiàn)本發(fā)明的方面的具有示例存儲設(shè)備的計算機(jī)系統(tǒng)環(huán) 境的方框圖;
[0009] 圖2是示出了其中可以實現(xiàn)本發(fā)明的方面的光學(xué)連接存儲器系統(tǒng)的硬件結(jié)構(gòu)的 方框圖;
[0010] 圖3是示出了在光學(xué)連接存儲器系統(tǒng)中處理器設(shè)計的硬件結(jié)構(gòu)的方框圖;
[0011] 圖4是示出了其中可以實現(xiàn)本發(fā)明的方面的計算機(jī)系統(tǒng)中用于通過光學(xué)互連組 構(gòu)來切換存儲器的硬件結(jié)構(gòu)的方框圖;
[0012] 圖5是示出了其中可以實現(xiàn)本發(fā)明的方面的具有通過光學(xué)開關(guān)連接的對稱多處 理器(SMP)鏈路的SMP節(jié)點的方框圖;
[0013] 圖6是示出了其中可以實現(xiàn)本發(fā)明的方面的在對稱多處理器(SMP)節(jié)點之間形成 環(huán)形拓?fù)浣Y(jié)構(gòu)的示例性SMP組構(gòu)拓?fù)浣Y(jié)構(gòu)的方框圖;
[0014] 圖7是示出了其中可以實現(xiàn)本發(fā)明的方面的具有形成環(huán)形拓?fù)浣Y(jié)構(gòu)的對稱多處 理器(SMP)鏈路的SMP節(jié)點的方框圖;
[0015] 圖8是示出了其中可以實現(xiàn)本發(fā)明的方面的具有拆分成至少2個不同域的對稱多 處理器(SMP)鏈路的SMP節(jié)點的方框圖;
[0016] 圖9是示出了其中可以實現(xiàn)本發(fā)明的方面的用于動態(tài)形成對稱多處理器(SP)域 的示例性備選方法的流程圖;以及
[0017] 圖10是示出了其中可以實現(xiàn)本發(fā)明的方面的用于動態(tài)形成對稱多處理器(SMP) 域的示例性備選方法的流程圖。
【具體實施方式】
[0018] 在一個實施例中,如在此所述,對稱多處理(SMP)是使用共享共用操作系統(tǒng)和存 儲器的多個處理器的應(yīng)用程序和操作系統(tǒng)的處理。操作系統(tǒng)的單個副本對于經(jīng)由某形式的 通信路徑來共享對于共用存儲器的等同訪問的所有處理器是可用的。
[0019] 在一個實施例中,SMP系統(tǒng)的目標(biāo)在于在可用處理器之間動態(tài)地平衡工作負(fù)載,優(yōu) 化資源的使用并且為用戶提供更快的操作。此外,在一個實施例中,對稱多處理器(SMP)涉 及多處理器計算機(jī)硬件和軟件體系結(jié)構(gòu),其中兩個或多個相同處理器被連接至單個共享存 儲器,具有對于所有輸入/輸出(I/O)設(shè)備的完全訪問,以及由單個操作系統(tǒng)(0S)實例所 控制,并且其中等同地對待所有處理器,而沒有任何一個保留用于特殊目的。SMP可以在高 速緩存層次結(jié)構(gòu)中實施理論上的PRAM (并行RAM)。在一個實施例中,共享存儲器內(nèi)容的副 本在本地高速緩存中。當(dāng)這些副本改變(寫入)時,相干廣播需要通告每個處理器。發(fā)生 的改變(例如寫入)越多,廣播所需要的帶寬越多。對于更多帶寬的需求取決于應(yīng)用:一些 工作負(fù)載要求極少帶寬,而一些要求大量帶寬。給定相干通信量帶寬預(yù)算(例如組構(gòu)的總 帶寬的百分比(%)),可以計算SMP域的最大大小。在一個實施例中,取決于預(yù)先考慮的應(yīng) 用的最壞情形的混合,這是固定大小。此外,相干通信量從小量(例如1%)的相干通信量 (在此使用在以太網(wǎng)之上基于軟件的SMP)改變至大量(至少10% )的相干通信量。不確 定的更新次數(shù)基于應(yīng)用(以及組構(gòu)的距離/延遲)而改變。在一個實施例中,SMP編程模 型對于機(jī)架和數(shù)據(jù)中心中的許多節(jié)點的能耗縮放是非常方便并且強(qiáng)大的。
[0020] 應(yīng)該注意的是,術(shù)語"小"和"大"是通常組構(gòu)可以支持的總帶寬的百分比的相對性 表達(dá)。例如,如果SMP組構(gòu)支持的總對分帶寬是10T字節(jié)/秒,并且在組構(gòu)中存在8個SMP 節(jié)點,一個百分點(例如1%)可以稱作小并且大可以至少為十個百分點(例如10%)或更 大。相干通信量是在SMP組構(gòu)中發(fā)送至需要改變它們本地高速緩存副本(使其無效)的所 有節(jié)點的信息,因為一個節(jié)點已經(jīng)改變了本地高速緩存中副本所代表的存儲器位置,使得 副本不再有效。相干通信量因此是由SMP連接節(jié)點組成的SMP組構(gòu)中存在的多少次寫入的 函數(shù)。對于一些應(yīng)用,如果所有節(jié)點保持改變高速緩存副本,這些通信量將是總帶寬的高百 分比,例如10%或更多。另一方面,其他應(yīng)用可以不需要這些更新,因為僅很少的節(jié)點將執(zhí) 行向存儲器位置的寫入,其副本已經(jīng)由SMP節(jié)點本地高速緩存。如果SMP中節(jié)點的數(shù)目非 常大,可能發(fā)生的是,這些更新更經(jīng)常達(dá)到組構(gòu)支持的大多數(shù)帶寬由這些更新消耗的程度。
[0021] 然而,由于無法改變動態(tài)節(jié)點之間的接線,SMP組構(gòu)是固定的。分組交換無法在極 端用途所需的低延遲SMP處理高通信量。SMP鏈路具有高帶寬并且要求處理上的最小延遲, 然而不存在用于極端用途的外部交換機(jī),并且基于軟件的SMP是非常有限的(例如限定于 特定HPC應(yīng)用)。對于極端SMP用例,穿過多跳的延遲可以損害不相干性并且因此使得解決 方案無效。
[0022] 在一個實施例中,可以通過將兩個或多個處理器插座與專門鏈路連接以形成多處 理器來以固定方式形成SMP系統(tǒng)。在備選實施例中,可以形成SMP以實現(xiàn)在任何類型網(wǎng)絡(luò)鏈 路之上的基于軟件的SMP,而無需專門的網(wǎng)絡(luò)鏈路(硬件輔助的SMP/相干鏈路)。然而,在 這些方案中均存在若干問題。第一個(基于硬件)問題展現(xiàn)了對于連接至一個SMP中的單 獨的處理器(即插座)數(shù)目的限制。存在對這樣的連接的各種限制。例如,相干信息需要 向所有處理器廣播。處理器數(shù)目越大,這種相干組構(gòu)通信量放置在網(wǎng)絡(luò)上的負(fù)載越多。各 種濾波系統(tǒng)可以減少相干通信量,然而,非常難以利用數(shù)十和/或數(shù)千個處理器來創(chuàng)建SMP 系統(tǒng)。處理器越快則每個芯片中內(nèi)核數(shù)目越多,需要更多的帶寬并且一旦數(shù)據(jù)已經(jīng)改變則 需要越多的通信量(高速緩存讀取/寫入),這可以要求廣播以使得高速緩存副本無效。實 施了類似SMP功能的軟件系統(tǒng)是非常緩慢的并且依賴于異常(頁面中斷)以捕獲高速緩存 數(shù)據(jù)內(nèi)容的改變并且因此需要向SMP域中其他節(jié)點廣播。這種機(jī)制被限制于并未有效地并 行工作的非常孤立的處理器。
[0023] 因此,存在動態(tài)形成SMP域的需求,因為與SMP編程模型工作是非常容易和高效 的,并且也需要基于硬件(快速)的方案。這樣的方案可以受限于參與的處理器(例如,其 中每個具有多個內(nèi)核的插座)的最大數(shù)目,然而,這些插座的特定集合以及它們之間和內(nèi) 部SMP關(guān)系可以動態(tài)地改變。在一個實施例中,這樣的動態(tài)改變無需經(jīng)常發(fā)生(例如,可以 至多每隔幾秒而發(fā)生)。在一個實施例中,動態(tài)地形成的多個SMP域可以基于從插座的大的 群組的需求來開創(chuàng),并且每個SMP域的成員可以動態(tài)地改變,導(dǎo)致非常高效和快速的解決 方案。
[0024] 因此,在一個實施例中,通過使用光學(xué)開關(guān)以動態(tài)地連接在節(jié)點之外的SMP鏈路 的光學(xué)"引線"而將SMP域形成為由組構(gòu)路由所限定的可縮放拓?fù)浣Y(jié)構(gòu)。SMP節(jié)點可以被接 入和/或斷出,并且拆分為單獨的域(例如,類似于故障容忍考慮,其需要找到在壞節(jié)點周 圍的重新路由,壞節(jié)點是不根據(jù)設(shè)計、性能標(biāo)準(zhǔn)/閾值、用戶偏好而實現(xiàn)功能和/或基于檢 測到故障/錯誤的節(jié)點)。在一個實施例中,SMP鏈路協(xié)議具有允許動態(tài)改變的重試和重傳 功能。在一個實施例中,可以創(chuàng)建SMP域以在預(yù)期相干帶寬通信量分配內(nèi)從小工作負(fù)載到 大