專利名稱:用于維持共享高速緩存一致性的方法和設(shè)備的制作方法
技術(shù)領(lǐng)域:
本公開內(nèi)容涉及處理系統(tǒng)及其相關(guān)聯(lián)的高速緩存裝置的領(lǐng)域。
背景技術(shù):
改善計算機或其他處理系統(tǒng)的性能,通常是改善整體吞吐量和/或提供更好的用戶體驗。用于改善在系統(tǒng)中處理的指令總量的一種技術(shù)是增加系統(tǒng)中處理器的數(shù)量。然而,實現(xiàn)多處理(MP)系統(tǒng)通常不僅僅是要求將處理器并行互連。而是例如,需要將任務或程序分開,以便它們能夠跨越并行處理資源而執(zhí)行,也需要存儲器一致性系統(tǒng)等。
隨著邏輯元件因制造技術(shù)的進步而縮小,將多個處理器集成在單個組件上變得更加切實可行,并且事實上,許多當前的設(shè)計已經(jīng)在單個組件上實現(xiàn)了多個處理器(“多核心處理器”)。除了集成與每個處理器核心(processor core)緊密相關(guān)聯(lián)的任意高速緩存器外,多核心處理器還通常集成某個附加的高速緩沖存儲器,并且使用多種技術(shù)來維持跨越多核心處理器設(shè)備內(nèi)的層級的一致性。
例如,在一個作為現(xiàn)有技術(shù)的處理器中,與每個處理器核心相關(guān)聯(lián)的一級(L1)高速緩存器作為寫直通(write through)高速緩存器來實現(xiàn),如此使得共享二級(L2)高速緩存器通過每個L1來接收所有的修改。從每個L1的寫操作被記入到L2高速緩存器的隊列中。當結(jié)構(gòu)操作命中有效的L2目錄條目時,指定探聽處理器僅使用L2內(nèi)容(包括潛在的任意排隊的條目)來響應探聽。雖然使用寫直通協(xié)議是已知的,與使用回寫協(xié)議和/或眾所周知的4狀態(tài)MESI(修改(Modified)、獨占(Exclusive)、共享(Shared)、無效(Invalid))協(xié)議相比,在某些環(huán)境下在性能上處于劣勢,但是使用寫直通協(xié)議可消除對作為現(xiàn)有技術(shù)的多核心處理器中的L1高速緩存器的交叉詢問的需要。在沒有L1高速緩存器間的交叉詢問的情況下,在L1高速緩存器間可不提供探聽總線,并且不會出現(xiàn)L1到L1的傳遞。
作為現(xiàn)有技術(shù)的處理器也為其L2高速緩存器而執(zhí)行修改的MESI協(xié)議,所述修改的MESI協(xié)議具有三個“修改”狀態(tài),以及兩個“共享”狀態(tài)和新的“標記”狀態(tài)。修改后的狀態(tài)M、Me和Mu對應于修改狀態(tài),修改后的獨占狀態(tài)和修改后的非請求(unsolicited)狀態(tài)。修改后的獨占和非請求狀態(tài)兩者都表明數(shù)據(jù)有效。此外,修改后的獨占和非請求狀態(tài)兩者都由處理器經(jīng)由專門的指令來請求保留數(shù)據(jù)而產(chǎn)生。
在另一種作為現(xiàn)有技術(shù)的多核心處理器中,兩個L1高速緩存器也由L2高速緩存器分離。在所述現(xiàn)有技術(shù)的處理器中,核心邏輯與L2高速緩存器控制邏輯直接鏈接,并且與專用L1直接鏈接。由此,L1和L2中的一致性查找可同時開始;然而,L2控制邏輯將與第一核心相關(guān)聯(lián)的L1和與第二核心相關(guān)聯(lián)的L1相分離。因此,每個處理器專用的并且相關(guān)聯(lián)的L1高速緩存器不再互相鏈接。由此,在L1高速緩存器之間不存在直接的交叉詢問,并且沒有直接的L1到L1的數(shù)據(jù)傳送。
通過舉例的方式來舉例說明本發(fā)明,但是本發(fā)明不由附圖中的圖中的實現(xiàn)方式來限定。
圖1舉例說明包括有探聽總線的處理系統(tǒng)的一個實施例,所述探聽總線使核心高速緩存器彼此耦合并且使核心高速緩存器耦合到共享高速緩存器。
圖2舉例說明包括有芯片多處理器的系統(tǒng)的一個實施例,所述芯片多處理器具有探聽總線并且執(zhí)行共享高速緩存一致性協(xié)議。
圖3a-3f舉例說明了依照一個實施例的共享和專用高速緩存器的各種狀態(tài)轉(zhuǎn)變。
圖4舉例說明包括有芯片多處理器的系統(tǒng)的另一個實施例,所述芯片多處理器以多狀態(tài)協(xié)議執(zhí)行多個專用高速緩存器,并且以多狀態(tài)共享高速緩存協(xié)議來執(zhí)行共享高速緩存器。
圖5舉例說明包括清除線共享邏輯的一個實施例。
具體實施例方式
隨后的描述將說明用于芯片多處理器或多處理器系統(tǒng)的共享高速緩存一致性的方法和設(shè)備的實施例。在隨后的描述中,眾多的具體細節(jié)是為了提供對本發(fā)明的更徹底的理解而提出的。然而,本領(lǐng)域技術(shù)人員將理解的是,在沒有這些具體細節(jié)的情況下也可實施本發(fā)明。
所公開的某些實施例使用了專用的并且在某些例子中的內(nèi)部探聽接口,以便允許在多個內(nèi)部專用高速緩存器和共享高速緩存器之間的探聽操作以及數(shù)據(jù)交換。某些實施例執(zhí)行具有兩個不同修改狀態(tài)的高速緩存協(xié)議。這些和其他實施例可用于具有多個處理器核心和相關(guān)聯(lián)的專用高速緩存器、連同共享高速緩存器的芯片多處理器中。某些實施例提供了數(shù)據(jù)不一致的快速解決方案,減少了從共享高速緩存器讀取數(shù)據(jù)到核心的等待時間,和/或減少了在專用高速緩存器到專用高速緩存器的傳遞情況中存儲器訪問的等待時間。
圖1舉例說明包括探聽總線130的處理系統(tǒng)的一個實施例。在某些實施例中,圖1中的處理系統(tǒng)可以是芯片多處理器。芯片多處理器是包含多個處理核心的單個集成電路或單個模塊。每個處理核心是能夠執(zhí)行指令的處理器。圖1的實施例包括N個處理核心,即核心100-1至100 N。每個處理核心100-1至100-N都分別包括與之相關(guān)聯(lián)并耦合到其上的專用高速緩存器,即核心高速緩存器110-1至110-N。
“專用”高速緩存器是與一個或多個處理器核心相關(guān)聯(lián)的高速緩存器,其中處理器核心通常將可高速緩存的存儲器的存儲器事務提供給專用高速緩存器,并且不只是在探聽或詢問周期的環(huán)境下,然而其他非相關(guān)聯(lián)的處理器或處理器核心通常將周期作為詢問或監(jiān)聽周期提供給專用高速緩存器。通常,如圖1所示的實施例中的情況那樣,單個專用高速緩存器可與單個核心相關(guān)聯(lián)。然而,在某些實施例中,高速緩存器可被多個核心聽專用。
如圖1所示,核心高速緩存器可以是M級高速緩存器,這意味著這些高速緩存器無需是一級高速緩存器,而更可以是一級高速緩存器或是在高速緩存器層級中更高級別的高速緩存器,諸如二級高速緩存器、三級高速緩存器等。此外,核心高速緩存器可以是使指令高速緩存器和數(shù)據(jù)高速緩存器一致的高速緩存器,或者可使指令高速緩存器或數(shù)據(jù)高速緩存器一致的高速緩存器。另外,兩個分離的高速緩存器(例如,指令和數(shù)據(jù)高速緩存器)能夠被相同地處理。由此,術(shù)語數(shù)據(jù)、數(shù)據(jù)元件、信息或信息元件可互換地使用以用來表示指令或數(shù)據(jù)。
每個高速緩存器110-1至110-N都耦合到探聽總線130上。此外,共享高速緩存器120(M+1級高速緩存器)耦合到探聽總線130上。共享高速緩存器120還耦合到互連(interconnect)140上?;ミB140可以是多點總線或者可以是點到點接口,以便與其他處理器、存儲器、存儲器接口或其他代理相連接。同樣地,點到點互連或多點總線類型互連可在不同的實施例中用于探聽總線130。
在一個實施例中,高速緩存器110-1至110-N以及共享高速緩存器120執(zhí)行交叉詢問或探聽操作,以便在探聽總線130上維持數(shù)據(jù)一致。這種用于探聽的專用總線或接口可減輕在互連140上的信息擁塞。在一個實施例中,探聽總線130是制作在芯片多處理器所在芯片上的總線(on-die bus)。因此,交叉詢問可以以高頻執(zhí)行,所述頻率在某些情況下可以和核心操作頻率一樣高。此外,外部訪問可限于在所述芯片上的多個核心和所述共享高速緩存器間的無法滿足的請求。在一個實施例中,高速緩存器可利用傳統(tǒng)的MESI(修改、獨占、共享、無效)協(xié)議或其他已知的或其他可用的協(xié)議。在其他實施例中,如下文進一步討論的那樣,不同的多狀態(tài)協(xié)議可用于共享高速緩存器。
圖2舉例說明包括芯片多處理器的系統(tǒng)的實施例,所述芯片多處理器具有探聽總線,并執(zhí)行共享高速緩存一致性協(xié)議。在圖2所示的實施例中,處理器200通過接口邏輯230與存儲器控制器240耦合。存儲器控制器240與存儲器250耦合。存儲器250能夠存儲將由處理器200使用的數(shù)據(jù)以及將其緩存到不同高速緩存器中。
處理器200包括接口邏輯230,以便將信息傳送到存儲器控制器240(或某個其他總線代理)。多種已知的或其他可用類型的接口邏輯和互連都可用于將不同的組件耦合到一起。處理器200進一步包括第一核心205-1以及第二核心205-2。第一核心具有相關(guān)聯(lián)的核心高速緩存器210-1,且第二核心具有相關(guān)聯(lián)的核心高速緩存器210-2。在本實施例中,核心高速緩存器依照MESI協(xié)議進行操作,不過在其他實施例中,可以使用其他協(xié)議來操作。核心高速緩存器210-1和210-2分別具有控制邏輯215-1和215-2,以便維持一致性并且處理常規(guī)的高速緩存器控制和通信任務。高速緩存器210-1和210-2兩者都耦合到共享高速緩存器220,所述共享高速緩存器220還包括其自身的控制邏輯225。高速緩存器210-1、210-2和220都耦合到探聽總線227,以便如根據(jù)圖1在前描述的那樣執(zhí)行交叉詢問和數(shù)據(jù)交換。
在本實施例中,共享高速緩存器220根據(jù)共享高速緩存協(xié)議來操作。根據(jù)共享高速緩存協(xié)議,可使用兩個修改狀態(tài)來描述高速緩存線(cache line)??墒褂眯薷倪^時(modified stale MStale)狀態(tài)來表示當共享高速緩存器220具有高速緩存線的過時拷貝時的情況。當處理器高速緩存器210-1或210-2中的一個修改高速緩存線時,共享高速緩存器常會有修改的線的過時拷貝??墒褂眯薷淖罱截?modified most recent copy,MMRC)狀態(tài)來表示當共享高速緩存器包含修改的線的最近拷貝時的情況。可使用共享狀態(tài)來表明當多個高速緩存器具有在它們的任何一個中都沒有被修改的數(shù)據(jù)時的情況,而無效狀態(tài)僅表明數(shù)據(jù)不是有效的。由此,與傳統(tǒng)的MESI協(xié)議相比,在本實施例中已經(jīng)消除了獨占(E)狀態(tài),并且已經(jīng)將M狀態(tài)分成了兩個不同的M狀態(tài)。
表1共享高速緩存協(xié)議狀態(tài)
將能夠理解的是,可將高速緩存線以不同的方式維持或標記為特定的狀態(tài)。例如,可以使用標記位來表示不同的狀態(tài)。這種標記或狀態(tài)位可與每個高速緩存線一道被存儲。所述狀態(tài)位還可被單獨存儲在單獨的存儲器陣列中。此外,協(xié)議狀態(tài)位可與關(guān)于高速緩存線的其他信息組合在一起,并且以編碼或其他形式被存儲。高速緩存線的最終處理還可受到其他位或設(shè)置的影響,所述其他位或設(shè)置諸如存儲器鍵入寄存器(memory typing register)等等。
圖3a舉例說明了依照一個實施例在共享和專用高速緩存器的第一組條件下第一組狀態(tài)的轉(zhuǎn)變。在圖3a中描述的情形中,在第一種情況中,L1高速緩存器中的高速緩存線以無效狀態(tài)開始,并且在L2高速緩存器中對應于同一存儲單元的高速緩存線以修改最近拷貝狀態(tài)開始,如框300所示。在第二種情況中,L1中的高速緩存線以無效或修改狀態(tài)開始,且L2中的對應于同一存儲單元的高速緩存線以修改過時狀態(tài)開始,如框301所示。如框302中所示,在這兩種情況下,核心都對高速緩存線進行寫操作。
如框305所示,在第一種情況中,在L1中發(fā)生未命中,并且在一個實施例中使用了寫分配政策,從而使得L1獲得高速緩存線(來自于L2)并且將該高速緩存線維持在修改狀態(tài)中。由于在該情況下,所述高速緩存線以修改最近拷貝狀態(tài)被存儲在L2中,故而L2發(fā)生命中,并且L2中的線的狀態(tài)被改變?yōu)樾薷倪^時狀態(tài)。例如,對L2的所有權(quán)周期的讀操作可以向L1提供數(shù)據(jù),并在L2中觸發(fā)從修改最近拷貝狀態(tài)到修改過時狀態(tài)的轉(zhuǎn)變。如框322所示,該情形導致L1高速緩存器使其高速緩存線一直處于修改狀態(tài),且L2高速緩存器使其高速緩存線一直處于修改過時狀態(tài),這是由于L1具有最近修改過的數(shù)據(jù)。根據(jù)由L1遵守的回寫協(xié)議,L1可不向L2或其余存儲器層級傳送已修改的數(shù)據(jù),直到其被逐出(evict)或探聽命中該高速緩存線為止。
在第二種情況下,在框302中核心對L1執(zhí)行寫操作將導致L1如框310中所示那樣修改數(shù)據(jù),而L2將高速緩存線維持在修改過時狀態(tài)。如果L1中的高速緩存線處于無效狀態(tài),那么它轉(zhuǎn)變到修改狀態(tài),而如果L1中的高速緩存線處于修改狀態(tài),那么它維持在修改狀態(tài),如框310中所示。在某些實施例中,可不通知L2在L1中發(fā)生了對高速緩存線的寫操作,并因此L2完全不作任何處理,結(jié)果導致了高速緩存線維持在修改過時狀態(tài)。由此,L1和L2的作為結(jié)果的高速緩存線的狀態(tài)分別為修改狀態(tài)和修改過時狀態(tài),如框322所示。
圖3b依照一個實施例舉例說明了在第二組條件下的第二組狀態(tài)的轉(zhuǎn)變。如框330所示,L1高速緩存器中的高速緩存線以修改(臟,dirty)狀態(tài)開始,并且在L2高速緩存器中對應于同一存儲單元的高速緩存線以修改過時狀態(tài)開始。在本實施例中,當L1逐出(框332)時,將發(fā)生L2命中(框334),并且最后的高速緩存器狀態(tài)將如框336中所示。特別的是,該情形是由L1高速緩存線逐出以及L2從L1獲得最近拷貝而產(chǎn)生的。由此,將L1中的高速緩存線設(shè)置為無效狀態(tài),而L2中的高速緩存線轉(zhuǎn)變到修改最近拷貝狀態(tài)。
圖3c依照一個實施例舉例說明了在第三組條件下的第三組狀態(tài)的轉(zhuǎn)變。如框340所示,在L1高速緩存器的一個高速緩存器中的高速緩存線以修改狀態(tài)開始,而所有其他L1高速緩存器中的高速緩存線以無效狀態(tài)開始,并且在L2高速緩存器中對應于同一存儲單元的高速緩存線以修改過時狀態(tài)開始。接下來,如框342所示,發(fā)生L2替換。L2替換導致了來自于L2的數(shù)據(jù)的逐出并導致將該數(shù)據(jù)回寫到存儲器250。作為這一回寫的結(jié)果,L2高速緩存器條目被無效。當然,如果所述條目正在被逐出以便為新線騰出空位,則所述新線可稍后變?yōu)橛行?。如?40中所示,由于L2的數(shù)據(jù)處于修改過時狀態(tài),因而斷定根據(jù)L1 MESI協(xié)議,其中一個L1高速緩存器包含處于修改狀態(tài)的高速緩存線。因此,如框344中所示,執(zhí)行L1高速緩存器的探聽以便提取修改的數(shù)據(jù),并且如果所述修改的數(shù)據(jù)存在于任一L1高速緩存器中,則無效所述高速緩存線。曾經(jīng)具有處于修改狀態(tài)的高速緩存線的L1中的所述高速緩存線被無效。由此,如框344所示,在L1和L2高速緩存器兩者中的高速緩存線的狀態(tài)都變?yōu)闊o效,并且通過L1高速緩存器的探聽而接收到的數(shù)據(jù)可進行被回寫,如框345所示。
圖3d舉例說明了與圖3c相似的情形,除了L2高速緩存器中的高速緩存線的狀態(tài)最初是修改最近拷貝狀態(tài),如框346中所示(由于L2具有最近拷貝狀態(tài)故而L1高速緩存器中的狀態(tài)是無效的)。如參考圖3c中框342所論述的那樣,如框348中所示,發(fā)生L2替換。作為在框348中L2替換的結(jié)果,再次如框349中所示,L1和L2高速緩存器兩者中的高速緩存線的狀態(tài)都變?yōu)闊o效。然而,在該情況下,由于L2高速緩存器中的高速緩存線的狀態(tài)最初是修改最近拷貝狀態(tài),因而L2包含最近拷貝,并且不必對L1高速緩存器做任何詢問。由此,如框349所示,不執(zhí)行對L1高速緩存器的探聽,并且如框350所示,將來自L2的數(shù)據(jù)回寫到存儲器。
在圖3c所示的情況中,因為在其中一個L1高速緩存器中出現(xiàn)修改的線,故而執(zhí)行了探聽。在圖3d中所示的情況中,因為共享L2高速緩存器包含了數(shù)據(jù)的最近拷貝,故而沒有執(zhí)行對L1高速緩存器的探聽。在某些實施例中,在圖3d所示的環(huán)境(即L1狀態(tài)為無效,L2狀態(tài)為修改最近拷貝)下,人們可能希望對與除了提出請求的處理器以外的處理器相關(guān)聯(lián)的L1高速緩存器運行無效周期。例如,如果處理器核心能夠執(zhí)行推測性(speculative)裝入并維持裝入緩沖區(qū),那么可將數(shù)據(jù)以修改的形成保存在裝入緩沖區(qū)中。此外,該數(shù)據(jù)可以是從L1高速緩存器逐出的數(shù)據(jù)。接下來,如果不同的處理器試圖寫高速緩存線,那么它會經(jīng)歷未命中(L1中的線是無效的,L2的狀態(tài)是修改最近拷貝狀態(tài)),并且試圖獲得高速緩存線的所有權(quán)以執(zhí)行所請求的寫操作。盡管具有L2高速緩存器包含了處于修改最近狀態(tài)的數(shù)據(jù)這樣的事實,也不能夠確保所述數(shù)據(jù)不再出現(xiàn)在推測性裝入緩沖區(qū)或其他緩沖結(jié)構(gòu)中。因此,在某些實施例中,為其他L1高速緩存器生成無效探聽周期可能是十分有益的。
圖3e依照一個實施例舉例說明了L2包含處于修改過時狀態(tài)的隱含高速緩存線的情況時,對外部無效探聽的處理。在某些實施例中,其他探聽操作可相似地被處理,而無效探聽的例子是作為狀態(tài)改變探聽操作的廣泛分類的代表而給出的。外部無效探聽可通過接口邏輯240來接收,并且可來源于其他總線代理(未示出),諸如其他處理器、輸入/輸出(I/O)代理、直接存儲器存取代理等。外部無效探聽指示地址,且該探聽的隱含的線是對應于該地址的線。如框351中所示,在L1高速緩存器中,高速緩存線的狀態(tài)在一個L1高速緩存器中是修改狀態(tài)而在其他L1高速緩存器中是無效狀態(tài),且L2高速緩存線的狀態(tài)是修改過時狀態(tài)。在框352中,外部無效探聽由L2接收。作為外部無效探聽的結(jié)果,將L1和L2高速緩存器中的高速緩存線的狀態(tài)都設(shè)置為無效狀態(tài),如框354中所示。由于L2僅包含過時數(shù)據(jù),故而依照L1高速緩存器的MESI協(xié)議,其中一個L1高速緩存器包含修改的數(shù)據(jù)。因此,還如框354所示,執(zhí)行對L1高速緩存器的探聽周期。如框356所示,修改的數(shù)據(jù)由其中一個L1高速緩存器提供以滿足外部探聽。
對于其他類型的探聽操作來說,作為探聽的結(jié)果,可將高速緩存線的狀態(tài)設(shè)置為其他狀態(tài)。例如,探聽操作可指示高速緩存器將高速緩存線的狀態(tài)改變?yōu)楣蚕?S)狀態(tài),有效地發(fā)送命令到該高速緩存器以便將所述線中的數(shù)據(jù)維持在共享狀態(tài)。如框354中所示,響應強制轉(zhuǎn)變到共享狀態(tài)的探聽,發(fā)生這種到共享狀態(tài)的轉(zhuǎn)變而不是發(fā)生到無效狀態(tài)的轉(zhuǎn)變。
此外,其他的實施例可實現(xiàn)集中的高速緩存器目錄,以減少對探聽個別L1高速緩存器的需要。例如,用于共享高速緩存器的高速緩存器目錄還可跟蹤在其他L1高速緩存器中的高速緩存線的狀態(tài)。在其他實施例中,高速緩存器目錄可為不同的L1高速緩存器而被維持。使用這種高速緩存器目錄將消除對所有L1高速緩存器發(fā)送單個探聽周期的需要。代替地,高速緩存器目錄將表明哪些L1高速緩存器應該接收該無效探聽。
圖3f舉例說明了與圖3e相似的情況的外部無效探聽的處理,除了L2包含處于修改最近拷貝狀態(tài)的隱含高速緩存線。如框360中所示,在L1高速緩存器中的高速緩存線的狀態(tài)是無效,且L2高速緩存器中的高速緩存線的狀態(tài)是修改最近拷貝狀態(tài)。在框362中,外部無效探聽由L2接收。作為外部無效探聽的結(jié)果,將L1和L2高速緩存器中的高速緩存線的狀態(tài)設(shè)置為無效,如框364中所示。由于L2包含最近數(shù)據(jù),故而響應內(nèi)部無效探聽請求,通過從L2高速緩存器返回最近和修改的數(shù)據(jù)來滿足外部探聽,如框366所示。因此,在返回數(shù)據(jù)以滿足外部探聽周期之前,提供給L1高速緩存器的探聽周期是不需要的。此外,其他類型的探聽(除無效探聽之外)可如上述那樣相似地處理。
表2M-狀態(tài)概述
圖4舉例說明了包括芯片多處理器的系統(tǒng)的另一個實施例,所述芯片多處理器依照多狀態(tài)協(xié)議來執(zhí)行多個專用高速緩存器,并且依照多狀態(tài)共享高速緩存協(xié)議執(zhí)行共享高速緩存器。圖4的實施例舉例說明了處理器400-1在某些實施例中可以不包括內(nèi)部探聽總線。此外,圖4的實施例還舉例說明了多個芯片多處理器400-1至400-4可耦合到一起以形成多芯片多處理器系統(tǒng)。在一個實施例中,4個處理器400-1至400-4可以是相同的。4個處理器400-1至400-4如由多點總線401耦合那樣來示出;然而,點到點或其他互連技術(shù)也可使用。此外,諸如存儲器和I/O設(shè)備的附加組件通常也出現(xiàn)在系統(tǒng)中。
處理器400-1包括接口邏輯430,以便經(jīng)由所提供的互連(在示例性的實施例中如多點總線401)進行通信。處理器400-1包括N個核心405-1至405-N,所述N個核心的每一個都具有它們自己的專用高速緩存器,分別為410-1至410-N,所述專用高速緩存器與接口邏輯430相耦合。還提供了更高級的共享高速緩存器420,并且該共享高速緩存器420與接口邏輯430耦合。各種高速緩存器都可支持如前述的高速緩存協(xié)議。在本實施例中,處理器間的接口邏輯和互連參與一致性檢查,要多于采用內(nèi)部探聽總線的實施例。在本實施例中,高速緩存器間的所有探聽循環(huán)都經(jīng)過接口邏輯430來加以處理,并且返回到多點總線401或其他適合的(例如,點到點)互連。
圖5舉例說明在某些實施例中使用的一個附加特征。在圖5所示的實施例中,芯片多處理器的核心500-N可包括清除線共享邏輯517。如圖示的那樣,核心500-N可包括高速緩存器510(例如,如前述的MESI協(xié)議的高速緩存器)。高速緩存器510包括控制邏輯515,所述控制邏輯515的一部分是清除線共享邏輯517。高速緩存器510可通過探聽互連522與其他高速緩存器和更高級的共享高速緩存器相耦合。此外,所述高速緩存器可通過第二互連524與外部接口耦合。
清除線共享邏輯517可通過將正確的信息發(fā)送到其他高速緩存器來提供性能改善。可專門用來處理探聽通信量和數(shù)據(jù)交換的內(nèi)部探聽互連522的存在,為這種高速緩存器到高速緩存器的傳遞提供了更多帶寬,所述高速緩存器到高速緩存器的傳遞會可能會不是很理想地占用系統(tǒng)帶寬,所述系統(tǒng)為兩個探聽目的使用一條總線或互連,以便從存儲器層級中的更高級別中檢索數(shù)據(jù)。清除線共享邏輯517引起控制邏輯515在不同于只是逐出的情況下將來自L1高速緩存器的高速緩存線寫回到其他高速緩存器。也就是說,清除線共享邏輯517將提供高速緩存線到其他高速緩存器中,其中所述高速緩存線隨后至少被臨時維持在共享高速緩存器內(nèi)(而不是剛被逐出的線)。
在一個實施例中,清除線共享邏輯517提供數(shù)據(jù)以滿足在探聽互連522上的探聽周期。也就是說,如果高速緩存器檢測一探聽周期,其中能夠給所述探聽周期提供有效數(shù)據(jù),那么該高速緩存器響應所述探聽周期以提供該數(shù)據(jù)(與等待存儲器層級中更高的級別來提供該數(shù)據(jù)相對)。在另外的實施例中,L1高速緩存器僅作為寫直通高速緩存器來操作。在另一個的實施例中,當帶寬允許時,清除線共享邏輯517有機會將數(shù)據(jù)回寫到其他高速緩存器。在又一個實施例中,在各種條件下和/或響應探聽總線擁塞,清除線共享邏輯可被配置以用于將線回寫到其他高速緩存器和/或存儲器的各種組合。在一個實施例中,每個專用高速緩存器都包括清除線共享邏輯517。
數(shù)據(jù)在核心間的主動傳遞在某些情況下有益于減少存儲器訪問的等待時間以及帶寬的消耗。例如,一個核心試圖訪問它的專用高速緩存器和共享L2高速緩存器并且在兩種情況下都未命中將是可能的,而不管不同核心包含所需要的數(shù)據(jù)這樣的事實。人們所希望的是,在核心間傳遞數(shù)據(jù),以避免必須通過給外部接口生成周期或者通過訪問L2高速緩存器來提供數(shù)據(jù)。
各種傳統(tǒng)的讀和寫策略可以在各種實施例中使用。例如,在某些例子中可使用在寫策略上的分配,以便當發(fā)生對線的寫操作時,將高速緩存線寫入高速緩存器。此外,從低級高速緩存器的讀取操作可以或不會引起更高級的高速緩存器被填充(即,在某些實施例中可以或可以不包含更高級的高速緩存器)。
此外,設(shè)計可經(jīng)歷各種階段,從創(chuàng)建到仿真到制造。表示設(shè)計過程的數(shù)據(jù)可以以多種方式來表示所述設(shè)計過程。首先,由于在仿真中十分有用,硬件可以使用硬件描述語言或其他功能描述語言來表示。此外,具有邏輯和/或晶體管門電路的電路級模塊,可在設(shè)計過程的某些階段產(chǎn)生。此外,多數(shù)設(shè)計在某些階段達到了表示在硬件模塊中各種設(shè)備的物理設(shè)置的數(shù)據(jù)級別。在使用常規(guī)的半導體制造工藝的情況中,表示硬件模塊的數(shù)據(jù)可以是指定在不同掩模層上的各個特征的出現(xiàn)或缺乏的數(shù)據(jù),所述掩模層是用于制造集成電路的掩模的掩模層。在設(shè)計過程的任意表示中,數(shù)據(jù)可存儲在任意形式的機器可讀介質(zhì)中。被調(diào)制或另外生成的用于發(fā)送這種信息的光波或電波,存儲器或者諸如磁盤的磁或光的存儲器,都是機器可讀介質(zhì)。這些介質(zhì)中的任意一種都可“攜帶”所述設(shè)計信息。
由此,已經(jīng)公開了用于芯片多處理器或多處理器系統(tǒng)的共享高速緩存一致性的方法和設(shè)備的技術(shù)。雖然已經(jīng)描述并且在附圖中示出了特定的示例性實施例,但是應該理解的是,這種實施例僅僅是對具有廣泛范圍的本發(fā)明的舉例說明,而非對本發(fā)明的限制,并且此發(fā)明不限于所示出的以及所描述的具體結(jié)構(gòu)和布置,這是由于本領(lǐng)域技術(shù)人員在學習了此公開內(nèi)容的基礎(chǔ)上,能夠作出各種其他的修改。
權(quán)利要求
1.一種設(shè)備,包括多個處理器核心,每個處理器核心包含專用高速緩存器;一共享高速緩存器;與每個專用高速緩存器和所述共享高速緩存器相耦合的內(nèi)部探聽總線,用于將數(shù)據(jù)從每個專用高速緩存器傳送到其他專用高速緩存器和所述共享高速緩存器。
2.如權(quán)利要求1所述的設(shè)備,其特征在于每個專用高速緩存器執(zhí)行多狀態(tài)高速緩存協(xié)議,所述多狀態(tài)高速緩存協(xié)議允許修改的數(shù)據(jù)被保留在專用高速緩存器內(nèi),直到探聽周期命中與所述修改的數(shù)據(jù)相關(guān)聯(lián)的地址為止。
3.如權(quán)利要求2所述的設(shè)備,其特征在于所述共享高速緩存器能夠執(zhí)行與所述多狀態(tài)高速緩存協(xié)議不同的共享高速緩存器多狀態(tài)高速緩存協(xié)議,所述共享高速緩存器多狀態(tài)高速緩存協(xié)議執(zhí)行多個狀態(tài),所述多個狀態(tài)包括第一修改狀態(tài),在該狀態(tài)下,高速緩存器具有修改的線的過時拷貝;第二修改狀態(tài),在該狀態(tài)下,高速緩存器具有修改的線的最近拷貝。
4.如權(quán)利要求3所述的設(shè)備,其特征在于所述多個狀態(tài)進一步包括共享狀態(tài),在該狀態(tài)下,所述高速緩存器存儲也由其他高速緩存器存儲的線;無效狀態(tài),其中,每個高速緩存線是在第一修改狀態(tài)、第二修改狀態(tài)、共享狀態(tài)或無效狀態(tài)中的一個狀態(tài)下被存儲的。
5.如權(quán)利要求3所述的設(shè)備,其特征在于由所述多個處理器核心的第一處理器向?qū)诘谝坏刂返母咚倬彺婢€進行的寫操作,能夠在與所述第一處理器相關(guān)聯(lián)的第一專用高速緩存器中將所述高速緩存線設(shè)置為修改狀態(tài),并且能夠?qū)谒龅谝坏刂返墓蚕砀咚倬彺婢€設(shè)置為所述共享高速緩存器多狀態(tài)高速緩存協(xié)議的第一修改狀態(tài)。
6.如權(quán)利要求3所述的設(shè)備,其特征在于由所述多個處理器核心的第一處理器對與第一地址相對應于的高速緩存線的逐出,能夠?qū)⑺龈咚倬彺婢€回寫到所述共享高速緩存器,能夠?qū)⑺龈咚倬彺婢€設(shè)置為無效狀態(tài),并且能夠?qū)诘谝坏刂返墓蚕砀咚倬彺婢€設(shè)置為共享高速緩存器多狀態(tài)高速緩存協(xié)議的第二修改狀態(tài)。
7.如權(quán)利要求4所述的設(shè)備,其特征在于所述多狀態(tài)高速緩存協(xié)議是MESI協(xié)議,并且其中所述多個狀態(tài)由第一修改狀態(tài)、第二修改狀態(tài)、共享狀態(tài)和無效狀態(tài)組成。
8.如權(quán)利要求3所述的設(shè)備,其特征在于每個專用高速緩存器進一步包括清除線共享邏輯,用于響應探聽周期將高速緩存線提供給其他的專用高速緩存器。
9.如權(quán)利要求1所述的設(shè)備,其特征在于所述設(shè)備包括在機器可讀介質(zhì)上攜帶的機器可讀數(shù)據(jù)。
10.一種設(shè)備,包括多個處理器核心;多個高速緩存器,所述多個高速緩存器中的第一高速緩存器用于將多個高速緩存線維持在多個狀態(tài)中一個狀態(tài)中,所述多個狀態(tài)包括第一修改狀態(tài),用于表明修改的線的最近拷貝;第二修改狀態(tài),用于表明修改的線的過時拷貝。
11.如權(quán)利要求10所述的設(shè)備,其特征在于所述多個狀態(tài)進一步包括共享狀態(tài)和無效狀態(tài),其中每個高速緩存線具有相關(guān)聯(lián)的高速緩存器狀態(tài)條目,所述高速緩存器狀態(tài)條目用于表明第一修改狀態(tài)、第二修改狀態(tài)、共享狀態(tài)或無效狀態(tài)中的一個狀態(tài)。
12.如權(quán)利要求10所述的設(shè)備,進一步包括內(nèi)部一致性總線,它與所述多個高速緩存器中的每個高速緩存器相耦合,用于在所述多個高速緩存器之間進行通信。
13.如權(quán)利要求11所述的設(shè)備,其特征在于所述多個高速緩存器的其他高速緩存器依照第二協(xié)議來維持高速緩存線,所述第二種協(xié)議包括第二多個狀態(tài)。
14.如權(quán)利要求13所述的設(shè)備,其特征在于所述多個高速緩存器的其他高速緩存器是多個專用N級高速緩存器,并且其中所述多個高速緩存器中的第一高速緩存器是共享N+1級高速緩存器。
15.如權(quán)利要求14所述的設(shè)備,其特征在于所述第二協(xié)議包括MESI協(xié)議。
16.一種方法,包括在內(nèi)部探聽總線上驅(qū)動對多個內(nèi)部專用高速緩存器和共享高速緩存器的探聽周期;經(jīng)由外部總線驅(qū)動對存儲器的高速緩存器未命中周期。
17.如權(quán)利要求16所述的方法,進一步包括為所述的共享高速緩存器維持四個狀態(tài)的第一高速緩存協(xié)議,其中所述四個狀態(tài)的第一高速緩存協(xié)議包括修改最近拷貝狀態(tài)、修改過時狀態(tài)、共享狀態(tài)以及無效狀態(tài)。
18.如權(quán)利要求17所述的方法,進一步包括為所述多個內(nèi)部專用高速緩存器維持四個狀態(tài)的第二高速緩存協(xié)議,其中所述四個狀態(tài)的第二高速緩存協(xié)議包括修改狀態(tài)、獨占狀態(tài)、共享狀態(tài)和無效狀態(tài)。
19.如權(quán)利要求16所述的方法,進一步包括將第一高速緩存線轉(zhuǎn)變到第一修改狀態(tài),在該狀態(tài)下,第一高速緩存線包含高速緩存線的過時拷貝,而另一個高速緩存器包含與所述第一高速緩存線相關(guān)聯(lián)的信息的修改拷貝。
20.如權(quán)利要求19所述的方法,進一步包括將第二高速緩存線轉(zhuǎn)變到第二修改狀態(tài),在該狀態(tài)下,所述第二高速緩存線包含與所述高速緩存線相關(guān)聯(lián)的信息的最近拷貝。
21.如權(quán)利要求16所述的方法,進一步包括在所述多個內(nèi)部專用高速緩存器之間的共享線。
22.一種系統(tǒng),包括多核心處理器,所述多核心處理器包括多個處理器;多個相關(guān)聯(lián)高速緩存器;共享高速緩存器;一致性邏輯,用于將多個高速緩存線維持在多個狀態(tài)中的一個狀態(tài)中,所述多個狀態(tài)包括最近拷貝修改狀態(tài)以及過時修改狀態(tài),所述一致性邏輯用于將具有對應于第一地址的第一數(shù)據(jù)條目維持在所述過時修改狀態(tài)中,并且將具有對應于第二地址的第二數(shù)據(jù)條目維持在所述最近拷貝修改狀態(tài)中;與多核心處理器相耦合的存儲器,所述存儲器用于存儲所述第一地址處的第三數(shù)據(jù)條目和第二地址處的第四數(shù)據(jù)條目,所述存儲器可選擇地進行更新以便將所述第一數(shù)據(jù)條目復制到所述第一地址。
23.如權(quán)利要求22所述的系統(tǒng),其特征在于所述多核心處理器進一步包括與所述多個高速緩存器相耦合的內(nèi)部探聽總線,以允許響應在內(nèi)部探聽總線上的探聽周期而進行所述多個高速緩存器間的數(shù)據(jù)傳送。
24.如權(quán)利要求22所述的系統(tǒng),其特征在于所述系統(tǒng)是服務器計算機系統(tǒng)。
25.如權(quán)利要求23所述的系統(tǒng),進一步包括用于響應內(nèi)部探聽總線上的探聽周期而共享所述多個相關(guān)聯(lián)高速緩存器間的線的邏輯。
全文摘要
用于芯片多處理器或多處理器系統(tǒng)的共享高速緩存一致性的方法和設(shè)備。在一個實施例中,多核心處理器包括多個處理器核心,每個核心都具有專用高速緩存器和共享高速緩存器。將內(nèi)部探聽總線耦合到每個專用高速緩存器和共享高速緩存器,以便將數(shù)據(jù)從每個專用高速緩存器傳送到其他專用高速緩存器和所述共享高速緩存器。在另一個的實施例中,設(shè)備包括多個處理器核心和多個高速緩存器。多個高速緩存器之一將高速緩存線維持在兩個不同的修改狀態(tài)中。第一修改狀態(tài)表明修改的高速緩存線的最近拷貝,而第二修改狀態(tài)表明修改的高速緩存線的過時拷貝。
文檔編號G06F12/08GK1609823SQ20031011983
公開日2005年4月27日 申請日期2003年10月23日 優(yōu)先權(quán)日2003年10月23日
發(fā)明者V·彭特科夫斯基, V·加格, N·S·伊耶爾, J·克沙瓦 申請人:英特爾公司