專利名稱:數(shù)據(jù)處理系統(tǒng)和方法
技術(shù)領(lǐng)域:
本發(fā)明一般涉及數(shù)據(jù)處理系統(tǒng),尤其涉及改進(jìn)的用于數(shù)據(jù)處理系統(tǒng)的互連構(gòu)造。
背景技術(shù):
諸如服務(wù)器計(jì)算機(jī)系統(tǒng)之類的、傳統(tǒng)的對(duì)稱多處理器(SMP)計(jì)算機(jī)系統(tǒng)包括全部耦接到系統(tǒng)互連的多個(gè)處理單元,其中系統(tǒng)互連一般包括一條或多條地址、數(shù)據(jù)和控制總線。系統(tǒng)存儲(chǔ)器耦接到系統(tǒng)互連,該系統(tǒng)存儲(chǔ)器表示在多處理器計(jì)算機(jī)系統(tǒng)中最低等級(jí)的易失性存儲(chǔ)器,并且其通??捎伤刑幚韱卧L問以用于讀和寫訪問。為了減少對(duì)駐留在系統(tǒng)存儲(chǔ)器中的指令和數(shù)據(jù)的訪問延遲,每個(gè)處理單元通常還由相應(yīng)的多級(jí)高速緩存分級(jí)結(jié)構(gòu)所支持,該分級(jí)結(jié)構(gòu)中的較低級(jí)別(一個(gè)或多個(gè))可以由一個(gè)或多個(gè)處理器核心所共享。
發(fā)明內(nèi)容
隨著處理單元能夠操作的時(shí)鐘頻率上升以及系統(tǒng)規(guī)模增加,在處理單元之間經(jīng)由系統(tǒng)互連的通信延遲已經(jīng)變?yōu)殛P(guān)鍵的性能問題。為了解決這個(gè)性能問題,已經(jīng)提議和/或?qū)崿F(xiàn)了旨在在傳統(tǒng)的總線互連上提高性能和可伸縮性的各種互連設(shè)計(jì)。
本發(fā)明提供了改進(jìn)的數(shù)據(jù)處理系統(tǒng)、互連構(gòu)造以及數(shù)據(jù)處理系統(tǒng)中的通信方法。在一個(gè)實(shí)施例中,數(shù)據(jù)處理系統(tǒng)包括第一處理節(jié)點(diǎn)和第二處理節(jié)點(diǎn)。第一處理節(jié)點(diǎn)包括彼此耦接以便通信的多個(gè)第一處理單元,而且第二處理節(jié)點(diǎn)包括彼此耦接以便通信的多個(gè)第二處理單元。該多個(gè)第一處理單元中的每一個(gè)通過多個(gè)點(diǎn)到點(diǎn)鏈接中的相應(yīng)一個(gè)耦接到第二處理節(jié)點(diǎn)中的該多個(gè)第二處理單元中的相應(yīng)一個(gè)。
在以下詳細(xì)編寫的描述中,本發(fā)明的所有目的、特征、和優(yōu)點(diǎn)將變得明顯。
在所附權(quán)利要求中闡述了認(rèn)為是本發(fā)明的新穎特性的特征。然而,當(dāng)結(jié)合附圖閱讀時(shí),通過參考以下對(duì)說明性實(shí)施例的詳細(xì)說明,本發(fā)明以及優(yōu)選使用模式將得到最好的理解,在附圖中圖1是根據(jù)本發(fā)明的處理單元的高級(jí)框圖;圖2A是根據(jù)本發(fā)明的數(shù)據(jù)處理系統(tǒng)的第一示例性實(shí)施例的高級(jí)框圖;圖2B是根據(jù)本發(fā)明、其中耦接多個(gè)節(jié)點(diǎn)以形成超級(jí)節(jié)點(diǎn)的數(shù)據(jù)處理系統(tǒng)的第二示例性實(shí)施例的高級(jí)框圖;圖3是包括請(qǐng)求階段、部分響應(yīng)階段和組合響應(yīng)階段的示例性操作的時(shí)間-空間圖;圖4A是在圖2A的數(shù)據(jù)處理系統(tǒng)內(nèi)、全系統(tǒng)范圍的示例性操作的時(shí)間-空間圖;圖4B是在圖2A的數(shù)據(jù)處理系統(tǒng)內(nèi)、僅僅節(jié)點(diǎn)范圍的示例性操作的時(shí)間-空間圖;圖4C是圖2B的數(shù)據(jù)處理系統(tǒng)內(nèi)的示例性的超級(jí)節(jié)點(diǎn)廣播操作的時(shí)間-空間圖;圖5A-5C描述了在圖4C中描述的示例性超級(jí)節(jié)點(diǎn)廣播操作的信息流;圖5D-5E描述了根據(jù)本發(fā)明、用于示例性超級(jí)節(jié)點(diǎn)廣播操作的示例性數(shù)據(jù)流;圖6是示例性操作的時(shí)間-空間圖,其說明了任意數(shù)據(jù)處理系統(tǒng)拓?fù)浣Y(jié)構(gòu)的定時(shí)約束;圖7A-7B說明了根據(jù)本發(fā)明、用于第一和第二層鏈接的示例性鏈接信息分配;圖7C是包括在鏈接信息分配內(nèi)的、用于寫請(qǐng)求的部分響應(yīng)字段的示例性實(shí)施例;圖8是說明在操作的請(qǐng)求階段利用的、圖1中的互連邏輯部分的框圖;圖9是圖8中的本地中心(hub)地址啟動(dòng)緩沖器的更詳細(xì)框圖;圖10是圖8中的標(biāo)記FIFO隊(duì)列的更詳情框圖;圖11和12分別是圖8中的本地中心部分響應(yīng)FIFO隊(duì)列和遠(yuǎn)程中心部分響應(yīng)FIFO隊(duì)列的更詳細(xì)框圖;圖13A-13D是分別描述在本地主設(shè)備(master)、本地中心、遠(yuǎn)程中心、和遠(yuǎn)程葉子處的操作中的請(qǐng)求階段的流程圖;圖13E是根據(jù)本發(fā)明、在窺探器處生成部分響應(yīng)的示例性方法的高級(jí)邏輯流程圖;圖14是說明在操作的部分響應(yīng)階段中利用的圖1中的互連邏輯部分的框圖;圖15A-15C是分別描述在遠(yuǎn)程葉子、遠(yuǎn)程中心、本地中心、和本地主設(shè)備處的操作中的部分響應(yīng)階段的流程圖;圖16是說明在操作的組合響應(yīng)階段中利用的圖1中的互連邏輯部分的框圖;圖17A-7C是分別描述在本地中心、遠(yuǎn)程中心、和遠(yuǎn)程葉子處的操作中的組合響應(yīng)階段的流程圖;圖18是圖2A或者圖2B中的數(shù)據(jù)處理系統(tǒng)的示例性窺探組件的更詳細(xì)框圖。
具體實(shí)施例方式
1.處理單元和數(shù)據(jù)處理系統(tǒng)現(xiàn)在參見附圖,并特別參見圖1,其中說明了根據(jù)本發(fā)明的處理單元100的示例性實(shí)施例的高級(jí)框圖。在所描述的實(shí)施例中,處理單元100是包括用于獨(dú)立地處理指令和數(shù)據(jù)的兩個(gè)處理器核心102a、102b的單個(gè)集成電路。每個(gè)處理器核心102至少包括用于取出和排序指令以便執(zhí)行的指令定序單元(ISU)104以及用于執(zhí)行指令的一個(gè)或多個(gè)執(zhí)行單元106。由執(zhí)行單元106執(zhí)行的指令可以包括,例如,定點(diǎn)和浮點(diǎn)算術(shù)指令、邏輯指令、以及請(qǐng)求對(duì)存儲(chǔ)塊的讀和寫訪問的指令。
每個(gè)處理器核心102a、102b的操作由多級(jí)易失性存儲(chǔ)器分級(jí)結(jié)構(gòu)所支持,該結(jié)構(gòu)在其最低級(jí)別具有一個(gè)或多個(gè)共享的系統(tǒng)存儲(chǔ)器132(圖1中僅僅示出其中之一),并且在其較高級(jí)別具有一級(jí)或多級(jí)高速緩沖存儲(chǔ)器。如同所示,處理單元100包括集成存儲(chǔ)控制器(IMC),其響應(yīng)于從處理器核心102a、102b接收的請(qǐng)求以及由窺探器在互連構(gòu)造(如下所述)上窺探的操作,控制對(duì)系統(tǒng)存儲(chǔ)器132的讀和寫訪問。
在該說明性實(shí)施例中,處理單元100的高速緩沖存儲(chǔ)器分級(jí)結(jié)構(gòu)包括在每個(gè)處理器核心102a、102b內(nèi)的貫穿存儲(chǔ)(store-through)第一級(jí)(L1)高速緩存108,以及由處理單元100的所有處理器核心102a、102b共享的第二級(jí)(L2)高速緩存110。L2高速緩存110包括L2陣列和目錄114、主設(shè)備112和窺探器116。主設(shè)備112啟動(dòng)在互連構(gòu)造上的事務(wù),并且響應(yīng)于從相關(guān)聯(lián)的處理器核心102a、102b接收的存儲(chǔ)器訪問(及其他)請(qǐng)求而訪問L2陣列和目錄114。窺探器116檢測(cè)在互連構(gòu)造上的操作,提供適當(dāng)?shù)捻憫?yīng),并且執(zhí)行操作所需要的、對(duì)L2陣列和目錄114的任何訪問。雖然所說明的高速緩存分級(jí)結(jié)構(gòu)僅僅包括二級(jí)高速緩存,但是本領(lǐng)域技術(shù)人員將理解,替換實(shí)施例可以包括另外級(jí)別(L3、L4等)的片內(nèi)或片外、內(nèi)聯(lián)或后備(lookaside)高速緩存,其可以完全包括、部分包括、或者不包括較高級(jí)別的高速緩存的內(nèi)容。
如圖1中進(jìn)一步所示,處理單元100包括集成的互連邏輯120,處理單元100可以通過該互連邏輯120連接到互連構(gòu)造,作為更大數(shù)據(jù)處理系統(tǒng)的一部分。在所描述的實(shí)施例中,互連邏輯120支持任意數(shù)目t1個(gè)“第一層”互連鏈接,其在這種情況下包括進(jìn)入(in-bound)和外出(out-bound)X、Y和Z鏈接?;ミB邏輯120還支持任意數(shù)目t2個(gè)第二層鏈接,其在圖1中指定為進(jìn)入和外出A和B鏈接。利用這些第一和第二層鏈接,每個(gè)處理單元100可以雙向通信地耦接到高達(dá)t1/2+t2/2(在這種情況下,五個(gè))其它的處理單元100?;ミB邏輯120包括用于在操作的不同階段期間處理和轉(zhuǎn)發(fā)信息的請(qǐng)求邏輯121a、部分響應(yīng)邏輯121b、組合響應(yīng)邏輯121c和數(shù)據(jù)邏輯121d。此外,互連邏輯120包括配置寄存器123,其包括用來配置處理單元100的多個(gè)模式位。如下面進(jìn)一步所述,這些模式位優(yōu)選地包括(1)一個(gè)或多個(gè)模式位的第一集合,其選擇期望的用于第一和第二層鏈接的鏈接信息分配;(2)一個(gè)或多個(gè)模式位的第二集合,其指定處理單元100的第一和第二層鏈接中的哪些鏈接連接到其它處理單元100;(3)一個(gè)或多個(gè)模式位的第三集合,其確定保護(hù)窗口擴(kuò)展的可編程持續(xù)時(shí)間;(4)一個(gè)或多個(gè)模式位的第四集合,如在上面引用的美國專利申請(qǐng)第11/055,305號(hào)中所述,其在逐個(gè)操作的基礎(chǔ)上,從僅僅節(jié)點(diǎn)的廣播范圍或者全系統(tǒng)的范圍當(dāng)中,預(yù)測(cè)性地選擇用于由處理單元100發(fā)起的操作的廣播范圍;以及(5)一個(gè)或多個(gè)模式位的第五集合,其指示處理單元100是否屬于以“超級(jí)節(jié)點(diǎn)”模式耦接到至少一個(gè)其它處理節(jié)點(diǎn)的處理節(jié)點(diǎn),在“超級(jí)節(jié)點(diǎn)”模式中,廣播操作跨越以下面參考圖2B所述的方式耦接的多個(gè)物理處理節(jié)點(diǎn)。
每個(gè)處理單元100還包括響應(yīng)邏輯122的實(shí)例,其實(shí)現(xiàn)了分布式一致性信令機(jī)制部分,該機(jī)制維護(hù)在處理單元100的高速緩存分級(jí)結(jié)構(gòu)和其它處理單元100中的高速緩存分級(jí)結(jié)構(gòu)之間的高速緩存一致性。最后,每個(gè)處理單元100包括集成的I/O(輸入/輸出)控制器128,其支持諸如I/O設(shè)備130之類的一個(gè)或多個(gè)I/O設(shè)備的附連。I/O控制器128可以響應(yīng)于I/O設(shè)備130的請(qǐng)求而在X、Y、Z、A和B鏈接上發(fā)出操作以及接收數(shù)據(jù)。
現(xiàn)在參見圖2A,其中描述了根據(jù)本發(fā)明、由多個(gè)處理單元100形成的數(shù)據(jù)處理系統(tǒng)200的第一示例性實(shí)施例的框圖。如同所示,數(shù)據(jù)處理系統(tǒng)200包括八個(gè)處理節(jié)點(diǎn)202a0-202d0和202a1-202d1,在所描述的實(shí)施例中,其中每個(gè)都被實(shí)現(xiàn)為多芯片模塊(MCM),該多芯片模塊(MCM)包括包含四個(gè)處理單元100的封裝。如同所示,在每個(gè)處理節(jié)點(diǎn)202內(nèi)的處理單元100由處理單元的X、Y、和Z鏈接耦接以用于點(diǎn)對(duì)點(diǎn)通信。每個(gè)處理單元100還由處理單元的A和B鏈接耦接到在兩個(gè)不同的處理節(jié)點(diǎn)202中的處理單元100以用于點(diǎn)對(duì)點(diǎn)通信。雖然在圖2A中用雙頭箭頭進(jìn)行了說明,但是應(yīng)當(dāng)理解,每對(duì)X、Y、Z、A和B鏈接優(yōu)選地(但不一定)實(shí)現(xiàn)為兩個(gè)單向鏈接而不是雙向鏈接。
用于形成圖2A所示的拓?fù)浣Y(jié)構(gòu)的通用表示式可以如下所示給出對(duì)于所有I≠J,節(jié)點(diǎn)[I][K].芯片[J].鏈接[K]連接到節(jié)點(diǎn)[J][K].芯片[I].鏈接[K];以及節(jié)點(diǎn)[I][K].芯片[I].鏈接[K]連接到節(jié)點(diǎn)[I][非K].芯片[I].鏈接[非K];以及節(jié)點(diǎn)[I][K].芯片[I].鏈接[非K]連接到(1)不進(jìn)行連接,保留用于將來擴(kuò)展;或者(2)節(jié)點(diǎn)[額外][非K].芯片[I].鏈接[K],在充分利用了所有鏈接(即,形成72路系統(tǒng)的九個(gè)8路節(jié)點(diǎn))的情況下;以及其中I和J屬于集合{a,b,c,d},并且K屬于集合{A,B}。
當(dāng)然,可以定義替換的表示式以形成功能等效的拓?fù)浣Y(jié)構(gòu)。此外,應(yīng)該理解,所述拓?fù)浣Y(jié)構(gòu)對(duì)于實(shí)施本發(fā)明的數(shù)據(jù)處理系統(tǒng)拓?fù)浣Y(jié)構(gòu)是代表性而非窮舉性的,而且其它的拓?fù)浣Y(jié)構(gòu)是可能的。在這樣的替換拓?fù)浣Y(jié)構(gòu)中,例如,耦接到每個(gè)處理單元100的第一層和第二層鏈接的數(shù)目可以是任意數(shù)目,而且在每一層內(nèi)的處理節(jié)點(diǎn)202的數(shù)目(即,I)無需與每個(gè)處理節(jié)點(diǎn)100的處理單元100的數(shù)目(即,J)相等。
即使以圖2A所示的方式全連接,所有處理節(jié)點(diǎn)202也無需將每個(gè)操作傳遞到所有其它處理節(jié)點(diǎn)202。具體而言,如上所述,處理單元100可能利用局限于它們的處理節(jié)點(diǎn)202的范圍、或者利用諸如包括所有處理節(jié)點(diǎn)202的全系統(tǒng)范圍之類的較大范圍來廣播操作。
如圖18所示,在數(shù)據(jù)處理系統(tǒng)200內(nèi)的示例性窺探設(shè)備1900,例如L2(或者較低級(jí)別)高速緩存的窺探器116或者IMC 124的窺探器126,可以包括標(biāo)識(shí)真實(shí)地址空間的一個(gè)或者多個(gè)區(qū)域的一個(gè)或多個(gè)基地址寄存器(BAR)1902,該真實(shí)地址空間包括窺探設(shè)備1900所負(fù)責(zé)的真實(shí)地址。窺探設(shè)備1900還可以可選地包括哈希邏輯1904,其在屬于由BAR 1902所標(biāo)識(shí)的真實(shí)地址空間的區(qū)域(一個(gè)或多個(gè))內(nèi)的真實(shí)地址上執(zhí)行哈希函數(shù),以進(jìn)一步證明(qualify)該窺探設(shè)備1900是否對(duì)該地址負(fù)責(zé)。最后,窺探設(shè)備1900包括多個(gè)窺探器1906a-1906m,其響應(yīng)于窺探到的、指定由BAR 1902和哈希邏輯1904證明合格的請(qǐng)求地址的請(qǐng)求,訪問資源1910(例如,L2高速緩存陣列和目錄114或者系統(tǒng)存儲(chǔ)器132)。
如同所示,資源1910可以具有存儲(chǔ)體結(jié)構(gòu)(banked structure),其包括多個(gè)存儲(chǔ)體(bank)1912a-1912n,每個(gè)存儲(chǔ)體與各自的真實(shí)地址集合相關(guān)聯(lián)。如本領(lǐng)域技術(shù)人員所知的那樣,經(jīng)常采用這樣的存儲(chǔ)體設(shè)計(jì),以通過有效地將資源1910細(xì)分為多個(gè)可獨(dú)立訪問資源,支持對(duì)資源1910的請(qǐng)求的較高到達(dá)速率。用這樣的方式,即使窺探設(shè)備1900和/或資源1910的工作頻率為窺探設(shè)備1900不能與訪問資源1910的請(qǐng)求的最大到達(dá)速率那樣快地為這些請(qǐng)求服務(wù),但是只要在給定時(shí)間間隔內(nèi)針對(duì)任何存儲(chǔ)體1912接收的請(qǐng)求數(shù)目不超過該存儲(chǔ)體1912可以在該時(shí)間間隔內(nèi)進(jìn)行服務(wù)的請(qǐng)求數(shù)目,則窺探設(shè)備1900可以為這些請(qǐng)求服務(wù)而無需重試。
本領(lǐng)域的技術(shù)人員將會(huì)理解,SMP數(shù)據(jù)處理系統(tǒng)100可以包括諸如互連橋接器、非易失性存儲(chǔ)器、用于連接到網(wǎng)絡(luò)或者附連設(shè)備的端口等之類的許多另外未說明的組件。因?yàn)檫@樣的另外組件對(duì)于本發(fā)明的理解不是必需的,因此未在圖2A中示出它們,或者在這里進(jìn)一步討論它們。
圖2B描述了根據(jù)本發(fā)明、其中耦接多個(gè)處理單元100以形成“超級(jí)節(jié)點(diǎn)”的數(shù)據(jù)處理系統(tǒng)200的示例性第二實(shí)施例的框圖。如同所示,數(shù)據(jù)處理系統(tǒng)220包括兩個(gè)處理節(jié)點(diǎn)202a0和202b0,在所描述的實(shí)施例中,其中每個(gè)都被實(shí)現(xiàn)為多芯片模塊(MCM),該多芯片模塊(MCM)包括包含四個(gè)依據(jù)圖1的處理單元100的封裝。如同所示,在每個(gè)處理節(jié)點(diǎn)202內(nèi)的處理單元100由處理單元的X、Y、和Z鏈接耦接以用于點(diǎn)對(duì)點(diǎn)通信。每個(gè)處理單元100還由處理單元的A和/或B鏈接耦接到在其它處理節(jié)點(diǎn)202中的相應(yīng)處理單元100以用于點(diǎn)對(duì)點(diǎn)通信。雖然在圖2B中用雙頭箭頭進(jìn)行了說明,但是應(yīng)當(dāng)理解,每對(duì)X、Y、Z、A和B鏈接優(yōu)選(而不是必須)實(shí)現(xiàn)為兩個(gè)單向鏈接而不是雙向鏈接。
用于形成圖2B所示的拓?fù)浣Y(jié)構(gòu)的通用表示式可以給出如下節(jié)點(diǎn)[I].芯片[J].鏈接[L]連接到節(jié)點(diǎn)[非I].芯片[非J].鏈接[L];以及節(jié)點(diǎn)[I].芯片[K].鏈接[L]連接到節(jié)點(diǎn)[非I].芯片[非K].鏈接[L],其中I屬于{a,b},J屬于集合{a,b},K屬于集合{c,d},以及L屬于集合{A,B}。
此外應(yīng)該理解,所述拓?fù)浣Y(jié)構(gòu)是體現(xiàn)本發(fā)明的數(shù)據(jù)處理系統(tǒng)拓?fù)浣Y(jié)構(gòu)的代表而不是該拓?fù)浣Y(jié)構(gòu)的窮舉,而且其它具有耦接特定節(jié)點(diǎn)對(duì)的多個(gè)鏈接的拓?fù)浣Y(jié)構(gòu)是可能的。如上參考圖2A所述,在這樣的替換拓?fù)浣Y(jié)構(gòu)中,耦接到每個(gè)處理單元100的第一層和第二層鏈接的數(shù)目可以是任意數(shù)目。此外,另外的處理節(jié)點(diǎn)202可以由另外的第二層鏈接耦接到處理節(jié)點(diǎn)202a0和202b0。
當(dāng)期望最大化節(jié)點(diǎn)間通信的帶寬時(shí),可以采用諸如圖2B中所述的拓?fù)浣Y(jié)構(gòu)。例如,如果在特定處理和它們的相關(guān)聯(lián)數(shù)據(jù)之間的親合力(affinity)不是大到足夠讓操作占優(yōu)勢(shì)地在單個(gè)處理節(jié)點(diǎn)202內(nèi)得到服務(wù),則可以采用圖2B的拓?fù)浣Y(jié)構(gòu)來提高節(jié)點(diǎn)間的通信帶寬(例如,在這種情況下,提高了高達(dá)4倍)。通過增加耦接特定節(jié)點(diǎn)對(duì)的第二層鏈接的數(shù)目來提高節(jié)點(diǎn)間帶寬可以因此對(duì)特定的工作負(fù)載產(chǎn)生重要的性能益處。
II.示例性操作現(xiàn)在參見圖3,其中描述了在圖2A的數(shù)據(jù)處理系統(tǒng)200或者圖2B的數(shù)據(jù)處理系統(tǒng)220的互連構(gòu)造上的示例性操作的時(shí)間-空間圖。當(dāng)主設(shè)備300(例如,L2高速緩存110的主設(shè)備112或者I/O控制器128內(nèi)的主設(shè)備)在互連構(gòu)造上發(fā)出請(qǐng)求302時(shí),開始該操作。請(qǐng)求302優(yōu)選地至少包括指示期望訪問類型的事務(wù)類型,以及指示要由該請(qǐng)求訪問的資源的資源標(biāo)識(shí)符(例如,真實(shí)地址)。常見的請(qǐng)求類型優(yōu)選地包括下面在表格I中所闡述的那些。
表格I
有關(guān)這些操作以及有助于這些操作的高效處理的示例性高速緩存一致性協(xié)議的更多細(xì)節(jié)可以在通過引用并入在此的、共同未決的美國專利申請(qǐng)第11/055,305號(hào)中找到。
請(qǐng)求302由遍及數(shù)據(jù)處理系統(tǒng)200分布的窺探器304例如L2高速緩存110的窺探器116以及IMC 124的窺探器126所接收。一般而言,盡管有一些例外,在與請(qǐng)求302的主設(shè)備112相同的L2高速緩存110中的窺探器116不窺探請(qǐng)求302(即,一般不存在自我窺探),這是因?yàn)橹挥挟?dāng)請(qǐng)求302不能由處理單元100在內(nèi)部進(jìn)行服務(wù)時(shí),才在互連構(gòu)造上傳送請(qǐng)求302。接收和處理請(qǐng)求302的窺探器304每個(gè)都提供了各自的部分響應(yīng)306,其表示至少窺探器304對(duì)請(qǐng)求302的響應(yīng)。IMC 124內(nèi)的窺探器126例如基于窺探器126是否對(duì)該請(qǐng)求地址負(fù)責(zé)以及它是否具有可用于為該請(qǐng)求服務(wù)的資源,確定要提供的部分響應(yīng)306。L2高速緩存110中的窺探器116可以例如基于其L2高速緩存目錄114的可用性、在窺探器116內(nèi)處理該請(qǐng)求的窺探邏輯實(shí)例的可用性、以及與在L2高速緩存目錄114中的請(qǐng)求地址相關(guān)聯(lián)的一致性狀態(tài),確定它的部分響應(yīng)306。
窺探器304的部分響應(yīng)306由響應(yīng)邏輯122的一個(gè)或多個(gè)實(shí)例分階段地或同時(shí)地進(jìn)行邏輯組合,以確定對(duì)請(qǐng)求302的組合響應(yīng)(CR)310。在一個(gè)下文中將要采用的優(yōu)選實(shí)施例中,負(fù)責(zé)生成組合響應(yīng)310的響應(yīng)邏輯122的實(shí)例位于包含發(fā)出請(qǐng)求302的主設(shè)備300的處理單元100中。響應(yīng)邏輯122經(jīng)由互連構(gòu)造向主設(shè)備300和窺探器304提供組合響應(yīng)310,以指示對(duì)請(qǐng)求302的響應(yīng)(例如,成功、失敗、重試等)。如果CR 310指示請(qǐng)求302的成功,則例如,CR 310可以指示用于所請(qǐng)求存儲(chǔ)塊的數(shù)據(jù)源、其中所請(qǐng)求的存儲(chǔ)塊要由主設(shè)備300高速緩存的高速緩存狀態(tài)、以及是否需要使一個(gè)或者多個(gè)L2高速緩存110中的所請(qǐng)求存儲(chǔ)塊無效的“清除”操作。
響應(yīng)于組合響應(yīng)310的接收,一個(gè)或多個(gè)主設(shè)備300和窺探器304通常執(zhí)行一個(gè)或多個(gè)操作以便為請(qǐng)求302服務(wù)。這些操作可以包括向主設(shè)備300提供數(shù)據(jù)、使在一個(gè)或多個(gè)L2高速緩存110中高速緩存的數(shù)據(jù)的一致性狀態(tài)無效或者更新該狀態(tài)、執(zhí)行逐出(castout)操作、將數(shù)據(jù)寫回到系統(tǒng)存儲(chǔ)器132中等。如果請(qǐng)求302要求的話,可以在由響應(yīng)邏輯122生成組合響應(yīng)310之前或之后,向或從主設(shè)備300傳送所請(qǐng)求或目標(biāo)存儲(chǔ)塊。
在以下的描述中,將參考窺探器相對(duì)于由請(qǐng)求所指定的請(qǐng)求地址是一致性最高點(diǎn)(HPC)、一致性最低點(diǎn)(LPC)、還是都不是,來描述窺探器304對(duì)請(qǐng)求302的部分響應(yīng)306以及由窺探器304響應(yīng)于請(qǐng)求302而執(zhí)行的操作,和/或它的組合響應(yīng)310。此處將LPC定義為用作存儲(chǔ)塊的儲(chǔ)存庫(repository)的存儲(chǔ)器設(shè)備或者I/O設(shè)備。在不存在用于存儲(chǔ)塊的HPC的情況下,LPC保存存儲(chǔ)塊的真實(shí)映像,并且具有允許或者拒絕生成該存儲(chǔ)塊的附加高速緩存副本的請(qǐng)求的授權(quán)。對(duì)于在圖1和2的數(shù)據(jù)處理系統(tǒng)實(shí)施例中的典型請(qǐng)求,LPC將是用于保存所引用的存儲(chǔ)塊的系統(tǒng)存儲(chǔ)器132的存儲(chǔ)控制器124。此處將HPC定義為對(duì)存儲(chǔ)塊的真實(shí)映像(其可能或者可能不與LPC處的對(duì)應(yīng)存儲(chǔ)塊相一致)進(jìn)行高速緩存的唯一標(biāo)識(shí)的設(shè)備,并且具有允許或者拒絕修改該存儲(chǔ)塊的請(qǐng)求的授權(quán)。敘述性地,HPC還可以響應(yīng)于不修改存儲(chǔ)塊的操作而向請(qǐng)求者提供存儲(chǔ)塊的副本。因此,對(duì)于在圖1和2的數(shù)據(jù)處理系統(tǒng)實(shí)施例中的典型請(qǐng)求,若有的話,HPC將會(huì)是L2高速緩存110。雖然可以利用其它指示符來指定用于存儲(chǔ)塊的HPC,但是本發(fā)明的優(yōu)選實(shí)施例利用在L2高速緩存110的L2高速緩存目錄114內(nèi)的選定高速緩存一致性狀態(tài)(一個(gè)或多個(gè)),來指定用于存儲(chǔ)塊的HPC(若有的話)。
仍然參見圖3,用于在請(qǐng)求302中所引用的存儲(chǔ)塊的HPC(若有的話),或者在不存在HPC時(shí)該存儲(chǔ)塊的LPC,優(yōu)選地具有響應(yīng)于請(qǐng)求302、在必要時(shí)保護(hù)存儲(chǔ)塊的所有權(quán)轉(zhuǎn)移的責(zé)任。在圖3所示的示例性場(chǎng)景中,在用于由請(qǐng)求302的請(qǐng)求地址所指定的存儲(chǔ)塊的HPC(或者在不存在HPC時(shí),LPC)處的窺探器304n在保護(hù)窗口312a期間和隨后的窗口擴(kuò)展312b期間保護(hù)所請(qǐng)求的存儲(chǔ)塊的所有權(quán)到主設(shè)備300的轉(zhuǎn)移,其中保護(hù)窗口312a從窺探器304n確定它的部分響應(yīng)306的時(shí)間延伸到窺探器304n接收組合響應(yīng)310為止,而窗口擴(kuò)展312b從窺探器304n對(duì)組合響應(yīng)310的接收開始外延一可編程時(shí)間。在保護(hù)窗口312a和窗口擴(kuò)展312b期間,窺探器304n通過向其它指定相同請(qǐng)求地址的請(qǐng)求提供防止其它主設(shè)備獲得所有權(quán)的部分響應(yīng)306(例如重試部分響應(yīng))直到所有權(quán)已經(jīng)成功地被轉(zhuǎn)移到主設(shè)備300為止,來保護(hù)所有權(quán)轉(zhuǎn)移。主設(shè)備300同樣也啟動(dòng)保護(hù)窗口313,以在收到組合響應(yīng)310之后保護(hù)它對(duì)在請(qǐng)求302中請(qǐng)求的存儲(chǔ)塊的所有權(quán)。
因?yàn)楦Q探器304全都具有有限的資源用于處理上述CPU和I/O請(qǐng)求,幾個(gè)不同級(jí)別的部分響應(yīng)和對(duì)應(yīng)的CR是可能的。例如,如果對(duì)所請(qǐng)求的存儲(chǔ)塊負(fù)責(zé)的存儲(chǔ)控制器124內(nèi)的窺探器126具有可用于處理請(qǐng)求的隊(duì)列,則該窺探器126可以用指示它能夠用作該請(qǐng)求的LPC的部分響應(yīng)進(jìn)行響應(yīng)。相反,如果窺探器126沒有可用于處理該請(qǐng)求的隊(duì)列,則窺探器126可以用指示它是該存儲(chǔ)塊的LPC、但是當(dāng)前不能為該請(qǐng)求服務(wù)的部分響應(yīng)進(jìn)行響應(yīng)。類似地,L2高速緩存110中的窺探器116可能需要窺探邏輯的可用實(shí)例以及對(duì)L2高速緩存目錄114的訪問,以便處理請(qǐng)求。缺少對(duì)這些資源中的任何一個(gè)(或者兩者)的訪問導(dǎo)致通知由于缺少所需要的資源而不能為該請(qǐng)求服務(wù)的部分響應(yīng)(以及對(duì)應(yīng)的CR)。
III.示例性操作的廣播流程現(xiàn)在參見圖4A,其中說明了在圖2A的數(shù)據(jù)處理系統(tǒng)200中、全系統(tǒng)范圍的操作的示例性操作流程的時(shí)間-空間圖。在這些附圖中,數(shù)據(jù)處理系統(tǒng)200內(nèi)的各個(gè)處理單元100用兩個(gè)位置標(biāo)識(shí)符標(biāo)記,第一個(gè)標(biāo)識(shí)處理單元100所屬的處理節(jié)點(diǎn)202,而且第二個(gè)標(biāo)識(shí)在處理節(jié)點(diǎn)202內(nèi)的特定處理單元100。因此,例如,處理單元100a0c是指處理節(jié)點(diǎn)202a0的處理單元100c。此外,每一處理單元100用功能標(biāo)識(shí)符標(biāo)記,該功能標(biāo)識(shí)符指示其相對(duì)于參與操作的其它處理單元100的功能。這些功能標(biāo)識(shí)符包括(1)本地主設(shè)備(LM),其指定發(fā)起操作的處理單元100;(2)本地中心(LH),其指定在與本地主設(shè)備相同的處理節(jié)點(diǎn)202中并且負(fù)責(zé)將該操作傳送到其它處理節(jié)點(diǎn)202的處理單元100(本地主設(shè)備也可以是本地中心);(3)遠(yuǎn)程中心(RH),其指定在與本地主設(shè)備不同的處理節(jié)點(diǎn)202中、并且負(fù)責(zé)將該操作分發(fā)到它的處理節(jié)點(diǎn)202中的其它處理單元100的處理單元100;以及(4)遠(yuǎn)程葉子(RL),其指定在與本地主設(shè)備不同的處理節(jié)點(diǎn)202中、并且不是遠(yuǎn)程中心的處理單元100。
如圖4A所示,示例性操作至少具有上面參考圖3所述的三個(gè)階段,即請(qǐng)求(或者尋址)階段、部分響應(yīng)(Presp)階段、和組合響應(yīng)(Cresp)階段。這三個(gè)階段優(yōu)選地以上述次序出現(xiàn)并且不重疊。該操作另外可以具有數(shù)據(jù)階段,其可以可選地與請(qǐng)求、部分響應(yīng)和組合響應(yīng)階段中的任意一個(gè)相重疊。
仍然參見圖4A,當(dāng)本地主設(shè)備100a0c(即,處理節(jié)點(diǎn)202a0的處理單元100c)向在它的處理節(jié)點(diǎn)202a0內(nèi)的每個(gè)本地中心100a0a、100a0b、100a0c和100a0d執(zhí)行例如讀取請(qǐng)求的請(qǐng)求的同步廣播時(shí),請(qǐng)求階段開始。應(yīng)當(dāng)注意到,本地中心列表包括本地中心100a0c,其也是本地主設(shè)備。如下面進(jìn)一步所述,有利地采用該內(nèi)部傳送來同步本地中心100a0c和本地中心100a0a、100a0b和100a0d的操作,以便可以更容易地滿足下面討論的定時(shí)約束。
響應(yīng)于請(qǐng)求的接收,每個(gè)通過其A或B鏈接耦接到遠(yuǎn)程中心100的本地中心100將該操作傳送到其遠(yuǎn)程中心(一個(gè)或多個(gè))100。因此,本地中心100a0a不在其外出A鏈接上進(jìn)行操作的傳送,而是經(jīng)由其外出B鏈接將操作傳送到處理節(jié)點(diǎn)202a1內(nèi)的遠(yuǎn)程中心。本地中心100a0b、100a0c和100a0d經(jīng)由其各自的外出A和B鏈接分別將操作傳送到處理節(jié)點(diǎn)202b0和202b1、處理節(jié)點(diǎn)202c0和202c1、以及處理節(jié)點(diǎn)202d0和202d1中的遠(yuǎn)程中心。每個(gè)接收操作的遠(yuǎn)程中心100又將該操作傳送到其處理節(jié)點(diǎn)202中的每個(gè)遠(yuǎn)程葉子100。因此,例如,本地中心100b0a將操作傳送到遠(yuǎn)程葉子100b0b、100b0c和100b0d。用這樣的方式,利用在不超過三個(gè)鏈接上的傳送,將操作高效地廣播到數(shù)據(jù)處理系統(tǒng)200內(nèi)的所有處理單元100。
如圖4A所示,在請(qǐng)求階段之后,發(fā)生部分響應(yīng)(Presp)階段。在部分響應(yīng)階段,每個(gè)遠(yuǎn)程葉子100計(jì)算(evaluate)該操作,并且將其對(duì)該操作的部分響應(yīng)提供給其各自的遠(yuǎn)程中心100。例如,遠(yuǎn)程葉子100b0b、100b0c和100b0d將其各自的部分響應(yīng)傳送到遠(yuǎn)程中心100b0a。每個(gè)遠(yuǎn)程中心100又將這些部分響應(yīng)、以及它自己的部分響應(yīng)傳送到本地中心100a0a、100a0b、100a0c和100a0d中的各個(gè)。本地中心100a0a、100a0b、100a0c和100a0d然后將這些部分響應(yīng)、以及它們自己的部分響應(yīng)廣播到處理節(jié)點(diǎn)202a0中的每個(gè)本地中心100。應(yīng)當(dāng)注意,由處理節(jié)點(diǎn)202a0內(nèi)的本地中心進(jìn)行的部分響應(yīng)廣播包括由于定時(shí)的原因,由每個(gè)本地中心100對(duì)它自己的部分響應(yīng)的自我廣播。
應(yīng)當(dāng)理解,以所示方式收集部分響應(yīng)可以以多種不同的方式實(shí)現(xiàn)。例如,有可能從每個(gè)其它本地中心、遠(yuǎn)程中心和遠(yuǎn)程葉子將單獨(dú)的部分響應(yīng)傳遞回到每個(gè)本地中心??商鎿Q地,為了更大的效率,可能期望在將部分響應(yīng)傳遞回到本地中心時(shí)累積這些部分響應(yīng)。為了確保將每個(gè)部分響應(yīng)的效果準(zhǔn)確地傳遞回到本地中心100,優(yōu)選地,例如利用邏輯或函數(shù)以及其中當(dāng)經(jīng)受這樣的函數(shù)時(shí)不丟失相關(guān)信息的編碼(例如,“一熱(one-hot)”編碼),以非破壞性方式累積部分響應(yīng)(若有的話)。
如在圖4A中進(jìn)一步所示,在處理節(jié)點(diǎn)202a0內(nèi)的每個(gè)本地中心100處的響應(yīng)邏輯122匯集其它處理單元100的部分響應(yīng)以獲得代表對(duì)該請(qǐng)求的全系統(tǒng)范圍響應(yīng)的組合響應(yīng)。然后,本地中心100a0a-100a0d沿著與請(qǐng)求階段所采用的路徑相同的分發(fā)路徑將該組合響應(yīng)廣播到所有處理單元100。因此,該組合響應(yīng)首先被廣播到遠(yuǎn)程中心100,其又將該組合響應(yīng)傳送到在其各自的處理節(jié)點(diǎn)202內(nèi)的每個(gè)遠(yuǎn)程葉子100。例如,遠(yuǎn)程中心100a0b將該組合響應(yīng)傳送到遠(yuǎn)程中心100b0a,其又將該組合響應(yīng)傳送到遠(yuǎn)程葉子100b0b、100b0c和100b0d。
如上所述,為操作服務(wù)可能需要另外的數(shù)據(jù)階段。例如,如果操作是諸如讀取或RWITM操作之類的讀取類型的操作,則遠(yuǎn)程葉子100b0d可以經(jīng)由將遠(yuǎn)程葉子100b0d連接到遠(yuǎn)程中心100b0a的鏈接、將遠(yuǎn)程中心100b0a連接到本地中心100a0b的鏈接、以及將本地中心100a0b連接到本地主設(shè)備100a0c的鏈接,將所請(qǐng)求的存儲(chǔ)塊供應(yīng)(source)到本地主設(shè)備100a0c。相反,如果操作是寫入類型的操作,例如,將修改的存儲(chǔ)塊寫回到遠(yuǎn)程葉子100b0b的系統(tǒng)存儲(chǔ)器132中的高速緩存逐出操作,則經(jīng)由將本地主設(shè)備100a0c連接到本地中心100a0b的鏈接、將本地中心100a0b連接到遠(yuǎn)程中心100b0a的鏈接、以及將遠(yuǎn)程中心100b0a連接到遠(yuǎn)程葉子100b0b的鏈接傳送該存儲(chǔ)塊。
現(xiàn)在參見圖4B,其中說明了在圖2A的數(shù)據(jù)處理系統(tǒng)200中、僅僅節(jié)點(diǎn)范圍的操作的示例性操作流程的時(shí)間-空間圖。在這些附圖中,數(shù)據(jù)處理系統(tǒng)200內(nèi)的各個(gè)處理單元100用兩個(gè)位置標(biāo)識(shí)符標(biāo)記,第一個(gè)標(biāo)識(shí)處理單元100所屬的處理節(jié)點(diǎn)202,而且第二個(gè)標(biāo)識(shí)處理節(jié)點(diǎn)202內(nèi)的特定處理單元100。因此,例如,處理單元100b0a是指處理節(jié)點(diǎn)202b0的處理單元100b。此外,每一處理單元100用功能標(biāo)識(shí)符標(biāo)記,該功能標(biāo)識(shí)符指示其相對(duì)于參與操作的其它處理單元100的功能。這些功能標(biāo)識(shí)符包括(1)節(jié)點(diǎn)主設(shè)備(NM),其指定發(fā)起僅僅節(jié)點(diǎn)范圍的操作的處理單元100,以及(2)節(jié)點(diǎn)葉子(NL),其指定在與節(jié)點(diǎn)主設(shè)備相同的處理節(jié)點(diǎn)202中并且不是節(jié)點(diǎn)主設(shè)備的處理單元100。
如圖4B所示,示例性的僅僅節(jié)點(diǎn)的操作至少具有如上所述的三個(gè)階段,即請(qǐng)求(或者尋址)階段、部分響應(yīng)(Presp)階段、和組合響應(yīng)(Cresp)階段。同樣,這三個(gè)階段優(yōu)選地以上述次序出現(xiàn)并且不重疊。該操作另外可以具有數(shù)據(jù)階段,其可以可選地與請(qǐng)求、部分響應(yīng)和組合響應(yīng)階段中的任意一個(gè)相重疊。
仍然參見圖4B,當(dāng)非常類似于圖4A的操作場(chǎng)景中的遠(yuǎn)程中心而工作的節(jié)點(diǎn)主設(shè)備100b0a(即,處理節(jié)點(diǎn)202b0的處理單元100a)向其處理節(jié)點(diǎn)202b0內(nèi)的每個(gè)節(jié)點(diǎn)葉子100b0b、100b0c、和100b0d執(zhí)行例如讀取請(qǐng)求的請(qǐng)求的同步廣播時(shí),請(qǐng)求階段開始。應(yīng)當(dāng)注意,因?yàn)閺V播傳送的范圍限于單個(gè)節(jié)點(diǎn),因此沒有采用在節(jié)點(diǎn)主設(shè)備100b0a內(nèi)的請(qǐng)求的內(nèi)部傳送來同步該請(qǐng)求的節(jié)點(diǎn)外傳送。
如圖4B所示,在請(qǐng)求階段之后,發(fā)生部分響應(yīng)(Presp)階段。在部分響應(yīng)階段,節(jié)點(diǎn)葉子100b0b、100b0c和100b0d中的每一個(gè)計(jì)算該操作并且向節(jié)點(diǎn)主設(shè)備100b0a提供它對(duì)該操作的部分響應(yīng)。接下來,如在圖4B中進(jìn)一步所示,在處理節(jié)點(diǎn)202b0內(nèi)的節(jié)點(diǎn)主設(shè)備100b0a處的響應(yīng)邏輯122匯集其它處理單元100的部分響應(yīng),以獲得代表對(duì)該請(qǐng)求的節(jié)點(diǎn)范圍響應(yīng)的組合響應(yīng)。節(jié)點(diǎn)主設(shè)備100b0a然后利用節(jié)點(diǎn)主設(shè)備100b0a的X、Y和Z鏈接,將該組合響應(yīng)廣播到所有節(jié)點(diǎn)葉子100b0b、100b0c和100b0d。
如上所述,為操作服務(wù)可能需要另外的數(shù)據(jù)階段。例如,如果操作是諸如讀取或者RWITM操作之類的讀取類型操作,則節(jié)點(diǎn)葉子100b0d可以經(jīng)由將節(jié)點(diǎn)葉子100b0d連接到節(jié)點(diǎn)主設(shè)備100b0a的Z鏈接將所請(qǐng)求的存儲(chǔ)塊供應(yīng)到節(jié)點(diǎn)主設(shè)備100b0a。相反,如果操作是寫入類型操作,例如將修改的存儲(chǔ)塊寫回到遠(yuǎn)程葉子100b0b的系統(tǒng)存儲(chǔ)器132中的高速緩存逐出操作,則經(jīng)由將節(jié)點(diǎn)主設(shè)備100b0a連接到節(jié)點(diǎn)葉子100b0b的X鏈接傳送該存儲(chǔ)塊。
現(xiàn)在參見圖4C,將結(jié)合圖5A-5E對(duì)其進(jìn)行描述,其說明了在圖2B的數(shù)據(jù)處理系統(tǒng)220中的操作的示例性操作流程的時(shí)間-空間圖。在這些圖中,在數(shù)據(jù)處理系統(tǒng)220內(nèi)的各個(gè)處理單元100利用與上述相同的兩個(gè)位置標(biāo)識(shí)符標(biāo)記。此外,每個(gè)處理單元100用功能標(biāo)識(shí)符標(biāo)記,該功能標(biāo)識(shí)符指示其相對(duì)于參與操作的其它處理單元100的功能。這些功能標(biāo)識(shí)符包括(1)節(jié)點(diǎn)主設(shè)備(NM),其指定發(fā)起操作的處理單元100;(2)節(jié)點(diǎn)葉子(NL),其指定在與節(jié)點(diǎn)主設(shè)備相同的處理節(jié)點(diǎn)202中但不是該節(jié)點(diǎn)主設(shè)備的處理單元100;(3)遠(yuǎn)程中心(RH),其指定在與本地主設(shè)備不同的處理節(jié)點(diǎn)202中、并且負(fù)責(zé)將操作分發(fā)到其處理節(jié)點(diǎn)202中的其它處理單元100的處理單元100;以及(4)遠(yuǎn)程葉子(RL),其指定在與本地主設(shè)備不同的處理節(jié)點(diǎn)202中、并且不是遠(yuǎn)程中心的處理單元100。
如圖4C所示,示例性操作至少具有上面參考圖3所述的三個(gè)階段,即請(qǐng)求(或者尋址)階段、部分響應(yīng)(Presp)階段、和組合響應(yīng)(Cresp)階段。這三個(gè)階段優(yōu)選地以上述次序出現(xiàn)并且不重疊。該操作另外可以具有數(shù)據(jù)階段,其可以可選地與請(qǐng)求、部分響應(yīng)和組合響應(yīng)階段中的任意一個(gè)相重疊。
仍然參見圖4C并且另外參見圖5A,當(dāng)節(jié)點(diǎn)主設(shè)備(NM)100a0c(即,處理節(jié)點(diǎn)202a0的處理單元100c)向其處理節(jié)點(diǎn)202a0內(nèi)的每個(gè)節(jié)點(diǎn)葉子100a0a、100a0b、和100a0d以及向處理節(jié)點(diǎn)202b0中的遠(yuǎn)程中心100b0d執(zhí)行例如讀取請(qǐng)求的請(qǐng)求的同步廣播時(shí),請(qǐng)求階段開始。遠(yuǎn)程中心100b0d又將該操作傳送到每個(gè)遠(yuǎn)程葉子100b0a、100b0b和100b0c。用這樣的方式,利用在不超過兩個(gè)鏈接上的傳送,將該操作高效地廣播到在數(shù)據(jù)處理系統(tǒng)200內(nèi)的所有處理單元100。
如圖4A和5B所示,在請(qǐng)求階段之后,發(fā)生部分響應(yīng)(Presp)階段。在部分響應(yīng)階段,每個(gè)遠(yuǎn)程葉子100計(jì)算該操作并且將其各自的對(duì)該操作的部分響應(yīng)提供給其各自的遠(yuǎn)程中心100。例如,遠(yuǎn)程葉子100b0a、100b0c和100b0c將它們各自的部分響應(yīng)傳送到遠(yuǎn)程中心100b0d。每個(gè)遠(yuǎn)程中心100又將這些部分響應(yīng)、以及它自己的部分響應(yīng)傳送到節(jié)點(diǎn)主設(shè)備100a0c。每一個(gè)節(jié)點(diǎn)葉子100a0a、100a0b和100a0d類似地計(jì)算該請(qǐng)求,并且將其各自的部分響應(yīng)傳送到節(jié)點(diǎn)主設(shè)備100a0c。
可以理解,以所示方式收集部分響應(yīng)可以以多種不同的方式實(shí)現(xiàn)。例如,有可能從每個(gè)其它節(jié)點(diǎn)葉子、遠(yuǎn)程中心和遠(yuǎn)程葉子將單獨(dú)的部分響應(yīng)傳遞回到節(jié)點(diǎn)主設(shè)備。作為替換,為了更大的效率,可能期望在將部分響應(yīng)傳遞回到發(fā)起處理節(jié)點(diǎn)時(shí)累積這些部分響應(yīng)。為了確保將每個(gè)部分響應(yīng)的效果準(zhǔn)確地傳遞回到節(jié)點(diǎn)主設(shè)備100,優(yōu)選地,例如,利用邏輯或函數(shù)以及其中當(dāng)經(jīng)受這樣的函數(shù)時(shí)不丟失相關(guān)信息的編碼(例如,“一熱”編碼),以非破壞性方式累積部分響應(yīng)(若有的話)。
如圖4A和圖5C中進(jìn)一步所示,在節(jié)點(diǎn)主設(shè)備100a0c處的響應(yīng)邏輯122匯集其它處理單元100的部分響應(yīng),以獲得代表對(duì)該請(qǐng)求的全系統(tǒng)范圍響應(yīng)的組合響應(yīng)。節(jié)點(diǎn)主設(shè)備100a0c然后沿著與請(qǐng)求階段所采用的路徑相同的分發(fā)路徑將該組合響應(yīng)廣播到所有處理單元100。因此,該組合響應(yīng)首先被廣播到節(jié)點(diǎn)葉子100a0a、100a0b和100a0d以及遠(yuǎn)程中心100b0d。遠(yuǎn)程中心100b0d又將該組合響應(yīng)傳送到每個(gè)遠(yuǎn)程葉子100b0a、100b0b和100b0c。
如上所述,如圖5D或5E所示,為操作服務(wù)可能需要另外的數(shù)據(jù)階段。例如,如圖5D所示,如果操作是諸如讀取或RWITM操作之類的讀取類型的操作,則遠(yuǎn)程葉子100b0b可以經(jīng)由將遠(yuǎn)程葉子100b0b連接到節(jié)點(diǎn)葉子100a0a的鏈接、以及將節(jié)點(diǎn)葉子100a0a連接到本地主設(shè)備100a0c的鏈接,將所請(qǐng)求的存儲(chǔ)塊供應(yīng)到節(jié)點(diǎn)主設(shè)備100a0c。相反,如果操作是寫入類型的操作,例如將修改的存儲(chǔ)塊寫回到遠(yuǎn)程葉子100b0b的系統(tǒng)存儲(chǔ)器132中的高速緩存逐出操作,則如圖5E所示,經(jīng)由將節(jié)點(diǎn)主設(shè)備100a0c連接到遠(yuǎn)程中心100b0d的鏈接傳送該存儲(chǔ)塊。
當(dāng)然,對(duì)于可能在諸如數(shù)據(jù)處理系統(tǒng)200或數(shù)據(jù)處理系統(tǒng)220之類的多處理器數(shù)據(jù)處理系統(tǒng)中同時(shí)發(fā)生的多種可能操作,圖4A-4C中描述的操作僅僅是示例性的。
IV.定時(shí)考慮如上面參考圖3所述,通過保護(hù)窗口312a、窗口擴(kuò)展312b、和保護(hù)窗口313,在可能存在競(jìng)爭(zhēng)相同存儲(chǔ)塊的所有權(quán)的其它主設(shè)備的情況下,在存儲(chǔ)塊的一致性所有權(quán)從窺探器304n“移交”到請(qǐng)求主設(shè)備300的期間保持一致性。例如,如圖6所示,保護(hù)窗口312a和窗口擴(kuò)展312b一起必須具有足夠的持續(xù)時(shí)間,以在存在競(jìng)爭(zhēng)主設(shè)備(CM)320的競(jìng)爭(zhēng)請(qǐng)求322的情況下,保護(hù)所請(qǐng)求的存儲(chǔ)塊的一致性所有權(quán)從窺探器304n到獲勝主設(shè)備(WM)300的轉(zhuǎn)移。為了確保保護(hù)窗口312a和窗口擴(kuò)展312b具有足夠的持續(xù)時(shí)間來保護(hù)所請(qǐng)求的存儲(chǔ)塊的所有權(quán)從窺探器304n轉(zhuǎn)移到獲勝主設(shè)備300,優(yōu)選地約束依據(jù)圖4A、4B和4C的處理單元100之間的通信的延遲,使得滿足以下條件
A_lat(CM_S)≤A_lat(CM_WM)+C_lat(WM_S)+ε,其中A_lat(CM_S)是任何競(jìng)爭(zhēng)主設(shè)備(CM)320到擁有所請(qǐng)求存儲(chǔ)塊的一致性的窺探器(S)304n的尋址延遲,A_1at(CM_WM)是任何競(jìng)爭(zhēng)主設(shè)備(CM)320到由窺探器304n給予一致性所有權(quán)的“獲勝”主設(shè)備(WM)300的尋址延遲,C_lat(WM_S)是從由獲勝主設(shè)備(WM)300收到組合響應(yīng)的時(shí)間到由擁有所請(qǐng)求存儲(chǔ)塊的窺探器(S)304n收到組合響應(yīng)的時(shí)間的組合響應(yīng)延遲,以及ε是窗口擴(kuò)展312b的持續(xù)時(shí)間。
如果不滿足可應(yīng)用于任意拓?fù)浣Y(jié)構(gòu)的系統(tǒng)的前述定時(shí)約束,則可以(1)在獲勝主設(shè)備300取得一致性所有權(quán)并且啟動(dòng)保護(hù)窗口312b之前由獲勝主設(shè)備300、以及(2)在保護(hù)窗口312a和窗口擴(kuò)展312b結(jié)束之后由窺探器304n,接收競(jìng)爭(zhēng)主設(shè)備320的請(qǐng)求322。在這樣的情況下,獲勝主設(shè)備300和窺探器304n都將不會(huì)對(duì)競(jìng)爭(zhēng)請(qǐng)求322提供防止競(jìng)爭(zhēng)主設(shè)備320取得存儲(chǔ)塊的一致性所有權(quán)并且從存儲(chǔ)器中讀取非一致數(shù)據(jù)的部分響應(yīng)。然而,為了避免這個(gè)一致性錯(cuò)誤,可以將窗口擴(kuò)展312b可編程地(例如,通過適當(dāng)?shù)卦O(shè)置配置寄存器123)設(shè)置為任意長度(ε),以補(bǔ)償延遲差異或者物理實(shí)現(xiàn)的欠缺,其否則可能不能滿足對(duì)于保持一致性必須滿足的定時(shí)約束。因此,通過求解上述方程以獲得ε,可以確定用于任何實(shí)現(xiàn)的窗口擴(kuò)展312b的理想長度。對(duì)于圖2A和2B的數(shù)據(jù)處理系統(tǒng)實(shí)施例,如果對(duì)于具有包括多個(gè)處理節(jié)點(diǎn)202的范圍的廣播操作,ε具有等于一個(gè)第一層鏈接芯片跳躍(chip-hop)的延遲的持續(xù)時(shí)間,并且對(duì)于僅僅節(jié)點(diǎn)范圍的操作,ε具有零持續(xù)時(shí)間,則這是優(yōu)選的。
可以進(jìn)行有關(guān)上述定時(shí)約束的幾個(gè)觀察(observation)。首先,從競(jìng)爭(zhēng)主設(shè)備320到擁有窺探器304a的尋址延遲不必具有下限,但是必須具有上限。通過在尤其給定最大可能的振蕩器漂移、耦接處理單元100的最長鏈接、累積停頓的最大數(shù)目、以及所保證的最壞情況吞吐量的情況下確定可得到的最壞情況延遲,來設(shè)計(jì)上限。為了確保觀察到上限,互連構(gòu)造必須確保非阻塞的行為。
其次,從競(jìng)爭(zhēng)主設(shè)備320到獲勝主設(shè)備300的尋址延遲不必具有上限,但是必須具有下限。通過在尤其給定不存在停頓、處理單元100之間的最短可能鏈接、以及給定特定靜態(tài)配置時(shí)的最慢振蕩器漂移的情況下可得到的最佳情況延遲,來確定該下限。
雖然對(duì)于給定操作,獲勝主設(shè)備300與競(jìng)爭(zhēng)主設(shè)備320中的每一個(gè)都僅僅具有一個(gè)定時(shí)限制用于其各自的請(qǐng)求,但是應(yīng)當(dāng)理解,在操作過程中,任何處理單元100對(duì)于一些操作可能是獲勝主設(shè)備,而對(duì)于其它操作可能是競(jìng)爭(zhēng)(以及失敗)主設(shè)備。因此,每個(gè)處理單元100有效地具有用于其尋址延遲的上限和下限。
第三,從生成組合響應(yīng)的時(shí)間到由獲勝主設(shè)備300觀察到該組合響應(yīng)的時(shí)間的組合響應(yīng)延遲不必具有下限(該組合響應(yīng)可能在任意的較早時(shí)間到達(dá)獲勝主設(shè)備300),但是必須具有上限。相反,從生成組合響應(yīng)的時(shí)間直到由窺探器304n收到該組合響應(yīng)為止的組合響應(yīng)延遲具有下限,但是不必具有上限(雖然可以任意地施加上限來限制同時(shí)進(jìn)行的操作數(shù)目)。
第四,對(duì)部分響應(yīng)延遲沒有約束。也就是說,因?yàn)樯厦媪信e的定時(shí)約束的所有項(xiàng)都與請(qǐng)求/尋址延遲以及組合響應(yīng)延遲有關(guān),所以窺探器304和競(jìng)爭(zhēng)主設(shè)備320到獲勝主設(shè)備300的部分響應(yīng)延遲不必具有上限或下限。
V.示例性鏈接信息分配連接處理單元100的第一層和第二層鏈接可以各種方式實(shí)現(xiàn)以獲得在圖2A和2B中描述的拓?fù)浣Y(jié)構(gòu)以及滿足圖6所述的定時(shí)約束。在一個(gè)優(yōu)選實(shí)施例中,每個(gè)進(jìn)入和外出第一層(X,Y和Z)鏈接和每個(gè)進(jìn)入和外出第二層(A和B)鏈接被實(shí)現(xiàn)為單向8字節(jié)總線,其包含多個(gè)不同的虛擬通道或者占有期(tenure)來傳達(dá)地址、數(shù)據(jù)、控制和一致性信息。
現(xiàn)在參見圖7A-7B,其中說明了用于第一層X、Y和Z鏈接以及第二層A和B鏈接的第一示例性時(shí)間分割信息分配。如同所示,在這個(gè)第一實(shí)施例中,信息以重復(fù)的8個(gè)周期幀分配在第一層和第二層鏈接上,其中前4個(gè)周期包含傳輸?shù)刂?、一致性和控制信息的兩個(gè)地址占有期,并且后4個(gè)周期專用于提供數(shù)據(jù)傳輸?shù)臄?shù)據(jù)占有期。
首先參見圖7A,其說明了用于第一層鏈接的鏈接信息分配。在周期數(shù)對(duì)8取模的余數(shù)為0的每個(gè)周期中,字節(jié)0傳遞第一操作的事務(wù)類型700a(例如,讀取),字節(jié)1-5提供了第一操作的請(qǐng)求地址的較低地址字節(jié)702a1,而且字節(jié)6-7形成保留字段704。在下一個(gè)周期(即,周期數(shù)對(duì)8取模的余數(shù)是1的周期)中,字節(jié)0-1傳遞標(biāo)識(shí)第一操作的主設(shè)備300的主設(shè)備標(biāo)記706a(例如,L2高速緩存主設(shè)備112或者I/O控制器128內(nèi)的主設(shè)備之一),而且字節(jié)2傳達(dá)第一操作的請(qǐng)求地址的高地址字節(jié)702a2。連同這個(gè)關(guān)于第一操作的信息一起傳遞的高達(dá)關(guān)于不同操作的三個(gè)另外的字段,即旨在用于在同一處理節(jié)點(diǎn)202中的本地主設(shè)備的本地部分響應(yīng)708a(字節(jié)3-4),在字節(jié)5中的組合響應(yīng)710a,以及旨在用于在不同的處理節(jié)點(diǎn)202中的本地主設(shè)備的遠(yuǎn)程部分響應(yīng)712a(或者在僅僅節(jié)點(diǎn)范圍的廣播的情況下,從節(jié)點(diǎn)葉子100傳遞到節(jié)點(diǎn)主設(shè)備100的部分響應(yīng))(字節(jié)6-7)。如上所述,這前兩個(gè)周期形成了這里所謂的地址占有期。
如圖7A中進(jìn)一步說明的那樣,除了保留字段704被替換為形成數(shù)據(jù)占有期的一部分的數(shù)據(jù)標(biāo)記714和數(shù)據(jù)令牌715之外,接下來的兩個(gè)周期(即,周期數(shù)對(duì)8取模的余數(shù)為2和3的周期)形成了具有與第一地址占有期相同的基本模式的第二地址占有期。具體地說,數(shù)據(jù)標(biāo)記714標(biāo)識(shí)出現(xiàn)在周期4-7中的32個(gè)字節(jié)的數(shù)據(jù)有效載荷716a-716d被定向的目的數(shù)據(jù)宿。它在地址占有期內(nèi)的位置緊鄰在有效載荷數(shù)據(jù)之前,這有利地允許在接收有效載荷數(shù)據(jù)之前進(jìn)行下游操縱的配置,并由此高效地將數(shù)據(jù)路由到指定的數(shù)據(jù)宿。數(shù)據(jù)令牌715提供了已被釋放的下游隊(duì)列條目的指示,并且因此,另外的數(shù)據(jù)可以在成對(duì)的X、Y、Z或者A鏈接上傳送而沒有過載的危險(xiǎn)。再次應(yīng)當(dāng)注意,事務(wù)類型700b、主設(shè)備標(biāo)記706b、低地址字節(jié)702b1、和高地址字節(jié)702b2全都屬于第二操作,而數(shù)據(jù)標(biāo)記714、本地部分響應(yīng)708b、組合響應(yīng)710b以及遠(yuǎn)程部分響應(yīng)712b全都涉及不同于第二操作的一個(gè)或多個(gè)操作。
每個(gè)事務(wù)類型字段700和組合響應(yīng)字段710優(yōu)選地包括范圍指示符730,其能夠指示它所屬的操作具有僅僅節(jié)點(diǎn)(本地)的范圍還是具有全系統(tǒng)(全局)的范圍。當(dāng)配置寄存器123被設(shè)置為以超級(jí)節(jié)點(diǎn)模式配置處理單元100時(shí),不使用范圍指示符730,并且該范圍指示符具有“無關(guān)”值。如在上面通過引用并入在此的、交叉引用的美國專利申請(qǐng)第11/055,305號(hào)中更詳細(xì)描述的那樣,數(shù)據(jù)標(biāo)記714還包括域指示符732,其可以由LPC設(shè)置來指示是否可能存在包含在數(shù)據(jù)有效載荷716a-716d內(nèi)的數(shù)據(jù)的遠(yuǎn)程副本。優(yōu)選地,當(dāng)配置寄存器123被設(shè)置為以超級(jí)節(jié)點(diǎn)模式配置處理單元100時(shí),也不使用域指示符732,并且該域指示符具有“無關(guān)”值。
圖7B描述了用于第二層A和B鏈接的鏈接信息分配。通過與圖7A的比較可以看出,除了本地部分響應(yīng)字段708a、708b被替換為保留字段718a、718b之外,在第二層A和B鏈接上的鏈接信息分配與在圖7A中給出的用于第一層鏈接的分配相同。因?yàn)楹唵蔚脑?,即作為第二層鏈接,不需要傳遞本地部分響應(yīng),所以進(jìn)行這個(gè)替換。
圖7C說明了寫入請(qǐng)求部分響應(yīng)720的示例性實(shí)施例,其可以響應(yīng)于寫入請(qǐng)求,在本地部分響應(yīng)字段708a、708b或者遠(yuǎn)程部分響應(yīng)字段712a、712b內(nèi)傳輸。如同所示,寫入請(qǐng)求部分響應(yīng)720在長度上為兩個(gè)字節(jié),并且包括15位目的地標(biāo)記字段724和1位有效(V)標(biāo)記722,其中目的地標(biāo)記字段724用于指定作為寫入數(shù)據(jù)的目的地的窺探器(例如,IMC窺探器126)的標(biāo)記,而有效標(biāo)記722用于指示目的地標(biāo)記字段724的有效性。
VI.請(qǐng)求階段結(jié)構(gòu)和操作現(xiàn)在參見圖8,其描述了這樣的框圖,該框圖說明了在操作的請(qǐng)求階段處理中利用的、在圖1的互連邏輯120內(nèi)的請(qǐng)求邏輯121a。如同所示,請(qǐng)求邏輯121a包括主設(shè)備多路復(fù)用器900,其被耦接以由處理單元100的主設(shè)備300(例如,L2高速緩存110內(nèi)的主設(shè)備112以及I/O控制器128內(nèi)的主設(shè)備)接收請(qǐng)求。主設(shè)備多路復(fù)用器900的輸出形成請(qǐng)求多路復(fù)用器904的一個(gè)輸入。請(qǐng)求多路復(fù)用器904的第二輸入端耦接到遠(yuǎn)程中心多路復(fù)用器903的輸出端,該遠(yuǎn)程中心多路復(fù)用器903的輸入端與保持緩沖器902a、902b的輸出端相耦接,該保持緩沖器902a、902b又被耦接以分別在進(jìn)入A和B鏈接上接收和緩沖請(qǐng)求。遠(yuǎn)程中心多路復(fù)用器903實(shí)現(xiàn)了下面詳細(xì)描述的公平分配策略,其從在保持緩沖器902a-902b中緩沖的、從進(jìn)入A和B鏈接接收的請(qǐng)求當(dāng)中公平地進(jìn)行選擇。如果存在的話,由遠(yuǎn)程中心多路復(fù)用器903向請(qǐng)求多路復(fù)用器904提供的請(qǐng)求總是由請(qǐng)求多路復(fù)用器904給予優(yōu)先權(quán)。請(qǐng)求多路復(fù)用器904的輸出驅(qū)動(dòng)請(qǐng)求總線905,該請(qǐng)求總線905與輸出X、Y和Z鏈接、節(jié)點(diǎn)主設(shè)備/遠(yuǎn)程中心(NM/RH)保持緩沖器906、以及本地中心(LH)地址啟動(dòng)緩沖器910中的每一個(gè)相耦接。也耦接到請(qǐng)求總線905的先前請(qǐng)求FIFO緩沖器907優(yōu)選地為多個(gè)先前地址占有期中的每一個(gè)保持少量地址相關(guān)的信息,以允許確定在該地址占有期中傳遞的地址(若有的話)哈希(hash)到其的地址片段或者資源存儲(chǔ)體1912。例如,在一個(gè)實(shí)施例中,先前請(qǐng)求FIFO緩沖器907的每個(gè)條目包含“一熱”編碼,其標(biāo)識(shí)相關(guān)聯(lián)請(qǐng)求的請(qǐng)求地址哈希到其的存儲(chǔ)體1912a-1912n中的特定一個(gè)。對(duì)于其中沒有在請(qǐng)求總線905上傳送請(qǐng)求的地址占有期,一熱編碼將是全0。
進(jìn)入第一層(X,Y和Z)鏈接每個(gè)都耦接到LH地址啟動(dòng)緩沖器910,以及節(jié)點(diǎn)葉子/遠(yuǎn)程葉子(NL/RL)保持緩沖器914a-914c中的各個(gè)。NM/RH保持緩沖器906、LH地址啟動(dòng)緩沖器910、和NL/RL保持緩沖器914a-914c的輸出全都形成窺探多路復(fù)用器920的輸入。另一個(gè)先前緩沖器911也耦接到LH地址啟動(dòng)緩沖器910的輸出,該先前緩沖器911優(yōu)選地也類似于先前的請(qǐng)求FIFO緩沖器907進(jìn)行構(gòu)造。窺探多路復(fù)用器920的輸出驅(qū)動(dòng)窺探總線922,其中標(biāo)記FIFO隊(duì)列924、處理單元100的窺探器304(例如,L2高速緩存110的窺探器116和IMC 124的窺探器126)、以及外出A和B鏈接耦接到該窺探總線922。窺探器304還耦接到本地中心(LH)部分響應(yīng)FIFO隊(duì)列930和節(jié)點(diǎn)主設(shè)備/遠(yuǎn)程中心(NM/RH)部分響應(yīng)FIFO隊(duì)列940,并且由它們支持。
雖然其它實(shí)施例是可能的,但是如果緩沖器902、906、和914a-914c保持簡短以便最小化通信延遲,則這是優(yōu)選的。在一個(gè)優(yōu)選實(shí)施例中,控制每個(gè)緩沖器902、906、和914a-914c的大小以僅僅保持選定鏈接信息分配的單個(gè)幀的地址占有期(一個(gè)或多個(gè))。
現(xiàn)在參見圖9,其中說明了圖8的本地中心(LH)地址啟動(dòng)緩沖器910的更詳細(xì)框圖。如同所述,LH地址啟動(dòng)緩沖器910的本地和進(jìn)入X、Y和Z鏈接輸入形成了映射邏輯1010的輸入,該映射邏輯1010將在每個(gè)特定輸入端上接收的請(qǐng)求放置到各自對(duì)應(yīng)的位置相關(guān)FIFO隊(duì)列1020a-1020d中。在所描述的命名法中,在處理節(jié)點(diǎn)/MCM 202的左上角的處理單元100a是“S”芯片;在處理節(jié)點(diǎn)/MCM 202的右上角的處理單元100b是“T”芯片;在處理節(jié)點(diǎn)/MCM 202的左下角的處理單元100c是“U”芯片;以及在處理節(jié)點(diǎn)202的右下角的處理單元100d是“V”芯片。因此,例如,對(duì)于本地主設(shè)備/本地中心100ac,在本地輸入端上接收的請(qǐng)求由映射邏輯1010放置在U FIFO隊(duì)列1020c中,在進(jìn)入Y鏈接上接收的請(qǐng)求由映射邏輯1010放置在S FIFO隊(duì)列1020a中。采用映射邏輯1010來標(biāo)準(zhǔn)化輸入流,以便同步所有本地中心100中的判優(yōu)邏輯1032(如下所述)來同一地處理請(qǐng)求而無需采用任何顯式的相互通信。
雖然被放置在位置相關(guān)FIFO隊(duì)列1020a-1020d中,但是請(qǐng)求未被立即標(biāo)記為有效并且可用于分派。相反,在每個(gè)位置相關(guān)FIFO隊(duì)列1020a-1020d中的請(qǐng)求的驗(yàn)證經(jīng)受可編程延遲1000a-1000d中的各自一個(gè),以便同步在每個(gè)地址占有期期間在四個(gè)輸入端上接收的請(qǐng)求。因此,與本地輸入端相關(guān)聯(lián)的可編程延遲1000a通常比與其它輸入端相關(guān)聯(lián)的可編程延遲明顯更長,其中該本地輸入端在本地主設(shè)備/本地中心100處接收請(qǐng)求的自我廣播。為了確保驗(yàn)證適當(dāng)?shù)恼?qǐng)求,由可編程延遲裝置1000a-1000d生成的驗(yàn)證信號(hào)經(jīng)受與底層請(qǐng)求相同的、由映射邏輯1010進(jìn)行的映射。
位置相關(guān)FIFO隊(duì)列1020a-1020d的輸出形成本地中心請(qǐng)求多路復(fù)用器1030的輸入,該本地中心請(qǐng)求多路復(fù)用器1030響應(yīng)于由判優(yōu)器1032生成的選擇信號(hào),從位置相關(guān)FIFO隊(duì)列1020a-1020d中選擇一個(gè)請(qǐng)求以便提供給窺探多路復(fù)用器920。判優(yōu)器1032實(shí)現(xiàn)了公平判優(yōu)策略,其在選擇時(shí)與在給定處理節(jié)點(diǎn)202內(nèi)的所有其它本地中心100的判優(yōu)器1032同步,以便如圖4和5A中所述,相同的請(qǐng)求由處理節(jié)點(diǎn)202中的所有本地中心100同時(shí)在外出A鏈接上廣播。因此,給定圖7B和8B所示的示例性鏈接信息分配中的任何一個(gè),本地中心請(qǐng)求多路復(fù)用器1030的輸出與外出A鏈接請(qǐng)求幀的地址占有期(一個(gè)或多個(gè))時(shí)間片對(duì)齊。
因?yàn)長H地址啟動(dòng)緩沖器910的輸入帶寬是其輸出帶寬的四倍,所以位置相關(guān)FIFO隊(duì)列1020a-1020d的過載是設(shè)計(jì)考慮。在優(yōu)選實(shí)施例中,通過為每個(gè)位置相關(guān)FIFO隊(duì)列1020實(shí)現(xiàn)在大小上等于相關(guān)聯(lián)的位置相關(guān)FIFO隊(duì)列1020的深度的本地中心令牌池,來防止隊(duì)列過載。需要空閑的本地中心令牌來讓本地主設(shè)備發(fā)送請(qǐng)求到本地中心并且保證本地中心可以將該請(qǐng)求排入隊(duì)列。因此,當(dāng)由本地主設(shè)備100向本地中心100中的位置相關(guān)FIFO隊(duì)列1020發(fā)出請(qǐng)求時(shí)分配本地中心令牌,并且當(dāng)判優(yōu)器1032從位置相關(guān)FIFO隊(duì)列1020中發(fā)出條目(entry)時(shí),釋放該令牌以便重用。
現(xiàn)在參見圖10,其中描述了圖8的標(biāo)記FIFO隊(duì)列924的更詳細(xì)框圖。如同所示,標(biāo)記FIFO隊(duì)列924包括本地中心(LH)標(biāo)記FIFO隊(duì)列924a、遠(yuǎn)程中心(RH)標(biāo)記FIFO隊(duì)列924b0-924b1、節(jié)點(diǎn)主設(shè)備(NM)標(biāo)記FIFO隊(duì)列924b2、遠(yuǎn)程葉子(RL)標(biāo)記FIFO隊(duì)列924c0-924c1、924d0-924d1和924e0-924e1、以及節(jié)點(diǎn)葉子(NL)標(biāo)記FIFO隊(duì)列924c2、924d2和924e2。當(dāng)在以針對(duì)特定請(qǐng)求的這些給定角色(LH、RH、和RL)中的每一個(gè)服務(wù)的處理單元(一個(gè)或多個(gè))100處接收到該請(qǐng)求時(shí),全系統(tǒng)范圍的操作的請(qǐng)求的主設(shè)備標(biāo)記被存放在標(biāo)記FIFO隊(duì)列924a、924b0-924b1、924c0-924c1、924d0-924d1和924e0-924e1的每一個(gè)中。類似地,當(dāng)在以針對(duì)特定請(qǐng)求的這些給定角色(NM和NL)中的每一個(gè)服務(wù)的處理單元(一個(gè)或多個(gè))100處接收到該請(qǐng)求時(shí),僅僅節(jié)點(diǎn)范圍的操作的請(qǐng)求的的主設(shè)備標(biāo)記被存放在標(biāo)記FIFO隊(duì)列924b2、924c2、924d2和924e2的每一個(gè)中。當(dāng)在相關(guān)聯(lián)的處理單元100處接收到組合響應(yīng)時(shí),從標(biāo)記FIFO隊(duì)列924的每一個(gè)中檢索主設(shè)備標(biāo)記。因此,不是與組合響應(yīng)一起傳送主設(shè)備標(biāo)記,而是根據(jù)需要由處理單元100從其標(biāo)記FIFO隊(duì)列924中檢索主設(shè)備標(biāo)記,從而導(dǎo)致在第一和第二層鏈接上的帶寬節(jié)省。假定在各個(gè)處理單元100處接收組合響應(yīng)的次序與接收相關(guān)聯(lián)的請(qǐng)求的次序相同,則可以有利地采用用于分配和檢索主設(shè)備標(biāo)記的FIFO策略。
LH標(biāo)記FIFO隊(duì)列924a包括多個(gè)條目,每個(gè)條目包括主設(shè)備標(biāo)記字段1100,用于存儲(chǔ)由判優(yōu)器1032啟動(dòng)的請(qǐng)求的主設(shè)備標(biāo)記。標(biāo)記FIFO隊(duì)列924b0-924b1中的每一個(gè)類似地包括多個(gè)條目,每個(gè)至少包括主設(shè)備標(biāo)記字段1100,用于存儲(chǔ)由遠(yuǎn)程中心100經(jīng)由進(jìn)入A和B鏈接中的相應(yīng)一個(gè)接收的、全系統(tǒng)范圍的請(qǐng)求的主設(shè)備標(biāo)記。類似地構(gòu)造標(biāo)記FIFO隊(duì)列924c0-924c1、924d0-924d1和924e0-924e1,并且這些隊(duì)列中的每個(gè)都保持由遠(yuǎn)程葉子100經(jīng)由進(jìn)入第一和第二層鏈接的唯一對(duì)接收的、全系統(tǒng)范圍的請(qǐng)求的主設(shè)備標(biāo)記。對(duì)于僅僅節(jié)點(diǎn)廣播范圍的請(qǐng)求,NM標(biāo)記FIFO隊(duì)列924b2保持由節(jié)點(diǎn)主設(shè)備100發(fā)起的請(qǐng)求的主設(shè)備標(biāo)記,并且NL標(biāo)記FIFO隊(duì)列924c2、924d2和924e2中的每一個(gè)提供了對(duì)由節(jié)點(diǎn)葉子100在第一層X、Y和Z鏈接的相應(yīng)一個(gè)上接收的請(qǐng)求的主設(shè)備標(biāo)記的存儲(chǔ)。
在LH標(biāo)記FIFO隊(duì)列924a內(nèi)的條目具有全系統(tǒng)范圍廣播操作的最長占有期,并且NM標(biāo)記FIFO隊(duì)列924b2具有僅僅節(jié)點(diǎn)范圍廣播操作的最長占有期。因此,LH標(biāo)記FIFO隊(duì)列924a和NM標(biāo)記FIFO隊(duì)列924b2的深度分別限制了處理節(jié)點(diǎn)202可以在互連構(gòu)造上發(fā)出的、全系統(tǒng)范圍的并行操作的數(shù)目,以及給定處理單元100可以在互連構(gòu)造上發(fā)出的、僅僅節(jié)點(diǎn)范圍的并行操作的數(shù)目。這些深度不一定有關(guān)系并且可以是不同的。然而,優(yōu)選地將標(biāo)記FIFO隊(duì)列924b0-924b1、924c0-924c1、924d0-924d1和924e0-924e1的深度設(shè)計(jì)為等于LH標(biāo)記FIFO隊(duì)列924a的深度,以及優(yōu)選地將標(biāo)記FIFO隊(duì)列924c2、924d2和924e2的深度設(shè)計(jì)為等于NM標(biāo)記FIFO隊(duì)列924b2的深度。
現(xiàn)在參見圖11和12,其中說明了圖8的本地中心(LH)部分響應(yīng)FIFO隊(duì)列930和節(jié)點(diǎn)主設(shè)備/遠(yuǎn)程中心(NM/RH)部分響應(yīng)FIFO隊(duì)列940的示例性實(shí)施例的更詳細(xì)框圖。如同所示,LH部分響應(yīng)FIFO隊(duì)列930包括多個(gè)條目1200,其中每個(gè)條目包括部分響應(yīng)字段1202和響應(yīng)標(biāo)記陣列1204,該部分響應(yīng)字段1202用于為請(qǐng)求存儲(chǔ)累積的部分響應(yīng),響應(yīng)標(biāo)記陣列1204具有相應(yīng)的標(biāo)記用于6個(gè)可能來源中的每一個(gè),其中本地中心100可以在不同的時(shí)間或者可能同時(shí)從這些來源中接收部分響應(yīng)(即,本地(L)、第一層X、Y、Z鏈接、以及第二層A和B鏈接)。在LH部分響應(yīng)FIFO隊(duì)列930內(nèi)的條目1200經(jīng)由分配指針1210分配,并且經(jīng)由釋放指針釋放。利用A指針1214、B指針1215、X指針1216、Y指針1218、和Z指針1220訪問組成響應(yīng)標(biāo)記陣列1204的各個(gè)標(biāo)記。
如下面進(jìn)一步描述的那樣,當(dāng)由本地中心100處的部分響應(yīng)邏輯121b接收到對(duì)特定請(qǐng)求的部分響應(yīng)時(shí),在部分響應(yīng)字段1202內(nèi)累積該部分響應(yīng),并且通過在響應(yīng)標(biāo)記陣列1204內(nèi)設(shè)置對(duì)應(yīng)標(biāo)記來記錄從其接收到該部分響應(yīng)的鏈接。指針1214、1215、1216、1218和1220中的對(duì)應(yīng)一個(gè)然后前進(jìn)到隨后的條目1200。
當(dāng)然,如上所述,每個(gè)處理單元100無需通過其5個(gè)進(jìn)入(X,Y,Z,A和B)鏈接中的每一個(gè)全耦接到其它處理單元100。因此,忽略在響應(yīng)標(biāo)記陣列1204內(nèi)與未連接的鏈接相關(guān)聯(lián)的標(biāo)記。例如,可以通過在配置寄存器123中指示的配置來指示每個(gè)處理單元100中的未連接的鏈接(若有的話),該配置寄存器123可以例如在系統(tǒng)啟動(dòng)時(shí)由引導(dǎo)代碼或者在對(duì)數(shù)據(jù)處理系統(tǒng)200進(jìn)行分區(qū)時(shí)由操作系統(tǒng)進(jìn)行設(shè)置。
通過圖12和圖11的比較可以看出,NM/RH部分響應(yīng)FIFO隊(duì)列940類似于LH部分響應(yīng)FIFO隊(duì)列930進(jìn)行構(gòu)造。NM/RH部分響應(yīng)FIFO隊(duì)列940包括多個(gè)條目1230,其中每個(gè)條目包括部分響應(yīng)字段1202和響應(yīng)標(biāo)記陣列1234,該部分響應(yīng)字段1202用于存儲(chǔ)累積的部分響應(yīng),而且響應(yīng)標(biāo)記陣列1234具有相應(yīng)的標(biāo)記用于高達(dá)4個(gè)可能來源中的每一個(gè),其中節(jié)點(diǎn)主設(shè)備或者遠(yuǎn)程中心100可以從這些來源接收部分響應(yīng)(即,節(jié)點(diǎn)主設(shè)備(NM)/遠(yuǎn)程(R)、以及第一層X、Y、和Z鏈接)。此外,每個(gè)條目1230包括路由字段1236,其標(biāo)識(shí)操作是僅僅節(jié)點(diǎn)范圍的廣播操作還是全系統(tǒng)范圍的廣播操作,以及對(duì)于全系統(tǒng)范圍的廣播操作,該請(qǐng)求在哪個(gè)進(jìn)入第二層鏈接上接收(以及因此累積的部分響應(yīng)將在哪個(gè)外出第二層鏈接上傳送)。在NM/RH部分響應(yīng)FIFO隊(duì)列940內(nèi)的條目1230經(jīng)由分配指針1210分配,并且經(jīng)由釋放指針1212釋放。利用X指針1216、Y指針1218、和Z指針1220訪問和更新組成響應(yīng)標(biāo)記陣列1234的各個(gè)標(biāo)記。
如上面相對(duì)于圖11所述,每個(gè)處理單元100無需通過其第一層X、Y、和Z鏈接中的每一個(gè)全耦接到其它處理單元100。因此,忽略在響應(yīng)標(biāo)記陣列1204內(nèi)與未連接的鏈接相關(guān)聯(lián)的標(biāo)記??梢岳缤ㄟ^在配置寄存器123中指示的配置來指示每個(gè)處理單元100中的未連接鏈接(若有的話)。
現(xiàn)在參見圖13A-13D,分別給出了描述根據(jù)本發(fā)明的示例性實(shí)施例、在請(qǐng)求階段期間在本地主設(shè)備(或節(jié)點(diǎn)主設(shè)備)、本地中心、遠(yuǎn)程中心(或節(jié)點(diǎn)主設(shè)備)、以及遠(yuǎn)程葉子(或節(jié)點(diǎn)葉子)處的操作的示例性處理的流程圖?,F(xiàn)在具體參見圖13A,在本地主設(shè)備(或如果是僅僅節(jié)點(diǎn)或者超級(jí)節(jié)點(diǎn)廣播的話,節(jié)點(diǎn)主設(shè)備)100處的請(qǐng)求階段處理從塊1400開始,其中由本地(或節(jié)點(diǎn))主設(shè)備100內(nèi)的特定主設(shè)備300(例如,L2高速緩存110內(nèi)的主設(shè)備112或者I/O控制器128內(nèi)的主設(shè)備之一)生成請(qǐng)求。在塊1400之后,處理繼續(xù)到塊1402、1404、1406、和1408,這些塊中的每個(gè)都代表有關(guān)由特定主設(shè)備300發(fā)布請(qǐng)求的條件。在塊1402和1404處說明的條件代表主設(shè)備多路復(fù)用器900的操作,并且在塊1406和1408處說明的條件代表請(qǐng)求多路復(fù)用器904的操作。
首先轉(zhuǎn)向塊1402和1404,如果支配主設(shè)備多路復(fù)用器900的公平判優(yōu)策略從(可能的)多個(gè)競(jìng)爭(zhēng)主設(shè)備300的請(qǐng)求中選擇特定主設(shè)備300的請(qǐng)求(塊1402),并且如果該請(qǐng)求是全系統(tǒng)范圍的廣播,如果存在可分配給該請(qǐng)求的本地中心令牌(塊1404),則主設(shè)備多路復(fù)用器900輸出特定主設(shè)備300的請(qǐng)求。如塊1415所示,如果主設(shè)備300將其請(qǐng)求范圍選擇為具有僅僅節(jié)點(diǎn)或者超級(jí)節(jié)點(diǎn)范圍(例如,如在上面引用的美國專利申請(qǐng)第11/055,305號(hào)中所述的那樣,通過參考配置寄存器123的設(shè)置和/或范圍預(yù)測(cè)機(jī)制),則不需要本地中心令牌,并且省略在塊1404處說明的條件。
假定特定主設(shè)備300的請(qǐng)求通過主設(shè)備多路復(fù)用器900前進(jìn)到請(qǐng)求多路復(fù)用器904,則只有當(dāng)在外出第一層鏈接信息分配中有地址占有期可用于請(qǐng)求時(shí),請(qǐng)求多路復(fù)用器904才在請(qǐng)求總線905上發(fā)出該請(qǐng)求(塊1406)。也就是說,請(qǐng)求多路復(fù)用器904的輸出與選定鏈接信息分配進(jìn)行時(shí)間片對(duì)齊,并且將僅僅在被設(shè)計(jì)成承載請(qǐng)求的周期(例如,圖7A的實(shí)施例中的周期0或者2)期間生成輸出。如在塊1408處進(jìn)一步說明的那樣,只有當(dāng)不存在由遠(yuǎn)程中心多路復(fù)用器903提供的、來自進(jìn)入的第二層A和B鏈接的請(qǐng)求(總是向該請(qǐng)求給予優(yōu)先權(quán))(塊1406)時(shí),請(qǐng)求多路復(fù)用器904才會(huì)發(fā)布請(qǐng)求。因此,保證相對(duì)于進(jìn)入請(qǐng)求、第二層鏈接不被阻塞。即使利用這樣的不阻塞策略,也可以通過在上游中心的判優(yōu)器1032中的適當(dāng)策略的實(shí)現(xiàn)來防止主設(shè)備300發(fā)出的請(qǐng)求的“挨餓(starving)”,其中上游中心的判優(yōu)器1032中的適當(dāng)策略防止在下游中心的進(jìn)入A和B鏈接上的多個(gè)連續(xù)地址占有期期間“擋住(brickwalling)”請(qǐng)求。
如果在任何塊1402-1408處做出了否定的確定,則如塊1410處所指示的那樣,延遲該請(qǐng)求直到其中在塊1402-1408處說明的所有確定都是肯定的后續(xù)周期為止。相反,如果在所有塊1402-1408上都做出了肯定的確定,則處理繼續(xù)到塊1417。塊1417代表僅僅節(jié)點(diǎn)范圍(由Ttype字段700的范圍指示符730所指示)或者超級(jí)節(jié)點(diǎn)范圍(如由配置寄存器123所指示)的請(qǐng)求經(jīng)受附加的條件。
首先,如塊1419所示,如果該請(qǐng)求是僅僅節(jié)點(diǎn)或者超級(jí)節(jié)點(diǎn)的廣播請(qǐng)求,則只有當(dāng)NM標(biāo)記FIFO隊(duì)列924b2中存在可分配給該請(qǐng)求的條目時(shí),請(qǐng)求多路復(fù)用器904才將發(fā)布該請(qǐng)求。如果不存在的話,則該處理從塊1419傳遞到已經(jīng)描述的塊1410。
其次,如塊1423所述,在所描述的實(shí)施例中,只有當(dāng)請(qǐng)求地址不哈希到與在先前請(qǐng)求FIFO緩沖器907內(nèi)緩沖的、任意選定數(shù)目的先前請(qǐng)求相同的存儲(chǔ)體資源1910中的存儲(chǔ)體1912時(shí),請(qǐng)求多路復(fù)用器904才將發(fā)布僅僅節(jié)點(diǎn)或者超級(jí)節(jié)點(diǎn)范圍的請(qǐng)求。例如,假定窺探設(shè)備1900和它相關(guān)聯(lián)的資源1910被構(gòu)造成窺探設(shè)備1900不能以最大請(qǐng)求到達(dá)速率為請(qǐng)求服務(wù),而是可以被表達(dá)為1/R的最大到達(dá)速率的一部分來為請(qǐng)求服務(wù),則先前請(qǐng)求的選定數(shù)目優(yōu)選地為R-1,其中將為由請(qǐng)求多路復(fù)用器904啟動(dòng)而競(jìng)爭(zhēng)的當(dāng)前僅僅節(jié)點(diǎn)范圍請(qǐng)求與這些先前請(qǐng)求進(jìn)行比較,以確定它是否在同一地址片段中。如果要以這樣的方式保護(hù)多個(gè)不同的窺探設(shè)備1900以防止請(qǐng)求過載,則優(yōu)選地將請(qǐng)求的選定數(shù)目R-1設(shè)置成為各個(gè)窺探設(shè)備1900計(jì)算的量R-1的集合中的最大值。因?yàn)樘幚韱卧?00優(yōu)選地不協(xié)調(diào)它們對(duì)用于廣播的請(qǐng)求的選擇,所以以在塊1423處所述的方式進(jìn)行請(qǐng)求調(diào)速(throttle)不保證在特定窺探設(shè)備1900處的請(qǐng)求到達(dá)速率不會(huì)超過窺探設(shè)備1900的服務(wù)速率。然而,以所示方式對(duì)僅僅節(jié)點(diǎn)范圍的廣播請(qǐng)求進(jìn)行調(diào)速將限制在給定數(shù)目的周期中可到達(dá)的請(qǐng)求數(shù)目,其可以表示為throttled_arr_rate=每R個(gè)周期的PU請(qǐng)求數(shù)其中PU是每個(gè)處理節(jié)點(diǎn)202的處理單元100的數(shù)目。窺探設(shè)備1900優(yōu)選地被設(shè)計(jì)為處理以這樣已調(diào)速的到達(dá)速率到達(dá)的、僅僅節(jié)點(diǎn)范圍的廣播請(qǐng)求而不重試。
如果不滿足在塊1423處所示的條件,則處理從塊1423傳遞到已經(jīng)描述的塊1410。如果滿足在塊1419和1423處說明的條件,則如果請(qǐng)求為僅僅節(jié)點(diǎn)范圍,則請(qǐng)求多路復(fù)用器904在請(qǐng)求總線905上發(fā)布請(qǐng)求,并且該處理通過頁面連接符1425傳遞到圖13C的塊1427。相反,如果如在塊1401處確定該請(qǐng)求為超級(jí)節(jié)點(diǎn)范圍,則只有當(dāng)請(qǐng)求多路復(fù)用器904確定了它在連續(xù)的地址占有期中沒有輸出太多請(qǐng)求時(shí),它才發(fā)布該請(qǐng)求。具體地說,如塊1403所示,為了避免使在A和/或B鏈接上的進(jìn)入請(qǐng)求挨餓,請(qǐng)求多路復(fù)用器904在不超過可用地址占有期一半(即,1/t2)的期間啟動(dòng)主設(shè)備300的請(qǐng)求。如果滿足了在塊1401處所描述的條件,則請(qǐng)求多路復(fù)用器904在請(qǐng)求總線905上發(fā)布超級(jí)節(jié)點(diǎn)請(qǐng)求,并且該處理通過頁面連接符1425傳遞到圖13C的塊1427。如果不滿足在塊1401處所描述的條件,則該處理從塊1401傳遞到已經(jīng)描述的塊1410。
再次返回到塊1417,如果該請(qǐng)求是全系統(tǒng)范圍的廣播請(qǐng)求而不是僅僅節(jié)點(diǎn)范圍或者超級(jí)節(jié)點(diǎn)廣播請(qǐng)求,則該處理繼續(xù)到塊1412。塊1412描述了請(qǐng)求多路復(fù)用器904在請(qǐng)求總線905上將該請(qǐng)求廣播到外出X、Y和Z鏈接的每一個(gè)上以及廣播到本地中心地址啟動(dòng)緩沖器910。此后,該處理分叉并且通過頁面連接符1414和1416傳遞到圖13B,該圖13B說明了在每個(gè)本地中心100處對(duì)請(qǐng)求的處理。
現(xiàn)在參見圖13B,在也是本地主設(shè)備100的本地中心100處對(duì)全系統(tǒng)范圍請(qǐng)求的處理被示出為從塊1416開始,并且在與本地主設(shè)備100相同的處理節(jié)點(diǎn)202中的每個(gè)其它本地中心100處對(duì)請(qǐng)求的處理被描述為從塊1414開始。首先轉(zhuǎn)向塊1414,由本地中心100在進(jìn)入X、Y和Z鏈接上接收的請(qǐng)求由LH地址啟動(dòng)緩沖器910所接收。如塊1420和圖9中所述,映射邏輯1010將每個(gè)X、Y和Z請(qǐng)求映射到位置相關(guān)FIFO隊(duì)列1020a-1020d中的適當(dāng)一個(gè)以便緩沖。如上所述,在X、Y和Z鏈接上接收并且放置在位置相關(guān)隊(duì)列1020a-1020d內(nèi)的請(qǐng)求不被立即驗(yàn)證。相反,這些請(qǐng)求經(jīng)受調(diào)整延遲裝置1000a-1000d中的相應(yīng)一個(gè),這些延遲同步對(duì)給定本地中心100上的X、Y和Z請(qǐng)求以及本地請(qǐng)求的處理和對(duì)同一處理節(jié)點(diǎn)202中的其它本地中心100處的對(duì)應(yīng)請(qǐng)求的處理(塊1422)。此后,如塊1430所示,調(diào)整延遲裝置1000驗(yàn)證在位置相關(guān)FIFO隊(duì)列1020a-1020d中的它們各自的請(qǐng)求。
現(xiàn)在參見塊1416,在本地主設(shè)備/本地中心100處,請(qǐng)求總線905上的請(qǐng)求被直接饋送到LH地址啟動(dòng)緩沖器910中。因?yàn)闆]有穿越芯片間鏈接,所以這個(gè)本地請(qǐng)求到達(dá)LH地址啟動(dòng)FIFO 910早于在相同周期中發(fā)布的請(qǐng)求到達(dá)進(jìn)入X、Y和Z鏈接。因此,在由塊1424所述的、由映射邏輯1010進(jìn)行的映射之后,調(diào)整延遲裝置1000a-1000d之一將長延遲應(yīng)用到該本地請(qǐng)求以同步其驗(yàn)證與在進(jìn)入X、Y和Z鏈接上接收的請(qǐng)求的驗(yàn)證(塊1426)。在這個(gè)延遲間隔之后,如塊1430所示,相關(guān)調(diào)整延遲裝置1000驗(yàn)證該本地請(qǐng)求。
在塊1430處對(duì)在LH地址啟動(dòng)緩沖器910內(nèi)排隊(duì)的請(qǐng)求進(jìn)行驗(yàn)證之后,該處理然后繼續(xù)到塊1434-1440,其中每個(gè)塊都代表由判優(yōu)器1032強(qiáng)制的、從LH地址啟動(dòng)緩沖器910中發(fā)布請(qǐng)求的條件。如上所述,同步在所有處理單元100內(nèi)的判優(yōu)器1032,以便由所有本地中心100進(jìn)行相同的判定而無需相互通信。如塊1434所述,只有當(dāng)在外出第二層鏈接信息分配中存在可用于請(qǐng)求的地址占有期時(shí),判優(yōu)器1032才允許本地中心請(qǐng)求多路復(fù)用器1030輸出該請(qǐng)求。因此,例如,判優(yōu)器1032導(dǎo)致本地中心請(qǐng)求多路復(fù)用器1030僅僅在圖7B的實(shí)施例的周期0或2期間才啟動(dòng)請(qǐng)求的傳送。此外,如果由判優(yōu)器1032實(shí)現(xiàn)的公平判優(yōu)策略確定請(qǐng)求屬于接下來應(yīng)該被服務(wù)的位置相關(guān)FIFO隊(duì)列1020a-1020d,則由本地中心請(qǐng)求多路復(fù)用器1030輸出該請(qǐng)求(塊1436)。
如在塊1437和1438處進(jìn)一步描述的那樣,判優(yōu)器1032導(dǎo)致只有當(dāng)本地中心請(qǐng)求多路復(fù)用器1030確定它沒有在連續(xù)的地址占有期中輸出太多請(qǐng)求時(shí),它才輸出請(qǐng)求。具體地說,如塊1437所示,為了避免過度驅(qū)動(dòng)連接到外出A和B鏈接的中心100的請(qǐng)求總線905,判優(yōu)器1032假定最壞情況(即,連接到下游中心100的另一個(gè)第二層鏈接的上游中心100在相同的周期內(nèi)傳送請(qǐng)求),并且在不超過可用地址占有期一半(即,1/t2)的期間啟動(dòng)請(qǐng)求。此外,如塊1438所述,判優(yōu)器1032還將請(qǐng)求的啟動(dòng)限制為低于通信量(traffic)在第二層鏈接上的公平分配,以避免可能使耦接到其外出A和B鏈接的處理單元100中的主設(shè)備300“挨餓”。
例如,給定圖2A的實(shí)施例,其中每個(gè)處理節(jié)點(diǎn)有2對(duì)第二層鏈接和4個(gè)處理單元100,在下游中心100的請(qǐng)求總線905上的通信量經(jīng)受高達(dá)9個(gè)處理單元100的競(jìng)爭(zhēng),即在通過第二層鏈接耦接到下游中心100的2個(gè)處理節(jié)點(diǎn)202的每一個(gè)中的4個(gè)處理單元100,以及下游中心100本身。因此,將請(qǐng)求總線905的帶寬在可能的請(qǐng)求源中平均分配的示例性公平分配策略向進(jìn)入A和B鏈接中的每一個(gè)分配4/9的帶寬,并且向本地主設(shè)備300分配1/9的帶寬。針對(duì)任意數(shù)目的第一和第二層鏈接而推廣,由判優(yōu)器1032所采用的示例性公平分配策略所消耗的、分配的可用地址幀的部分可以表示為部分=(t1/2+1)/(t2/2*(t1/2+1)+1)其中t1和t2代表處理單元100可以耦接到其的第一和第二層鏈接的總數(shù),量“t1/2+1”代表每個(gè)處理節(jié)點(diǎn)202的處理單元100數(shù)目,量“t2/2”代表下游中心100可以耦接到其的處理節(jié)點(diǎn)202的數(shù)目,并且常量“1”代表分配給下游中心100的部分帶寬。
如塊1439所示,判優(yōu)器1032還對(duì)全系統(tǒng)范圍廣播請(qǐng)求的傳送進(jìn)行調(diào)速,這是通過只有當(dāng)請(qǐng)求地址不哈希到與在先前請(qǐng)求FIFO緩沖器911內(nèi)緩沖的R-1個(gè)先前請(qǐng)求中的任何一個(gè)請(qǐng)求相同的存儲(chǔ)體資源1910的存儲(chǔ)體1912時(shí)才發(fā)布全系統(tǒng)范圍的廣播請(qǐng)求,其中1/R是最大到達(dá)速率的一部分,并且最慢的受保護(hù)窺探設(shè)備1900可以該到達(dá)速率為請(qǐng)求服務(wù)。因此,以所示方式對(duì)全系統(tǒng)范圍的廣播請(qǐng)求進(jìn)行調(diào)速將限制在給定數(shù)目的周期內(nèi)可到達(dá)給定窺探設(shè)備1900的請(qǐng)求的數(shù)目,其可以表示為throttled_arr_rate=每R個(gè)周期的N個(gè)請(qǐng)求其中N是處理節(jié)點(diǎn)202的數(shù)目。窺探設(shè)備1900優(yōu)選地被設(shè)計(jì)為處理以這樣已調(diào)速的到達(dá)速率到達(dá)的請(qǐng)求而不重試。
最后參見塊1440所示的條件,只有當(dāng)LH標(biāo)記FIFO隊(duì)列924a中有可用于分配的條目時(shí),判優(yōu)器1032才允許由本地中心請(qǐng)求多路復(fù)用器1030輸出請(qǐng)求(塊1440)。
如果在任何塊1434-1440處做出了否定的確定,則如塊1442所指示的那樣,延遲該請(qǐng)求直到其中在塊1434-1440處說明的所有確定都是肯定的后續(xù)周期為止。相反,如果在所有塊1434-1440處進(jìn)行了肯定的確定,則判優(yōu)器1032向本地中心請(qǐng)求多路復(fù)用器1030通知將選定請(qǐng)求輸出到多路復(fù)用器920的輸入端,該多路復(fù)用器920總是向由LH地址啟動(dòng)緩沖器910提供的請(qǐng)求(若有的話)給予優(yōu)先權(quán)。因此,多路復(fù)用器920在窺探總線922上發(fā)布該請(qǐng)求。應(yīng)當(dāng)注意,多路復(fù)用器920的其它端口(例如,RH、RLX、RLY、和RLZ)可以與LH地址啟動(dòng)緩沖器910一起同時(shí)提供請(qǐng)求,這意指窺探總線922的最大帶寬必須等于外出A和B鏈接的帶寬的10/8(假定圖7B的實(shí)施例),以便跟得上最大到達(dá)速率。
還應(yīng)當(dāng)觀察到,僅僅在本地中心地址啟動(dòng)緩沖器910內(nèi)緩沖的請(qǐng)求在外出A和B鏈接上傳送,并且要求與鏈接信息分配內(nèi)的地址占有期對(duì)齊。因?yàn)樗衅渌?jìng)爭(zhēng)由多路復(fù)用器920發(fā)布的請(qǐng)求僅僅以本地窺探器304以及它們相應(yīng)的FIFO隊(duì)列而不是外出A和B鏈接作為目標(biāo),所以可以在信息幀的剩余周期內(nèi)發(fā)布這樣的請(qǐng)求。因此,與由多路復(fù)用器920采用的特定判優(yōu)方案無關(guān),保證所有同時(shí)向多路復(fù)用器920提供的請(qǐng)求在單個(gè)信息幀的延遲之內(nèi)傳送。
如塊1444所示,響應(yīng)于請(qǐng)求在窺探總線922上的發(fā)布,LH標(biāo)記FIFO隊(duì)列924a在下一個(gè)可用條目的主設(shè)備標(biāo)記字段1100中記錄在該請(qǐng)求中指定的主設(shè)備標(biāo)記。然后,如塊1446所示,將該請(qǐng)求路由到外出A和B鏈接。該處理然后通過頁面連接符1448傳遞到圖13B,其描述了在請(qǐng)求階段期間在每個(gè)遠(yuǎn)程中心處對(duì)請(qǐng)求的處理。
圖13B中描述的處理還從塊1446繼續(xù)到塊1450,其說明了響應(yīng)于從LH地址啟動(dòng)緩沖器910中移除請(qǐng)求,本地中心100釋放分配給該請(qǐng)求的本地中心令牌。如塊1452所示,該請(qǐng)求被進(jìn)一步路由到本地中心100中的窺探器304。響應(yīng)于該請(qǐng)求的接收,窺探器304生成部分響應(yīng)(塊1454),其被記錄在LH部分響應(yīng)FIFO隊(duì)列930內(nèi)(塊1456)。具體而言,在塊1456處,通過參考分配指針1210將LH部分響應(yīng)FIFO隊(duì)列930中的條目1200分配給該請(qǐng)求,遞增分配指針1210,在所分配條目的部分響應(yīng)字段1202內(nèi)放置本地中心的部分響應(yīng),并且在響應(yīng)標(biāo)記字段1204中設(shè)置本地(L)標(biāo)記。此后,在塊1458處,結(jié)束在本地中心100處的請(qǐng)求階段處理。
現(xiàn)在參見圖13C,其中描述了根據(jù)本發(fā)明、在遠(yuǎn)程中心(或者對(duì)于僅僅節(jié)點(diǎn)范圍的廣播請(qǐng)求,節(jié)點(diǎn)主設(shè)備)100處的請(qǐng)求處理的示例性方法的高級(jí)邏輯流程圖。如同所述,對(duì)于全系統(tǒng)范圍或者超級(jí)節(jié)點(diǎn)廣播請(qǐng)求,當(dāng)在遠(yuǎn)程中心100處在其進(jìn)入A和B鏈接之一上收到請(qǐng)求時(shí),該處理從頁面連接符1448開始。如上所述,在如塊1460所示將請(qǐng)求鎖存到保持緩沖器902a-902b的相應(yīng)一個(gè)中之后,如塊1464和1465所述,由遠(yuǎn)程中心多路復(fù)用器903和請(qǐng)求多路復(fù)用器904計(jì)算該請(qǐng)求以便在請(qǐng)求總線905上傳送該請(qǐng)求。具體而言,在塊1464處,遠(yuǎn)程中心多路復(fù)用器903根據(jù)將地址占有期平均地分配給在進(jìn)入第二層鏈接上接收的請(qǐng)求的公平分配策略,確定是否輸出全系統(tǒng)范圍的廣播請(qǐng)求(超級(jí)節(jié)點(diǎn)請(qǐng)求總是“獲勝”的請(qǐng)求,這是因?yàn)闆]有由節(jié)點(diǎn)主設(shè)備100在其它第二層鏈接上同時(shí)供應(yīng)的競(jìng)爭(zhēng)請(qǐng)求)。此外,如塊1465所述,只有當(dāng)?shù)刂氛加衅诳捎脮r(shí),與第一層鏈接信息分配時(shí)間片對(duì)齊的請(qǐng)求多路復(fù)用器904才會(huì)輸出請(qǐng)求。因此,如塊1466所示,如果請(qǐng)求不是多路復(fù)用器903的公平分配策略下的獲勝請(qǐng)求,如果適用,或者如果沒有地址占有期是可用的,則多路復(fù)用器904等待下一地址占有期。然而應(yīng)當(dāng)理解,即使延遲了在進(jìn)入第二層鏈接上接收的請(qǐng)求,該延遲也將不會(huì)超過第一層鏈接信息分配的一幀。
如果滿足在塊1464和1465處描述的條件,則多路復(fù)用器904在請(qǐng)求總線905上啟動(dòng)該請(qǐng)求,并且該處理從塊1465繼續(xù)到塊1468。如同所示,從圖13A的塊1421開始、在塊1423處繼續(xù)的節(jié)點(diǎn)主設(shè)備100處的請(qǐng)求階段處理也傳遞到塊1468。塊1468說明了在請(qǐng)求總線905上發(fā)布的請(qǐng)求到外出X、Y和Z鏈接以及NM/RH保持緩沖器906的路由。在塊1468之后,該處理分叉。第一路徑通過頁面連接符1470傳遞到圖13D,其說明了在遠(yuǎn)程(或節(jié)點(diǎn))葉子100處的請(qǐng)求處理的示例性方法。第二路徑從塊1468繼續(xù)到塊1474,其說明了窺探多路復(fù)用器920確定要將在其輸入端提供的哪個(gè)請(qǐng)求在窺探總線922上輸出。如同所示,窺探多路復(fù)用器920使本地中心請(qǐng)求優(yōu)先于遠(yuǎn)程中心請(qǐng)求,遠(yuǎn)程中心請(qǐng)求又優(yōu)先于在NL/RL保持緩沖器914a-914c中緩沖的請(qǐng)求。因此,如果由LH地址啟動(dòng)緩沖器910提供了本地中心請(qǐng)求以便選擇,則如塊1476所示,延遲在NM/RH保持緩沖器906內(nèi)緩沖的請(qǐng)求。然而,如果沒有由LH地址啟動(dòng)緩沖器910提供請(qǐng)求,則窺探多路復(fù)用器920將來自NM/RH保持緩沖器906的請(qǐng)求發(fā)布在窺探總線922上(在超級(jí)節(jié)點(diǎn)請(qǐng)求的情況下,沒有由LH地址啟動(dòng)緩沖器910提供競(jìng)爭(zhēng)請(qǐng)求,并且在塊1474處描述的確定將總是具有否定的結(jié)果)。
響應(yīng)于在窺探總線922上檢測(cè)到請(qǐng)求,標(biāo)記FIFO隊(duì)列924b中的適當(dāng)一個(gè)(即,在節(jié)點(diǎn)主設(shè)備處,NM標(biāo)記FIFO隊(duì)列924b2,或者在遠(yuǎn)程中心處,與在其上接收了請(qǐng)求的進(jìn)入第二層鏈接相關(guān)聯(lián)的RH標(biāo)記FIFO隊(duì)列924b0和924b1之一)將由該請(qǐng)求指定的主設(shè)備標(biāo)記放置到其下一個(gè)可用條目的主設(shè)備標(biāo)記字段1100中(塊1478)。如上所述,僅僅節(jié)點(diǎn)范圍的廣播請(qǐng)求和全系統(tǒng)范圍的廣播請(qǐng)求通過該請(qǐng)求的Ttype字段700內(nèi)的范圍指示符730來區(qū)分,而超級(jí)節(jié)點(diǎn)模式由配置寄存器123所指示。如塊1480所示,該請(qǐng)求被進(jìn)一步路由到節(jié)點(diǎn)主設(shè)備100或遠(yuǎn)程中心100中的窺探器304。此后,該處理分叉并且繼續(xù)到塊1482和1479中的每一個(gè)。
首先參見塊1482,窺探器304響應(yīng)于請(qǐng)求的接收而生成部分響應(yīng),并且將該部分響應(yīng)記錄在NM/RH部分響應(yīng)FIFO隊(duì)列940內(nèi)(塊1484)。具體而言,通過參考分配指針1210將NM/RH部分響應(yīng)FIFO隊(duì)列940中的條目1230分配給該請(qǐng)求,遞增該分配指針1210,在部分響應(yīng)字段1202內(nèi)放置遠(yuǎn)程中心的部分響應(yīng),并且在響應(yīng)標(biāo)記字段1234中設(shè)置節(jié)點(diǎn)主設(shè)備/遠(yuǎn)程標(biāo)志(NM/R)。應(yīng)當(dāng)注意到,NM/RH部分響應(yīng)FIFO隊(duì)列940因此以相同的數(shù)據(jù)結(jié)構(gòu)緩沖不同范圍的操作的部分響應(yīng)。此外,如塊1483和1485所示,如果該請(qǐng)求是在節(jié)點(diǎn)主設(shè)備100處的超級(jí)節(jié)點(diǎn)請(qǐng)求,則還在LH部分響應(yīng)FIFO隊(duì)列930的條目1200內(nèi)屏蔽處理器100的部分響應(yīng),并且設(shè)置響應(yīng)標(biāo)記陣列1204內(nèi)的本地標(biāo)志。在塊1483或者塊1485之后,在節(jié)點(diǎn)主設(shè)備100或者遠(yuǎn)程中心100處的請(qǐng)求階段處理在塊1486結(jié)束。
現(xiàn)在轉(zhuǎn)向塊1479,如果配置寄存器123指示超級(jí)節(jié)點(diǎn)模式并且該處理器是節(jié)點(diǎn)主設(shè)備100,則進(jìn)一步將該請(qǐng)求路由到第二層鏈接中的預(yù)定一個(gè)(例如,鏈接A)。然后,該處理通過塊1477傳遞到塊1448,其中塊1448表示在遠(yuǎn)程中心100處對(duì)該請(qǐng)求的請(qǐng)求階段處理。相反,如果在塊1479處做出了否定的確定,則該處理簡單地在塊1481終止。
現(xiàn)在參見圖13D,其中說明了根據(jù)本發(fā)明、在遠(yuǎn)程葉子(或節(jié)點(diǎn)葉子)100處的請(qǐng)求處理的示例性方法的高級(jí)邏輯流程圖。如同所示,當(dāng)在遠(yuǎn)程葉子或節(jié)點(diǎn)葉子100處在其進(jìn)入X、Y和Z鏈接之一上接收到請(qǐng)求時(shí),該處理從頁面連接符1470開始。如塊1490所示,響應(yīng)于請(qǐng)求的接收,該請(qǐng)求被鎖存到與在其上接收了請(qǐng)求的第一層鏈接相關(guān)聯(lián)的NL/RL保持緩沖器914a-914c中的特定一個(gè)中。接下來,如塊1491所述,該請(qǐng)求連同在窺探多路復(fù)用器920的輸入端提供的其它請(qǐng)求一起由窺探多路復(fù)用器920計(jì)算。如上所述,窺探多路復(fù)用器920使本地中心請(qǐng)求優(yōu)先于遠(yuǎn)程中心請(qǐng)求,遠(yuǎn)程中心請(qǐng)求又優(yōu)先于在NL/RL保持緩沖器914a-914c中緩沖的請(qǐng)求。因此,如果提供了本地中心或者遠(yuǎn)程中心請(qǐng)求以便選擇,則如塊1492所示,延遲在NL/RL保持緩沖器914內(nèi)緩沖的請(qǐng)求。然而,如果沒有向窺探多路復(fù)用器920提供較高優(yōu)先級(jí)的請(qǐng)求,則窺探多路復(fù)用器920通過在X、Y和Z請(qǐng)求之間進(jìn)行公平的選擇,在窺探總線922上發(fā)布來自NL/RL保持緩沖器914的請(qǐng)求。
響應(yīng)于在窺探總線922上檢測(cè)到請(qǐng)求,與請(qǐng)求范圍以及接收該請(qǐng)求的路由相關(guān)聯(lián)的標(biāo)記FIFO隊(duì)列924c0-924c2、924d0-924c2和924e0-924e2中的特定一個(gè)將由該請(qǐng)求指定的主設(shè)備標(biāo)記放置到其下一個(gè)可用條目的主設(shè)備標(biāo)記字段1100中(塊1493)。也就是說,在該請(qǐng)求的Ttype字段700內(nèi)的范圍指示符730用來確定該請(qǐng)求是僅僅節(jié)點(diǎn)范圍還是全系統(tǒng)范圍,而配置寄存器123的設(shè)置用來指示超級(jí)節(jié)點(diǎn)模式。對(duì)于僅僅節(jié)點(diǎn)范圍以及超級(jí)節(jié)點(diǎn)廣播請(qǐng)求,與在其上接收了請(qǐng)求的進(jìn)入第一層鏈接相關(guān)聯(lián)的NL標(biāo)記FIFO隊(duì)列924c2、924d2和924e2中的特定一個(gè)緩沖該主設(shè)備標(biāo)記。對(duì)于全系統(tǒng)范圍和超級(jí)節(jié)點(diǎn)廣播請(qǐng)求,將主設(shè)備標(biāo)記放置在與在其上接收了請(qǐng)求的進(jìn)入第一和第二層鏈接的組合相對(duì)應(yīng)的遠(yuǎn)程節(jié)點(diǎn)中的RL標(biāo)記FIFO隊(duì)列924c0-924c1、924d0-924d1和924e0-924e1中的特定一個(gè)中。如塊1494所示,該請(qǐng)求被進(jìn)一步路由到遠(yuǎn)程葉子100中的窺探器304。響應(yīng)于請(qǐng)求的接收,窺探器304處理該請(qǐng)求,生成它們各自的部分響應(yīng),并且累積該部分響應(yīng)以獲得該處理單元100的部分響應(yīng)(塊1495)。如頁面連接符1497所示,遠(yuǎn)程葉子或節(jié)點(diǎn)葉子100的窺探器304的部分響應(yīng)根據(jù)下面所述的圖15A進(jìn)行處理。
圖13E是示例性方法的高級(jí)邏輯流程圖,窺探器304利用該方法例如在圖13B-13D的塊1454、1482和1495處生成對(duì)請(qǐng)求的部分響應(yīng)。響應(yīng)于由窺探器304(例如,IMC窺探器126、L2高速緩存窺探器116或者I/O控制器128內(nèi)的窺探器)接收到請(qǐng)求,該處理從塊1401開始。響應(yīng)于請(qǐng)求的接收,窺探器304通過參考由該請(qǐng)求指定的事務(wù)類型,確定該請(qǐng)求是否是諸如逐出請(qǐng)求、寫入請(qǐng)求、或者部分寫入請(qǐng)求之類的寫入類型的請(qǐng)求。響應(yīng)于窺探器304在塊1403處確定該請(qǐng)求不是寫入類型的請(qǐng)求(例如,讀取或者RWITM請(qǐng)求),該處理繼續(xù)到塊1405,其中說明了如果需要的話,窺探器304通過常規(guī)處理生成對(duì)該請(qǐng)求的部分響應(yīng)。然而,如果窺探器304確定該請(qǐng)求是寫入類型的請(qǐng)求,則該處理繼續(xù)到塊1407。
塊1407描述了窺探器304確定它是否是用于由該寫入類型請(qǐng)求所指定的請(qǐng)求地址的LPC。例如,窺探器304可以通過參考一個(gè)或多個(gè)基地址寄存器(BAR)和/或指定窺探器304所負(fù)責(zé)的地址范圍(即,LPC)的地址哈希函數(shù),來進(jìn)行所述確定。如果窺探器304確定它不是用于該請(qǐng)求地址的LPC,則該處理傳遞到塊1409。塊1409說明了窺探器304生成寫入請(qǐng)求部分響應(yīng)720(圖7C),其中有效字段722和目的地標(biāo)記字段724由全‘0’形成,由此表示該窺探器304不是用于該請(qǐng)求地址的LPC。然而,如果窺探器304在塊1407處確定它是用于該請(qǐng)求地址的LPC,則該處理傳遞到塊1411,其中描述了窺探器304生成寫入請(qǐng)求部分響應(yīng)720,其中有效字段722被設(shè)置為‘1’,并且目的地標(biāo)記字段724指定了唯一地標(biāo)識(shí)窺探器304在數(shù)據(jù)處理系統(tǒng)200內(nèi)的位置的目的地標(biāo)記或者路由。在塊1409或1411中的任一個(gè)之后,圖13E所示的處理在塊1413結(jié)束。
VII.部分響應(yīng)階段結(jié)構(gòu)和操作現(xiàn)在參見圖14,其中描述了說明在圖1的互連邏輯120內(nèi)的部分響應(yīng)邏輯121b的示例性實(shí)施例的框圖。如同所示,部分響應(yīng)邏輯121b包括路由邏輯1500,其將由遠(yuǎn)程葉子(或節(jié)點(diǎn)葉子)100處的窺探器304生成的遠(yuǎn)程部分響應(yīng)路由回到遠(yuǎn)程中心(或節(jié)點(diǎn)主設(shè)備)100,其中經(jīng)由外出第一層X、Y和Z鏈接中的適當(dāng)一個(gè)從該遠(yuǎn)程中心(或節(jié)點(diǎn)主設(shè)備)100接收了該請(qǐng)求。此外,部分響應(yīng)邏輯121b包括組合邏輯1502和路由邏輯1504。組合邏輯1502累積從遠(yuǎn)程(或節(jié)點(diǎn))葉子100接收的部分響應(yīng)以及在NM/RH部分響應(yīng)FIFO隊(duì)列940內(nèi)緩沖的、對(duì)相同請(qǐng)求的其它部分響應(yīng)(一個(gè)或多個(gè))。對(duì)于僅僅節(jié)點(diǎn)范圍的廣播操作,節(jié)點(diǎn)主設(shè)備100的組合邏輯1502直接將累積的部分響應(yīng)提供給響應(yīng)邏輯122。對(duì)于全系統(tǒng)范圍或者超級(jí)節(jié)點(diǎn)廣播操作,組合邏輯1502將累積的部分響應(yīng)提供給路由邏輯1504,其經(jīng)由外出A和B鏈接之一將累積的部分響應(yīng)路由到本地中心100。
部分響應(yīng)邏輯121b還包括保持緩沖器1506a-1506b,其從遠(yuǎn)程中心100接收和緩沖部分響應(yīng);多路復(fù)用器1507,其應(yīng)用公平判優(yōu)策略以從在保持緩沖器1506a-1506b內(nèi)緩沖的部分響應(yīng)當(dāng)中進(jìn)行選擇;以及廣播邏輯1508,其將由多路復(fù)用器1507選擇的部分響應(yīng)廣播到其處理節(jié)點(diǎn)202內(nèi)的每個(gè)其它處理單元100。如將多路復(fù)用器1507的輸出端耦接到可編程延遲裝置1509的路徑進(jìn)一步所示,多路復(fù)用器1507執(zhí)行由可編程延遲裝置1509延遲大約一個(gè)第一層鏈接延遲時(shí)間的部分響應(yīng)的本地廣播,以便與在進(jìn)入X、Y和Z鏈接上從其它處理單元100接收的部分響應(yīng)大致同時(shí)地由組合邏輯1510接收該本地廣播部分響應(yīng)。組合邏輯1510累積在進(jìn)入X、Y和Z鏈接上接收的部分響應(yīng)和從進(jìn)入第二層鏈接接收的本地廣播部分響應(yīng)以及本地生成的部分響應(yīng)(其在LH部分響應(yīng)FIFO隊(duì)列930內(nèi)緩沖),并且當(dāng)不處于超級(jí)節(jié)點(diǎn)模式時(shí),將所累積的部分響應(yīng)傳送到響應(yīng)邏輯122,以便生成該請(qǐng)求的組合響應(yīng)。
現(xiàn)在參見圖15A-15C,其中說明了分別描述了在遠(yuǎn)程葉子(和節(jié)點(diǎn)葉子)、遠(yuǎn)程中心(和對(duì)于非超級(jí)節(jié)點(diǎn)模式操作的節(jié)點(diǎn)主設(shè)備)、以及本地中心(或者對(duì)于超級(jí)節(jié)點(diǎn)模式操作的節(jié)點(diǎn)主設(shè)備)處的操作的部分響應(yīng)階段期間的示例性處理。在這些附圖中,部分響應(yīng)的傳送可能經(jīng)受未顯式示出的各種延遲。然而,因?yàn)槿缟纤?、在部分響?yīng)延遲上沒有定時(shí)約束,所以這樣的延遲(如果存在的話)將不會(huì)導(dǎo)致操作出錯(cuò),并因此不在此處進(jìn)行進(jìn)一步的描述。
現(xiàn)在具體參見圖15A,當(dāng)遠(yuǎn)程葉子(或節(jié)點(diǎn)葉子)100的窺探器304生成請(qǐng)求的部分響應(yīng)時(shí),在遠(yuǎn)程葉子(或節(jié)點(diǎn)葉子)100處的部分響應(yīng)階段處理從塊1600開始。如塊1602所示,路由邏輯1500然后使用鏈接信息分配的遠(yuǎn)程部分響應(yīng)字段712,經(jīng)由與在其上接收了請(qǐng)求的進(jìn)入第一層鏈接相對(duì)應(yīng)的外出X、Y或Z鏈接,將該部分響應(yīng)路由到用于該請(qǐng)求的遠(yuǎn)程中心100。如上所示,在其上接收了請(qǐng)求的進(jìn)入第一層鏈接通過標(biāo)記FIFO隊(duì)列924c0-924c2、924d0-924d2和924e0-924e2中的哪一個(gè)保持用于該請(qǐng)求的主設(shè)備標(biāo)記來指示。此后,如頁面連接符1604所示以及如下面參考圖15B所述,在遠(yuǎn)程中心(或節(jié)點(diǎn)主設(shè)備)100處繼續(xù)部分響應(yīng)處理。
現(xiàn)在參見圖15B,其中說明了根據(jù)本發(fā)明、在遠(yuǎn)程中心(以及對(duì)于非超級(jí)節(jié)點(diǎn)模式操作,在節(jié)點(diǎn)主設(shè)備)處的部分響應(yīng)處理的方法的示例性實(shí)施例的高級(jí)邏輯流程圖。響應(yīng)于接收到通過第一層X、Y和Z鏈接之一耦接到遠(yuǎn)程中心(或節(jié)點(diǎn)主設(shè)備)100的遠(yuǎn)程葉子(或節(jié)點(diǎn)葉子)100之一的部分響應(yīng),所述處理從頁面連接符1604開始。響應(yīng)于該部分響應(yīng)的接收,組合邏輯1502讀出分配給該操作的、在NM/RH部分響應(yīng)FIFO隊(duì)列940內(nèi)的條目1230。如與在其上接收了部分響應(yīng)的鏈接相關(guān)聯(lián)的X、Y或Z指針1216-1220所示,由在NM/RH部分響應(yīng)FIFO隊(duì)列940內(nèi)所觀察到的FIFO次序標(biāo)識(shí)該條目。組合邏輯1502然后累積遠(yuǎn)程(或節(jié)點(diǎn))葉子100的部分響應(yīng)與所讀取條目1230的部分響應(yīng)字段1202的內(nèi)容。如上所述,累積操作優(yōu)選地是諸如邏輯或操作之類的非破壞性操作。如塊1605和1607所示,對(duì)于超級(jí)節(jié)點(diǎn)模式中在節(jié)點(diǎn)主設(shè)備100處的請(qǐng)求,還在LH部分響應(yīng)FIFO隊(duì)列930的條目1200內(nèi)屏蔽所累積的部分響應(yīng),并且設(shè)置響應(yīng)標(biāo)志陣列1204內(nèi)的適當(dāng)標(biāo)志。在塊1605或塊1607之后,該處理繼續(xù)到塊1614。在塊1614處,組合邏輯1502通過參考NM/RH部分響應(yīng)FIFO隊(duì)列940中的條目1230的響應(yīng)標(biāo)志陣列1234,利用在塊1604接收的部分響應(yīng)來確定所有的遠(yuǎn)程(或節(jié)點(diǎn))葉子100是否已經(jīng)報(bào)告了它們各自的部分響應(yīng)。如果否,則該處理繼續(xù)到塊1616,其中說明了組合邏輯1502用所累積的部分響應(yīng)更新分配給該操作的條目1230的部分響應(yīng)字段1202,在響應(yīng)標(biāo)志陣列1234中設(shè)置適當(dāng)?shù)臉?biāo)志來指示哪個(gè)遠(yuǎn)程(或節(jié)點(diǎn))葉子100提供了部分響應(yīng),以及使指針1216-1220中相關(guān)聯(lián)的一個(gè)前進(jìn)。此后,在塊1618處結(jié)束該處理。
再次參見塊1614,響應(yīng)于由組合邏輯1502確定所有遠(yuǎn)程(或節(jié)點(diǎn))葉子100都已經(jīng)報(bào)告了它們各自的對(duì)該操作的部分響應(yīng),組合邏輯1502通過參考釋放指針1212,從NM/RH部分響應(yīng)FIFO隊(duì)列940中釋放用于該操作的條目1230(塊1620)。接下來,如塊1621所述,組合邏輯1502檢查已釋放條目的路由字段1236,以確定該操作的范圍。如果已釋放條目的路由字段1236指示該操作在遠(yuǎn)程節(jié)點(diǎn)處處理,則如塊1622所述,組合邏輯1502利用鏈接分配信息中的遠(yuǎn)程部分響應(yīng)字段712,將所累積的部分響應(yīng)路由到由路由字段1236的內(nèi)容所指示的外出A和B鏈接中的特定一個(gè)。(超級(jí)節(jié)點(diǎn)模式中的操作的部分響應(yīng)優(yōu)選地在第二層鏈接的預(yù)定一個(gè)(例如,鏈接A)上傳送。)此后,該處理通過頁面連接符1624傳遞到圖15C。再次參見塊1621,如果該條目的路由字段1236指示該操作在節(jié)點(diǎn)主設(shè)備100處處理,則如果配置寄存器123未指示超級(jí)節(jié)點(diǎn)模式,則組合邏輯1502直接將所累積的部分響應(yīng)提供給響應(yīng)邏輯122(塊1617)。此后,該處理通過頁面連接符1625傳遞到下面所述的圖17A。然而,如果組合邏輯1502在塊1617確定配置寄存器123指示超級(jí)節(jié)點(diǎn)模式,則該處理簡單地在塊1619結(jié)束而不用讓組合邏輯1502將從NM/RH部分響應(yīng)FIFO隊(duì)列940中釋放的部分響應(yīng)路由到響應(yīng)邏輯122。不需要這樣的路由是因?yàn)槿缦旅鎱⒖紙D15C所述,用于這樣操作的組合響應(yīng)從由LH部分響應(yīng)FIFO隊(duì)列930所維護(hù)的屏蔽副本中生成。
現(xiàn)在參見圖15C,其中描述了根據(jù)本發(fā)明的實(shí)施例、在本地中心100(對(duì)于超級(jí)節(jié)點(diǎn)模式,包括本地主設(shè)備100或者節(jié)點(diǎn)主設(shè)備100)處的部分響應(yīng)處理的示例性方法的高級(jí)邏輯流程圖。響應(yīng)于在本地中心100處經(jīng)由進(jìn)入A和B鏈接之一從遠(yuǎn)程中心100接收到部分響應(yīng),該處理從塊1624開始。在接收時(shí),該部分響應(yīng)被放置在耦接到在其上接收了部分響應(yīng)的進(jìn)入第二層鏈接的保持緩沖器1506a、1506b內(nèi)(塊1626)。如塊1627所示,如果配置寄存器123未指示超級(jí)節(jié)點(diǎn)模式,則多路復(fù)用器1507應(yīng)用公平判優(yōu)策略,以從在保持緩沖器1506a-1506b內(nèi)緩沖的部分響應(yīng)當(dāng)中進(jìn)行選擇。因此,如果通過公平判優(yōu)策略未選擇部分響應(yīng),則如塊1628所示,延遲部分響應(yīng)的廣播。必要時(shí),一旦通過公平判優(yōu)策略(可能在延遲之后)選擇了部分響應(yīng),則多路復(fù)用器1507將部分響應(yīng)輸出到廣播邏輯1508和可編程延遲裝置1509。因?yàn)椴糠猪憫?yīng)的到達(dá)速率由請(qǐng)求啟動(dòng)的速率所限制,所以多路復(fù)用器1507的輸出總線將不會(huì)因部分響應(yīng)而變得過載。如塊1625所示,如果配置寄存器123未指示超級(jí)節(jié)點(diǎn)模式,則該處理接下來繼續(xù)到塊1629,否則省略塊1629并且直接繼續(xù)到塊1630。
塊1629描述了廣播邏輯1508經(jīng)由第一層X、Y和Z鏈接將由多路復(fù)用器1507選擇的部分響應(yīng)廣播到其處理節(jié)點(diǎn)202中的每個(gè)其它處理單元100,并且多路復(fù)用器1507通過將部分響應(yīng)輸出到可編程延遲裝置1509來執(zhí)行部分響應(yīng)的本地廣播。此后,該處理分叉并且繼續(xù)到塊1631和塊1630中的每一個(gè),其中塊1631說明了在其它本地中心100處的部分響應(yīng)階段處理的繼續(xù)。如塊1630所示,如果配置寄存器123未指示超級(jí)節(jié)點(diǎn)模式,則當(dāng)前本地中心100內(nèi)的部分響應(yīng)廣播由有選擇應(yīng)用的可編程延遲裝置1509延遲大約第一層鏈接的傳送延遲時(shí)間,以便該本地廣播部分響應(yīng)與在進(jìn)入X、Y和Z鏈接上、從其它處理單元100接收的部分響應(yīng)(一個(gè)或多個(gè))大約同時(shí)地由組合邏輯1510接收。如塊1640所示,組合邏輯1510將遠(yuǎn)程中心100的本地廣播部分響應(yīng)與從進(jìn)入第一層鏈接(一個(gè)或多個(gè))接收的部分響應(yīng)(一個(gè)或多個(gè)),以及與在LH部分響應(yīng)FIFO隊(duì)列930內(nèi)緩沖的本地生成的部分響應(yīng)一起累積。
為了累積部分響應(yīng),組合邏輯1510首先讀出LH部分響應(yīng)FIFO隊(duì)列930內(nèi)分配給該操作的條目1200。如與在其上接收了本地廣播部分響應(yīng)的鏈接相對(duì)應(yīng)的指針1214、1215中的特定一個(gè)所示,該條目由LH部分響應(yīng)FIFO隊(duì)列930內(nèi)所觀察到的FIFO次序所標(biāo)識(shí)。組合邏輯1510然后累積遠(yuǎn)程中心100的本地廣播部分響應(yīng)與所讀取條目1200的部分響應(yīng)字段1202的內(nèi)容。接下來,如塊1642所示,組合邏輯1510還通過參考條目1200的響應(yīng)標(biāo)志陣列1204,利用當(dāng)前接收的部分響應(yīng)(一個(gè)或多個(gè)),確定是否已經(jīng)從被期望部分響應(yīng)的每個(gè)處理單元中接收了部分響應(yīng)。如果否,則該處理傳遞到塊1644,其描述了組合邏輯1510用新累積的部分響應(yīng)更新從LH部分響應(yīng)FIFO隊(duì)列930中讀取的條目1200。此后,在塊1646結(jié)束該處理。
回到塊1642,如果組合邏輯1510確定所有被期望部分響應(yīng)的處理單元100都已經(jīng)報(bào)告了它們的部分響應(yīng),則該處理繼續(xù)到塊1650。塊1650描述了組合邏輯1510通過參考釋放指針1212從LH部分響應(yīng)FIFO隊(duì)列930中釋放分配給該操作的條目1200。然后如塊1652所述,組合邏輯1510將所累積的部分響應(yīng)傳遞到響應(yīng)邏輯122,以便生成組合響應(yīng)。此后,該處理通過頁面連接符1654傳遞到圖17A,其中說明了在本地中心(或節(jié)點(diǎn)主設(shè)備)100處的組合響應(yīng)處理。
現(xiàn)在參見塊1632,當(dāng)由組合邏輯1510接收部分響應(yīng)(一個(gè)或多個(gè))時(shí),在非超級(jí)節(jié)點(diǎn)模式中在一個(gè)或多個(gè)第一層鏈接上由本地中心100接收的部分響應(yīng)(一個(gè)或多個(gè))的處理開始。如塊1634所示,組合邏輯1510可以向在進(jìn)入第一層鏈接上接收的部分響應(yīng)(一個(gè)或多個(gè))應(yīng)用小的調(diào)整延遲,以便使部分響應(yīng)(一個(gè)或多個(gè))的處理彼此同步以及與本地廣播部分響應(yīng)同步。此后,如在已經(jīng)描述過的塊1640以及后續(xù)塊處所描述的那樣,處理該部分響應(yīng)(一個(gè)或多個(gè))。
VIII.組合響應(yīng)階段結(jié)構(gòu)和操作現(xiàn)在參見圖16,其中描述了根據(jù)本發(fā)明、在圖1的互連邏輯120內(nèi)的組合響應(yīng)邏輯121c的示例性實(shí)施例的框圖。如同所示,組合響應(yīng)邏輯121c包括保持緩沖器1702a-1702b,每個(gè)保持緩沖器從通過進(jìn)入A和B鏈接中的相應(yīng)一個(gè)耦接到本地中心100的遠(yuǎn)程中心100接收并緩沖組合響應(yīng)。保持緩沖器1702a-1702b的輸出形成第一多路復(fù)用器1704的兩個(gè)輸入,第一多路復(fù)用器1704應(yīng)用公平判優(yōu)策略以從由保持緩沖器1702a-1702b緩沖的組合響應(yīng)(若有的話)當(dāng)中進(jìn)行選擇,以便啟動(dòng)到信息幀的組合響應(yīng)字段710內(nèi)的第一總線1705上。
第一多路復(fù)用器1704具有第三輸入端,通過該第三輸入端,由響應(yīng)邏輯122提供僅僅節(jié)點(diǎn)范圍的廣播操作的組合響應(yīng),以便在保持緩沖器1702a-1702b中缺少任何組合響應(yīng)的情況下,選擇和啟動(dòng)到信息幀的組合響應(yīng)字段710內(nèi)的第一總線1705上。因?yàn)榈谝欢嗦窂?fù)用器1704總是給予從遠(yuǎn)程中心100接收的全系統(tǒng)范圍的廣播操作的組合響應(yīng)優(yōu)先于僅僅節(jié)點(diǎn)范圍的廣播操作的本地生成組合響應(yīng)的優(yōu)先權(quán),所以在某些操作條件下,響應(yīng)邏輯122可能必須等待相當(dāng)長的時(shí)段以便讓第一多路復(fù)用器1704選擇它提供的組合響應(yīng)。因此,在最壞情況下,響應(yīng)邏輯122必須能夠讓數(shù)目等于NM標(biāo)記FIFO隊(duì)列924b2中的條目數(shù)的組合響應(yīng)和部分響應(yīng)對(duì)排隊(duì),該條目數(shù)確定了給定處理單元100在任一時(shí)刻可以同時(shí)具有的僅僅節(jié)點(diǎn)范圍的廣播操作的最大數(shù)目。即使組合響應(yīng)被延遲了相當(dāng)長的時(shí)段,由主設(shè)備300和窺探器304對(duì)該組合響應(yīng)的觀察也將被延遲相同的時(shí)間量。因此,組合響應(yīng)的延遲啟動(dòng)不會(huì)有違背上述定時(shí)約束的危險(xiǎn),這是因?yàn)樵谟色@勝主設(shè)備300對(duì)該組合響應(yīng)的觀察和由擁有窺探器304對(duì)該組合響應(yīng)的觀察之間的時(shí)間沒有因此減少。
第一總線1705耦接到外出X、Y和Z鏈接以及節(jié)點(diǎn)主設(shè)備/遠(yuǎn)程中心(NM/RH)緩沖器1706中的每一個(gè)。對(duì)于僅僅節(jié)點(diǎn)范圍的廣播操作,NM/RH緩沖器1706對(duì)由在這個(gè)節(jié)點(diǎn)主設(shè)備100處的響應(yīng)邏輯122提供的組合響應(yīng)和累積部分響應(yīng)(即,目的地標(biāo)記)進(jìn)行緩沖。
進(jìn)入第一層X、Y和Z鏈接每個(gè)都耦接到遠(yuǎn)程葉子(RL)緩沖器1714a-1714c中的相應(yīng)一個(gè)。NM/RH緩沖器1706和RL緩沖器1714a-1714c的輸出形成第二多路復(fù)用器1720的4個(gè)輸入。第二多路復(fù)用器1720具有另外的第五輸入端,其耦接到本地中心(LH)保持緩沖器1710的輸出端,該本地中心(LH)保持緩沖器1710為全系統(tǒng)范圍的廣播操作緩沖由在這個(gè)本地中心100處的響應(yīng)邏輯122提供的組合響應(yīng)和累積的部分響應(yīng)(即,目的地標(biāo)記)。第二多路復(fù)用器1720的輸出將組合響應(yīng)驅(qū)動(dòng)到第二總線1722上,其中標(biāo)記FIFO隊(duì)列924和外出第二層鏈接耦接到該第二總線1722。如同所述,標(biāo)記FIFO隊(duì)列924還被耦接以經(jīng)由附加信道接收在LH保持緩沖器1710或NM/RH緩沖器1706中緩沖的累積的部分響應(yīng)(即,目的地標(biāo)記)。主設(shè)備300和窺探器304還耦接到標(biāo)記FIFO隊(duì)列924。與標(biāo)記FIFO隊(duì)列924的連接允許窺探器304觀察組合響應(yīng)并且允許相關(guān)的主設(shè)備300接收組合響應(yīng)和目的地標(biāo)記(若有的話)。
在沒有上述窗口擴(kuò)展312b的情況下,由主設(shè)備300和窺探器304在基本上相同的時(shí)間觀察組合響應(yīng),在一些操作情況下,可能導(dǎo)致關(guān)于從獲勝主設(shè)備300到窺探器304n的組合響應(yīng)延遲的定時(shí)約束項(xiàng)(即,C_lat(WM_S))接近于零,這違反了定時(shí)約束。然而,因?yàn)榇翱跀U(kuò)展312b具有大致為第一層鏈接傳送延遲的持續(xù)時(shí)間,所以盡管主設(shè)備300和窺探器304基本上同時(shí)觀察組合響應(yīng),但是還可以滿足上述定時(shí)約束。
現(xiàn)在參見圖17A-17C,其中描述了分別描述根據(jù)本發(fā)明的示例性實(shí)施例、在本地中心(或節(jié)點(diǎn)主設(shè)備)、遠(yuǎn)程中心(或節(jié)點(diǎn)主設(shè)備)、以及遠(yuǎn)程葉子(或節(jié)點(diǎn)葉子)處的示例性組合響應(yīng)階段處理的高級(jí)邏輯流程圖。現(xiàn)在具體參見圖17A,在本地中心(或節(jié)點(diǎn)主設(shè)備)100處的組合響應(yīng)階段處理從塊1800開始,然后繼續(xù)到塊1802,其描述了響應(yīng)邏輯122基于請(qǐng)求類型和累積的部分響應(yīng)而生成對(duì)操作的組合響應(yīng)。如塊1803-1805所示,如果組合響應(yīng)710內(nèi)的范圍指示符730指示該操作是僅僅節(jié)點(diǎn)范圍的廣播操作或者配置寄存器123指示超級(jí)節(jié)點(diǎn)模式,則在節(jié)點(diǎn)主設(shè)備100處的組合響應(yīng)階段處理在圖17B的塊1863處繼續(xù)。然而,如果范圍指示符730指示該操作是全系統(tǒng)范圍的廣播操作,則如塊1804所示,遠(yuǎn)程中心100的響應(yīng)邏輯122將該組合響應(yīng)和累積的部分響應(yīng)放置到LH保持緩沖器1710中。借助于利用或操作累積部分響應(yīng),對(duì)于寫入類型的請(qǐng)求,累積的部分響應(yīng)將包含被設(shè)置為‘1’的有效字段722,以表示在伴隨的目的地標(biāo)記字段724中存在有效的目的地標(biāo)記。對(duì)于其它類型的請(qǐng)求,累積的部分響應(yīng)中的位0將被設(shè)置為‘0’,以指示不存在這樣的目的地標(biāo)記。
如塊1844所述,第二多路復(fù)用器1720與所選擇的第二層鏈接信息分配時(shí)間片對(duì)齊,并且只有當(dāng)外出第二層鏈接信息分配中有可用于組合響應(yīng)的地址占有期時(shí),才從LH保持緩沖器1710中選擇組合響應(yīng)和累積的部分響應(yīng),以便啟動(dòng)。因此,例如,僅僅在圖7B的實(shí)施例的周期1或3期間,第二多路復(fù)用器1720才從LH保持緩沖器1710輸出組合響應(yīng)和累積的部分響應(yīng)。如果在塊1844做出了否定的確定,則如塊1846所示,延遲LH保持緩沖器1710內(nèi)的組合響應(yīng)的啟動(dòng),直到其中地址占有期可用的后續(xù)周期為止。相反,如果在塊1844處做出了肯定的確定,則第二多路復(fù)用器1720優(yōu)先于其它輸入而選擇LH保持緩沖器1710內(nèi)的組合響應(yīng),以便啟動(dòng)到第二總線1722上并且隨后在外出第二層鏈接上傳送。
還應(yīng)當(dāng)注意,第二多路復(fù)用器1720的其它端口(例如,RH、RLX、RLY、和RLZ)也可以與LH保持緩沖器1710同時(shí)地提供請(qǐng)求,這意味著第二總線1722的最大帶寬必須等于外出第二層鏈接的帶寬的10/8(假定圖7B的實(shí)施例),以便跟得上最大到達(dá)速率。此外應(yīng)當(dāng)觀察到,僅僅在LH保持緩沖器1710內(nèi)緩沖的組合響應(yīng)在外出第二層鏈接上傳送,并且要求與鏈接信息分配內(nèi)的地址占有期對(duì)齊。因?yàn)楦?jìng)爭(zhēng)由第二多路復(fù)用器1720發(fā)布的所有其它組合響應(yīng)僅僅以本地主設(shè)備300、窺探器304以及它們各自的FIFO隊(duì)列而不是外出第二層鏈接作為目標(biāo),所以可以在信息幀的剩余周期內(nèi)發(fā)布這樣的組合響應(yīng)。因此,與由第二多路復(fù)用器1720采用的特定判優(yōu)方案無關(guān),保證同時(shí)向第二多路復(fù)用器1720提供的所有組合響應(yīng)在單個(gè)信息幀的延遲之內(nèi)傳送。
在第二總線1722上發(fā)布組合響應(yīng)之后,該處理分叉并且繼續(xù)到塊1848和1852中的每一個(gè)。塊1848描述了將啟動(dòng)到第二總線1722上的組合響應(yīng)路由到外出第二層鏈接,以便傳送到遠(yuǎn)程中心100。此后,該處理通過頁面連接符1850繼續(xù)到圖17C,其中圖17C描述了在遠(yuǎn)程中心100處的組合響應(yīng)處理的示例性方法。
現(xiàn)在參見塊1852,還利用在第二總線1722上發(fā)布的組合響應(yīng)來查詢LH標(biāo)記FIFO隊(duì)列924a,以從其中的最舊條目中獲得主設(shè)備標(biāo)記。此后,LH標(biāo)記FIFO隊(duì)列924a釋放分配給操作的條目(塊1854)。在塊1854之后,該處理分叉并且繼續(xù)到塊1810和1856中的每一個(gè)。在塊1810,LH標(biāo)記FIFO隊(duì)列924a確定該主設(shè)備標(biāo)記是否指示發(fā)起了與組合響應(yīng)相關(guān)聯(lián)的請(qǐng)求的主設(shè)備300駐留在這個(gè)本地中心100中。如果不是的話,則這個(gè)路徑中的處理在塊1816結(jié)束。然而,如果該主設(shè)備標(biāo)記指示發(fā)起的主設(shè)備300駐留在當(dāng)前本地中心100中,則LH標(biāo)記FIFO隊(duì)列924a將該主設(shè)備標(biāo)記、組合響應(yīng)和累積的部分響應(yīng)路由到由該主設(shè)備標(biāo)記標(biāo)識(shí)的發(fā)起主設(shè)備300(塊1812)。響應(yīng)于組合響應(yīng)和主設(shè)備標(biāo)記的接收,發(fā)起主設(shè)備300處理該組合響應(yīng),如果對(duì)應(yīng)的請(qǐng)求是寫入類型請(qǐng)求,則還處理累積的部分響應(yīng)(塊1814)。
例如,如果組合響應(yīng)指示“成功”并且對(duì)應(yīng)的請(qǐng)求是讀取類型的請(qǐng)求(例如,讀取、DClaim或RWITM請(qǐng)求),則發(fā)起主設(shè)備300可以更新或準(zhǔn)備接收所請(qǐng)求的存儲(chǔ)塊。在這種情況下,丟棄累積的部分響應(yīng)。如果組合響應(yīng)指示“成功”而且對(duì)應(yīng)的請(qǐng)求是寫入類型的請(qǐng)求(例如,逐出、寫入或部分寫入請(qǐng)求),則發(fā)起主設(shè)備300從累積的部分響應(yīng)中提取目的地標(biāo)記字段724,并且利用其內(nèi)容作為數(shù)據(jù)標(biāo)記714,該數(shù)據(jù)標(biāo)記714用于將該操作的后續(xù)數(shù)據(jù)階段路由到其目的地。如果“成功”的組合響應(yīng)指示或暗示用于發(fā)起主設(shè)備300的HPC狀態(tài)的準(zhǔn)予,則如標(biāo)號(hào)313所述,發(fā)起主設(shè)備300將另外開始保護(hù)它對(duì)存儲(chǔ)塊的所有權(quán)。然而,如果在塊1814處接收的組合響應(yīng)指示諸如“重試”之類的其它結(jié)果,則可能要求發(fā)起主設(shè)備300或許以不同的范圍(例如,全局而非本地)重新發(fā)布請(qǐng)求。此后,該處理在塊1816結(jié)束。
現(xiàn)在參見塊1856,LH標(biāo)記FIFO隊(duì)列924a還將組合響應(yīng)和相關(guān)聯(lián)的主設(shè)備標(biāo)記路由到本地中心100內(nèi)的窺探器304。響應(yīng)于組合響應(yīng)的接收,窺探器304處理該組合響應(yīng),并且執(zhí)行響應(yīng)于其所需的任何操作(塊1857)。例如,窺探器304可以將所請(qǐng)求的存儲(chǔ)塊供應(yīng)到請(qǐng)求的發(fā)起主設(shè)備300,使所請(qǐng)求的存儲(chǔ)塊的高速緩存的副本無效等。如果該組合響應(yīng)包括窺探器304要將存儲(chǔ)塊的所有權(quán)轉(zhuǎn)移到請(qǐng)求主設(shè)備300的指示,則窺探器304在其保護(hù)窗口312a的末尾附加一可編程長度的窗口擴(kuò)展312b,對(duì)于所說明的拓?fù)浣Y(jié)構(gòu),其優(yōu)選地具有大致為在第一層鏈接上的一個(gè)芯片跳躍的延遲的持續(xù)時(shí)間(塊1858)。當(dāng)然,對(duì)于其它數(shù)據(jù)處理系統(tǒng)拓?fù)浣Y(jié)構(gòu)和互連邏輯120的不同實(shí)現(xiàn),可以有利地將可編程窗口擴(kuò)展312b設(shè)置為其它長度,以補(bǔ)償鏈接延遲差異(例如,耦接不同處理節(jié)點(diǎn)202的不同長度的電纜)、拓?fù)浣Y(jié)構(gòu)或者物理約束、電路設(shè)計(jì)約束、或者各個(gè)操作階段的有界延遲的較大變化性。此后,在本地中心100處的組合響應(yīng)階段處理在塊1859結(jié)束。
現(xiàn)在參見圖17B,其中描述了根據(jù)本發(fā)明、在遠(yuǎn)程中心(或節(jié)點(diǎn)主設(shè)備)100處的組合響應(yīng)階段處理的示例性方法的高級(jí)邏輯流程圖。如同所述,對(duì)于在遠(yuǎn)程中心100處的組合響應(yīng)階段處理,當(dāng)在遠(yuǎn)程中心100處在其進(jìn)入A或B鏈接之一上接收到組合響應(yīng)時(shí),該處理從頁面連接符1860開始。然后如塊1862所示,在保持緩沖器1702a-1702b中相關(guān)聯(lián)的一個(gè)內(nèi)緩沖該組合響應(yīng)。一旦都滿足了在塊1864和1865處描述的條件,則由第一多路復(fù)用器1704在第一總線1705上傳送緩沖的組合響應(yīng)。特別地,在第一層鏈接信息分配中地址占有期必須可用(塊1864),并且由第一多路復(fù)用器1704實(shí)現(xiàn)的公平分配策略必須選擇其中緩沖了組合響應(yīng)的保持緩沖器1702a、1702b(塊1865)。如前所述,在超級(jí)節(jié)點(diǎn)模式中,緩沖組合響應(yīng)的保持緩沖器1702a總是第一多路復(fù)用器1704的公平分配策略的獲勝者,這是因?yàn)樵谄渌诙渔溄?一個(gè)或多個(gè))上沒有為訪問第一總線1705而競(jìng)爭(zhēng)的操作。
如塊1864所示,如果不滿足這些條件中的任何一個(gè),則在塊1866延遲由第一多路復(fù)用器1704將該組合響應(yīng)啟動(dòng)到第一總線1705上直到下一個(gè)地址占有期為止。然而,如果滿足塊1864和1865所述的兩個(gè)條件,則該處理從塊1865繼續(xù)到塊1868,其說明了第一多路復(fù)用器1704在第一總線1705上將組合響應(yīng)廣播到外出X、Y和Z鏈接以及組合響應(yīng)字段710內(nèi)的NM/RH保持緩沖器1706。如包含塊1863和1867的路徑到塊1868的連接所示,對(duì)于僅僅節(jié)點(diǎn)范圍和超級(jí)節(jié)點(diǎn)廣播操作,只有當(dāng)沒有由保持緩沖器1702a-1702b提供競(jìng)爭(zhēng)的組合響應(yīng)時(shí),第一多路復(fù)用器1704才將由響應(yīng)邏輯122提供的組合響應(yīng)發(fā)布到第一總線1705上,以便路由到外出X、Y和Z鏈接以及NM/RH保持緩沖器1706。如果經(jīng)由進(jìn)入第二層鏈接之一從遠(yuǎn)程中心100接收了對(duì)全系統(tǒng)范圍的廣播操作的任何競(jìng)爭(zhēng)組合響應(yīng),則如塊1867所示,延遲僅僅節(jié)點(diǎn)范圍廣播操作的本地生成的組合響應(yīng)。當(dāng)?shù)谝欢嗦窂?fù)用器1704最終選擇僅僅節(jié)點(diǎn)范圍廣播操作的本地生成的組合響應(yīng)時(shí),響應(yīng)邏輯122直接將相關(guān)聯(lián)的累積部分響應(yīng)放置到NM/RH保持緩沖器1706中。
在塊1868之后,該處理分叉。第一路徑通過頁面連接符1870傳遞到圖17C,其說明了在遠(yuǎn)程葉子(或節(jié)點(diǎn)葉子)100處的組合響應(yīng)階段處理的示例性方法。第二路徑從塊1868繼續(xù)到塊1874,其說明了第二多路復(fù)用器1720確定在其輸入端提供的哪個(gè)組合響應(yīng)要在第二總線1722上輸出。如同所示,第二多路復(fù)用器1720使本地中心組合響應(yīng)優(yōu)先于遠(yuǎn)程中心組合響應(yīng),遠(yuǎn)程中心組合響應(yīng)又優(yōu)先于在遠(yuǎn)程葉子緩沖器1714a-1714c中緩沖的組合響應(yīng)。因此,如果由LH保持緩沖器1710提供了本地中心組合響應(yīng)以便選擇,則如塊1876所示,延遲在遠(yuǎn)程中心緩沖器1706內(nèi)緩沖的組合響應(yīng)。然而,如果沒有由LH保持緩沖器1710給出組合響應(yīng)(在超級(jí)節(jié)點(diǎn)模式的情況下總是這樣),則第二多路復(fù)用器1720將來自NM/RH緩沖器1706的組合響應(yīng)發(fā)布到第二總線1722上。
響應(yīng)于第二總線1722上的組合響應(yīng)檢測(cè),如塊1878所述,與在其上接收組合響應(yīng)的第二層鏈接相關(guān)聯(lián)的標(biāo)記FIFO隊(duì)列924b0和924b1中的特定一個(gè)(或者,對(duì)于僅僅節(jié)點(diǎn)或者超級(jí)節(jié)點(diǎn)廣播操作,NM標(biāo)記FIFO隊(duì)列924b2)從其最老條目的主設(shè)備標(biāo)記字段1100中讀出由相關(guān)的請(qǐng)求指定的主設(shè)備標(biāo)記,然后釋放該條目(塊1880)。該處理然后分成三叉并且繼續(xù)到塊1882、1881、和1861中的每一個(gè)。塊1882描述了標(biāo)記FIFO隊(duì)列924b中的相關(guān)一個(gè)將組合響應(yīng)和主設(shè)備標(biāo)記路由到遠(yuǎn)程中心(或節(jié)點(diǎn)主設(shè)備)100中的窺探器304。響應(yīng)于組合響應(yīng)的接收,窺探器304處理該組合響應(yīng)(塊1884)并且如上所述,執(zhí)行任何需要的操作。如果該操作是全系統(tǒng)范圍的或者超級(jí)節(jié)點(diǎn)廣播操作并且如果組合響應(yīng)包括窺探器304要將存儲(chǔ)塊的一致性所有權(quán)轉(zhuǎn)移到進(jìn)行請(qǐng)求的主設(shè)備300的指示,則如塊1885所示,窺探器304向其保護(hù)窗口312a附加窗口擴(kuò)展312b。此后,在塊1886處結(jié)束在遠(yuǎn)程中心100的組合響應(yīng)階段處理。
現(xiàn)在參見塊1881,如果組合響應(yīng)字段710內(nèi)的范圍指示符730和配置寄存器123的設(shè)置指示該操作不是僅僅節(jié)點(diǎn)范圍或超級(jí)節(jié)點(diǎn)廣播操作,而是全系統(tǒng)范圍廣播操作,則不在遠(yuǎn)程中心100處執(zhí)行進(jìn)一步的處理,并且在塊1886結(jié)束該處理。然而,如果范圍指示符730指示該操作是僅僅節(jié)點(diǎn)范圍廣播操作,或者配置寄存器123指示超級(jí)節(jié)點(diǎn)模式并且當(dāng)前的處理器100是節(jié)點(diǎn)主設(shè)備100,則該處理傳遞到塊1883,其說明了NM標(biāo)記FIFO隊(duì)列924b2將主設(shè)備標(biāo)記、組合響應(yīng)和累積的部分響應(yīng)路由到由主設(shè)備標(biāo)記所識(shí)別的發(fā)起主設(shè)備300。響應(yīng)于組合響應(yīng)和主設(shè)備標(biāo)記的接收,發(fā)起主設(shè)備300處理該組合響應(yīng),并且如果對(duì)應(yīng)的請(qǐng)求是寫入類型的請(qǐng)求,則還處理累積的部分響應(yīng)(塊1887)。
例如,如果組合響應(yīng)指示“成功”并且對(duì)應(yīng)的請(qǐng)求是讀取類型的請(qǐng)求(例如,讀取、DClaim或RWITM請(qǐng)求),則發(fā)起主設(shè)備300可以更新或者準(zhǔn)備接收所請(qǐng)求的存儲(chǔ)塊。在這種情況下,丟棄累積的部分響應(yīng)。如果組合響應(yīng)指示“成功”并且對(duì)應(yīng)的請(qǐng)求是寫入類型的請(qǐng)求(例如,逐出、寫入或部分寫入請(qǐng)求),則發(fā)起主設(shè)備300從累積的部分響應(yīng)中提取目的地標(biāo)記字段724,并且使用其內(nèi)容作為數(shù)據(jù)標(biāo)記714,該數(shù)據(jù)標(biāo)記714用于將該操作的后續(xù)數(shù)據(jù)階段路由到其目的地。如果“成功”的組合響應(yīng)指示或暗示用于發(fā)起主設(shè)備300的HPC狀態(tài)的準(zhǔn)予,則如標(biāo)號(hào)313所述,發(fā)起主設(shè)備300將另外開始保護(hù)它對(duì)存儲(chǔ)塊的所有權(quán)。然而,如果在塊1814接收的組合響應(yīng)指示諸如“重試”之類的其它結(jié)果,則可能要求發(fā)起主設(shè)備300重新發(fā)布該請(qǐng)求。此后,在塊1886結(jié)束該處理。
現(xiàn)在轉(zhuǎn)向塊1861,如果處理該組合響應(yīng)的處理單元100是節(jié)點(diǎn)主設(shè)備100并且配置寄存器123指示超級(jí)節(jié)點(diǎn)模式,則如塊1874所示,第二多路復(fù)用器1720另外將該組合響應(yīng)路由到第二層鏈接中的選定一個(gè)(例如,鏈接A)。此后,該處理通過頁面連接符1860,并且組合響應(yīng)的處理在遠(yuǎn)程中心100處繼續(xù)。
現(xiàn)在參見圖17C,其中說明了根據(jù)本發(fā)明、在遠(yuǎn)程葉子(或節(jié)點(diǎn))葉子100處的組合響應(yīng)階段處理的示例性方法的高級(jí)邏輯流程圖。如同所示,當(dāng)在遠(yuǎn)程(或節(jié)點(diǎn))葉子100處在其進(jìn)入X、Y和Z鏈接之一上接收到組合響應(yīng)時(shí),該處理從頁面連接符1888開始。如塊1890所示,該組合響應(yīng)被鎖存到NL/RL保持緩沖器1714a-1714c之一中。接下來,如塊1891所述,由第二多路復(fù)用器1720計(jì)算該組合響應(yīng)以及在其輸入端提供的其它組合響應(yīng)。如上所述,第二多路復(fù)用器1720使本地中心組合響應(yīng)優(yōu)先于遠(yuǎn)程中心組合響應(yīng),遠(yuǎn)程中心組合響應(yīng)又優(yōu)先于在NL/RL保持緩沖器1714a-1714c中緩沖的組合響應(yīng)。因此,如果提供了本地中心或遠(yuǎn)程中心組合響應(yīng)以便選擇,則如塊1892所示,延遲在NL/RL保持緩沖器1714內(nèi)緩沖的組合響應(yīng)。然而,如果沒有向第二多路復(fù)用器1720提供較高優(yōu)先級(jí)的組合響應(yīng),則第二多路復(fù)用器920將組合響應(yīng)從NL/RL保持緩沖器1714發(fā)布到第二總線1722上。
響應(yīng)于在第二總線1722上檢測(cè)到組合響應(yīng),如塊1893所述,與操作的范圍以及接收該組合響應(yīng)的路由相關(guān)聯(lián)的標(biāo)記FIFO隊(duì)列924c0-924c2、924d0-924d2、和924e0-924e2中的特定一個(gè)從其最舊條目的主設(shè)備標(biāo)記字段1100中讀出由相關(guān)聯(lián)的請(qǐng)求指定的主設(shè)備標(biāo)記。也就是說,利用配置寄存器123的設(shè)置或者組合響應(yīng)字段710內(nèi)的范圍指示符730來確定是否在超級(jí)節(jié)點(diǎn)模式中進(jìn)行請(qǐng)求,或者如果不是的話,該請(qǐng)求是僅僅節(jié)點(diǎn)范圍還是全系統(tǒng)范圍。對(duì)于僅僅節(jié)點(diǎn)范圍和超級(jí)節(jié)點(diǎn)廣播請(qǐng)求,與在其上接收了組合響應(yīng)的進(jìn)入第一層鏈接相關(guān)聯(lián)的NL標(biāo)記FIFO隊(duì)列924c2、924d2和924e2中的特定一個(gè)緩沖主設(shè)備標(biāo)記。對(duì)于全系統(tǒng)范圍廣播請(qǐng)求,從與在其上接收了組合響應(yīng)的進(jìn)入第一和第二層鏈接的組合相對(duì)應(yīng)的、RL標(biāo)記FIFO隊(duì)列924c0-924c1、924d0-924d1和924e0-924e1中的特定一個(gè)中檢索主設(shè)備標(biāo)記。
一旦相關(guān)的標(biāo)記FIFO隊(duì)列924標(biāo)識(shí)了用于該操作的適當(dāng)條目,標(biāo)記FIFO隊(duì)列924就釋放該條目(塊1894)。如塊1895所示,組合響應(yīng)和主設(shè)備標(biāo)記被進(jìn)一步路由到遠(yuǎn)程(或節(jié)點(diǎn))葉子100中的窺探器304。響應(yīng)于組合響應(yīng)的接收,窺探器304處理該組合響應(yīng)(塊1896)并且如上所述,執(zhí)行任何所需操作。如果該操作不是僅僅節(jié)點(diǎn)范圍的操作并且如果組合響應(yīng)包括窺探器304要將存儲(chǔ)塊的一致性所有權(quán)轉(zhuǎn)移到請(qǐng)求主設(shè)備300的指示,則如上所述并且如塊1897所示,窺探器304向其保護(hù)窗口312a的末尾附加窗口擴(kuò)展312b。此后,在塊1898結(jié)束在遠(yuǎn)程葉子100處的組合響應(yīng)階段處理。
IX.數(shù)據(jù)階段結(jié)構(gòu)和操作數(shù)據(jù)邏輯121d以及其對(duì)數(shù)據(jù)遞送的處理可以各種方式實(shí)現(xiàn)。在一個(gè)優(yōu)選實(shí)施例中,數(shù)據(jù)邏輯121d及其操作如上面通過引用并入的、共同未決的美國專利申請(qǐng)中詳細(xì)描述的那樣實(shí)現(xiàn)。當(dāng)然,另外的未被請(qǐng)求和響應(yīng)流使用的第二層鏈接(一個(gè)或多個(gè))(例如,B鏈接)可以用于數(shù)據(jù)遞送以增強(qiáng)數(shù)據(jù)帶寬。
X.結(jié)論如已經(jīng)描述的那樣,本發(fā)明提供了改進(jìn)的處理單元、數(shù)據(jù)處理系統(tǒng)以及用于數(shù)據(jù)處理系統(tǒng)的互連構(gòu)造。此處公開的創(chuàng)造性數(shù)據(jù)處理系統(tǒng)拓?fù)浣Y(jié)構(gòu)通過在處理節(jié)點(diǎn)的多個(gè)處理單元之間點(diǎn)對(duì)點(diǎn)節(jié)點(diǎn)間鏈接的實(shí)現(xiàn),提供了在不同處理節(jié)點(diǎn)的處理單元之間的高帶寬通信。此外,因?yàn)槔?,如圖2A-2B所示,相同的互連邏輯可能支持各種互連構(gòu)造拓?fù)浣Y(jié)構(gòu),所以此處公開的處理單元和處理節(jié)點(diǎn)顯示出非常高的靈活性,并因此允許數(shù)據(jù)處理系統(tǒng)的處理節(jié)點(diǎn)以最適于預(yù)期工作負(fù)載的方式互連。
雖然如參考優(yōu)選實(shí)施例所述的那樣已經(jīng)具體示出了本發(fā)明,但是本領(lǐng)域的技術(shù)人員應(yīng)當(dāng)理解,可以在其中進(jìn)行形式和細(xì)節(jié)上的各種改變而不背離本發(fā)明的精神和范圍。例如,雖然本發(fā)明公開了利用FIFO隊(duì)列來對(duì)操作相關(guān)標(biāo)記和部分響應(yīng)進(jìn)行排序的優(yōu)選實(shí)施例,但是本領(lǐng)域技術(shù)人員將會(huì)理解,可以采用其它有序的數(shù)據(jù)結(jié)構(gòu)來以所描述的方式維持在操作的各個(gè)標(biāo)記和部分響應(yīng)之間的次序。此外,雖然本發(fā)明的優(yōu)選實(shí)施例采用單向通信鏈接,但是本領(lǐng)域的技術(shù)人員通過參考前文將會(huì)理解,可以可選地采用雙向通信鏈接。此外,雖然已經(jīng)參考特定的示例性互連構(gòu)造拓?fù)浣Y(jié)構(gòu)描述了本發(fā)明,但是本發(fā)明不局限于此處具體描述的那些互連構(gòu)造拓?fù)浣Y(jié)構(gòu),而是可以廣泛地應(yīng)用于多種不同的互連構(gòu)造拓?fù)浣Y(jié)構(gòu)。
權(quán)利要求
1.一種數(shù)據(jù)處理系統(tǒng),包括第一處理節(jié)點(diǎn)和第二處理節(jié)點(diǎn),其中所述第一處理節(jié)點(diǎn)包括彼此耦接以便通信的多個(gè)第一處理單元,并且所述第二處理節(jié)點(diǎn)包括彼此耦接以便通信的多個(gè)第二處理單元;所述多個(gè)第一處理單元至少包括第一、第二和第三處理單元,并且所述多個(gè)第二處理單元至少包括第四、第五和第六處理單元;所述第一和第四處理單元通過第一點(diǎn)對(duì)點(diǎn)鏈接而連接;所述第二和第五處理單元通過第二點(diǎn)對(duì)點(diǎn)鏈接而連接;以及所述第三和第六處理單元通過第三點(diǎn)對(duì)點(diǎn)鏈接而連接。
2.如權(quán)利要求1所述的數(shù)據(jù)處理系統(tǒng),其中所述第一、第二和第三點(diǎn)對(duì)點(diǎn)鏈接包括多個(gè)點(diǎn)對(duì)點(diǎn)第二層鏈接;以及所述多個(gè)第一處理單元中的每一個(gè)通過多個(gè)點(diǎn)對(duì)點(diǎn)第一層鏈接中的相應(yīng)一個(gè)耦接到所述多個(gè)第一處理單元中的每一個(gè)其它處理單元。
3.如權(quán)利要求2所述的數(shù)據(jù)處理系統(tǒng),其中,所述多個(gè)第一處理單元中的每一個(gè)都包括互連邏輯,該互連邏輯經(jīng)由所有所述多個(gè)第一層鏈接以及所述多個(gè)第二層鏈接之一,將操作廣播到所有所述多個(gè)第一處理單元以及所有所述多個(gè)第二處理單元。
4.如權(quán)利要求1所述的數(shù)據(jù)處理系統(tǒng),其中所述多個(gè)第一處理單元包括節(jié)點(diǎn)主設(shè)備處理單元和至少一個(gè)節(jié)點(diǎn)葉子處理單元;所述多個(gè)第二處理單元包括遠(yuǎn)程中心處理單元和至少一個(gè)遠(yuǎn)程葉子處理單元;所述節(jié)點(diǎn)主設(shè)備處理單元將請(qǐng)求廣播到每個(gè)節(jié)點(diǎn)葉子處理單元和所述遠(yuǎn)程中心處理單元;所述遠(yuǎn)程中心處理單元將所述請(qǐng)求廣播到每個(gè)遠(yuǎn)程葉子處理單元;以及所述節(jié)點(diǎn)主設(shè)備處理單元基于由所述節(jié)點(diǎn)主設(shè)備處理單元接收的對(duì)所述請(qǐng)求的部分響應(yīng),將對(duì)所述請(qǐng)求的組合響應(yīng)廣播到每個(gè)節(jié)點(diǎn)葉子處理單元、遠(yuǎn)程中心處理單元和遠(yuǎn)程葉子處理單元。
5.如權(quán)利要求1所述的數(shù)據(jù)處理系統(tǒng),其中,所述多個(gè)第一處理單元中的至少一個(gè)包括配置寄存器,該配置寄存器包括一個(gè)或多個(gè)位,用于以第一模式配置第一處理單元以及以替換的第二模式配置第一處理單元,在第一模式中,所述多個(gè)第一處理單元中的每一個(gè)通過多個(gè)點(diǎn)對(duì)點(diǎn)鏈接中的相應(yīng)一個(gè)耦接到所述第二處理節(jié)點(diǎn)中的所述多個(gè)第二處理單元中的相應(yīng)一個(gè),而在第二模式中,少于所有的所述多個(gè)第一處理單元通過所述多個(gè)點(diǎn)對(duì)點(diǎn)鏈接耦接到所述多個(gè)第二處理單元中的處理單元。
6.如權(quán)利要求1所述的數(shù)據(jù)處理系統(tǒng),其中所述多個(gè)第一和第二處理單元的操作按次序至少包括請(qǐng)求階段,其中廣播請(qǐng)求;部分響應(yīng)階段,其中各個(gè)處理單元確定它們各自的對(duì)所述請(qǐng)求的響應(yīng);以及組合響應(yīng)階段,其中分發(fā)對(duì)所述請(qǐng)求的全系統(tǒng)范圍的組合響應(yīng);以及所述多個(gè)第一和第二處理單元以與所述請(qǐng)求相同的方向、經(jīng)由所述請(qǐng)求穿過的每個(gè)鏈接路由所述組合響應(yīng),并且以與所述請(qǐng)求相反的方向、經(jīng)由所述請(qǐng)求穿過的每個(gè)鏈接路由至少一個(gè)部分響應(yīng)。
7.一種用于數(shù)據(jù)處理系統(tǒng)的第一處理節(jié)點(diǎn),該數(shù)據(jù)處理系統(tǒng)至少包括所述第一處理節(jié)點(diǎn)和第二處理節(jié)點(diǎn),所述第一處理節(jié)點(diǎn)包括彼此耦接以便通信的多個(gè)第一處理單元,其中所述多個(gè)第一處理單元中的每一個(gè)都包括互連邏輯,通過該互連邏輯,每個(gè)所述第一處理單元可以通過多個(gè)點(diǎn)對(duì)點(diǎn)鏈接中的相應(yīng)一個(gè)耦接到所述第二處理節(jié)點(diǎn)中的多個(gè)第二處理單元中的相應(yīng)一個(gè),使得所述第一處理節(jié)點(diǎn)中的第一處理單元通過第一點(diǎn)對(duì)點(diǎn)鏈接耦接到第二處理節(jié)點(diǎn)中的第四處理單元;所述第一處理節(jié)點(diǎn)中的第二處理單元通過第二點(diǎn)對(duì)點(diǎn)鏈接耦接到第二處理節(jié)點(diǎn)中的第五處理單元;以及所述第一處理節(jié)點(diǎn)中的第三處理單元通過第三點(diǎn)對(duì)點(diǎn)鏈接耦接到第二處理節(jié)點(diǎn)中的第六處理單元。
8.如權(quán)利要求7所述的第一處理節(jié)點(diǎn),其中所述多個(gè)點(diǎn)對(duì)點(diǎn)鏈接包括多個(gè)點(diǎn)對(duì)點(diǎn)第二層鏈接;以及所述多個(gè)第一處理單元中的每一個(gè)通過多個(gè)點(diǎn)對(duì)點(diǎn)第一層鏈接中的相應(yīng)一個(gè)耦接到所述多個(gè)第一處理處理單元中的每一個(gè)其它處理單元。
9.如權(quán)利要求8所述的第一處理節(jié)點(diǎn),其中,所述多個(gè)第一處理單元中的每一個(gè)都包括互連邏輯,該互連邏輯經(jīng)由所有所述多個(gè)第一層鏈接以及所述多個(gè)第二層鏈接之一、將操作廣播到所有所述多個(gè)第一處理單元以及所有所述多個(gè)第二處理單元。
10.如權(quán)利要求7所述的第一處理節(jié)點(diǎn),其中所述多個(gè)第一處理單元包括節(jié)點(diǎn)主設(shè)備處理單元和至少一個(gè)節(jié)點(diǎn)葉子處理單元;所述多個(gè)第二處理單元包括遠(yuǎn)程中心處理單元和至少一個(gè)遠(yuǎn)程葉子處理單元;所述節(jié)點(diǎn)主設(shè)備處理單元將請(qǐng)求廣播到每個(gè)節(jié)點(diǎn)葉子處理單元和所述遠(yuǎn)程中心處理單元;所述節(jié)點(diǎn)主設(shè)備處理單元基于由所述節(jié)點(diǎn)主設(shè)備處理單元接收的對(duì)所述請(qǐng)求的部分響應(yīng)、將對(duì)所述請(qǐng)求的組合響應(yīng)廣播到每個(gè)節(jié)點(diǎn)葉子處理單元、遠(yuǎn)程中心處理單元和遠(yuǎn)程葉子處理單元。
11.如權(quán)利要求7所述的第一處理節(jié)點(diǎn),其中,所述多個(gè)第一處理單元中的至少一個(gè)包括配置寄存器,該配置寄存器包括一個(gè)或多個(gè)位,用于以第一模式配置第一處理單元以及以替換的第二模式配置第一處理單元,在第一模式中,所述多個(gè)第一處理單元中的每一個(gè)通過多個(gè)點(diǎn)對(duì)點(diǎn)鏈接中的相應(yīng)一個(gè)耦接到所述第二處理節(jié)點(diǎn)中的所述多個(gè)第二處理單元中的相應(yīng)一個(gè),而在第二模式中,少于所有的所述多個(gè)第一處理單元通過所述多個(gè)點(diǎn)對(duì)點(diǎn)鏈接耦接到所述多個(gè)第二處理單元中的處理單元。
12.如權(quán)利要求7所述的第一處理節(jié)點(diǎn),其中所述多個(gè)第一處理單元的操作按次序至少包括請(qǐng)求階段,其中廣播請(qǐng)求;部分響應(yīng)階段,其中各個(gè)處理單元確定它們各自的對(duì)所述請(qǐng)求的響應(yīng);以及組合響應(yīng)階段,其中分發(fā)對(duì)所述請(qǐng)求的全系統(tǒng)范圍的組合響應(yīng);以及所述多個(gè)第一處理單元中的節(jié)點(diǎn)主設(shè)備處理單元以與所述請(qǐng)求相同的方向、經(jīng)由所述請(qǐng)求穿過的每個(gè)鏈接路由所述組合響應(yīng),并且所述多個(gè)第一處理單元中的每個(gè)節(jié)點(diǎn)葉子處理單元以與所述請(qǐng)求相反的方向、經(jīng)由所述請(qǐng)求穿過的鏈接路由至少一個(gè)部分響應(yīng)。
13.一種數(shù)據(jù)處理系統(tǒng)中的數(shù)據(jù)處理方法,該數(shù)據(jù)處理系統(tǒng)包括第一處理節(jié)點(diǎn)和第二處理節(jié)點(diǎn),其中所述第一處理節(jié)點(diǎn)包含多個(gè)第一處理單元,并且所述第二處理節(jié)點(diǎn)包含多個(gè)第二處理單元,所述方法包括彼此耦接所述多個(gè)第一處理單元;彼此耦接所述多個(gè)第二處理單元;以及耦接所述第一處理節(jié)點(diǎn)和所述第二處理節(jié)點(diǎn),使得所述多個(gè)第一處理單元中的每一個(gè)通過多個(gè)點(diǎn)對(duì)點(diǎn)鏈接中的相應(yīng)一個(gè)耦接到所述第二處理節(jié)點(diǎn)中的所述多個(gè)第二處理單元中的相應(yīng)一個(gè);其中所述耦接包括通過第一點(diǎn)對(duì)點(diǎn)鏈接將所述第一處理節(jié)點(diǎn)中的第一處理單元耦接到所述第二處理節(jié)點(diǎn)中的第四處理單元;通過第二點(diǎn)對(duì)點(diǎn)鏈接將所述第一處理節(jié)點(diǎn)中的第二處理單元耦接到所述第二處理節(jié)點(diǎn)中的第五處理單元;以及通過第三點(diǎn)對(duì)點(diǎn)鏈接將所述第一處理節(jié)點(diǎn)中的第三處理單元耦接到所述第二處理節(jié)點(diǎn)中的第六處理單元。
14.如權(quán)利要求13所述的方法,其中,所述多個(gè)點(diǎn)對(duì)點(diǎn)鏈接包括多個(gè)點(diǎn)對(duì)點(diǎn)第二層鏈接;以及耦接所述多個(gè)第一處理單元包括,通過多個(gè)點(diǎn)對(duì)點(diǎn)第一層鏈接中的相應(yīng)一個(gè),將所述多個(gè)第一處理單元中的每一個(gè)耦接到所述多個(gè)第一處理單元中的每個(gè)其它處理單元。
15.如權(quán)利要求14所述的方法,還包括所述多個(gè)第一處理單元之一內(nèi)的互連邏輯,其經(jīng)由所有所述多個(gè)第一層鏈接以及所述多個(gè)第二層鏈接之一將操作廣播到所有所述多個(gè)第一處理單元以及所有所述多個(gè)第二處理單元。
16.如權(quán)利要求13所述的方法,其中所述多個(gè)第一處理單元包括節(jié)點(diǎn)主設(shè)備處理單元和至少一個(gè)節(jié)點(diǎn)葉子處理單元;所述多個(gè)第二處理單元包括遠(yuǎn)程中心處理單元和至少一個(gè)遠(yuǎn)程葉子處理單元;所述方法還包括所述節(jié)點(diǎn)主設(shè)備處理單元將請(qǐng)求廣播到每個(gè)節(jié)點(diǎn)葉子處理單元和所述遠(yuǎn)程中心處理單元;所述遠(yuǎn)程中心處理單元將所述請(qǐng)求廣播到每個(gè)遠(yuǎn)程葉子處理單元;以及所述節(jié)點(diǎn)主設(shè)備處理單元基于由所述節(jié)點(diǎn)主設(shè)備處理單元接收的對(duì)所述請(qǐng)求的部分響應(yīng),將對(duì)所述請(qǐng)求的組合響應(yīng)廣播到每個(gè)節(jié)點(diǎn)葉子處理單元、遠(yuǎn)程中心處理單元和遠(yuǎn)程葉子處理單元。
17.如權(quán)利要求13所述的方法,還包括響應(yīng)于配置寄存器的第一設(shè)置,以第一模式傳遞操作,在第一模式中,所述多個(gè)第一處理單元中的每一個(gè)通過多個(gè)點(diǎn)對(duì)點(diǎn)鏈接中的相應(yīng)一個(gè)與所述第二處理節(jié)點(diǎn)中的所述多個(gè)第二處理單元中的相應(yīng)一個(gè)進(jìn)行通信;以及響應(yīng)于配置寄存器的第二設(shè)置,以替換的第二模式傳遞操作,在第二模式中,少于所有的所述多個(gè)第一處理單元通過所述多個(gè)點(diǎn)對(duì)點(diǎn)鏈接與所述多個(gè)第二處理單元中的處理單元進(jìn)行通信。
18.如權(quán)利要求13所述的方法,其中所述多個(gè)第一和第二處理單元的操作按次序至少包括請(qǐng)求階段,其中廣播請(qǐng)求;部分響應(yīng)階段,其中各個(gè)處理單元確定它們各自的對(duì)所述請(qǐng)求的響應(yīng);以及組合響應(yīng)階段,其中分布對(duì)所述請(qǐng)求的全系統(tǒng)范圍的組合響應(yīng);以及所述方法還包括,所述多個(gè)第一和第二處理單元以與所述請(qǐng)求相同的方向、經(jīng)由所述請(qǐng)求穿過的每個(gè)鏈接路由所述組合響應(yīng),并且以與所述請(qǐng)求相反的方向、經(jīng)由所述請(qǐng)求穿過的每個(gè)鏈接路由至少一個(gè)部分響應(yīng)。
全文摘要
一種數(shù)據(jù)處理系統(tǒng)包括第一處理節(jié)點(diǎn)和第二處理節(jié)點(diǎn)。第一處理節(jié)點(diǎn)包括彼此耦接以便通信的多個(gè)第一處理單元,并且第二處理節(jié)點(diǎn)包括彼此耦接以便通信的多個(gè)第二處理單元。該多個(gè)第一處理單元中的每一個(gè)通過多個(gè)點(diǎn)到點(diǎn)鏈路中的相應(yīng)一個(gè)耦接到第二處理節(jié)點(diǎn)中的該多個(gè)第二處理單元中的相應(yīng)一個(gè)。
文檔編號(hào)G06F15/163GK1940904SQ20061010641
公開日2007年4月4日 申請(qǐng)日期2006年7月14日 優(yōu)先權(quán)日2005年9月27日
發(fā)明者威廉·J·斯塔克, 本杰明·L·古德曼, 普拉文·S·雷迪, 維森特·E·丘恩 申請(qǐng)人:國際商業(yè)機(jī)器公司