專利名稱:支持一致總線上改進(jìn)突發(fā)傳輸?shù)姆椒?br>
技術(shù)領(lǐng)域:
本發(fā)明一般性地涉及多處理器結(jié)構(gòu)領(lǐng)域,尤其涉及連接微處理器的一致總線(coherent bus)上的數(shù)據(jù)傳輸。
背景技術(shù):
以前通過將CPU加入到公共總線來提供額外的處理能力而進(jìn)行的努力導(dǎo)致了CPU之間被稱為“非一致不對(duì)稱多處理(non-coherentasymmetrical multiprocessing)”的簡(jiǎn)單主從關(guān)系。盡管這個(gè)結(jié)構(gòu)簡(jiǎn)單,但是因?yàn)樘幚砥髦g任務(wù)分布不良,很快便達(dá)到“過早”的瓶頸。在軟件和硬件方面都會(huì)出現(xiàn)結(jié)構(gòu)性限制。早期的操作系統(tǒng)(OS)軟件既不能在多處理器(MP)系統(tǒng)中運(yùn)行,也不能充分利用業(yè)已增強(qiáng)的處理能力。
此外,大多數(shù)I/O驅(qū)動(dòng)器是“單線程的”,這將其運(yùn)行限制于單個(gè)專用I/O處理器。因?yàn)椤胺且恢虏粚?duì)稱硬件”通常不允許所有處理器訪問所有的系統(tǒng)資源,所以最初單線程不是一個(gè)主要的問題。一般來說,非一致不對(duì)稱硬件將單個(gè)處理器專用于I/O功能。當(dāng)它達(dá)到了性能極限時(shí),這種單I/O處理器性能能夠并且經(jīng)常成為系統(tǒng)的瓶頸。非一致不對(duì)稱硬件和單線程軟件都對(duì)系統(tǒng)性能造成障礙。因此,由于加入處理器并不能使受到眾多處理器中一個(gè)處理器的性能的限制的系統(tǒng)得到益處,所以這種非一致不對(duì)稱機(jī)構(gòu)表現(xiàn)出有限的可擴(kuò)展性。
解決這種瓶頸的方法是對(duì)硬件和軟件重新進(jìn)行設(shè)計(jì),這導(dǎo)致能夠應(yīng)付多線程軟件的現(xiàn)今的對(duì)稱多處理器(SMP)的產(chǎn)生?!癝MP”是其中所有處理器相同并且所有資源,特別是所有存儲(chǔ)器、I/O空間和中斷都可以同等進(jìn)行訪問的系統(tǒng)。雖然SMP硬件的對(duì)稱性消除了任何結(jié)構(gòu)上的障礙,但是軟件仍然必須有效地在處理器之間對(duì)任務(wù)進(jìn)行劃分。
為了性能上的原因,大多數(shù)多處理器系統(tǒng)使用高速緩存來減少訪問共享資源的等待時(shí)間。因?yàn)楦咚倬彺媸潜镜財(cái)?shù)據(jù)的復(fù)本,在標(biāo)準(zhǔn)的實(shí)際應(yīng)用中使用硬件一致性協(xié)議,來保持這些高速緩存中數(shù)據(jù)的一致性。幾種多處理器系統(tǒng)提供雙總線結(jié)構(gòu)以提供與I/O資源的通信和保持一致性。保持一致性所使用的總線是“MP總線”。不管您是否選擇多總線結(jié)構(gòu),您必須為了性能而優(yōu)化這種接口。當(dāng)談及性能和總線時(shí),最重要的詞是“一致性”。在任何多處理器中,一致性可以具有多種形式。例如,SMP能夠針對(duì)高速緩存狀態(tài)的每種變化在MP總線上傳輸一致性信息。高速緩存的狀態(tài)維護(hù)基于稱為高速緩存線的數(shù)據(jù)塊。高速緩存線緩沖器提供許多好處。第一,它們減少了針對(duì)傳輸?shù)拿總€(gè)字節(jié)的一致性信息要求。第二,它們?cè)试S數(shù)據(jù)以突發(fā)(burst)的形式在通常數(shù)據(jù)寬度較小的總線上傳輸。第三,它們通過減少高速緩存中每個(gè)字節(jié)所需要的狀態(tài)信息(即高速緩存標(biāo)記)的量,從而減少了緩存結(jié)構(gòu)的規(guī)模。在MP總線上,單個(gè)命令所請(qǐng)求的數(shù)據(jù)量限于高速緩存線。需要用這種限制保持系統(tǒng)高速緩存之間的一致性。
本發(fā)明既可應(yīng)用到I/O總線上,又可應(yīng)用到一致MP總線(即保持處理器之間一致性的總線)上。上面描述的發(fā)明并不意味著將這個(gè)構(gòu)思限于SMP。所有MP類型都可以使用這種或類似的取得一致性的手段。
高速緩存線緩沖器允許在總線橋上傳送完整的高速緩存線,這將產(chǎn)生兩個(gè)問題在I/O設(shè)備只需要傳輸幾個(gè)字節(jié)數(shù)據(jù)的情況下應(yīng)如何處理。第二,在傳送在高速緩存線的中間開始或結(jié)束的情況下應(yīng)如何處理?您可以以兩個(gè)方式之一解決這些問題某些處理器的結(jié)構(gòu)只允許傳送整個(gè)高速緩存線。在這種情況下,您除了讓總線橋執(zhí)行占有讀出周期(read-for-ownership cycle)并且然后將新數(shù)據(jù)寫到高速緩存線中之外,沒有任何選擇的余地。當(dāng)I/O設(shè)備繼續(xù)處理到下一個(gè)高速緩存線時(shí),該緩沖器必須逐出第一條線,并且讀入后繼的線。這種方法浪費(fèi)了寶貴的總線帶寬,因?yàn)榘殡S著每個(gè)突發(fā)寫入,進(jìn)行“無(wú)價(jià)值”的高速緩存線的讀出,而當(dāng)I/O設(shè)備正更新整條高速緩存線時(shí),這樣做是完全沒有必要的。
此外,高速緩存線讀取使得系統(tǒng)中的每個(gè)處理器對(duì)它的高速緩存器進(jìn)行窺探(snoop),如果修改該高速緩存線,則潛在地降低了性能。即使在執(zhí)行帶殺死寫入指令(write-with-kill instruction)之后,仍然要進(jìn)行窺探以使這條線失效。如果對(duì)該高速緩存線進(jìn)行修改,該高速緩存必須在允許總線橋繼續(xù)讀取之前將修改過的數(shù)據(jù)寫入存儲(chǔ)器中。當(dāng)來自總線橋的新數(shù)據(jù)將改寫整條高速緩存線時(shí),這些讀取和寫入操作是不必要的?,F(xiàn)有技術(shù)中的MP總線通常通過支持“帶殺死寫入”和“意在修改的讀取(read with intent to modify)”操作來避免這種不必要的讀出和寫入。這種“帶殺死寫入”操作通知高速緩存整個(gè)高速緩存線需要寫入,因此即使這條線含有數(shù)據(jù),也允許高速緩存線的高速緩存直接無(wú)效。接著總線橋可以進(jìn)行部分字傳輸,直至遇到高速緩存線邊界。接著總線橋可以突發(fā)寫入這些高速緩存線,其中不執(zhí)行不必要的標(biāo)記讀取和寫入。因此希望能夠通過突發(fā)命令擴(kuò)充所有高速緩存線請(qǐng)求的一致性動(dòng)作。另一目的包括分離突發(fā)命令以允許對(duì)高速緩存進(jìn)行窺探。最后,最好提供這樣的高速緩存設(shè)計(jì),其中對(duì)處理器提供有關(guān)請(qǐng)求多條高速緩存線的指示。
發(fā)明內(nèi)容
在多處理器系統(tǒng)中,利用至少兩個(gè)處理器、高速緩存一致性控制器和地址集中器(address concentrator),來改進(jìn)數(shù)據(jù)傳輸?shù)囊恢滦?。由主處理器或高速緩存一致性控制器發(fā)出的“存儲(chǔ)器事務(wù)請(qǐng)求命令”傳給初始處理器。接著,高速緩存一致性控制器內(nèi)的邏輯確定利用高速總線來自相繼的處理器或高速緩存一致性控制器的下一存儲(chǔ)器事務(wù)請(qǐng)求的優(yōu)先級(jí)接收狀態(tài)。利用可擴(kuò)展窺探響應(yīng)和累積窺探響應(yīng),為利用突發(fā)命令的所有高速緩存線請(qǐng)求開發(fā)一致性動(dòng)作。來自主處理器或高速緩存一致性控制器的事務(wù)請(qǐng)求在單個(gè)全局串行化設(shè)備中排隊(duì),該設(shè)備也用作多高速緩存線請(qǐng)求指示器(indicator)。
為了更完整地理解本發(fā)明和其優(yōu)點(diǎn),現(xiàn)在將參照附圖對(duì)本發(fā)明進(jìn)行下列詳細(xì)地描述,其中圖1圖解了包括兩個(gè)處理器的通常多處理器系統(tǒng)的示例方框圖;圖1A圖解了包括四個(gè)處理器的通常多處理器系統(tǒng)的示例方框圖;圖2圖解了加載一致性協(xié)議的示例實(shí)現(xiàn);圖3圖解了存儲(chǔ)一致性協(xié)議的示例實(shí)現(xiàn);圖4圖解了修改過的示例突發(fā)加載一致性協(xié)議;圖5圖解了已修改的示例突發(fā)存儲(chǔ)一致性協(xié)議。
具體實(shí)施例方式
在下面的討論中,為了徹底理解本發(fā)明,提出了大量特定細(xì)節(jié)。然而,本領(lǐng)域里的技術(shù)人員應(yīng)當(dāng)明白,不需這樣的特定細(xì)節(jié)也可實(shí)施本發(fā)明。在其它的例子中,為了不使本發(fā)明因不必要的細(xì)節(jié)而變得模糊不清,已經(jīng)以示意或方框圖的形式圖解了已知的部分。此外,涉及網(wǎng)絡(luò)通信、電磁信號(hào)技術(shù)等等的細(xì)節(jié),由于大部分對(duì)于完全理解本發(fā)明是不是必要的,并且認(rèn)為這些細(xì)節(jié)已經(jīng)被相關(guān)領(lǐng)域普通技術(shù)人員所理解,因而已經(jīng)被省略。
進(jìn)一步應(yīng)當(dāng)注意,除非專門指明,這里描述的所有功能可以以硬件、軟件或其結(jié)合的方式來實(shí)現(xiàn)。然而在一個(gè)實(shí)施例中,除非專門指明,可由處理器(例如計(jì)算機(jī)或電子數(shù)據(jù)處理器)根據(jù)代碼(例如計(jì)算機(jī)程序、軟件和/或被編碼以執(zhí)行這樣的功能的集成電路)來執(zhí)行這些功能。在本發(fā)明的說明書中,使用同樣的參考符號(hào)表示終端、信號(hào)線和它們相應(yīng)的信號(hào)。
現(xiàn)在參照?qǐng)D1,所公布的是由兩個(gè)處理器構(gòu)成的普通多處理器系統(tǒng)的示例方框圖。這些類型的多處理器系統(tǒng)也被稱為MIMD(多指令多數(shù)據(jù))流系統(tǒng)。在MIMD系統(tǒng)中,有一組n個(gè)處理器同時(shí)對(duì)不同的數(shù)據(jù)集執(zhí)行不同的指令序列。而且,根據(jù)Enslow(Enslow P.H.,Multiprocessor Organization-A Survey.Computing Surveys Vol.9,No.1,pp.103-129.March,1977),存在兩個(gè)一般類型的MIMD處理系統(tǒng)。第一個(gè)亞型(圖1是其示例)是緊耦合多處理器,其含有兩個(gè)或更多個(gè)具有近似相當(dāng)?shù)哪芰Φ奶幚砥?。所有處理器共享訪問公共存儲(chǔ)器。(這并不排除每個(gè)或某些處理器的本地存儲(chǔ)器的存在。)所有處理器共享訪問I/O通道、控制單元和設(shè)備。(這并不排除某些本地I/O接口和設(shè)備的存在。)整個(gè)系統(tǒng)受一個(gè)操作系統(tǒng)的控制。這種亞型稱為SMP(對(duì)稱多處理器)系統(tǒng)。第二種亞型稱為“松耦合多處理器”。在這種亞型中,由于一般目的的多樣性,可以動(dòng)態(tài)地將物理和邏輯資源分配給特定任務(wù)。上面的資源是物理分布的,并通過通信網(wǎng)絡(luò)進(jìn)行交互。高層操作系統(tǒng)(OS)將分布式部件的控制統(tǒng)一化和集成化,盡管各個(gè)處理器可以有自己的本地OS。系統(tǒng)透明度允許僅憑名字請(qǐng)求服務(wù),而不必去標(biāo)識(shí)服務(wù)資源,并且物理和邏輯資源的操作和交互以協(xié)同自治為特征。盡管資源之間的協(xié)同是預(yù)先設(shè)計(jì)的,然而自治的概念允許服務(wù)資源在忙于處理另一個(gè)任務(wù)的情況下拒絕服務(wù)請(qǐng)求,或延遲這個(gè)請(qǐng)求。最后,系統(tǒng)內(nèi)不存在控制層次。
“松耦合多處理器”系統(tǒng)不允許共享例如系統(tǒng)存儲(chǔ)器的資源。這些類型的系統(tǒng)中的處理器通常利用高速網(wǎng)絡(luò)進(jìn)行連接。這些系統(tǒng)通常不支持處理器之間的一致性。所有的通信通常利用消息傳輸協(xié)議進(jìn)行處理。
目前,緊耦合SMP被認(rèn)為是代表MP系統(tǒng)的技術(shù)發(fā)展水平,因?yàn)槌渌匾匦灾?,它通過共享全局存儲(chǔ)器進(jìn)行通信。這種共享全局存儲(chǔ)器減少了設(shè)備數(shù)目、響應(yīng)時(shí)間和其它設(shè)計(jì)問題。
緊耦合SMP能夠很好地利用高速緩存的存儲(chǔ)器。高速緩存的存儲(chǔ)器也會(huì)減輕大量使用的系統(tǒng)總線的沉重負(fù)擔(dān);當(dāng)該高速緩存含有所請(qǐng)求的數(shù)據(jù)時(shí),降低了整個(gè)系統(tǒng)的全局及本地的響應(yīng)時(shí)間。
為了解決第一個(gè)問題,命令事務(wù)擴(kuò)展到允許請(qǐng)求多于一個(gè)的高速緩存線(即突發(fā)命令),窺探響應(yīng)和累積窺探響應(yīng)事務(wù)進(jìn)行擴(kuò)展以通過突發(fā)命令為所有高速緩存線請(qǐng)求提供一致性動(dòng)作。這種命令的一個(gè)實(shí)施例是將請(qǐng)求大小加大或擴(kuò)展以支持多高速緩存線。其它的實(shí)施例可以包含用于標(biāo)識(shí)地址請(qǐng)求的附加字段,如果這些地址請(qǐng)求不是順序的話。這種響應(yīng)的一個(gè)實(shí)施例是在響應(yīng)事務(wù)內(nèi)增加字段。而且,這種事務(wù)不需要在低速I/O和MP總線上的傳送。
在今天流行的高速總線中,事務(wù)被格式化成包。通常這些包含事務(wù)類型(例如命令、響應(yīng)、數(shù)據(jù))、檢錯(cuò)字段(例如CRC)以及未使用或保留的字段。未使用和保留的字段是有必要的,因?yàn)榘ǔ>哂凶钚¢L(zhǎng)度。因此這些包通過窄接口傳輸?shù)狡渌O(shè)備。這種示例實(shí)現(xiàn)將包中的信息擴(kuò)展以支持一致突發(fā)傳輸。這些未經(jīng)和保留字段有助于限制總線上發(fā)送的額外信息量。
為了解決第二個(gè)問題,多處理器系統(tǒng)中每個(gè)處理器的內(nèi)部總線接口將突發(fā)命令分離為內(nèi)部總線上的多個(gè)高速緩存線請(qǐng)求。這種分離允許對(duì)每個(gè)高速緩存進(jìn)行窺探??蛇x地,內(nèi)部總線和高速緩存能夠接受修改以支持突發(fā)請(qǐng)求的直接窺探,而不用分離每條高速緩存線所需的命令。在每個(gè)處理器總線接口處,每條所請(qǐng)求的高速緩存線的窺探響應(yīng)被合并為突發(fā)命令的單個(gè)“處理器總線窺探響應(yīng)”。可選地,內(nèi)部總線和高速緩存器接受修改以支持多條高速緩存線的單個(gè)響應(yīng)。
最后,收集功能被設(shè)計(jì)成將分離的高速緩存線命令收集為MP總線上的單個(gè)突發(fā)命令。突發(fā)命令向系統(tǒng)提供有關(guān)請(qǐng)求多于一條的高速緩存線的指示。在這個(gè)例子中,高速緩存針對(duì)每條請(qǐng)求的線發(fā)出單個(gè)突發(fā)命令。通常的處理器設(shè)計(jì)(包含高速緩存)也會(huì)請(qǐng)求(即預(yù)獲取)附加的線,以試圖減少未來高速緩存命中失誤的等待時(shí)間。收集功能利用該請(qǐng)求,且附加的重要特性在于在收集過程期間與定時(shí)序列密切匹配,因此等待時(shí)間得到充分的改善。另一個(gè)實(shí)施例是直接從處理器的高速緩存發(fā)出突發(fā)命令。這樣便不需要分立的收集功能,因此大大簡(jiǎn)化了定時(shí)問題。此外,直接支持突發(fā)命令允許突發(fā)命令與處理器的預(yù)獲取特性的緊密耦合。
因此,系統(tǒng)100的優(yōu)選實(shí)施例的主要目的是通過減少一致性傳輸量來改善緊耦合同步或異步多處理器系統(tǒng)的性能。代表性系統(tǒng)100的進(jìn)一步目的是支持多于一條高速緩存線的傳輸?shù)囊恢滦?。示例系統(tǒng)100的第三個(gè)目的是為一致處理器之間的突發(fā)傳輸提供附加支持。
單高速緩存線突發(fā)的處理在文件進(jìn)行了詳盡的說明。大多數(shù)總線協(xié)議支持各種命令來限制總線傳輸量(例如,“寫w/殺死”避免對(duì)會(huì)被請(qǐng)求重寫的修改高速緩存線進(jìn)行不必要的寫入)。然而,大部分總線只對(duì)單個(gè)高速緩存線操作。優(yōu)選實(shí)施例的主要目的是支持I/O和MP總線上的傳輸,以允許請(qǐng)求多條高速緩存線。因?yàn)榭偩€上的一致性傳輸通常是性能和響應(yīng)時(shí)間的瓶頸,請(qǐng)求多條高速緩存線的一致性的方法將通過減少一致性傳輸量來改善系統(tǒng)總的性能??偠灾?,這些方法明顯節(jié)省功耗并減少處理瓶頸。
當(dāng)CPU把地址放在總線上時(shí),高速緩存控制器檢查那個(gè)地址的數(shù)據(jù)是否在高速緩存中。如果它位于高速緩存中(這被稱為“命中”),該高速緩存將數(shù)據(jù)快速地回送給CPU。如果該數(shù)據(jù)不在高速緩存中(稱為命中失誤),該高速緩存必須交換出某些可能不會(huì)使用的數(shù)據(jù)以從主存儲(chǔ)器換入所請(qǐng)求的數(shù)據(jù)。
考慮到程序的空間行為,一個(gè)邏輯的解決方案是從下層存儲(chǔ)器中裝載數(shù)據(jù)塊來響應(yīng)命中失誤,從而改善將來訪問的響應(yīng)時(shí)間。這種技術(shù)被稱為預(yù)獲取技術(shù)。
分布式系統(tǒng)的部件處理器之間的數(shù)據(jù)交換所使用的接口被分成總線接口和專用于連接兩個(gè)或更多個(gè)處理器的點(diǎn)對(duì)點(diǎn)接口。總線用串行或并行接口來實(shí)現(xiàn)。總線具有下列性質(zhì)。第一,總線是在幾個(gè)主設(shè)備之間共享的、需要有訪問協(xié)議的唯一資源。第二,必須從總線中解碼出消息的目的地;總線上的每個(gè)處理器能夠彼此進(jìn)行通信,并能夠一次向幾個(gè)處理器進(jìn)行廣播,最后,總線的數(shù)據(jù)帶寬可以由N個(gè)處理器共享。
總線與順序處理器類似的方面在于它本身是活躍設(shè)備(activedevice)。相比之下,對(duì)于點(diǎn)對(duì)點(diǎn)接口,不需要訪問協(xié)議。在處理器之間不共享數(shù)據(jù)帶寬。通過用附加的接口增加新的處理器節(jié)點(diǎn)來擴(kuò)展數(shù)據(jù)帶寬。在大的網(wǎng)絡(luò)之中,并不是每一對(duì)處理器都能夠直接地鏈接在一起。不直接鏈接的處理器之間傳輸?shù)男畔⒈仨毻ㄟ^中間節(jié)點(diǎn)或交換機(jī)傳遞。
在圖1中,示例的系統(tǒng)100包括處理器P0 110,其通過存儲(chǔ)器總線MIF 1與存儲(chǔ)器子系統(tǒng)MEM 160相連,并且通過輸入輸出接口(IOIF 1)和南橋SB 145,即輸入輸出子系統(tǒng)相連。輸入輸出子系統(tǒng)是為執(zhí)行板上外設(shè)的特定功能而設(shè)計(jì)的一個(gè)或多個(gè)集成電路。一種輸入輸出子系統(tǒng)被稱為南橋。系統(tǒng)存儲(chǔ)器100直接與處理器相連。系統(tǒng)100進(jìn)一步包括第二處理器P1 120,其通過存儲(chǔ)器總線MIF 2與存儲(chǔ)器子系統(tǒng)MEM 165相連,并且通過輸入輸出接口IOIF 2與系統(tǒng)總線SB 150相連。即使處理器均物理連接分立的存儲(chǔ)器子系統(tǒng),兩個(gè)存儲(chǔ)器子系統(tǒng)都作為單一連續(xù)邏輯系統(tǒng)存儲(chǔ)器進(jìn)行工作。(這并不排除與兩個(gè)處理器連接的單物理存儲(chǔ)器的使用)。處理器P0 110和P1 120通過統(tǒng)一處理器總線μPB1進(jìn)一步彼此相連。P0 110和P1 120與物理上連接到P1 120的子系統(tǒng)之間的通信,以及P1 120和P0 110與物理上連接到P0 110的子系統(tǒng)之間的通信通過統(tǒng)一處理器總線μPB1進(jìn)行。μPB1是在系統(tǒng)100中使用的一致處理器總線,用于保持P0 110和P1 120中的高速緩存之間的一致性,并在處理器之間,以及處理器與物理連接到其它處理器的子系統(tǒng)之間傳輸數(shù)據(jù)。P1 120內(nèi)所含的是AC0 181進(jìn)程,其為了進(jìn)行合適的一致性操作而將來自所有處理器的命令串行化。串行化的命令接著作為反射命令(reflected command)向系統(tǒng)的所有處理器和設(shè)備廣播。反射命令被系統(tǒng)中所有的高速緩存窺探并被所有的設(shè)備解碼。
參照?qǐng)D1A,所公布的是包括四個(gè)處理器的多處理器系統(tǒng)200的示例方框圖。每個(gè)處理器P0 210至P3 216基本上與圖1的配置相同,其具有自己的控制單元,CU 160至CU 266以及系統(tǒng)總線。處理器P0210至P3 216通過存儲(chǔ)器總線MIF1至MIF4與存儲(chǔ)器子系統(tǒng)MEM260至MEM 266相連,并進(jìn)一步與南橋(SB)245至SB 260相連。因此,通過輸入輸出接口IOIF 1至IOIF 4,處理器與輸入輸出子系統(tǒng)相連。
所包含的處理器P0 110至P3 216進(jìn)一步通過各個(gè)統(tǒng)一處理器總線μPB0至μPB3與交換機(jī)SW 280相連。每個(gè)處理器通過專用的處理器總線(μPB1至μPB4)傳輸標(biāo)記。然而,不同于圖1中的直接連接,圖1A中的交換機(jī)SW 280以有序方式從每個(gè)活躍總線傳送標(biāo)記流。需要這些μPB之間通過交換機(jī)SW 280的通信以保持每個(gè)單個(gè)處理器中高速緩存之間的一致性,并用于在處理器與在物理連接到其它處理器的子系統(tǒng)之間傳輸數(shù)據(jù)。含在SW 280之內(nèi)的是AC0 282處理設(shè)備,其為了合適的一致性操作而將來自所有處理器的命令串行化。AC0282執(zhí)行的功能與圖1中AC0 181相同。
圖2和3是現(xiàn)有技術(shù)多處理器系統(tǒng)中維持一致性所使用的MP總線協(xié)議的示例實(shí)現(xiàn)。更具體地,圖2是加載(即讀出)事務(wù)的示例實(shí)現(xiàn),圖3是存儲(chǔ)事務(wù)的示例實(shí)現(xiàn)。這些事務(wù)通常是各種設(shè)備或進(jìn)程的高速緩存線存儲(chǔ)器訪問請(qǐng)求。存儲(chǔ)器訪問請(qǐng)求通常是操作的結(jié)果,它不能使用本地高速緩存層次來服務(wù)。這些事務(wù)通常被分成三個(gè)階段命令、窺探和數(shù)據(jù)。命令階段是信息傳輸?shù)恼?qǐng)求。分立的命令類型區(qū)別了加載和存儲(chǔ)請(qǐng)求。通常,MP總線具有各種形式的加載和存儲(chǔ)請(qǐng)求,以及這里沒有描述的其它命令類型。所有的MP總線命令一般遵循與圖2和3所概括的協(xié)議相同的協(xié)議。命令階段由兩個(gè)命令事務(wù)構(gòu)成。第一個(gè)事務(wù)是從請(qǐng)求者到AC0進(jìn)程的命令。第二個(gè)命令是來自AC0進(jìn)程的反射命令。AC0通過將從所有請(qǐng)求者接收的命令串行化來生成反射命令。窺探階段用于保持一致性,而數(shù)據(jù)階段用于命令所請(qǐng)求的數(shù)據(jù)的傳輸。窺探階段由兩個(gè)響應(yīng)事務(wù)構(gòu)成。第一個(gè)事務(wù)是反射命令的高速緩存窺探的結(jié)果。每個(gè)高速緩存發(fā)送一個(gè)窺探響應(yīng)。窺探響應(yīng)被累積。累積的窺探響應(yīng)向所有窺探者廣播。并非所有的事務(wù)都需要數(shù)據(jù)階段。這樣的事務(wù)的例子是由直接連接到請(qǐng)求方處理器的存儲(chǔ)器子系統(tǒng)服務(wù)的存儲(chǔ)器請(qǐng)求。對(duì)于這個(gè)事務(wù),一致性需要命令和窺探階段。在此情況下數(shù)據(jù)階段是不需要的,因?yàn)槔肕IF將數(shù)據(jù)直接傳輸給處理器。能夠由主設(shè)備或高速緩存一致性控制器(即窺探器)開始事務(wù),并且該事務(wù)導(dǎo)致一系列的主和從處理器之間的包傳輸。
參照?qǐng)D2,圖解的是兩處理器系統(tǒng)中從處理器P0 201發(fā)起的MP總線加載事務(wù)的示例實(shí)現(xiàn)。MP總線加載事務(wù)的基本順序如下。
在命令階段205中,發(fā)起者生成命令“CMD+tag”。這個(gè)標(biāo)記是傳輸標(biāo)記,是每個(gè)未完成命令的唯一標(biāo)識(shí)符。標(biāo)記進(jìn)一步用于使窺探響應(yīng)和加載數(shù)據(jù)與命令(即加載請(qǐng)求)相關(guān),即,作為確定其狀態(tài)的參考數(shù)據(jù)。該標(biāo)記的另一個(gè)目的是向請(qǐng)求者傳送加載數(shù)據(jù)。當(dāng)允許窺探響應(yīng)以不同于反射命令的順序返回時(shí),使用窺探響應(yīng)上的標(biāo)記。如果窺探響應(yīng)按照反射命令的順序,可以隱含此標(biāo)記。
接著,該命令被送到串行化點(diǎn),即利用MP總線命令傳輸?shù)腁C0250。每個(gè)代表性的系統(tǒng)100僅有一個(gè)全局串行化點(diǎn)。AC0 250確定處理器P0 201的請(qǐng)求和來自其它主設(shè)備的請(qǐng)求進(jìn)入執(zhí)行級(jí)段的順序。接著,該命令通過AC0 250進(jìn)程所確定的順序廣播到系統(tǒng)中的所有實(shí)體。這些實(shí)體包含總線主處理器、高速緩存控制器、存儲(chǔ)控制器和總線橋。
從單串行化點(diǎn)AC0 250廣播命令階段205“反射CMD+tag”確保所有的實(shí)體以相同順序接收這些命令。“反射CMD+tag”是由請(qǐng)求者生成的CMD的副本。每個(gè)實(shí)體利用窺探階段225的“窺探響應(yīng)”事務(wù)按反射命令(CMD)順序向累積窺探響應(yīng)功能240返回窺探應(yīng)答。接著,AC0 250將所有與一反射命令相對(duì)應(yīng)的窺探應(yīng)答合并成單個(gè)累積窺探響應(yīng)。
在接收反射命令的所有窺探應(yīng)答并將其合并為單個(gè)累積窺探響應(yīng)之后,AC0 250利用“累積窺探響應(yīng)”事務(wù)向所有的實(shí)體廣播已聚集的響應(yīng)。如果“累積窺探響應(yīng)”指示事務(wù)成功,則發(fā)生所有永久高速緩存狀態(tài)轉(zhuǎn)變,并且在需要的情況下,在數(shù)據(jù)階段235期間進(jìn)行數(shù)據(jù)傳輸。該標(biāo)記由處理器P1 202附加到數(shù)據(jù)上。由P1 202(從處理器)將數(shù)據(jù)傳遞到請(qǐng)求者,在這種情形中請(qǐng)求者是P0 202。處理器P0 201使用用來將數(shù)據(jù)與原來的命令請(qǐng)求相關(guān)并將數(shù)據(jù)傳送到處理器P0 201中的正確實(shí)體的標(biāo)記。
存在由于資源沖突或與其它事務(wù)的沖突,使得事務(wù)不能成功地完成的情形。在這種情形中,所有實(shí)體接收的“累積窺探響應(yīng)”是“重試”。當(dāng)接收到“重試響應(yīng)”時(shí),發(fā)起者(或主處理器)負(fù)責(zé)重新發(fā)出事務(wù)。能夠利用相同或不同的事務(wù)類型重新發(fā)出事務(wù)。也能夠利用相同或不同的標(biāo)記重新發(fā)出命令。重試的事務(wù)是附加的事務(wù),其中不需要數(shù)據(jù)階段235。
參照?qǐng)D3,圖解的是從處理器P0 201發(fā)起的MP總線存儲(chǔ)事務(wù)的一個(gè)示例實(shí)現(xiàn)。MP總線存儲(chǔ)事務(wù)的基本順序與MP總線加載事務(wù)相同。對(duì)于存儲(chǔ)操作,在數(shù)據(jù)階段235期間,將數(shù)據(jù)傳遞給從處理器,在這種情形中從處理器是P1 202,而不是圖2中的請(qǐng)求者。
本領(lǐng)域的技術(shù)人員能夠從圖2和圖3中觀察到,為了維持一致性,對(duì)于所請(qǐng)求數(shù)據(jù)的每條高速緩存線在MP總線上的傳輸,來自處理器P0 201的每個(gè)請(qǐng)求需要四個(gè)包(命令、反射命令、窺探響應(yīng)和累積窺探響應(yīng))。因?yàn)镸P總線通常是多處理器系統(tǒng)中的性能瓶頸,所增加的一致性動(dòng)作只是加劇了瓶頸的形成。圖4和圖5公布了用于使與一致性相關(guān)的開銷最小的改進(jìn)MP總線協(xié)議的示例實(shí)現(xiàn)。MP總線協(xié)議與現(xiàn)有技術(shù)不同之處在于定義用于請(qǐng)求多條高速緩存線的傳輸?shù)母郊用?,和將“窺探響應(yīng)”和“組合窺探響應(yīng)”包擴(kuò)展為包含針對(duì)由命令(CMD)請(qǐng)求的所有高速緩存線的響應(yīng)。
參照?qǐng)D4,所公布的是用單命令請(qǐng)求多條高速緩存線的修改加載事務(wù)的示例實(shí)現(xiàn)。這個(gè)事務(wù)的名稱是“MP總線突發(fā)加載”事務(wù)。在圖4中,功能207用于檢測(cè)哪些高速緩存線可收集到突發(fā)類型命令中。簡(jiǎn)單的收集功能必須檢測(cè)請(qǐng)求順序高速緩存線的命令。利用MP總線命令傳輸將新的突發(fā)命令發(fā)送到AC0 250。象在現(xiàn)有技術(shù)中那樣,命令被AC0 250串行化,并且作為突發(fā)形式的反射命令向新命令分離功能209廣播。命令分離功能將突發(fā)形式的反射命令分成單個(gè)高速緩存線請(qǐng)求,且將那些請(qǐng)求傳送給處理器中的所有實(shí)體。象在現(xiàn)有技術(shù)中那樣,每個(gè)實(shí)體對(duì)該命令所請(qǐng)求的地址進(jìn)行窺探并向窺探響應(yīng)收集功能227返回響應(yīng)。P0 201中每個(gè)實(shí)體針對(duì)給定高速緩存線的窺探響應(yīng)由窺探響應(yīng)收集功能227累積。這種累積與圖2中現(xiàn)有技術(shù)的累積窺探響應(yīng)240所進(jìn)行的累積相同,然而,只是針對(duì)來自P0 201內(nèi)實(shí)體的響應(yīng)而進(jìn)行。接著,窺探響應(yīng)收集功能227將針對(duì)突發(fā)命令所請(qǐng)求的所有高速緩存線的響應(yīng)收集進(jìn)新的突發(fā)窺探響應(yīng)中。接著新的響應(yīng)被發(fā)送給“累積窺探響應(yīng)分離”功能228。接著突發(fā)累積窺探響應(yīng)與來自P1202中實(shí)體的響應(yīng)累積為新的突發(fā)累積窺探響應(yīng)。接著,新的響應(yīng)被發(fā)送到“累積窺探響應(yīng)分離”功能229。接著來自P0 201和P1 202的累積窺探響應(yīng)被功能塊228和229分離成單個(gè)累積窺探響應(yīng)。接著將各單個(gè)累積窺探響應(yīng)傳送給相關(guān)處理器中的所有實(shí)體。從這一點(diǎn)看來,數(shù)據(jù)傳輸與圖2中的相同。
參照?qǐng)D5,所公布的是用單個(gè)命令請(qǐng)求多條高速緩存線的修改存儲(chǔ)事務(wù)的示例實(shí)現(xiàn)。這種事務(wù)被稱為“MP總線突發(fā)存儲(chǔ)”事務(wù)。MP總線突發(fā)存儲(chǔ)事務(wù)的基本順序與MP總線突發(fā)加載事務(wù)相同。對(duì)于存儲(chǔ)操作,在數(shù)據(jù)階段235期間,數(shù)據(jù)被傳輸?shù)綇奶幚砥鳎谶@種情形從處理器是P1 202,而不是圖2所示的請(qǐng)求者如。
圖4和圖5中所公布的命令收集207、命令分離209、窺探響應(yīng)收集227和累積窺探響應(yīng)分離229功能減少了μPB上保持一致性所需要的傳輸?shù)臄?shù)目。例如,當(dāng)對(duì)兩條高速緩存線的突發(fā)進(jìn)行合計(jì)時(shí),可以將開銷由現(xiàn)有技術(shù)的四個(gè)事務(wù)減少到每條高速緩存線兩個(gè)事務(wù)。這些收集和分離功能可以獨(dú)立于系統(tǒng)高速緩存地實(shí)現(xiàn),或者可以進(jìn)行集成。此外,命令收集功能可以作為處理器的預(yù)獲取機(jī)制(為簡(jiǎn)潔起見預(yù)獲取沒有示出)的一部分,并且分離功能可以作為高速緩存的窺探機(jī)制的一部分(為簡(jiǎn)潔起見,窺探機(jī)制沒有示出)。
應(yīng)當(dāng)理解的是,本發(fā)明可以采取許多形式和實(shí)現(xiàn)。因此,在不偏離本發(fā)明實(shí)質(zhì)和范圍的前提下,可以對(duì)前述進(jìn)行各種修改。這里所概括的能力允許使用各種設(shè)計(jì)和編程模型。本公布不應(yīng)被理解成對(duì)任何特定設(shè)計(jì)和編程模型有所偏好,而是涉及這些設(shè)計(jì)和編程模型能夠構(gòu)建于其上的下層機(jī)制。
盡管通過參照其一定的顯著特征已經(jīng)對(duì)本發(fā)明進(jìn)行了描述,但是應(yīng)當(dāng)注意的是,所公布的特性本質(zhì)上是說明性的而不是限制性的,前述的公布意在涵蓋廣泛的變更、修改、改造和替代,并且在某些情況下,可以在不相應(yīng)使用其它特性的情況下使用本發(fā)明的某些特性。可以認(rèn)為,本領(lǐng)域的技術(shù)人員基于前面的說明能夠想到許多這樣的變化和修改。因此,應(yīng)當(dāng)理解,應(yīng)當(dāng)以寬泛并且與本發(fā)明的范圍相一致的方式來詮釋所附權(quán)利要求。
權(quán)利要求
1.一種多處理器系統(tǒng)中工作在高速緩存一致性控制器內(nèi)、用于改進(jìn)一致數(shù)據(jù)傳輸?shù)姆椒ǎ龆嗵幚砥飨到y(tǒng)包含連接到地址集中設(shè)備的至少兩個(gè)處理器和所述高速緩存一致性控制器,所述方法包括步驟從所述主處理器或所述高速緩存一致性控制器向所述多處理器中的第一處理器發(fā)出第一存儲(chǔ)器事務(wù)請(qǐng)求命令;在所述高速緩存一致性控制器內(nèi)確定通過高速總線來自相繼處理器或高速緩存一致性控制器的下一存儲(chǔ)器事務(wù)請(qǐng)求的優(yōu)先級(jí)接收狀態(tài);利用突發(fā)命令將窺探響應(yīng)和累積窺探響應(yīng)擴(kuò)展以為所有高速緩存線請(qǐng)求提供一致性動(dòng)作;以及從所述主處理器或所述控制器將所述事務(wù)請(qǐng)求傳送至單獨(dú)的全局串行化設(shè)備,所述串行化設(shè)備進(jìn)一步包括多高速緩存線請(qǐng)求指示器。
2.如權(quán)利要求1所述的方法,其中確定優(yōu)先級(jí)接收的優(yōu)先次序的步驟包括使存儲(chǔ)器事務(wù)請(qǐng)求與唯一標(biāo)識(shí)標(biāo)記相關(guān),所述標(biāo)記被傳遞給所述串行化設(shè)備,其中發(fā)出第一請(qǐng)求命令的步驟包含將第一命令和作為反射命令的后繼命令向多個(gè)設(shè)備廣播。
3.如權(quán)利要求1所述的方法,其中在一致處理器總線上發(fā)生所述突發(fā)操作,包括步驟將多個(gè)和順序的一致傳輸組合到所述處理器總線上的單個(gè)一致相繼突發(fā)操作中;以及確定突發(fā)操作的發(fā)生;對(duì)所述突發(fā)操作進(jìn)行定時(shí);對(duì)所述突發(fā)操作進(jìn)行窺探;集中所述窺探應(yīng)答的所有地址;以及將所述窺探應(yīng)答的聚集響應(yīng)向多個(gè)設(shè)備實(shí)體廣播。
4.如權(quán)利要求3所述的方法,其中所述確定所述突發(fā)操作的發(fā)生的步驟包括檢測(cè)有關(guān)請(qǐng)求多條高速緩存線的指示。
5.如權(quán)利要求3所述的方法,其中所述窺探所述突發(fā)操作的步驟包括將所述突發(fā)操作分離成總線上的多個(gè)高速緩存線請(qǐng)求。
6.如權(quán)利要求1所述的方法,其中所述窺探所述突發(fā)操作的步驟包括至少一條總線和至少一個(gè)高速緩存直接支持突發(fā)操作。
7.如權(quán)利要求6所述的方法,其中包括所述聚集突發(fā)操作的標(biāo)記總數(shù)導(dǎo)致一致性標(biāo)記傳輸量的減少。
8.如權(quán)利要求4所述的方法,其中所述處理器對(duì)一致性的支持多于單個(gè)高速緩存線。
9.如權(quán)利要求3所述的方法,其中所述突發(fā)傳輸?shù)膹V播是在多個(gè)處理器之間。
10.如權(quán)利要求4所述的方法,其中所述確定是先入先出隊(duì)列確定,且其中將所述高速緩存線排隊(duì)的步驟包含確定與所述處理器相對(duì)應(yīng)的先前高速緩存線請(qǐng)求是否已經(jīng)存在于所述隊(duì)列中;以及響應(yīng)于確定所述高速緩存線請(qǐng)求尚未存在于所述先入先出隊(duì)列中,將所述高速緩存線請(qǐng)求排隊(duì)。
11.如權(quán)利要求3所述的方法,其中累積窺探響應(yīng)僅在所述處理器內(nèi)的所述實(shí)體的各個(gè)響應(yīng)的通知時(shí)才聚集為組合響應(yīng)。
12.一種用于認(rèn)證計(jì)算機(jī)系統(tǒng)中的代碼的計(jì)算機(jī)程序產(chǎn)品,該計(jì)算機(jī)程序產(chǎn)品具有在其上體現(xiàn)有計(jì)算機(jī)程序的介質(zhì),所述計(jì)算機(jī)程序包括用于確定來自主控制器或高速緩存一致性控制器的存儲(chǔ)器事務(wù)請(qǐng)求的計(jì)算機(jī)代碼;用于驗(yàn)證存儲(chǔ)器事務(wù)請(qǐng)求的計(jì)算機(jī)代碼;用于驗(yàn)證存儲(chǔ)器事務(wù)請(qǐng)求響應(yīng)的計(jì)算機(jī)代碼;用于將源自多個(gè)窺探競(jìng)爭(zhēng)和總線請(qǐng)求的事務(wù)響應(yīng)聚集的計(jì)算機(jī)代碼;以及用于發(fā)出單個(gè)組合突發(fā)操作命令的計(jì)算機(jī)代碼。
13.一種用于在計(jì)算機(jī)系統(tǒng)中的一致總線上提供改進(jìn)突發(fā)傳輸?shù)挠?jì)算機(jī)程序,所述突發(fā)傳輸包含計(jì)算機(jī)程序,所述計(jì)算機(jī)程序包括用于確定設(shè)備窺探的計(jì)算機(jī)代碼;用于聚焦源自窺探競(jìng)爭(zhēng)和總線請(qǐng)求的組合響應(yīng)的計(jì)算機(jī)代碼;用于集中來自處理器和設(shè)備的響應(yīng)的地址的計(jì)算機(jī)代碼;用于由聚集的響應(yīng)向設(shè)備廣播命令的計(jì)算機(jī)代碼;以及用于確定資源沖突和向命令初始發(fā)起者發(fā)出命令以重新發(fā)出命令的計(jì)算機(jī)代碼。
全文摘要
描述了一種多處理器系統(tǒng)中用于改進(jìn)一致數(shù)據(jù)傳輸?shù)姆椒ǎ龆嗵幚砥飨到y(tǒng)包含主和從處理器,高速緩存一致性控制器和地址集中設(shè)備。由發(fā)起者生成命令事務(wù)并發(fā)出后續(xù)命令。加入到響應(yīng)或進(jìn)一步的請(qǐng)求響應(yīng)中的標(biāo)記在高速總線上流式傳送。窺探和累積窺探對(duì)高速緩存線請(qǐng)求擴(kuò)展為每個(gè)處理器將突發(fā)命令分離成多條高速緩存線請(qǐng)求。地址集中器含有高速緩存線排隊(duì)功能,將事務(wù)請(qǐng)求集中到全局串行化設(shè)備,其中排隊(duì)進(jìn)程將標(biāo)記劃分優(yōu)先級(jí)并在處理器之間協(xié)調(diào)結(jié)果。高速緩存針對(duì)每個(gè)受影響的線發(fā)出單個(gè)突發(fā)命令。系統(tǒng)一致性、性能和響應(yīng)時(shí)間得到改善。為一致處理器之間的突發(fā)傳輸提供額外支持。
文檔編號(hào)G06F12/00GK1641605SQ20051000430
公開日2005年7月20日 申請(qǐng)日期2005年1月14日 優(yōu)先權(quán)日2004年1月16日
發(fā)明者查爾斯·雷伊·約翰斯 申請(qǐng)人:國(guó)際商業(yè)機(jī)器公司