定向窺探介入的制作方法
【技術(shù)領(lǐng)域】
[0001]本發(fā)明的各方面大體上涉及處理器,且更明確地說,涉及多處理器中的定向窺探介入。
【背景技術(shù)】
[0002]典型的常規(guī)多處理器集成電路(S卩,芯片)利用使用互連總線互連的多個(gè)處理器核心。每一處理器核心由一或多個(gè)高速緩沖存儲(chǔ)器支持。每一高速緩沖存儲(chǔ)器存儲(chǔ)數(shù)據(jù)文件,且通常以固定大小的塊的形式在系統(tǒng)存儲(chǔ)器和高速緩沖存儲(chǔ)器之間加以傳送。數(shù)據(jù)塊被稱為“高速緩存線”。每一高速緩沖存儲(chǔ)器包含與其已高速緩存的數(shù)據(jù)文件相關(guān)聯(lián)的全部地址的目錄。
[0003]每一處理器核心的高速緩存的數(shù)據(jù)可由互連總線上的全部其它處理器核心共享。因此,系統(tǒng)中可能具有許多數(shù)據(jù)副本:一個(gè)副本在主存儲(chǔ)器中,所述主存儲(chǔ)器可在芯片上或芯片外,以及一個(gè)副本在每一處理器核心高速緩沖存儲(chǔ)器中。此外,每一處理器核心可與互連總線上的任何其它處理器核心共享在其高速緩沖存儲(chǔ)器中的數(shù)據(jù)。因此,需要維持與所共享的數(shù)據(jù)的一致性或相干性?;ミB總線處理各種處理器核心和高速緩沖存儲(chǔ)器當(dāng)中的全部相干性交通以確保維持相干性。
[0004]用于在多處理器中維持相干性的一個(gè)機(jī)構(gòu)利用被稱為“窺探”的技術(shù)。當(dāng)處理器核心需要特定的高速緩存線時(shí),所述處理器核心首先窺探其自身的高速緩沖存儲(chǔ)器。如果所述處理器核心在其自身的高速緩沖存儲(chǔ)器中找到所述高速緩存線,那么高速緩存“命中”已發(fā)生。然而,如果所述處理器核心在其自身的高速緩沖存儲(chǔ)器中并未找到所述高速緩存線,那么高速緩存“未命中”已發(fā)生。當(dāng)高速緩存“未命中”發(fā)生時(shí),窺探其它處理器的高速緩沖存儲(chǔ)器以確定其它高速緩沖存儲(chǔ)器中的任一者是否具有所請求的高速緩存線。如果所請求的數(shù)據(jù)位于另一處理器核心的高速緩沖存儲(chǔ)器,那么另一處理器核心的高速緩沖存儲(chǔ)器可“介入”所述高速緩存線以向提出請求的處理器核心提供高速緩存線,以使得提出請求的處理器核心不必存取來自主存儲(chǔ)器的數(shù)據(jù)。
[0005]如果互連總線上僅存在兩個(gè)處理器核心和相關(guān)的高速緩沖存儲(chǔ)器,那么此窺探技術(shù)會(huì)很有效。例如,如果第一處理器核心請求高速緩存線,且第二處理器核心的高速緩沖存儲(chǔ)器含有所請求的高速緩存線,那么第二處理器核心的高速緩沖存儲(chǔ)器將向第一處理器核心提供所請求的高速緩存線。如果第二處理器核心的高速緩沖存儲(chǔ)器不含有所請求的高速緩存線,那么第一處理器核心的高速緩沖存儲(chǔ)器將存取來自芯片外的主存儲(chǔ)器的所請求的高速緩存線。然而,當(dāng)互連總線支持越來越多的處理器核心(這些處理器核心中的任一者在其高速緩沖存儲(chǔ)器中可能具有所請求的數(shù)據(jù))時(shí),就需要存在更復(fù)雜的仲裁機(jī)構(gòu)以決定哪一處理器核心的高速緩沖存儲(chǔ)器將向提出請求的處理器核心提供所請求的高速緩存線。
[0006]當(dāng)存在兩個(gè)以上的由互連總線支持的處理器核心和相關(guān)聯(lián)的高速緩沖存儲(chǔ)器時(shí)的一種仲裁機(jī)構(gòu)包含在所述高速緩沖存儲(chǔ)器中保存狀態(tài)信息(亦即,在“介入者”中保存狀態(tài)信息),所述狀態(tài)信息指示對提供關(guān)于窺探請求的數(shù)據(jù)的職責(zé)。當(dāng)處理器核心請求高速緩存線時(shí),互連總線“窺探”全部連接的高速緩沖存儲(chǔ)器(例如,通過向互連總線上的全部處理器高速緩沖存儲(chǔ)器廣播窺探請求)。由互連總線支持的每一處理器核心檢查其高速緩存線,并且被標(biāo)記為介入者的高速緩沖存儲(chǔ)器將向提出請求的處理器核心提供所請求的高速緩存線。
[0007]更復(fù)雜的互連總線實(shí)施窺探過濾器,其維持表示高速緩存線的條目,所述高速緩存線為互連總線上的全部處理器核心高速緩沖存儲(chǔ)器所擁有。窺探過濾器引導(dǎo)互連總線以只窺探可能具有數(shù)據(jù)副本的處理器高速緩沖存儲(chǔ)器,而不是向互連總線上的全部處理器高速緩沖存儲(chǔ)器廣播窺探請求。
[0008]歷史上,用于確定介入的高速緩沖存儲(chǔ)器的決策過程是基于固定方案執(zhí)行。例如,基于請求高速緩存線的最后一個(gè)處理器核心或請求高速緩存線的第一個(gè)處理器核心,確定介入的高速緩沖存儲(chǔ)器。不幸的是,第一個(gè)處理器核心或最后一個(gè)處理器核心可能都不是提供高速緩存線的最佳處理器核心。
[0009]因此,需要用于仲裁互連總線的改進(jìn)的設(shè)備和方法。
【發(fā)明內(nèi)容】
[0010]本發(fā)明的實(shí)例實(shí)施方案是針對用于橫跨多處理器架構(gòu)中的互連模塊總線的定向窺探介入的設(shè)備、方法、系統(tǒng)和非暫時(shí)性機(jī)器可讀媒體。一或多個(gè)實(shí)施方案包含低等待時(shí)間的高速緩存介入機(jī)構(gòu),其實(shí)施窺探過濾器以動(dòng)態(tài)地選擇介入者高速緩沖存儲(chǔ)器,以用于多處理器架構(gòu)中的高速緩存“命中”。
[0011]所述機(jī)構(gòu)包含包括窺探模塊的設(shè)備,所述窺探模塊經(jīng)配置以獲取來自提出請求的處理器對讀取所請求的高速緩存線的請求,并確定與一或多個(gè)擁有處理器相關(guān)聯(lián)的一或多個(gè)高速緩沖存儲(chǔ)器包含所請求的高速緩存線。所述設(shè)備進(jìn)一步包括經(jīng)配置以跟蹤與計(jì)算機(jī)系統(tǒng)相關(guān)聯(lián)的一或多個(gè)變量的變量模塊。窺探模塊進(jìn)一步經(jīng)配置以基于一或多個(gè)變量,選擇擁有處理器,從而向提出請求的處理器提供所請求的高速緩存線。所述設(shè)備進(jìn)一步包括信令模塊,其經(jīng)配置以用信號通知選定的擁有處理器向提出請求的處理器提供所請求的高速緩存線。
[0012]所述機(jī)構(gòu)執(zhí)行方法,所述方法包括從計(jì)算機(jī)系統(tǒng)中的提出請求的處理器中獲取讀取所請求的高速緩存線的請求,確定與一或多個(gè)擁有處理器相關(guān)聯(lián)的一或多個(gè)高速緩沖存儲(chǔ)器包含所請求的高速緩存線,從一或多個(gè)擁有處理器當(dāng)中選擇擁有處理器來向提出請求的處理器提供所請求的高速緩存線,其中選擇擁有處理器是基于一或多個(gè)變量,以及通知選定的擁有處理器向提出請求的處理器提供所請求的高速緩存線。非暫時(shí)性計(jì)算機(jī)程序產(chǎn)品可實(shí)施這個(gè)方法和本文中所描述的其它方法。
[0013]本
【發(fā)明內(nèi)容】
在具有以下理解的情況下提交:其將不會(huì)用于解釋或限制權(quán)利要求的范圍或含義。本
【發(fā)明內(nèi)容】
并非意圖識(shí)別出所主張的標(biāo)的物的關(guān)鍵特征或基本特征,并且也并非意圖輔助確定所主張的標(biāo)的物的范圍。
【附圖說明】
[0014]呈現(xiàn)隨附圖式以輔助對本文中所描述的技術(shù)的實(shí)施方案的描述,并且僅提供用于對實(shí)施方案的說明且不對其加以限制。
[0015]圖1為根據(jù)一或多個(gè)實(shí)施方案的適于實(shí)施橫跨多處理器架構(gòu)中的互連模塊總線的定向窺探介入的實(shí)例環(huán)境的框圖。
[0016]圖2為說明根據(jù)一或多個(gè)實(shí)施方案的響應(yīng)于高速緩存“未命中”的定向窺探介入的框圖。
[0017]圖3為說明根據(jù)一或多個(gè)實(shí)施方案的計(jì)算機(jī)系統(tǒng)的框圖。
[0018]圖4為根據(jù)一或多個(gè)實(shí)施方案的用于實(shí)施橫跨多處理器架構(gòu)中的互連模塊總線的定向窺探介入的方法的實(shí)例流程圖。
[0019]【具體實(shí)施方式】參考附圖。在諸圖中,參考編號的最左邊數(shù)字識(shí)別其中首次出現(xiàn)所述參考編號的圖。整個(gè)圖式中使用相同編號指代相同的特征和組件。
【具體實(shí)施方式】
[0020]總的來說,本文中所揭示的標(biāo)的物是針對用于多處理器架構(gòu)中的低等待時(shí)間的高速緩存介入機(jī)構(gòu)的系統(tǒng)、設(shè)備、非暫時(shí)性計(jì)算機(jī)可讀媒體和方法。在一或多個(gè)實(shí)施方案中,互連模塊跟蹤高速緩存線在多處理器架構(gòu)中的位置。
[0021]當(dāng)由互連模塊支持的處理器在一或多個(gè)其它處理器核心高速緩沖存儲(chǔ)器中發(fā)出讀取高速緩存線的請求時(shí),互連模塊確定哪些高速緩沖存儲(chǔ)器含有或擁有所請求的高速緩存線?;ミB模塊比較與含有所請求的高速緩存線的處理器核心高速緩沖存儲(chǔ)器相關(guān)聯(lián)的變量。隨后,互連模塊選擇含有所請求的高速緩存線的高速緩沖存儲(chǔ)器,所述所請求的高速緩存線表示最低等待時(shí)間、最小功率、最高速度等,如通過比較變量所確定的。選定的高速緩沖存儲(chǔ)器變?yōu)橛糜谔岢稣埱蟮奶幚砥骱诵牡慕槿胝?即,以提供所請求的數(shù)據(jù))。
[0022]然后,互連模塊通知選定的介入者高速緩沖存儲(chǔ)器向提出請求的處理器提供所請求的高速緩存線。接著,選定的介入者高速緩沖存儲(chǔ)器向提出請求的處理器核心提供所請求的高速緩存線。因此,互連模塊基于改變系統(tǒng)變量動(dòng)態(tài)地選擇介入的高速緩沖存儲(chǔ)器,而不是具有用于確定哪一高速緩沖存儲(chǔ)器將介入以提供所請求的高速緩存線的固定方案。
[0023]應(yīng)注意,可考慮一個(gè)系統(tǒng)變量的最小值,以確定哪一高速緩沖存儲(chǔ)器將是介入者。不需要考慮一個(gè)以上的系統(tǒng)變量。
[0024]互連模塊可考慮的一個(gè)系統(tǒng)變量可包含多處理器架構(gòu)的拓?fù)洹M負(fù)渥兞靠蓪⒏咚倬彺婢€是否在芯片上、高速緩存線是否在芯片外、高速緩存線是否在主存儲(chǔ)器中、高速緩存線是否在另一多處理器芯片上等考慮在內(nèi)。
[0025]互連模塊可考慮的另一系統(tǒng)變量可包含處理器核心和/或高速緩沖存儲(chǔ)器的功率狀態(tài)。例如,互連模塊可考慮所述核心/高速緩沖存儲(chǔ)器是處于操作模式中還是處于節(jié)能模式中。模式可包含“睡眠”模式、“電源崩潰”模式、“閑置”模式等。
[0026]互連模塊可考慮的另一系統(tǒng)變量可包含處理器核心的頻率和/或高速緩沖存儲(chǔ)器的頻率。
[0027]互連模塊