亚洲成年人黄色一级片,日本香港三级亚洲三级,黄色成人小视频,国产青草视频,国产一区二区久久精品,91在线免费公开视频,成年轻人网站色直接看

使用全局窺探向單個(gè)相干系統(tǒng)中的分布式計(jì)算機(jī)節(jié)點(diǎn)提供高速緩存一致性的方法和設(shè)備的制作方法

文檔序號(hào):6402896閱讀:594來源:國知局
專利名稱:使用全局窺探向單個(gè)相干系統(tǒng)中的分布式計(jì)算機(jī)節(jié)點(diǎn)提供高速緩存一致性的方法和設(shè)備的制作方法
技術(shù)領(lǐng)域
一般來說,本發(fā)明涉及計(jì)算機(jī)數(shù)據(jù)高速緩存方案,具體來說,涉及當(dāng)系統(tǒng)利用能夠被配置為系統(tǒng)中的單獨(dú)的,獨(dú)立的節(jié)點(diǎn)的多個(gè)數(shù)據(jù)處理器時(shí),用于維護(hù)具有分布式共享存儲(chǔ)器的系統(tǒng)內(nèi)的各個(gè)存儲(chǔ)器之間的一致性的方法和設(shè)備,所述系統(tǒng)利用跨各種節(jié)點(diǎn)分布的不均勻的存儲(chǔ)器存取(NUMA)或系統(tǒng)存儲(chǔ)器。
背景技術(shù)
在利用以協(xié)調(diào)的方式同時(shí)操作的一個(gè)以上的處理器的計(jì)算機(jī)系統(tǒng)設(shè)計(jì)中,可以在物理上配置的或與一個(gè)這樣的處理器組關(guān)聯(lián)的系統(tǒng)存儲(chǔ)器可以被這樣的系統(tǒng)中的其他處理器或處理器組進(jìn)行訪問。由于在數(shù)據(jù)處理系統(tǒng)內(nèi)需要較大的處理能力,并由于希望具有相對(duì)少的微處理器作為多處理系統(tǒng)合作地操作共享系統(tǒng)組件,最近幾年一直有人在嘗試解決維護(hù)存儲(chǔ)器設(shè)備(當(dāng)系統(tǒng)節(jié)點(diǎn)包括多個(gè)共享節(jié)點(diǎn)本地的資源和/或硬件設(shè)備的處理器時(shí),存儲(chǔ)器設(shè)備可以由一個(gè)以上的處理或一個(gè)以上的系統(tǒng)節(jié)點(diǎn)進(jìn)行訪問)之間的一致性所固有的問題。
一致性問題由一個(gè)系統(tǒng)來進(jìn)行示范,在該系統(tǒng)中,使用互連的縱橫開關(guān)(crossbar)通信信道連接多個(gè)存儲(chǔ)器設(shè)備,每一個(gè)存儲(chǔ)器設(shè)備都與關(guān)聯(lián)的處理器或構(gòu)成多處理器系統(tǒng)的本地處理器組配套。來自處理器或充當(dāng)這樣的多節(jié)點(diǎn)系統(tǒng)中的一個(gè)節(jié)點(diǎn)的處理器組的讀取或?qū)懭霐?shù)據(jù)請(qǐng)求可以被定向到與發(fā)出請(qǐng)求的處理器關(guān)聯(lián)的存儲(chǔ)器設(shè)備內(nèi)的地址或與系統(tǒng)內(nèi)的另一個(gè)處理器組關(guān)聯(lián)的存儲(chǔ)器的地址。每一個(gè)處理器組還與本地高速緩存關(guān)聯(lián)。由于每一個(gè)處理器組都具有關(guān)聯(lián)的高速緩存,每一個(gè)高速緩存可能具有一個(gè)以上的級(jí)別,因此,必須小心,以確保在整個(gè)系統(tǒng)中維護(hù)的數(shù)據(jù)的一致性。
確保維護(hù)一致性的一種方式是跟蹤目錄(或寄存器)中的每一項(xiàng)數(shù)據(jù)的狀態(tài),所述目錄(或寄存器)指向數(shù)據(jù)所在的每一個(gè)非本地高速緩存。通過知道數(shù)據(jù)的每一個(gè)副本的位置,每一個(gè)副本都可以更新,或者在寄存器內(nèi)作出記號(hào),以表示一個(gè)或多個(gè)位置的數(shù)據(jù)沒有過期。這樣的寄存器或表需要指向正在高速緩存數(shù)據(jù)的多個(gè)節(jié)點(diǎn)的指針。由于組件延遲并因?yàn)槟承┫到y(tǒng)在等待來自其他系統(tǒng)處理器本地的其他存儲(chǔ)器子系統(tǒng)的數(shù)據(jù)狀態(tài)指示符時(shí)同時(shí)處理多個(gè)數(shù)據(jù)行的能力沒有完全得到利用,所有這些都具有使系統(tǒng)速度和性能減慢的效果。
在相關(guān)技術(shù)的專利中,維護(hù)指向每一個(gè)節(jié)點(diǎn)內(nèi)特定的數(shù)據(jù)項(xiàng)的每一個(gè)副本的一個(gè)表所存在的問題是,它增大了這樣的表內(nèi)的目錄條目的復(fù)雜性和寬度,使表變得相對(duì)大和復(fù)雜。
授權(quán)給Luick等人的No.6,088,769美國專利說明了通過組合的本地和全局表所解決的多處理器高速緩存一致性。盡管此引用定義了單一的全局窺探方案,但是,它依賴單一的目錄,和L1和L2高速緩存過濾器數(shù)據(jù)引用,以便只有這樣的引用中的某些引用到達(dá)中心全局控制單位。Luick沒有說明多處理器系統(tǒng)中的所有處理器的所有數(shù)據(jù)引用的全局窺探,通過單個(gè)級(jí)別中央控制設(shè)備進(jìn)行,所述單個(gè)級(jí)別中央控制設(shè)備便于在多節(jié)點(diǎn)處理器系統(tǒng)中的多個(gè)節(jié)點(diǎn)之間進(jìn)行通信。此外,盡管Luick說明了對(duì)照特定的節(jié)點(diǎn)本地的專用目錄的校驗(yàn)數(shù)據(jù)引用,但它沒有講述單一的全局高速緩存一致性表中的校驗(yàn)數(shù)據(jù)引用。此外,Luick引用描述了生成數(shù)據(jù)標(biāo)記或引用的單處理器中的高速緩存一致性的處理方法,但是,沒有講述在生成一個(gè)節(jié)點(diǎn)中的數(shù)據(jù)標(biāo)記的多處理器群集中的用途,所述節(jié)點(diǎn)包含其自己的可以作為獨(dú)立處理系統(tǒng)起作用的存儲(chǔ)器和輸入/輸出功能,無需通過中央控制設(shè)備進(jìn)行通信,所述中央控制設(shè)備還作為到其他獨(dú)立處理器節(jié)點(diǎn)的通信信道起作用。
頒發(fā)給Fu的No.6,065,077美國專利講述了共享數(shù)據(jù)高速緩存的方法,其中,所有存儲(chǔ)器和處理器設(shè)備單獨(dú)地連接到流量控制單元,所述流量控制單元充當(dāng)處理器和存儲(chǔ)器元件之間的縱橫開關(guān),并與其他縱橫開關(guān)或通信系統(tǒng)進(jìn)行通信,而其他縱橫開關(guān)或通信系統(tǒng)本身也控制它們的子系統(tǒng)組件。Fu沒有講述用于跨多處理器系統(tǒng)協(xié)調(diào)數(shù)據(jù)的系統(tǒng),所述多處理器系統(tǒng)本身利用一個(gè)組或節(jié)點(diǎn)內(nèi)的多處理器,所述節(jié)點(diǎn)能夠在必要時(shí)獨(dú)立于中央控制設(shè)備或縱橫開關(guān)系統(tǒng)進(jìn)行操作。Fu所提供的方法要求對(duì)存儲(chǔ)器的所有引用都得到滿足,方法是將來自存儲(chǔ)器單元的數(shù)據(jù)通過充當(dāng)縱橫開關(guān)的流量控制設(shè)備傳輸?shù)秸谡?qǐng)求數(shù)據(jù)的處理單元。Fu沒有講述這樣的系統(tǒng),處理器請(qǐng)求的數(shù)據(jù)可以完全由正在請(qǐng)求這樣的數(shù)據(jù)的特定節(jié)點(diǎn)的本地存儲(chǔ)器來滿足,也沒有講述這樣的方法,通過這樣的方法只有具有一致性影響的數(shù)據(jù)請(qǐng)求在節(jié)點(diǎn)之間進(jìn)行傳輸。
在頒發(fā)給Arimilli等人的No.5,943,685美國專利中提供了另一個(gè)引用,該引用說明了跟蹤整個(gè)系統(tǒng)中的各個(gè)高速緩存中維護(hù)的數(shù)據(jù)的其他方法,該發(fā)明提供了共享的高速緩存之間的單個(gè)數(shù)據(jù)提供者的共享干預(yù)的方法。頒發(fā)給Hoover等人的No.5,604,882美國專利描述了高速緩存用于從對(duì)等高速緩存單元到多處理器系統(tǒng)中的全局存儲(chǔ)控制單元的空白通知的系統(tǒng)和方法。相關(guān)的背景技術(shù)沒有說明使用中心通信或控制設(shè)備的方法,所述中心通信或控制設(shè)備將來自一個(gè)節(jié)點(diǎn)的結(jié)果轉(zhuǎn)發(fā)到多節(jié)點(diǎn)系統(tǒng)中的另一個(gè)節(jié)點(diǎn),所采用的方法應(yīng)是同時(shí)向第一節(jié)點(diǎn)提供讀取請(qǐng)求,向第二節(jié)點(diǎn)提供寫入請(qǐng)求,讀取請(qǐng)求的結(jié)果傳遞到第二節(jié)點(diǎn),而不必經(jīng)過中央控制或通信設(shè)備,所述中央控制或通信設(shè)備將數(shù)據(jù)標(biāo)記和地址信息傳遞到各個(gè)節(jié)點(diǎn)。
相應(yīng)地,本發(fā)明的目標(biāo)是提供一種用于維護(hù)多處理器系統(tǒng)內(nèi)的多個(gè)高速緩存中存儲(chǔ)的數(shù)據(jù)的一致性的系統(tǒng)和方法,所述系統(tǒng)和方法利用中心標(biāo)記和地址縱橫開關(guān)作為中心通信通道,其特征在于,不需要中心設(shè)備來維護(hù)系統(tǒng)中的掛起的與高速緩存相關(guān)的數(shù)據(jù)請(qǐng)求的瞬變或瞬變狀態(tài)。本發(fā)明的另一個(gè)目標(biāo)是提供一種用于維護(hù)至少具有兩個(gè)節(jié)點(diǎn)的多處理器系統(tǒng)內(nèi)的多個(gè)高速緩存中存儲(chǔ)的數(shù)據(jù)的一致性的系統(tǒng)和方法,其特征在于,向數(shù)據(jù)請(qǐng)求者節(jié)點(diǎn)返回這樣的來自存儲(chǔ)了被請(qǐng)求的數(shù)據(jù)的目標(biāo)節(jié)點(diǎn)的請(qǐng)求的結(jié)果,而不必經(jīng)過中央控制設(shè)備的處理。
本發(fā)明的還有另一個(gè)目標(biāo)是提供位于多節(jié)點(diǎn)多處理器系統(tǒng)內(nèi)的單獨(dú)的節(jié)點(diǎn)中的多個(gè)高速緩存中存儲(chǔ)的數(shù)據(jù)的一致性的系統(tǒng)和方法,所述系統(tǒng)和方法利用數(shù)據(jù)標(biāo)記和地址縱橫開關(guān)控制和通信設(shè)備,其特征在于,從第一節(jié)點(diǎn)到第二節(jié)點(diǎn)的標(biāo)記或地址信息的中心設(shè)備控制通信同時(shí)向第一節(jié)點(diǎn)發(fā)送讀取請(qǐng)求,向第二節(jié)點(diǎn)發(fā)送數(shù)據(jù)寫入請(qǐng)求,數(shù)據(jù)讀取請(qǐng)求的結(jié)果被傳遞這樣的第二節(jié)點(diǎn),而不必通過標(biāo)記和地址縱橫開關(guān)進(jìn)行傳輸。

發(fā)明內(nèi)容
本發(fā)明提供了利用分布式計(jì)算節(jié)點(diǎn)的計(jì)算機(jī)系統(tǒng)中使用的方法和設(shè)備,其中,每一個(gè)節(jié)點(diǎn)都包括一個(gè)或多個(gè)微處理器,每一個(gè)節(jié)點(diǎn)都能夠用本地系統(tǒng)存儲(chǔ)器和控制系統(tǒng)獨(dú)立地進(jìn)行操作,其中,所有節(jié)點(diǎn)都互相連接,以便作為多節(jié)點(diǎn)系統(tǒng)進(jìn)行操作。該方法用于維護(hù)多處理器系統(tǒng)中的高速緩存一致性,所述多處理器系統(tǒng)具有多個(gè)由諸如標(biāo)記和地址縱橫開關(guān)系統(tǒng)和數(shù)據(jù)縱橫開關(guān)系統(tǒng)之類的互連通信通道連接的節(jié)點(diǎn)。該方法用標(biāo)記和地址縱橫開關(guān)系統(tǒng)進(jìn)行操作,當(dāng)系統(tǒng)還包括從任何節(jié)點(diǎn)的存儲(chǔ)器系統(tǒng)訪問數(shù)據(jù)的功能時(shí),所述標(biāo)記和地址縱橫開關(guān)系統(tǒng)能夠存儲(chǔ)有關(guān)系統(tǒng)內(nèi)的數(shù)據(jù)的位置和狀態(tài)。該方法包括下列步驟存儲(chǔ)有關(guān)所述互連通道中的數(shù)據(jù)的狀態(tài)的信息;響應(yīng)請(qǐng)求節(jié)點(diǎn)所發(fā)出的對(duì)被請(qǐng)求的那部分?jǐn)?shù)據(jù)的請(qǐng)求,檢查所述存儲(chǔ)信息以判斷被請(qǐng)求的那部分?jǐn)?shù)據(jù)的最新的副本的位置;檢索被請(qǐng)求的那部分?jǐn)?shù)據(jù)的所述最當(dāng)前副本,并將所述數(shù)據(jù)定向到發(fā)出請(qǐng)求的節(jié)點(diǎn);檢查所述存儲(chǔ)信息以判斷被請(qǐng)求的數(shù)據(jù)的位置;然后指示所述系統(tǒng)向發(fā)出請(qǐng)求的節(jié)點(diǎn)發(fā)送所述被請(qǐng)求的數(shù)據(jù),而不必經(jīng)過所述互連通信通道。
該設(shè)備包括多處理器系統(tǒng),所述多處理器系統(tǒng)由兩個(gè)或更多節(jié)點(diǎn)組成,每一個(gè)節(jié)點(diǎn)至少一個(gè)處理器,每一個(gè)節(jié)點(diǎn)包括由處理器使用的共享的分布式存儲(chǔ)器系統(tǒng)的一部分。節(jié)點(diǎn)由通信通道互相連接,所述通信通道包括在分布式存儲(chǔ)器中存儲(chǔ)跨系統(tǒng)存儲(chǔ)的數(shù)據(jù)的位置和狀態(tài)。優(yōu)選實(shí)施例通過在標(biāo)記和地址縱橫開關(guān)設(shè)備中存儲(chǔ)被請(qǐng)求的數(shù)據(jù)的位置和狀態(tài)或其他位置和狀態(tài)信息來降低整個(gè)系統(tǒng)中的數(shù)據(jù)流的延遲,所述標(biāo)記和地址縱橫開關(guān)設(shè)備同時(shí)檢查所有節(jié)點(diǎn)中的每一行的高速緩存線狀態(tài)。然后基于存儲(chǔ)在標(biāo)記和地址縱橫開關(guān)系統(tǒng)中的這樣的信息向正在請(qǐng)求數(shù)據(jù)的節(jié)點(diǎn)發(fā)回適當(dāng)?shù)幕貜?fù),或其他請(qǐng)求,所述標(biāo)記和地址縱橫開關(guān)系統(tǒng)還充當(dāng)節(jié)點(diǎn)之間的通信通道。
通過閱讀本發(fā)明的優(yōu)選實(shí)施例的詳細(xì)說明,本發(fā)明的其他特點(diǎn)和優(yōu)點(diǎn)將變得顯而易見,說明應(yīng)結(jié)合附圖來閱讀。


圖1是將標(biāo)記和地址縱橫開關(guān)系統(tǒng)與數(shù)據(jù)縱橫開關(guān)系統(tǒng)一起使用的典型的多處理器系統(tǒng)的方框圖,該圖與本發(fā)明一起操作,并建議打印在所發(fā)專利的第一頁上。
圖2A-2C是連接其中運(yùn)用了本發(fā)明的多處理器系統(tǒng)中的每一個(gè)象限或節(jié)點(diǎn)的標(biāo)記和地址縱橫開關(guān)系統(tǒng)的方框圖。
圖3是說明一個(gè)組的功能組件的一個(gè)象限處理器組以及本發(fā)明中的高速緩存和遠(yuǎn)程高速高速緩存的關(guān)系。
圖4A-4D是說明在優(yōu)選實(shí)施例中使用的高速緩存讀取和讀取失效的各種狀態(tài)的表。
圖5A-5B是說明優(yōu)選實(shí)施例中使用的系統(tǒng)中的非高速緩存讀取請(qǐng)求的表。
圖6A-6B是說明優(yōu)選實(shí)施例中使用的系統(tǒng)中的非高速緩存寫入請(qǐng)求的表。
圖7是說明對(duì)優(yōu)選實(shí)施例中使用的系統(tǒng)中的對(duì)存儲(chǔ)器映射的輸入/輸出、CSR和非存儲(chǔ)器目標(biāo)的讀取和寫入的表。
圖8A-8B是說明優(yōu)選實(shí)施例中使用的系統(tǒng)中的轉(zhuǎn)出請(qǐng)求的表。
圖9A-9C是用于優(yōu)選實(shí)施例中使用的標(biāo)記和地址縱橫開關(guān)設(shè)備的所有輸入和輸出總線的字段的mnemonics的表,并提供圖4、5、6、7和8中使用的引用。
圖10是遠(yuǎn)程高速緩存標(biāo)記的映射的方框圖。
具體實(shí)施例方式
概述具體來說,本發(fā)明涉及多處理器系統(tǒng)中使用的改善的數(shù)據(jù)處理方法,所述多處理器系統(tǒng)配置了兩個(gè)或多個(gè)獨(dú)立的處理節(jié)點(diǎn),利用標(biāo)記和地址縱橫開關(guān)系統(tǒng)并與數(shù)據(jù)縱橫開關(guān)系統(tǒng)結(jié)合使用,一起包括數(shù)據(jù)處理系統(tǒng),以處理跨節(jié)點(diǎn)的多個(gè)數(shù)據(jù)讀取和寫入請(qǐng)求。在這樣的系統(tǒng)中,特定的處理器或節(jié)點(diǎn)不能知道在其他節(jié)點(diǎn)上存在的數(shù)據(jù)的高速緩存線狀態(tài),它們需要訪問其他節(jié)點(diǎn)的存儲(chǔ)器內(nèi)的這樣的數(shù)據(jù)的最當(dāng)前副本,才能使系統(tǒng)一致地操作。在這樣的多節(jié)點(diǎn)系統(tǒng)中,必須保證數(shù)據(jù)高速緩存線對(duì)于請(qǐng)求給定數(shù)據(jù)高速緩存線的微處理器或節(jié)點(diǎn)來說是最新的,采用獲得保證全系統(tǒng)范圍的高速緩存一致性的方法。這里所說明的系統(tǒng)在允許系統(tǒng)中的任何節(jié)點(diǎn)訪問某一高速緩存線之前提供對(duì)所述高速緩存線的任何請(qǐng)求的序列化的層次結(jié)構(gòu),以便在系統(tǒng)中的可能在一起操作的所有節(jié)點(diǎn)中維護(hù)高速緩存一致性。
這里所描述的方法和設(shè)備利用了全局窺探以提供單一的序列化點(diǎn)。本發(fā)明中的全局窺探是這樣來實(shí)現(xiàn)的假設(shè)系統(tǒng)內(nèi)的所有節(jié)點(diǎn)都將對(duì)數(shù)據(jù)的所有請(qǐng)求傳遞到集中式控制器,所述集中式控制器與系統(tǒng)中的每一個(gè)節(jié)點(diǎn)進(jìn)行通信,并維護(hù)集中的高速緩存狀態(tài)標(biāo)記。中央控制器是一個(gè)連接節(jié)點(diǎn)的數(shù)據(jù)標(biāo)記和地址縱橫開關(guān)系統(tǒng),同時(shí)檢查所有節(jié)點(diǎn)的每一行的高速緩存狀態(tài)標(biāo)記,并向正在請(qǐng)求數(shù)據(jù)的節(jié)點(diǎn)發(fā)出適當(dāng)?shù)幕貜?fù)??刂破鬟€向其他節(jié)點(diǎn)生成其他請(qǐng)求,以便維護(hù)高速緩存一致性并在適當(dāng)?shù)那闆r下提供被請(qǐng)求的數(shù)據(jù)。
優(yōu)選實(shí)施例將與一個(gè)或多個(gè)微處理器的每一個(gè)節(jié)點(diǎn)關(guān)聯(lián)的系統(tǒng)的所有存儲(chǔ)器空間劃分為每一個(gè)節(jié)點(diǎn)的本地和遠(yuǎn)程類別。每一個(gè)節(jié)點(diǎn)都擁有整個(gè)系統(tǒng)中的全部存儲(chǔ)器空間的唯一的部分,被定義為該節(jié)點(diǎn)的本地部分。全部的系統(tǒng)存儲(chǔ)器正好由系統(tǒng)中的一個(gè)節(jié)點(diǎn)集合擁有。任何高速緩存線的本地和遠(yuǎn)程類別是互相排斥的,因此,系統(tǒng)中的對(duì)于節(jié)點(diǎn)來說不是本地的所有高速緩存線都被定義為對(duì)該節(jié)點(diǎn)來說是遠(yuǎn)程的。本發(fā)明為系統(tǒng)的每一個(gè)節(jié)點(diǎn)提供了三級(jí)遠(yuǎn)程高速緩存支持,其特征在于,每一個(gè)節(jié)點(diǎn)都高速緩存控制器指定的遠(yuǎn)程數(shù)據(jù)線。與每一個(gè)節(jié)點(diǎn)或處理器組關(guān)聯(lián)的每一個(gè)存儲(chǔ)器板本身分為本地存儲(chǔ)器,存儲(chǔ)器的一部分被定義為遠(yuǎn)程高速緩存。被定義為遠(yuǎn)程高速緩存的每一個(gè)本地存儲(chǔ)器系統(tǒng)的那一部分作為三級(jí)高速緩存操作。本發(fā)明通過為系統(tǒng)提供一個(gè)裝置,以預(yù)先知道被請(qǐng)求的線是位于特定的節(jié)點(diǎn)的本地存儲(chǔ)器中,或者,還是位于正在高速緩存另一個(gè)節(jié)點(diǎn)的本地存儲(chǔ)器的被定義為遠(yuǎn)程高速緩存的本地存儲(chǔ)器的部分,從而提供對(duì)被請(qǐng)求的數(shù)據(jù)線的預(yù)期。
本說明書假設(shè)當(dāng)發(fā)出對(duì)數(shù)據(jù)的請(qǐng)求時(shí)系統(tǒng)中的每一個(gè)節(jié)點(diǎn)都可以從本地存儲(chǔ)器或遠(yuǎn)程高速高速緩存請(qǐng)求數(shù)據(jù),由于控制器知道在哪一個(gè)類別中定義了線,當(dāng)控制器完成其一致性檢查時(shí)控制器可以驗(yàn)證或拒絕預(yù)期的數(shù)據(jù)線的使用。如果預(yù)期的并預(yù)先讀取的主題數(shù)據(jù)線是一致的,那么,請(qǐng)求數(shù)據(jù)的節(jié)點(diǎn)可以使用該線。如果線不一致,那么,控制器會(huì)將請(qǐng)求轉(zhuǎn)發(fā)到適當(dāng)?shù)墓?jié)點(diǎn),發(fā)出請(qǐng)求的節(jié)點(diǎn)丟棄預(yù)期的數(shù)據(jù)線,并由于控制器發(fā)出的請(qǐng)求使用線返回代替。
使用遠(yuǎn)程高速緩存可以降低高速緩存線的延遲,否則,必須從系統(tǒng)中的另一個(gè)節(jié)點(diǎn)獲取。所說明的遠(yuǎn)程高速緩存的存在提供了一致性狀態(tài),通過允許“臟”高速緩存線作為只讀副本在節(jié)點(diǎn)中存在,從而不必進(jìn)行從節(jié)點(diǎn)到節(jié)點(diǎn)的數(shù)據(jù)傳輸。當(dāng)高速緩存線必須恢復(fù)到其原始存儲(chǔ)器位置時(shí),遠(yuǎn)程高速緩存中持有的這樣的“臟”只讀高速緩存線的存在延遲了時(shí)間,從而增強(qiáng)了這樣的可能性其他高速緩存狀態(tài)轉(zhuǎn)移將清除將高速緩存線恢復(fù)到其原始存儲(chǔ)器位置的必要性,從而節(jié)省了不必要的系統(tǒng)事務(wù),這些不必要的系統(tǒng)事務(wù)會(huì)由于消耗系統(tǒng)帶寬而導(dǎo)致延遲。如果這樣的遠(yuǎn)程高速緩存清除了這樣的“臟”數(shù)據(jù)線,并且系統(tǒng)節(jié)點(diǎn)清除了該數(shù)據(jù)線的指定所有者,則控制器將重新分配不同的共享節(jié)點(diǎn)作為數(shù)據(jù)線的新所有者,而不必在系統(tǒng)內(nèi)進(jìn)行任何實(shí)際數(shù)據(jù)移動(dòng)。如果除清除“臟”行的節(jié)點(diǎn)之外沒有節(jié)點(diǎn)共享數(shù)據(jù),那么該行將恢復(fù)到其存儲(chǔ)器位置。
在本發(fā)明中,給定計(jì)算節(jié)點(diǎn)的系統(tǒng)存儲(chǔ)器被定義為分配給系統(tǒng)內(nèi)的分區(qū)的所有節(jié)點(diǎn)的集合存儲(chǔ)器,給定節(jié)點(diǎn)是所述系統(tǒng)的成員。因此,在存在一個(gè)以上的計(jì)算節(jié)點(diǎn)的分區(qū)的系統(tǒng)中,本發(fā)明和描述了對(duì)跨被定義為系統(tǒng)內(nèi)的單個(gè)分區(qū)內(nèi)操作的節(jié)點(diǎn)的系統(tǒng)存儲(chǔ)器的操作,并在此范圍內(nèi)分配系統(tǒng)存儲(chǔ)器。
優(yōu)選實(shí)施例的詳細(xì)信息圖1提供了其中可以使用本發(fā)明的典型的多處理器系統(tǒng)的示例。圖1說明了多處理器系統(tǒng),該系統(tǒng)利用了四個(gè)單獨(dú)的中央控制系統(tǒng)(控制代理)66,其中每一個(gè)控制系統(tǒng)為每個(gè)控制代理66的四個(gè)Intel牌的Itanium級(jí)的微處理器62的陣列64提供了輸入/輸出接口和存儲(chǔ)器控制。在許多應(yīng)用中,控制代理66是特定用途集成電路(ASIC),這種集成電路是為特定的系統(tǒng)應(yīng)用程序開發(fā)的,以便為每一個(gè)微處理器總線76、與給定的控制代理66關(guān)聯(lián)的每一個(gè)存儲(chǔ)器68、PCI接口總線21,PCI輸入/輸出接口80,以及連接到各種PCI設(shè)備的關(guān)聯(lián)的PCI總線74提供接口。每一個(gè)微處理器的總線76通過總線61連接到控制代理66。每一個(gè)PCI接口總線21都通過PCI接口塊總線20連接到每一個(gè)控制代理66。
圖1還說明了標(biāo)記和地址縱橫開關(guān)70以及數(shù)據(jù)縱橫開關(guān)72之間的端口連接。從圖1所示的方框圖中可以理解,縱橫開關(guān)70和縱橫開關(guān)72允許在每一個(gè)控制代理66之間進(jìn)行通信,以便地址信息和記憶線和寫入信息可以跨整個(gè)多處理器系統(tǒng)60進(jìn)行傳送。這樣的存儲(chǔ)器尋址系統(tǒng)跨系統(tǒng)地傳送數(shù)據(jù)位置,并促進(jìn)控制代理66有關(guān)數(shù)據(jù)有效性和所需數(shù)據(jù)位置的高速緩存信息的更新。
單一節(jié)點(diǎn)或“象限”處理器組58包括微處理器62、存儲(chǔ)器68和控制代理66。在本發(fā)明涉及的多處理器系統(tǒng)中,象限存儲(chǔ)器68通常是隨機(jī)存取存儲(chǔ)器(RAM),可以作為本地控制代理的本地或主存儲(chǔ)器。特定的存儲(chǔ)器68連接到整個(gè)系統(tǒng)60中的特定的控制器代理66,但當(dāng)由不直接連接到與特定控制代理66關(guān)聯(lián)的特定存儲(chǔ)器68的另一個(gè)象限或控制代理66訪問時(shí),被視為遠(yuǎn)程存儲(chǔ)器。任何一個(gè)象限58中中存在的微處理器62都可以訪問任何其他象限58上的存儲(chǔ)器68。NUMA系統(tǒng)通常將存儲(chǔ)器68分為本地存儲(chǔ)器和遠(yuǎn)程存儲(chǔ)器,以便其他象限進(jìn)行訪問,當(dāng)數(shù)據(jù)可以被利用或存儲(chǔ)在位于不同于并因此遠(yuǎn)離具有可能發(fā)出數(shù)據(jù)的PCI設(shè)備的象限58的另一個(gè)象限58上時(shí),本發(fā)明增強(qiáng)了整個(gè)系統(tǒng)的跟蹤數(shù)據(jù)的能力。
圖3是以更簡(jiǎn)單的視圖顯示的圖1所示的相同的多處理器系統(tǒng)的不同的視圖,說明了相對(duì)于其他象限組件以及縱橫開關(guān)系統(tǒng)70和72的一個(gè)象限58,為簡(jiǎn)單起見,在圖3中作為一個(gè)單元說明。本發(fā)明說明將位于每一個(gè)節(jié)點(diǎn)或象限58中的存儲(chǔ)器68的某一部分定義為遠(yuǎn)程高速緩存79。作為本地存儲(chǔ)器操作的那一部分存儲(chǔ)器68作為與它所關(guān)聯(lián)的特定象限58的主存儲(chǔ)器操作,而遠(yuǎn)程高速緩存79作為存儲(chǔ)器板68的一部分但被定義為遠(yuǎn)程高速緩存,作為系統(tǒng)中的其他節(jié)點(diǎn)的遠(yuǎn)程高速緩存操作。從圖3可以看出,遠(yuǎn)程高速緩存79不同于通常與特定的處理器62關(guān)聯(lián)的高速緩存63。高速緩存63通常在處理器62的同一襯底或芯片上,并可以分成常常被稱為一級(jí)(L1)和二級(jí)(L2)高速緩存。
標(biāo)記和地址縱橫開關(guān)70和數(shù)據(jù)縱橫開關(guān)72允許四個(gè)存儲(chǔ)器控制代理66之間的接口互連作為共享存儲(chǔ)器共同的操作系統(tǒng)實(shí)體,或者,如果整個(gè)系統(tǒng)被分開以允許圖1中說明的系統(tǒng)內(nèi)的獨(dú)立的操作系統(tǒng),則分隔為共享存儲(chǔ)器操作系統(tǒng)實(shí)例的單獨(dú)的實(shí)例。標(biāo)記和地址縱橫開關(guān)70通過在位于共同的操作系統(tǒng)實(shí)例(分區(qū))中的不同的象限58上的微處理器總線76之間提供數(shù)據(jù)地址窺探功能,支持這樣的體系結(jié)構(gòu)。為支持窺探活動(dòng),標(biāo)記和地址縱橫開關(guān)70在一個(gè)分區(qū)中的象限58的存儲(chǔ)器控制代理66之間路由請(qǐng)求和響應(yīng)。每一個(gè)分區(qū)都具有其自己的不同的象限58的組,沒有哪一個(gè)象限可以是一個(gè)分區(qū)以上的一部分。不同分區(qū)的象限不與彼此的存儲(chǔ)器空間進(jìn)行交互;下面將肯定地描述本發(fā)明,系統(tǒng)中的所有象限都在單一的系統(tǒng)分區(qū)內(nèi)進(jìn)行操作。
標(biāo)記和地址縱橫開關(guān)70跨每一個(gè)縱橫開關(guān)70總線接收入站請(qǐng)求,如圖1中的端口1的單一的實(shí)例41所示。標(biāo)記和地址縱橫開關(guān)70在偶數(shù)標(biāo)記管道52或奇數(shù)管道53中處理入站數(shù)據(jù)請(qǐng)求,如圖2所詳述的,在輸出46中將回復(fù)發(fā)送到發(fā)出請(qǐng)求的象限58,并在必要時(shí)將出站數(shù)據(jù)請(qǐng)求發(fā)送到其他標(biāo)記和地址縱橫開關(guān)70輸出總線45、47或48。標(biāo)記和地址縱橫開關(guān)70為其對(duì)每一個(gè)目標(biāo)存儲(chǔ)器控制代理66的出站請(qǐng)求以及在必要時(shí)向發(fā)出請(qǐng)求的節(jié)點(diǎn)的清除請(qǐng)求分配事務(wù)標(biāo)識(shí)符(TrID)。存儲(chǔ)器控制代理66在適當(dāng)?shù)臅r(shí)候釋放這樣的TrID以便進(jìn)行重新分配。標(biāo)記和地址縱橫開關(guān)70響應(yīng)存儲(chǔ)器控制代理66的對(duì)數(shù)據(jù)的請(qǐng)求不一定完成事務(wù)。如果被請(qǐng)求的數(shù)據(jù)的目標(biāo)地址對(duì)于發(fā)出請(qǐng)求的象限58來說是本地的,沒有遠(yuǎn)程高速緩存持有線作為修改,那么標(biāo)記和地址縱橫開關(guān)70以GO作出回答(如圖4、5和6的表所示),存儲(chǔ)器控制代理66使用來自其本地存儲(chǔ)器68的數(shù)據(jù)來完成對(duì)請(qǐng)求數(shù)據(jù)的處理器62的讀取。
如果數(shù)據(jù)在另一個(gè)象限的遠(yuǎn)程高速緩存中進(jìn)行修改,那么,標(biāo)記和地址縱橫開關(guān)70以WAIT作出,發(fā)出請(qǐng)求的存儲(chǔ)器控制代理66掛起請(qǐng)求,直到數(shù)據(jù)縱橫開關(guān)72提供讀取數(shù)據(jù)。當(dāng)標(biāo)記和地址縱橫開關(guān)70發(fā)出WAIT回復(fù)時(shí),它還向擁有高速緩存線的目標(biāo)存儲(chǔ)器控制代理66發(fā)出出站的讀取請(qǐng)求,包括象限標(biāo)識(shí)符(象限ID)和原始的發(fā)出請(qǐng)求的(源)存儲(chǔ)器控制代理66的TrID。此時(shí),目標(biāo)控制代理66從其存儲(chǔ)器板獲取目標(biāo)線,并將它發(fā)送到數(shù)據(jù)縱橫開關(guān)72,并附帶源象限ID和源TrID。數(shù)據(jù)縱橫開關(guān)72使用源象限ID將數(shù)據(jù)路由到源控制代理66,在此,它可以通過觀察隨數(shù)據(jù)返回的源TrID值被提供給發(fā)出請(qǐng)求的處理器。
標(biāo)記和地址縱橫開關(guān)70將系統(tǒng)60中的所有請(qǐng)求序列化為兩個(gè)地址流,它將這兩個(gè)地址流發(fā)送到其偶數(shù)和奇數(shù)標(biāo)記管道,如圖2所示。圖2為清楚起見分為三個(gè)部分,圖2A、2B和2C,但代表一個(gè)圖表。每一個(gè)管道都將地址發(fā)送到外部SRAM遠(yuǎn)程高速緩存標(biāo)記(RCT)以查找全局高速緩存狀態(tài)。由于每一個(gè)SRAM組件都只存儲(chǔ)其自己的端口的RCT條目,即,其自己的存儲(chǔ)器控制代理66,所有四個(gè)SRAM的讀取構(gòu)成了該索引處的所有四個(gè)RCT的讀取。來自不是發(fā)出請(qǐng)求的分區(qū)的成員端口的條目將被忽略。一個(gè)高速緩存線正好是一個(gè)象限58的宿主(即,對(duì)于其來說,是本地的,或由其擁有),因此,至少一個(gè)端口應(yīng)該產(chǎn)生標(biāo)記邏輯丟失(標(biāo)記不匹配或狀態(tài)1)。管道內(nèi)的信息的順序始終被預(yù)留。
當(dāng)標(biāo)記邏輯57判斷RCT條目必須修改(由于狀態(tài)、標(biāo)記或ECC場(chǎng)),標(biāo)記和地址縱橫開關(guān)70通過位于標(biāo)記比較器和調(diào)度器84和85中的寫入緩沖器向外部SRAM調(diào)度一次寫入。為防止沖突,其中,可以查詢新訪問,而寫入在寫入緩沖器中掛起,將窺探寫入緩沖器條目。寫入緩沖器中的窺探命中(有效地址匹配)導(dǎo)致查找停止,寫入緩沖器內(nèi)容被流出到SRAM。通過標(biāo)記管道進(jìn)行的查找最終可能導(dǎo)致標(biāo)記寫入,因此,還必須對(duì)它們進(jìn)行窺探,對(duì)這些條目的窺探命中還導(dǎo)致停頓,直到?jīng)_突解決(包括在必要時(shí)排放寫入緩沖器)。
標(biāo)記和地址縱橫開關(guān)70通過分配條目和維護(hù)它們的系統(tǒng)狀態(tài)來管理直接的映射遠(yuǎn)程高速緩存。如果一個(gè)請(qǐng)求需要RCT條目,而該條目已經(jīng)在使用中,則老的條目必須清除,此操作在當(dāng)前技術(shù)中有時(shí)被稱作轉(zhuǎn)出。標(biāo)記和地址縱橫開關(guān)70通過向發(fā)出了導(dǎo)致清除的請(qǐng)求的控制代理66發(fā)出一個(gè)失效或讀取失效來完成此項(xiàng)工作(也叫做“煽動(dòng)者”)。標(biāo)記和地址縱橫開關(guān)70作出的此轉(zhuǎn)出請(qǐng)求是發(fā)送到目標(biāo)存儲(chǔ)器控制代理66的原始(“煽動(dòng)者”)請(qǐng)求的補(bǔ)充,并位于其之前。
由于系統(tǒng)被配置了幾乎相同的象限58,因此,整個(gè)系統(tǒng)可以作為單一的系統(tǒng)分區(qū)或使用所說明的方法分區(qū)為四個(gè)單獨(dú)的分區(qū)系統(tǒng)。在優(yōu)選實(shí)施例中,象限58的最大總數(shù)是4,如圖1中所說明的那樣。標(biāo)記和地址縱橫開關(guān)70的每一個(gè)端口由于其代理66和縱橫開關(guān)70之間的物理連接被指派了四個(gè)控制代理66中的其中一個(gè)。標(biāo)記和地址縱橫開關(guān)70和數(shù)據(jù)縱橫開關(guān)72與每一個(gè)控制代理66之間的互連是通過總線71來實(shí)現(xiàn)的。如圖1所示的從標(biāo)記和地址縱橫開關(guān)70和數(shù)據(jù)縱橫開關(guān)72到象限1中的控制代理66的連接,總線也被稱為端口。盡管只在象限1中顯示,但是,對(duì)于每一個(gè)象限58,總線71的配置都是相同的,從如圖1所示的端口0、1、2和3的連接可以看出??偩€73是連接控制代理66與標(biāo)記和地址縱橫開關(guān)70的總線71的一部分??偩€75是連接數(shù)據(jù)縱橫開關(guān)72與每一個(gè)控制代理66的總線71的一部分。圖1中所示的系統(tǒng)的每一個(gè)象限,通過標(biāo)記和地址縱橫開關(guān)70以及數(shù)據(jù)縱橫開關(guān)72并通過被定義為端口的通道傳遞到系統(tǒng)的其余部分。端0、1、2和3都顯示在圖1上,通過每一個(gè)端口的輸入和輸出部分將縱橫開關(guān)系統(tǒng)與控制代理66互連,將每一個(gè)縱橫開關(guān)與每一個(gè)給定的象限互連。圖1中的所有象限58利用圖1的端口1中所示的互連總線71以類似的方式連接,從圖中可以看出。包括將縱橫開關(guān)與每一個(gè)象限58互連的端口的縱橫開關(guān)系統(tǒng)基本上是連接處理節(jié)點(diǎn)的通信通道。圖2說明了如圖1所示的標(biāo)記和地址縱橫開關(guān)70的內(nèi)部邏輯。端口0的輸入40、端口1的輸入41、端口2的輸入42,以及端口3的輸入43說明了每一個(gè)象限或節(jié)點(diǎn)中的每一個(gè)控制代理66到標(biāo)記和地址縱橫開關(guān)70的通信通道的一部分。同樣,圖2說明了端口0輸出45、端口1輸出46、端口2輸出47和端口3輸出48,這些也在如圖1所示的整個(gè)系統(tǒng)方框圖中進(jìn)行了顯示。圖81(a)和81(b)中顯示了與標(biāo)記和地址縱橫開關(guān)70一起起作用的標(biāo)記查詢寄存器。寄存器81(a)和81(b)是相同的,只是它們與偶數(shù)管道和奇數(shù)管道關(guān)聯(lián),用于進(jìn)行標(biāo)記處理,如圖2中所示。提供了雙管道設(shè)計(jì),通過將偶數(shù)標(biāo)記指派給偶數(shù)管道,將奇數(shù)標(biāo)記指派給奇數(shù)管道,以便可以同時(shí)進(jìn)行處理,以降低系統(tǒng)中的延遲。
輸入40、41、42和43都通過緩沖區(qū)引入,并可操作地連接到偶數(shù)輸入多路復(fù)用器50,以及奇數(shù)輸入多路復(fù)用器51,并根據(jù)與輸入標(biāo)記的偶數(shù)或奇數(shù)關(guān)系,選擇適當(dāng)?shù)亩嗦窂?fù)用器。每一個(gè)多路復(fù)用器50和51用于序列化來自四個(gè)輸入的標(biāo)記流。多路復(fù)用器50和51的輸出發(fā)送到另一個(gè)多路復(fù)用器,最終發(fā)送到標(biāo)記查詢寄存器81(a)和81(b)。偶數(shù)管道邏輯52和奇數(shù)管道邏輯53評(píng)估所提供的標(biāo)記和請(qǐng)求類型,以為連接到其分區(qū)內(nèi)定義的象限的端口生成輸出響應(yīng)和請(qǐng)求。所產(chǎn)生的輸出條目被高速緩存在調(diào)度緩沖區(qū)54和55中,所述調(diào)度緩沖區(qū)是先進(jìn)先出(FIFO)類型的緩沖區(qū)。調(diào)度緩沖區(qū)54和55消除所顯示的標(biāo)記邏輯和輸出選擇邏輯之間的時(shí)間差異。條目按先進(jìn)先出的順序存儲(chǔ)在調(diào)度緩沖區(qū)54和55中,直到它們可以發(fā)送到目標(biāo)端口,作為輸出45、46、47或48,代表了到每一個(gè)端口或象限的一個(gè)輸出。
標(biāo)記查詢寄存器81(a)和81(b)在配置方面相同,由四個(gè)同步靜態(tài)隨機(jī)存取存儲(chǔ)器(SSRAM)芯片構(gòu)成,總共四個(gè),每一個(gè)都是512 kbit x 16位。標(biāo)記查詢寄存器81(a)通過線路82(a)連接到偶數(shù)標(biāo)記比較器和調(diào)度器84。盡管在圖2中顯示了一個(gè)連接,但是連接82(a)實(shí)際上是四個(gè)通路,每一個(gè)都對(duì)應(yīng)于來自每一個(gè)端口的輸入0、1、2和3,如圖所描述。通過連接82(b)連接到奇數(shù)標(biāo)記比較器和調(diào)度器85的寄存器81(b)在功能上基本上是相同的。通路82(b)同樣由四個(gè)通路組成,每一個(gè)都對(duì)應(yīng)于一個(gè)端口。標(biāo)記查詢寄存器81(a)和81(b)是與標(biāo)記和地址縱橫開關(guān)70連接的外部存儲(chǔ)器,用于存儲(chǔ)整個(gè)系統(tǒng)中的所有遠(yuǎn)程高速緩存標(biāo)記的標(biāo)記和狀態(tài)信息。這樣的信息不能直接由存儲(chǔ)器控制代理66進(jìn)行訪問,因此控制代理66中生成的所有可高速緩存的事務(wù)必須訪問縱橫開關(guān)70以訪問縱橫開關(guān)70以訪問或“窺探”縱橫開關(guān)70的遠(yuǎn)程高速緩存標(biāo)記(RCT)。圖10所示的方框圖中說明了寄存器81(a)和81(b)的物理配置。如圖10所示,寄存器81(a)和81(b)是以同步靜態(tài)隨機(jī)存取存儲(chǔ)器芯片(SSRAM)實(shí)現(xiàn)的,所述芯片以縱橫開關(guān)70的內(nèi)部時(shí)鐘頻率進(jìn)行操作,在本發(fā)明中是133MHz。從圖10中可以看出,有兩組外部SSRAM,這些組被劃分為奇數(shù)和偶數(shù)管道,如圖2所示。每一組寄存器81(a)、81(b)被分成四個(gè)象限,每一個(gè)象限都代表縱橫開關(guān)70的物理端口。由于在優(yōu)選實(shí)施例中總共有四個(gè)端口,如圖1的系統(tǒng)圖所示,可以理解,每一個(gè)端口都對(duì)應(yīng)于本發(fā)明中的物理象限,如前面所描述。因此,RCT接口的每一個(gè)端口都代表物理象限的遠(yuǎn)程高速緩存的RCT,如圖10所顯示的,標(biāo)記查詢寄存器81(a)和81(b)的每一象限區(qū)域都包含標(biāo)記和狀態(tài)信息。
現(xiàn)在回到遠(yuǎn)程高速緩存,下面將根據(jù)優(yōu)選實(shí)施例中的本發(fā)明的操作描述下面的表1中顯示的遠(yuǎn)程高速緩存狀態(tài)。標(biāo)記和地址縱橫開關(guān)70為遠(yuǎn)程地址的遠(yuǎn)程高速緩存維護(hù)了直接映射的高速緩存標(biāo)記。標(biāo)記條目具有地址標(biāo)記部分和狀態(tài)部分(還有6個(gè)校驗(yàn)位,以便進(jìn)行SEC/DED保護(hù))??赡艿倪h(yuǎn)程高速緩存狀態(tài)值有I、S或M(代表invalid、shared和modified)。標(biāo)記和地址縱橫開關(guān)70上的每一個(gè)端口(端口0、1、2和3,如圖1所示)具有這些高速緩存標(biāo)記的對(duì)應(yīng)的偶數(shù)和奇數(shù)標(biāo)記SRAM陣列。對(duì)于共享相同的分區(qū)ID的端口,對(duì)應(yīng)的高速緩存標(biāo)記象限構(gòu)成了集體的遠(yuǎn)程高速緩存標(biāo)記狀態(tài)。標(biāo)記象限或兩個(gè)不同的分區(qū)(如果在單獨(dú)定義的分區(qū)中至少有一個(gè)節(jié)點(diǎn)操作)彼此之間沒有影響,但SRAM地址插腳的物理共享除外(這會(huì)強(qiáng)制訪問序列化)。一個(gè)地址的集體的標(biāo)記狀態(tài)是請(qǐng)求者的分區(qū)(其標(biāo)記地址匹配該地址)中的該索引的所有象限的狀態(tài)。
如上所述,在本發(fā)明中使用的可能的集體的狀態(tài)有無效、共享、臟和修改。對(duì)于這些集體的狀態(tài)1.“無效”表示分區(qū)中的所有象限具有I狀態(tài),或者在該索引上標(biāo)記不匹配;2.“共享”表示,至少一個(gè)象限匹配其標(biāo)記,并在該索引上具有S狀態(tài)(但無匹配并具有M狀態(tài));3.“臟”表示,正好一個(gè)象限與M狀態(tài)匹配,并至少有一個(gè)與S狀態(tài)的匹配;以及4.“修改”表示,正好一個(gè)象限與M狀態(tài)匹配,并且所有其他象限都是“無效”。
“臟”狀態(tài)意味著,宿主象限58中的存儲(chǔ)器是陳舊的,其狀態(tài)為共享(S)或修改(M)的所有象限58都具有一個(gè)相同副本,沒有處理器62在其內(nèi)部高速緩存中具有修改的副本。每當(dāng)偶數(shù)/奇數(shù)管道處理偶數(shù)/奇數(shù)存儲(chǔ)器地址的入站請(qǐng)求時(shí),標(biāo)記和地址縱橫開關(guān)70都對(duì)偶數(shù)/奇數(shù)標(biāo)記陣列的所有四個(gè)標(biāo)記象限執(zhí)行讀取訪問。請(qǐng)求和所產(chǎn)生的查詢的處理都可能需要對(duì)標(biāo)記進(jìn)行更新。防止對(duì)高速緩存線進(jìn)行連續(xù)的訪問,而潛在的更新被掛起。存儲(chǔ)器映射輸入/輸出(MMIO)地址和對(duì)非存儲(chǔ)器目標(biāo)的請(qǐng)求不需要查詢,但仍消耗管道階段。
標(biāo)記和地址縱橫開關(guān)70使用信用/釋放(credit/release)機(jī)制調(diào)節(jié)入站請(qǐng)求。控制代理66假設(shè)可以發(fā)送“信用”數(shù)量的請(qǐng)求,當(dāng)信用消耗完之后將不允許進(jìn)一步的請(qǐng)求??v橫開關(guān)70以信用釋放返回信用,這將允許重新使用信用。
寫入緩沖器或標(biāo)記和地址縱橫開關(guān)70的標(biāo)記管道中的地址沖突可以阻止標(biāo)記管道中的進(jìn)展,直到?jīng)_突解決。缺少TrID可能會(huì)延遲管道條目(令牌)從標(biāo)記邏輯到調(diào)度緩沖區(qū)54中的移動(dòng)。如果調(diào)度緩沖區(qū)54或55已滿,則新的條目無法進(jìn)入緩沖區(qū)。還有某些錯(cuò)誤(如SEC校正)會(huì)將管道停頓一個(gè)時(shí)鐘。由于這些原因,管道條目可能會(huì)在到調(diào)度緩沖區(qū)54或55的輸入處被延遲,并因此導(dǎo)致管道被阻塞。在TrID不足的情況下,條目被延遲可編程的一段時(shí)間)以等待有可用的TrID。如果延遲期已過,則重新嘗試進(jìn)入。在這種情況下,令牌被轉(zhuǎn)換為重試并作為對(duì)請(qǐng)求者的響應(yīng)放在調(diào)度緩沖區(qū)54或55中(錯(cuò)誤按類似方式進(jìn)行處理以錯(cuò)誤令牌替換原始的令牌)。轉(zhuǎn)換為重試或錯(cuò)誤允許條目放入調(diào)度緩沖區(qū)54或55,然后,管道可以前進(jìn)。這樣的情況取消了可能被調(diào)度的任何外部標(biāo)記更新或可能已經(jīng)分配的TrID。如果一個(gè)條目在到調(diào)度緩沖區(qū)54或55的輸入處被延遲,那么,當(dāng)任何外部標(biāo)記讀取操作返回到縱橫開關(guān)70時(shí)需要排隊(duì)。當(dāng)調(diào)度緩沖區(qū)54或55不阻塞時(shí),這些排隊(duì)的讀取結(jié)果(叫做“停頓收集器”)必須按照正確的順序插入回管道中。
入站請(qǐng)求只由信用/釋放機(jī)制進(jìn)行調(diào)節(jié)。入站響應(yīng)沒有定義。出站請(qǐng)求由目標(biāo)控制代理66中的TrID的可用性進(jìn)行調(diào)節(jié)(根據(jù)標(biāo)記和地址縱橫開關(guān)70的TrID分配邏輯的判斷)。出站響應(yīng)沒有調(diào)節(jié)機(jī)制,控制代理66接受任何縱橫開關(guān)70響應(yīng)。調(diào)度緩沖區(qū)54或55中的條目的所有出站響應(yīng)或請(qǐng)求都必須同時(shí)引用它們的相應(yīng)的輸出。因此,調(diào)度緩沖區(qū)54和55在發(fā)生沖突時(shí)必須爭(zhēng)用輸出45、46、47和48。此外,到輸出端口的輸出響應(yīng)可能伴隨著轉(zhuǎn)出(清除)請(qǐng)求,兩者都必須發(fā)送到輸出端口,轉(zhuǎn)出優(yōu)先。
標(biāo)記和地址縱橫開關(guān)70接收來自控制代理66的請(qǐng)求,并基于每一個(gè)象限的遠(yuǎn)程高速緩存標(biāo)記中的高速緩存線的狀態(tài)作出響應(yīng)。象限遠(yuǎn)程高速緩存(RC)狀態(tài)的集合叫做全局遠(yuǎn)程高速緩存(RC)狀態(tài)。在此表中,合法狀態(tài)值的組合被簡(jiǎn)化為3個(gè)字符串I、S和M,如上所述。第二列是請(qǐng)求者的RC標(biāo)記的狀態(tài),第三列是所有者除外的其他象限的狀態(tài),第四列是所有者象限的狀態(tài)。在表1的列1中給出了全局RC狀態(tài)的狀態(tài)名稱。本地請(qǐng)求應(yīng)該始終不匹配或具有I狀態(tài)。應(yīng)該理解,本地請(qǐng)求意味著,請(qǐng)求者處于狀態(tài)I,因?yàn)楸镜氐刂窙]有高速緩存在遠(yuǎn)程高速緩存中。在其中Req狀態(tài)為I的行中,在該象限的遠(yuǎn)程高速緩存中,不存在線。I狀態(tài)表示,沒有標(biāo)記匹配,狀態(tài)是I,或端口不是發(fā)出請(qǐng)求的分區(qū)的成員。所有四個(gè)“臟”狀態(tài)表示,持有M狀態(tài)的線的象限中的處理器在它們的芯片內(nèi)(L1/L2)高速緩存中具有未修改的數(shù)據(jù)。
表1全局遠(yuǎn)程高速緩存狀態(tài)定義

當(dāng)請(qǐng)求者是所有者時(shí),表1指派請(qǐng)求值為M,和顯示所有者為狀態(tài)I。在圖中使用了這樣的狀態(tài)名稱,以顯示標(biāo)記和地址縱橫開關(guān)70如何對(duì)總線73請(qǐng)求作出響應(yīng)。還應(yīng)該理解,總線73是圖1所示的每一個(gè)端口的標(biāo)記和地址縱橫開關(guān)70的每一個(gè)總線的說明。
圖4說明了高速緩存的讀取和讀取失效。圖4為清楚起見分為四個(gè)部分,圖4A、4B、4C和4D,但代表一個(gè)圖表。圖5說明了非高速緩存讀取。圖5為清楚起見分為兩個(gè)部分,圖5A、5B,但代表一個(gè)圖表。圖6說明了非高速緩存寫入。圖6為清楚起見分為兩個(gè)部分,圖6A、6B,但代表一個(gè)圖表。圖7說明了對(duì)MMIO、CSR和非存儲(chǔ)器目標(biāo)的讀取和寫入。圖8說明了轉(zhuǎn)出請(qǐng)求。圖8為清楚起見分為兩個(gè)部分,圖8A、8B,但代表一個(gè)圖表。圖9中說明了縱橫開關(guān)70的所有輸入和輸出總線所使用的場(chǎng)的所有助記符(在一個(gè)實(shí)例中顯示為圖1中的總線73),并可以用作在參考利用優(yōu)選實(shí)施例的操作的插圖中的助記符的圖中的引用。圖9為清楚起見分為三個(gè)部分,圖9A、9B和9C,但代表一個(gè)圖表。在說明優(yōu)選實(shí)施例的操作時(shí),可以對(duì)這樣的圖進(jìn)行參考。
圖4、5、6、7、8和9說明了優(yōu)選實(shí)施例的操作,并可用于理解這里所說明的方法和系統(tǒng)的實(shí)際操作。請(qǐng)看圖4,所顯示的表描述了高速緩存讀取和讀取失效的各種狀態(tài),它們完全說明了本發(fā)明的實(shí)現(xiàn)方式。圖4可以用于說明由四個(gè)端口中的任何一個(gè)端口啟動(dòng)的任何數(shù)據(jù)請(qǐng)求,并用作定義結(jié)果和對(duì)于一個(gè)給定輸入的所有其他端口的響應(yīng)的示例。圖4的列101包含各種總線請(qǐng)求。列101包括對(duì)本地地址高速緩存讀取的請(qǐng)求(LCR),對(duì)遠(yuǎn)程地址的高速緩存讀取的請(qǐng)求(RCR)、對(duì)本地地址的高速緩存讀取失效的請(qǐng)求(LCRI);對(duì)遠(yuǎn)程地址的高速緩存讀取失效的請(qǐng)求(RCRI)。將使用一個(gè)說明性的示例來演示本發(fā)明的操作,假設(shè)列101中的總線73請(qǐng)求從端口1發(fā)出,從而與輸41有關(guān),如圖1所示。
對(duì)于本示例,列101代表圖2上的輸入41。在這樣的情況下,對(duì)于列102中的每一個(gè)全局遠(yuǎn)程高速緩存狀態(tài),在列103中給出了對(duì)這樣的請(qǐng)求的標(biāo)記和地址縱橫開關(guān)70響應(yīng),以及這樣的響應(yīng)被定向到向其發(fā)出請(qǐng)求的輸出端口。在本示例中,輸入41上的請(qǐng)求對(duì)應(yīng)于處理對(duì)該請(qǐng)求的響應(yīng)的輸出46。同樣,列104、105和106引用圖2中的輸出45、46、47或48,因?yàn)樗鼈兩婕爸?、共享者或所有者。在本示例中,?duì)列104中的home的請(qǐng)求是不同于46的其他輸出中的一個(gè)。對(duì)列105中的共享者的請(qǐng)求一定不包括對(duì)列104中的home quad的請(qǐng)求。列104中指定的Home是其中地址是本地的quad,或表示地址對(duì)于特定的quad是本地的。列106描述了示例中的對(duì)quad的特定輸出,該quad被定義為相關(guān)數(shù)據(jù)的所有者。在用于從quad 1接收到的請(qǐng)求的示例中,列106根據(jù)定義是不同于與端口1關(guān)聯(lián)的輸出46的其他輸出中的一個(gè)。列107定義了下一個(gè)全局遠(yuǎn)程高速緩存狀態(tài),列108定義了遠(yuǎn)程高速緩存分配和/或轉(zhuǎn)出是否應(yīng)該與列101中的特定總線請(qǐng)求關(guān)聯(lián)。列108中的“是”表示重新定位可能是必需的,這進(jìn)一步意味著,需要對(duì)現(xiàn)有的行進(jìn)行轉(zhuǎn)出。
圖5是說明了與圖4中所描述的具有類似的垂直列定義的非高速緩存讀取請(qǐng)求的表。圖5提供了為每一個(gè)本地非高速緩存讀取請(qǐng)求和遠(yuǎn)程非高速緩存讀取請(qǐng)求定義的quad的各種狀態(tài)和響應(yīng)。圖6再一次以類似的列標(biāo)題,為本地非高速緩存部分寫入的請(qǐng)求、對(duì)縱橫開關(guān)70的請(qǐng)求或本地非高速緩存全線寫入請(qǐng)求的遠(yuǎn)程非高速緩存部分寫入請(qǐng)求或遠(yuǎn)程非高速緩存全線寫入請(qǐng)求提供了定義的解決方案。在優(yōu)選實(shí)施例中,完全的高速緩存線被定義為32字節(jié),是實(shí)施例中使用的一致性的單位。部分線是在涉及小于32字節(jié)的系統(tǒng)中作出的請(qǐng)求,相應(yīng)地被視為部分線。
圖7是說明到存儲(chǔ)器映射I/O位置、CSR、和非存儲(chǔ)器目標(biāo)的讀取和寫入,其定義包含在圖9中包含的助記符描述中。圖8是一個(gè)定義必須發(fā)送到宿主、共享者和所有者節(jié)點(diǎn)以實(shí)現(xiàn)高速緩存線的清除的請(qǐng)求的表。如果圖4的列108為(刺激)請(qǐng)求顯示“是”,并在遠(yuǎn)程高速緩存中有一個(gè)有效的預(yù)先存在的條目,那么,該條目必須清除,以便為(刺激)請(qǐng)求的高速緩存騰出空間。因此,圖8定義了與不同的存儲(chǔ)器位置(但相同的高速緩存條目)關(guān)聯(lián)的活動(dòng),并作為(刺激)請(qǐng)求的副效應(yīng)而發(fā)生。圖9包含了各個(gè)圖中使用的引用助記符。
在圖4到8中,偶而對(duì)n*RCI進(jìn)行了引用。n是等于操作的數(shù)量或一個(gè)特定的操作可能需要的請(qǐng)求的數(shù)量。提供了使用圖4的示例,該示例說明了其在本發(fā)明的操作中的用途。
以圖4中的線109作為示例,在對(duì)到本地地址的高速緩存讀取失效的請(qǐng)求中,列102提供了共享的丟失的實(shí)例。提供了列103,術(shù)語GO Inv=n,列104提供一個(gè)空白,列105提供了對(duì)作為n*RCI的共享者的請(qǐng)求的定義。在此示例中,處理器發(fā)出對(duì)本地地址的請(qǐng)求,它打算修改其數(shù)據(jù)。為維護(hù)一致性,它請(qǐng)求數(shù)據(jù),并希望系統(tǒng)中的這樣的數(shù)據(jù)的所有其他副本失效,因?yàn)樗?jì)劃“擁有”這樣的數(shù)據(jù)。然而,在利用共享丟失的示例中,在系統(tǒng)內(nèi)有其他象限,這些其他象限除了請(qǐng)求者的本地存儲(chǔ)器中的副本外,還具有高速緩存只讀副本。因此,處理器可以直接向存儲(chǔ)器請(qǐng)求這樣的數(shù)據(jù),因?yàn)橹挥衅渌北臼枪蚕砀北尽R虼?,根?jù)定義,存儲(chǔ)器中的存儲(chǔ)器不是陳舊的。在該示例中,處理器按建議讀取列103中的數(shù)據(jù),其中,對(duì)請(qǐng)求者的響應(yīng)被定義為GO,表示處理器可以繼續(xù)具有查詢的數(shù)據(jù)的過程,因?yàn)橐x取的預(yù)期的數(shù)據(jù)有效,處理器可以使用數(shù)據(jù)。
在繼續(xù)本發(fā)明定義的操作中,必須通知以前共享數(shù)據(jù)的其余的象限,應(yīng)有本示例的數(shù)據(jù)不再有效,這樣的象限不再具有數(shù)據(jù)的有效的副本。相應(yīng)地,本發(fā)明假設(shè),由于操作,這樣的存儲(chǔ)器現(xiàn)在被定義為陳舊的。列105假設(shè),RCI的n副本(這意味著遠(yuǎn)程高速緩存線失效)被發(fā)送到其他共享者。以前共享所述數(shù)據(jù)的每一個(gè)象限(總共n個(gè)象限)現(xiàn)在被通知,被操作的高速緩存線現(xiàn)在無效。在行109中的示例中,列103表示系統(tǒng)中預(yù)期的失效確認(rèn)的數(shù)量(inv=n)。相應(yīng)地,inv=n匹配n*RCI。本示例中定義的系統(tǒng)操作不完整,直到數(shù)據(jù)被接收,并返回n個(gè)失效確認(rèn)。在該示例中,可以理解,只有一個(gè)對(duì)發(fā)出請(qǐng)求的象限的響應(yīng),因?yàn)橹挥幸粋€(gè)發(fā)出請(qǐng)求的象限。在行109中,只有一個(gè)對(duì)宿主象限的請(qǐng)求,因?yàn)橹挥幸粋€(gè)宿主象限,并且只有一個(gè)對(duì)所有者象限的請(qǐng)求,因?yàn)橹挥幸粋€(gè)象限被定義為所有者。在列105中,可以理解,在給定的示例中,在所說明的優(yōu)選實(shí)施例中,最多可以有三個(gè)共享象限,因?yàn)樵诒緦?shí)施例中提供了總共四個(gè)象限。
對(duì)于所說明的示例,可以理解,圖4、5、6、7和8提供了完整的操作方案和控制協(xié)議,準(zhǔn)確地定義了這里所定義的設(shè)備和方法的操作。圖9中的Q/A列表示助記符是否與請(qǐng)求(Q=請(qǐng)求)或回復(fù)(A=回復(fù))關(guān)聯(lián)。
本發(fā)明可以在利用中央控制設(shè)備或系統(tǒng)以在一組微處理器之間進(jìn)行通信的任何多處理器系統(tǒng)中應(yīng)用。當(dāng)與標(biāo)記和地址縱橫開關(guān)系統(tǒng)以及數(shù)據(jù)縱橫開關(guān)系統(tǒng)一起使用時(shí)本發(fā)明最有益,這樣的系統(tǒng)跨系統(tǒng)地使用不均勻的存儲(chǔ)器存取或分布式存儲(chǔ)器連接多個(gè)處理器組。這里所顯示和詳細(xì)描述的優(yōu)選實(shí)施例的系統(tǒng)和方法完全能夠?qū)崿F(xiàn)本發(fā)明的目標(biāo),這些系統(tǒng)和方法可以在這樣的系統(tǒng)中通過跟蹤數(shù)據(jù)標(biāo)記和地址縱橫開關(guān)控制器內(nèi)的數(shù)據(jù)狀態(tài)來維護(hù)多節(jié)點(diǎn)系統(tǒng)內(nèi)的高速緩存的一致性。然而,應(yīng)該理解,所描述的實(shí)施例只本發(fā)明的一個(gè)示例,因而,只是本發(fā)明廣泛預(yù)期的主題的代表。
例如,在特定的系統(tǒng)的上下文中描述了優(yōu)選的實(shí)施例,該系統(tǒng)利用十六個(gè)微處理器,由四個(gè)處理器的四個(gè)單獨(dú)的組的象限組成,每一個(gè)象限具有存儲(chǔ)器控制代理,該存儲(chǔ)器控制代理與中央控制器縱橫開關(guān)連接,將存儲(chǔ)器板分配給象限,優(yōu)選實(shí)施例通過其他子系統(tǒng)與其他象限中的類似的控制器進(jìn)行通信。盡管如此,本發(fā)明可以與具有多處理器的任何系統(tǒng)一起使用,不論是否被分組為“節(jié)點(diǎn)”,指派了單獨(dú)的存儲(chǔ)器控制代理,當(dāng)在多節(jié)點(diǎn)系統(tǒng)內(nèi)這樣的處理器組或在處理數(shù)據(jù)讀取或?qū)懭朊罨蚴聞?wù)請(qǐng)求時(shí)需要一致性或協(xié)調(diào)時(shí),控制一個(gè)或多個(gè)處理器的每一個(gè)單獨(dú)的組。
本發(fā)明不一定限于這里所說明的特定的處理器的數(shù)量或處理器的陣列,但可以在使用互連的存儲(chǔ)器控制系統(tǒng)中使用相似的系統(tǒng)設(shè)計(jì),在節(jié)點(diǎn)之間帶有標(biāo)記和地址和數(shù)據(jù)通信系統(tǒng),以實(shí)現(xiàn)本發(fā)明。相應(yīng)地,本發(fā)明的范圍完全包含其他實(shí)施例,這對(duì)于精通本技術(shù)的人員是顯而易見的。
權(quán)利要求
1.一種在多處理器系統(tǒng)中維護(hù)高速緩存一致性的方法,所述多處理器系統(tǒng)具有由互連的通信通道(70-72)連接的多個(gè)節(jié)點(diǎn)(58),能夠存儲(chǔ)有關(guān)系統(tǒng)內(nèi)的數(shù)據(jù)的位置和狀態(tài)的信息,每一個(gè)節(jié)點(diǎn)具有至少一個(gè)高速緩存,節(jié)點(diǎn)本地的存儲(chǔ)設(shè)備,以及至少一個(gè)處理器設(shè)備,每一個(gè)節(jié)點(diǎn)內(nèi)的處理器設(shè)備能夠從本地存儲(chǔ)設(shè)備、本地高速緩存或從非本地存儲(chǔ)設(shè)備或非本地高速緩存通過互連的通信通道訪問數(shù)據(jù),該方法包括存儲(chǔ)有關(guān)所述互連通道(70,72)中的數(shù)據(jù)的狀態(tài)的信息(102);響應(yīng)發(fā)出請(qǐng)求的節(jié)點(diǎn)所發(fā)出的對(duì)被請(qǐng)求的那部分?jǐn)?shù)據(jù)的請(qǐng)求,檢查所述存儲(chǔ)信息以判斷被請(qǐng)求的那部分?jǐn)?shù)據(jù)的最當(dāng)前副本的位置;檢索被請(qǐng)求的那部分?jǐn)?shù)據(jù)的所述當(dāng)前副本,并將所述數(shù)據(jù)定向到發(fā)出請(qǐng)求的節(jié)點(diǎn);檢查所述存儲(chǔ)信息以判斷被請(qǐng)求的數(shù)據(jù)的位置;以及指示所述系統(tǒng)向發(fā)出請(qǐng)求的節(jié)點(diǎn)發(fā)送所述被請(qǐng)求的數(shù)據(jù),而不必經(jīng)過所述互連通信通道。
2.一種多處理器計(jì)算機(jī)系統(tǒng),包括多個(gè)節(jié)點(diǎn)(58),每一個(gè)節(jié)點(diǎn)都包括至少一個(gè)處理器和連接到所述處理器的共享的分布式系統(tǒng)存儲(chǔ)器的一部分;以及一個(gè)通信通道,連接所述節(jié)點(diǎn)并包括中心硬件設(shè)備(70、72),所述中心硬件設(shè)備存儲(chǔ)在節(jié)點(diǎn)的存儲(chǔ)器中存儲(chǔ)的數(shù)據(jù)的位置和狀態(tài)信息。
3.根據(jù)權(quán)利要求2所述多處理器系統(tǒng),其特征在于,每一個(gè)節(jié)點(diǎn)都包括無需通過所述通信通道進(jìn)行通信便可以對(duì)其進(jìn)行訪問的存儲(chǔ)器,以及可由其它節(jié)點(diǎn)進(jìn)行遠(yuǎn)程訪問的存儲(chǔ)器。
4.根據(jù)權(quán)利要求2所述多處理器系統(tǒng),其特征在于,所述中心硬件設(shè)備存儲(chǔ)信息,用于判斷哪些節(jié)點(diǎn)或處理器存儲(chǔ)了每一個(gè)所述節(jié)點(diǎn)的存儲(chǔ)器中的一個(gè)或多個(gè)標(biāo)識(shí)的數(shù)據(jù)的副本。
5.根據(jù)權(quán)利要求2所述多處理器系統(tǒng),其特征在于,所述中心硬件設(shè)備將被請(qǐng)求的數(shù)據(jù)與節(jié)點(diǎn)中所存儲(chǔ)的數(shù)據(jù)的位置和狀態(tài)進(jìn)行比較,將被請(qǐng)求的數(shù)據(jù)定向到發(fā)出請(qǐng)求的節(jié)點(diǎn),并向所述設(shè)備為其存儲(chǔ)了數(shù)據(jù)的位置的其他節(jié)點(diǎn)發(fā)送需要其他數(shù)據(jù)的請(qǐng)求。
6.根據(jù)權(quán)利要求5所述多處理器系統(tǒng),其特征在于,所述中心硬件設(shè)備包括可操作地連接到節(jié)點(diǎn)的調(diào)度緩沖區(qū),并在向目標(biāo)節(jié)點(diǎn)傳送數(shù)據(jù)的同時(shí),向其他節(jié)點(diǎn)發(fā)出需要與標(biāo)識(shí)的數(shù)據(jù)的狀態(tài)相關(guān)的信息的請(qǐng)求。
7.根據(jù)權(quán)利要求5所述多處理器系統(tǒng),其特征在于,所述互連通信通道包括第一通道,用于存儲(chǔ)節(jié)點(diǎn)中的數(shù)據(jù)的位置和狀態(tài),第二通道,用于傳送由所述目標(biāo)節(jié)點(diǎn)所請(qǐng)求的數(shù)據(jù)。
8.一種在多處理器系統(tǒng)中維護(hù)高速緩存一致性的方法,所述多處理器系統(tǒng)具有由互連的通信通道(70-72)連接的多個(gè)節(jié)點(diǎn)(58),能夠存儲(chǔ)有關(guān)系統(tǒng)內(nèi)的數(shù)據(jù)的位置和狀態(tài)的信息,每一個(gè)節(jié)點(diǎn)具有至少一個(gè)高速緩存,節(jié)點(diǎn)本地的存儲(chǔ)設(shè)備,以及至少一個(gè)處理器設(shè)備,所述存儲(chǔ)器和處理器設(shè)備連接在一起以構(gòu)成完整的子系統(tǒng),每一個(gè)節(jié)點(diǎn)內(nèi)的處理器設(shè)備能夠從本地存儲(chǔ)設(shè)備、本地高速緩存或從非本地存儲(chǔ)設(shè)備或非本地高速緩存通過互連的通信通道訪問數(shù)據(jù),其特征在于,所述通信通道包括第一通道(70)和第二通信通道(72),所述第一通道傳送節(jié)點(diǎn)內(nèi)的數(shù)據(jù)的狀態(tài)和位置,所述第二通信通道在各個(gè)節(jié)點(diǎn)之間傳送數(shù)據(jù),該方法包括在所述第一通道中存儲(chǔ)有關(guān)數(shù)據(jù)的狀態(tài)(102)的信息;所述第一通道響應(yīng)發(fā)出請(qǐng)求的節(jié)點(diǎn)所發(fā)出的對(duì)數(shù)據(jù)的請(qǐng)求,檢查所述存儲(chǔ)信息以判斷被請(qǐng)求的那部分?jǐn)?shù)據(jù)的最當(dāng)前副本的位置;所述第一通道指示所述第二通道將所述數(shù)據(jù)的所述最當(dāng)前副本轉(zhuǎn)發(fā)到發(fā)出請(qǐng)求的節(jié)點(diǎn);以及所述第二通道檢索被請(qǐng)求的那部分?jǐn)?shù)據(jù)的所述當(dāng)前副本,并將所述數(shù)據(jù)定向到目標(biāo)節(jié)點(diǎn)。
9.根據(jù)權(quán)利要求8所述方法,其特征在于,所述第一通道響應(yīng)發(fā)出請(qǐng)求的節(jié)點(diǎn)所發(fā)出的對(duì)數(shù)據(jù)的請(qǐng)求,檢查所述存儲(chǔ)信息以判斷被請(qǐng)求的那部分?jǐn)?shù)據(jù)的最當(dāng)前副本的位置的步驟包括在所述第一通信通道中存儲(chǔ)有關(guān)每一個(gè)節(jié)點(diǎn)中的數(shù)據(jù)的狀態(tài)的信息;在從節(jié)點(diǎn)請(qǐng)求數(shù)據(jù)時(shí),通過讀取所述存儲(chǔ)信息并判斷被定義為所述存儲(chǔ)數(shù)據(jù)的最當(dāng)前副本的所希望的狀態(tài),來檢查每一個(gè)節(jié)點(diǎn)中存儲(chǔ)的被請(qǐng)求的數(shù)據(jù)的狀態(tài)。
全文摘要
一種用于提供多處理器系統(tǒng)中的高速緩存一致性的方法和設(shè)備,所述多處理器系統(tǒng)被配置為兩個(gè)或多個(gè)具有本地存儲(chǔ)器的節(jié)點(diǎn)(58),以及將所有節(jié)點(diǎn)互相連接的標(biāo)記和地址縱橫開關(guān)系統(tǒng)(70)和數(shù)據(jù)縱橫開關(guān)系統(tǒng)(72)。本發(fā)明適用于多處理器計(jì)算機(jī)系統(tǒng),所述多處理器計(jì)算機(jī)系統(tǒng)利用在一個(gè)以上節(jié)點(diǎn)分布的系統(tǒng)存儲(chǔ)器并窺探利用節(jié)點(diǎn)本地存儲(chǔ)器的每一節(jié)點(diǎn)中的數(shù)據(jù)狀態(tài)。使用全局窺探來提供數(shù)據(jù)標(biāo)記的單一的序列化點(diǎn)。中心縱橫開關(guān)控制器同時(shí)檢查所有節(jié)點(diǎn)的給定地址線的高速緩存狀態(tài)標(biāo)記,并向正在請(qǐng)求數(shù)據(jù)的節(jié)點(diǎn)發(fā)出適當(dāng)回復(fù),同時(shí)向系統(tǒng)中的任何其他節(jié)點(diǎn)生成其他數(shù)據(jù)請(qǐng)求,以便維護(hù)高速緩存一致性并提供被請(qǐng)求的數(shù)據(jù)。系統(tǒng)通過將每一個(gè)節(jié)點(diǎn)的本地存儲(chǔ)器劃分為本地和遠(yuǎn)程類別來利用每一個(gè)節(jié)點(diǎn)的本地存儲(chǔ)器,所述類別對(duì)于任何給定的高速緩存線是互相排斥的。本發(fā)明為每一個(gè)節(jié)點(diǎn)提供了三級(jí)遠(yuǎn)程高速緩存支持。
文檔編號(hào)G06F13/00GK1620651SQ03802570
公開日2005年5月25日 申請(qǐng)日期2003年1月9日 優(yōu)先權(quán)日2002年1月9日
發(fā)明者托馬斯·B·伯格, 布魯斯·M·吉爾伯特, 托馬斯·D·洛維特 申請(qǐng)人:國際商業(yè)機(jī)器公司
網(wǎng)友詢問留言 已有0條留言
  • 還沒有人留言評(píng)論。精彩留言會(huì)獲得點(diǎn)贊!
1