運(yùn)算處理設(shè)備、信息處理設(shè)備及控制信息處理設(shè)備的方法
【專利摘要】本公開涉及運(yùn)算處理設(shè)備、信息處理設(shè)備及控制信息處理設(shè)備的方法。運(yùn)算處理設(shè)備包括:運(yùn)算處理單元,被配置成使用由自身的設(shè)備管理的第一數(shù)據(jù)及由另一運(yùn)算處理設(shè)備管理并從其獲取的第二數(shù)據(jù)進(jìn)行運(yùn)算處理;主存儲(chǔ)器,被配置成存儲(chǔ)第一數(shù)據(jù)和第三數(shù)據(jù);以及控制單元,被配置成包括設(shè)置單元和高速緩沖存儲(chǔ)器,設(shè)置單元將運(yùn)算處理單元設(shè)置成工作狀態(tài)或非工作狀態(tài),高速緩沖存儲(chǔ)器保存第一數(shù)據(jù)、第二數(shù)據(jù)和第三數(shù)據(jù),其中當(dāng)設(shè)置單元將運(yùn)算處理單元設(shè)置成非工作狀態(tài)并由另一運(yùn)算處理設(shè)備請(qǐng)求觸發(fā)高速緩沖存儲(chǔ)器中的高速緩存命中失誤的第三數(shù)據(jù)時(shí),控制單元從主存儲(chǔ)器讀取所請(qǐng)求的第三數(shù)據(jù),將其保存在高速緩沖存儲(chǔ)器中,并將其發(fā)送給另一運(yùn)算處理設(shè)備。
【專利說明】運(yùn)算處理設(shè)備、信息處理設(shè)備及控制信息處理設(shè)備的方法
【技術(shù)領(lǐng)域】
[0001]本文中所描述的實(shí)施方式涉及運(yùn)算處理設(shè)備、信息處理設(shè)備以及控制信息處理設(shè)備的方法。
【背景技術(shù)】
[0002]運(yùn)算處理設(shè)備被應(yīng)用于用于共享在信息處理設(shè)備中的多個(gè)處理器核心中的主存儲(chǔ)器中所存儲(chǔ)的數(shù)據(jù)的實(shí)際應(yīng)用。在信息處理設(shè)備中多個(gè)處理器核心與LI高速緩存的對(duì)形成處理器核心組。處理器核心組與L2高速緩存、L2高速緩存控制單元以及主存儲(chǔ)器相連接。處理器核心組、L2高速緩存、L2高速緩存控制單元以及存儲(chǔ)器的集合被稱為集群。
[0003]高速緩存是存儲(chǔ)具有較大容量的主存儲(chǔ)器中所存儲(chǔ)的數(shù)據(jù)中頻繁使用的數(shù)據(jù)的具有較小容量的存儲(chǔ)單元。當(dāng)主存儲(chǔ)器中的數(shù)據(jù)被臨時(shí)存儲(chǔ)在高速緩存中時(shí),減少了耗時(shí)的對(duì)存儲(chǔ)器訪問的頻率。高速緩存采用層次結(jié)構(gòu),其中在較高層實(shí)現(xiàn)較高速度的處理并且在較低層實(shí)現(xiàn)較大的容量。
[0004]在基于目錄的高速緩存一致性控制方案中,如上所述的L2高速緩存存儲(chǔ)L2高速緩存所屬的集群中的處理器核心組所請(qǐng)求的數(shù)據(jù)。該處理器核心組被配置成更頻繁地從更接近該處理器核心組的L2高速緩存獲取數(shù)據(jù)。另外,由主存儲(chǔ)器所屬的集群對(duì)存儲(chǔ)在存儲(chǔ)器中的數(shù)據(jù)進(jìn)行管理以維持?jǐn)?shù)據(jù)一致性。
[0005]此外,集群根據(jù)該方案對(duì)要管理的存儲(chǔ)器中的數(shù)據(jù)處于什么狀態(tài)以及數(shù)據(jù)存儲(chǔ)在哪個(gè)L2高速緩存中進(jìn)行管理。而且,當(dāng)集群接收對(duì)存儲(chǔ)器的用于獲取數(shù)據(jù)的請(qǐng)求時(shí),集群基于數(shù)據(jù)的當(dāng)前狀態(tài)針對(duì)數(shù)據(jù)獲取請(qǐng)求進(jìn)行適當(dāng)?shù)奶幚?。然后集群針?duì)數(shù)據(jù)獲取請(qǐng)求進(jìn)行處理并且更新與數(shù)據(jù)的狀態(tài)有關(guān)的信息。
[0006]如專利文獻(xiàn)I所示,提供了用于減少對(duì)采用上述集群結(jié)構(gòu)和上述處理方案的運(yùn)算處理設(shè)備中的主存儲(chǔ)器的訪問所需要的延遲時(shí)間的提議。在專利文獻(xiàn)I中,當(dāng)高速緩存中發(fā)生高速緩存命中失誤(cache miss)并且該高速緩存沒有用于存儲(chǔ)數(shù)據(jù)的可用容量時(shí),該高速緩存所屬的集群中的存儲(chǔ)器中的數(shù)據(jù)被優(yōu)先從高速緩存中清除以產(chǎn)生可用容量。
[0007][專利文獻(xiàn)]
[0008][專利文獻(xiàn)I]日本公開特許公報(bào)N0.2000-66955
【發(fā)明內(nèi)容】
[0009]在上述技術(shù)中,由于高速緩存是臨時(shí)存儲(chǔ),進(jìn)行用于訪問主存儲(chǔ)器以將數(shù)據(jù)回寫存儲(chǔ)器的處理。主存儲(chǔ)器具有較大容量并且可以被安裝在與用于處理器核心組和高速緩存的芯片不同的芯片上。因此,對(duì)主存儲(chǔ)器的訪問可以是對(duì)于減少數(shù)據(jù)存取延遲時(shí)間的瓶頸。
[0010]因此,本文中所公開的技術(shù)的一方面的目的是提供一種運(yùn)算處理設(shè)備、信息處理設(shè)備以及控制信息處理設(shè)備的方法,以減少對(duì)主存儲(chǔ)器的訪問頻率。
[0011]根據(jù)實(shí)施方式的一方面,提供一種與另一運(yùn)算處理設(shè)備連接的運(yùn)算處理設(shè)備,其包括:運(yùn)算處理單元,被配置成使用由該運(yùn)算處理設(shè)備自己管理的第一數(shù)據(jù)以及從另一運(yùn)算處理單元獲取的第二數(shù)據(jù)來進(jìn)行運(yùn)算處理,第二數(shù)據(jù)被另一運(yùn)算處理設(shè)備管理;主存儲(chǔ)器,被配置成存儲(chǔ)第一數(shù)據(jù)和第三數(shù)據(jù);以及控制單元,被配置成包括設(shè)置單元和高速緩沖存儲(chǔ)器,該設(shè)置單元將該運(yùn)算處理單元設(shè)置成工作狀態(tài)或非工作狀態(tài),該高速緩沖存儲(chǔ)器保存第一數(shù)據(jù)、第二數(shù)據(jù)和第三數(shù)據(jù),其中,當(dāng)設(shè)置單元將運(yùn)算處理單元設(shè)置成非工作狀態(tài)并且從另一運(yùn)算處理設(shè)備請(qǐng)求觸發(fā)高速緩沖存儲(chǔ)器中的高速緩存命中失誤的第三數(shù)據(jù)時(shí),控制單元從主存儲(chǔ)器讀取所請(qǐng)求的第三數(shù)據(jù)并且在高速緩沖存儲(chǔ)器中保存所請(qǐng)求的第三數(shù)據(jù)并且將所讀取的第三數(shù)據(jù)發(fā)送給另一運(yùn)算處理設(shè)備。
【專利附圖】
【附圖說明】
[0012]圖1是示出根據(jù)比較例的信息處理設(shè)備中的集群配置的一部分的圖;
[0013]圖2是示意性地示出根據(jù)比較例的L2高速緩存控制單元的配置的圖;
[0014]圖3是示出根據(jù)比較例的當(dāng)集群中生成了數(shù)據(jù)獲取請(qǐng)求時(shí)的處理的圖;
[0015]圖4是示出在如圖3所示的處理示例中在L2高速緩存控制單元中進(jìn)行的處理的圖;
[0016]圖5是示出根據(jù)比較例的當(dāng)集群中生成了數(shù)據(jù)獲取請(qǐng)求時(shí)的處理的圖;
[0017]圖6是示出在如圖5所示的比較例中在L2高速緩存控制單元中進(jìn)行的處理的圖;
[0018]圖7是示出當(dāng)在比較例中進(jìn)行針對(duì)數(shù)據(jù)的回沖(flush back)處理和回寫處理時(shí)在集群中進(jìn)行的處理的圖;
[0019]圖8是示出在如圖7所示的處理示例中在L2高速緩存控制單元中進(jìn)行的處理的示例的圖;
[0020]圖9是示出在比較例中用于在信息處理設(shè)備中專有地獲取數(shù)據(jù)的處理的示例的圖;
[0021]圖10是示出在如圖9所示的處理示例中在L2高速緩存控制單元中進(jìn)行的處理的圖;
[0022]圖11是示出在比較例中當(dāng)保存被從L2高速緩存逐出的數(shù)據(jù)時(shí)進(jìn)行的處理的圖;
[0023]圖12是示意性地示出根據(jù)實(shí)施方式的信息處理設(shè)備中的集群配置的一部分的圖;
[0024]圖13是示出根據(jù)實(shí)施方式的集群中的L2高速緩存控制單元的圖;
[0025]圖14是示出根據(jù)實(shí)施方式的信息處理設(shè)備中處于“開啟模式”狀態(tài)的集群中的處理器核心組的工作模式的圖;
[0026]圖15是示出在本地集群從主集群中的存儲(chǔ)器獲取數(shù)據(jù)時(shí)進(jìn)行的處理的圖;
[0027]圖16是示出在如圖15所示的處理示例中由L2高速緩存控制單元進(jìn)行的處理的圖;
[0028]圖17是示出形成根據(jù)實(shí)施方式的控制器的電路的圖;
[0029]圖18是在如圖15至圖17所示的處理示例中L2高速緩存控制單元的時(shí)序圖;
[0030]圖19是示出該實(shí)施方式中當(dāng)從屬于本地集群的L2高速緩存逐出數(shù)據(jù)時(shí)進(jìn)行的處理的圖;
[0031]圖20是示出在如圖19所示的處理示例中在L2高速緩存控制單元中進(jìn)行的處理的圖;
[0032]圖21是示出形成圖19中所示的處理示例中的控制器的電路的圖;
[0033]圖22是圖19至圖21中所示的處理示例中的L2高速緩存控制單元的時(shí)序圖;
[0034]圖23是示出其中在實(shí)施方式中的信息處理設(shè)備中集群形成多個(gè)組的示例的圖;以及
[0035]圖24是示出根據(jù)實(shí)施方式的L2高速緩存控制單元的配置示例的圖。
【具體實(shí)施方式】
[0036]首先,參考附圖描述根據(jù)一個(gè)實(shí)施方式的信息處理設(shè)備的比較例。
[0037](比較例)
[0038]圖1示出了根據(jù)比較例的信息處理設(shè)備中的集群配置的一部分。如圖1所示,集群10包括處理器核心組100、L2高速緩存控制單元101以及存儲(chǔ)器102,處理器核心組100包括處理器核心與LI高速緩存的η個(gè)(η是自然數(shù))組合。L2高速緩存控制單元101包括L2高速緩存103。與集群10類似,集群20也包括處理器核心組200、L2高速緩存控制單元201、存儲(chǔ)器202以及L2高速緩存203并且集群30也包括處理器核心組300、L2高速緩存控制單元301、存儲(chǔ)器302以及L2高速緩存303。
[0039]在以下描述中,將請(qǐng)求存儲(chǔ)在主存儲(chǔ)器中的數(shù)據(jù)的處理器核心所屬的集群稱為本地(集群)。另外,將存儲(chǔ)被請(qǐng)求的數(shù)據(jù)的存儲(chǔ)器所屬的集群稱為主(home)(集群)。此外,將不是本地集群并且保存所請(qǐng)求的數(shù)據(jù)的集群稱為遠(yuǎn)程(集群)。因此,根據(jù)數(shù)據(jù)被請(qǐng)求向哪里或者從哪里請(qǐng)求數(shù)據(jù),每個(gè)集群可以是本地集群、主集群和/或遠(yuǎn)程集群。而且,本地集群在某些情況下也作用為主集群用于進(jìn)行與數(shù)據(jù)獲取請(qǐng)求有關(guān)的處理。并且遠(yuǎn)程集群在某些情況下也作用為主集群。此外,將由主集群管理的主存儲(chǔ)器中所存儲(chǔ)的數(shù)據(jù)的狀態(tài)信息稱為目錄信息。稍后對(duì)上述組成部分的詳情進(jìn)行描述。
[0040]如圖1所示,每個(gè)集群中的L2高速緩存控制單元經(jīng)由總線或者互連件與另一 L2高速緩存控制單元連接。在信息處理設(shè)備I中,因?yàn)榇鎯?chǔ)器空間是所謂平坦的(flat),所以由物理地址唯一地確定主存儲(chǔ)器中存儲(chǔ)了哪個(gè)數(shù)據(jù)以及存儲(chǔ)器屬于哪個(gè)集群。
[0041]例如,當(dāng)集群10獲取不是存儲(chǔ)在存儲(chǔ)器102中而是存儲(chǔ)在存儲(chǔ)器202中的數(shù)據(jù)時(shí),集群10向存儲(chǔ)數(shù)據(jù)的存儲(chǔ)器202所屬的集群20發(fā)送數(shù)據(jù)請(qǐng)求。集群20檢查數(shù)據(jù)的狀態(tài)。此處,數(shù)據(jù)的狀態(tài)意為數(shù)據(jù)的使用狀態(tài),例如數(shù)據(jù)存儲(chǔ)在哪個(gè)集群中、數(shù)據(jù)是否被專有地使用以及信息處理設(shè)備I中數(shù)據(jù)的同步處于什么狀態(tài)。另外,當(dāng)要獲取的數(shù)據(jù)存儲(chǔ)在屬于集群20的L2高速緩存203中并且在信息處理設(shè)備I中建立了數(shù)據(jù)的同步時(shí),集群20將數(shù)據(jù)發(fā)送給請(qǐng)求數(shù)據(jù)的集群10。然后集群20在數(shù)據(jù)的狀態(tài)信息中記錄數(shù)據(jù)被發(fā)送給集群10并且數(shù)據(jù)被同步到信息處理設(shè)備I中。
[0042]圖2示意性地示出了 L2高速緩存控制單元101的配置。L2高速緩存控制單元101包括控制器101a、L2高速緩存103以及目錄隨機(jī)存取存儲(chǔ)器(RAM) 104。另外,L2高速緩存103包括標(biāo)簽RAM103a和數(shù)據(jù)RAM103b。標(biāo)簽RAM103a保存由數(shù)據(jù)RAM103b保存的塊的標(biāo)簽信息。標(biāo)簽信息意為一致性協(xié)議控制中與每個(gè)數(shù)據(jù)的使用狀態(tài)、主存儲(chǔ)器中的地址等有關(guān)的信息。在使用多個(gè)處理器的多處理器環(huán)境中,更有可能的是處理器共享相同的數(shù)據(jù)并且對(duì)數(shù)據(jù)進(jìn)行訪問。因此,在多處理器環(huán)境中維持存儲(chǔ)在每個(gè)高速緩存中的數(shù)據(jù)的一致性。用于維持各處理器間的數(shù)據(jù)的一致性的協(xié)議被稱為一致性協(xié)議。MESI協(xié)議是這種協(xié)議的一個(gè)示例。在以下描述中,使用了對(duì)具有四個(gè)狀態(tài)即修改、專有、共享以及無效的數(shù)據(jù)的使用狀態(tài)進(jìn)行管理的MESI協(xié)議。然而,可用的協(xié)議不限于該協(xié)議。
[0043]控制器101a使用標(biāo)簽RAM103a來檢查存儲(chǔ)器塊以哪個(gè)狀態(tài)被存儲(chǔ)在數(shù)據(jù)RAM103b中以及數(shù)據(jù)以哪個(gè)狀態(tài)存在。例如,數(shù)據(jù)RAM103b是用于保存存儲(chǔ)器102中所存儲(chǔ)的數(shù)據(jù)的副本的RAM。目錄RAM104是用于承擔(dān)屬于主集群的主存儲(chǔ)器的目錄信息的RAM。因?yàn)槟夸浶畔⑹谴罅康男畔ⅲ栽诤芏嗲闆r下將目錄信息存儲(chǔ)在主存儲(chǔ)器中并且在RAM中布置針對(duì)該存儲(chǔ)器的高速緩存。然而,在本實(shí)施方式中將屬于主集群的存儲(chǔ)器的目錄信息存儲(chǔ)在目錄RAM104中。
[0044]控制器1la接受來自處理器核心組100或者其他集群中的L2高速緩存控制單元中的控制器的請(qǐng)求??刂破?la根據(jù)所接收到的請(qǐng)求的內(nèi)容將操作請(qǐng)求發(fā)送給標(biāo)簽RAM103a、數(shù)據(jù)RAM103b、目錄RAM104、存儲(chǔ)器102或者其他集群。并且當(dāng)所請(qǐng)求的操作完成時(shí),控制器1la將操作結(jié)果返回給操作的請(qǐng)求者。
[0045]圖3是示出當(dāng)在集群10中生成了數(shù)據(jù)獲取請(qǐng)求時(shí)進(jìn)行的處理的示例的圖。圖3中集群10是本地集群和主集群。圖3示出了當(dāng)生成了對(duì)屬于集群10的存儲(chǔ)器102的數(shù)據(jù)獲取請(qǐng)求并且在L2高速緩存103中發(fā)生高速緩存命中失誤時(shí)進(jìn)行的處理。此處假設(shè)當(dāng)L2高速緩存控制單元接收數(shù)據(jù)獲取請(qǐng)求時(shí)在LI高速緩存中發(fā)生高速緩存命中失誤。
[0046]從本地的集群10中的處理器核心向L2高速緩存控制單元101發(fā)送數(shù)據(jù)的請(qǐng)求。當(dāng)也是主的集群10中的L2高速緩存控制單元101確定L2高速緩存103不保存數(shù)據(jù)(命中失誤)時(shí),L2高速緩存控制單元101參考存儲(chǔ)在目錄RAM104中的目錄信息。然后L2高速緩存控制單元101基于目錄信息進(jìn)行檢查以確定遠(yuǎn)程集群中的L2高速緩存是否保存該數(shù)據(jù)。當(dāng)L2高速緩存控制單元101確定遠(yuǎn)程集群中的L2高速緩存不保存數(shù)據(jù)(命中失誤)時(shí),L2高速緩存控制單元101向本地的集群10中的存儲(chǔ)器102請(qǐng)求數(shù)據(jù)獲取。當(dāng)存儲(chǔ)器102將數(shù)據(jù)返回給L2高速緩存控制單元101時(shí),L2高速緩存控制單元101將數(shù)據(jù)存儲(chǔ)在L2高速緩存103中的數(shù)據(jù)RAM103b中。另外,L2高速緩存控制單元101將數(shù)據(jù)發(fā)送給處理器核心組100中的請(qǐng)求數(shù)據(jù)的處理器核心。此外,L2高速緩存中的標(biāo)簽RAM103a存儲(chǔ)信息,該信息指示在數(shù)據(jù)在信息處理設(shè)備I中被同步的狀態(tài)下獲取了數(shù)據(jù)。此外,目錄RAM104存儲(chǔ)指示數(shù)據(jù)被本地的集群10保存的信息。
[0047]當(dāng)L2高速緩存控制單元101參考標(biāo)簽RAM103a以確定L2高速緩存103中的數(shù)據(jù)RAM103b不具有用于存儲(chǔ)數(shù)據(jù)的容量時(shí),L2高速緩存控制單元101根據(jù)包括隨機(jī)算法和LRU (最近最少使用)算法的預(yù)定算法從L2高速緩存103逐出數(shù)據(jù)。當(dāng)L2高速緩存控制單元101參考標(biāo)簽RAM103a以確定要被逐出的數(shù)據(jù)處于與存儲(chǔ)在存儲(chǔ)器102中的數(shù)據(jù)類似的狀態(tài)時(shí),L2高速緩存控制單元101丟棄要被逐出的數(shù)據(jù)。另一方面,當(dāng)L2高速緩存控制單元101參考標(biāo)簽RAM103a以確定要被逐出的數(shù)據(jù)已經(jīng)被更新時(shí),L2高速緩存控制單元101將要被逐出的數(shù)據(jù)回寫存儲(chǔ)器102。
[0048]因此,將由處理器核心組100中的處理器核心請(qǐng)求的數(shù)據(jù)存儲(chǔ)在L2高速緩存103中的數(shù)據(jù)RAM103b中的空閑空間中。此外,當(dāng)處理器核心組100中的處理器核心再次生成針對(duì)數(shù)據(jù)的數(shù)據(jù)獲取請(qǐng)求時(shí),L2高速緩存控制單元101保存數(shù)據(jù)RAM103b中所存儲(chǔ)的數(shù)據(jù)并且將數(shù)據(jù)發(fā)送給處理器核心(命中)。因此,只要數(shù)據(jù)沒有被從數(shù)據(jù)RAM103b逐出,L2高速緩存控制單元101就不訪問存儲(chǔ)器102。
[0049]圖4是示出在如圖3所示的處理示例中在L2高速緩存控制單元101中進(jìn)行的處理的圖??刂破?la接受來自處理器核心組100中的處理器核心的數(shù)據(jù)獲取請(qǐng)求。數(shù)據(jù)獲取請(qǐng)求包含指示由處理器核心生成了請(qǐng)求、數(shù)據(jù)獲取請(qǐng)求的類型以及存儲(chǔ)器中存儲(chǔ)數(shù)據(jù)的地址的信息。控制器1la根據(jù)請(qǐng)求的內(nèi)容啟動(dòng)適當(dāng)?shù)奶幚怼?br>
[0050]首先,控制器1la檢查標(biāo)簽RAM103a以確定在數(shù)據(jù)RAM103b中是否找到了存儲(chǔ)作為數(shù)據(jù)獲取請(qǐng)求的目標(biāo)的數(shù)據(jù)的主存儲(chǔ)器的塊的副本。當(dāng)控制器1la接收指示沒有從標(biāo)簽RAM103a找到該副本的結(jié)果(命中失誤)時(shí),控制器1la參考目錄RAM104以檢查作為數(shù)據(jù)獲取請(qǐng)求的目標(biāo)的數(shù)據(jù)是否被遠(yuǎn)程集群保存。控制器1la從目錄RAM104接收指示數(shù)據(jù)沒有被集群保存的結(jié)果(命中失誤),控制器1la向存儲(chǔ)器102發(fā)送數(shù)據(jù)的數(shù)據(jù)獲取請(qǐng)求。當(dāng)控制器1la從存儲(chǔ)器102接收數(shù)據(jù)時(shí),控制器1la將指示數(shù)據(jù)被主集群保存的信息登記在目錄RAM104中。另外,控制器1la將數(shù)據(jù)的使用狀態(tài)(“共享”等)的信息存儲(chǔ)在標(biāo)簽RAM103a中。此外,控制器1la將數(shù)據(jù)存儲(chǔ)在數(shù)據(jù)RAM103b。而且,控制器1la將數(shù)據(jù)發(fā)送給處理器核心組100中的請(qǐng)求數(shù)據(jù)的處理器核心。
[0051]接下來,圖5是示出當(dāng)集群中10中生成了數(shù)據(jù)獲取請(qǐng)求時(shí)進(jìn)行的處理的示例的圖。在如圖5所示的示例中,集群10是本地集群并且集群20是主集群(home cluster)。本地的集群中10中的處理器核心組100中的處理器核心向集群10中的L2高速緩存103發(fā)送數(shù)據(jù)獲取請(qǐng)求。因?yàn)樗?qǐng)求的數(shù)據(jù)未存儲(chǔ)在L2高速緩存103中,所以發(fā)生了高速緩存命中失誤(命中失誤)。因此,集群10向作為主的集群20發(fā)送針對(duì)數(shù)據(jù)的數(shù)據(jù)獲取請(qǐng)求。集群20中的L2高速緩存控制單元201檢查存儲(chǔ)在L2高速緩存203中的目錄信息。當(dāng)L2高速緩存控制單元201中的控制器201a確定數(shù)據(jù)未存儲(chǔ)在L2高速緩存203以及遠(yuǎn)程集群中的L2高速緩存中(命中失誤)時(shí),控制器201a向存儲(chǔ)器202發(fā)送針對(duì)數(shù)據(jù)的數(shù)據(jù)獲取請(qǐng)求。
[0052]當(dāng)存儲(chǔ)器202將數(shù)據(jù)返回給L2高速緩存控制單元201時(shí),L2高速緩存控制單元201更新存儲(chǔ)在目錄RAM204中的目錄信息。并且L2高速緩存控制單元201將數(shù)據(jù)發(fā)送給本地的并且請(qǐng)求數(shù)據(jù)的集群10。集群10中的L2高速緩存控制單元101將從集群20中的L2高速緩存控制單元201接收的數(shù)據(jù)存儲(chǔ)在L2高速緩存103中。然后L2高速緩存控制單元101將數(shù)據(jù)發(fā)送給處理器核心組100中請(qǐng)求數(shù)據(jù)的處理器核心。
[0053]此處,由于以下原因,數(shù)據(jù)未存儲(chǔ)在作為主的集群20中的L2高速緩存203中。第一,從本地的集群10中的處理器核心而不是從作為主的集群20中的處理器核心請(qǐng)求數(shù)據(jù)。第二,當(dāng)數(shù)據(jù)存儲(chǔ)在作為主的集群20中的L2高速緩存203中時(shí),這意味著不被作為主的集群20中的處理器核心組200使用的數(shù)據(jù)被存儲(chǔ)在L2高速緩存203中。第三,當(dāng)這種未使用的數(shù)據(jù)存儲(chǔ)在L2高速緩存203中時(shí),可能從L2高速緩存203逐出被處理器核心組200使用的數(shù)據(jù)。
[0054]圖6是示出在如圖5所示的示例中由L2高速緩存控制單元101和L2高速緩存控制單元201進(jìn)行的處理的圖。本地的集群10中的L2高速緩存控制單元101中的控制器1la接受來自處理器核心組100中的處理器核心的數(shù)據(jù)獲取請(qǐng)求。數(shù)據(jù)獲取請(qǐng)求包括指示由處理器核心生成了請(qǐng)求、數(shù)據(jù)獲取請(qǐng)求的類型以及存儲(chǔ)器中存儲(chǔ)數(shù)據(jù)的地址的信息??刂破?la根據(jù)請(qǐng)求的內(nèi)容啟動(dòng)適當(dāng)?shù)奶幚怼?br>
[0055]控制器1la檢查標(biāo)簽RAM103a以確定是否在數(shù)據(jù)RAM103b中找到了存儲(chǔ)作為數(shù)據(jù)獲取請(qǐng)求的目標(biāo)的數(shù)據(jù)的主存儲(chǔ)器的塊的副本。當(dāng)控制器1la接收到指示沒有從標(biāo)簽RAM103a找到該副本的結(jié)果(命中失誤)時(shí),控制器1la將數(shù)據(jù)的數(shù)據(jù)獲取請(qǐng)求發(fā)送給屬于作為主的集群20的L2高速緩存控制單元201中的控制器201a。
[0056]當(dāng)控制器201a接收到數(shù)據(jù)獲取請(qǐng)求時(shí),控制器201a檢查目錄RAM204以確定作為數(shù)據(jù)獲取請(qǐng)求的目標(biāo)的數(shù)據(jù)是否存儲(chǔ)在任何集群中的L2高速緩存中。當(dāng)控制器201a從目錄RAM204接收到指示沒有在集群中找到數(shù)據(jù)的結(jié)果(命中失誤)時(shí),控制器201a向存儲(chǔ)器202發(fā)送針對(duì)數(shù)據(jù)的數(shù)據(jù)獲取請(qǐng)求。當(dāng)存儲(chǔ)器202將數(shù)據(jù)返回給控制器201a時(shí),控制器201a將指示數(shù)據(jù)被請(qǐng)求數(shù)據(jù)的集群10保存的信息作為數(shù)據(jù)的使用狀態(tài)存儲(chǔ)在目錄RAM204中。然后控制器201a將數(shù)據(jù)發(fā)送給請(qǐng)求數(shù)據(jù)的集群10中的控制器101a。當(dāng)集群10中的控制器10 Ia接收到數(shù)據(jù)時(shí),控制器10 Ia將數(shù)據(jù)的使用狀態(tài)(“共享”等)存儲(chǔ)在標(biāo)簽RAM103a中。另外,控制器1la將數(shù)據(jù)存儲(chǔ)在數(shù)據(jù)RAM103b中。此外,控制器1la將數(shù)據(jù)發(fā)送給處理器核心組100中請(qǐng)求數(shù)據(jù)的處理器核心。
[0057]圖7是示出當(dāng)在比較例中對(duì)遠(yuǎn)程集群執(zhí)行針對(duì)數(shù)據(jù)的回沖或回寫時(shí)由集群進(jìn)行的處理的圖。對(duì)遠(yuǎn)程集群回沖意為當(dāng)集群將從另一集群獲取的數(shù)據(jù)從高速緩存逐出時(shí)進(jìn)行的處理。回沖也意為用于將以下內(nèi)容通知給主集群的處理:當(dāng)被逐出的數(shù)據(jù)沒有被更新并且被在信息處理設(shè)備I中同步時(shí)將數(shù)據(jù)從對(duì)于主集群來說不僅是本地集群還是遠(yuǎn)程集群的集群逐出,即,被逐出的數(shù)據(jù)是干凈的。針對(duì)主集群進(jìn)行處理以更新目錄信息。
[0058]此外,對(duì)遠(yuǎn)程集群回寫意為當(dāng)集群將從另一集群獲取的數(shù)據(jù)從集群中的高速緩存逐出時(shí)進(jìn)行的處理?;貙懸惨鉃橛糜谕ㄖ硪患阂韵聝?nèi)容的處理:當(dāng)被逐出的數(shù)據(jù)被更新并且未被在信息處理設(shè)備I中同步時(shí)數(shù)據(jù)是所謂“臟的”,即被逐出的數(shù)據(jù)是臟的。如下所述,當(dāng)在比較例中集群對(duì)遠(yuǎn)程集群執(zhí)行回沖時(shí),集群將回沖請(qǐng)求發(fā)送給從其獲取數(shù)據(jù)的集群而不將數(shù)據(jù)發(fā)送給從其獲取數(shù)據(jù)的集群。相反,當(dāng)在比較例中集群對(duì)遠(yuǎn)程集群執(zhí)行回沖時(shí),集群將回寫請(qǐng)求發(fā)送給從其獲取數(shù)據(jù)的集群并且也將數(shù)據(jù)發(fā)送給從其獲取數(shù)據(jù)的集群,使得從其獲取數(shù)據(jù)的集群將數(shù)據(jù)存儲(chǔ)在存儲(chǔ)器中。
[0059]如上所述,當(dāng)新的數(shù)據(jù)被存儲(chǔ)在L2高速緩存中并且L2高速緩存不具有用于數(shù)據(jù)的容量時(shí),根據(jù)預(yù)定算法將存儲(chǔ)在L2高速緩存中的數(shù)據(jù)逐出。在圖7中,集群10是本地集群而集群20是主集群。應(yīng)該注意的是在本示例中集群20也是遠(yuǎn)程集群。此外,圖7中未示出的信息處理設(shè)備I中的集群是遠(yuǎn)程集群。而且,在圖7中,因?yàn)閷儆诒镜氐募?0的L2高速緩存103中的數(shù)據(jù)RAM103b不具有數(shù)據(jù)容量,所以集群10從存儲(chǔ)在數(shù)據(jù)RAM103b中的數(shù)據(jù)中逐出要被存儲(chǔ)在遠(yuǎn)程的集群20中的存儲(chǔ)器202中的數(shù)據(jù)。
[0060]在這種情況下,如圖7所示,集群10中的L2高速緩存控制單元101將用于從L2高速緩存103逐出數(shù)據(jù)的請(qǐng)求發(fā)送給集群20中的L2高速緩存控制單元201。該請(qǐng)求是回沖請(qǐng)求或者回寫請(qǐng)求。應(yīng)該注意的是回沖請(qǐng)求和回寫請(qǐng)求是預(yù)定請(qǐng)求的示例。另外,當(dāng)要被逐出的數(shù)據(jù)是干凈的時(shí),將回沖請(qǐng)求發(fā)送給作為主的集群20中的L2高速緩存控制單元201。L2高速緩存控制單元201將指示數(shù)據(jù)被從請(qǐng)求數(shù)據(jù)的集群10逐出的信息存儲(chǔ)在L2高速緩存控制單元201的目錄信息中。
[0061]另一方面,當(dāng)要被逐出的數(shù)據(jù)是臟的時(shí),將回寫請(qǐng)求和數(shù)據(jù)發(fā)送給作為主的集群20中的L2高速緩存控制單元201。例如,當(dāng)數(shù)據(jù)被本地的集群10中的處理器核心組100更新時(shí),數(shù)據(jù)變成了臟的。另外,L2高速緩存控制單元201將指示數(shù)據(jù)被從請(qǐng)求數(shù)據(jù)的集群10逐出的信息存儲(chǔ)在目錄RAM204中所存儲(chǔ)的目錄信息中。L2高速緩存控制單元201將數(shù)據(jù)回寫到屬于作為主的集群20的存儲(chǔ)器202。應(yīng)該注意的是遠(yuǎn)程的集群中的處理器核心向作為主的集群20請(qǐng)求數(shù)據(jù)。也就是說,數(shù)據(jù)不是被作為主的集群20中的處理器核心組200請(qǐng)求的。當(dāng)數(shù)據(jù)存儲(chǔ)在作為主的集群20中的L2高速緩存203中時(shí),可以將處理器核心組200請(qǐng)求的其他數(shù)據(jù)從L2高速緩存203逐出。因此,數(shù)據(jù)未被存儲(chǔ)在作為主的集群20中的L2高速緩存203中。
[0062]圖8是示出在如圖7所示的示例中在L2高速緩存控制單元101和L2高速緩存控制單元201中進(jìn)行的處理的圖。此處描述了在確定了要從L2高速緩存控制單元101中的L2高速緩存103逐出的數(shù)據(jù)之后進(jìn)行的處理。L2高速緩存控制單元101中的控制器1la請(qǐng)求標(biāo)簽RAM103a使數(shù)據(jù)存儲(chǔ)在其中的塊無效。此處,當(dāng)數(shù)據(jù)是臟的并且控制器1la向作為主的集群20中的控制器201a通知回寫請(qǐng)求時(shí),控制器1la從數(shù)據(jù)RAM103b讀取與塊對(duì)應(yīng)的數(shù)據(jù)。并且控制器1la向控制器201a通知回沖請(qǐng)求。或者,控制器1la向控制器201a通知回寫請(qǐng)求并且向控制器201a發(fā)送數(shù)據(jù)。當(dāng)作為主的集群20中的控制器201a接收到請(qǐng)求時(shí),控制器201a使目錄RAM204中的指示“數(shù)據(jù)被請(qǐng)求數(shù)據(jù)的集群10保存”的信息無效。另外,當(dāng)控制器201a接收回到寫請(qǐng)求時(shí),控制器201a將數(shù)據(jù)回寫到存儲(chǔ)器202。
[0063]接下來,圖9示出了當(dāng)本地的集群10專有地獲取存儲(chǔ)在作為主的集群20中的存儲(chǔ)器202中的數(shù)據(jù)時(shí)進(jìn)行的處理。例如,當(dāng)數(shù)據(jù)被處理器核心更新時(shí),使用專有數(shù)據(jù)獲取請(qǐng)求。專有數(shù)據(jù)獲取請(qǐng)求是用于確保在某一時(shí)刻一個(gè)集群(集群中的高速緩存)保存所請(qǐng)求的數(shù)據(jù)并且其他集群不保存數(shù)據(jù)的請(qǐng)求。當(dāng)其他集群中的一個(gè)集群中的L2高速緩存在數(shù)據(jù)被更新時(shí)保存數(shù)據(jù)時(shí),數(shù)據(jù)不能在信息處理設(shè)備I中被同步。因此,專有數(shù)據(jù)獲取請(qǐng)求是用于防止這種情況的請(qǐng)求。
[0064]首先,本地的集群10中的處理器核心組100中的處理器核心向L2高速緩存控制單元101請(qǐng)求獲取數(shù)據(jù)。當(dāng)L2高速緩存控制單元101接收到數(shù)據(jù)獲取請(qǐng)求時(shí),L2高速緩存控制單元101檢查數(shù)據(jù)是否存儲(chǔ)在L2高速緩存103中。當(dāng)數(shù)據(jù)未存儲(chǔ)在L2高速緩存103中(命中失誤)時(shí),L2高速緩存控制單元101向作為主的集群20中的L2高速緩存控制單元201發(fā)送針對(duì)數(shù)據(jù)的專有數(shù)據(jù)獲取請(qǐng)求。當(dāng)L2高速緩存控制單元201接收到專有數(shù)據(jù)獲取請(qǐng)求時(shí),L2高速緩存控制單元參考存儲(chǔ)在L2高速緩存控制單元201中的目錄信息。目錄信息指示包括主集群的哪個(gè)集群保存數(shù)據(jù)。然后L2高速緩存控制單元201向保存由目錄信息指示的數(shù)據(jù)的集群發(fā)送數(shù)據(jù)的丟棄請(qǐng)求。
[0065]在如圖9所示的示例中,數(shù)據(jù)被存儲(chǔ)在L2高速緩存203中。因此,L2高速緩存控制單元201將數(shù)據(jù)從L2高速緩存203丟棄。L2高速緩存控制單元201將所丟棄的數(shù)據(jù)發(fā)送給L2高速緩存控制單元101。另外,L2高速緩存控制單元201將指示請(qǐng)求數(shù)據(jù)的集群10是保存數(shù)據(jù)的唯一集群的信息存儲(chǔ)在目錄信息中。然后請(qǐng)求數(shù)據(jù)的集群10將數(shù)據(jù)存儲(chǔ)在L2高速緩存103中。
[0066]圖10是示出在如圖9所示的示例中由L2高速緩存控制單元101和高速緩存控制單元201進(jìn)行的處理的圖。本地的集群10中的L2高速緩存控制單元101中的控制器1la接受來自處理器核心組100中的處理器核心的專有數(shù)據(jù)獲取請(qǐng)求。數(shù)據(jù)獲取請(qǐng)求包括指示由處理器核心生成了請(qǐng)求的信息、指示請(qǐng)求是專有數(shù)據(jù)獲取請(qǐng)求的信息以及存儲(chǔ)器中存儲(chǔ)數(shù)據(jù)的地址。控制器1la根據(jù)請(qǐng)求的內(nèi)容啟動(dòng)適當(dāng)?shù)奶幚怼?br>
[0067]控制器1la檢查標(biāo)簽RAM103a以確定在數(shù)據(jù)RAM103b中是否找到了存儲(chǔ)作為數(shù)據(jù)獲取請(qǐng)求的目標(biāo)的數(shù)據(jù)的存儲(chǔ)器中的塊的副本。當(dāng)控制器1la接收指示未從標(biāo)簽RAM103a找到副本的結(jié)果(命中失誤)時(shí),控制器1la向?qū)儆谧鳛橹鞯募?0的L2高速緩存控制單元201的控制器201a發(fā)送數(shù)據(jù)的數(shù)據(jù)獲取請(qǐng)求。
[0068]當(dāng)控制器201a接收到數(shù)據(jù)獲取請(qǐng)求時(shí),控制器201a檢查目錄RAM204以確定所請(qǐng)求的數(shù)據(jù)是否被存儲(chǔ)在任何集群中的L2高速緩存中。當(dāng)控制器201a接收到指示數(shù)據(jù)被作為主的集群20保存的結(jié)果(命中)時(shí),控制器201a向標(biāo)簽RAM203a發(fā)送數(shù)據(jù)的無效請(qǐng)求。另外,控制器201a從數(shù)據(jù)RAM203b讀取數(shù)據(jù)。然后控制器201a使目錄RAM204中的指示數(shù)據(jù)被主集群保存的信息無效。此外,控制器201a將指示請(qǐng)求數(shù)據(jù)的集群10保存數(shù)據(jù)的信息添加到目錄RAM204。而且,控制器201a將數(shù)據(jù)發(fā)送給請(qǐng)求數(shù)據(jù)的集群10中的控制器1la0當(dāng)集群10中的控制器1la接收到數(shù)據(jù)時(shí),控制器1la將數(shù)據(jù)的使用狀態(tài)登記在標(biāo)簽RAM103a中。此外,控制器1la將數(shù)據(jù)存儲(chǔ)在數(shù)據(jù)RAM103b中。然后控制器1la將數(shù)據(jù)發(fā)送給處理器核心組中的請(qǐng)求數(shù)據(jù)的處理器核心。
[0069]接下來,圖11示出了當(dāng)本地的集群10將作為主的集群20中的存儲(chǔ)器202中所存儲(chǔ)的數(shù)據(jù)從L2高速緩存103逐出時(shí)進(jìn)行的處理。如圖11所示,當(dāng)集群10將存儲(chǔ)在集群20中的存儲(chǔ)器202中的數(shù)據(jù)從L2高速緩存103逐出時(shí),集群10將所逐出的數(shù)據(jù)發(fā)送給L2高速緩存控制單元201。L2高速緩存控制單元201將所接收的數(shù)據(jù)存儲(chǔ)在L2高速緩存103中。因此,在比較例中,與數(shù)據(jù)的使用狀態(tài)無關(guān)地,從本地集群逐出的數(shù)據(jù)被保存在主集群中的L2高速緩存中。
[0070]然而,在上述比較例中,作為主的集群20中的處理器核心組200在信息處理設(shè)備I中工作。因此,集群10中的處理器核心組100與集群20中的處理器核心組200共享集群20中的L2高速緩存203。因此,實(shí)質(zhì)上減少了對(duì)于處理器核心組200可用的L2高速緩存203的容量。另外,L2高速緩存203中涉及復(fù)雜的控制以確定例如優(yōu)先將從哪個(gè)處理器核心組請(qǐng)求的哪個(gè)數(shù)據(jù)存儲(chǔ)在L2高速緩存203中。
[0071]此外,與數(shù)據(jù)的使用狀態(tài)無關(guān)地將從本地的集群逐出的數(shù)據(jù)發(fā)送給作為主的集群20。也就是說,在與其中數(shù)據(jù)被更新并且在本地的集群10中變成臟的的情況不同的情況下,將從集群10逐出的數(shù)據(jù)發(fā)送給集群20。因此,即使在被逐出的數(shù)據(jù)在信息處理設(shè)備I中被同步,即意味著數(shù)據(jù)是干凈的的情況下,仍將數(shù)據(jù)發(fā)送給集群20。因此,這可以導(dǎo)致各集群之間的事務(wù)增加。
[0072]考慮到上述比較例,下面參考附圖對(duì)根據(jù)一個(gè)實(shí)施方式的信息處理設(shè)備的示例進(jìn)行描述。在下面的描述中,對(duì)每個(gè)集群中的運(yùn)算核心組的工作狀態(tài)和非工作狀態(tài)進(jìn)行控制。因此,如下文中所描述的,可以在不增加通信量的情況下提高L2高速緩存中的數(shù)據(jù)的高速緩存命中的可能性。另外,在本實(shí)施方式中,針對(duì)L2高速緩存中所存儲(chǔ)的每個(gè)數(shù)據(jù)不涉及復(fù)雜的管理和控制。
[0073](實(shí)施方式)
[0074]圖12是示意性地示出本實(shí)施方式中的信息處理設(shè)備2中的集群配置的一部分。如圖12所示,與比較例類似,信息處理設(shè)備2包括集群50、集群60和集群70。集群50、集群60和集群70對(duì)應(yīng)于運(yùn)算處理設(shè)備的示例。另外,因?yàn)楸镜亍⒅骱瓦h(yuǎn)程之間的差異與如上所述的比較例類似,所以此處省略了對(duì)本地、主和遠(yuǎn)程的描述。集群50包括處理器核心組500、L2高速緩存控制單元501以及存儲(chǔ)器502。L2高速緩存控制單元501包括L2高速緩存503。集群60也包括處理器核心組600、L2高速緩存控制單元601、存儲(chǔ)器602以及L2高速緩存603,集群70也包括處理器核心組700、L2高速緩存控制單元701、存儲(chǔ)器702以及L2高速緩存703。處理器核心組500、600和700對(duì)應(yīng)于運(yùn)算處理單元的示例。另外,L2高速緩存503、603和703對(duì)應(yīng)于高速緩沖存儲(chǔ)器的示例。此外,L2高速緩存控制單元501、601和701對(duì)應(yīng)于控制單元的示例。而且,集群50、60和70形成一個(gè)組。該組表示承擔(dān)一個(gè)應(yīng)用程序中所進(jìn)行的處理的集群的組合。然而,形成組的準(zhǔn)則不限于此表示,并且集群可以被任意地劃分成組。
[0075]如圖12所示,每個(gè)集群中的L2高速緩存控制器經(jīng)由總線或互連件相互連接。在信息處理設(shè)備2中,存儲(chǔ)器空間是所謂平坦的,使得根據(jù)物理地址唯一地確定存儲(chǔ)了哪個(gè)數(shù)據(jù)以及數(shù)據(jù)存儲(chǔ)在主存儲(chǔ)器中的哪個(gè)集群中。
[0076]圖13是示出集群50中的L2高速緩存控制單元501的圖。L2高速緩存控制單元501包括控制器501a、寄存器501b、L2高速緩存503以及目錄RAM504。另外,L2高速緩存503包括標(biāo)簽RAM503a和數(shù)據(jù)RAM503b。此外,寄存器501b對(duì)應(yīng)于設(shè)置單元的示例。因?yàn)闃?biāo)簽RAM503a、數(shù)據(jù)RAM503b以及目錄RAM504的功能與比較例類似,所以此處省略詳細(xì)的描述。
[0077]寄存器501b控制根據(jù)本實(shí)施方式的信息處理設(shè)備2中的集群50的工作模式。在本實(shí)施方式中,工作模式包括“關(guān)閉模式”、“開啟并且處理器核心工作模式”以及“開啟并且處理器核心不工作模式”三種模式。工作模式“關(guān)閉模式”是其中集群如以上比較例中所描述地工作的工作模式。工作模式“開啟并且處理器核心工作模式”是其中集群將處理器核心組設(shè)置成工作狀態(tài)并且進(jìn)行本實(shí)施方式中的處理的工作模式(開啟模式)。工作模式“開啟并且處理器核心不工作模式”是其中集群將處理器核心組設(shè)置成非工作狀態(tài)并且進(jìn)行本實(shí)施方式中的處理的工作模式。稍后對(duì)這些工作模式中的處理的詳情進(jìn)行描述。
[0078]控制器501a讀取針對(duì)寄存器501b的設(shè)置值,并且根據(jù)設(shè)置值切換工作模式。另夕卜,在本實(shí)施方式中的信息處理設(shè)備中,在應(yīng)用程序執(zhí)行之前切換工作模式。另外,信息處理設(shè)備2的OS (操作系統(tǒng))控制每個(gè)集群中的寄存器的工作模式的切換。應(yīng)該注意的是,可以根據(jù)信息例如應(yīng)用程序的存儲(chǔ)器使用,由信息處理設(shè)備2的用戶顯式地指示OS或者由OS自主地指示,來進(jìn)行工作模式的切換。
[0079]圖14是示出當(dāng)信息處理設(shè)備2中的工作模式是“開啟模式”時(shí)集群50、集群60和集群70中的處理器核心組的工作狀態(tài)的圖。作為示例,對(duì)組中的集群50、集群60和集群70進(jìn)行控制以使得集群50、集群60和集群70之一中的處理器核心組工作。在圖14中,集群50的工作模式是“開啟并且處理器核心工作模式”而集群60和集群70的工作模式是“開啟并且處理器核心不工作模式”。因此,集群50中的處理器核心組500處于工作狀態(tài)而處理器核心組600和處理器核心組700處于非工作狀態(tài)。作為示例,在信息處理設(shè)備2中形成了例如集群50、集群60和集群70的集群組。并且每個(gè)組對(duì)應(yīng)于信息處理設(shè)備2中所進(jìn)行的一系列處理。
[0080]圖15是示出當(dāng)本地的集群50獲取存儲(chǔ)在作為主的集群60中的存儲(chǔ)器602中的數(shù)據(jù)時(shí)進(jìn)行的處理的圖。與比較例類似,當(dāng)L2高速緩存503中未找到從處理器核心組500請(qǐng)求的數(shù)據(jù)(高速緩存命中失誤)時(shí),L2高速緩存控制單元501從集群60中的L2高速緩存控制單元601請(qǐng)求數(shù)據(jù)。在本實(shí)施方式中,描述了其中數(shù)據(jù)未存儲(chǔ)在L2高速緩存603中的情況。L2高速緩存控制單元601從存儲(chǔ)器602獲取數(shù)據(jù)并且將所獲取的數(shù)據(jù)存儲(chǔ)在L2高速緩存控制單元603中。另外,L2高速緩存控制單元601將所獲取的數(shù)據(jù)發(fā)送給L2高速緩存控制單元501。并且L2高速緩存控制單元501將從L2高速緩存控制單元601接收的數(shù)據(jù)發(fā)送給處理器核心組500。
[0081]圖16是示出在如圖15所示的示例中的L2高速緩存控制單元501和L2高速緩存控制單元601中進(jìn)行的處理的圖。如上所述,L2高速緩存控制單元501包括控制器501a、寄存器501b、L2高速緩存503以及目錄RAM504,L2高速緩存控制單元601包括控制器601a、寄存器601b、L2高速緩存603以及目錄RAM604。另外,L2高速緩存503包括標(biāo)簽RAM503a以及數(shù)據(jù)RAM503b,L2高速緩存603包括標(biāo)簽RAM603a以及數(shù)據(jù)RAM603b。
[0082]另外,圖17示出了控制器601a中的電路的一部分。如圖17所示的控制器601a中的電路是在集群60的工作模式是“開啟并且處理器核心不工作模式”時(shí)所使用的控制電路。當(dāng)如圖17所示的控制器601a從存儲(chǔ)器602獲取從控制器501a請(qǐng)求的數(shù)據(jù)時(shí),控制器601a將數(shù)據(jù)存儲(chǔ)在數(shù)據(jù)RAM603b中。另外,將與數(shù)據(jù)的使用狀態(tài)有關(guān)的信息分別存儲(chǔ)在標(biāo)簽RAM603a和目錄RAM604中。應(yīng)該注意的是,在圖17中,表示將數(shù)據(jù)存儲(chǔ)在標(biāo)簽RAM中的TAGSave (標(biāo)簽保存)、表示將數(shù)據(jù)存儲(chǔ)在數(shù)據(jù)RAM中的DataSave (數(shù)據(jù)保存)以及表示更新目錄RAM中的目錄信息的DirectoryUpdate (SaveLocal)(目錄更新(本地保存))是用于指示操作的信號(hào),并且其他信號(hào)是標(biāo)志信號(hào)。
[0083]如圖17所示,當(dāng)集群60的工作模式是“開啟并且處理器核心不工作模式”時(shí),與門601d輸出“I”。在其他情況下,與門601d輸出“O”。另外,當(dāng)與門601d輸出“I”并且從存儲(chǔ)器602獲取了數(shù)據(jù)時(shí),與門60Ie輸出“I”。在其他情況下,與門60Ie輸出“O”。
[0084]當(dāng)與門601e輸出“I”或者根據(jù)比較例中的處理將數(shù)據(jù)的使用狀態(tài)的信息存儲(chǔ)在標(biāo)簽RAM603a中時(shí),或門601f輸出用于將數(shù)據(jù)的信息存儲(chǔ)在標(biāo)簽RAM603a中的指令信號(hào)TagSave2 (標(biāo)簽保存2)。當(dāng)與門601e輸出“I”或者根據(jù)比較例中的處理將數(shù)據(jù)存儲(chǔ)在數(shù)據(jù)RAM603b中時(shí),或門601 g輸出用于將數(shù)據(jù)存儲(chǔ)在數(shù)據(jù)RAM603b中的指令信號(hào)DataSave2(數(shù)據(jù)保存2)。當(dāng)與門601e輸出“I”或者根據(jù)比較例中的處理更新了目錄RAM604中的目錄信息時(shí),或門60 Ih輸出用于更新目錄RAM604中的目錄信息的指令信號(hào)DirectoryUpdate(SaveLocal) 2 (目錄更新(本地保存)2)。因?yàn)榛蜷T601f至或門601h之后的電路是常規(guī)電路,所以此處省略了對(duì)后續(xù)電路的詳細(xì)描述和附圖。
[0085]當(dāng)控制器601a從存儲(chǔ)器602獲取到所請(qǐng)求的數(shù)據(jù)時(shí),控制器601a使用如圖17所示的控制電路來將所獲取的數(shù)據(jù)存儲(chǔ)在數(shù)據(jù)RAM603b中。另外,控制器601a將所獲取的數(shù)據(jù)發(fā)送到控制器501a。
[0086]圖18是如圖15至圖17所示的示例中的L2高速緩存控制單元501和L2高速緩存控制單元601的時(shí)序圖。首先,在SlOl中,L2高速緩存控制單元501中的控制器501a接收來自處理器核心組500中的處理器核心的數(shù)據(jù)獲取請(qǐng)求。數(shù)據(jù)獲取請(qǐng)求包括地址的信息,該地址指示數(shù)據(jù)存儲(chǔ)在主存儲(chǔ)器中哪個(gè)集群中。在S102中,控制器501a檢查標(biāo)簽RAM503a以確定與地址相關(guān)聯(lián)的數(shù)據(jù)是否存儲(chǔ)在數(shù)據(jù)RAM503b中。在本實(shí)施方式中,在S103中,標(biāo)簽RAM503a將指示在數(shù)據(jù)RAM503b中未找到數(shù)據(jù)的信息(高速緩存命中失誤)返回給控制器501ao
[0087]在S104中,控制器501a使用包括在來自處理器核心組500的數(shù)據(jù)獲取請(qǐng)求中的數(shù)據(jù)的地址來確定數(shù)據(jù)是存儲(chǔ)在存儲(chǔ)器602中的數(shù)據(jù)。因此,控制器501a將數(shù)據(jù)的數(shù)據(jù)獲取請(qǐng)求發(fā)送給控制器601a。
[0088]在S105中,控制器601a檢查目錄RAM604中的目錄信息以確定集群所屬的組中的數(shù)據(jù)的使用狀態(tài)。數(shù)據(jù)的使用狀態(tài)包括指示例如數(shù)據(jù)是否被其他集群獲取的信息。在本實(shí)施方式中,在S106中,目錄RAM604確定出目錄信息指示數(shù)據(jù)未存儲(chǔ)在集群中的數(shù)據(jù)RAM中以及數(shù)據(jù)RAM603b中(高速緩存命中失誤)。然后目錄RAM604將指示高速緩存命中失誤的信息發(fā)送給控制器601a。
[0089]在S107中,控制器601a請(qǐng)求存儲(chǔ)器602讀取從控制器501a請(qǐng)求的數(shù)據(jù)。在S108中,存儲(chǔ)器602將所請(qǐng)求的數(shù)據(jù)發(fā)送給控制器601a。當(dāng)控制器601a從存儲(chǔ)器602獲取到數(shù)據(jù)時(shí),如圖17所示的控制電路輸出用于將所獲取的數(shù)據(jù)存儲(chǔ)在數(shù)據(jù)RAM603b中的指令。另夕卜,如圖17所示的控制電路還輸出用于將指示所獲取的數(shù)據(jù)的使用狀態(tài)是“共享”的信息存儲(chǔ)在標(biāo)簽RAM603a中的指令信號(hào)。此外,如圖17所示的控制電路還輸出用于將指示所獲取的數(shù)據(jù)被作為主的集群20以及本地的集群10保存的信息存儲(chǔ)在目錄RAM604中的指令信號(hào)。
[0090]因此,在S109中,控制器601a請(qǐng)求標(biāo)簽RAM603a更新標(biāo)簽RAM603a中的信息,以指示所獲取的數(shù)據(jù)以“共享”狀態(tài)存儲(chǔ)在數(shù)據(jù)RAM603b中。在SllO中,標(biāo)簽RAM603a存儲(chǔ)指示數(shù)據(jù)以“共享”狀態(tài)存儲(chǔ)在數(shù)據(jù)RAM603b中的信息。并且標(biāo)簽RAM603a通知控制器601a完成了存儲(chǔ)處理。在Slll中,控制器601a請(qǐng)求數(shù)據(jù)RAM603b存儲(chǔ)數(shù)據(jù)。在S112中,當(dāng)數(shù)據(jù)RAM603b存儲(chǔ)了數(shù)據(jù)時(shí),數(shù)據(jù)RAM603b通知控制器601a完成了存儲(chǔ)處理。
[0091 ] 在SI 12中,控制器601a請(qǐng)求目錄RAM604更新目錄信息以指示數(shù)據(jù)被也是遠(yuǎn)程的集群50以及作為主的集群60保存。在SI 14中,目錄RAM604根據(jù)請(qǐng)求更新目錄信息并且通知控制器601a完成了更新處理。在S115中,控制器601a將數(shù)據(jù)發(fā)送給控制器501a。
[0092]在SI 16中,控制器501a請(qǐng)求標(biāo)簽RAM503a更新標(biāo)簽RAM503a中的信息以指示從控制器601a獲取的數(shù)據(jù)被存儲(chǔ)在數(shù)據(jù)RAM503b中。此外,控制器501a也請(qǐng)求標(biāo)簽RAM503a將數(shù)據(jù)的使用狀態(tài)存儲(chǔ)為“共享”。在S117中,當(dāng)標(biāo)簽RAM503a進(jìn)行所請(qǐng)求的處理時(shí),標(biāo)簽RAM503a通知控制器501a完成了處理。在S118中,控制器501a請(qǐng)求數(shù)據(jù)RAM503b存儲(chǔ)數(shù)據(jù)。在S119中,當(dāng)數(shù)據(jù)RAM503b存儲(chǔ)了數(shù)據(jù)時(shí),數(shù)據(jù)RAM503b通知控制器501a完成了存儲(chǔ)處理。在S120中,控制器501a將數(shù)據(jù)發(fā)送給處理器核心組500中請(qǐng)求數(shù)據(jù)的處理器核心。
[0093]在本實(shí)施方式中,將從存儲(chǔ)器602獲取的數(shù)據(jù)存儲(chǔ)在作為主的集群60中的L2高速緩存603中。另外,作為主的集群60中的處理器核心組600被寄存器601b設(shè)置成非工作狀態(tài)。因此,對(duì)L2高速緩存603的數(shù)據(jù)存儲(chǔ)不是由處理器核心組600進(jìn)行的。因此,與比較例相反,處理器核心組500沒有遭遇存儲(chǔ)器容量的所謂解體拆用(cannibalizat1n),即L2高速緩存603的存儲(chǔ)器空間與另一集群中的處理器核心組共享的情況。
[0094]接下來,圖19是示出根據(jù)本實(shí)施方式當(dāng)存儲(chǔ)在集群60中的存儲(chǔ)器602中的數(shù)據(jù)從屬于集群50的L2高速緩存503中逐出時(shí)進(jìn)行的處理的圖。與比較例類似,當(dāng)L2高速緩存控制單元501將新的數(shù)據(jù)存儲(chǔ)在L2高速緩存503中并且L2高速緩存503不具有用于數(shù)據(jù)的容量時(shí),L2高速緩存控制單元501根據(jù)預(yù)定算法將數(shù)據(jù)從L2高速緩存503逐出。L2高速緩存控制單元501參考標(biāo)簽RAM503以確定要被逐出的數(shù)據(jù)是干凈的還是臟的。當(dāng)確定要被逐出的數(shù)據(jù)是臟的時(shí),L2高速緩存控制單元501向L2高速緩存控制單元601通知回寫請(qǐng)求并且將數(shù)據(jù)發(fā)送給L2高速緩存控制單元601。另一方面,當(dāng)確定要被逐出的數(shù)據(jù)是干凈的時(shí),L2高速緩存控制單元501向L2高速緩存控制單元601通知回沖請(qǐng)求并且將數(shù)據(jù)發(fā)送給L2高速緩存控制單元601。
[0095]圖20是示出在如圖19所述的示例中在L2高速緩存控制單元501和L2高速緩存控制單元601中進(jìn)行的處理的圖。如上所述,L2高速緩存控制單元501包括控制器501a、寄存器501b、L2高速緩存503以及目錄RAM504,L2高速緩存控制單元601包括控制器601a、寄存器601b、L2高速緩存603以及目錄RAM604。另外,L2高速緩存503包括標(biāo)簽RAM503a以及數(shù)據(jù)RAM503b,L2高速緩存603包括標(biāo)簽RAM603a以及數(shù)據(jù)RAM603b。
[0096]另外,圖21示出了如圖19所示的示例中的控制器601a中的電路的一部分。如圖21所示的控制器601a中的電路是當(dāng)集群60是主并且工作模式是“開啟并且處理器核心不工作模式”時(shí)所使用的控制電路。當(dāng)作為主的集群60從本地的集群50接收回寫和數(shù)據(jù)時(shí),根據(jù)如圖21所示的控制器601a中的電路的控制,將數(shù)據(jù)存儲(chǔ)在L2高速緩存603中。另外,根據(jù)如圖21所示的控制器601a中的電路的控制,不將數(shù)據(jù)存儲(chǔ)在存儲(chǔ)器602中。應(yīng)該注意的是,在圖21中,表示將數(shù)據(jù)存儲(chǔ)在標(biāo)簽RAM中的標(biāo)簽保存(TAGSave)以及表示將數(shù)據(jù)存儲(chǔ)在數(shù)據(jù)RAM的數(shù)據(jù)保存(DataSave )、表示更新目錄RAM中的目錄信息的目錄更新(本地保存)(DirectoryUpdate (SaveLocal))以及表示將數(shù)據(jù)存儲(chǔ)在主存儲(chǔ)器中的存儲(chǔ)器保存(MemorySave)是用于指示操作的信號(hào)并且其他信號(hào)是標(biāo)志信號(hào)。
[0097]當(dāng)集群60的工作模式是“開啟并且處理器核心不工作模式”時(shí),與門601i輸出“I”。在其他情況下,與門601i輸出“O”。另外,當(dāng)與門601 i輸出“I”并且從例如本地的集群50接收到回寫請(qǐng)求時(shí),與門601 j輸出“I”。
[0098]當(dāng)與門601j輸出“I”或者根據(jù)比較例中的處理將與數(shù)據(jù)的使用狀態(tài)有關(guān)的數(shù)據(jù)存儲(chǔ)在標(biāo)簽RAM603a時(shí),或門601k輸出用于將數(shù)據(jù)存儲(chǔ)在標(biāo)簽RAM603a中的指令信號(hào)標(biāo)簽保存2 (TagSave2)0當(dāng)與門601 j輸出“I”或者根據(jù)比較例中的處理將數(shù)據(jù)存儲(chǔ)在數(shù)據(jù)RAM603b中時(shí),或門6011輸出用于將數(shù)據(jù)存儲(chǔ)在數(shù)據(jù)RAM603b中的指令信號(hào)數(shù)據(jù)保存2(DataSave2)。當(dāng)與門601 j輸出“I”或者根據(jù)比較例中的處理將目錄RAM604中的目錄信息更新時(shí),或門60Im輸出用于更新目錄RAM604中的目錄信息的指令信號(hào)目錄更新(本地保存 2) (DirectoryUpdate (SaveLocal2))。
[0099]當(dāng)集群60的工作模式是“開啟并且處理器核心不工作模式”并且設(shè)置了例如來自集群50的回寫請(qǐng)求的信號(hào)時(shí),反相器601η禁止將數(shù)據(jù)存儲(chǔ)在存儲(chǔ)器602中。另一方面,當(dāng)集群60的工作模式是“關(guān)閉模式”或者“處理器核心工作”并且根據(jù)比較例中的處理將數(shù)據(jù)存儲(chǔ)在存儲(chǔ)器602中時(shí),與門601ο輸出用于將數(shù)據(jù)存儲(chǔ)在存儲(chǔ)器602中的指令信號(hào)存儲(chǔ)器保存2 (MemorySavd)。或者,當(dāng)沒有通知來自例如集群50的回寫請(qǐng)求并且根據(jù)比較例中的處理將數(shù)據(jù)存儲(chǔ)在存儲(chǔ)器602中時(shí),與門601輸出指令信號(hào)存儲(chǔ)器保存(MemorySave2)。因?yàn)榛蜷T60Ik至或門60Im以及與門601之后的電路是常規(guī)電路,所以此處省略了對(duì)后續(xù)電路的詳細(xì)描述和附圖。
[0100]因此,當(dāng)集群60中的處理器核心組600處于工作狀態(tài)時(shí),與門601 j輸出“O”。因此,當(dāng)從本地的集群50接收回到寫請(qǐng)求(請(qǐng)求是回寫(RequestIsWriteBack))時(shí),不發(fā)出標(biāo)簽保存2、數(shù)據(jù)保存2、目錄更新(本地保存)2以及存儲(chǔ)器保存2?;蛘撸跇?biāo)簽保存、數(shù)據(jù)保存、目錄更新(本地保存)以及存儲(chǔ)器保存進(jìn)行根據(jù)比較例中的處理的處理。
[0101]相反,當(dāng)集群60的工作模式是“開啟并且處理器核心不工作模式”并且控制器601a接收回寫請(qǐng)求時(shí),與門601j輸出“I”。在這種情況下,或門6011輸出“I”并且將逐出的數(shù)據(jù)存儲(chǔ)在L2高速緩存603中的數(shù)據(jù)RAM603b中。另外,因?yàn)榉聪嗥?01η輸出“0”,所以與門601ο輸出“O”并且不將數(shù)據(jù)存儲(chǔ)在存儲(chǔ)器602中。應(yīng)該注意的是,反相器601η和與門601ο的集合是阻斷單元的示例。
[0102]此處,如圖20所示,控制器501a請(qǐng)求標(biāo)簽RAM503a登記將數(shù)據(jù)從數(shù)據(jù)RAM503b逐出(無效)。接下來,控制器501a從數(shù)據(jù)RAM503b檢索要逐出的數(shù)據(jù)。當(dāng)所檢索的數(shù)據(jù)不在信息處理設(shè)備2中被同步,即所檢索的數(shù)據(jù)是臟的時(shí),控制器501a向作為主的集群60中的控制器601a通知回寫請(qǐng)求,并且將逐出的數(shù)據(jù)發(fā)送給控制器601a。
[0103]作為主的集群60中的控制器601a接收來自本地的集群50中的控制器501a的上述回寫請(qǐng)求。并且,控制器601a存儲(chǔ)伴隨回寫請(qǐng)求接收的數(shù)據(jù),即從數(shù)據(jù)RAM503b逐出的數(shù)據(jù)。因此,控制器601a對(duì)存儲(chǔ)在標(biāo)簽RAM603a中的信息進(jìn)行更新以指示數(shù)據(jù)被存儲(chǔ)在數(shù)據(jù)RAM603b中。然后控制器601a請(qǐng)求目錄RAM604更新目錄信息以指示數(shù)據(jù)被添加到作為主的集群60中。此外,控制器601a請(qǐng)求目錄RAM604指示數(shù)據(jù)被從本地的集群50丟棄。
[0104]圖22是如圖19至圖21所示的示例中L2高速緩存控制單元501和L2高速緩存控制單元601的時(shí)序圖。在以下描述中,將時(shí)序圖中的步驟縮寫為S。圖22示出了從數(shù)據(jù)RAM503b逐出的數(shù)據(jù)是臟的并且控制器501a向控制器601a發(fā)送回寫請(qǐng)求的情況。在S201中,控制器501a請(qǐng)求標(biāo)簽RAM503a登記指示數(shù)據(jù)被從數(shù)據(jù)RAM503b逐出(無效的)的信息。應(yīng)該注意的是,使用算法以預(yù)先確定逐出哪個(gè)數(shù)據(jù)。在S202中,標(biāo)簽RAM503a將指示登記數(shù)據(jù)的使用狀態(tài)是“無效”的信息。此外,標(biāo)簽RAM503a響應(yīng)于請(qǐng)求向控制器501a發(fā)送指示數(shù)據(jù)的使用狀態(tài)的信息(修改;值=M)。在S203中,控制器501a使用從標(biāo)簽RAM503a獲取的地址來從數(shù)據(jù)RAM503b讀取數(shù)據(jù)。在S204中,數(shù)據(jù)RAM503b讀取與包括在來自控制器501a的請(qǐng)求中的地址相匹配的地址的數(shù)據(jù),并且將數(shù)據(jù)發(fā)送給控制器501a。
[0105]當(dāng)控制器501a接收到從RAM503b逐出的數(shù)據(jù)時(shí),控制器501a在S205中向控制器601a發(fā)送數(shù)據(jù)的回寫請(qǐng)求。因?yàn)樵赟202中從標(biāo)簽RAM503a檢索的數(shù)據(jù)的使用狀態(tài)是臟的,所以控制器501a向控制器601a發(fā)送回寫請(qǐng)求。另外,控制器501a向控制器601a發(fā)送地址,該地址指示數(shù)據(jù)被存儲(chǔ)在主存儲(chǔ)器中的哪個(gè)集群中。
[0106]在S206中,控制器601a請(qǐng)求標(biāo)簽RAM603a登記指示從控制器501a發(fā)送的數(shù)據(jù)被存儲(chǔ)在數(shù)據(jù)RAM603b中的信息。另外,控制器601a請(qǐng)求標(biāo)簽RAM603a登記指示數(shù)據(jù)被存儲(chǔ)在主存儲(chǔ)器中的哪個(gè)集群中的地址。在S207中,標(biāo)簽RAM603a根據(jù)來自控制器601a的請(qǐng)求進(jìn)行登記處理,并且通知控制器601a完成了處理。在S208中,控制器601a將數(shù)據(jù)存儲(chǔ)在數(shù)據(jù)RAM603b中。在S209中,數(shù)據(jù)RAM603b存儲(chǔ)數(shù)據(jù),并且通知控制器601a完成了存儲(chǔ)處理。
[0107]在S210中,控制器601a請(qǐng)求目錄RAM604更新目錄信息以指示數(shù)據(jù)被作為主的集群60保存。此外,控制器601a請(qǐng)求目錄RAM604更新目錄信息以指示將數(shù)據(jù)從本地的以及遠(yuǎn)程的集群50丟棄。在S211中,目錄RAM604更新目錄信息,并且通知控制器601a完成了更新處理。在S212中,控制器601a通知控制器501a完成了上述處理。
[0108]應(yīng)該注意的是,在集群中目錄RAM通過使用與每個(gè)集群對(duì)應(yīng)的位來使用目錄信息以管理哪個(gè)集群檢索存儲(chǔ)在數(shù)據(jù)RAM中的每個(gè)數(shù)據(jù)。例如,針對(duì)每個(gè)數(shù)據(jù),位“I”用于保存數(shù)據(jù)的集群而位“O”用于不保存數(shù)據(jù)的集群。因此,例如,在上述S210中,目錄RAM604將針對(duì)集群60的位設(shè)置成“I”并且將針對(duì)集群50的位設(shè)置成“O”。在以下描述中,目錄RAM改變目錄信息中的位以登記每個(gè)數(shù)據(jù)的使用狀態(tài)。然而,用于管理目錄RAM中的集群所檢索的數(shù)據(jù)的狀態(tài)的配置不限于上述實(shí)施方式。因?yàn)楫?dāng)控制器501a向控制器601a發(fā)送回沖請(qǐng)求時(shí)由控制器601a進(jìn)行的處理與上述相同,所以此處省略了對(duì)處理的詳細(xì)描述。
[0109]參考圖23描述當(dāng)根據(jù)本實(shí)施方式對(duì)每個(gè)集群的工作模式進(jìn)行控制時(shí)所獲得的優(yōu)點(diǎn)的示例。圖23示出了在信息處理設(shè)備3中配置了集群的多個(gè)組的示例。應(yīng)該注意的是,根據(jù)每個(gè)集群中的L2高速緩存控制單元中的寄存器的設(shè)置值來設(shè)置每個(gè)集群的工作模式。具體地,當(dāng)設(shè)置值是O時(shí)工作模式被設(shè)置成“關(guān)閉模式”,當(dāng)設(shè)置值是I時(shí)工作模式被設(shè)置成“開啟并且處理器核心工作模式”,當(dāng)設(shè)置值是2時(shí)工作模式被設(shè)置成“開啟并且處理器核心不工作模式”。在圖23中,集群800a至集群800d形成組800。另外,集群900a形成組900。組900被用于執(zhí)行應(yīng)用程序,對(duì)于該應(yīng)用程序,所需要的存儲(chǔ)器空間等于或小于組900中的主存儲(chǔ)器的容量。因?yàn)榧?00a至集群SOOd以及集群900a的配置與如上所述的集群50和集群60的配置類似,所以此處省略了對(duì)集群的組成部分的詳細(xì)描述和附圖。
[0110]例如,假設(shè)允許組800外的集群900a訪問組800內(nèi)的集群800c。另外,假設(shè)集群900a向集群800c發(fā)送專有數(shù)據(jù)獲取請(qǐng)求以獲取存儲(chǔ)在集群800c中的L2高速緩存中的數(shù)據(jù)。在這種情況下,將數(shù)據(jù)移動(dòng)到集群900a并且將數(shù)據(jù)從集群800c中的L2高速緩存丟棄。此外,集群800c管理目錄信息以指示數(shù)據(jù)被組800外的集群900a保存。在如圖23所示的示例中,允許組外的集群訪問工作模式是“開啟并且處理器核心工作模式”的組內(nèi)的集群。因此,存儲(chǔ)在工作模式是“開啟并且處理器核心不工作模式”的組內(nèi)的集群中的L2高速緩存中的數(shù)據(jù)不被組外的集群獲取。因此,不存以下顧慮:在當(dāng)工作模式是“開啟并且處理器核心工作模式”的集群獲取工作模式是“開啟并且處理器核心不工作模式”的集群中的數(shù)據(jù)時(shí),由于數(shù)據(jù)被組外的集群保存,所以需要從組外的集群檢索數(shù)據(jù)。因此,組中的每個(gè)集群可以有效地從彼此獲取數(shù)據(jù)。
[0111]在上述比較例中,除了本地集群之外,遠(yuǎn)程集群和主集群中的處理器核心的組也處于工作狀態(tài)。因此,本地集群中的L2高速緩存與其他集群交換數(shù)據(jù)。因此,由本地集群中的處理器核心組使用的L2高速緩存的容量實(shí)質(zhì)上減少了。此外,在對(duì)L2高速緩存中的數(shù)據(jù)的管理中,部分因?yàn)榇_定了在L2高速緩存中優(yōu)先獲取或者存儲(chǔ)來自哪個(gè)集群的哪個(gè)數(shù)據(jù),所以確定準(zhǔn)則和控制更復(fù)雜。因此,與本實(shí)施方式中的配置相比,比較例中的配置可能導(dǎo)致更大的與成本相關(guān)的開銷和與性能相關(guān)的開銷。而且,在比較例中數(shù)據(jù)管理涉及例如存儲(chǔ)指示每個(gè)數(shù)據(jù)從哪個(gè)集群被逐出的附加信息。相反,本實(shí)施方式不涉及對(duì)這種附加信息的管理。
[0112]此外,可以將通用規(guī)則應(yīng)用于其中針對(duì)用于高速緩存一致性控制的協(xié)議的處理器核心組的工作模式是“開啟模式”和“關(guān)閉模式” 二者的情況。例如,此處假設(shè)當(dāng)處理器核心組的工作模式是“開啟模式”時(shí)使用了采用四個(gè)狀態(tài)即修改、專有、共享和無效的MESI協(xié)議。在這種情況下,當(dāng)處理器核心組的工作模式是“關(guān)閉模式”時(shí)可以使用該MESI協(xié)議而不需要定義新的狀態(tài)。另外,可以針對(duì)“開啟模式”模式和“關(guān)閉模式”模式相應(yīng)地修改控制處理。因此,當(dāng)根據(jù)本實(shí)施方式的配置被應(yīng)用于根據(jù)比較例的配置時(shí)可以減少工作量。
[0113]雖然對(duì)本實(shí)施方式進(jìn)行了如上描述,但是信息處理設(shè)備的配置和處理不限于如上所述的內(nèi)容,而是可以在本發(fā)明的技術(shù)范圍內(nèi)對(duì)本文中所描述的實(shí)施方式進(jìn)行各種變化。例如,在上述實(shí)施方式中,當(dāng)本地的集群50向作為主的集群60發(fā)送專有數(shù)據(jù)獲取請(qǐng)求時(shí),根據(jù)比較例進(jìn)行處理。也就是說,集群60從L2高速緩存603獲取所請(qǐng)求的數(shù)據(jù),將數(shù)據(jù)發(fā)送給集群50并且將數(shù)據(jù)從L2高速緩存603丟棄。專有數(shù)據(jù)獲取請(qǐng)求是主要在請(qǐng)求數(shù)據(jù)的集群更新集群中的數(shù)據(jù)時(shí)所使用的數(shù)據(jù)獲取請(qǐng)求。因此,當(dāng)數(shù)據(jù)被從集群50逐出時(shí),因?yàn)閿?shù)據(jù)是臟的,所以數(shù)據(jù)與回寫請(qǐng)求一起被發(fā)送給作為主的集群60。
[0114]然而,在信息處理設(shè)備中執(zhí)行的某些應(yīng)用程序中,由本地集群使用專有數(shù)據(jù)獲取請(qǐng)求而獲取的數(shù)據(jù)可能在不被更新的情況下從本地集群丟棄。也就是說,干凈的數(shù)據(jù)從本地集群被丟棄??紤]到這一點(diǎn),可以采用以下配置:當(dāng)本地集群向主集群發(fā)送專有數(shù)據(jù)獲取請(qǐng)求時(shí),不將所請(qǐng)求的數(shù)據(jù)從主集群中的L2高速緩存丟棄。然而,當(dāng)生成了專有數(shù)據(jù)獲取請(qǐng)求時(shí),在主集群中的標(biāo)簽RAM中不將所請(qǐng)求的數(shù)據(jù)的使用狀態(tài)登記成“專有的”而是登記成“共享的”。因此,當(dāng)修改協(xié)議以使得以這種方式管理數(shù)據(jù)時(shí),與比較例相比,集群之間的事務(wù)以及集群與主存儲(chǔ)器之間的事務(wù)不增加。這樣,從信息處理設(shè)備的規(guī)格以及在信息處理設(shè)備中執(zhí)行的應(yīng)用程序的類型的角度來看,信息處理設(shè)備的系統(tǒng)架構(gòu)可以任意采用配置。
[0115]另外,對(duì)于“開啟模式”和“關(guān)閉模式”間的切換,當(dāng)使用超過集群中的主存儲(chǔ)器的容量的大量的存儲(chǔ)器空間來執(zhí)行應(yīng)用程序時(shí),可以將工作模式設(shè)置成“開啟模式”。因此,當(dāng)使用不超過集群中的存儲(chǔ)器的容量的存儲(chǔ)器空間來執(zhí)行應(yīng)用程序時(shí),將工作模式設(shè)置成“關(guān)閉模式”。這樣,可以針對(duì)信息處理設(shè)備中的每個(gè)應(yīng)用程序靈活地采用存儲(chǔ)器和L2高速緩存的適當(dāng)?shù)呐渲?。而且,可以省略針?duì)每個(gè)應(yīng)用程序建立存儲(chǔ)器和L2高速緩存的配置的努力。
[0116]此外,當(dāng)針對(duì)每個(gè)集群?jiǎn)为?dú)地控制對(duì)處理器核心組的電力供應(yīng)時(shí),可以關(guān)閉在工作模式被設(shè)置成“開啟模式”時(shí)被設(shè)置在非工作狀態(tài)的處理器核心組。因此,可以在信息處理設(shè)備中減少不必要的電力消耗。應(yīng)該注意的是,在上述實(shí)施方式中可以采用所謂電源門控來控制對(duì)每個(gè)處理器核心組的電力供應(yīng)。
[0117]而且,在上述描述中,采用寄存器來將處理器核心組設(shè)置成工作狀態(tài)或者非工作狀態(tài)??梢圆捎萌鐖D24所示的配置代替如上述實(shí)施方式中所描述的L2高速緩存控制單元的配置,來將處理器核心組設(shè)置成工作狀態(tài)或者非工作狀態(tài)。如圖24所示,L2高速緩存控制單元1001包括控制器1001a、寄存器1001b、選擇器10lc以及L2高速緩存1003。另外,L2高速緩存1003包括標(biāo)簽RAM1003a、數(shù)據(jù)RAM1003b以及目錄RAM1004。在L2高速緩存控制單元1001中,選擇器10lc參考寄存器10lb的設(shè)置值來確定圖中未示出的來自集群中的處理器核心組的請(qǐng)求是否被阻斷。例如,當(dāng)寄存器10lb的設(shè)置值是“開啟”時(shí),選擇器10lc阻斷來自集群中的處理器核心組的請(qǐng)求。也就是說,實(shí)質(zhì)上可以將處理器核心組設(shè)置成非工作狀態(tài)。此外,當(dāng)寄存器10lb的設(shè)置值是“關(guān)閉”時(shí),選擇器10lc將來自處理器核心組的請(qǐng)求發(fā)送給控制器1001a。也就是說,實(shí)質(zhì)上可以將處理器核心組設(shè)置成工作狀態(tài)。在上述實(shí)施方式中也可以采用這樣的配置:其中在一組集群的外部執(zhí)行應(yīng)用程序以控制組中的每個(gè)集群的工作模式。
[0118]?計(jì)算機(jī)可讀記錄介質(zhì)>>
[0119]可以將使計(jì)算機(jī)實(shí)現(xiàn)上述任何功能的程序記錄在計(jì)算機(jī)可讀記錄介質(zhì)上。此處,功能包括例如寄存器的設(shè)置。另外,通過使計(jì)算機(jī)從記錄介質(zhì)讀入程序并且執(zhí)行程序,可以提供程序的功能。此處,計(jì)算機(jī)包括例如集群和控制器。
[0120]本文中所提及的計(jì)算機(jī)可讀記錄介質(zhì)指示通過電操作、磁操作、光學(xué)操作、機(jī)械操作或者化學(xué)操作來存儲(chǔ)例如數(shù)據(jù)和程序的信息,并且使所存儲(chǔ)的信息能夠被從計(jì)算機(jī)讀取的記錄介質(zhì)。可從計(jì)算機(jī)拆卸的這種記錄介質(zhì)包括例如軟盤、磁光盤、CD-ROM,CD-R/W,DVD,DAT,8毫米磁帶以及存儲(chǔ)器卡。固定于計(jì)算機(jī)的這種記錄介質(zhì)包括硬盤和ROM (只讀存儲(chǔ)器)。
[0121]根據(jù)一個(gè)實(shí)施方式的運(yùn)算處理設(shè)備、信息處理設(shè)備以及控制信息處理設(shè)備的方法可以減少對(duì)主存儲(chǔ)器的訪問頻率。
【權(quán)利要求】
1.一種運(yùn)算處理設(shè)備,其與另一運(yùn)算處理設(shè)備連接,包括: 運(yùn)算處理單元,被配置成使用由自身的運(yùn)算處理設(shè)備管理的第一數(shù)據(jù)以及由另一運(yùn)算處理設(shè)備管理并且從另一運(yùn)算處理設(shè)備獲取的第二數(shù)據(jù)來進(jìn)行運(yùn)算處理; 主存儲(chǔ)器,被配置成存儲(chǔ)所述第一數(shù)據(jù)和第三數(shù)據(jù);以及 控制單元,被配置成包括設(shè)置單元和高速緩沖存儲(chǔ)器,所述設(shè)置單元將所述運(yùn)算處理單元設(shè)置成工作狀態(tài)或非工作狀態(tài),所述高速緩沖存儲(chǔ)器保存所述第一數(shù)據(jù)、所述第二數(shù)據(jù)和所述第三數(shù)據(jù),其中,當(dāng)所述設(shè)置單元將所述運(yùn)算處理單元設(shè)置成所述非工作狀態(tài)并且由另一運(yùn)算處理設(shè)備請(qǐng)求觸發(fā)所述高速緩沖存儲(chǔ)器中的高速緩存命中失誤的所述第三數(shù)據(jù)時(shí),所述控制單元從所述主存儲(chǔ)器讀取所請(qǐng)求的第三數(shù)據(jù),并且在所述高速緩沖存儲(chǔ)器中保存所請(qǐng)求的第三數(shù)據(jù),并且將所讀取的第三數(shù)據(jù)發(fā)送給另一運(yùn)算處理設(shè)備。
2.根據(jù)權(quán)利要求1所述的運(yùn)算處理設(shè)備,其中,當(dāng)所述控制單元從另一運(yùn)算處理設(shè)備接收到所述第三數(shù)據(jù)的經(jīng)修改數(shù)據(jù)以及回寫請(qǐng)求時(shí),所述控制單元將所述經(jīng)修改數(shù)據(jù)存儲(chǔ)在所述高速緩沖存儲(chǔ)器中。
3.根據(jù)權(quán)利要求2所述的運(yùn)算處理設(shè)備,其中,當(dāng)所述控制單元從另一運(yùn)算處理設(shè)備接收到第三數(shù)據(jù)的經(jīng)修改數(shù)據(jù)以及回寫請(qǐng)求時(shí),所述控制單元將所述經(jīng)修改數(shù)據(jù)存儲(chǔ)在所述高速緩沖存儲(chǔ)器中并且禁止將所述經(jīng)修改數(shù)據(jù)存儲(chǔ)在所述主存儲(chǔ)器中。
4.一種信息處理設(shè)備,其包括與另一運(yùn)算處理設(shè)備連接的運(yùn)算處理設(shè)備,其中, 所述運(yùn)算處理設(shè)備 包括: 運(yùn)算處理單元,被配置成使用由自身的運(yùn)算處理設(shè)備管理的第四數(shù)據(jù)以及由另一運(yùn)算處理設(shè)備管理并且從另一運(yùn)算處理設(shè)備獲取的第五數(shù)據(jù)來進(jìn)行運(yùn)算處理, 主存儲(chǔ)器,被配置成存儲(chǔ)所述第四數(shù)據(jù)和第六數(shù)據(jù);以及 控制單元,被配置成包括設(shè)置單元和高速緩沖存儲(chǔ)器,所述設(shè)置單元將所述運(yùn)算處理單元設(shè)置成工作狀態(tài)或非工作狀態(tài),所述高速緩沖存儲(chǔ)器保存所述第四數(shù)據(jù)、所述第五數(shù)據(jù)和所述第六數(shù)據(jù),其中,當(dāng)所述設(shè)置單元將所述運(yùn)算處理單元設(shè)置成所述非工作狀態(tài)并且由另一運(yùn)算處理設(shè)備請(qǐng)求所述第六數(shù)據(jù)從而使得在所述高速緩沖存儲(chǔ)器中發(fā)生高速緩存命中失誤時(shí),所述控制單元從所述主存儲(chǔ)器讀取所請(qǐng)求的第六數(shù)據(jù),并且在所述高速緩沖存儲(chǔ)器中保存所請(qǐng)求的第六數(shù)據(jù),并且將所讀取的第六數(shù)據(jù)發(fā)送給另一運(yùn)算處理設(shè)備。
5.根據(jù)權(quán)利要求4所述的信息處理設(shè)備,其中,當(dāng)所述控制單元從另一運(yùn)算處理設(shè)備接收到所述第六數(shù)據(jù)的經(jīng)修改數(shù)據(jù)以及回寫請(qǐng)求時(shí),所述控制單元將所述經(jīng)修改數(shù)據(jù)存儲(chǔ)在所述高速緩沖存儲(chǔ)器中。
6.根據(jù)權(quán)利要求5所述的信息處理設(shè)備,其中,當(dāng)所述控制單元從另一運(yùn)算處理設(shè)備接收到所述第六數(shù)據(jù)的經(jīng)修改數(shù)據(jù)以及回寫請(qǐng)求時(shí),所述控制單元將所述經(jīng)修改數(shù)據(jù)存儲(chǔ)在所述高速緩沖存儲(chǔ)器中并且禁止將所述經(jīng)修改數(shù)據(jù)存儲(chǔ)在所述主存儲(chǔ)器中。
7.一種控制信息處理設(shè)備的方法,所述方法包括: 將包括在所述信息處理設(shè)備中的第一運(yùn)算處理設(shè)備的運(yùn)算處理單元設(shè)置成非工作狀態(tài),所述運(yùn)算處理單元使用由所述第一運(yùn)算處理設(shè)備管理的第七數(shù)據(jù),以及由與所述第一運(yùn)算處理設(shè)備連接的第二運(yùn)算處理設(shè)備管理并且從所述第二運(yùn)算處理設(shè)備獲取的第八數(shù)據(jù),來進(jìn)行運(yùn)算處理; 當(dāng)請(qǐng)求存儲(chǔ)在所述第一運(yùn)算處理設(shè)備的主存儲(chǔ)器中的第九數(shù)據(jù)并且在所述第一運(yùn)算處理設(shè)備的用于保存所述第七數(shù)據(jù)、所述第八數(shù)據(jù)和所述第九數(shù)據(jù)的高速緩沖存儲(chǔ)器中發(fā)生高速緩存命中失誤時(shí),從所述主存儲(chǔ)器讀取所述第九數(shù)據(jù),并且將所述第九數(shù)據(jù)保存在所述高速緩沖存儲(chǔ)器中;以及 將從所述主存儲(chǔ)器讀取的所述第九數(shù)據(jù)發(fā)送給所述第二運(yùn)算處理設(shè)備。
8.根據(jù)權(quán)利要求7所述的控制所述信息處理設(shè)備的方法,其中當(dāng)所述第一運(yùn)算處理設(shè)備從所述第二運(yùn)算處理設(shè)備接收到所述第九數(shù)據(jù)的經(jīng)修改數(shù)據(jù)以及回寫請(qǐng)求時(shí),將所述經(jīng)修改數(shù)據(jù)存儲(chǔ)在所述第一運(yùn)算處理設(shè)備的所述高速緩沖存儲(chǔ)器中。
9.根據(jù)權(quán)利要求7所述的控制所述信息處理設(shè)備的方法,其中,當(dāng)所述第一運(yùn)算處理設(shè)備從所述第二運(yùn)算處理設(shè)備接收到所述第九數(shù)據(jù)的經(jīng)修改數(shù)據(jù)以及回寫請(qǐng)求時(shí),將所述經(jīng)修改數(shù)據(jù)存儲(chǔ)在所述第一運(yùn)算處理設(shè)備的所述高速緩沖存儲(chǔ)器中并且禁止將所述經(jīng)修改數(shù)據(jù)存儲(chǔ)在所述主 存儲(chǔ)器中。
【文檔編號(hào)】G06F12/08GK104077249SQ201410086349
【公開日】2014年10月1日 申請(qǐng)日期:2014年3月10日 優(yōu)先權(quán)日:2013年3月25日
【發(fā)明者】青柳隆宏, 池田吉朗 申請(qǐng)人:富士通株式會(huì)社