多粒高速緩存一致性的制作方法
【專利說明】
【背景技術(shù)】
[0001]除非本文中另有指明,本部分描述的材料不是本申請中的權(quán)利要求的現(xiàn)有技術(shù)并且不通過被包括在本部分而認為是現(xiàn)有技術(shù)。
[0002]在多核處理器架構(gòu)中,多個處理器核可以被包括在單一集成電路晶片中或被包括在以單一芯片封裝布置的多個集成電路晶片上。高速緩存可以被用來存儲供一個或多個處理器核訪問的數(shù)據(jù)。所述數(shù)據(jù)可以是被存儲在一般位于晶片外的較大存儲器中的數(shù)據(jù)的子集。每個處理器可以設(shè)置有存儲用于處理器的數(shù)據(jù)的高速緩存。由于單一條數(shù)據(jù)可以被存儲在多個高速緩存中,高速緩存一致性協(xié)議可以被配置為記錄存儲在多個高速緩存中的數(shù)據(jù)。所述高速緩存一致性協(xié)議可以被配置為幫助確保對數(shù)據(jù)的多個請求一致地使得同樣的數(shù)據(jù)被返回。
【發(fā)明內(nèi)容】
[0003]在一些示例中,一般地描述多核處理器架構(gòu)中的晶片。所述晶片可以包括第一片、第二片和目錄控制器。所述第一片可以包括第一高速緩存和第一處理器核。所述第一片可以被配置為存儲特定塊和多個塊的區(qū)域。所述第二片可以被配置為與所述第一片通信。所述第二片可以包括第二高速緩存和第二處理器核。所述目錄控制器可以被配置為與所述第一片和所述第二片通信。所述目錄控制器可以有效地控制晶片的目錄。所述目錄控制器可以被配置為確定與所述特定塊關(guān)聯(lián)的塊級一致性狀態(tài)。所述目錄控制器可以被配置為確定與所述多個塊的區(qū)域關(guān)聯(lián)的區(qū)域級一致性狀態(tài)。所述目錄控制器可以進一步地被配置為向所述第一片通信所述特定塊的所述塊級一致性狀態(tài)和所述多個塊的區(qū)域的所述區(qū)域級一致性狀態(tài)。所述第一片可以被配置為從所述目錄控制器接收所述塊級一致性狀態(tài)和所述區(qū)域級一致性狀態(tài)。所述第一片可以進一步地被配置為識別所述特定塊的所述塊級一致性狀態(tài)和所述多個塊的區(qū)域的所述區(qū)域級一致性狀態(tài)。所述第一片可以被配置為在所述第一高速緩存中存儲與所述特定塊關(guān)聯(lián)的所述塊級一致性狀態(tài)以及在所述第一高速緩存中存儲與所述多個塊的區(qū)域關(guān)聯(lián)的所述區(qū)域級一致性狀態(tài)。
[0004]在一些示例中,一般地描述了用于維持多核處理器內(nèi)一致性的方法。所述晶片可以包括第一片,所述第一片包括第一高速緩存和第一處理器核。所述晶片可以進一步地包括被配置為與所述第一片通信的第二片。所述第二片可以包括第二高速緩存和第二處理器核。所述晶片可以包括存儲器,所述存儲器存儲被配置為與所述第一片和所述第二片通信的目錄。所述方法可以包括:由目錄控制器確定與存儲在所述第一片中的特定塊相關(guān)的塊級一致性狀態(tài)。所述方法可以包括:由所述目錄控制器確定與存儲在所述第一片中的多個塊的區(qū)域相關(guān)的區(qū)域級一致性狀態(tài)。所述方法可以進一步地包括由所述目錄控制器將所述塊級一致性狀態(tài)和所述區(qū)域級一致性狀態(tài)通信至所述第一片。所述方法可以包括:由所述第一片從所述目錄控制器接收所述塊級一致性狀態(tài)和所述區(qū)域級一致性狀態(tài)。所述方法還可以進一步地包括:識別所述特定塊的所述塊級一致性狀態(tài)和所述多個塊的區(qū)域的所述區(qū)域級一致性狀態(tài)。所述方法還可以進一步地包括:在所述第一高速緩存中存儲與所述特定塊相關(guān)的所述塊級一致性狀態(tài)和在所述第一高速緩存中存儲與所述多個塊的區(qū)域相關(guān)的所述區(qū)域級一致性狀態(tài)。
[0005]在一些示例中,一般地描述一種用于處理對晶片上多核處理器中特定區(qū)域中特定塊的請求的方法。所述晶片可以包括第一片,所述第一片包括第一高速緩存和第一處理器。所述晶片可以進一步地包括被配置為與所述第一片通信的第二片。所述第二片可以包括第二高速緩存和第二處理器。所述晶片可以包括存儲被配置為與所述第一片和所述第二片通信的目錄的存儲器。所述方法可以包括由所述第一處理器分析所述第一高速緩存來確定在所述第一高速緩存中是否存與所述特定塊相關(guān)的塊指示符。所述方法可以包括:當所述第一處理器確定在所述第一高速緩存中不存在所述塊指示符時,由所述第一處理器分析所述第一高速緩存來確定是否存在與所述特定區(qū)域相關(guān)的區(qū)域指示符。所述方法還可以進一步地包括:當所述第一處理器確定在所述第一高速緩存中不存在所述區(qū)域指示符時,由所述第一處理器將所述請求發(fā)送至所述片中的目錄。
[0006]前述
【發(fā)明內(nèi)容】
僅是說明性的并且不旨在以任何方式進行限制。除上述示意的方面、實施方式及特征外,參考附圖及以下詳細描述,另外的方面、實施方式及特征將變得顯而易見。
[0007]附圖描述
[0008]結(jié)合附圖,從以下描述及所附權(quán)利要求書,本公開的前述及其他特征將變得更加明顯。應(yīng)當理解的是,這些附圖僅描繪了根據(jù)本公開的幾個實施方式,并且因此將不被認為限制本公開的范圍,通過使用附圖,本公開的另外的特性及細節(jié)將被描述,其中:
[0009]圖1示出可以被用來實施多粒高速緩存一致性的示例系統(tǒng);
[0010]圖2示出可以被用來實施多粒高速緩存一致性的一致狀態(tài)轉(zhuǎn)換圖;
[0011]圖3示出可以被用來實施多粒高速緩存一致性的示例系統(tǒng);
[0012]圖4描述用于實施多粒高速緩存一致性的示例處理的流程圖;
[0013]圖5示出可以被用來實施多粒高速緩存一致性的計算機程序產(chǎn)品;以及
[0014]圖6為示出被布置用來實施多粒高速緩存一致性的示例計算設(shè)備的塊圖;
[0015]所有均根據(jù)本文描述的至少一些實施方式布置。
[0016]詳細說明
[0017]在以下詳細描述中,參考附圖,附圖構(gòu)成本描述的一部分。在附圖中,除非上下文另有指明,否則相同符號一般指代相同部件。在詳細說明、附圖以及權(quán)利要求書中描述的說明性實施方式不意在限制。在不背離本文呈現(xiàn)的主題的精神或范圍的情況下,其他實施方式可以被使用,并且可以做出其他改變。將很容易理解的是,如本文一般描述的、以及在圖中示出的,本公開的方面可以以多種不同配置被布置、替換、組合、分離以及設(shè)計,所有這些都在本文被清晰地構(gòu)思。
[0018]除其他之外,本公開一般地涉及與多粒高速緩存一致性相關(guān)的方法、裝置、系統(tǒng)、設(shè)備以及計算機程序產(chǎn)品。
[0019]簡要陳述的技術(shù)一般地被描述用于有效維持晶片上多核處理器中一致性的方法和系統(tǒng)。在一個示例中,一種用于處理對特定區(qū)域中特定塊的請求的方法可以包括:由第一處理器分析第一高速緩存來確定在所述第一高速緩存中是否存在與所述特定塊相關(guān)的塊指示符。所述方法可以進一步地包括:當所述第一處理器確定在所述第一高速緩存中不存在所述塊指示符時,由所述第一處理器分析所述第一高速緩存來確定是否存在與所述特定區(qū)域相關(guān)的區(qū)域指示符。所述方法可以進一步地包括:當所述第一處理器確定在所述第一高速緩存中不存在所述區(qū)域指示符時,所述方法進一步地包括:由所述第一處理器將所述請求發(fā)送至片(tile)中的目錄。
[0020]圖1示出根據(jù)本文描述的至少一些實施方式布置的、可以被用來實施多粒高速緩存一致性的示例系統(tǒng)。示例系統(tǒng)100可以包括晶片102,所述晶片102包括多個片118、120和/或124。聚焦片118來說明,每個片118可以包括高速緩存110、處理器或處理器核(包括高速緩存控制器)(以下稱為“處理器”)112和/或目錄114(包括114a和/或114b)。處理器112可適于處理包括代碼(以下數(shù)據(jù)和代碼均稱為“數(shù)據(jù)塊”)的數(shù)據(jù)。高速緩存110可以被配置為存儲處理器112本地的數(shù)據(jù)塊。
[0021]除片118外,晶片102可以包括兩個或更多個另外的片120、124,片120、124包括各自的高速緩存122、126。晶片102中的每個片可以大體上相同,如處于同類排列,或一些片不同,如處于異構(gòu)排列。晶片102可以被布置為與另一晶片103通信,這樣數(shù)據(jù)可以在多個晶片間共享。
[0022]如在以下將更為詳細地描述的,晶片102可適于在塊級和區(qū)域級存儲一致性信息。當做出對特定塊的請求時,晶片可以被配置為分析塊級一致性粒度并且隨后在判定是否將對塊的請求發(fā)送至目錄或存儲器控制器之前分析區(qū)域級一致性粒度。
[0023]目錄114可以包括目錄控制器138并且可以如114b所示位于晶片102上的單個片上或如114a所示分布在許多或所有片之間。例如,如果目錄114被分布許多或所有片之間,則第一范圍的地址(如0x0000-0x1000)可以被存儲在第一片中,第二范圍的地址(如0x1001-0x2000)可被存儲在第二片中,等等。圖中的目錄114因此可以說明整個晶片目錄的第一部分,其中所述第一部分可以被存儲在片118中,而另外的部分可以被存儲在其他片中,如片120、124 等等。
[0024]目錄控制器138可以被配置用于監(jiān)控晶片102上的通信量并且分配和存儲與晶片102中塊的區(qū)域的一致性狀態(tài)相關(guān)的信息。目錄控制器138可以被配置為向各個片發(fā)送包括一致性狀態(tài)的消息,使得對塊的后續(xù)請求可以進行而不需要與目錄114通信。例如,區(qū)域可以是兩個或更多個塊(如2x64字節(jié))。在一個示例中,區(qū)域可以是約512B和約16KB間的范圍(如4kb)并且可以對應(yīng)存儲器中的頁。區(qū)域的一致性狀態(tài)可以基于所述區(qū)域中塊的狀態(tài)來確定。區(qū)域協(xié)議狀態(tài)可以包括,例如:
[0025]PRO(私有、只讀),其可以指示所述區(qū)域中的塊可以被存儲在高速緩存中,或不被存儲,并且片可以被允許從所述區(qū)域中的任意塊讀取,但不寫入任意塊;
[0026]SR0(共享、只讀),其可以指示所述區(qū)域內(nèi)的任意塊可以被存儲在一個高速緩存中、不被存儲、或存儲在多個高速緩存中,具有只讀權(quán)限;
[0027]PRW(私有、讀/寫),其可以指示區(qū)域中的所有塊可以被存儲在高速緩存中、或不被存儲,并且片被允許從任意塊讀取或?qū)懭耄?br>[0028]MX(混合),其可以指示塊具有不統(tǒng)一的共享或訪問權(quán)限并且因此所述區(qū)域狀態(tài)可以沒有益處并且塊級一致性可以被使用;或
[0029]RU(未高速緩存的區(qū)域),其可以指示所述區(qū)域中沒有塊正被高速緩存。
[0030 ]目錄114可以包括標識多個塊的多個區(qū)域的一致性狀態(tài)的區(qū)域一致性表170。區(qū)域一致性表170可以包括區(qū)域字段176、狀態(tài)字段178和/或共享者字段180。在一個示例中,如果一區(qū)域中的多個塊被指示為具有如圖1中示出的對于區(qū)域R2中的多個塊的共享S和/或?qū)S?