多處理器架構(gòu)中的高速緩存一致性目錄的制作方法
【專利說明】
【背景技術(shù)】
[0001]除非本文中另有指示,否則本部分中描述的材料并不是針對本申請中權(quán)利要求的現(xiàn)有技術(shù),并且不因包括在本部分中而被承認(rèn)是現(xiàn)有技術(shù)。
[0002]在多核處理器架構(gòu)中,多個處理器內(nèi)核可以被包括在單個集成電路晶片中或者被包括在被設(shè)置在單個芯片封裝中的多個集成電路晶片上。高速緩存可以被用于存儲供處理器內(nèi)核中的一個或多個訪問的數(shù)據(jù)。數(shù)據(jù)可以是存儲在通常位于晶片外側(cè)的更大存儲器中的數(shù)據(jù)的子集。每個處理器可以被設(shè)置有存儲用于處理器的數(shù)據(jù)的高速緩存。由于單條數(shù)據(jù)可以被存儲在多個高速緩存中,高速緩存一致性協(xié)議可以被配置為記錄存儲在多個高速緩存中的數(shù)據(jù)。高速緩存一致性協(xié)議可以被配置為幫助確保對數(shù)據(jù)的多個請求一致地使得相同的數(shù)據(jù)被返回。
[0003]概述
[0004]在一些示例中,總體上描述了用于處理多處理器架構(gòu)中的晶片中的請求的方法。該方法可以包括接收對特定數(shù)據(jù)塊的請求。該方法可以進(jìn)一步包括確定與包括所述特定數(shù)據(jù)塊的數(shù)據(jù)塊被存儲在晶片中的一個或多個高速緩存中的可能性相關(guān)的老化閾值(agingthreshold)。該方法可以進(jìn)一步包括分析存儲器以識別指示為存儲所述特定數(shù)據(jù)塊的特定高速緩存。該方法可以進(jìn)一步包括分析所述存儲器以識別所述特定高速緩存的高速緩存缺失(cache miss)數(shù)量。該方法可以進(jìn)一步包括分析所述存儲器以識別針對所述特定數(shù)據(jù)塊的事件發(fā)生時的時間。該方法可以進(jìn)一步包括基于老化閾值、事件的時間以及高速緩存缺失數(shù)量確定是否將對所述特定數(shù)據(jù)塊的請求發(fā)送至所述特定高速緩存。
[0005]在一些示例中,總體上描述了多處理器架構(gòu)中的目錄。該目錄可以包括存儲器和被配置為與存儲器通信的目錄控制器。目錄控制器可以用于接收對特定數(shù)據(jù)塊的請求。目錄控制器可以用于確定與包括所述特定數(shù)據(jù)塊的數(shù)據(jù)塊被存儲在晶片中的一個或多個高速緩存中的可能性相關(guān)的老化閾值。目錄控制器可以進(jìn)一步用于分析所述存儲器以識別指示為存儲所述特定數(shù)據(jù)塊的特定高速緩存。目錄控制器可以用于分析存儲器以識別在第一時間和第二時間之間針對所述特定高速緩存的高速緩存缺失數(shù)量。目錄控制器可以用于分析存儲器以識別針對所述特定數(shù)據(jù)塊的事件發(fā)生時的時間。目錄控制器可以進(jìn)一步用于基于老化閾值、事件的時間以及高速緩存缺失數(shù)量來確定是否將對所述特定數(shù)據(jù)塊的請求發(fā)送至所述特定高速緩存。
[0006]在一些示例中,總體上描述了多處理器架構(gòu)中的晶片。該晶片可以包括第一片(tile)、第二片以及目錄。第一片可以包括第一高速緩存和第一處理器。第二片可以包括第二高速緩存和第二處理器。目錄可以被配置為與第一片和第二片通信。目錄可以包括存儲器和目錄控制器。目錄控制器可以用于接收對特定數(shù)據(jù)塊的請求。目錄控制器可以用于確定與包括所述特定數(shù)據(jù)塊的數(shù)據(jù)塊被存儲在晶片中的一個或多個高速緩存中的可能性相關(guān)的老化閾值。目錄控制器可以進(jìn)一步用于分析所述存儲器以識別指示為存儲所述特定數(shù)據(jù)塊的特定高速緩存。目錄控制器可以用于分析所述存儲器以識別在第一時間和第二時間之間針對所述特定高速緩存的高速緩存缺失數(shù)量。目錄控制器可以用于分析所述存儲器以識別針對所述特定數(shù)據(jù)塊的事件發(fā)生時的時間。目錄控制器可以進(jìn)一步用于基于老化閾值、事件的時間以及高速緩存缺失數(shù)量來確定是否將對所述特定數(shù)據(jù)塊的請求發(fā)送至所述特定高速緩存。
[0007]前面的概述僅僅是示例性的,而不意在以任何方式進(jìn)行限制。通過參考附圖以及下面的詳細(xì)說明,除了上文所描述的示例性的方面、實施方式、示例和特征之外,另外的方面、實施方式、示例和特征將變得清晰可見。
【附圖說明】
[0008]通過下面結(jié)合附圖給出的詳細(xì)說明和隨附的權(quán)利要求,本公開的前述特征以及其它特征將變得更加清晰。應(yīng)理解的是,這些附圖僅描繪了依照本公開的多個實施例,因此,不應(yīng)視為對本公開范圍的限制,將通過利用附圖結(jié)合附加的具體描述和細(xì)節(jié)對本公開進(jìn)行說明,在附圖中:
[0009]圖1示出能夠被用于在多處理器架構(gòu)中實施高速緩存一致性目錄的示例系統(tǒng);
[0010]圖2示出能夠被用于在圖1的多處理器架構(gòu)中實施高速緩存一致性目錄的一個示例系統(tǒng),其包括示例目錄的進(jìn)一步的細(xì)節(jié);
[0011]圖3描述了用于在多處理器架構(gòu)中實施高速緩存一致性目錄的示例處理的流程圖;
[0012]圖4示出能夠被用于在多處理器架構(gòu)中實施高速緩存一致性目錄的計算機程序產(chǎn)品;以及
[0013]圖5是示出被安排為在多處理器架構(gòu)中實施高速緩存一致性目錄的示例計算設(shè)備的框圖。
【具體實施方式】
[0014]在本【具體實施方式】中,將參考附圖,附圖構(gòu)成了本【具體實施方式】的一部分。在附圖中,除非上下文指出,否則相似的符號通常表示相似的組件。在【具體實施方式】、附圖和權(quán)利要求中所描述的示例性實施例不意在限制。在不偏離本文呈現(xiàn)的主題的精神或范圍的情況下,可以使用其它實施例,并且可以做出其它改變。將易于理解的是,如本文大致描述且如圖中所圖示的,本公開的各方面能夠以各種不同配置來布置、替代、組合、分離和設(shè)計,所有這些都在本文中明確地構(gòu)思出。
[0015]本公開一般尤其涉及與在多處理器架構(gòu)中的高速緩存一致性目錄有關(guān)的方法、裝置、系統(tǒng)、設(shè)備和計算機程序產(chǎn)品。
[0016]簡而言之,大致描述了用于多處理器架構(gòu)中的高速緩存一致性目錄技術(shù)。在一個示例中,晶片中的目錄可以接收對特定塊的請求。目錄可以確定與包括特定數(shù)據(jù)塊的數(shù)據(jù)塊被存儲在晶片中的一個或多個高速緩存中的可能性相關(guān)的塊老化閾值。目錄可以進(jìn)一步分析存儲器以識別指示為存儲特定數(shù)據(jù)塊的特定高速緩存以及識別特定高速緩存的高速緩存缺失數(shù)量。目錄可以識別針對特定數(shù)據(jù)塊的事件發(fā)生時的時間以及基于老化閾值、事件的時間以及高速緩存缺失的數(shù)量來確定是否將對特定數(shù)據(jù)塊的請求發(fā)送至特定高速緩存。
[0017]圖1示出根據(jù)本文中描述的至少一些實施例安排的能夠被用于在多處理器架構(gòu)中實施高速緩存一致性目錄的示例系統(tǒng)。示例系統(tǒng)100可以包括晶片(die) 102,晶片102包括多個片(tile)。針對片118進(jìn)行說明,片118可以包括高速緩存110、處理器或處理器內(nèi)核(以下稱為“處理器”)112和/或目錄114。處理器112可以適于處理包括代碼的數(shù)據(jù)(以下數(shù)據(jù)和/或代碼都稱為“數(shù)據(jù)塊”)。高速緩存110可以被配置為存儲處理器112本地的數(shù)據(jù)塊。目錄114可以包括目錄控制器120。目錄控制器120可以被用于如本文中所解釋的控制目錄114的操作。
[0018]如以下更具體的描述,目錄控制器120可以被配置為生成和/或存儲數(shù)據(jù),用于記錄數(shù)據(jù)已經(jīng)在各個高速緩存中存儲了多久?;诟咚倬彺嫒笔У臄?shù)量以及本文中所描述的其他啟發(fā)式方法,目錄控制器120可以用于確定可能性分析??赡苄苑治隹梢灾甘灸夸浿械母咚倬彺嬉恢滦詳?shù)據(jù)可能過時以及塊可能仍被存儲在由目錄識別的高速緩存中或者可能不再存儲在由目錄識別的高速緩存中的可能性。目錄控制器可以在對塊的請求被發(fā)送至高速緩存之前執(zhí)行此可能性分析。進(jìn)行該分析可以由此在塊不再存儲在高速緩存中的情況下避免浪費的延遲。在目錄控制器確定針對特定塊的高速緩存數(shù)據(jù)過時的示例中,目錄控制器可以將對該特定塊的請求離開晶片而發(fā)送以從主存儲器中取得該特定塊?;诳赡苄苑治龊瓦^時性的確定,目錄中的空間可以被創(chuàng)建,并且條目被剔除(evicted)。
[0019]晶片102可以包括片118、130-144的矩陣(例如,陣列),它們包括各自的高速緩存110、150-164。每一片還可以包括各自的處理器112和/或目錄114中的一個或多個。晶片102中的每個片可以如在同構(gòu)布置(homogenous arrangement)中是大致相同的,或者一些片可以如在異構(gòu)布置中是不同的。晶片102可以被設(shè)置為與另一晶片103通信,從而使得數(shù)據(jù)可以在多個晶片之間共享。
[0020]目錄114可以包括存儲器,該存儲器標(biāo)識(例如,索引)與存儲在晶片102的片中的每個數(shù)據(jù)塊相關(guān)聯(lián)的位置。目錄114可以被定位在晶片102上的單個片中,或者分布在一些或者所有片之間。如果目錄114是分布式的,例如,第一范圍的地址(例如0x0000-0x1000)可以被存儲在第一片中,第二范圍的地址(例如0x1001-0x2000)被存儲在第二片中,等等。圖中的目錄114由此可以示出整個晶片目錄的第一部分,其中該第一部分可以被存儲在片118中并且額外的部分可以被存儲在其他片(例如片130、131、132等等)中。
[0021]目錄114可以包括存儲在晶片102中的塊的列表連同塊的狀態(tài)以及哪些高速緩存可能正在共享該塊