專利名稱:多核系統(tǒng)中處理請(qǐng)求的數(shù)據(jù)處理方法、設(shè)備和系統(tǒng)的制作方法
技術(shù)領(lǐng)域:
本發(fā)明涉及計(jì)算機(jī)系統(tǒng)中的數(shù)據(jù)處理領(lǐng)域,尤其涉及多核系統(tǒng)中處理請(qǐng)求的數(shù)據(jù) 處理方法、設(shè)備和系統(tǒng)。
背景技術(shù):
隨著多核系統(tǒng)(也稱為單芯片多處理器,Chip-Multi-Processor (CMP))逐漸成為 當(dāng)今計(jì)算機(jī)系統(tǒng)的主流以及虛擬化的不斷發(fā)展,對(duì)于L2高速緩存級(jí)的設(shè)計(jì)也相應(yīng)地不斷 發(fā)展。多核系統(tǒng)的典型結(jié)構(gòu)如圖1所示。在多核系統(tǒng)中,處理器上的每個(gè)核都將具有專用 的Ll高速緩存(其在圖1中未示出),以用于保持某些數(shù)據(jù)。而多個(gè)核可以共享一個(gè)L2高 速緩存,然后多個(gè)L2高速緩存130A、130B、130C和130D形成高速緩存一致性系統(tǒng)。也即是 說(shuō),在目前的計(jì)算機(jī)系統(tǒng)中,存在一種高速緩存一致性機(jī)制。在管理器140的控制下,該高 速緩存一致性機(jī)制本質(zhì)上被用于幫助系統(tǒng)保持?jǐn)?shù)據(jù)的整體性,這意味著如果數(shù)據(jù)塊的一個(gè) 以上的備份同時(shí)位于一個(gè)以上的Ll和L2高速緩存中,則一致性機(jī)制可以保證在每個(gè)時(shí)刻 所有備份的值都是完全相同的。高速緩存一致性機(jī)制的過(guò)程可以描述如下首先,例如L2高速緩存130B上的一個(gè)核1想要載入數(shù)據(jù)塊,并且它在其專用的Ll 高速緩存A (未示出)中尋找該數(shù)據(jù)塊。然后,如果在專用的Ll或L2高速緩存130B中發(fā)現(xiàn) 該數(shù)據(jù)塊的備份,則該數(shù)據(jù)載入過(guò)程結(jié)束,并且將不調(diào)用一致性過(guò)程。然而,如果在專用的 Ll或L2高速緩存130B中都沒(méi)有發(fā)現(xiàn)該數(shù)據(jù)塊的備份,則將要調(diào)用一致性過(guò)程。對(duì)于該數(shù)據(jù) 塊的請(qǐng)求將由L2高速緩存130B發(fā)送給所有其他的L2高速緩存130A、130C和130D。接下 來(lái),L2高速緩存130A、130C和130D將在它們自己的陣列中搜索被請(qǐng)求的數(shù)據(jù)塊。如果它們 中的一個(gè)高速緩存找到一個(gè)備份,那么發(fā)現(xiàn)該備份的該高速緩存將發(fā)送一個(gè)確認(rèn)消息給L2 高速緩存130B。并且同時(shí),發(fā)現(xiàn)該備份的該高速緩存將去掉它自己的數(shù)據(jù)備份以確保所有 高速緩存中的該數(shù)據(jù)塊的值是一個(gè)值。而如果所有其他的L2高速緩存130A、130C和130D 沒(méi)有發(fā)現(xiàn)該數(shù)據(jù)塊的備份,則內(nèi)存將發(fā)送該數(shù)據(jù)給L2高速緩存130B。總之,高速緩存一致 性機(jī)制目的在于使所有的L2高速緩存之間的數(shù)據(jù)備份完全相同,從而實(shí)現(xiàn)數(shù)據(jù)的一致性。因此,在現(xiàn)有的具有高速緩存一致性機(jī)制的多核系統(tǒng)中,當(dāng)對(duì)于數(shù)據(jù)的請(qǐng)求出現(xiàn) 時(shí),就需要去訪問(wèn)所有的L2高速緩存,從而將導(dǎo)致消耗相當(dāng)多的功率。實(shí)際上,在絕大多數(shù) 情況下,對(duì)于數(shù)據(jù)的請(qǐng)求是無(wú)法在除了發(fā)出所述數(shù)據(jù)請(qǐng)求的L2高速緩存之外的其他L2高 速緩存中找到的,所以現(xiàn)有系統(tǒng)中基于所述請(qǐng)求在所有其他L2高速緩存中尋找所述數(shù)據(jù) 的過(guò)程是不必要的。這樣的搜索過(guò)程會(huì)浪費(fèi)大約百分之三十到四十的L2高速緩存的功率?,F(xiàn)有技術(shù)中存在一些減少上述問(wèn)題的方案。其中的一個(gè)解決方案是基于hash表 的方案。該解決方案使用hash表來(lái)對(duì)運(yùn)行于一個(gè)L2高速緩存上的所有邏輯分區(qū)的邏輯分 區(qū)ID(LPID)進(jìn)行編碼以及記錄。當(dāng)接收到數(shù)據(jù)請(qǐng)求時(shí),則附在所述數(shù)據(jù)請(qǐng)求上的LPID通 過(guò)hash函數(shù)而被提取并映射到一個(gè)值。然后將值與hash表中記錄的所有條目進(jìn)行比較。 然而,由于hash表的固有實(shí)質(zhì)性缺陷,所以這樣的過(guò)濾不能達(dá)到精確的映射以及映射,并且誤判率太高,因而降低了功率節(jié)省。另一種解決方案是基于數(shù)據(jù)訪問(wèn)的歷史紀(jì)錄。該解 決方案使用歷史紀(jì)錄表來(lái)保持?jǐn)?shù)據(jù)訪問(wèn)的記錄。然而,通過(guò)該方案獲得的過(guò)濾比很大程度 上取決于歷史紀(jì)錄表的大小。過(guò)濾的請(qǐng)求越多,則表的大小應(yīng)當(dāng)越大。因而很容易看到大 尺寸的歷史紀(jì)錄表本身就將花費(fèi)硬模尺寸以及功率消耗。因此,為了減少功率消耗,需要一 種能夠減少甚至消除上述不必要的無(wú)結(jié)果的對(duì)L2高速緩存的搜索過(guò)程的系統(tǒng)和方法。
發(fā)明內(nèi)容
為了實(shí)現(xiàn)處理器的高處理速度以及高速緩存的低功率消耗的目的,一種實(shí)際的方 法就是過(guò)濾向高速緩存發(fā)出的對(duì)于數(shù)據(jù)的請(qǐng)求,以消除對(duì)于高速緩存的不必要的搜索。本 發(fā)明的目的是提出一種在高速緩存中利用過(guò)濾機(jī)制來(lái)實(shí)現(xiàn)上述目的的方法、設(shè)備和系統(tǒng)。本發(fā)明的目的是提供一種用于基于流水級(jí)的數(shù)據(jù)處理方法、設(shè)備和系統(tǒng)。根據(jù)本發(fā)明的一方面,提供了一種在多核系統(tǒng)中處理請(qǐng)求的方法,包括以下步驟: 由過(guò)濾器從請(qǐng)求單元接收關(guān)于數(shù)據(jù)的請(qǐng)求;將所述請(qǐng)求中表示邏輯分區(qū)的指示符與過(guò)濾器 的記錄中表示邏輯分區(qū)的指示符進(jìn)行比較;如果比較結(jié)果匹配,則基于所述請(qǐng)求在所述過(guò) 濾器所處的單元中進(jìn)行搜索,并將搜索結(jié)果返回所述請(qǐng)求單元;以及如果比較結(jié)果不匹配, 則從所述過(guò)濾器向所述請(qǐng)求單元返回否定響應(yīng)。根據(jù)本發(fā)明的另一方面,提供一種在多核系統(tǒng)中處理請(qǐng)求的設(shè)備,包括過(guò)濾器, 被配置用于從發(fā)出請(qǐng)求的單元接收關(guān)于數(shù)據(jù)的請(qǐng)求,并將所述請(qǐng)求中表示邏輯分區(qū)的指示 符與過(guò)濾器的記錄中表示邏輯分區(qū)的指示符進(jìn)行比較;其中,所述過(guò)濾器還被配置用于 如果比較結(jié)果匹配,則基于所述請(qǐng)求在所述過(guò)濾器所處的單元中進(jìn)行搜索,并將搜索結(jié)果 返回所述發(fā)出請(qǐng)求的單元;以及如果比較結(jié)果不匹配,則向所述發(fā)出請(qǐng)求的單元返回否定 響應(yīng)。根據(jù)本發(fā)明的又一方面,提供一種多核系統(tǒng),包括第一高速緩存,以及一個(gè)或多 個(gè)第二高速緩存。其中,所述第一高速緩存被配置用于向所述一個(gè)或多個(gè)第二高速緩存發(fā) 出關(guān)于數(shù)據(jù)的請(qǐng)求;所述一個(gè)或多個(gè)第二高速緩存的每一個(gè)包括過(guò)濾器,其被配置用于接 收所述請(qǐng)求,并將所述請(qǐng)求中表示邏輯分區(qū)的指示符與過(guò)濾器的記錄中表示邏輯分區(qū)的指 示符進(jìn)行比較;其中,所述過(guò)濾器還被配置用于如果比較結(jié)果匹配,則基于所述請(qǐng)求在所 述第一高速緩存中進(jìn)行搜索,并將搜索結(jié)果返回所述一個(gè)或多個(gè)第二高速緩存;以及如果 比較結(jié)果不匹配,則從所述過(guò)濾器向所述一個(gè)或多個(gè)第二高速緩存返回否定響應(yīng)。
通過(guò)以下結(jié)合附圖的說(shuō)明,并且隨著對(duì)本發(fā)明的更全面了解,本發(fā)明的其它目的 和效果將變得更加清楚和易于理解,其中圖1是具有高速緩存一致性機(jī)制的多核系統(tǒng);圖2是根據(jù)本發(fā)明對(duì)于數(shù)據(jù)的請(qǐng)求的處理設(shè)備;圖3是根據(jù)本發(fā)明對(duì)于數(shù)據(jù)的請(qǐng)求的處理方法的流程圖;圖4是根據(jù)本發(fā)明一個(gè)示例性實(shí)施例的對(duì)于數(shù)據(jù)的請(qǐng)求的處理設(shè)備的具體配置;圖5是根據(jù)本發(fā)明一個(gè)示例性實(shí)施例的對(duì)于數(shù)據(jù)的請(qǐng)求的處理方法的流程圖;圖6是根據(jù)本發(fā)明另一個(gè)示例性實(shí)施例的對(duì)于數(shù)據(jù)的請(qǐng)求的處理設(shè)備的具體配置;圖7是根據(jù)本發(fā)明另一個(gè)示例性實(shí)施例的對(duì)于數(shù)據(jù)的請(qǐng)求的處理方法的流程圖;圖8是本發(fā)明可以實(shí)施于其中的多核系統(tǒng)的結(jié)構(gòu)示意圖。
具體實(shí)施例方式圖2是示出根據(jù)本發(fā)明實(shí)施例的在多核系統(tǒng)中的數(shù)據(jù)處理系統(tǒng)200。如圖2所示, 該系統(tǒng)200包括請(qǐng)求單元202,被配置用于發(fā)出對(duì)于數(shù)據(jù)的請(qǐng)求;以及過(guò)濾器201-1,用 于從請(qǐng)求單元202接收關(guān)于數(shù)據(jù)的請(qǐng)求,并將所述請(qǐng)求中表示邏輯分區(qū)的指示符與過(guò)濾器 201-1的記錄中表示邏輯分區(qū)的指示符進(jìn)行比較。優(yōu)選地,請(qǐng)求單元202在發(fā)出對(duì)于數(shù)據(jù)的請(qǐng)求之前,在其自身具有的邏輯分區(qū)中 進(jìn)行數(shù)據(jù)搜索,在沒(méi)有搜索到所需要的數(shù)據(jù)后,請(qǐng)求單元202向其他單元(例如單元203、 204,206)發(fā)出數(shù)據(jù)請(qǐng)求。其中,所述請(qǐng)求單元以及其他單元之間可以存在一致性機(jī)制。所述過(guò)濾器201-1還被配置用于如果比較結(jié)果匹配,則基于所述請(qǐng)求在所述過(guò) 濾器201-1所處的單元206中進(jìn)行搜索,并將搜索結(jié)果返回所述發(fā)出請(qǐng)求的請(qǐng)求單元202 ; 以及如果比較結(jié)果不匹配,則從所述過(guò)濾器201-1向所述發(fā)出請(qǐng)求的單元202直接返回否 定響應(yīng)。這樣,在比較結(jié)果不匹配的情況下,就不用訪問(wèn)單元206,從而減少了多核系統(tǒng)中的 數(shù)據(jù)訪問(wèn),以降低功率消耗。請(qǐng)求單元202的結(jié)構(gòu)可以與單元206的結(jié)構(gòu)相同。另外,還可以存在一個(gè)或多個(gè) 結(jié)構(gòu)類似的單元203、204等。所述請(qǐng)求單元202和所述單元206是高速緩存。優(yōu)選地,高 速緩存可以是L2高速緩存。請(qǐng)求單元202的結(jié)構(gòu)可以與單元206的結(jié)構(gòu)相同。優(yōu)選地,所 述請(qǐng)求單元202也可以包括一個(gè)過(guò)濾器201-4。更優(yōu)選地,單元203和204也可以分別包括 過(guò)濾器201-2和201-3。此外,基于邏輯分區(qū)移入或移出所述過(guò)濾器所處的所述單元206,過(guò)濾器201-1的 所述記錄中表示邏輯分區(qū)的所述指示符進(jìn)行動(dòng)態(tài)更新。優(yōu)選地,所述動(dòng)態(tài)更新過(guò)程可以在 與圖1中的管理器140相類似的管理器(未示出)的控制下實(shí)施。如圖2所示的本發(fā)明的系統(tǒng)200還可以包括其它的組件,例如總線、其他層級(jí)等 等,為了不模糊本發(fā)明,其它此類組件的描述被省略。本發(fā)明的方法流程圖如圖3所示。圖3是示出根據(jù)本發(fā)明實(shí)施例的在高速緩存中 的數(shù)據(jù)處理方法流程圖。在步驟301處,由過(guò)濾器從請(qǐng)求單元接收關(guān)于數(shù)據(jù)的請(qǐng)求,在步驟 302,將所述請(qǐng)求中表示邏輯分區(qū)的指示符與過(guò)濾器的記錄中表示邏輯分區(qū)的指示符進(jìn)行 比較。如果比較結(jié)果匹配,則處理繼續(xù)到步驟303,在此處基于所述請(qǐng)求在過(guò)濾器所處的單 元中進(jìn)行搜索,并將搜索結(jié)果返回所述請(qǐng)求單元。如果比較結(jié)果不匹配,則處理繼續(xù)到步驟 304,在此處從所述過(guò)濾器向所述請(qǐng)求單元返回否定響應(yīng)。圖4是根據(jù)本發(fā)明一個(gè)示例性實(shí)施例的對(duì)于數(shù)據(jù)的請(qǐng)求的處理設(shè)備的具體配置。如圖4所示,優(yōu)選地,該系統(tǒng)400包括請(qǐng)求單元402,被配置用于發(fā)出對(duì)于數(shù)據(jù)的 請(qǐng)求,其中關(guān)于數(shù)據(jù)的請(qǐng)求中附有邏輯分區(qū)ID;以及過(guò)濾器401-1,用于從請(qǐng)求單元402接 收關(guān)于數(shù)據(jù)的請(qǐng)求,并且所述過(guò)濾器401-1包括寄存器405,在所述寄存器405中保持有一 個(gè)記錄,所述記錄具有表示邏輯分區(qū)的指示符。寄存器405中的記錄與多個(gè)邏輯分區(qū)相關(guān) 聯(lián),其中多個(gè)邏輯分區(qū)中的一些邏輯分區(qū)位于過(guò)濾器401-1所處的單元406中,并且多個(gè)邏輯分區(qū)分別具有各自的邏輯分區(qū)ID。邏輯分區(qū)的數(shù)目可以是任意的,或者按照需要來(lái)確定。優(yōu)選地,過(guò)濾器401-1中的記錄與多核系統(tǒng)中的多個(gè)邏輯分區(qū)分別的邏輯分區(qū)ID 相關(guān)聯(lián),并且在記錄中的表示邏輯分區(qū)的指示符中用一個(gè)比特來(lái)代表一個(gè)邏輯分區(qū)或者邏 輯分區(qū)ID。如果一個(gè)邏輯分區(qū)位于過(guò)濾器401-1所處的單元406中,則該過(guò)濾器401-1的 記錄中表示邏輯分區(qū)的指示符中與該邏輯分區(qū)(或者該邏輯分區(qū)ID)相關(guān)聯(lián)的比特位置被 設(shè)置為一;如果一個(gè)邏輯分區(qū)沒(méi)有位于過(guò)濾器401-1所處的單元406中,則該過(guò)濾器401-1 的記錄中表示邏輯分區(qū)的指示符中與該邏輯分區(qū)(或者該邏輯分區(qū)ID)相關(guān)聯(lián)的比特位置 被設(shè)置為零。所述過(guò)濾器401-1還被配置用于將所述請(qǐng)求中所附的邏輯分區(qū)ID分離出來(lái)并且 進(jìn)行移位,以形成掩碼。其中移位可以是左移或者右移。掩碼的比特寬度與過(guò)濾器401-1 中的記錄的比特寬度相同。在掩碼中,表示所述請(qǐng)求中分離出來(lái)的所述邏輯分區(qū)ID的比特 被設(shè)置為“1”,所有其余比特設(shè)置為零;如果一個(gè)邏輯分區(qū)位于所述過(guò)濾器401-1所處的所 述單元406上,則所述記錄中表示邏輯分區(qū)的指示符的相應(yīng)比特被設(shè)置為“1”。具體而言, 掩碼中包括多個(gè)比特,其中例如表示分離出來(lái)的邏輯分區(qū)ID的是第二比特,則就將此第二 比特設(shè)置為“1”。對(duì)于過(guò)濾器401-1中的記錄而言,如果所述請(qǐng)求中分離出來(lái)的所述邏輯分 區(qū)ID所表示的邏輯分區(qū)位于單元406上,則所述記錄中的第二比特也被設(shè)置為“ 1 ”,以表示 該邏輯分區(qū)位于單元406上。所述過(guò)濾器401-1還被配置用于將比特寬度相同的所述掩碼與所述記錄中表示 邏輯分區(qū)的指示符進(jìn)行“與”操作。如果“與”操作的結(jié)果為非零,則表示匹配,然后基于所 述請(qǐng)求在所述過(guò)濾器401-1所處的單元406中進(jìn)行搜索,并將搜索結(jié)果返回所述發(fā)出請(qǐng)求 的請(qǐng)求單元402。如果“與”操作的結(jié)果為零,則表示不匹配,然后將從所述過(guò)濾器401-1向 所述發(fā)出請(qǐng)求的單元402直接返回否定響應(yīng)而不會(huì)對(duì)單元406進(jìn)行搜索,從而減少了數(shù)據(jù) 訪問(wèn)以達(dá)到降低功率消耗的目的。在該示例性實(shí)施例中,例如兩個(gè)邏輯分區(qū)位于單元406中,因此過(guò)濾器401-1的記 錄中表示邏輯分區(qū)的指示符中與這兩個(gè)邏輯分區(qū)相對(duì)應(yīng)的比特位置被設(shè)置為一,而與其他 邏輯分區(qū)相對(duì)應(yīng)的比特位置被設(shè)置為零。其中,所述請(qǐng)求單元402和所述單元406是高速 緩存。所述高速緩存可以是L2高速緩存。請(qǐng)求單元402的結(jié)構(gòu)可以與單元406的結(jié)構(gòu)相 同。此外,基于邏輯分區(qū)移入或移出所述過(guò)濾器所處的所述單元406,過(guò)濾器401的所 述記錄中表示邏輯分區(qū)的所述指示符進(jìn)行動(dòng)態(tài)更新。優(yōu)選地,所述動(dòng)態(tài)更新過(guò)程可以在與 圖1中的管理器140相類似的管理器(未示出)的控制下實(shí)施。另外,還可以存在多個(gè)結(jié)構(gòu)類似的單元403、404等。優(yōu)選地,請(qǐng)求單元402、單元 403,404也可以分別具有過(guò)濾器401-4、401-2和401-3。如圖4所示的本發(fā)明的系統(tǒng)400 還可以包括其它的單元,例如總線、其他層級(jí)等等,為了不模糊本發(fā)明,其它此類組件的描 述被省略。本發(fā)明的一個(gè)示例性實(shí)施例的方法流程圖如圖5所示。圖5是根據(jù)本發(fā)明一個(gè)示 例性實(shí)施例的對(duì)于數(shù)據(jù)的請(qǐng)求的處理方法的流程圖。在步驟501處,請(qǐng)求單元發(fā)出關(guān)于數(shù) 據(jù)的請(qǐng)求。該請(qǐng)求包括邏輯分區(qū)ID。在步驟502,由過(guò)濾器接收關(guān)于數(shù)據(jù)的請(qǐng)求,并且所述 過(guò)濾器中保持有與多個(gè)邏輯分區(qū)相關(guān)聯(lián)的記錄,所述記錄具有表示邏輯分區(qū)的指示符。多個(gè)邏輯分區(qū)分別具有各自的邏輯分區(qū)ID。邏輯分區(qū)的數(shù)目可以是任意的,或者按照需要來(lái)確定。優(yōu)選地,過(guò)濾器中的記錄與多核系統(tǒng)中的多個(gè)邏輯分區(qū)分別的邏輯分區(qū)ID相關(guān) 聯(lián),并且在記錄中的表示邏輯分區(qū)的指示符中用一個(gè)比特來(lái)代表一個(gè)邏輯分區(qū)或者邏輯分 區(qū)ID。如果一個(gè)邏輯分區(qū)位于過(guò)濾器所處的單元中,則該過(guò)濾器的記錄中表示邏輯分區(qū)的 指示符中與該邏輯分區(qū)(或該邏輯分區(qū)ID)相關(guān)聯(lián)的比特位置被設(shè)置為一;如果一個(gè)邏輯 分區(qū)沒(méi)有位于過(guò)濾器所處的單元中,則該過(guò)濾器的記錄中表示邏輯分區(qū)的指示符中與該邏 輯分區(qū)(或該邏輯分區(qū)ID)相關(guān)聯(lián)的比特位置被設(shè)置為零。在步驟503,將所述請(qǐng)求中所附的邏輯分區(qū)ID分離出來(lái)并且移位,以形成掩碼。其 中移位可以是左移或者右移。掩碼的比特寬度與過(guò)濾器的記錄中表示邏輯分區(qū)的指示符 的比特寬度相同。具體而言,掩碼中包括多個(gè)比特,其中例如表示分離出來(lái)的邏輯分區(qū)ID 的是第二比特,則就將此第二比特設(shè)置為“1”。對(duì)于過(guò)濾器401-1中的記錄而言,如果所述 請(qǐng)求中分離出來(lái)的所述邏輯分區(qū)ID所表示的邏輯分區(qū)位于過(guò)濾器所處的單元上,則所述 記錄中的第二比特也被設(shè)置為“1”,以表示該邏輯分區(qū)位于所述單元上。在步驟504,過(guò)濾 器將比特寬度相同的所述掩碼與所述記錄中表示邏輯分區(qū)的指示符進(jìn)行“與”操作以查看 “與”操作的結(jié)果是否為非零。如果“與”操作的結(jié)果為非零,則表示匹配,然后在步驟505 基于所述請(qǐng)求在所述過(guò)濾器所處的單元中進(jìn)行搜索,并將搜索結(jié)果返回所述發(fā)出請(qǐng)求的請(qǐng) 求單元。如果“與”操作的結(jié)果為零,則表示不匹配,然后在步驟506從所述過(guò)濾器向所述 發(fā)出請(qǐng)求的單元直接返回否定響應(yīng)而不會(huì)進(jìn)行搜索,從而減少了數(shù)據(jù)訪問(wèn)以達(dá)到降低功率 消耗的目的。圖6是根據(jù)本發(fā)明另一個(gè)示例性實(shí)施例的對(duì)于數(shù)據(jù)的請(qǐng)求的處理設(shè)備的具體配置。如圖6所示,優(yōu)選地,該系統(tǒng)600包括請(qǐng)求單元602,被配置用于發(fā)出對(duì)于數(shù)據(jù)的 請(qǐng)求,其中關(guān)于數(shù)據(jù)的請(qǐng)求中附有邏輯分區(qū)ID;以及過(guò)濾器601-1,用于從請(qǐng)求單元602接 收關(guān)于數(shù)據(jù)的請(qǐng)求,并且所述過(guò)濾器601-1包括寄存器組605,在所述過(guò)濾器601-1的所述 寄存器組605的各個(gè)寄存器中分別保持有一個(gè)記錄,所述記錄與多個(gè)邏輯分區(qū)相關(guān)聯(lián),其 中所述多個(gè)邏輯分區(qū)位于過(guò)濾器601-1所處的單元606中,并且所述多個(gè)邏輯分區(qū)分別具 有各自的邏輯分區(qū)ID。所述記錄具有表示邏輯分區(qū)的指示符。邏輯分區(qū)的數(shù)目可以是任意 的,或者按照需要來(lái)確定。優(yōu)選地,寄存器組605中各個(gè)寄存器(寄存器1,寄存器2,...,寄存器η)的記錄 與單元606中的多個(gè)邏輯分區(qū)分別的邏輯分區(qū)ID相關(guān)聯(lián),并且記錄中表示邏輯分區(qū)的指示 符是每個(gè)邏輯分區(qū)的邏輯分區(qū)ID。所述過(guò)濾器601還被配置用于將所述請(qǐng)求中所附的邏輯分區(qū)ID分離出來(lái),并且 將分離出來(lái)的邏輯分區(qū)ID與所述記錄中的每一個(gè)邏輯分區(qū)ID進(jìn)行比較,并將每個(gè)比較結(jié) 果進(jìn)行“或”操作。如果“或”操作的結(jié)果為非零,則表示匹配,然后基于所述請(qǐng)求在所述過(guò) 濾器601-1所處的單元606中進(jìn)行搜索,并將搜索結(jié)果返回所述發(fā)出請(qǐng)求的請(qǐng)求單元602。 如果“或”操作的結(jié)果為零,則表示不匹配,然后將從所述過(guò)濾器601-1向所述發(fā)出請(qǐng)求的 單元602直接返回否定響應(yīng)而不會(huì)對(duì)單元606進(jìn)行搜索,從而減少了數(shù)據(jù)訪問(wèn)以達(dá)到降低 功率消耗的目的。其中,所述請(qǐng)求單元602和所述單元606是高速緩存。優(yōu)選地,高速緩存可以是L2高速緩存。請(qǐng)求單元602的結(jié)構(gòu)可以與單元606的結(jié)構(gòu)相同。優(yōu)選地,所述請(qǐng)求 單元602也可以包括一個(gè)過(guò)濾器。此外,基于邏輯分區(qū)移入或移出所述過(guò)濾器所處的所述單元606,過(guò)濾器601的所 述記錄中表示邏輯分區(qū)的所述指示符進(jìn)行動(dòng)態(tài)更新。優(yōu)選地,所述動(dòng)態(tài)更新過(guò)程可以在與 圖1中的管理器140相類似的管理器(未示出)的控制下實(shí)施。另外,還可以存在多個(gè)結(jié)構(gòu)類似的單元603、604等。優(yōu)選地,請(qǐng)求單元602、單元 603,604也可以分別具有過(guò)濾器601-4、601-2和601-3。如圖6所示的本發(fā)明的系統(tǒng)600 還可以包括其它的單元,例如總線601、其他層級(jí)等等,為了不模糊本發(fā)明,其它此類組件的 描述被省略。本發(fā)明的另一個(gè)示例性實(shí)施例的方法流程圖如圖7所示。圖7是根據(jù)本發(fā)明另一 個(gè)示例性實(shí)施例的對(duì)于數(shù)據(jù)的請(qǐng)求的處理方法的流程圖。在步驟701處,請(qǐng)求單元發(fā)出關(guān) 于數(shù)據(jù)的請(qǐng)求。該請(qǐng)求包括邏輯分區(qū)ID。在步驟702,由過(guò)濾器接收關(guān)于數(shù)據(jù)的請(qǐng)求,并且 所述過(guò)濾器中保持有與多個(gè)邏輯分區(qū)相關(guān)聯(lián)的記錄,也即,記錄中具有表示邏輯分區(qū)的指 示符,并且多個(gè)邏輯分區(qū)分別具有各自的邏輯分區(qū)ID。邏輯分區(qū)的數(shù)目可以是任意的,或者 按照需要來(lái)確定。優(yōu)選地,過(guò)濾器中的記錄與多個(gè)邏輯分區(qū)分別的邏輯分區(qū)ID相關(guān)聯(lián),并且記錄中 表示邏輯分區(qū)的指示符是每個(gè)邏輯分區(qū)的邏輯分區(qū)ID。在步驟703,將所述請(qǐng)求中所附的 邏輯分區(qū)ID分離出來(lái),并且將分離出來(lái)的邏輯分區(qū)ID與所述記錄中的每一個(gè)邏輯分區(qū)ID 進(jìn)行比較。在步驟704,將所有比較結(jié)果進(jìn)行“或”操作以查看“或”操作的結(jié)果是否為非零。 如果“或”操作的結(jié)果為非零,則表示匹配,然后在步驟705基于所述請(qǐng)求在所述過(guò)濾器所 處的單元中進(jìn)行搜索,并將搜索結(jié)果返回所述發(fā)出請(qǐng)求的請(qǐng)求單元。如果“或”操作的結(jié)果 為零,則表示不匹配,然后在步驟706將從所述過(guò)濾器向所述發(fā)出請(qǐng)求的單元直接返回否 定響應(yīng)而不會(huì)對(duì)單元進(jìn)行搜索,從而減少了數(shù)據(jù)訪問(wèn)以達(dá)到降低功率消耗的目的??梢钥闯?,本發(fā)明的實(shí)施方式不局限于此。在本發(fā)明的過(guò)濾器中,可以采用任何能 夠判斷請(qǐng)求中表示邏輯分區(qū)的指示符是否與高速緩存中所保存的表示邏輯分區(qū)的指示符 相匹配的方式,而并不局限于本發(fā)明的所具體給出的上述兩種操作方式。圖8是本發(fā)明可以實(shí)施于其中的多核系統(tǒng)800的結(jié)構(gòu)示意圖。多核系統(tǒng)800包 括諸如L2高速緩存830A之類的第一高速緩存,以及諸如L2高速緩存830B、830C和830D 之類的一個(gè)或多個(gè)第二高速緩存。其中,所述第一高速緩存被配置用于向所述一個(gè)或多個(gè) 第二高速緩存發(fā)出關(guān)于數(shù)據(jù)的請(qǐng)求。所述一個(gè)或多個(gè)第二高速緩存的每一個(gè)包括過(guò)濾器 (例如,過(guò)濾器801B、801C和801D),其被配置用于接收所述請(qǐng)求,并將所述請(qǐng)求中表示邏輯 分區(qū)的指示符與過(guò)濾器的記錄中表示邏輯分區(qū)的指示符進(jìn)行比較。所述過(guò)濾器還被配置用 于如果比較結(jié)果匹配,則基于所述請(qǐng)求在所述第一高速緩存中進(jìn)行搜索,并將搜索結(jié)果返 回所述一個(gè)或多個(gè)第二高速緩存。如果比較結(jié)果不匹配,則從所述過(guò)濾器向所述一個(gè)或多 個(gè)第二高速緩存返回否定響應(yīng)。更優(yōu)選地,多核系統(tǒng)800包括內(nèi)存810,總線820,多個(gè)L2高速緩存830A、830B、 830C和830D,管理器840,以及多個(gè)應(yīng)用850。其中,多個(gè)L2高速緩存830A、830B、830C和 830D的每一個(gè)都包括一個(gè)或多個(gè)邏輯分區(qū)以及過(guò)濾器801A、801B、801C和801D。當(dāng)從其中 一個(gè)L2高速緩存830A向其他L2高速緩存830B、830C和830D發(fā)出對(duì)于數(shù)據(jù)的請(qǐng)求時(shí),該對(duì)于數(shù)據(jù)的請(qǐng)求通過(guò)系統(tǒng)總線820傳送到L2高速緩存830B、830C和830D。在L2高速緩存830B、830C和830D中,對(duì)于數(shù)據(jù)的請(qǐng)求首先在過(guò)濾器處進(jìn)行處理。 具體而言,例如,當(dāng)對(duì)于數(shù)據(jù)的請(qǐng)求到達(dá)L2高速緩存830B的過(guò)濾器801B時(shí),過(guò)濾器801B 將該請(qǐng)求中表示邏輯分區(qū)的指示符與過(guò)濾器801B中所保存的記錄中表示邏輯分區(qū)的指示 符進(jìn)行比較。當(dāng)比較結(jié)果匹配時(shí),則基于所述請(qǐng)求在L2高速緩存830B中進(jìn)行搜索,并將搜 索結(jié)果返回發(fā)出該請(qǐng)求的L2高速緩存830A。當(dāng)比較結(jié)果不匹配,則從所述過(guò)濾器801B直 接向L2高速緩存830A返回否定響應(yīng)。同樣,在L2高速緩存830C和830D中也進(jìn)行類似的 操作。通過(guò)這樣的過(guò)濾機(jī)制,可以避免無(wú)結(jié)果的數(shù)據(jù)訪問(wèn)操作,從而可以降低L2高速緩存 中的功率消耗,提高處理系統(tǒng)的功率效率。應(yīng)當(dāng)注意,為了使本發(fā)明更容易理解,上面的描述省略了對(duì)于本領(lǐng)域的技術(shù)人員 來(lái)說(shuō)是公知的、并且對(duì)于本發(fā)明的實(shí)現(xiàn)可能是必需的更具體的一些技術(shù)細(xì)節(jié)。提供本發(fā)明的說(shuō)明書(shū)的目的是為了說(shuō)明和描述,而不是用來(lái)窮舉或?qū)⒈景l(fā)明限制 為所公開(kāi)的形式。對(duì)本領(lǐng)域的普通技術(shù)人員而言,許多修改和變更都是顯而易見(jiàn)的。因此,選擇并描述實(shí)施方式是為了更好地解釋本發(fā)明的原理及其實(shí)際應(yīng)用,并使 本領(lǐng)域普通技術(shù)人員明白,在不脫離本發(fā)明實(shí)質(zhì)的前提下,所有修改和變更均落入由權(quán)利 要求所限定的本發(fā)明的保護(hù)范圍之內(nèi)。10
權(quán)利要求
1.一種在多核系統(tǒng)中處理請(qǐng)求的方法,包括以下步驟由過(guò)濾器從請(qǐng)求單元接收關(guān)于數(shù)據(jù)的請(qǐng)求;將所述請(qǐng)求中表示邏輯分區(qū)的指示符與過(guò)濾器的記錄中表示邏輯分區(qū)的指示符進(jìn)行 比較;如果比較結(jié)果匹配,則基于所述請(qǐng)求在所述過(guò)濾器所處的單元中進(jìn)行搜索,并將搜索 結(jié)果返回所述請(qǐng)求單元;以及如果比較結(jié)果不匹配,則從所述過(guò)濾器向所述請(qǐng)求單元返回否定響應(yīng)。
2.根據(jù)權(quán)利要求1所述的方法,其中所述請(qǐng)求中表示邏輯分區(qū)的所述指示符是一個(gè) 或多個(gè)邏輯分區(qū)ID,所述記錄中表示邏輯分區(qū)的所述指示符指示所述過(guò)濾器所處的所述單 元中的一個(gè)或多個(gè)邏輯分區(qū)ID。
3.根據(jù)權(quán)利要求2所述的方法,其中將所述請(qǐng)求中的所述一個(gè)或多個(gè)邏輯分區(qū)ID從 所述請(qǐng)求中分離出來(lái)并移位以生成掩碼,其中所述掩碼的比特寬度與所述記錄中表示邏輯 分區(qū)的所述指示符的比特寬度相同。
4.根據(jù)權(quán)利要求3所述的方法,其中掩碼中表示所述請(qǐng)求中分離出來(lái)的所述邏輯分 區(qū)ID的比特被設(shè)置為“1”,所有其余比特設(shè)置為零;如果一個(gè)邏輯分區(qū)位于所述過(guò)濾器所 處的所述單元上,則所述記錄中表示邏輯分區(qū)的指示符的相應(yīng)比特被設(shè)置為“ 1”。
5.根據(jù)權(quán)利要求3或4所述的方法,其中所述匹配步驟包括比特寬度相同的所述掩 碼與所述記錄中表示邏輯分區(qū)的所述指示符進(jìn)行“與”操作,結(jié)果為非零,則表示匹配;結(jié)果 為零,則表示不匹配。
6.根據(jù)權(quán)利要求2所述的方法,其中將從所述請(qǐng)求中分離出來(lái)的所述一個(gè)或多個(gè)邏 輯分區(qū)ID分別與所述記錄中的所有邏輯分區(qū)ID相比較并將所有比較結(jié)果進(jìn)行“或”操作, 結(jié)果為非零,則表示匹配;結(jié)果為零,則表示不匹配。
7.根據(jù)權(quán)利要求1-6任一項(xiàng)所述的方法,其中基于邏輯分區(qū)移入或移出所述過(guò)濾器 所處的所述單元,對(duì)所述記錄中表示邏輯分區(qū)的所述指示符進(jìn)行動(dòng)態(tài)更新。
8.一種在多核系統(tǒng)中處理請(qǐng)求的設(shè)備,包括過(guò)濾器,被配置用于從發(fā)出請(qǐng)求的單元接收關(guān)于數(shù)據(jù)的請(qǐng)求,并將所述請(qǐng)求中表示邏 輯分區(qū)的指示符與過(guò)濾器的記錄中表示邏輯分區(qū)的指示符進(jìn)行比較;其中,所述過(guò)濾器還被配置用于如果比較結(jié)果匹配,則基于所述請(qǐng)求在所述過(guò)濾器所 處的單元中進(jìn)行搜索,并將搜索結(jié)果返回所述發(fā)出請(qǐng)求的單元;以及如果比較結(jié)果不匹配,則向所述發(fā)出請(qǐng)求的單元返回否定響應(yīng)。
9.根據(jù)權(quán)利要求8所述的設(shè)備,其中所述請(qǐng)求中表示邏輯分區(qū)的指示符包括一個(gè)或 多個(gè)邏輯分區(qū)ID,并且所述記錄中表示邏輯分區(qū)的指示符指示所述過(guò)濾器所處的所述單元 中的一個(gè)或多個(gè)邏輯分區(qū)ID。
10.根據(jù)權(quán)利要求8所述的設(shè)備,其中所述過(guò)濾器包括寄存器,所述記錄由所述寄存 器生成并保持,并且所述記錄中表示邏輯分區(qū)的指示符指示位于所述過(guò)濾器所處的所述單 元中的一個(gè)或多個(gè)邏輯分區(qū)ID。
11.根據(jù)權(quán)利要求9所述的設(shè)備,其中將所述請(qǐng)求中的所述一個(gè)或多個(gè)邏輯分區(qū)ID 從所述請(qǐng)求中分離出來(lái)并移位以生成掩碼,其中所述掩碼的比特寬度與所述記錄中表示邏 輯分區(qū)的指示符的比特寬度相同。
12.根據(jù)權(quán)利要求11所述的設(shè)備,其中掩碼中表示與所述請(qǐng)求中分離出來(lái)的所述邏輯分區(qū)ID的比特被設(shè)置為“1”,所有其余 比特設(shè)置為零;如果一個(gè)邏輯分區(qū)位于所述過(guò)濾器所處的所述單元上,則所述記錄中表示 邏輯分區(qū)的指示符的相應(yīng)比特被設(shè)置為“1”。
13.根據(jù)權(quán)利要求11或12所述的設(shè)備,其中所述匹配步驟包括比特寬度相同的所 述掩碼與所述記錄中表示邏輯分區(qū)的指示符進(jìn)行“與”操作,結(jié)果為非零,則表示匹配;結(jié)果 為零,則表示不匹配。
14.根據(jù)權(quán)利要求9所述的設(shè)備,其中將從所述請(qǐng)求中分離出來(lái)的所述一個(gè)或多個(gè)邏 輯分區(qū)ID分別與所述記錄中的所有邏輯分區(qū)ID相比較并將所有比較結(jié)果進(jìn)行“或”操作, 結(jié)果為非零,則表示匹配;結(jié)果為零,則表示不匹配。
15.根據(jù)權(quán)利要求8-14任一項(xiàng)所述的設(shè)備,其中所述設(shè)備在L2高速緩存中實(shí)現(xiàn)。
16.根據(jù)權(quán)利要求8-14任一項(xiàng)所述的設(shè)備,其中所述請(qǐng)求單元和所述過(guò)濾器所處的 所述單元是L2高速緩存。
17.根據(jù)權(quán)利要求8-16任一項(xiàng)所述的設(shè)備,其中基于邏輯分區(qū)移入或移出所述過(guò)濾 器所處的所述單元,所述記錄中表示邏輯分區(qū)的所述指示符進(jìn)行動(dòng)態(tài)更新。
18.一種多核系統(tǒng),包括第一高速緩存;一個(gè)或多個(gè)第二高速緩存;其中,所述第一高速緩存被配置用于向所述一個(gè)或多個(gè)第二高速緩存發(fā)出關(guān)于數(shù)據(jù)的 請(qǐng)求;所述一個(gè)或多個(gè)第二高速緩存的每一個(gè)包括過(guò)濾器,其被配置用于接收所述請(qǐng)求, 并將所述請(qǐng)求中表示邏輯分區(qū)的指示符與過(guò)濾器的記錄中表示邏輯分區(qū)的指示符進(jìn)行比 較;其中,所述過(guò)濾器還被配置用于如果比較結(jié)果匹配,則基于所述請(qǐng)求在所述第一高速 緩存中進(jìn)行搜索,并將搜索結(jié)果返回所述一個(gè)或多個(gè)第二高速緩存;以及如果比較結(jié)果不匹配,則從所述過(guò)濾器向所述一個(gè)或多個(gè)第二高速緩存返回否定響應(yīng)。
全文摘要
一種在多核系統(tǒng)中處理請(qǐng)求的方法、設(shè)備和系統(tǒng)。所述方法包括以下步驟由過(guò)濾器從請(qǐng)求單元接收關(guān)于數(shù)據(jù)的請(qǐng)求;將所述請(qǐng)求中表示邏輯分區(qū)的指示符與過(guò)濾器的記錄中表示邏輯分區(qū)的指示符進(jìn)行比較;如果比較結(jié)果匹配,則基于所述請(qǐng)求在所述過(guò)濾器所處的單元中進(jìn)行搜索,并將搜索結(jié)果返回所述請(qǐng)求單元;以及如果比較結(jié)果不匹配,則從所述過(guò)濾器向所述請(qǐng)求單元返回否定響應(yīng)。
文檔編號(hào)G06F15/80GK102053946SQ20091021138
公開(kāi)日2011年5月11日 申請(qǐng)日期2009年10月30日 優(yōu)先權(quán)日2009年10月30日
發(fā)明者侯銳, 戈弋, 曾洪博, 王鯤, 章宇 申請(qǐng)人:國(guó)際商業(yè)機(jī)器公司