两个人的电影免费视频_国产精品久久久久久久久成人_97视频在线观看播放_久久这里只有精品777_亚洲熟女少妇二三区_4438x8成人网亚洲av_内谢国产内射夫妻免费视频_人妻精品久久久久中国字幕

一種緩存分配、數(shù)據(jù)訪問(wèn)、數(shù)據(jù)發(fā)送方法、處理器及系統(tǒng)與流程

文檔序號(hào):12597106閱讀:199來(lái)源:國(guó)知局
一種緩存分配、數(shù)據(jù)訪問(wèn)、數(shù)據(jù)發(fā)送方法、處理器及系統(tǒng)與流程

本發(fā)明涉及計(jì)算機(jī)技術(shù)領(lǐng)域,特別涉及一種緩存分配、數(shù)據(jù)訪問(wèn)、數(shù)據(jù)發(fā)送方法、處理器及系統(tǒng)。



背景技術(shù):

當(dāng)今的計(jì)算機(jī)系統(tǒng)通常為多處理器系統(tǒng),即由多個(gè)處理器組成,并且一個(gè)處理器中也存在多個(gè)處理器核。每個(gè)處理器自身都有緩存,緩存中存儲(chǔ)有供處理器訪問(wèn)的數(shù)據(jù)。如何為多個(gè)處理器及時(shí)有效地提供數(shù)據(jù),成為多處理器系統(tǒng)的緩存結(jié)構(gòu)設(shè)計(jì)的關(guān)鍵問(wèn)題。

現(xiàn)有的多處理器系統(tǒng)的緩存結(jié)構(gòu)設(shè)計(jì)為合作型緩存。對(duì)每個(gè)處理器來(lái)說(shuō),除了一級(jí)私有緩存外,每個(gè)處理器的二級(jí)緩存都被劃分為兩部分,一部分用于本地私有,一部分用于全局共享。私有部分和共享部分的大小可以動(dòng)態(tài)調(diào)整。其中,用于本地私用的緩存中存儲(chǔ)供處理器自身訪問(wèn)的數(shù)據(jù),用于全局共享的緩存中存儲(chǔ)供其他處理器訪問(wèn)的數(shù)據(jù)。因此,處理器的用于本地私有的緩存容量的最大值為該處理器的二級(jí)緩存容量,用于全局共享的緩存容量的最大值為該處理器的二級(jí)緩存容量。

因此,合作型緩存的緩存結(jié)構(gòu)設(shè)計(jì)存在的不足是:處理器的緩存容量有限,無(wú)法應(yīng)對(duì)該處理器的用于本地私有的緩存容量需求大于二級(jí)緩存容量的情況,或者該處理器的用于全局共享的緩存容量需求大于二級(jí)緩存容量的情況。

因此,現(xiàn)有的多處理器系統(tǒng)的緩存結(jié)構(gòu)設(shè)計(jì)不合理,處理器的緩存容量有限。



技術(shù)實(shí)現(xiàn)要素:

本發(fā)明實(shí)施例提供一種緩存分配、數(shù)據(jù)訪問(wèn)、數(shù)據(jù)發(fā)送方法、處理器及系統(tǒng),供多處理器系統(tǒng)全局地為處理器分配更多的緩存容量,提高多處理器系統(tǒng)的總緩存的利用率。

本發(fā)明實(shí)施例第一方面提供了一種緩存分配方法,包括:

第二處理器接收第一處理器發(fā)送的用于獲取第一數(shù)據(jù)的訪問(wèn)請(qǐng)求,其中,所述第一數(shù)據(jù)未存儲(chǔ)在所述第一處理器的緩存中,且存儲(chǔ)在所述第二處理器的緩存中,所述訪問(wèn)請(qǐng)求包括所述第一處理器與所述第二處理器之間的路徑上的各個(gè)處理器的緩存利用率;

所述第二處理器將所述各個(gè)處理器中緩存利用率低于所述第二處理器的緩存利用率的處理器確定為借用處理器;

所述第二處理器將所述第一數(shù)據(jù)發(fā)送至借用處理器的緩存中,并指示所述借用處理器向所述第一處理器發(fā)送所述第一數(shù)據(jù);

其中,所述第一處理器、所述第二處理器和所述借用處理器屬于同一多處理器系統(tǒng)。

結(jié)合第一方面,在第一方面的第一種可能的實(shí)現(xiàn)方式中,在所述第二處理器指示所述借用處理器向所述第一處理器發(fā)送所述第一數(shù)據(jù)之后,所述方法還包括:

所述第二處理器指示所述借用處理器向所述第一處理器發(fā)送所述第一數(shù)據(jù)的存儲(chǔ)信息,所述存儲(chǔ)信息表征所述第一數(shù)據(jù)在所述借用處理器中的存儲(chǔ)位置。

本發(fā)明實(shí)施例第二方面提供了一種數(shù)據(jù)訪問(wèn)方法,包括:

當(dāng)?shù)谝惶幚砥髡?qǐng)求訪問(wèn)的第一數(shù)據(jù)未存儲(chǔ)在所述第一處理器的緩存中,且存儲(chǔ)在第二處理器的緩存中時(shí),所述第一處理器向所述第二處理器發(fā)送用于獲取所述第一數(shù)據(jù)的訪問(wèn)請(qǐng)求,所述訪問(wèn)請(qǐng)求包括所述第一處理器與所述第二處理器之間的路徑上的各個(gè)處理器的緩存利用率;

所述第一處理器接收并存儲(chǔ)借用處理器發(fā)送的所述第一數(shù)據(jù),所述第一數(shù) 據(jù)是所述第二處理器發(fā)送給所述借用處理器的;

其中,所述第一處理器、所述第二處理器和所述借用處理器屬于同一多處理器系統(tǒng),所述借用處理器為所述各個(gè)處理器中緩存利用率低于所述第二處理器的緩存利用率的處理器。

結(jié)合第二方面,在第二方面的第一種可能的實(shí)現(xiàn)方式中,所述第一處理器接收借用處理器發(fā)送的所述第一數(shù)據(jù)之后,還包括:

所述第一處理器接收并存儲(chǔ)所述借用處理器發(fā)送的存儲(chǔ)信息,所述存儲(chǔ)信息表征所述第一數(shù)據(jù)在所述借用處理器中的存儲(chǔ)位置。

結(jié)合第二方面,或結(jié)合第二方面的第一種可能的實(shí)現(xiàn)方式,在第二方面的第二種可能的實(shí)現(xiàn)方式中,所述方法還包括:

當(dāng)所述第一處理器的緩存中存儲(chǔ)的第二數(shù)據(jù)待被移動(dòng)到內(nèi)存控制器中時(shí),所述第一處理器將所述第二數(shù)據(jù)移動(dòng)至所述借用處理器。

結(jié)合第二方面,或結(jié)合第二方面的第一種可能的實(shí)現(xiàn)方式,或結(jié)合第二方面的第二種可能的實(shí)現(xiàn)方式,在第二方面的第三種可能的實(shí)現(xiàn)方式中,所述方法還包括:

當(dāng)所述第一處理器的緩存中存儲(chǔ)的第三數(shù)據(jù)的被訪問(wèn)頻率低于所述借用處理器的緩存中存儲(chǔ)的第四數(shù)據(jù)的被訪問(wèn)頻率時(shí),所述第一處理器將所述第三數(shù)據(jù)發(fā)送至所述借用處理器,且從所述借用處理器中讀取并存儲(chǔ)所述第四數(shù)據(jù)。

本發(fā)明實(shí)施例第三方面提供一種數(shù)據(jù)發(fā)送方法,包括:

借用處理器將第二處理器發(fā)送的第一數(shù)據(jù)存儲(chǔ)至所述借用處理器的緩存中,其中,所述第一數(shù)據(jù)未存儲(chǔ)在第一處理器的緩存中,且存儲(chǔ)在所述第二處理器的緩存中;

所述借用處理器向所述第一處理器發(fā)送所述第一數(shù)據(jù),所述第一數(shù)據(jù)是所述第二處理器發(fā)送給所述借用處理器的;

其中,所述第一處理器、所述第二處理器和所述借用處理器屬于同一多處 理器系統(tǒng),所述借用處理器為所述各個(gè)處理器中緩存利用率低于所述第二處理器的緩存利用率的處理器。

結(jié)合第三方面,在第三方面的第一種可能的實(shí)現(xiàn)方式中,在所述借用處理器向所述第一處理器發(fā)送所述第一數(shù)據(jù)之后,所述方法還包括:

所述借用處理器向所述第一處理器發(fā)送所述第一數(shù)據(jù)的存儲(chǔ)信息,所述存儲(chǔ)信息表征所述第一數(shù)據(jù)在所述借用處理器中的存儲(chǔ)位置。

結(jié)合第三方面,或結(jié)合第三方面的第一種可能的實(shí)現(xiàn)方式,在第三方面的第二種可能的實(shí)現(xiàn)方式中,所述方法還包括:

當(dāng)所述借用處理器的緩存中存儲(chǔ)的所述第一數(shù)據(jù)的被訪問(wèn)頻率高于第一預(yù)定閾值時(shí),所述借用處理器將所述第一數(shù)據(jù)發(fā)送至所述第一處理器或第三處理器,所述第三處理器與所述第一處理器之間的物理距離小于所述借用處理器與所述第一處理器之間的物理距離。

結(jié)合第三方面,或結(jié)合第三方面的第一種可能的實(shí)現(xiàn)方式,或結(jié)合第三方面的第二種可能的實(shí)現(xiàn)方式,在第三方面的第三種可能的實(shí)現(xiàn)方式中,所述方法還包括:

當(dāng)所述借用處理器的緩存利用率高于第二預(yù)定閾值時(shí),所述借用處理器將所述第一數(shù)據(jù)發(fā)送至所述第二處理器或所述第一處理器。

本發(fā)明實(shí)施例第四方面提供一種處理器,包括:

接收模塊,用于接收第一處理器發(fā)送的用于獲取第一數(shù)據(jù)的訪問(wèn)請(qǐng)求,其中,所述第一數(shù)據(jù)未存儲(chǔ)在所述第一處理器的緩存中,且存儲(chǔ)在所述處理器的緩存中,所述訪問(wèn)請(qǐng)求包括所述第一處理器與所述處理器之間的路徑上的各個(gè)處理器的緩存利用率;

確定模塊,用于將所述各個(gè)處理器中緩存利用率低于所述第二處理器的緩存利用率的處理器確定為借用處理器;

發(fā)送模塊,用于將所述第一數(shù)據(jù)發(fā)送至借用處理器的緩存中;

指示模塊,用于指示所述借用處理器向所述第一處理器發(fā)送所述第一數(shù) 據(jù);

其中,所述第一處理器、所述處理器和所述借用處理器屬于同一多處理器系統(tǒng)。

結(jié)合第四方面,在第四方面的第一種可能的實(shí)現(xiàn)方式中,所述指示模塊還用于:

指示所述借用處理器向所述第一處理器發(fā)送所述第一數(shù)據(jù)的存儲(chǔ)信息,所述存儲(chǔ)信息表征所述第一數(shù)據(jù)在所述借用處理器中的存儲(chǔ)位置。

本發(fā)明實(shí)施例第五方面提供了一種處理器,包括:

發(fā)送模塊,用于當(dāng)所述處理器請(qǐng)求訪問(wèn)的第一數(shù)據(jù)未存儲(chǔ)在所述處理器的緩存中,且存儲(chǔ)在第二處理器的緩存中時(shí),所述處理器向所述第二處理器發(fā)送用于獲取所述第一數(shù)據(jù)的訪問(wèn)請(qǐng)求,所述訪問(wèn)請(qǐng)求包括所述處理器與所述第二處理器之間的路徑上的各個(gè)處理器的緩存利用率;

接收模塊,用于接收并存儲(chǔ)借用處理器發(fā)送的所述第一數(shù)據(jù),所述第一數(shù)據(jù)是所述第二處理器發(fā)送給所述借用處理器的;

其中,所述處理器、所述第二處理器和所述借用處理器屬于同一多處理器系統(tǒng),所述借用處理器為所述各個(gè)處理器中緩存利用率低于所述第二處理器的緩存利用率的處理器。

結(jié)合第五方面,在第五方面的第一種可能的實(shí)現(xiàn)方式中,所述接收模塊還用于:

接收并存儲(chǔ)所述借用處理器發(fā)送的存儲(chǔ)信息,所述存儲(chǔ)信息表征所述第一數(shù)據(jù)在所述借用處理器中的存儲(chǔ)位置。

結(jié)合第五方面,或結(jié)合第五方面的第一種可能的實(shí)現(xiàn)方式,在第五方面的第二種可能的實(shí)現(xiàn)方式中,所述處理器還包括:

移動(dòng)模塊,用于當(dāng)所述處理器的緩存中存儲(chǔ)的第二數(shù)據(jù)待被移動(dòng)到內(nèi)存控制器中時(shí),將所述第二數(shù)據(jù)移動(dòng)至所述借用處理器。

結(jié)合第五方面,或結(jié)合第五方面的第一種可能的實(shí)現(xiàn)方式,或結(jié)合第五方 面的第二種可能的實(shí)現(xiàn)方式,在第五方面的第三種可能的實(shí)現(xiàn)方式中,所述發(fā)送模塊還用于:

當(dāng)所述處理器的緩存中存儲(chǔ)的第三數(shù)據(jù)的被訪問(wèn)頻率低于所述借用處理器的緩存中存儲(chǔ)的第四數(shù)據(jù)的被訪問(wèn)頻率時(shí),將所述第三數(shù)據(jù)發(fā)送至所述借用處理器,且從所述借用處理器中讀取并存儲(chǔ)所述第四數(shù)據(jù)。

本發(fā)明實(shí)施例第六方面提供一種處理器,包括:

存儲(chǔ)模塊,用于將第二處理器發(fā)送的第一數(shù)據(jù)存儲(chǔ)至所述處理器的緩存中,其中,所述第一數(shù)據(jù)未存儲(chǔ)在第一處理器的緩存中,且存儲(chǔ)在所述第二處理器的緩存中;

發(fā)送模塊,用于向所述第一處理器發(fā)送所述第一數(shù)據(jù),所述第一數(shù)據(jù)是所述第二處理器發(fā)送給所述借用處理器的;

其中,所述第一處理器、所述第二處理器和所述處理器屬于同一多處理器系統(tǒng),所述處理器為所述各個(gè)處理器中緩存利用率低于所述第二處理器的緩存利用率的處理器。

結(jié)合第六方面,在第六方面的第一種可能的實(shí)現(xiàn)方式中,所述發(fā)送模塊還用于:

向所述第一處理器發(fā)送所述第一數(shù)據(jù)的存儲(chǔ)信息,所述存儲(chǔ)信息表征所述第一數(shù)據(jù)在所述處理器中的存儲(chǔ)位置。

結(jié)合第六方面,或結(jié)合第六方面的第一種可能的實(shí)現(xiàn)方式,在第六方面的第二種可能的實(shí)現(xiàn)方式中,所述發(fā)送模塊還用于:

當(dāng)所述處理器的緩存中存儲(chǔ)的所述第一數(shù)據(jù)的被訪問(wèn)頻率高于第一預(yù)定閾值時(shí),所述處理器將所述第一數(shù)據(jù)發(fā)送至所述第一處理器或第三處理器,所述第三處理器與所述第一處理器之間的物理距離小于所述處理器與所述第一處理器之間的物理距離。

結(jié)合第六方面,或結(jié)合第六方面的第一種可能的實(shí)現(xiàn)方式,或結(jié)合第六方面的第二種可能的實(shí)現(xiàn)方式,在第六方面的第三種可能的實(shí)現(xiàn)方式中,所述發(fā) 送模塊還用于:

當(dāng)所述處理器的緩存利用率高于第二預(yù)定閾值時(shí),將所述第一數(shù)據(jù)發(fā)送至所述第二處理器或所述第一處理器。

本發(fā)明實(shí)施例第七方面提供一種多處理器系統(tǒng),包括第一處理器、第二處理器和借用處理器;

所述第一處理器用于:當(dāng)所述第一處理器請(qǐng)求訪問(wèn)的第一數(shù)據(jù)未存儲(chǔ)在所述第一處理器的緩存中,且存儲(chǔ)在第二處理器的緩存中時(shí),向所述第二處理器發(fā)送用于獲取所述第一數(shù)據(jù)的訪問(wèn)請(qǐng)求,所述訪問(wèn)請(qǐng)求包括所述第一處理器與所述第二處理器之間的路徑上的各個(gè)處理器的緩存利用率;

所述第二處理器用于:接收第一處理器發(fā)送的用于獲取第一數(shù)據(jù)的訪問(wèn)請(qǐng)求;將所述各個(gè)處理器中緩存利用率低于所述第二處理器的緩存利用率的處理器確定為借用處理器;將所述第一數(shù)據(jù)發(fā)送至借用處理器的緩存中,并指示所述借用處理器向所述第一處理器發(fā)送所述第一數(shù)據(jù)。

結(jié)合第七方面,在第七方面的第一種可能的實(shí)現(xiàn)方式中,所述第二處理器還用于:

指示所述借用處理器向所述第一處理器發(fā)送所述第一數(shù)據(jù)的存儲(chǔ)信息,所述存儲(chǔ)信息表征所述第一數(shù)據(jù)在所述借用處理器中的存儲(chǔ)位置;

所述第一處理器用于:接收并存儲(chǔ)所述借用處理器發(fā)送的所述存儲(chǔ)信息。

本發(fā)明實(shí)施例中提供的一個(gè)或多個(gè)技術(shù)方案,至少具有如下技術(shù)效果或優(yōu)點(diǎn):

本發(fā)明實(shí)施例中,當(dāng)?shù)谝惶幚砥髡?qǐng)求訪問(wèn)的第一數(shù)據(jù)未存儲(chǔ)在自身緩存中,且存儲(chǔ)在第二處理器的緩存中時(shí),首先,第一處理器向第二處理器發(fā)送用于獲取第一數(shù)據(jù)的訪問(wèn)請(qǐng)求,接著,第二處理器將第一數(shù)據(jù)發(fā)送至借用處理器的緩存中,并指示借用處理器向第一處理器發(fā)送第一數(shù)據(jù),由于借用處理器為多處理器系統(tǒng)中緩存利用率低于第二處理器的處理器,利用借用處理器的緩存存儲(chǔ)第一數(shù)據(jù)。將第二處理器的緩存中原本存儲(chǔ)第一數(shù)據(jù)的空間謄空,用以存 儲(chǔ)其他數(shù)據(jù),所以提高了多處理器系統(tǒng)的總緩存的利用率。

附圖說(shuō)明

為了更清楚地說(shuō)明本發(fā)明實(shí)施例中的技術(shù)方案,下面將對(duì)實(shí)施例描述中所需要使用的附圖作簡(jiǎn)要介紹,顯而易見(jiàn)地,下面描述中的附圖僅僅是本發(fā)明的一些實(shí)施例,對(duì)于本領(lǐng)域的普通技術(shù)人員來(lái)講,在不付出創(chuàng)造性勞動(dòng)性的前提下,還可以根據(jù)這些附圖獲得其他的附圖。

圖1為多處理器系統(tǒng)的硬件架構(gòu)示意圖;

圖2為本發(fā)明實(shí)施例提供的一種緩存分配方法的流程圖;

圖3為本發(fā)明實(shí)施例提供的一種數(shù)據(jù)訪問(wèn)方法的流程圖;

圖4為本發(fā)明實(shí)施例提供的一種數(shù)據(jù)發(fā)送方法的流程圖;

圖5為本發(fā)明實(shí)施例中第二處理器的結(jié)構(gòu)框圖;

圖6為本發(fā)明實(shí)施例中第一處理器的結(jié)構(gòu)框圖;

圖7為本發(fā)明實(shí)施例中借用處理器的結(jié)構(gòu)框圖;

圖8為本發(fā)明實(shí)施例中多處理器系統(tǒng)的結(jié)構(gòu)示意圖。

具體實(shí)施方式

為使本發(fā)明實(shí)施例的目的、技術(shù)方案和優(yōu)點(diǎn)更加清楚,下面將結(jié)合本發(fā)明實(shí)施例中的附圖,對(duì)本發(fā)明實(shí)施例中的技術(shù)方案進(jìn)行清楚、完整地描述,顯然,所描述的實(shí)施例是本發(fā)明一部分實(shí)施例,而不是全部的實(shí)施例?;诒景l(fā)明中的實(shí)施例,本領(lǐng)域普通技術(shù)人員在沒(méi)有做出創(chuàng)造性勞動(dòng)前提下所獲得的所有其他實(shí)施例,都屬于本發(fā)明保護(hù)的范圍。

請(qǐng)參考圖1,圖1為多處理器系統(tǒng)的硬件架構(gòu)示意圖。圖1中以三個(gè)處理器為例,分別為處理器A、處理器B和處理器C,其中每個(gè)處理器都有對(duì)應(yīng)的緩存,分別為緩存A、緩存B和緩存C,以及,各處理器共用一個(gè)內(nèi)存控制器。圖1所示的多處理器系統(tǒng)適用于本發(fā)明實(shí)施例提供的一種緩存分配方法和一種 數(shù)據(jù)訪問(wèn)方法以及一種數(shù)據(jù)發(fā)送方法。

請(qǐng)參考圖2,圖2為本發(fā)明實(shí)施例提供的一種緩存分配方法的流程圖。該緩存分配方法包括:

步驟21:第二處理器接收第一處理器發(fā)送的用于獲取第一數(shù)據(jù)的訪問(wèn)請(qǐng)求,其中,所述第一數(shù)據(jù)未存儲(chǔ)在所述第一處理器的緩存中,且存儲(chǔ)在所述第二處理器的緩存中,所述訪問(wèn)請(qǐng)求包括所述第一處理器與所述第二處理器之間的路徑上的各個(gè)處理器的緩存利用率;

步驟22:所述第二處理器將所述各個(gè)處理器中緩存利用率低于所述第二處理器的緩存利用率的處理器確定為借用處理器;

步驟23:所述第二處理器將所述第一數(shù)據(jù)發(fā)送至借用處理器的緩存中,并指示所述借用處理器向所述第一處理器發(fā)送所述第一數(shù)據(jù);

其中,所述第一處理器、所述第二處理器和所述借用處理器屬于同一多處理器系統(tǒng)。

具體來(lái)講,多處理器系統(tǒng)包括第一處理器和第二處理器,以及除第一處理器和第二處理器之外其他的處理器。如果第一處理器需要訪問(wèn)第一數(shù)據(jù),但是第一數(shù)據(jù)未存儲(chǔ)在第一處理器的緩存中,第一處理器通過(guò)目錄查詢到第一數(shù)據(jù)存儲(chǔ)在第二處理器中,則第一處理器向第二處理器發(fā)送訪問(wèn)請(qǐng)求,該訪問(wèn)請(qǐng)求用于訪問(wèn)第一數(shù)據(jù)。

在第一處理器與第二處理器之間存在多條路徑,每條路徑上都分布有多個(gè)處理器,第一處理器利用一條路徑將訪問(wèn)請(qǐng)求發(fā)送至第二處理器,同時(shí),第一處理器統(tǒng)計(jì)路徑上各個(gè)處理器的緩存利用率,并將緩存利用率攜帶在訪問(wèn)請(qǐng)求中,因此,第二處理器收到的訪問(wèn)請(qǐng)求還包括:第一處理器至第二處理器的路徑上各個(gè)處理器的緩存利用率。

第二處理器將第二處理器的緩存利用率與第一處理器至第二處理器的路徑上各個(gè)處理器的緩存利用率相比,從第一處理器至第二處理器的路徑上各個(gè)處理器中確定出比第二處理器的緩存利用率低的處理器,作為借用處理器。

具體地,如果第一處理器至第二處理器的路徑上各個(gè)處理器中,比第二處理器的緩存利用率低的處理器有一個(gè),則將該處理器作為借用處理器。如果第一處理器至第二處理器的路徑上各個(gè)處理器中,比第二處理器的緩存利用率低的處理器有多個(gè),則將多個(gè)處理器中緩存利用率最低的處理器中任一個(gè)作為借用處理器。

由于借用處理器的緩存利用率低于第二處理器的緩存利用率,所以為了充分利用多處理器系統(tǒng)的總緩存,第二處理器將第一數(shù)據(jù)發(fā)送至借用處理器,利用借用處理器的緩存存儲(chǔ)第一數(shù)據(jù),將第二處理器的緩存中原本存儲(chǔ)第一數(shù)據(jù)的空間謄空,用以存儲(chǔ)其他數(shù)據(jù)。

另外,第二處理器還需對(duì)訪問(wèn)請(qǐng)求進(jìn)行響應(yīng),所以在將第一數(shù)據(jù)發(fā)送至借用處理器后,還要指示借用處理器將第一數(shù)據(jù)發(fā)送至第一處理器,這樣,第一處理器就獲得了第一處理器需要訪問(wèn)的第一數(shù)據(jù)。

考慮到第一處理器可能再次訪問(wèn)第一數(shù)據(jù),為方便第一處理器訪問(wèn)第一數(shù)據(jù),在執(zhí)行完步驟23后,還可以執(zhí)行以下步驟:

所述第二處理器指示所述借用處理器向所述第一處理器發(fā)送所述第一數(shù)據(jù)的存儲(chǔ)信息,所述存儲(chǔ)信息表征所述第一數(shù)據(jù)在所述借用處理器中的存儲(chǔ)位置。

具體來(lái)講,第二處理器將第一數(shù)據(jù)發(fā)送至借用處理器后,借用處理器會(huì)將第一數(shù)據(jù)存儲(chǔ)在借用處理器的緩存中,借用處理器記錄第一數(shù)據(jù)在借用處理器的緩存中存儲(chǔ)的位置,然后借用處理器根據(jù)第二處理器的指示,將第一數(shù)據(jù)在的借用處理器的緩存中的存儲(chǔ)位置發(fā)送至第一處理器。第一處理器將第一數(shù)據(jù)在借用處理器的緩存中的存儲(chǔ)位置記錄在目錄中,如果第一處理器需要再次訪問(wèn)第一數(shù)據(jù),則從目錄中查找到第一數(shù)據(jù)在借用處理器的緩存中的存儲(chǔ)位置,然后通過(guò)訪問(wèn)借用處理器的緩存,獲取第一數(shù)據(jù)。

需要說(shuō)明的是,本發(fā)明實(shí)施例提供的緩存分配方法不僅適用于:將第一處理器與第二處理器的路徑上各個(gè)處理器中的一個(gè)確定為借用處理器,還適用 于:將第二處理器與內(nèi)存控制器的路徑上各個(gè)處理器中的一個(gè)確定為借用處理器。

具體來(lái)講,上述實(shí)施例是以第二處理器的緩存中存儲(chǔ)有第一數(shù)據(jù)舉例。假設(shè)第二處理器的緩存中存儲(chǔ)的第一數(shù)據(jù)已被替換到了內(nèi)存控制器中,即:第一數(shù)據(jù)存儲(chǔ)在第二處理器的緩存中,當(dāng)?shù)诙幚砥鞯木彺嬷行枰鎯?chǔ)另外一個(gè)數(shù)據(jù)(例如稱為第三數(shù)據(jù))時(shí),可能第二處理器的緩存中沒(méi)有剩余的空間了,則第二處理器需要將第一數(shù)據(jù)移動(dòng)到內(nèi)存中,用空出來(lái)的空間存放第三數(shù)據(jù),這時(shí),第一數(shù)據(jù)就相當(dāng)于被替換到了內(nèi)存控制器。

則第二處理器需要向內(nèi)存控制器發(fā)送數(shù)據(jù)訪問(wèn)請(qǐng)求,該訪問(wèn)請(qǐng)求用于訪問(wèn)第一數(shù)據(jù)。

在第二處理器與內(nèi)存控制器之間存在多條路徑,每條路徑上都分布有多個(gè)處理器,第二處理器利用一條路徑將訪問(wèn)請(qǐng)求發(fā)送至內(nèi)存控制器,同時(shí),第二處理器統(tǒng)計(jì)路徑上各個(gè)處理器的緩存利用率,并將緩存利用率攜帶在訪問(wèn)請(qǐng)求中,因此,內(nèi)存控制器收到的訪問(wèn)請(qǐng)求還包括:第二處理器至內(nèi)存控制器的路徑上各個(gè)處理器的緩存利用率。

內(nèi)存控制器從第二處理器至內(nèi)存控制器的路徑上各個(gè)處理器中確定出一個(gè)處理器,作為借用處理器。如果第二處理器至內(nèi)存控制器的路徑上各個(gè)處理器中,緩存利用率為最低值的處理器有一個(gè),則將該處理器作為借用處理器。如果緩存利用率為最低值的處理器有多個(gè),則將多個(gè)處理器中任一個(gè)作為借用處理器。

由于借用處理器的緩存利用率低,所以為了充分利用多處理器系統(tǒng)的總緩存,內(nèi)存控制器將第一數(shù)據(jù)發(fā)送至借用處理器,利用借用處理器的緩存存儲(chǔ)第一數(shù)據(jù),將內(nèi)存控制器的緩存中原本存儲(chǔ)第一數(shù)據(jù)的空間謄空,用以存儲(chǔ)其他數(shù)據(jù)。

另外,內(nèi)存控制器還需對(duì)訪問(wèn)請(qǐng)求進(jìn)行響應(yīng),所以在將第一數(shù)據(jù)發(fā)送至借用處理器后,還要指示借用處理器將第一數(shù)據(jù)發(fā)送至第二處理器,這樣,第二 處理器就獲得了第一處理器需要訪問(wèn)的第一數(shù)據(jù)。最后將第一數(shù)據(jù)存儲(chǔ)在第二處理器的緩存中。

需要說(shuō)明的是,本發(fā)明實(shí)施例提供的緩存分配方法不僅適用于:將第一處理器與第二處理器的路徑上各個(gè)處理器中的一個(gè)確定為借用處理器,還適用于:將第一處理器與借用處理器的路徑上各個(gè)處理器中的一個(gè)確定為再次借用處理器。

具體來(lái)講,上述實(shí)施例提出了第一處理器可以利用第一數(shù)據(jù)在借用處理器的緩存中的存儲(chǔ)位置,訪問(wèn)借用處理器的緩存,進(jìn)而獲取第一數(shù)據(jù)。因此,第一處理器需要向借用處理器發(fā)送數(shù)據(jù)訪問(wèn)請(qǐng)求,該訪問(wèn)請(qǐng)求用于訪問(wèn)第一數(shù)據(jù)。

在第一處理器與借用處理器之間存在多條路徑,每條路徑上都分布有多個(gè)處理器,第一處理器利用一條路徑將訪問(wèn)請(qǐng)求發(fā)送至借用處理器,同時(shí),第一處理器統(tǒng)計(jì)路徑上各個(gè)處理器的緩存利用率,并將緩存利用率攜帶在訪問(wèn)請(qǐng)求中,因此,借用處理器收到的訪問(wèn)請(qǐng)求還包括:第一處理器至借用器的路徑上各個(gè)處理器的緩存利用率。

借用處理器將借用處理器的緩存利用率與借用處理器至第一處理器的路徑上各個(gè)處理器的緩存利用率相比,從第一處理器至借用處理器的路徑上各個(gè)處理器中確定出比借用處理器的緩存利用率低的處理器,作為再次借用處理器。

具體地,如果第一處理器至借用處理器的路徑上各個(gè)處理器中,比借用處理器的緩存利用率低的處理器有一個(gè),則將該處理器作為再次借用處理器。如果第一處理器至借用處理器的路徑上各個(gè)處理器中,比借用處理器的緩存利用率低的處理器有多個(gè),則將多個(gè)處理器中緩存利用率最低的處理器中任一個(gè)作為再次借用處理器。

由于再次借用處理器的緩存利用率低于借用處理器的緩存利用率,所以為了充分利用多處理器系統(tǒng)的總緩存,借用處理器將第一數(shù)據(jù)發(fā)送至再次借用處 理器,利用再次借用處理器的緩存存儲(chǔ)第一數(shù)據(jù),將借用處理器的緩存中原本存儲(chǔ)第一數(shù)據(jù)的空間謄空,用以存儲(chǔ)其他數(shù)據(jù)。

另外,借用處理器還需對(duì)訪問(wèn)請(qǐng)求進(jìn)行響應(yīng),所以在將第一數(shù)據(jù)發(fā)送至再次借用處理器后,還要指示再次借用處理器將第一數(shù)據(jù)發(fā)送至第一處理器,這樣,第一處理器就獲得了第一處理器需要訪問(wèn)的第一數(shù)據(jù)。

請(qǐng)參考圖3,圖3為本發(fā)明實(shí)施例提供的一種數(shù)據(jù)訪問(wèn)方法的流程圖。該數(shù)據(jù)訪問(wèn)方法包括:

步驟31:當(dāng)?shù)谝惶幚砥髡?qǐng)求訪問(wèn)的第一數(shù)據(jù)未存儲(chǔ)在所述第一處理器的緩存中,且存儲(chǔ)在第二處理器的緩存中時(shí),所述第一處理器向所述第二處理器發(fā)送用于獲取所述第一數(shù)據(jù)的訪問(wèn)請(qǐng)求,所述訪問(wèn)請(qǐng)求包括所述第一處理器與所述第二處理器之間的路徑上的各個(gè)處理器的緩存利用率;

步驟32:所述第一處理器接收并存儲(chǔ)借用處理器發(fā)送的所述第一數(shù)據(jù),所述第一數(shù)據(jù)是所述第二處理器發(fā)送給所述借用處理器的;

其中,所述第一處理器、所述第二處理器和所述借用處理器屬于同一多處理器系統(tǒng),所述借用處理器為所述各個(gè)處理器中緩存利用率低于所述第二處理器的緩存利用率的處理器。

圖3所示的數(shù)據(jù)訪問(wèn)方法與圖2所示的緩存分配方法是基于相同的發(fā)明構(gòu)思提出的,圖3所示的數(shù)據(jù)訪問(wèn)方法是從第一處理器的角度提出的,圖2所示的緩存分配方法是從第二處理器的角度提出的。具體說(shuō)明請(qǐng)參考前文對(duì)緩存分配方法的說(shuō)明,在此就不再贅述。

同理,考慮到第一處理器可能再次訪問(wèn)第一數(shù)據(jù),為方便第一處理器訪問(wèn)第一數(shù)據(jù),在執(zhí)行完步驟32后,還可以執(zhí)行以下步驟:

所述第一處理器接收并存儲(chǔ)所述借用處理器發(fā)送的存儲(chǔ)信息,所述存儲(chǔ)信息表征所述第一數(shù)據(jù)在所述借用處理器中的存儲(chǔ)位置。

上述步驟與執(zhí)行完步驟23所執(zhí)行的步驟是基于相同的發(fā)明構(gòu)思提出的,上述步驟是從第一處理器的角度提出的,執(zhí)行完步驟23所執(zhí)行的步驟是從第 二處理器的角度提出的。具體說(shuō)明請(qǐng)參考前文對(duì)執(zhí)行完步驟23所執(zhí)行的步驟的說(shuō)明,在此就不再贅述。

本發(fā)明實(shí)施例中,借用處理器的緩存不僅可以被第二處理器借用,用于存儲(chǔ)第二處理器發(fā)送的第一數(shù)據(jù),還可以被第一處理器借用,用于存儲(chǔ)第一處理器中待被移動(dòng)到內(nèi)存控制器中的數(shù)據(jù)。即:

當(dāng)所述第一處理器的緩存中存儲(chǔ)的第二數(shù)據(jù)待被移動(dòng)到內(nèi)存控制器中時(shí),所述第一處理器將所述第二數(shù)據(jù)移動(dòng)至所述借用處理器。

具體來(lái)講,第二數(shù)據(jù)存儲(chǔ)在第一處理器的緩存中,當(dāng)?shù)谝惶幚砥鞯木彺嬷行枰鎯?chǔ)另外一個(gè)數(shù)據(jù)(例如稱為第三數(shù)據(jù))時(shí),可能第一處理器的緩存中沒(méi)有剩余的空間了,則第一處理器需要將第二數(shù)據(jù)移動(dòng)到內(nèi)存控制器中,用空出來(lái)的空間存放第三數(shù)據(jù),此時(shí),第一處理器將第二數(shù)據(jù)移動(dòng)至借用處理器中。當(dāng)然,第一處理器還可以將第二數(shù)據(jù)移動(dòng)至其他處理器中。

如果借用處理器的緩存利用率小于預(yù)定閾值,則第一處理器將第二數(shù)據(jù)移動(dòng)至借用處理器中,利用借用處理器的緩存存儲(chǔ)第二數(shù)據(jù),一方面將第一處理器的緩存中原本存儲(chǔ)第二數(shù)據(jù)的空間謄空,用以存儲(chǔ)其他數(shù)據(jù),另一方面,避免將第二數(shù)據(jù)存儲(chǔ)至內(nèi)存控制器后,仍需從內(nèi)存控制器中取出第二數(shù)據(jù)的麻煩。

如果借用處理器的緩存利用率大于預(yù)定閾值,則第一處理器從多處理器系統(tǒng)中確定一個(gè)更新借用處理器,將第二數(shù)據(jù)移動(dòng)至更新借用處理器中,利用更新借用處理器的緩存存儲(chǔ)第二數(shù)據(jù),一方面將第一處理器的緩存中原本存儲(chǔ)第二數(shù)據(jù)的空間謄空,用以存儲(chǔ)其他數(shù)據(jù),另一方面,避免將第二數(shù)據(jù)存儲(chǔ)至內(nèi)存控制器后,仍需從內(nèi)存控制器中取出第二數(shù)據(jù)的麻煩。

其中,第一處理器確定更新借用處理器的過(guò)程為:第一處理器將借用處理器的緩存利用率與多處理器系統(tǒng)中其他的處理器的緩存利用率相比,從多處理器系統(tǒng)中其他的處理器中確定出比借用處理器的緩存利用率低的處理器,作為更新借用處理器。

具體地,如果多處理器系統(tǒng)中其他的處理器中,比借用處理器的緩存利用率低的處理器有一個(gè),則將該處理器作為更新借用處理器。如果多處理器系統(tǒng)中其他的處理器中,比借用處理器的緩存利用率低的處理器有多個(gè),則將多個(gè)處理器中緩存利用率最低的處理器中任一個(gè)作為更新借用處理器。

本發(fā)明實(shí)施例中,當(dāng)所述第一處理器的緩存中存儲(chǔ)的第三數(shù)據(jù)的被訪問(wèn)頻率低于所述借用處理器的緩存中存儲(chǔ)的第四數(shù)據(jù)的被訪問(wèn)頻率時(shí),所述第一處理器將所述第三數(shù)據(jù)發(fā)送至所述借用處理器,且從所述借用處理器中讀取并存儲(chǔ)所述第四數(shù)據(jù)。

具體來(lái)講,為了減少訪問(wèn)數(shù)據(jù)的開(kāi)銷,可以將第一處理器中被訪問(wèn)頻率低的數(shù)據(jù)與借用處理器中被訪問(wèn)頻率高的數(shù)據(jù)交換。第一處理器將第一處理器的緩存中存儲(chǔ)的數(shù)據(jù)的被訪問(wèn)頻率與借用處理器的緩存中存儲(chǔ)的數(shù)據(jù)的被訪問(wèn)頻率相比,如果第一處理器的緩存中存儲(chǔ)的數(shù)據(jù)的被訪問(wèn)頻率高于借用處理器的緩存中存儲(chǔ)的數(shù)據(jù)的被訪問(wèn)頻率,則將第一處理器的緩存中存儲(chǔ)的數(shù)據(jù)與交換,這樣,第一處理器的緩存中存儲(chǔ)的數(shù)據(jù)都是被訪問(wèn)頻率較高的,增大了第一處理器直接從第一處理器的緩存中獲得需要訪問(wèn)的數(shù)據(jù)的概率,減少了第一處理器從借用處理器中獲得需要訪問(wèn)的數(shù)據(jù)的開(kāi)銷。

請(qǐng)參考圖4,圖4為本發(fā)明實(shí)施例提供的一種數(shù)據(jù)發(fā)送方法的流程圖。該數(shù)據(jù)發(fā)送方法包括:

步驟41:借用處理器將第二處理器發(fā)送的第一數(shù)據(jù)存儲(chǔ)至所述借用處理器的緩存中,其中,所述第一數(shù)據(jù)未存儲(chǔ)在第一處理器的緩存中,且存儲(chǔ)在所述第二處理器的緩存中;

步驟42:所述借用處理器向所述第一處理器發(fā)送所述第一數(shù)據(jù),所述第一數(shù)據(jù)是所述第二處理器發(fā)送給所述借用處理器的;

其中,所述第一處理器、所述第二處理器和所述借用處理器屬于同一多處理器系統(tǒng),所述借用處理器為所述各個(gè)處理器中緩存利用率低于所述第二處理器的緩存利用率的處理器。

圖4所示的數(shù)據(jù)發(fā)送方法與圖2所示的緩存分配方法以及圖3所示的數(shù)據(jù)訪問(wèn)方法是基于相同的發(fā)明構(gòu)思提出的,圖4所示的數(shù)據(jù)發(fā)送方法是從借用處理器的角度提出的,圖2所示的緩存分配方法是從第二處理器的角度提出的,圖3所示的數(shù)據(jù)訪問(wèn)方法是從第一處理器的角度提出的。具體說(shuō)明請(qǐng)參考前文對(duì)緩存分配方法的說(shuō)明,在此就不再贅述。

同理,考慮到第一處理器可能再次訪問(wèn)第一數(shù)據(jù),為方便第一處理器訪問(wèn)第一數(shù)據(jù),在執(zhí)行完步驟42后,還可以執(zhí)行以下步驟:

所述借用處理器根據(jù)向所述第一處理器發(fā)送所述第一數(shù)據(jù)的存儲(chǔ)信息,所述存儲(chǔ)信息表征所述第一數(shù)據(jù)在所述借用處理器中的存儲(chǔ)位置。

上述步驟與執(zhí)行完步驟23所執(zhí)行的步驟以及執(zhí)行完步驟32所執(zhí)行的步驟是基于相同的發(fā)明構(gòu)思提出的,上述步驟是從借用處理器的角度提出的,執(zhí)行完步驟23所執(zhí)行的步驟是從第二處理器的角度提出的,執(zhí)行完步驟32所執(zhí)行的步驟是從第一處理器的角度提出的。具體說(shuō)明請(qǐng)參考前文對(duì)執(zhí)行完步驟23所執(zhí)行的步驟的說(shuō)明,在此就不再贅述。

本發(fā)明實(shí)施例中,當(dāng)所述借用處理器的緩存中存儲(chǔ)的所述第一數(shù)據(jù)的被訪問(wèn)頻率高于第一預(yù)定閾值時(shí),所述借用處理器將所述第一數(shù)據(jù)發(fā)送至所述第一處理器或第三處理器,所述第三處理器與所述第一處理器之間的物理距離小于所述借用處理器與所述第一處理器之間的物理距離。

具體來(lái)講,為了減少訪問(wèn)數(shù)據(jù)的開(kāi)銷,如果借用處理器的緩存中存儲(chǔ)的第一數(shù)據(jù)的被訪問(wèn)頻率高于第一預(yù)定閾值,則說(shuō)明第一處理器非常頻繁地從借用處理器的緩存中訪問(wèn)第一數(shù)據(jù),此時(shí),借用處理器將第一數(shù)據(jù)發(fā)送至第一處理器,或者是發(fā)送至距離第一處理器更近的處理器,這樣,第一處理器直接從第一處理器的緩存中獲得需要訪問(wèn)的第一數(shù)據(jù),或者從距離更近的處理器的緩存中獲得需要訪問(wèn)的第一數(shù)據(jù),減少了第一處理器從借用處理器中獲得需要訪問(wèn)的數(shù)據(jù)的開(kāi)銷和時(shí)延。

本發(fā)明實(shí)施例中,當(dāng)所述借用處理器的緩存利用率高于第二預(yù)定閾值時(shí), 所述借用處理器將所述第一數(shù)據(jù)發(fā)送至所述第二處理器或所述第一處理器。

具體來(lái)講,如果借用處理器的緩存利用率提高到第二預(yù)定閾值,則借用處理器可以回收已借給其他處理器的緩存。因?yàn)槿绻栌锰幚砥鞯木彺婢杞o其他處理器使用,則借用處理器沒(méi)有存儲(chǔ)空間存儲(chǔ)自身頻繁訪問(wèn)的數(shù)據(jù),借用處理器還需向其他處理器借用緩存,導(dǎo)致借用處理器訪問(wèn)數(shù)據(jù)的開(kāi)銷大。

借用處理器回收已借給其他處理器的緩存的方式是:將其他處理器發(fā)送的數(shù)據(jù)返回至發(fā)送方或目的方。以借用處理器存儲(chǔ)第二處理器發(fā)送的第一數(shù)據(jù)為例,借用處理器將第一數(shù)據(jù)發(fā)送至第二處理器或者發(fā)送至第一處理器。

以下結(jié)合附圖介紹本發(fā)明實(shí)施例中的裝置。

請(qǐng)參見(jiàn)圖5,基于同一發(fā)明構(gòu)思,本發(fā)明實(shí)施例提供一種處理器,所述處理器可以是如前所述的第二處理器。所述處理器可以包括接收模塊501、確定模塊502、發(fā)送模塊503和指示模塊504。

接收模塊501,用于接收第一處理器發(fā)送的用于獲取第一數(shù)據(jù)的訪問(wèn)請(qǐng)求,其中,所述第一數(shù)據(jù)未存儲(chǔ)在所述第一處理器的緩存中,且存儲(chǔ)在所述處理器的緩存中,所述訪問(wèn)請(qǐng)求包括所述第一處理器與所述處理器之間的路徑上的各個(gè)處理器的緩存利用率;

確定模塊502,用于將所述各個(gè)處理器中緩存利用率低于所述第二處理器的緩存利用率的處理器確定為借用處理器;

發(fā)送模塊503,用于將所述第一數(shù)據(jù)發(fā)送至借用處理器的緩存中;

指示模塊504,用于指示所述借用處理器向所述第一處理器發(fā)送所述第一數(shù)據(jù);

其中,所述第一處理器、所述處理器和所述借用處理器屬于同一多處理器系統(tǒng)。

可選的,所述指示模塊504還用于:

指示所述借用處理器向所述第一處理器發(fā)送所述第一數(shù)據(jù)的存儲(chǔ)信息,所述存儲(chǔ)信息表征所述第一數(shù)據(jù)在所述借用處理器中的存儲(chǔ)位置。

請(qǐng)參見(jiàn)圖6,基于同一發(fā)明構(gòu)思,本發(fā)明實(shí)施例提供另一種處理器,所述處理器可以是如前所述的第一處理器。所述處理器可以包括發(fā)送模塊601和接收模塊602。

發(fā)送模塊601,用于當(dāng)所述處理器請(qǐng)求訪問(wèn)的第一數(shù)據(jù)未存儲(chǔ)在所述處理器的緩存中,且存儲(chǔ)在第二處理器的緩存中時(shí),所述處理器向所述第二處理器發(fā)送用于獲取所述第一數(shù)據(jù)的訪問(wèn)請(qǐng)求,所述訪問(wèn)請(qǐng)求包括所述處理器與所述第二處理器之間的路徑上的各個(gè)處理器的緩存利用率;

接收模塊602,用于接收并存儲(chǔ)借用處理器發(fā)送的所述第一數(shù)據(jù),所述第一數(shù)據(jù)是所述第二處理器發(fā)送給所述借用處理器的;

其中,所述處理器、所述第二處理器和所述借用處理器屬于同一多處理器系統(tǒng),所述借用處理器為所述各個(gè)處理器中緩存利用率低于所述第二處理器的緩存利用率的處理器。

可選的,所述接收模塊602還用于:

接收并存儲(chǔ)所述借用處理器發(fā)送的存儲(chǔ)信息,所述存儲(chǔ)信息表征所述第一數(shù)據(jù)在所述借用處理器中的存儲(chǔ)位置。

可選的,所述處理器還包括:

移動(dòng)模塊,用于當(dāng)所述處理器的緩存中存儲(chǔ)的第二數(shù)據(jù)待被移動(dòng)到內(nèi)存控制器中時(shí),將所述第二數(shù)據(jù)移動(dòng)至所述借用處理器。

可選的,所述發(fā)送模塊601還用于:

當(dāng)所述處理器的緩存中存儲(chǔ)的第三數(shù)據(jù)的被訪問(wèn)頻率低于所述借用處理器的緩存中存儲(chǔ)的第四數(shù)據(jù)的被訪問(wèn)頻率時(shí),將所述第三數(shù)據(jù)發(fā)送至所述借用處理器,且從所述借用處理器中讀取并存儲(chǔ)所述第四數(shù)據(jù)。

請(qǐng)參見(jiàn)圖7,基于同一發(fā)明構(gòu)思,本發(fā)明實(shí)施例提供另一種處理器,所述處理器可以是如前所述的借用處理器。所述處理器可以包括存儲(chǔ)模塊701和發(fā)送模塊702。

存儲(chǔ)模塊701,用于將第二處理器發(fā)送的第一數(shù)據(jù)存儲(chǔ)至所述處理器的緩 存中,其中,所述第一數(shù)據(jù)未存儲(chǔ)在第一處理器的緩存中,且存儲(chǔ)在所述第二處理器的緩存中;

發(fā)送模塊702,用于向所述第一處理器發(fā)送所述第一數(shù)據(jù),所述第一數(shù)據(jù)是所述第二處理器發(fā)送給所述借用處理器的;

其中,所述第一處理器、所述第二處理器和所述處理器屬于同一多處理器系統(tǒng),所述處理器為所述各個(gè)處理器中緩存利用率低于所述第二處理器的緩存利用率的處理器。

可選的,所述發(fā)送模塊702還用于:

向所述第一處理器發(fā)送所述第一數(shù)據(jù)的存儲(chǔ)信息,所述存儲(chǔ)信息表征所述第一數(shù)據(jù)在所述處理器中的存儲(chǔ)位置。

可選的,所述發(fā)送模塊702還用于:

當(dāng)所述處理器的緩存中存儲(chǔ)的所述第一數(shù)據(jù)的被訪問(wèn)頻率高于第一預(yù)定閾值時(shí),所述處理器將所述第一數(shù)據(jù)發(fā)送至所述第一處理器或第三處理器,所述第三處理器與所述第一處理器之間的物理距離小于所述處理器與所述第一處理器之間的物理距離。

可選的,所述發(fā)送模塊702還用于:

當(dāng)所述處理器的緩存利用率高于第二預(yù)定閾值時(shí),將所述第一數(shù)據(jù)發(fā)送至所述第二處理器或所述第一處理器。

請(qǐng)參見(jiàn)圖8,基于同一發(fā)明構(gòu)思,本發(fā)明實(shí)施例還提供一種多處理器系統(tǒng),所述多處理器系統(tǒng)中可以包括第一處理器801、第二處理器802和借用處理器803。

所述第一處理器801用于:當(dāng)所述第一處理器請(qǐng)求訪問(wèn)的第一數(shù)據(jù)未存儲(chǔ)在所述第一處理器的緩存中,且存儲(chǔ)在第二處理器的緩存中時(shí),向所述第二處理器發(fā)送用于獲取所述第一數(shù)據(jù)的訪問(wèn)請(qǐng)求,所述訪問(wèn)請(qǐng)求包括所述第一處理器與所述第二處理器之間的路徑上的各個(gè)處理器的緩存利用率;

所述第二處理器802用于:接收第一處理器發(fā)送的用于獲取第一數(shù)據(jù)的訪 問(wèn)請(qǐng)求;將所述各個(gè)處理器中緩存利用率低于所述第二處理器的緩存利用率的處理器確定為借用處理器;將所述第一數(shù)據(jù)發(fā)送至借用處理器的緩存中,并指示所述借用處理器向所述第一處理器發(fā)送所述第一數(shù)據(jù)。

可選的,所述第二處理器802還用于:

指示所述借用處理器向所述第一處理器發(fā)送所述第一數(shù)據(jù)的存儲(chǔ)信息,所述存儲(chǔ)信息表征所述第一數(shù)據(jù)在所述借用處理器中的存儲(chǔ)位置;

所述第一處理器801用于:接收并存儲(chǔ)所述借用處理器發(fā)送的所述存儲(chǔ)信息。

圖8所示的多處理器系統(tǒng)的具體架構(gòu)可參考圖1,例如,第一處理器801和第二處理器802可以是通過(guò)片上網(wǎng)絡(luò)進(jìn)行通信,以及第一處理器801與第二處理器802還可以有自己的緩存等,只是在圖8中未示出。

本發(fā)明實(shí)施例中,裝置是用來(lái)實(shí)現(xiàn)圖2至圖4流程中的方法的,凡是在裝置部分沒(méi)有詳細(xì)介紹的內(nèi)容,均可參照相應(yīng)的方法流程中的描述。

本發(fā)明實(shí)施例中,當(dāng)?shù)谝惶幚砥髡?qǐng)求訪問(wèn)的第一數(shù)據(jù)未存儲(chǔ)在自身緩存中,且存儲(chǔ)在第二處理器的緩存中時(shí),首先,第一處理器向第二處理器發(fā)送用于獲取第一數(shù)據(jù)的訪問(wèn)請(qǐng)求,接著,第二處理器將第一數(shù)據(jù)發(fā)送至借用處理器的緩存中,并指示借用處理器向第一處理器發(fā)送第一數(shù)據(jù),由于借用處理器為多處理器系統(tǒng)中緩存利用率低于第二處理器的處理器,利用借用處理器的緩存存儲(chǔ)第一數(shù)據(jù)。將第二處理器的緩存中原本存儲(chǔ)第一數(shù)據(jù)的空間謄空,用以存儲(chǔ)其他數(shù)據(jù),所以提高了多處理器系統(tǒng)的總緩存的利用率。

所屬領(lǐng)域的技術(shù)人員可以清楚地了解到,為描述的方便和簡(jiǎn)潔,僅以上述各功能單元的劃分進(jìn)行舉例說(shuō)明,實(shí)際應(yīng)用中,可以根據(jù)需要而將上述功能分配由不同的功能單元完成,即將裝置的內(nèi)部結(jié)構(gòu)劃分成不同的功能單元,以完成以上描述的全部或者部分功能。上述描述的系統(tǒng),裝置和單元的具體工作過(guò)程,可以參考前述方法實(shí)施例中的對(duì)應(yīng)過(guò)程,在此不再贅述。

在本申請(qǐng)所提供的幾個(gè)實(shí)施例中,應(yīng)該理解到,所揭露的系統(tǒng),裝置和方 法,可以通過(guò)其它的方式實(shí)現(xiàn)。例如,以上所描述的裝置實(shí)施例僅僅是示意性的,例如,所述單元或單元的劃分,僅僅為一種邏輯功能劃分,實(shí)際實(shí)現(xiàn)時(shí)可以有另外的劃分方式,例如多個(gè)單元或組件可以結(jié)合或者可以集成到另一個(gè)系統(tǒng),或一些特征可以忽略,或不執(zhí)行。另一點(diǎn),所顯示或討論的相互之間的耦合或直接耦合或通信連接可以是通過(guò)一些接口,裝置或單元的間接耦合或通信連接,可以是電性,機(jī)械或其它的形式。

所述作為分離部件說(shuō)明的單元可以是或者也可以不是物理上分開(kāi)的,作為單元顯示的部件可以是或者也可以不是物理單元,即可以位于一個(gè)地方,或者也可以分布到多個(gè)網(wǎng)絡(luò)單元上。可以根據(jù)實(shí)際的需要選擇其中的部分或者全部單元來(lái)實(shí)現(xiàn)本實(shí)施例方案的目的。

另外,在本申請(qǐng)各個(gè)實(shí)施例中的各功能單元可以集成在一個(gè)處理單元中,也可以是各個(gè)單元單獨(dú)物理存在,也可以兩個(gè)或兩個(gè)以上單元集成在一個(gè)單元中。上述集成的單元既可以采用硬件的形式實(shí)現(xiàn),也可以采用軟件功能單元的形式實(shí)現(xiàn)。

所述集成的單元如果以軟件功能單元的形式實(shí)現(xiàn)并作為獨(dú)立的產(chǎn)品銷售或使用時(shí),可以存儲(chǔ)在一個(gè)計(jì)算機(jī)可讀取存儲(chǔ)介質(zhì)中?;谶@樣的理解,本申請(qǐng)的技術(shù)方案本質(zhì)上或者說(shuō)對(duì)現(xiàn)有技術(shù)做出貢獻(xiàn)的部分或者該技術(shù)方案的全部或部分可以以軟件產(chǎn)品的形式體現(xiàn)出來(lái),該計(jì)算機(jī)軟件產(chǎn)品存儲(chǔ)在一個(gè)存儲(chǔ)介質(zhì)中,包括若干指令用以使得一臺(tái)計(jì)算機(jī)設(shè)備(可以是個(gè)人計(jì)算機(jī),服務(wù)器,或者網(wǎng)絡(luò)設(shè)備等)或processor(處理器)執(zhí)行本申請(qǐng)各個(gè)實(shí)施例所述方法的全部或部分步驟。而前述的存儲(chǔ)介質(zhì)包括:U盤(pán)、移動(dòng)硬盤(pán)、ROM(Read-Only Memory,只讀存儲(chǔ)器)、RAM(Random Access Memory,隨機(jī)存取存儲(chǔ)器)、磁碟或者光盤(pán)等各種可以存儲(chǔ)程序代碼的介質(zhì)。

以上所述,以上實(shí)施例僅用以對(duì)本申請(qǐng)的技術(shù)方案進(jìn)行了詳細(xì)介紹,但以上實(shí)施例的說(shuō)明只是用于幫助理解本發(fā)明的方法及其核心思想,不應(yīng)理解為對(duì)本發(fā)明的限制。本技術(shù)領(lǐng)域的技術(shù)人員在本發(fā)明揭露的技術(shù)范圍內(nèi),可輕易想 到的變化或替換,都應(yīng)涵蓋在本發(fā)明的保護(hù)范圍之內(nèi)。

當(dāng)前第1頁(yè)1 2 3 
網(wǎng)友詢問(wèn)留言 已有0條留言
  • 還沒(méi)有人留言評(píng)論。精彩留言會(huì)獲得點(diǎn)贊!
1
巍山| 柳河县| 兴城市| 芒康县| 黄龙县| 简阳市| 安福县| 田林县| 晋江市| 杭锦后旗| 阳朔县| 三明市| 宁强县| 商水县| 延寿县| 永登县| 云龙县| 晋中市| 伊金霍洛旗| 济源市| 光泽县| 乌拉特后旗| 黑龙江省| 兰考县| 义马市| 临沂市| 浠水县| 泰宁县| 怀化市| 永济市| 晴隆县| 伊金霍洛旗| 梁山县| 伊宁市| 兰州市| 叙永县| 札达县| 微山县| 吴川市| 苍南县| 沭阳县|