用于基于已刪除命令確定命令速率的系統(tǒng)和方法
【技術(shù)領(lǐng)域】
[0001] 本公開一般地涉及數(shù)據(jù)處理,更具體地說,涉及多處理器數(shù)據(jù)處理系統(tǒng)中的通信。
【背景技術(shù)】
[0002] -般地說,可以通過以下各項(xiàng)維護(hù)對(duì)稱多處理(SMP)系統(tǒng)中的存儲(chǔ)一致性:基于 目錄的一致性協(xié)議,其中通過參考一個(gè)或多個(gè)存儲(chǔ)目錄解決一致性,或者基于窺探的一致 性協(xié)議,其中通過在緩存代理之間傳遞消息解決一致性。隨著SMP系統(tǒng)擴(kuò)展到越來越大的 η路系統(tǒng),窺探一致性協(xié)議變得受到至少兩個(gè)設(shè)計(jì)約束,即,有關(guān)緩存代理中用于跟蹤請(qǐng)求 和關(guān)聯(lián)的一致性消息的排隊(duì)結(jié)構(gòu)的深度的限制,以及可用于消息傳遞的通信帶寬方面的限 制。
[0003] 為了解決有關(guān)緩存代理中排隊(duì)結(jié)構(gòu)的深度的限制,某些設(shè)計(jì)采用非阻塞窺探協(xié) 議,其不需要緩存代理來實(shí)現(xiàn)諸如消息隊(duì)列之類的消息跟蹤機(jī)制。相反,在非阻塞窺探協(xié) 議中,緩存代理的請(qǐng)求具有時(shí)間限制(意味著窺探器將在固定時(shí)間內(nèi)響應(yīng))并且對(duì)源節(jié)流 (以便確保公平劃分可用通信帶寬)。例如,可以在系統(tǒng)中的所有可能處理節(jié)點(diǎn)之間平均劃 分總系統(tǒng)帶寬(例如,經(jīng)由時(shí)分多路復(fù)用),以便在所有處理節(jié)點(diǎn)都發(fā)出請(qǐng)求的最壞情況下 確保一致性總線具有足夠的帶寬。但是,以這種方式平均劃分一致性總線帶寬將可用于任 何特定處理節(jié)點(diǎn)的一致性帶寬限制為不多于整體可用一致性帶寬的預(yù)定子集。此外,當(dāng)只 有幾個(gè)處理節(jié)點(diǎn)需要高帶寬時(shí),可以未充分使用系統(tǒng)的一致性帶寬。
【發(fā)明內(nèi)容】
[0004] 在一個(gè)或多個(gè)實(shí)施例中,所描述的一個(gè)或多個(gè)系統(tǒng)、設(shè)備、方法和/或過程可以: 經(jīng)由互連將速率主節(jié)點(diǎn)命令發(fā)送到多個(gè)處理節(jié)點(diǎn)中的至少一個(gè);確定接收到與所述速率 主節(jié)點(diǎn)命令關(guān)聯(lián)的指示已刪除命令的消息;確定與已刪除命令關(guān)聯(lián)的計(jì)數(shù)滿足閾值;以及 響應(yīng)于確定所述計(jì)數(shù)滿足所述閾值,經(jīng)由所述互連向所述處理節(jié)點(diǎn)提供指示命令速率的信 號(hào)。此外,可以響應(yīng)于確定接收到所述消息,遞增所述計(jì)數(shù)。多個(gè)處理節(jié)點(diǎn)中的所述至少一 個(gè)可以經(jīng)由所述互連接收指示所述命令速率的所述信號(hào),并且可以在經(jīng)由所述互連發(fā)出推 測(cè)命令中使用所述命令速率。
【附圖說明】
[0005] 當(dāng)閱讀以下詳細(xì)描述并且參考附圖時(shí),各實(shí)施例將變得顯而易見,這些附圖是:
[0006] 圖1提供根據(jù)一個(gè)或多個(gè)實(shí)施例的示例性數(shù)據(jù)處理系統(tǒng);
[0007] 圖2提供根據(jù)一個(gè)或多個(gè)實(shí)施例的示例性處理器單元;
[0008] 圖3A-3D提供根據(jù)一個(gè)或多個(gè)實(shí)施例的數(shù)據(jù)處理系統(tǒng)中的命令和響應(yīng)數(shù)據(jù)流;
[0009] 圖3Ε提供根據(jù)一個(gè)或多個(gè)實(shí)施例的耦合到互連的多處理系統(tǒng)的示例性圖;
[0010] 圖4提供根據(jù)一個(gè)或多個(gè)實(shí)施例的示出命令、一致性響應(yīng)和數(shù)據(jù)傳送序列的示例 性計(jì)時(shí)圖;
[0011] 圖5A-ro提供根據(jù)一個(gè)或多個(gè)實(shí)施例的過度使用(overcommit)協(xié)議的示例性計(jì) 時(shí)圖;
[0012] 圖6提供根據(jù)一個(gè)或多個(gè)實(shí)施例的過度使用系統(tǒng)的示例性框圖;
[0013] 圖7提供根據(jù)一個(gè)或多個(gè)實(shí)施例的過度使用隊(duì)列的示例性框圖;
[0014] 圖8提供根據(jù)一個(gè)或多個(gè)實(shí)施例的操作過度使用系統(tǒng)的示例性方法;
[0015] 圖9提供根據(jù)一個(gè)或多個(gè)實(shí)施例的操作動(dòng)態(tài)速率節(jié)流器的示例性方法;
[0016] 圖10提供根據(jù)一個(gè)或多個(gè)實(shí)施例的操作動(dòng)態(tài)速率節(jié)流的另一個(gè)示例性方法;
[0017] 圖11提供根據(jù)一個(gè)或多個(gè)實(shí)施例的操作命令優(yōu)先級(jí)超控主節(jié)點(diǎn)的示例性方法;
[0018] 圖12提供根據(jù)一個(gè)或多個(gè)實(shí)施例的操作命令優(yōu)先級(jí)超控客戶機(jī)的示例性方法;
[0019] 圖13提供根據(jù)一個(gè)或多個(gè)實(shí)施例的示例性計(jì)時(shí)系統(tǒng),該系統(tǒng)可以確定在基于動(dòng) 態(tài)系統(tǒng)工作負(fù)載最大化性能和能源效率的同時(shí)處理器單元能夠支持的最大命令數(shù)量;以及
[0020] 圖14提供根據(jù)一個(gè)或多個(gè)實(shí)施例的在計(jì)時(shí)系統(tǒng)中確定命令閾值的示例性方法。
【具體實(shí)施方式】
[0021] 在一個(gè)或多個(gè)實(shí)施例中,在此描述的系統(tǒng)、方法和/或過程可以提供和/或?qū)崿F(xiàn)結(jié) 構(gòu)控制器(FBC) (fabric controller),該控制器可以與可伸縮高速緩存一致多處理器系統(tǒng) 一起使用。例如,F(xiàn)BC可以提供一致和非一致的存儲(chǔ)器訪問、輸入/輸出(I/O)操作、中斷 通信和/或系統(tǒng)控制器通信等。例如,F(xiàn)BC可以在存儲(chǔ)系統(tǒng)和存儲(chǔ)子系統(tǒng)等的一個(gè)或多個(gè) 中提供命令和數(shù)據(jù)操作的接口、緩沖和排序。
[0022] 在一個(gè)或多個(gè)實(shí)施例中,F(xiàn)BC鏈路可以是或者包括分離事務(wù)、多路復(fù)用命令和數(shù)據(jù) 總線,其可以為多個(gè)處理節(jié)點(diǎn)(例如,多個(gè)多處理器單元的硬件實(shí)現(xiàn))提供支持。例如,F(xiàn)BC 鏈路可以為多個(gè)處理器單元提供支持。
[0023] 在一個(gè)或多個(gè)實(shí)施例中,可以通過使用基于非阻塞窺探的一致性協(xié)議維護(hù)和/或 獲得高速緩存一致性。例如,起始處理節(jié)點(diǎn)(例如,多處理器單元的硬件實(shí)現(xiàn))可以將命 令廣播到窺探器,窺探器可以將一致性響應(yīng)(例如,按順序)返回到起始處理節(jié)點(diǎn),并且可 以將組合窺探響應(yīng)廣播回到窺探器。在一個(gè)或多個(gè)實(shí)施例中,可以支持多個(gè)級(jí)別(例如,范 圍)的窺探過濾(例如,節(jié)點(diǎn)、組、遠(yuǎn)程組、系統(tǒng)等),以便利用數(shù)據(jù)和/或處理線程的本地 性。例如,這種方法可以減少所需的互鏈帶寬量,可以減少系統(tǒng)范圍命令廣播需要的帶寬, 和/或可以維護(hù)使用基于窺探的一致性協(xié)議的硬件實(shí)施的一致性。
[0024] 在一個(gè)或多個(gè)實(shí)施例中,所謂的"節(jié)點(diǎn)范圍"是范圍限于單個(gè)集成電路芯片(例 如,單個(gè)處理器單元或處理節(jié)點(diǎn))中的窺探器的事務(wù),并且所謂的"組范圍"是范圍限于在 一組物理處理節(jié)點(diǎn)上發(fā)現(xiàn)的窺探器的命令廣播范圍的事務(wù)。如果使用更有限的廣播范圍 (例如,節(jié)點(diǎn)或組)不能一致地完成事務(wù),則基于窺探的一致性協(xié)議可以強(qiáng)迫將命令重新發(fā) 給系統(tǒng)的其它處理節(jié)點(diǎn)(例如,包括系統(tǒng)的所有處理節(jié)點(diǎn)的組或系統(tǒng))。
[0025] 現(xiàn)在轉(zhuǎn)到圖1,示出根據(jù)一個(gè)或多個(gè)實(shí)施例的示例性數(shù)據(jù)處理系統(tǒng)100。如圖所 示,數(shù)據(jù)處理系統(tǒng)100包括處理節(jié)點(diǎn)110A-110D,它們可以用于處理數(shù)據(jù)和/或指令。在一 個(gè)或多個(gè)實(shí)施例中,數(shù)據(jù)處理系統(tǒng)100可以是或者包括高速緩存一致對(duì)稱多處理器(SMP) 數(shù)據(jù)處理系統(tǒng)。如圖所示,處理節(jié)點(diǎn)110A-110D耦合到系統(tǒng)互連120(例如,互連結(jié)構(gòu)),系 統(tǒng)互連120可以用于傳送地址、數(shù)據(jù)和控制信息。系統(tǒng)互連120例如可以實(shí)現(xiàn)為總線互連、 交換互連和/或混合互連等。
[0026] 在一個(gè)或多個(gè)實(shí)施例中,每個(gè)處理節(jié)點(diǎn)110A-110D可以實(shí)現(xiàn)為包括多個(gè)處理器 單元112的多芯片模塊(MCM),其中每個(gè)處理器單元112A1-112D4可以實(shí)現(xiàn)為集成電路芯 片。如圖所示,處理節(jié)點(diǎn)IlOA可以包括處理器單元112A1-112A4和系統(tǒng)存儲(chǔ)器114A;處 理節(jié)點(diǎn)IlOB可以包括處理器單元112B1-112B4和系統(tǒng)存儲(chǔ)器114B ;處理節(jié)點(diǎn)IlOC可以包 括處理器單元112C1-112C4和系統(tǒng)存儲(chǔ)器114C ;以及處理節(jié)點(diǎn)IlOD可以包括處理器單元 112D1-112D4和系統(tǒng)存儲(chǔ)器114D。在一個(gè)或多個(gè)實(shí)施例中,系統(tǒng)存儲(chǔ)器114A-114D包括共 享系統(tǒng)存儲(chǔ)器,并且通??梢杂蓴?shù)據(jù)處理系統(tǒng)100的任何處理器單元112讀取和寫入。
[0027] 如圖所示,每個(gè)處理節(jié)點(diǎn)110A-110D可以包括相應(yīng)的互連116A-116D,它們可以以 通信方式直接或間接耦合到互連120。如圖所示,處理器單元112A1-112A4和系統(tǒng)存儲(chǔ)器 114A可以耦合到互連116A (例如,互連結(jié)構(gòu)),處理器單元112B1-112B4和系統(tǒng)存儲(chǔ)器114B 可以耦合到互連116B (例如,互連結(jié)構(gòu)),處理器單元112C1-112C4和系統(tǒng)存儲(chǔ)器114C可以 耦合到互連116C (例如,互連結(jié)構(gòu)),并且處理器單元112D1-112D4和系統(tǒng)存儲(chǔ)器114D可以 耦合到互連116D (例如,互連結(jié)構(gòu))。
[0028] 在一個(gè)或多個(gè)實(shí)施例中,包括在相應(yīng)的處理節(jié)點(diǎn)110中的處理器單元 112A1-112D4可以耦合以便彼此通信。在一個(gè)實(shí)例中,處理器單元112A1-112A4可以經(jīng)由互 連116A和/或互連120與其它處理器單元通信。在第二實(shí)例中,處理器單元112B1-112B4 可以經(jīng)由互連116B和/或互連120與其它處理器單元通信。在第三實(shí)例中,處理器單元 112C1-112C4可以經(jīng)由互連116C和/或互連120與其它處理器單元通信。在另一個(gè)實(shí)例 中,處理器單元112D1-112D4可以經(jīng)由互連116D和/或互連120與其它處理器單元通信。
[0029] 在一個(gè)或多個(gè)實(shí)施例中,互連(例如,互連116八、1168、116(:、1160、120等)可以包 括網(wǎng)絡(luò)拓?fù)?,其中?jié)點(diǎn)可以經(jīng)由網(wǎng)絡(luò)交換機(jī)、縱橫式交換機(jī)等耦合到彼此。例如,互連可以 確定物理廣播,其中處理