定位多核處理器中的被高速緩存的數(shù)據(jù)的制作方法
【專利說明】
【背景技術】
[0001]除非在本文中另外表明,否則本部分中所述的方法對于本申請中的權利要求來說不是現(xiàn)有技術并且不由于包括在本部分中而被承認是現(xiàn)有技術。
[0002]許多現(xiàn)代的計算系統(tǒng)利用具有兩個或多個核的多核處理器,這些核互相配合工作以提高性能并且高效地處理多個任務和線程。執(zhí)行單個和多個線程應用所需的數(shù)據(jù)可被存儲在多核處理器的多個核的高速緩存上,其中用于存儲數(shù)據(jù)的核可以不同于用于執(zhí)行單個或多個線程的那些核。在操作期間,可從多個核上的被高速緩存的位置訪問這樣的數(shù)據(jù),并且可能需要確定存儲器地址的被高速緩存的位置。
[0003]針對多核處理器實施的高速緩存一致性協(xié)議可合并確定存儲器地址的被高速緩存的位置的功能。例如,集中式目錄可被用來確定給定存儲器地址的被高速緩存的位置。在某些多核處理器中,可實施分布式目錄,在分布式目錄中,對一個或多個存儲器地址的查找請求可被發(fā)送到目錄,隨后,在目錄中搜索存儲器地址。在其它多核處理器中,核等級目錄可被用來確定某些存儲器地址的位置。
[0004]概述
[0005]以下概要僅僅是說明性的,而并不意圖以任何方式是限制性的。除了說明性的方面,上述實施例和特征、另外的方面、實施例和特征將通過參考附圖和下面的詳細描述而變得顯而易見。
[0006]本文中一般地描述了與管理多核處理器中的被高速緩存的存儲器地址相關的技術。所述的各種技術可應用于方法、系統(tǒng)、裝置或它們的組合。
[0007]根據(jù)本公開的一些示例,描述了與管理多核處理器裝置中的被高速緩存的存儲器地址相關的各種方法。一些示例方法可包括監(jiān)視多核處理器裝置的多個核的多個高速緩存中的一個或多個和主存儲器之間的通信??苫诒O(jiān)視的通信來標識被所述多個核中的每個高速緩存的一個或多個存儲器地址??僧a(chǎn)生被所述多個核高速緩存的所述一個或多個存儲器地址的位置的概率存儲器地址分布表,并且可基于概率存儲器地址分布表來預測給定存儲器地址的位置。
[0008]根據(jù)本公開的另外的示例,描述了與管理多核處理器裝置中的被高速緩存的存儲器地址相關的另外的方法。一些示例方法可包括產(chǎn)生被多核處理器裝置的多個核中的一個或多個高速緩存的一個或多個存儲器地址的概率存儲器地址分布表??稍诙嗪颂幚砥餮b置的多個核中的第一核上執(zhí)行一個或多個線程??蓸俗R在第一核的片上高速緩存上執(zhí)行所述一個或多個線程期間將訪問的存儲器地址。可基于產(chǎn)生的概率存儲器地址分布表來在多核處理器裝置的其它核的一個或多個片上高速緩存上預測標識的存儲器地址的位置。隨后可從預測的位置訪問與標識的存儲器地址相關聯(lián)的數(shù)據(jù)。
[0009]根據(jù)本公開的還有的另外的示例,描述了多核處理器裝置。所述的一些多核處理器裝置可包括多個核。所述核中的每個可與一個或多個片上高速緩存相關聯(lián),其中所述核中的一個或多個可包括位置預測模塊。多核處理器裝置可包括存儲器地址摘要器,其被配置為監(jiān)視所述一個或多個片上高速緩存和主存儲器之間的通信以產(chǎn)生概率存儲器地址分布表。概率存儲器地址分布表可由存儲器地址摘要器使用在所述多個核的一個或多個片上高速緩存中被高速緩存的多個存儲器地址來產(chǎn)生。每個位置預測模塊可被配置為基于概率存儲器地址分布表來預測給定存儲器地址的位置。
[0010]根據(jù)本公開的另外的示例,描述了另外的多核處理器裝置。一些示例多核處理器裝置可包括多個核。每個核可與一個或多個片上高速緩存相關聯(lián)。多核處理器裝置可包括被配置為促進多個核之間的通信的多個路由器。所述多個路由器中的每個可包括被耦合到對應路由器的輸出連接路徑的核中的一個或多個的多個片上高速緩存存儲的存儲器地址的概率存儲器地址分布表。概率存儲器地址分布表可被用來基于存儲的存儲器地址分布來預測給定存儲器地址的位置。
【附圖說明】
[0011]在附圖中:
[0012]圖1是用于管理多核處理器裝置中的被高速緩存的存儲器地址的處理的示圖;
[0013]圖2是說明示例多核處理器裝置的功能部件的示意圖;
[0014]圖3說明圖2的多核處理器裝置的存儲器地址摘要器產(chǎn)生的示例概率存儲器地址分布表;
[0015]圖4說明圖2的多核處理器裝置的存儲器地址摘要器產(chǎn)生的另一示例概率存儲器地址分布表;
[0016]圖5是說明另一示例多核處理器裝置的功能部件的示意圖;
[0017]圖6說明根據(jù)本文中所述的至少一些實施例布置的、圖5的多核處理器裝置的示例路由器;以及
[0018]圖7是說明被布置用于管理多核處理器中的被高速緩存的存儲器地址的示例計算裝置的框圖;
[0019]所有附圖都是依照本文所述的至少一些實施例來安排的。
【具體實施方式】
[0020]在以下詳細描述中,對附圖進行參考,所述附圖形成詳細描述的一部分。除非上下文另外指示,否則在附圖中,相似的符號通常標識相似的部件。在詳細描述、附圖和權利要求中描述的說明性實施例并不意味著是限制性的。在不脫離本文所提供的主題的精神或范圍的情況下,可以利用其它實施例,以及可以進行其它改變。將易于理解的是,如在本文中一般地描述的和在圖中示出的那樣,本公開的各方面可以以廣泛多樣的不同配置被布置、替代、組合、分割和設計,所有這些在本文中都被明確地構(gòu)想。
[0021]本公開的示例實施例一般地針對用于管理多核處理器裝置中的被高速緩存的存儲器地址的技術。多核處理器裝置可包括多個核,每個核可包括一個或多個片上高速緩存,其可被布置為在物理上緊密鄰近相應的核。存儲器位置可被高速緩存在所述一個或多個片上高速緩存中。在所述的實施例中,概率技術可被用來使用將被訪問的存儲器位置的存儲器地址定位給定存儲器地址的片上位置。使用下述概率技術預測存儲器地址的高速緩存位置可能使得定位存儲器地址的查找時間大幅縮短。所述技術對于具有大量核(例如,1000個或更多個核)的多核處理器裝置可能是可伸縮的。
[0022]圖1是根據(jù)本文中所述的至少一些實施例布置的、用于管理多核處理器裝置中的被高速緩存的存儲器地址的示例過程100的示圖。過程100可包括如方框102-108中的一個或多個所示的一個或多個操作、功能或動作。盡管方框按順序的次序示出,但是這些方框也可并行地執(zhí)行,和/或按與本文中所述的次序不同的次序執(zhí)行。另外,各個方框可基于期望的實施方式而被組合為更少的方框,被劃分為附加的方框,和/或被去除。過程100可從方框102開始。
[0023]在方框102,“監(jiān)視多核處理器裝置的多個高速緩存和主存儲器之間的通信”,可監(jiān)視并分析在多核處理器裝置的多個核的多個高速緩存和主存儲器之間傳送的消息。每個核可與一個或多個片上高速緩存(諸如等級1 (L1)高速緩存和/或等級2 (L2)高速緩存)相關聯(lián)。另外,可存在可被多個核中的兩個或更多個核訪問的其它片上高速緩存,諸如共享高速緩存。在一些示例中,一個核在執(zhí)行一個或多個線程期間所用的數(shù)據(jù)可被高速緩存在多核處理器裝置的其它核的高速緩存中。而且,該數(shù)據(jù)也可被高速緩存在核中的兩個或更多個之間的共享高速緩存中。在一個實施例中,多個核的多個高速緩存中的每個高速緩存條目可包括在主存儲器中被高速緩存的數(shù)據(jù)的至少一部分的被高速緩存的副本。
[0024]每個片上高速緩存和主存儲器之間的通信可由多核處理器裝置的存儲器地址摘要器監(jiān)視。在一個示例中,多核處理器裝置可包括附加的處理核,其可被配置為執(zhí)行線程,該線程可通過監(jiān)視請求處理核的地址以及從共享高速緩存和/或主存儲器提取的數(shù)據(jù)來動態(tài)地概括高速緩存的數(shù)據(jù)的片上位置的分布。在其它示例中,多核處理器裝置的處理核中的一個或多個可被配置為充當存儲器地址摘要器。
[0025]在一個示例中,可監(jiān)視核的片上高速緩存(諸如L1高速緩存或L2高速緩存)和共享高速緩存之間的通信。在另一示例中,可監(jiān)視共享高速緩存和主存儲器之間的通信。在又一示例中,可監(jiān)視片上高速緩存(諸如L1高速緩存或L2高速緩存)和主存儲器之間的通信。在另一示例中,可監(jiān)視兩個或更多個核的片上高速緩存(例如,L2高速緩存)之間的通信。這樣的通信可通過通信總線或互連網(wǎng)絡來傳載。在某些示例中,可監(jiān)視向片上高速緩存、共享高速緩存和主存儲器請求數(shù)據(jù)的核的存儲器地址以及從片上高速緩存、共享高速緩存和主存儲器提取的數(shù)據(jù)。
[0026]處理可從方框102繼續(xù)進行到方框104,“標識被多個核中的一個或多個核高速緩存的一個或多個存儲器地址”。在方框104,多核處理器裝置的存儲器地址摘要器基于監(jiān)視的通信來標識被多個核中的一個或多個核高速緩存的一個或多個存儲器地址。在一些示例中,可對在核或片上高速緩存和主存儲器之間傳送的消息進行分析以標識被相應的核高速緩存的一個或多個存儲器地址。
[0027]處理可從方框104繼續(xù)進行到方框106,“產(chǎn)生所述一個或多個存儲器地址的位置的存儲器地址分布表”。在方框106,存儲器地址摘要器可產(chǎn)生被所述多個核中的每個核高速緩存的所述一個或多個存儲器地址的位置的存儲器地址分布表。在操作期間,可在多核處理器裝置的每個核上執(zhí)行一個或多個線程。在這樣的執(zhí)行期間,存儲器地址摘要器可標識一個或多個存儲器地址。此外,可通過對這樣的請求進行分析來監(jiān)視請求被高速緩存的數(shù)據(jù)的相應的核的核/高速緩存標識編號。這樣的核/高速緩存標識編號可被存儲器地址摘要器用來當在多核處理器上執(zhí)行一個或多個線程期間從一個或多個高速緩存和/或從主存儲器提取數(shù)據(jù)時構(gòu)建存儲器地址分布表。下面將參照圖4來描述存儲器地址分布表的細節(jié)。在一些示例中,附加核可被用來監(jiān)視請求核的