新四季網

向處理器核分配高速緩衝存儲器關聯性的製作方法

2023-11-11 23:26:17

專利名稱:向處理器核分配高速緩衝存儲器關聯性的製作方法
向處理器核分配高速緩衝存儲器關聯性
背景技術:
在包括個人計算機(PC)、伺服器和嵌入式領域的主要市場份額中,多核處理器已作為主流計算平臺而出現。隨著給定晶片上處理器核的數目增長,對該晶片的本地存儲器的潛在需求也增長。當處理器執行指令時,例如,處理器首先查看其片上高速緩存(cache) 來找尋與該指令關聯的數據,以避免更加耗時地在其他地方(例如,非片上或在主存晶片上)搜索該數據。多個處理器核可以共享單個高速緩存,無論是主高速緩存還是高速緩存分級結構內其他位置的高速緩存,例如L2或L3高速緩存。對於多個核,多個輸入應用流在搜尋共享的高速緩存空間時可能彼此幹擾,結果,可能導致共享的高速緩存並且因此導致處理器的工作效率不高。與多核有關的其他因素也可能降低效率。然而,不是所有應用都大大受益於額外高速緩存資源的可用性。一個示例是流傳輸(streaming)應用,其中數據被取到高速緩存中,接受處理,然後不太可能被再次使用。 因此,不同類型的應用以平等的優先級共享高速緩存空間,這可能導致高速緩存資源的非最優分配。由於對離片存儲的額外要求,使用共享的高速緩存而導致的處理器核之間的衝突可能在等待時間和功率方面代價較高。

發明內容
大體上描述了一種技術,涉及具有多個處理器核以及由至少一些處理器核共享的高速緩衝存儲器的多核處理器。多核處理器可以配置為向每個處理核單獨地分配相應的高速緩衝存儲器關聯性級別。在一個示例中,提供了一種計算系統。該計算系統可以包括多核處理器、高速緩衝存儲器、以及耦接至多核處理器的高速緩存控制器。多核處理器可以包括多個單獨的處理器核。高速緩衝存儲器可以配置為對於多個單獨處理器核中的至少一些是可訪問的。高速緩存控制器可以配置為分配高速緩衝存儲器內的存儲空間。高速緩存控制器還可以配置為促進多個單獨處理器核中的至少一些以相應的關聯性級別來訪問高速緩衝存儲器,其中相應的關聯性級別對於多個單獨處理器核中的至少一些而言是不同的。在另一示例中,提供了一種允許多個處理器核訪問高速緩衝存儲器的方法。該方法可以包括向多個處理器核中的每一個分配相應的高速緩衝存儲器關聯性級別。分配給多個處理器核中至少一個處理器核的高速緩衝存儲器關聯性級別可以不同於分配給多個處理器核中至少另一個處理器核的高速緩衝存儲器關聯性級別。該方法還可以包括促進多個處理器核中的每一個以分配的相應關聯性級別來訪問高速緩衝存儲器。在又一示例中,提供了一種計算機可訪問介質,其上存儲有計算機可執行指令,用於執行在計算系統中允許多個處理器核訪問高速緩衝存儲器的過程。該過程可以包括向多個處理器核中的每一個分配相應的高速緩衝存儲器關聯性級別。分配給多個處理器核中至少一個處理器核的高速緩衝存儲器關聯性級別可以不同於分配給多個處理器核中至少另一個處理器核的高速緩衝存儲器關聯性級別。該過程還可以包括允許多個處理器核中的每一個處理器以分配的相應關聯性級別對高速緩衝存儲器進行訪問。
雖然公開了多個示例,但是根據下面的詳細描述,其他示例對於本領域技術人員而言是明顯的。明顯可見,這裡描述的系統、設備和方法可以在多個明顯方面進行修改,這全部在這裡教義的精神和範圍內。因此,詳細描述應視為本質上是示例性而非限制性的。


根據以下說明和所附權利要求,結合附圖,本公開的前述和其他特徵將更加清楚。 在認識到這些附圖僅僅示出了根據本公開的一些示例且因此不應被認為是限制本公開範圍的前提下,通過使用附圖以額外的特徵和細節來詳細描述本公開。附圖中圖1是示出了多核處理器的示意圖;圖2是示出了共享高速緩衝存儲器的示意圖;圖3是示出了具有按處理器核分別分配的關聯性級別的高速緩衝存儲器示例的示意圖;圖4是示出了多個處理器核的示例的框圖,每個處理器核可以輸出地址;圖5是示出了由多個處理器核輸出的地址組成示例的示意圖;圖6是配置為將高速緩衝存儲器中存儲的標籤與來自處理器核的地址的一部分相比較的比較器的框圖;圖7是示出了具有按處理器核分別分配的關聯性級別的高速緩衝存儲器另一示例的示意圖;圖8是示出了高速緩存分配處理的框圖;圖9是示出了高速緩存分配系統和處理的框圖;以及圖10示出了存儲有指令以將多核處理器配置為使處理線程為可高速緩存或不可高速緩存的任何計算機可讀介質的示例,全部是根據本公開的至少一些示例而布置的。
具體實施例方式在以下詳細說明中,參考了作為詳細說明一部分的附圖。在附圖中,類似符號通常表示類似部件,除非上下文另行指明。
具體實施方式
部分、附圖和權利要求書中記載的示例性實施例並不是限制性的。在不脫離在此所呈現主題的精神或範圍的情況下,可以利用其他實施例,且可以進行其他改變。應當理解,在此一般性記載以及附圖中圖示的本公開的各方案可以按照在此明確和隱含公開的多種不同配置來設置、替換、組合、分割和設計。本公開涉及方法、設備、系統和電腦程式產品,它們涉及將高速緩存內的存儲空間單獨地分配給訪問該高速緩存的各個單獨處理器核。在多核處理器系統中,多個應用可以在分離的處理器核上並行運行,每個處理器核具有其自己的存儲需求。然而,存儲空間是有限的。依據晶片的設計,各個單獨的處理器核可能不得不與一個或多個其他處理器核共享本地存儲空間。該本地存儲器可以包括例如2級(U)或3級(U)高速緩存。多核處理器中一些核的需求可能不同於處理器中其他核的需求,這些需求也可能隨時間而改變。一種這樣的需求可以是實現足夠的處理性能而需要的高速緩衝存儲器的量和/或特性。例如,一個核在訪問如下高速緩衝存儲器時可以充分工作該高速緩衝存儲器被直接映射從而主存儲器中某一地址處存儲的數據可以僅存儲在該高速緩衝存儲器中的一個位置處。這種類型的高速緩衝存儲器可以提供較小的等待時間,該特性以較低的高速緩存命中率為代價,這對於該核的最優性能可能不是關鍵的。另一方面,例如,另一核可能能夠在較大等待時間的情況下良好操作,但是可能要求相對高的高速緩存命中率。具有這種需求的核可以在關聯性級別高於直接映射高速緩衝存儲器所提供的關聯性級別的情況下工作得更加高效。例如,主存儲器中某一地址處存儲的數據可以存儲在高速緩衝存儲器中多個不同位置(例如4個位置)之一處。這種高速緩衝存儲器稱為是N路集合關聯的, 其中N是數據可以在高速緩衝存儲器中存儲的位置的數目。正如可由核分配高速緩衝存儲器的關聯性一樣,可以根據多種處理線程的特性來改變是否對主存儲器中存儲的數據或指令進行高速緩存的決策。例如,一些線程可以包含大量指令循環,這可能要求重複地訪問相同的指令。這些線程可以極大地受益於將它們的指令存儲在高速緩存中。其他線程可能主要由具有較低局部性的指令構成,因此不會明顯受益於對指令進行高速緩存。另外的線程可以由按可預測方式執行的指令構成,例如具有極少分支的線程。對這種線程中的指令進行高速緩存也可以提供有限的益處,因為執行這些指令的可預測性使得很容易預取這些指令從而它們可供處理器執行。如本文所述,公開了多核計算環境中對共享高速緩存資源進行高效使用的多種示例。通過識別哪些處理器核可以受益於對具有不同特性的高速緩衝存儲器的訪問,對於多核處理器的不同核而言,不同處理器核能夠訪問高速緩衝存儲器的方式可以不同。例如,對於一個處理器核,高速緩衝存儲器可以是4路集合關聯的;對以另一處理器核,高速緩衝存儲器可以是2路集合關聯的;對於又一處理器核,高速緩衝存儲器可以是直接映射的。此夕卜,由於處理器核的應用執行特性或其他特性隨時間改變,高速緩存關聯性可以動態改變, 從而動態地優化總體系統性能。在其他示例中,如果線程包含預期要以可預測方式執行的指令,或者如果線程包含大量的非循環指令(稱為跨越引用(strided reference)),可以將該線程標記為不可高速緩存的。因為跨越引用是非循環的,所以包含跨越引用的線程可能不受益於被存儲在高速緩衝存儲器中。其他線程可以包含相對較大數目的非跨越指令, 這些線程可以被存儲在高速緩衝存儲器中。圖1是示出了根據本公開至少一些示例的多核處理器100的示意圖。多核處理器 100可以包括具有處理器核陣列102的單個集成電路。處理器核陣列102可以包括某一數目(N)的處理器核104 (1)-104 (N)。可以提供任何適當數目的處理器核104。每個處理器核 104可以一般地具有任何所需配置,包括但不限於微處理器(μΡ)、微控制器(yC)、數位訊號處理器(DSP)或其任意組合。因此,每個處理器核104可以包括用於執行程序指令的邏輯、以及其他功能塊,例如算術邏輯單元(ALU)、浮點單元(FPU)、數位訊號處理核(DSP)核、 寄存器、累加器等。所有核104或其中僅僅一些核可以包括高速緩衝存儲器(未示出)。除了任何核104中的任何高速緩衝存儲器之外,多核處理器100還可以包括高速緩衝存儲器106。高速緩衝存儲器106可以利用任何類型的存儲裝置來實現,其可以是易失性或非易失性的。例如,作為一些示例,可以利用動態隨機存取存儲器(「DRAM」)裝置、靜態隨機存取存儲器(「SRAM」)裝置、或快閃記憶體裝置來實現高速緩衝存儲器106。高速緩衝存儲器106可以處於相對於核104的任何級別處,例如1級高速緩存,在一些示例中可以或者可以不包括附加級別。高速緩衝存儲器106可以由核104中的一些或全部共享。多核處理器100可以包括高速緩存控制器118,高速緩存控制器118可以適配為對核104可以什麼方式來訪問高速緩衝存儲器106加以控制,如下更詳細所述。多核處理器100可以直接或者經由接口設備(例如存儲器控制器12 耦接至主存儲裝置120。主存儲裝置120可以是任何適當形式的存儲器,包括但不限於易失性存儲器如DRAM裝置或SRAM裝置,非易失性存儲器如只讀存儲器(ROM)裝置或快閃記憶體裝置、數據存儲裝置如磁碟存儲設備(例如,硬碟驅動器或HDD)、磁帶存儲設備、光存儲設備(例如,緊緻盤或CD、數字通用盤或DVD),或者可拆卸、不可拆卸、易失性或非易失性等其他機器可讀存儲介質。總線112也可以支持多核處理器100與其他組件(例如輸入輸出(I/O)設備114、外部傳感器等)之間的接口,或者可以是由處理器核104的任何子集共享的資源。如上所述,多核處理器100可以具有任何適當數目的處理器核104。例如,多核處理器100可以具有兩( 個核、四(4)個核、幾十個核、甚至幾百個或更多個處理器核。一些多核處理器可以是同構的,使得每個處理器核使用單一核設計。其他多核處理器可以是異構的,使得一個或多個處理器核可以不同於其他一個或多個處理器核,並且每一個核或一部分核可以設計用於多核處理器100中的不同角色。多核處理器100可以包括核控制器116。核控制器116可以配置為確定各個單獨處理器核104處理哪些處理任務(稱為「線程」)、以及哪些線程要被存儲或不存儲在高速緩衝存儲器106中。該確定可以基於處理器核104所執行的代碼中插入的指示(indicia) 如標誌(flag)。指示可以在從原始碼編譯期間被插入在可執行代碼中,或者可以由處理器核104上運行的作業系統或由一些其他手段來插入。圖1是多核處理器的示意圖,沒有示出這裡所述組件的物理位置。可以理解,這裡描述的多核處理器100是示意性的,其他示例和修改是可能的。例如,設計選擇可以受到如下考慮的驅動硬體尺寸和複雜度相對於性能、熱能和熱耗散、處理器速度、總吞吐量等。本領域技術人員可以理解,多核處理器100可以提供在適當的計算環境中,例如個人計算機(PC)中。計算環境可以包括多核處理器100、主存儲器120、一條或多條總線, 以及一個或多個I/O設備,例如鍵盤、滑鼠、觸控螢幕、顯示設備(例如基於CRT或LCD的監視器)、通用串行總線(USB)或其他埠連接、CD驅動、DVD驅動等等。各種組件之間的總線連接可以使用總線協議如外圍組件互連(PCI)、PCI Express、加速圖形埠(AGP)、 HyperTransport或任何其他適當總線協議來實現,並且不同設備之間的連接可以使用不同協議。PC可以工作於使用邏輯連接至一個或多個遠程計算機的聯網環境中。這種遠程計算機例如可以是其他PC、伺服器、路由器、網絡PC、對等設備或其他常見的網絡節點,並且可以包括以上針於多核處理器100描述的多個元件或全部元件。邏輯連接可以包括例如區域網(LAN)或廣域網(WAN)、內聯網和網際網路。圖2是示出了根據本公開至少一些示例的共享高速緩衝存儲器的示意圖。圖2示出了適合用於多核處理器系統中的多個處理器核201-204。每個處理器核201-204可以具有不同的性能特性,如由核201-204的不同尺寸所代表的那樣。例如,相比於較小的核202 和204(可能適合處理複雜度較低的軟體應用),較大的核201和203可以具有較高性能, 適合比較複雜的軟體應用。要理解,可以提供更多或更少的核,核可以具有統一或變化的尺寸,並且這裡對核的具體描述不是限制性的。圖3是示出了根據本公開至少一些示例的共享高速緩衝存儲器300的示意圖。如圖3所示,高速緩衝存儲器300可以具有在多個處理器核201-204之中單獨分配的不同關聯性級別。每個核201-204可以布置為向/從共享高速緩衝存儲器300傳送數據。高速緩存控制器118(圖1)或者是獨立的或者與核控制器116相組合,可以適配為對每個核201-204 可以什麼方式訪問高速緩衝存儲器300加以控制。高速緩衝存儲器300可以使用任何適當的替換策略來用新的條目移出(evict)高速緩存條目,例如最近最少使用(「LRU」)替換策略。處理器核201-204可以配置為使用任何適當的寫策略向高速緩衝存儲器300寫入指令和數據,例如高速緩衝存儲器300是寫通(write-through)高速緩衝存儲器,其中處理器核 201-204在每次寫入高速緩衝存儲器300時也寫入主存儲器120 ;或者高速緩衝存儲器300 是寫回(write-back)高速緩衝存儲器,其中處理器核201-204在向高速緩衝存儲器300寫入指令或數據時並不立即將指令或數據寫入主存儲器120。也可以使用其他寫策略。圖4是示出了根據本公開至少一些示例的多個處理器核201-204的框圖,每個處理器核可以輸出地址。更具體地,如圖4所示,每個處理器核201-204可以直接或者通過存儲器控制器(未示出)輸出相應的地址~_4。地址Ay可以用於讀取主存儲器120(圖1) 中以及(可能地)高速緩衝存儲器300中存儲的數據。圖5是示出了根據本公開至少一些示例布置的多個處理器核201-204所輸出的地址Ay的組合的示意圖。如圖5所示,地址Ay可以由多個地址位構成,這些地址位可以劃分成低階地址位Ap中階地址位AM、和高階地址位Ah。在每個組中放置哪些位的選擇可以變化,並且可以取決於多個設計參數。中階地址位Am可以用作索引來選擇高速緩衝存儲器 300中的相應存儲單元行。因此,不同索引或不同索引範圍可以選擇高速緩衝存儲器300中的不同存儲單元行。如圖3所示,高速緩衝存儲器300可以在概念上視為三維陣列,其中每個存儲單元行被劃分成多個列,每一列具有一定「深度」的存儲位置,這些存儲位置可以單獨尋址或成組尋址。實際上,圖3所示行的每一列可以是每個第N列,N個介入列作為圖3 所示存儲位置的「深度」。高速緩存控制器118(圖1)或者是獨立的,或者與核控制器116相組合,可以適配為指定高速緩衝存儲器300每一行中的某些列(分別指示)將由處理器核201-204 中的特定一個處理器核來訪問。例如,圖3所示第一行的前4列可以僅由核201訪問,第一行的後續2列可以僅由核202訪問,後續2列中每一列可以分別僅由核203和核204訪問。 如圖3進一步所示,每一列中第一位置存儲供核201-204中特定一個核使用的標籤1\_4。標籤IV4可以包括存儲地址的高階位Ah。因此,例如,第一行的前4列可以存儲與可由處理器核201訪問的數據對應的四個標籤1\。第一行的後續2列可以存儲與可由處理器核202訪問的數據對應的兩個標籤T2。最後,第一行的後續2列中每一列可以分別存儲與可由處理器核203和204訪問的數據分別對應的單個標籤T3和Τ4。與每個標籤IV4對應的數據可以存儲在每一列中的存儲位置中,並且該數據可以通過低階地址位慫而訪問。圖6是根據本公開至少一些示例,配置為將高速緩衝存儲器300中存儲的標籤與來自處理器核201-204之一的地址的一部分相比較的比較器500的框圖。在操作中,例如, 處理器核201可以發布地址A1以從主存儲器120中讀取數據。地址A1的中階位Am用作索引以訪問高速緩衝存儲器300中對應的存儲單元行中存儲的標籤。如圖5所示,將行的前4 列中的標籤T1順序地施加至比較器500,比較器500可以是高速緩存控制器118(圖1)的一部分,一些其他組件的部分,或者是獨立的裝置。然後,比較器500可以將每個標籤T1與地址A1的高階地址位A1^H比較。在匹配的情況下,比較器500輸出「命中」指示,其指示了與地址A1對應的數據存儲在高速緩衝存儲器300中以及在主存儲器120中。該命中指示可以由高速緩存控制器118用來通過使用低階地址位Ai而訪問與地址A1對應的數據,從而訪問在對應於索引Am的行和存儲了標籤T的列中存儲的該數據。如上所述以及如圖3所示,與處理器核201發布的存儲地址A1對應的數據可以存儲在由地址A1的中階地址位Am指定的行的4列中任何一列中。只要處理器核201正在讀取的數據可以存儲在高速緩衝存儲器300中4列中的任何一列中(由列C1指示),高速緩衝存儲器300就可以視為對於處理器核201而言是4路集合關聯的。然而,根據本公開的原理,高速緩衝存儲器300針對其他處理器核202-204可以具有不同的關聯性級別。例如, 處理器核202正在讀取的數據可以存儲在高速緩衝存儲器300中2列中的任何一列中(由列C2指示),從而高速緩衝存儲器300可以視為對於處理器核202而言是2路集合關聯的。 最後,由於處理器核203、204各自正在讀取的數據可以分別存儲在僅一列(分別由(3丄4指示)中,所以高速緩衝存儲器300可以視為對於處理器核203和204而言是直接映射的。例如,每個處理器核201-204的關聯性級別可以基於每個處理器核的特性或能力,或者基於正由每個處理器核運行的軟體的性質。雖然每個處理器核201-204的關聯性級別可以是固定的,但是在一些示例中,每個處理器核201-204的關聯性級別可以是動態的,使得關聯性級別可以隨條件變化而改變,條件例如是正由處理器核運行的軟體的性質。在這種情況下,高速緩存控制器118可以是可重新編程的,以響應於對主存儲器120的每次寫入,在高速緩衝存儲器300中存儲標籤,標籤在數目上與處理器核的當前關聯性級別相對應。例如,如果對於處理器核202,高速緩衝存儲器300的關聯性級別從2路集合關聯增加到3路集合關聯,則對於處理器核201 的高速緩衝存儲器300的關聯性級別可以對應地從4路集合關聯降低到3路集合關聯。在這種情況下,圖3中C1指示的第4列可以由處理器核202訪問,並且現在由C2指示。雖然針對每個處理器核201-204,高速緩衝存儲器300的關聯性級別對於所有存儲單元行可以是相同的,但是在一些實施例中,高速緩存控制器118可以為高速緩衝存儲器300設定關聯性級別,該關聯性級別隨處理器核201-204而逐行地改變。例如,高速緩衝存儲器300的行N可以是對於處理器核201而言是4路集合關聯的,並且在高速緩衝存儲器300的行N+M中,可以是對於處理器核201而言是2路集合關聯的。雖然圖3的示例中所示的高速緩衝存儲器300的每一列可以僅由各個處理器核 201-204中單個處理器核來訪問,但是在其他實施例中,高速緩衝存儲器300的每一列可以由各個處理器核201-204中的一個或多個處理器核來訪問。例如,圖7是示出了根據本公開至少一些其他示例的共享高速緩衝存儲器300的示意圖。如圖7所示,由高速緩存控制器118(獨立的或者與核控制器116相組合)控制對高速緩衝存儲器300的訪問。高速緩存控制器118可以適配為依據可以存儲在高速緩衝存儲器300每一行中的每一列(C1-C4) 的第一位置中的相應位矢量V的值,指定該相應列由處理器核201-204中的任意一個或多個來訪問。例如,位矢量V可以是4位矢量,其中該矢量的每個位對應於處理器核201-204 中的相應一個。如果位矢量是「1」,則該列可以由處理器核201-204中對應的一個來訪問。 例如,如果一列的位矢量V是「 1010」,則該列可以由處理器核201或處理器核203訪問。在一列具有位矢量V 「1111」的情況下,該列可以由四個處理器核201-204中的任何一個來訪問。
無論每一列的位矢量V的具體值如何,每一列的第一位置存儲標籤T,供可以訪問該列的核201-204使用。標籤T可以具有與圖3的高速緩衝存儲器300中存儲的標籤1\_4 相同的構成,並且可以按照與圖3的高速緩衝存儲器300中存儲的標籤IV4相同的方式來使用。具體而言,可以通過低階地址位A^來訪問標籤T,然後比較器500可以將每個標籤T 與地址A1的高階地址位A1^H比較。在匹配的情況下,比較器500輸出「命中」指示,該命中指示可以由高速緩存控制器118用來訪問與地址A1對應的數據。根據本公開的另一方面,高速緩存控制器118可以配置為至少部分地基於處理器核201-204上正在運行的執行應用線程(以下稱為「線程」),確定是否對主存儲器120中存儲的數據進行高速緩存。例如,一個應用可以在線程中的指令或線程使用的數據存儲在高速緩衝存儲器300中時更加高效地操作,而另一應用的效率可能不會明顯受益於線程中的指令或線程使用的數據存儲在高速緩衝存儲器300中。例如,可以參照線程的局部性 (locality)來完成將指令或數據存儲在高速緩衝存儲器300中的決定。例如,在應用程式內,一些指令可以是循環的(執行多於一次),而其他指令可以是非循環的(僅執行一次)。 這種非循環指令稱為跨越引用。由於跨越引用是非循環的,例如,相同指令不重複多於一次,所以跨越引用可能不受益於被存儲在高速緩衝存儲器300中。另外的指令可以按可預測方式執行,在這種情況下可以從主存儲器120中預取指令,從而減少了將指令存儲在高速緩衝存儲器中的需求。圖8是示出了根據本公開至少一些示例的高速緩存分配處理的框圖。如圖8所示, 來自計算環境500的指令可以包含多個執行線程501-502,該指令可以被發送至分支預測器600以確定該指令是循環的(例如,分支預測器600是否已看到該指令多次)還是非循環的。如果分支預測器600確定指令是非循環的,即是跨越引用,則可以用不可高速緩存標誌來標記該指令,使得絕不將該指令發送給共享高速緩衝存儲器300 [方框601]。備選地, 如果分支預測器600確定指令是循環的[方框602],則可以將指令發送給高速緩衝存儲器 300。由此,可以將對高速緩衝存儲器300的訪問限制到可以更顯著地受益於高速緩存空間的那些指令。要理解,軟體應用執行特性可以動態地改變。因此,在本文公開的一個或多個示例中,用不可高速緩存標誌來標記指令的決定(方框601)可以配置為以動態方式隨時間改變。圖9是示出了根據本公開至少一些示例的高速緩存分配的系統和處理的框圖。如圖9所示,計算機系統700可以包括處理器701,處理器701配置為執行用於劃分共享高速緩存的處理示例。在其他示例中,可以在處理器701外部執行該處理的多種操作或多種操作的一部分。在操作702,該處理可以包括確定與處理器核201-204中的至少一個(一個或多個)關聯的至少一個(一個或多個)執行線程的特性。在操作704,該處理可以包括核控制器116(圖1)至少部分地基於線程的特性,使用與多核處理器耦合的軟體,分別向各個處理器核201-204分配高速緩衝存儲器300內的存儲空間。圖10示出了根據本公開至少一些示例的任何計算機可讀介質802的示例,計算機可讀介質802布置為存儲指令,以將多核處理器配置為使處理線程為可高速緩存的或不可高速緩存的。計算機可讀介質802可以是電腦程式產品800如作業系統、編譯器或應用程式的一部分。計算機可讀介質802可以適配為存儲指令804,指令804可以布置為將多核處理器配置為執行前述處理或方法中的一個或多個。這些指令804例如可以包括一個或多個可執行指令806,用於確定處理線程包含跨越引用的程度。計算機可讀介質802中存儲的可執行指令804也可以包括可執行指令808,用於將多核處理器配置為基於處理線程是否包含跨越引用的確定,將線程標記為可高速緩存的或不可高速緩存的。計算機可讀介質802中存儲的另一可執行指令810可以布置為將多核處理器配置為,將線程中的尚未被標記為不可高速緩存的指令或已被標記為可高速緩存的指令存儲在高速緩衝存儲器中。以上描述了基於處理器核的高速緩存分配的多個示例。下面是基於處理器的高速緩存分配的方法和系統的具體示例。這些示例僅僅是為說明目的,不是限制性的。第一示例中公開了一種計算系統,包括多核處理器、可由至少兩個處理器核訪問的至少一個高速緩衝存儲器、以及與多核處理器耦接的高速緩存控制器,該高速緩存控制器用於向訪問高速緩衝存儲器的各個單獨處理器核分別分配高速緩衝存儲器關聯性。在一些其他示例中,可以至少部分地基於處理器核的硬體特性,向處理器核分配高速緩衝存儲器關聯性。在其他示例中,可以至少部分地基於與處理器核關聯的一個或多個執行線程的執行特性,向處理器核分配高速緩衝存儲器關聯性。在一些另外的示例中,可以動態地實現高速緩衝存儲器關聯性的分配,使得高速緩衝存儲器關聯性可以隨時間改變。在這些和其他示例中,可以針對高速緩衝存儲器的不同行,分別確定高速緩衝存儲器關聯性。在另外的其他示例中,系統或軟體包括一個或多個組件(例如分支預測器),配置為識別處理線程中的跨越引用,並用不可高速緩存標誌來標記該線程,從而不將該線程的指令存儲在高速緩衝存儲器內。本公開不限於在本申請中描述的具體示例,這些具體示例意在說明不同方案。本領域技術人員清楚,不脫離本公開的精神和範圍,可以做出許多修改和變型。本領域技術人員根據之前的描述,除了在此所列舉的方法和裝置之外,還可以想到本公開範圍內功能上等價的其他方法和裝置。這種修改和變型應落在所附權利要求的範圍內。本公開應當由所附權利要求的術語及其等價描述的整個範圍來限定。應當理解,本公開不限於具體方法、試齊U、化合物組成或生物系統,這些都是可以改變的。還應理解,這裡所使用的術語僅用於描述具體示例的目的,而不應被認為是限制性的。至於本文中任何關於多數和/或單數術語的使用,本領域技術人員可以從多數形式轉換為單數形式,和/或從單數形式轉換為多數形式,以適合具體環境和/或應用。為清楚起見,在此明確聲明單數形式/多數形式可互換。本領域技術人員應當理解,一般而言,所使用的術語,特別是所附權利要求中(例如,在所附權利要求的主體部分中)使用的術語,一般地應理解為「開放」術語(例如,術語 「包括」應解釋為「包括但不限於」,術語「具有」應解釋為「至少具有」等)。本領域技術人員還應理解,如果意在所引入的權利要求中標明具體數目,則這種意圖將在該權利要求中明確指出,而在沒有這種明確標明的情況下,則不存在這種意圖。例如,為幫助理解,所附權利要求可能使用了引導短語「至少一個」和「一個或多個」來引入權利要求中的特徵。然而,這種短語的使用不應被解釋為暗示著由不定冠詞「一」或「一個」引入的權利要求特徵將包含該特徵的任意特定權利要求限制為僅包含一個該特徵的實施例, 即便是該權利要求既包括引導短語「一個或多個」或「至少一個」又包括不定冠詞如「一」或 「一個」(例如,「一」和/或「一個」應當被解釋為意指「至少一個」或「一個或多個」);在使用定冠詞來引入權利要求中的特徵時,同樣如此。另外,即使明確指出了所引入權利要求特徵的具體數目,本領域技術人員應認識到,這種列舉應解釋為意指至少是所列數目(例如, 不存在其他修飾語的短語「兩個特徵」意指至少兩個該特徵,或者兩個或更多該特徵)。另外,在使用類似於「A、B和C等中至少一個」這樣的表述的情況下,一般來說應該按照本領域技術人員通常理解該表述的含義來予以解釋(例如,「具有A、B和C中至少一個的系統」應包括但不限於單獨具有A、單獨具有B、單獨具有C、具有A和B、具有A和C、具有B和C、和/或具有A、B、C的系統等)。在使用類似於「A、B或C等中至少一個」這樣的表述的情況下,一般來說應該按照本領域技術人員通常理解該表述的含義來予以解釋(例如,「具有A、B或C中至少一個的系統」應包括但不限於單獨具有A、單獨具有B、單獨具有 C、具有A和B、具有A和C、具有B和C、和/或具有A、B、C的系統等)。本領域技術人員還應理解,實質上任意表示兩個或更多可選項目的轉折連詞和/或短語,無論是在說明書、權利要求書還是附圖中,都應被理解為給出了包括這些項目之一、這些項目任一方、或兩個項目的可能性。例如,短語「A或B」應當被理解為包括「A」或「B」、或「A和B」的可能性。另外,在以馬庫什組描述本公開的特徵或方案的情況下,本領域技術人員應認識至IJ,本公開由此也是以該馬庫什組中的任意單獨成員或成員子組來描述的。本領域技術人員應當理解,出於任意和所有目的,例如為了提供書面說明,這裡公開的所有範圍也包含任意及全部可能的子範圍及其子範圍的組合。任意列出的範圍可以被容易地看作充分描述且實現了將該範圍至少進行二等分、三等分、四等分、五等分、十等分等。作為非限制性示例,在此所討論的每一範圍可以容易地分成下三分之一、中三分之一和上三分之一等。本領域技術人員應當理解,所有諸如「直至」、「至少」、「大於」、「小於」之類的語言包括所列數字,並且指代了隨後可以如上所述被分成子範圍的範圍。最後,本領域技術人員應當理解,範圍包括每一單獨數字。因此,例如具有1 3個單元的組是指具有1、2 或3個單元的組。類似地,具有1 5個單元的組是指具有1、2、3、4或5個單元的組,以此類推。以上的詳細描述通過使用方框圖、流程圖和/或示例,已經闡述了設備和/或工藝的眾多實施例。在這種方框圖、流程圖和/或示例包含一個或多個功能和/或操作的情況下,本領域技術人員應理解,這種方框圖、流程圖或示例中的每一功能和/或操作可以通過各種硬體、軟體、固件或實質上它們的任意組合來單獨和/或共同實現。在一個實施例中, 本公開所述主題的若干部分可以通過專用集成電路(ASIC)、現場可編程門陣列(FPGA)、數位訊號處理器(DSP)、或其他集成格式來實現。然而,本領域技術人員應認識到,這裡所公開的實施例的一些方面在整體上或部分地可以等同地實現在集成電路中,實現為在一臺或多臺計算機上運行的一個或多個電腦程式(例如,實現為在一臺或多臺計算機系統上運行的一個或多個程序),實現為在一個或多個處理器上運行的一個或多個程序(例如,實現為在一個或多個微處理器上運行的一個或多個程序),實現為固件,或者實質上實現為上述方式的任意組合,並且本領域技術人員根據本公開,將具備設計電路和/或寫入軟體和/或固件代碼的能力。此外,本領域技術人員將認識到,本公開所述主題的機制能夠作為多種形式的程序產品進行分發,並且無論實際用來執行分發的信號承載介質的具體類型如何,本公開所述主題的示例性實施例均適用。信號承載介質的示例包括但不限於可記錄型介質,如軟盤、硬碟驅動器、緊緻盤(CD)、數字通用盤(DVD)、數字磁帶、計算機存儲器等;以及傳輸型介質,如數字和/或模擬通信介質(例如,光纖光纜、波導、有線通信鏈路、無線通信鏈路
寸J ο本領域技術人員應認識到,上文詳細描述了設備和/或工藝,此後使用工程實踐來將所描述的設備和/或工藝集成到數據處理系統中是本領域的常用手段。也即,這裡所述的設備和/或工藝的至少一部分可以通過合理數量的試驗而被集成到數據處理系統中。 本領域技術人員將認識到,典型的數據處理系統一般包括以下各項中的一項或多項系統單元外殼;視頻顯示設備;存儲器,如易失性和非易失性存儲器;處理器,如微處理器和數位訊號處理器;計算實體,如作業系統、驅動程序、圖形用戶接口、以及應用程式;一個或多個交互設備,如觸摸板或屏幕;和/或控制系統,包括反饋環和控制電機(例如,用於感測位置和/或速度的反饋;用於移動和/或調節成分和/或數量的控制電機)。典型的數據處理系統可以利用任意合適的商用部件(如數據計算/通信和/或網絡計算/通信系統中常用的部件)予以實現。本公開所述的主題有時說明不同部件包含在不同的其他部件內或者不同部件與不同的其他部件相連。應當理解,這樣描述的架構只是示例,事實上可以實現許多能夠實現相同功能的其他架構。在概念上,有效地「關聯」用以實現相同功能的部件的任意設置,從而實現所需功能。因此,這裡組合實現具體功能的任意兩個部件可以被視為彼此「關聯」從而實現所需功能,而無論架構或中間部件如何。同樣,任意兩個如此關聯的部件也可以看作是彼此「可操作地連接」或「可操作地耦合」以實現所需功能,且能夠如此關聯的任意兩個部件也可以被視為彼此「能可操作地耦合」以實現所需功能。能可操作地耦合的具體示例包括但不限於物理上可配對和/或物理上交互的部件,和/或無線交互和/或可無線交互的部件,和/或邏輯交互和/或可邏輯交互的部件。儘管已經在此公開了多個方案和實施例,但是本領域技術人員應當明白其他方案和實施例。這裡所公開的多個方案和實施例是出於說明性的目的,而不是限制性的,本公開的真實範圍和精神由所附權利要求表徵。
權利要求
1.一種計算系統,包括多核處理器,包括多個單獨處理器核;高速緩衝存儲器,配置為對於所述多個單獨處理器核中的至少一些是可訪問的;以及高速緩存控制器,耦接至多核處理器,高速緩存控制器配置為分配高速緩衝存儲器內的存儲空間,高速緩存控制器進一步配置為促進所述多個單獨處理器核中的至少一些以相應的關聯性級別來訪問高速緩衝存儲器,其中相應的關聯性級別對於所述多個單獨處理器核中的至少一些而言是不同的。
2.根據權利要求1所述的計算系統,還包括核控制器,耦接至所述多個單獨處理器核,核控制器配置為確定所述多個單獨處理器核中的每一個將要處理哪些處理任務。
3.根據權利要求1所述的計算系統,還包括核控制器,耦接至所述多個單獨處理器核,核控制器配置為確定要將哪些線程存儲在高速緩衝存儲器中。
4.根據權利要求1所述的計算系統,其中,所述多個單獨處理器核中的至少一些包括相應的分支預測器,分支預測器配置為識別跨越引用,其中,計算系統還包括核控制器,耦接至所述多個單獨處理器核中配置為訪問高速緩衝存儲器的至少一些處理器核,核控制器配置為至少部分地基於對跨越引用的識別來分配高速緩衝存儲器內的存儲空間。
5.根據權利要求1所述的計算系統,還包括核控制器,耦接至所述多個單獨處理器核,核控制器配置為至少部分地基於與每一個單獨處理器核關聯的硬體特性,向單獨處理器核分配高速緩衝存儲器內的存儲空間。
6.根據權利要求1所述的計算系統,其中,高速緩存控制器配置為針對高速緩衝存儲器的每一行,向能夠訪問高速緩衝存儲器的每一個單獨處理器核分配相應的關聯性級別。
7.根據權利要求1所述的計算系統,其中,配置為訪問高速緩衝存儲器的每一個單獨處理器核配置為輸出包括多個中階地址位的地址,並且高速緩存控制器配置為使用所述中階地址位作為索引,來選擇高速緩衝存儲器中相應的存儲單元行。
8.根據權利要求1所述的計算系統,其中,配置為訪問高速緩衝存儲器的每一個單獨處理器核配置為輸出包括多個高階地址位的地址,並且高速緩存控制器配置為使用所述高階地址位作為在高速緩衝存儲器中存儲的相應標籤,其中將來自單獨處理器核之一的地址的高階地址位與所存儲的每一個標籤相比較,高速緩存控制器配置為響應於地址的高階地址位與所存儲的標籤之一之間的匹配,使所述單獨處理器核之一訪問高速緩衝存儲器中與存儲該標籤的位置相對應的位置處存儲的數據。
9.根據權利要求1所述的計算系統,其中,配置為訪問高速緩衝存儲器的每一個單獨處理器核配置為輸出包括多個低階地址位的地址,並且高速緩存控制器配置為使用所述低階地址位來選擇高速緩衝存儲器的行中存儲的數據的多個位。
10.根據權利要求1所述的計算系統,其中,高速緩衝存儲器的每一列配置為存儲位矢量,並且高速緩存控制器配置為使用所述位矢量來確定單獨處理器核中哪個處理器核能夠訪問高速緩衝存儲器的相應列。
11.根據權利要求1所述的計算系統,其中,高速緩存控制器配置為使用寫回高速緩存寫策略,來將指令和數據寫入高速緩衝存儲器。
12.根據權利要求1所述的計算系統,其中,高速緩存控制器配置為至少部分地基於與每一個單獨處理器核關聯的硬體特性,允許配置為訪問高速緩衝存儲器的每一個單獨處理器核以相應的關聯性級別來訪問高速緩衝存儲器。
13.根據權利要求1所述的計算系統,其中,高速緩存控制器配置為至少部分地基於與所述多個單獨處理器核中的至少一些關聯的執行線程的執行特性,允許所述多個單獨處理器核中的所述至少一些以相應的關聯性級別來訪問高速緩衝存儲器。
14.一種允許多個處理器核訪問高速緩衝存儲器的方法,包括向所述多個處理器核中的每一個分配相應的高速緩衝存儲器關聯性級別,分配給所述多個處理器核中至少一個處理器核的高速緩衝存儲器關聯性級別不同於分配給所述多個處理器核中至少另一個處理器核的高速緩衝存儲器關聯性級別;以及促進所述多個處理器核中的每一個以分配的相應關聯性級別來訪問高速緩衝存儲器。
15.根據權利要求14所述的方法,還包括使用最近最少使用替換策略,來移出高速緩衝存儲器中存儲的數據。
16.根據權利要求14所述的方法,其中,向所述多個處理器核中的每一個分配相應的關聯性級別包括針對高速緩衝存儲器的每一行,向所述多個處理器核中能夠訪問高速緩衝存儲器的每一個處理器核分配相應的關聯性級別,分配給一些行的關聯性級別不同於分配給其他行的關聯性級別。
17.根據權利要求14所述的方法,還包括識別包含有多於特定量的非循環指令的線程;用不可高速緩存標誌來標記所識別的線程;以及阻止所標記的線程被存儲在高速緩衝存儲器中。
18.根據權利要求14所述的方法,其中,向所述多個處理器核中的每一個分配相應的關聯性級別包括動態地向所述多個處理器核中的每一個分配相應的關聯性級別,使得所分配的關聯性級別隨時間而改變。
19.一種計算機可訪問介質,其上存儲有計算機可執行指令,用於執行在計算系統中允許多個處理器核訪問高速緩衝存儲器的過程,所述過程包括向所述多個處理器核中的每一個分配相應的高速緩衝存儲器關聯性級別,分配給所述多個處理器核中至少一個處理器核的高速緩衝存儲器關聯性級別不同於分配給所述多個處理器核中至少另一個處理器核的高速緩衝存儲器關聯性級別;以及允許所述多個處理器核中的每一個以分配的相應關聯性級別來訪問高速緩衝存儲器。
20.根據權利要求19所述的計算機可訪問介質,其中,向所述多個處理器核中的每一個分配相應的高速緩衝存儲器關聯性級別包括將所述多個處理器核中的每一個與高速緩衝存儲器的多個行中每一行的特定列相關聯。
全文摘要
總體上描述了一種技術,涉及具有多個處理器核以及由至少一些處理器核共享的高速緩衝存儲器的多核處理器。多核處理器可以配置為向每個處理核單獨地分配相應的高速緩衝存儲器關聯性級別。
文檔編號G06T1/00GK102483840SQ201080036611
公開日2012年5月30日 申請日期2010年6月11日 優先權日2009年8月21日
發明者安德魯·烏爾夫, 託馬斯·馬丁·康特 申請人:英派爾科技開發有限公司

同类文章

一種新型多功能組合攝影箱的製作方法

一種新型多功能組合攝影箱的製作方法【專利摘要】本實用新型公開了一種新型多功能組合攝影箱,包括敞開式箱體和前攝影蓋,在箱體頂部設有移動式光源盒,在箱體底部設有LED脫影板,LED脫影板放置在底板上;移動式光源盒包括上蓋,上蓋內設有光源,上蓋部設有磨沙透光片,磨沙透光片將光源封閉在上蓋內;所述LED脫影

壓縮模式圖樣重疊檢測方法與裝置與流程

本發明涉及通信領域,特別涉及一種壓縮模式圖樣重疊檢測方法與裝置。背景技術:在寬帶碼分多址(WCDMA,WidebandCodeDivisionMultipleAccess)系統頻分復用(FDD,FrequencyDivisionDuplex)模式下,為了進行異頻硬切換、FDD到時分復用(TDD,Ti

個性化檯曆的製作方法

專利名稱::個性化檯曆的製作方法技術領域::本實用新型涉及一種檯曆,尤其涉及一種既顯示月曆、又能插入照片的個性化檯曆,屬於生活文化藝術用品領域。背景技術::公知的立式檯曆每頁皆由月曆和畫面兩部分構成,這兩部分都是事先印刷好,固定而不能更換的。畫面或為風景,或為模特、明星。功能單一局限性較大。特別是畫

一種實現縮放的視頻解碼方法

專利名稱:一種實現縮放的視頻解碼方法技術領域:本發明涉及視頻信號處理領域,特別是一種實現縮放的視頻解碼方法。背景技術: Mpeg標準是由運動圖像專家組(Moving Picture Expert Group,MPEG)開發的用於視頻和音頻壓縮的一系列演進的標準。按照Mpeg標準,視頻圖像壓縮編碼後包

基於加熱模壓的纖維增強PBT複合材料成型工藝的製作方法

本發明涉及一種基於加熱模壓的纖維增強pbt複合材料成型工藝。背景技術:熱塑性複合材料與傳統熱固性複合材料相比其具有較好的韌性和抗衝擊性能,此外其還具有可回收利用等優點。熱塑性塑料在液態時流動能力差,使得其與纖維結合浸潤困難。環狀對苯二甲酸丁二醇酯(cbt)是一種環狀預聚物,該材料力學性能差不適合做纖

一種pe滾塑儲槽的製作方法

專利名稱:一種pe滾塑儲槽的製作方法技術領域:一種PE滾塑儲槽一、 技術領域 本實用新型涉及一種PE滾塑儲槽,主要用於化工、染料、醫藥、農藥、冶金、稀土、機械、電子、電力、環保、紡織、釀造、釀造、食品、給水、排水等行業儲存液體使用。二、 背景技術 目前,化工液體耐腐蝕貯運設備,普遍使用傳統的玻璃鋼容

釘的製作方法

專利名稱:釘的製作方法技術領域:本實用新型涉及一種釘,尤其涉及一種可提供方便拔除的鐵(鋼)釘。背景技術:考慮到廢木材回收後再加工利用作業的方便性與安全性,根據環保規定,廢木材的回收是必須將釘於廢木材上的鐵(鋼)釘拔除。如圖1、圖2所示,目前用以釘入木材的鐵(鋼)釘10主要是在一釘體11的一端形成一尖

直流氧噴裝置的製作方法

專利名稱:直流氧噴裝置的製作方法技術領域:本實用新型涉及ー種醫療器械,具體地說是ー種直流氧噴裝置。背景技術:臨床上的放療過程極易造成患者的局部皮膚損傷和炎症,被稱為「放射性皮炎」。目前對於放射性皮炎的主要治療措施是塗抹藥膏,而放射性皮炎患者多伴有局部疼痛,對於止痛,多是通過ロ服或靜脈注射進行止痛治療

新型熱網閥門操作手輪的製作方法

專利名稱:新型熱網閥門操作手輪的製作方法技術領域:新型熱網閥門操作手輪技術領域:本實用新型涉及一種新型熱網閥門操作手輪,屬於機械領域。背景技術::閥門作為流體控制裝置應用廣泛,手輪傳動的閥門使用比例佔90%以上。國家標準中提及手輪所起作用為傳動功能,不作為閥門的運輸、起吊裝置,不承受軸向力。現有閥門

用來自動讀取管狀容器所載識別碼的裝置的製作方法

專利名稱:用來自動讀取管狀容器所載識別碼的裝置的製作方法背景技術:1-本發明所屬領域本發明涉及一種用來自動讀取管狀容器所載識別碼的裝置,其中的管狀容器被放在循環於配送鏈上的文檔匣或託架裝置中。本發明特別適用於,然而並非僅僅專用於,對引入自動分析系統的血液樣本試管之類的自動識別。本發明還涉及專為實現讀