本發(fā)明涉及計(jì)算機(jī)技術(shù)領(lǐng)域,尤其涉及指令塊處理方法及裝置。
背景技術(shù):
中央處理單元(central processing unit,CPU)可以通過超大規(guī)模集成電路(very-large-scale integration,VLSI)實(shí)現(xiàn)。CPU在計(jì)算機(jī)中可以執(zhí)行運(yùn)算和控制功能。CPU可以用于解析計(jì)算機(jī)指令以及處理計(jì)算機(jī)中的數(shù)據(jù)。為了提高CPU的處理性能,通常采用高速緩存(cache)機(jī)制。包含cache的CPU通過總線與存儲(chǔ)器耦合。CPU需要獲取數(shù)據(jù)時(shí),CPU的處理核可以先查找高速緩存。當(dāng)高速緩存沒有命中(cache miss)時(shí)CPU的處理核再查找存儲(chǔ)器。在cache miss出現(xiàn)的頻率較低的情況下,cache機(jī)制可以為CPU提供較高的處理性能。然而,有的場(chǎng)景中,例如網(wǎng)絡(luò)通信場(chǎng)景,cache miss出現(xiàn)的頻率較高。上述場(chǎng)景中,CPU的處理性能較低。
舉例來說,對(duì)于網(wǎng)絡(luò)裝置(例如,路由器,交換機(jī),存儲(chǔ)設(shè)備、服務(wù)器或者無線設(shè)備),要求使用高性能的處理器。例如使用網(wǎng)絡(luò)處理器。網(wǎng)絡(luò)處理器可以采用眾核架構(gòu)。每個(gè)核可以支持多硬件線程。例如,使用網(wǎng)絡(luò)裝置實(shí)現(xiàn)報(bào)文轉(zhuǎn)發(fā)業(yè)務(wù)。所述報(bào)文轉(zhuǎn)發(fā)業(yè)務(wù)可能需要用到多個(gè)指令塊(instruction block)。每個(gè)指令塊可以是實(shí)現(xiàn)功能的指令序列。例如,指令塊可以是微碼函數(shù)或者C語言函數(shù)。指令塊存儲(chǔ)在存儲(chǔ)器中。處理器可以通過訪問存儲(chǔ)器獲得指令塊。具體實(shí)現(xiàn)時(shí),所述多個(gè)指令塊可以存儲(chǔ)在一個(gè)存儲(chǔ)器中。所述處理器可以通過串行的方式訪問所述存儲(chǔ)器從而獲取所述多個(gè)指令塊。為提高處理器的處理性能,也可以將所述多個(gè)指令塊保存在多個(gè)存儲(chǔ)器中。每個(gè)存儲(chǔ)器都保存所述多個(gè)指令塊。所述處理器可以通過并行的方式訪問所述多個(gè)存儲(chǔ)器從而獲取所述 多個(gè)指令塊。
上述技術(shù)方案存在以下問題:為了使得處理器能夠?qū)崿F(xiàn)一定的處理性能,增加了指令對(duì)存儲(chǔ)空間的占用。
技術(shù)實(shí)現(xiàn)要素:
有鑒于此,本發(fā)明實(shí)施例提供了一種指令塊處理方法及裝置,在處理器能夠?qū)崿F(xiàn)一定的處理性能的情況下,減少了指令對(duì)存儲(chǔ)空間的占用。
本發(fā)明實(shí)施例提供的技術(shù)方案如下。
第一方面,提供了一種指令塊處理方法,包括:
處理器確定X個(gè)指令塊中的第一指令塊,所述第一指令塊被執(zhí)行讀操作的頻率大于所述X個(gè)指令塊中其他指令塊中的每個(gè)指令塊被執(zhí)行讀操作的頻率,所述X個(gè)指令塊被保存在第一存儲(chǔ)器集合中的N個(gè)存儲(chǔ)器的每個(gè)存儲(chǔ)器中,N是正整數(shù),X是大于1的整數(shù);以及
所述處理器將所述第一指令塊保存在第二存儲(chǔ)器集合中的M個(gè)存儲(chǔ)器的每個(gè)存儲(chǔ)器中,M是正整數(shù),所述第一存儲(chǔ)器集合和所述第二存儲(chǔ)器集合的交集為空集合,其中,所述M個(gè)存儲(chǔ)器的帶寬大于所述N個(gè)存儲(chǔ)器的帶寬。
在第一方面的第一種可能的實(shí)現(xiàn)方式中,所述方法還包括:
所述處理器將所述第一指令塊保存在所述第二存儲(chǔ)器集合中的所述M個(gè)存儲(chǔ)器的每個(gè)存儲(chǔ)器中具體包括:
所述處理器在所述N個(gè)存儲(chǔ)器中所述第一存儲(chǔ)器的使用情況大于或等于第一閾值時(shí),將所述第一指令塊保存在所述第二存儲(chǔ)器集合中的所述M個(gè)存儲(chǔ)器的每個(gè)存儲(chǔ)器中,所述第一閾值大于0。
結(jié)合第一方面的第一種可能的實(shí)現(xiàn)方式,第一方面的第二種可能的實(shí) 現(xiàn)方式中,所述方法還包括:
所述處理器在所述N個(gè)存儲(chǔ)器中所述第一存儲(chǔ)器的使用情況大于或等于第一閾值時(shí),將所述第一指令塊保存在所述第二存儲(chǔ)器集合中的所述M個(gè)存儲(chǔ)器的每個(gè)存儲(chǔ)器中具體包括:
所述處理器在所述N個(gè)存儲(chǔ)器中所述第一存儲(chǔ)器的使用情況大于或等于所述第一閾值以及所述M個(gè)存儲(chǔ)器中第二存儲(chǔ)器的使用情況小于第二閾值時(shí),將所述第一指令塊保存在所述第二存儲(chǔ)器集合中的所述M個(gè)存儲(chǔ)器的每個(gè)存儲(chǔ)器中,所述第二閾值大于0。
結(jié)合第一方面的第一種可能的實(shí)現(xiàn)方式,第一方面的第三種可能的實(shí)現(xiàn)方式中,在所述處理器將所述第一指令塊保存在所述第二存儲(chǔ)器集合中的所述M個(gè)存儲(chǔ)器的每個(gè)存儲(chǔ)器中之前,所述方法還包括:
所述處理器確定Y個(gè)指令塊中的第二指令塊,所述第二指令塊被執(zhí)行讀操作的頻率小于所述Y個(gè)指令塊中其他指令塊中的每個(gè)指令塊被執(zhí)行讀操作的頻率,所述Y個(gè)指令塊被保存在所述第二存儲(chǔ)器集合中的所述M個(gè)存儲(chǔ)器的每個(gè)存儲(chǔ)器中,Y為大于1的整數(shù);以及
所述處理器在所述M個(gè)存儲(chǔ)器中第二存儲(chǔ)器的使用情況大于或等于第二閾值時(shí),將所述第二指令塊保存在所述第一存儲(chǔ)器集合中的所述N個(gè)存儲(chǔ)器的每個(gè)存儲(chǔ)器中,所述第二閾值大于0。
結(jié)合第一方面,或第一方面的上述任意一種可能的實(shí)現(xiàn)方式,第一方面的第四種可能的實(shí)現(xiàn)方式中,在所述處理器將所述第一指令塊保存在所述第二存儲(chǔ)器集合中的所述M個(gè)存儲(chǔ)器的每個(gè)存儲(chǔ)器中之后,所述方法還包括:
所述處理器刪除所述N個(gè)存儲(chǔ)器中每個(gè)存儲(chǔ)器保存的所述第一指令 塊。
結(jié)合上述第一方面的第三種可能的實(shí)現(xiàn)方式,第一方面的第五種可能的實(shí)現(xiàn)方式中,在所述處理器將所述第二指令塊保存在所述第一存儲(chǔ)器集合中的所述N個(gè)存儲(chǔ)器的每個(gè)存儲(chǔ)器中之后,所述方法還包括:
所述處理器刪除所述M個(gè)存儲(chǔ)器中每個(gè)存儲(chǔ)器保存的所述第二指令塊。
結(jié)合第一方面,或第一方面的上述任意一種可能的實(shí)現(xiàn)方式,第一方面的第六種可能的實(shí)現(xiàn)方式中,所述X個(gè)指令塊中每個(gè)指令塊包含計(jì)數(shù)指令,所述處理器確定所述X個(gè)指令塊中的所述第一指令塊之前,所述方法還包括:
所述處理器通過執(zhí)行所述X個(gè)指令塊中每個(gè)指令塊中包含的所述計(jì)數(shù)指令確定所述X個(gè)指令塊中每個(gè)指令塊被執(zhí)行讀操作的數(shù)量;以及
所述處理器根據(jù)所述X個(gè)指令塊中每個(gè)指令塊被執(zhí)行讀操作的數(shù)量確定所述X個(gè)指令塊中每個(gè)指令塊被執(zhí)行讀操作的頻率。
第二方面,提供了一種處理器,包括:
第一確定單元,用于確定X個(gè)指令塊中的第一指令塊,所述第一指令塊被執(zhí)行讀操作的頻率大于所述X個(gè)指令塊中其他指令塊中的每個(gè)指令塊被執(zhí)行讀操作的頻率,所述X個(gè)指令塊被保存在第一存儲(chǔ)器集合中的N個(gè)存儲(chǔ)器的每個(gè)存儲(chǔ)器中,N是正整數(shù),X是大于1的整數(shù);以及
執(zhí)行單元,用于將所述第一確定單元確定的所述第一指令塊保存在第二存儲(chǔ)器集合中的M個(gè)存儲(chǔ)器的每個(gè)存儲(chǔ)器中,M是正整數(shù),所述第一存儲(chǔ)器集合和所述第二存儲(chǔ)器集合的交集為空集合,其中,所述M個(gè)存儲(chǔ)器的帶寬大于所述N個(gè)存儲(chǔ)器的帶寬。
在第二方面的第一種可能的實(shí)現(xiàn)方式中,所述執(zhí)行單元具體用于:
在所述N個(gè)存儲(chǔ)器中所述第一存儲(chǔ)器的使用情況大于或等于第一閾值時(shí),將所述第一指令塊保存在所述第二存儲(chǔ)器集合中的所述M個(gè)存儲(chǔ)器的每個(gè)存儲(chǔ)器中,所述第一閾值大于0。
結(jié)合第二方面的第一種可能的實(shí)現(xiàn)方式,第二方面的第二種可能的實(shí)現(xiàn)方式中,所述執(zhí)行單元具體用于:
在所述N個(gè)存儲(chǔ)器中所述第一存儲(chǔ)器的使用情況大于或等于所述第一閾值以及所述M個(gè)存儲(chǔ)器中第二存儲(chǔ)器的使用情況小于第二閾值時(shí),將所述第一指令塊保存在所述第二存儲(chǔ)器集合中的所述M個(gè)存儲(chǔ)器的每個(gè)存儲(chǔ)器中,所述第二閾值大于0。
結(jié)合第二方面的第一種可能的實(shí)現(xiàn)方式,第二方面的第三種可能的實(shí)現(xiàn)方式中,所述處理器還包括:
第二確定單元,用于在所述執(zhí)行單元將所述第一指令塊保存在所述第二存儲(chǔ)器集合中的所述M個(gè)存儲(chǔ)器的每個(gè)存儲(chǔ)器中之前,確定Y個(gè)指令塊中的第二指令塊,所述第二指令塊被執(zhí)行讀操作的頻率小于所述Y個(gè)指令塊中其他指令塊中的每個(gè)指令塊被執(zhí)行讀操作的頻率,所述Y個(gè)指令塊被保存在所述第二存儲(chǔ)器集合中的所述M個(gè)存儲(chǔ)器的每個(gè)存儲(chǔ)器中,Y為大于1的整數(shù);
所述執(zhí)行單元,還用于在所述M個(gè)存儲(chǔ)器中第二存儲(chǔ)器的使用情況大于或等于第二閾值時(shí),將所述第二確定單元確定的所述第二指令塊保存在所述第一存儲(chǔ)器集合中的所述N個(gè)存儲(chǔ)器的每個(gè)存儲(chǔ)器中,所述第二閾值大于0。
結(jié)合第二方面,或第二方面的上述任意一種可能的實(shí)現(xiàn)方式,第二方 面的第四種可能的實(shí)現(xiàn)方式中,所述處理器還包括刪除單元,所述刪除單元用于在所述執(zhí)行單元將所述第一指令塊保存在所述第二存儲(chǔ)器集合中的所述M個(gè)存儲(chǔ)器的每個(gè)存儲(chǔ)器中之后,刪除所述N個(gè)存儲(chǔ)器中每個(gè)存儲(chǔ)器保存的所述第一指令塊。
結(jié)合第二方面的第三種可能的實(shí)現(xiàn)方式,第二方面的第五種可能的實(shí)現(xiàn)方式中,所述處理器還包括刪除單元,所述刪除單元用于在所述執(zhí)行單元將所述第二指令塊保存在所述第一存儲(chǔ)器集合中的所述N個(gè)存儲(chǔ)器的每個(gè)存儲(chǔ)器中之后,刪除所述M個(gè)存儲(chǔ)器中每個(gè)存儲(chǔ)器保存的所述第二指令塊。
結(jié)合第二方面,或第二方面的上述任意一種可能的實(shí)現(xiàn)方式,第二方面的第六種可能的實(shí)現(xiàn)方式中,所述X個(gè)指令塊中每個(gè)指令塊包含計(jì)數(shù)指令,所述處理器還包括第三確定單元,所述第三確定單元用于在所述第一確定單元確定所述X個(gè)指令塊中的所述第一指令塊之前,通過執(zhí)行所述X個(gè)指令塊中每個(gè)指令塊中包含的所述計(jì)數(shù)指令確定所述X個(gè)指令塊中每個(gè)指令塊被執(zhí)行讀操作的數(shù)量;以及
根據(jù)所述X個(gè)指令塊中每個(gè)指令塊被執(zhí)行讀操作的數(shù)量確定所述X個(gè)指令塊中每個(gè)指令塊被執(zhí)行讀操作的頻率。
上述技術(shù)方案中,處理器將第一存儲(chǔ)器集合的存儲(chǔ)器中被執(zhí)行讀操作的頻率最高的指令塊保存到比所述第一存儲(chǔ)器集合中的N個(gè)存儲(chǔ)器具有更高帶寬的第二存儲(chǔ)器集合的M個(gè)存儲(chǔ)器中。從而,在處理器能夠?qū)崿F(xiàn)一定的處理性能的情況下,減少了指令對(duì)存儲(chǔ)空間的占用。
附圖說明
為了更清楚地說明本發(fā)明實(shí)施例或現(xiàn)有技術(shù)中的方案,下面將對(duì)實(shí)施例中 所需要使用的附圖作一簡(jiǎn)單地介紹。顯而易見地,下面描述中的附圖是本發(fā)明的一些實(shí)施例。對(duì)于本領(lǐng)域普通技術(shù)人員而言,在不付出創(chuàng)造性勞動(dòng)的前提下,還可以根據(jù)這些附圖獲得其他的附圖。
圖1為本發(fā)明實(shí)施例提供的指令塊處理方法的流程示意圖;
圖2為本發(fā)明實(shí)施例中搬移指令塊的示意圖;
圖3為本發(fā)明實(shí)施例提供的處理器的結(jié)構(gòu)示意圖;
圖4為本發(fā)明實(shí)施例提供的處理器的硬件結(jié)構(gòu)示意圖;
圖5為本發(fā)明實(shí)施例的處理器內(nèi)部的功能模塊的交互示意圖。
具體實(shí)施方式
本發(fā)明實(shí)施例提供了指令塊處理方法及裝置,用于減少指令對(duì)存儲(chǔ)空間的占用。
下面通過具體實(shí)施例,分別進(jìn)行詳細(xì)的說明。
為使得本發(fā)明的目的、特征、優(yōu)點(diǎn)能更加的明顯和易懂,下面將結(jié)合本發(fā)明實(shí)施例中的附圖,對(duì)本發(fā)明實(shí)施例中的技術(shù)方案進(jìn)行清楚地描述。顯然下面所描述的實(shí)施例僅僅是本發(fā)明一部分實(shí)施例,而非全部的實(shí)施例?;诒景l(fā)明中的實(shí)施例,本領(lǐng)域普通技術(shù)人員在沒有做出創(chuàng)造性勞動(dòng)的前提下可以獲得其他實(shí)施例。
本申請(qǐng)的說明書和權(quán)利要求書及附圖中的術(shù)語“第一”、“第二”、“第三”和“第四”等是用于區(qū)別不同對(duì)象,而不是用于限定特定順序。此外,術(shù)語“包括”和“具有”不是排他的。例如,包括了已提及的步驟的方法,還可以包括沒有提及的步驟。包含了已提及的單元的裝置,還可以包括沒有提及的單元。
本申請(qǐng)中的存儲(chǔ)器的帶寬是指處理器能夠從所述存儲(chǔ)器讀出的數(shù)據(jù)的速率。所述數(shù)據(jù)可以是指令塊。當(dāng)所述存儲(chǔ)器是只有一個(gè)存儲(chǔ)器時(shí),所述存儲(chǔ)器 的帶寬等于所述只有一個(gè)存儲(chǔ)器的帶寬。當(dāng)所述存儲(chǔ)器是多個(gè)存儲(chǔ)器時(shí),所述存儲(chǔ)器的帶寬等于所述多個(gè)存儲(chǔ)器分別對(duì)應(yīng)的多個(gè)帶寬的和。
圖1為本發(fā)明實(shí)施例提供的指令塊處理方法的流程示意圖。如圖1所示,該方法包括如下步驟。
S102,處理器確定X個(gè)指令塊中的第一指令塊,所述第一指令塊被執(zhí)行讀操作的頻率大于所述X個(gè)指令塊中其他指令塊中的每個(gè)指令塊被執(zhí)行讀操作的頻率,所述X個(gè)指令塊被保存在第一存儲(chǔ)器集合中的N個(gè)存儲(chǔ)器的每個(gè)存儲(chǔ)器中,N是正整數(shù),X是大于1的整數(shù)。
舉例說明,所述處理器通過數(shù)據(jù)總線連接所述存儲(chǔ)器。所述存儲(chǔ)器存儲(chǔ)有指令塊。所述處理器可以通過訪問所述存儲(chǔ)器獲得所述指令塊。所述處理器基于獲得的所述指令塊對(duì)業(yè)務(wù)數(shù)據(jù)進(jìn)行處理。所述處理器連接第一存儲(chǔ)器集合。所述第一存儲(chǔ)器集合包括N個(gè)存儲(chǔ)器,N是正整數(shù)。也就是說,所述第一存儲(chǔ)器集合可以包括只有一個(gè)存儲(chǔ)器或者多于一個(gè)的存儲(chǔ)器。其中,當(dāng)所述第一存儲(chǔ)器集合包括所述只有一個(gè)存儲(chǔ)器時(shí),所述X個(gè)指令塊保存在所述只有一個(gè)存儲(chǔ)器中。X是大于1的整數(shù)。所述處理器可以通過串行的方式訪問所述只有一個(gè)存儲(chǔ)器從而獲取所述多個(gè)指令塊。當(dāng)所述第一存儲(chǔ)器集合包括所述多于一個(gè)的存儲(chǔ)器時(shí),所述X個(gè)指令塊保存在所述多于一個(gè)的存儲(chǔ)器中的每個(gè)存儲(chǔ)器中。也就是說,每個(gè)存儲(chǔ)器都保存所述X個(gè)指令塊。所述處理器可以通過并行的方式訪問所述多于一個(gè)存儲(chǔ)器從而獲取所述多個(gè)指令塊。由于所述處理器采用并行的方式訪問所述多于一個(gè)存儲(chǔ)器,在每個(gè)存儲(chǔ)器具有相等帶寬的情況下,采用所述多于一個(gè)存儲(chǔ)器方式所述處理器獲得的帶寬大于采用所述只有一個(gè)存儲(chǔ)器方式所述處理器獲得的帶寬。因此,所述處理器可以獲得更高的處理性能。
舉例來說,所述X個(gè)指令塊可以是用于執(zhí)行轉(zhuǎn)發(fā)業(yè)務(wù)的計(jì)算機(jī)程序。所述轉(zhuǎn)發(fā)業(yè)務(wù)可以是二層轉(zhuǎn)發(fā)業(yè)務(wù)、三層轉(zhuǎn)發(fā)業(yè)務(wù)、四層轉(zhuǎn)發(fā)業(yè)務(wù)、多協(xié)議標(biāo)簽交換(multiprotocol label switching,MPLS)轉(zhuǎn)發(fā)業(yè)務(wù)或者虛擬專用網(wǎng)(virtual private network,VPN)轉(zhuǎn)發(fā)業(yè)務(wù)。所述二層轉(zhuǎn)發(fā)業(yè)務(wù)可以是媒體接入控制(media access control,MAC)協(xié)議轉(zhuǎn)發(fā)業(yè)務(wù)。所述三層轉(zhuǎn)發(fā)業(yè)務(wù)可以是網(wǎng)際協(xié)議(internet protocol,IP)轉(zhuǎn)發(fā)業(yè)務(wù)。所述四層轉(zhuǎn)發(fā)業(yè)務(wù)可以是傳輸控制協(xié)議(transmission control protocol,TCP)轉(zhuǎn)發(fā)業(yè)務(wù)或者用戶數(shù)據(jù)報(bào)協(xié)議(user datagram protocol,UDP)轉(zhuǎn)發(fā)業(yè)務(wù)。所述VPN轉(zhuǎn)發(fā)業(yè)務(wù)可以是二層虛擬專用網(wǎng)(layer 2 virtual private network,L2VPN)轉(zhuǎn)發(fā)業(yè)務(wù)或者三層虛擬專用網(wǎng)(layer 3 virtual private network,L3VPN)轉(zhuǎn)發(fā)業(yè)務(wù)。所述轉(zhuǎn)發(fā)業(yè)務(wù)可以對(duì)一個(gè)協(xié)議的報(bào)文進(jìn)行處理。例如MAC協(xié)議轉(zhuǎn)發(fā)業(yè)務(wù)可以對(duì)MAC協(xié)議報(bào)文進(jìn)行處理。IP轉(zhuǎn)發(fā)業(yè)務(wù)可以對(duì)IP報(bào)文進(jìn)行處理。TCP轉(zhuǎn)發(fā)業(yè)務(wù)可以對(duì)TCP報(bào)文進(jìn)行處理。UDP轉(zhuǎn)發(fā)業(yè)務(wù)可以對(duì)UDP報(bào)文進(jìn)行處理。
舉例說明,所述處理器可以采用單處理核的結(jié)構(gòu),也可以采用多處理核的結(jié)構(gòu)。在采用所述多處理核的結(jié)構(gòu)時(shí),每個(gè)處理核可以連接一個(gè)或多個(gè)存儲(chǔ)器。
以網(wǎng)絡(luò)裝置對(duì)報(bào)文執(zhí)行轉(zhuǎn)發(fā)業(yè)務(wù)為例進(jìn)行說明。網(wǎng)絡(luò)處理器是所述網(wǎng)絡(luò)裝置的部件。所述網(wǎng)絡(luò)處理器通常采用眾核架構(gòu)。也就是說,所述網(wǎng)絡(luò)處理器具有多個(gè)處理核。所述多個(gè)處理核中一部分處理核用于處理轉(zhuǎn)發(fā)業(yè)務(wù),另一部分處理核用于執(zhí)行管理?;蛘?,所述多個(gè)處理核中全部處理核可以都處理轉(zhuǎn)發(fā)業(yè)務(wù)。當(dāng)所述全部處理核都處理轉(zhuǎn)發(fā)業(yè)務(wù)時(shí),所述網(wǎng)絡(luò)處理器可以集成至少一個(gè)管理CPU。所述至少一個(gè)管理CPU用于對(duì)所述轉(zhuǎn)發(fā)業(yè)務(wù)進(jìn)行管理和控制?;蛘撸鼍W(wǎng)絡(luò)處理器可以與處理器芯片耦合。所述處理器芯片用于對(duì)轉(zhuǎn)發(fā)業(yè)務(wù)進(jìn)行管理和控制。所述網(wǎng)絡(luò)處理器可以連接所述第一存儲(chǔ)器集合。所述第一 存儲(chǔ)器集合包括多個(gè)存儲(chǔ)器。每個(gè)存儲(chǔ)器都保存所述X個(gè)指令塊。也就是說,可以將多個(gè)存儲(chǔ)器看作是一個(gè)存儲(chǔ)器的多個(gè)鏡像。因?yàn)?,每個(gè)存儲(chǔ)器保存了相同的指令塊。所述網(wǎng)絡(luò)處理器在執(zhí)行轉(zhuǎn)發(fā)業(yè)務(wù)時(shí),可以將多個(gè)待轉(zhuǎn)發(fā)的報(bào)文負(fù)載分擔(dān)到多個(gè)處理核中。每個(gè)處理核通過訪問與其連接的存儲(chǔ)器獲取相應(yīng)的指令塊執(zhí)行報(bào)文轉(zhuǎn)發(fā)業(yè)務(wù)。從而,所述網(wǎng)絡(luò)處理器實(shí)現(xiàn)了通過并行的方式訪問所述多個(gè)存儲(chǔ)器。舉例來說,網(wǎng)絡(luò)處理器包括10個(gè)處理核,每個(gè)處理核連接1個(gè)存儲(chǔ)器。待轉(zhuǎn)發(fā)的報(bào)文為100個(gè)。對(duì)一個(gè)報(bào)文進(jìn)行轉(zhuǎn)發(fā)需要5個(gè)指令塊。這樣,網(wǎng)絡(luò)處理器100個(gè)待轉(zhuǎn)發(fā)的報(bào)文被負(fù)載分擔(dān)到10個(gè)處理核中。每個(gè)處理核被分配10個(gè)待轉(zhuǎn)發(fā)的報(bào)文。每個(gè)處理核分別處理被分配的10個(gè)待轉(zhuǎn)發(fā)的報(bào)文。從而實(shí)現(xiàn)10個(gè)處理核并行的處理待轉(zhuǎn)發(fā)的報(bào)文。相應(yīng)的,所述網(wǎng)絡(luò)處理器并行的訪問所述多個(gè)存儲(chǔ)器從而獲取多個(gè)指令塊。
舉例說明,每個(gè)存儲(chǔ)器中存儲(chǔ)有所述X個(gè)指令塊。所述處理器通過訪問所述N個(gè)存儲(chǔ)器獲取多個(gè)指令塊。因此,在一個(gè)周期內(nèi),所述X個(gè)指令塊中不同的指令塊被讀取次數(shù)可能不同。例如,一個(gè)周期內(nèi),所述X個(gè)指令塊中的指令塊1被讀取5次,所述X個(gè)指令塊中的指令塊2被讀取8次。如此這樣,可以根據(jù)所述X個(gè)指令塊中每個(gè)指令塊被執(zhí)行讀操作的次數(shù),確定所述X個(gè)指令塊中每個(gè)指令塊被執(zhí)行讀操作的頻率。另外,可以確定所述第一指令塊。所述第一指令塊被執(zhí)行讀操作的頻率大于所述X個(gè)指令塊中其他指令塊中的每個(gè)指令塊被執(zhí)行讀操作的頻率。所述其他指令塊是指所述X個(gè)指令塊中除所述第一指令塊的所有指令塊。例如,當(dāng)X=2時(shí),其他指令塊數(shù)量為1。又例如,當(dāng)X=5時(shí),其他指令塊數(shù)量為4。也就是說,所述第一指令塊是所述X個(gè)指令塊中被執(zhí)行讀操作的頻率最高的指令塊。需要說明的是,所述第一指令塊可能為一個(gè),也可能為多個(gè)。
以使用網(wǎng)絡(luò)裝置對(duì)報(bào)文執(zhí)行轉(zhuǎn)發(fā)業(yè)務(wù)為例進(jìn)行說明。為支持多種轉(zhuǎn)發(fā)業(yè)務(wù),每個(gè)存儲(chǔ)器中可能存儲(chǔ)有一千個(gè)指令塊。但是,在現(xiàn)網(wǎng)場(chǎng)景下,一個(gè)網(wǎng)絡(luò)裝置在一個(gè)周期內(nèi)可能只執(zhí)行一種或幾種轉(zhuǎn)發(fā)業(yè)務(wù)。也就是說,現(xiàn)網(wǎng)場(chǎng)景下,不同的指令塊被執(zhí)行讀操作的頻率是不同的。一個(gè)周期內(nèi)可能只有少數(shù)的指令塊被執(zhí)行的讀操作的頻率較高,大多數(shù)指令塊被執(zhí)行讀操作的頻率較低甚至為0。如此這樣,可以確定出所述第一指令塊,所述第一指令塊被執(zhí)行讀操作的頻率大于所述X個(gè)指令塊中其他指令塊中的每個(gè)指令塊被執(zhí)行讀操作的頻率。
S104,所述處理器將所述第一指令塊保存在第二存儲(chǔ)器集合中的M個(gè)存儲(chǔ)器的每個(gè)存儲(chǔ)器中,M是正整數(shù),所述第一存儲(chǔ)器集合和所述第二存儲(chǔ)器集合的交集為空集合,其中,所述M個(gè)存儲(chǔ)器的帶寬大于所述N個(gè)存儲(chǔ)器的帶寬。
舉例說明,所述處理器還可以連接所述第二存儲(chǔ)器集合。所述第二存儲(chǔ)器集合包括所述M個(gè)存儲(chǔ)器。M是正整數(shù)。所述第一存儲(chǔ)器集合和所述第二存儲(chǔ)器集合的交集為空集合。也就是說,所述M個(gè)存儲(chǔ)器不包含所述N個(gè)存儲(chǔ)器中的任意一個(gè)存儲(chǔ)器。所述N個(gè)存儲(chǔ)器不包含所述M個(gè)存儲(chǔ)器中的任意一個(gè)存儲(chǔ)器。所述M個(gè)存儲(chǔ)器的帶寬大于所述N個(gè)存儲(chǔ)器的帶寬。也就是說,所述M個(gè)存儲(chǔ)器的所有存儲(chǔ)器的帶寬的總和大于所述N個(gè)存儲(chǔ)器的所有存儲(chǔ)器的帶寬的總和。本申請(qǐng)對(duì)于M和N的數(shù)值關(guān)系不作限定。M可以大于N、或M可以等于N、或M可以小于N。
舉例來說,圖1所示的方法涉及到的所有存儲(chǔ)器都具有相同的帶寬。具體來說,所述M個(gè)存儲(chǔ)器中每個(gè)存儲(chǔ)器的帶寬等于所述N個(gè)存儲(chǔ)器中每個(gè)存儲(chǔ)器的帶寬。M大于N。上述方案中,所有存儲(chǔ)器可以采用統(tǒng)一的架 構(gòu),有助于降低實(shí)現(xiàn)成本。
舉例說明,根據(jù)S102的解釋,所述處理器可以通過并行的方式訪問所述多于一個(gè)存儲(chǔ)器從而獲取所述多個(gè)指令塊。
S104中將所述第一指令塊保存在所述第二存儲(chǔ)器集合中的所述M個(gè)存儲(chǔ)器的每個(gè)存儲(chǔ)器中具體實(shí)現(xiàn)時(shí)可以有多種實(shí)現(xiàn)方式。圖2示出了一種實(shí)現(xiàn)方式。圖2為本發(fā)明實(shí)施例中搬移指令塊的示意圖。如圖2所示,存儲(chǔ)器1包括指令塊0、指令塊1和指令塊2。存儲(chǔ)器1可以是圖1所示的方法涉及的N個(gè)存儲(chǔ)器中的一個(gè)存儲(chǔ)器。存儲(chǔ)器2可以是圖1所示的方法涉及的M個(gè)存儲(chǔ)器中的一個(gè)存儲(chǔ)器。現(xiàn)在需要將存儲(chǔ)器1中的指令塊2保存到存儲(chǔ)器2中。首先,將指令塊2寫入存儲(chǔ)器2中;然后,修改所有需要跳轉(zhuǎn)到指令塊2的跳轉(zhuǎn)指令的跳轉(zhuǎn)地址。其中,圖2中的符號(hào)“×”表示存儲(chǔ)器1中的指令塊可以被刪除。本申請(qǐng)對(duì)于是否刪除存儲(chǔ)器1中的指令塊2不作限定。因?yàn)椋词共粍h除存儲(chǔ)器1中的指令塊2,也不會(huì)影響對(duì)業(yè)務(wù)進(jìn)行處理。
舉例說明,S102和S104可以按照預(yù)定條件重復(fù)執(zhí)行。例如,每隔一個(gè)周期,執(zhí)行一次S102和S104,從而將每個(gè)周期結(jié)束時(shí)被執(zhí)行讀操作的頻率最高的指令塊保存在所述第二存儲(chǔ)器集合中的所述M個(gè)存儲(chǔ)器的每個(gè)存儲(chǔ)器中。如此這樣,實(shí)現(xiàn)把被執(zhí)行讀操作的頻率最高的指令塊存儲(chǔ)在所述M個(gè)存儲(chǔ)器的每個(gè)存儲(chǔ)器中。
以使用網(wǎng)絡(luò)裝置對(duì)業(yè)務(wù)報(bào)文執(zhí)行轉(zhuǎn)發(fā)業(yè)務(wù)為例進(jìn)行說明。根據(jù)S102的解釋,現(xiàn)網(wǎng)場(chǎng)景下,一個(gè)周期內(nèi)可能只有少數(shù)的指令塊被執(zhí)行讀操作的頻率較高,大多數(shù)指令塊被執(zhí)行讀操作的頻率很低甚至為0。所述網(wǎng)絡(luò)處理器連接所述第一存儲(chǔ)器集合,所述第一存儲(chǔ)器集合中所述N個(gè)存儲(chǔ)器的每個(gè)存儲(chǔ)器均保存所述X個(gè)指令塊。確定出所述第一指令塊。所述第一指令塊是所述X個(gè) 指令塊中被執(zhí)行讀操作的頻率最高的指令塊。需要說明的是,由于N個(gè)存儲(chǔ)器的每個(gè)存儲(chǔ)器都保存相同的指令塊。而且,待轉(zhuǎn)發(fā)的報(bào)文可以通過負(fù)載分擔(dān)的方式分配到多個(gè)存儲(chǔ)器。例如,待轉(zhuǎn)發(fā)的報(bào)文數(shù)量為20個(gè),存儲(chǔ)器有5個(gè),那么每個(gè)存儲(chǔ)器分配的報(bào)文數(shù)量為4個(gè)。也就是說,所述存儲(chǔ)器需要通過對(duì)每個(gè)存儲(chǔ)器執(zhí)行讀操作獲取指令,并根據(jù)獲取的指令對(duì)4個(gè)報(bào)文進(jìn)行處理。所述處理器確定所述X個(gè)指令塊中的所述第一指令塊具體實(shí)現(xiàn)時(shí),可以只對(duì)一個(gè)時(shí)間單元內(nèi)所述N個(gè)存儲(chǔ)器的一個(gè)存儲(chǔ)器中的所述X個(gè)指令塊中每個(gè)指令塊被執(zhí)行讀操作的數(shù)量進(jìn)行統(tǒng)計(jì)即可。不需要對(duì)一個(gè)時(shí)間單元(time unit)內(nèi)所述N個(gè)存儲(chǔ)器的每個(gè)存儲(chǔ)器中的指令塊被執(zhí)行讀操作的數(shù)量進(jìn)行統(tǒng)計(jì)??梢岳斫?,一個(gè)時(shí)間單元內(nèi)所述N個(gè)存儲(chǔ)器的N個(gè)所述第一指令塊被執(zhí)行讀操作的數(shù)量是所述一個(gè)時(shí)間單元內(nèi)所述N個(gè)存儲(chǔ)器的一個(gè)存儲(chǔ)器中的所述第一指令塊被執(zhí)行讀操作的數(shù)量的N倍。
現(xiàn)有技術(shù)中,網(wǎng)絡(luò)處理器只連接一個(gè)存儲(chǔ)器集合。存儲(chǔ)器集合中的每個(gè)存儲(chǔ)器存儲(chǔ)了多個(gè)指令?,F(xiàn)有技術(shù)中,所述網(wǎng)絡(luò)處理器也不會(huì)確定所述多個(gè)指令塊中被執(zhí)行讀操作的頻率最高的指令塊。當(dāng)網(wǎng)絡(luò)處理器連接的所述存儲(chǔ)器集合的多個(gè)存儲(chǔ)器無法支持所述網(wǎng)絡(luò)處理器需要達(dá)到的處理性能時(shí),現(xiàn)有技術(shù)采用的手段是,增加所述網(wǎng)絡(luò)處理器連接的存儲(chǔ)器的數(shù)量。新增的存儲(chǔ)器中也保存了所述多個(gè)指令塊。由于存儲(chǔ)器的數(shù)量增加了,存儲(chǔ)器的帶寬也增加了。因此,更多的存儲(chǔ)器能夠支持所述網(wǎng)絡(luò)處理器需要達(dá)到的處理性能。也就是說,現(xiàn)有技術(shù)中,網(wǎng)絡(luò)處理器需要連接更多的存儲(chǔ)器。更多的存儲(chǔ)器能夠提供更高的帶寬。例如,現(xiàn)有技術(shù)中,網(wǎng)絡(luò)處理器連接10個(gè)存儲(chǔ)器。每個(gè)存儲(chǔ)器中保存指令塊集合(例如1000個(gè)指令塊)。當(dāng)10個(gè)存儲(chǔ)器中每個(gè)存儲(chǔ)器的帶寬占用率都大于或者等于95%時(shí),所述網(wǎng)絡(luò)處理器的處理性能為10千兆比特每秒 (gigabit per second,gbps)。為了使得網(wǎng)絡(luò)處理器的處理性能為15gbps,需要將網(wǎng)絡(luò)處理器連接到15個(gè)存儲(chǔ)器(即新增了5個(gè)存儲(chǔ)器)。每個(gè)存儲(chǔ)器中保存所述指令塊集合。也就是說,現(xiàn)有技術(shù)中,網(wǎng)絡(luò)處理器需要占用更多的存儲(chǔ)空間。具體來說,所述指令塊集合需要被復(fù)制到更多的存儲(chǔ)器中。這樣,連接到網(wǎng)絡(luò)處理器的存儲(chǔ)器的數(shù)量增加了。更多的存儲(chǔ)器能夠?yàn)榫W(wǎng)絡(luò)處理器提供更多的帶寬,從而支持網(wǎng)絡(luò)處理器達(dá)到更高的處理性能。但實(shí)際上,所述多個(gè)指令塊僅有少數(shù)指令塊是被頻繁訪問的,大多數(shù)指令塊被執(zhí)行讀操作的頻率很低或處于空閑狀態(tài)?,F(xiàn)有技術(shù)中,不對(duì)多個(gè)指令塊進(jìn)行區(qū)分,而是將多個(gè)指令塊都進(jìn)行相同次數(shù)的復(fù)制,從而增加了指令對(duì)存儲(chǔ)空間的占用。
本實(shí)施例提供的指令塊處理方法,處理器將第一存儲(chǔ)器集合的存儲(chǔ)器中被執(zhí)行讀操作的頻率最高的指令塊保存到比所述第一存儲(chǔ)器集合中的N個(gè)存儲(chǔ)器具有更高帶寬的第二存儲(chǔ)器集合的M個(gè)存儲(chǔ)器中。從而,在存儲(chǔ)器能夠?qū)崿F(xiàn)一定的處理性能的情況下,減少指令對(duì)存儲(chǔ)空間的占用。
可選的,所述處理器將所述第一指令塊保存在所述第二存儲(chǔ)器集合中的所述M個(gè)存儲(chǔ)器的每個(gè)存儲(chǔ)器中具體包括:所述處理器在所述N個(gè)存儲(chǔ)器中所述第一存儲(chǔ)器的使用情況大于或等于第一閾值時(shí),將所述第一指令塊保存在所述第二存儲(chǔ)器集合中的所述M個(gè)存儲(chǔ)器的每個(gè)存儲(chǔ)器中,所述第一閾值大于0。
舉例說明,當(dāng)使用所述處理器對(duì)數(shù)據(jù)進(jìn)行處理時(shí),存儲(chǔ)器的使用情況可能會(huì)隨著所述處理器處理的業(yè)務(wù)的類型或者處理的業(yè)務(wù)的數(shù)量改變而變化。例如,增加新業(yè)務(wù)可能導(dǎo)致所述存儲(chǔ)器的使用情況的增加。當(dāng)所述處理器的使用情況處于較高水平時(shí),改變所述處理器處理的業(yè)務(wù)的類型或者處理的業(yè)務(wù)的數(shù)量,可能會(huì)導(dǎo)致所述存儲(chǔ)器的使用情況達(dá)到最大值。也就 是說,所述存儲(chǔ)器可能處于滿負(fù)荷運(yùn)行的狀態(tài)。這種情況下所述處理器的處理性能將無法得到進(jìn)一步的提升。因此,本實(shí)施例設(shè)定了第一閾值。當(dāng)所述N個(gè)存儲(chǔ)器中所述第一存儲(chǔ)器的使用情況大于或等于所述第一閾值時(shí),執(zhí)行將所述X個(gè)指令塊中被執(zhí)行讀操作的頻率最高的所述第一指令塊保存在所述第二存儲(chǔ)器集合中的所述M個(gè)存儲(chǔ)器的每個(gè)存儲(chǔ)器中。其中,本申請(qǐng)不限定所述第一閾值的取值。所述第一閾值可以根據(jù)所述處理器的使用的場(chǎng)景、所述處理器處理的業(yè)務(wù)的類型或者所述處理器處理的業(yè)務(wù)需要具備的性能確定。其中,對(duì)于所述第一存儲(chǔ)器的使用情況不作限定。可以用一個(gè)指標(biāo)標(biāo)識(shí)所述第一存儲(chǔ)器的使用情況。例如,可以用所述第一存儲(chǔ)器的帶寬的占用率標(biāo)識(shí)所述第一存儲(chǔ)器的使用情況?;蛘?,可以用一個(gè)周期內(nèi)所述存儲(chǔ)器對(duì)所述第一存儲(chǔ)器執(zhí)行讀操作的次數(shù)標(biāo)識(shí)所述第一存儲(chǔ)器的使用情況?;蛘?,可以用所述第一存儲(chǔ)器的存儲(chǔ)空間的占用率標(biāo)識(shí)所述第一存儲(chǔ)器的使用情況。也可以用多個(gè)指標(biāo)標(biāo)識(shí)所述第一存儲(chǔ)器的使用情況。所述多個(gè)指標(biāo)可以是上文提及的三個(gè)指標(biāo)中的至少兩個(gè)指標(biāo)。其中,所述第一存儲(chǔ)器可能為一個(gè)存儲(chǔ)器,也可能為多個(gè)存儲(chǔ)器。也就是說,當(dāng)至少有一個(gè)存儲(chǔ)器的使用情況大于或等于所述第一閾值時(shí),就會(huì)觸發(fā)將所述第一指令塊保存在所述第二存儲(chǔ)器集合中的所述M個(gè)存儲(chǔ)器的每個(gè)存儲(chǔ)器中的動(dòng)作。
舉例說明,在確定所述第一指令塊后,當(dāng)所述N個(gè)存儲(chǔ)器中所述第一存儲(chǔ)器的使用情況大于或等于所述第一閾值時(shí),執(zhí)行將所述X個(gè)指令塊中被執(zhí)行讀操作的頻率最高的所述第一指令塊保存在所述第二存儲(chǔ)器集合中的所述M個(gè)存儲(chǔ)器的每個(gè)存儲(chǔ)器中。例如,用所述第一存儲(chǔ)器的帶寬的占用率標(biāo)識(shí)所述第一存儲(chǔ)器的使用情況的場(chǎng)景中。所述第一閾值可以是 85%-100%。所述第一閾值也可以是85%,90%,95%,或者100%。當(dāng)所述N個(gè)存儲(chǔ)器的所述第一存儲(chǔ)器的帶寬占用率大于或等于85%,90%,95%,或者100%時(shí),執(zhí)行將所述X個(gè)指令塊中被執(zhí)行讀操作的頻率最高的所述第一指令塊保存在所述第二存儲(chǔ)器集合中的所述M個(gè)存儲(chǔ)器的每個(gè)存儲(chǔ)器中的操作。
舉例來說,所述N個(gè)存儲(chǔ)器中所述第一存儲(chǔ)器的使用情況大于或等于所述第一閾值是由于S102涉及的所述X個(gè)指令塊中的每個(gè)指令塊被執(zhí)行讀操作導(dǎo)致的。例如,所述第一存儲(chǔ)器的帶寬占用率為85%。所述第一閾值是80%。所述第一存儲(chǔ)器的帶寬占用率為85%可能是由于如下原因引起:對(duì)所述第一存儲(chǔ)器中的所述X個(gè)指令塊執(zhí)行的讀操作占用了所述第一存儲(chǔ)器的帶寬的85%?;蛘?,所述第一存儲(chǔ)器的帶寬占用率為85%可能是由于如下原因引起:對(duì)所述第一存儲(chǔ)器中的所述X個(gè)指令塊執(zhí)行的讀操作占用了所述第一存儲(chǔ)器的帶寬的50%。對(duì)所述第一存儲(chǔ)器中的其他數(shù)據(jù)執(zhí)行的讀操作占用了所述第一存儲(chǔ)器的帶寬的35%。所述其他數(shù)據(jù)可以是路由表。
可選的,所述處理器在所述N個(gè)存儲(chǔ)器中所述第一存儲(chǔ)器的使用情況大于或等于第一閾值時(shí),將所述第一指令塊保存在所述第二存儲(chǔ)器集合中的所述M個(gè)存儲(chǔ)器的每個(gè)存儲(chǔ)器中具體包括:所述處理器在所述N個(gè)存儲(chǔ)器中所述第一存儲(chǔ)器的使用情況大于或等于所述第一閾值以及所述M個(gè)存儲(chǔ)器中第二存儲(chǔ)器的使用情況小于第二閾值時(shí),將所述第一指令塊保存在所述第二存儲(chǔ)器集合中的所述M個(gè)存儲(chǔ)器的每個(gè)存儲(chǔ)器中,所述第二閾值大于0。
舉例說明,執(zhí)行將X個(gè)指令塊中被執(zhí)行讀操作的頻率最高的所述第一指令塊保存在第二存儲(chǔ)器集合中的M個(gè)存儲(chǔ)器的每個(gè)存儲(chǔ)器中的操作過程 中,除去考慮所述N個(gè)存儲(chǔ)器中所述第一存儲(chǔ)器的使用情況大于或等于所述第一閾值,可選的,還可以同時(shí)考慮所述M個(gè)存儲(chǔ)器中第二存儲(chǔ)器的使用情況小于第二閾值。也就是說,在保證M個(gè)存儲(chǔ)器的使用情況良好的情況下才進(jìn)行相應(yīng)的操作,例如,在保證M個(gè)存儲(chǔ)器有足夠的帶寬接收所述第一指令塊。如此這樣,進(jìn)一步保證了被執(zhí)行讀操作的頻率最高的所述第一指令塊在保存到M個(gè)存儲(chǔ)器的每個(gè)存儲(chǔ)器中后,獲得更加充足的帶寬。其中,第二閾值的具體取值不作限定,可以根據(jù)所述處理器的使用的場(chǎng)景、所述處理器處理的業(yè)務(wù)的類型或者所述處理器處理的業(yè)務(wù)需要具備的性能確定。例如,用所述第二存儲(chǔ)器的帶寬的占用率標(biāo)識(shí)所述第二存儲(chǔ)器的使用情況的場(chǎng)景中,所述第二閾值可以是75%-95%。所述第二閾值也可以是75%,80%,85%,90%,或者95%。當(dāng)所述M個(gè)存儲(chǔ)器的所述第二存儲(chǔ)器的帶寬占用率低于75%,80%,85%,90%,或者95%時(shí),執(zhí)行將所述X個(gè)指令塊中被執(zhí)行讀操作的頻率最高的所述第一指令塊保存在所述第二存儲(chǔ)器集合中的所述M個(gè)存儲(chǔ)器的每個(gè)存儲(chǔ)器中的操作。
可選的,在所述處理器將所述第一指令塊保存在所述第二存儲(chǔ)器集合中的所述M個(gè)存儲(chǔ)器的每個(gè)存儲(chǔ)器中之前,所述方法還包括:所述處理器確定Y個(gè)指令塊中的第二指令塊,所述第二指令塊被執(zhí)行讀操作的頻率小于所述Y個(gè)指令塊中其他指令塊中的每個(gè)指令塊被執(zhí)行讀操作的頻率,所述Y個(gè)指令塊被保存在所述第二存儲(chǔ)器集合中的所述M個(gè)存儲(chǔ)器的每個(gè)存儲(chǔ)器中,Y為大于1的整數(shù);以及,所述處理器在所述M個(gè)存儲(chǔ)器中第二存儲(chǔ)器的使用情況大于或等于第二閾值時(shí),將所述第二指令塊保存在所述第一存儲(chǔ)器集合中的所述N個(gè)存儲(chǔ)器的每個(gè)存儲(chǔ)器中,所述第二閾值大于0。
舉例說明,在所述處理器將所述第一指令塊保存在所述第二存儲(chǔ)器集合中的所述M個(gè)存儲(chǔ)器的每個(gè)存儲(chǔ)器中之前,可選的,可以由處理器確定出Y個(gè)指令塊中的第二指令塊,所述第二指令塊被執(zhí)行讀操作的頻率小于所述Y個(gè)指令塊中其他指令塊中的每個(gè)指令塊被執(zhí)行讀操作的頻率,也就是說,所述第二指令塊是Y個(gè)指令塊中被執(zhí)行讀操作的頻率最低的指令塊。需要說明的是,所述第二指令塊可能為一個(gè),也可能為多個(gè)。具體確定所述第二指令塊方式與S102中的解釋類似,此處不再贅述。所述Y個(gè)指令塊被保存在所述第二存儲(chǔ)器集合中的所述M個(gè)存儲(chǔ)器的每個(gè)存儲(chǔ)器中,Y為大于1的整數(shù)。也就是說,可以將多個(gè)存儲(chǔ)器看作由一個(gè)存儲(chǔ)器鏡像得到的,因?yàn)椋總€(gè)存儲(chǔ)器保存了相同種類和數(shù)量的指令塊。
舉例說明,所述處理器在所述M個(gè)存儲(chǔ)器中第二存儲(chǔ)器的使用情況大于或等于第二閾值時(shí),將所述第二指令塊保存在所述第一存儲(chǔ)器集合中的所述N個(gè)存儲(chǔ)器的每個(gè)存儲(chǔ)器中,所述第二閾值大于0。在將所述第一指令塊保存在所述第二存儲(chǔ)器集合中的所述M個(gè)存儲(chǔ)器的每個(gè)存儲(chǔ)器中之前,如果M個(gè)存儲(chǔ)器中的一個(gè)存儲(chǔ)器的使用情況已經(jīng)大于或等于第二閾值,此時(shí),再將所述第一指令塊保存在所述第二存儲(chǔ)器集合中的所述M個(gè)存儲(chǔ)器的每個(gè)存儲(chǔ)器中可能會(huì)造成M個(gè)存儲(chǔ)器的性能無法匹配處理器的處理性能。如此這樣,可以先將所述第二指令塊保存在所述第一存儲(chǔ)器集合中的所述N個(gè)存儲(chǔ)器的每個(gè)存儲(chǔ)器中,然后在執(zhí)行將所述第一指令塊保存在所述第二存儲(chǔ)器集合中的所述M個(gè)存儲(chǔ)器的每個(gè)存儲(chǔ)器中的步驟。其中,第二閾值的具體取值不作限定,可以根據(jù)所述處理器的使用的場(chǎng)景、所述處理器處理的業(yè)務(wù)的類型或者所述處理器處理的業(yè)務(wù)需要具備的性能確定。其中,對(duì)于第二存儲(chǔ)器的使用情況的表現(xiàn)形式不作限定,例如,可以使用 存儲(chǔ)器的帶寬占用率標(biāo)識(shí)所述使用情況、或可以使用一段周期內(nèi)對(duì)存儲(chǔ)器的訪問次數(shù)標(biāo)識(shí)所述使用情況等。其中,所述第二存儲(chǔ)器可能為一個(gè),也可能為多個(gè),也就是說,當(dāng)至少有一個(gè)存儲(chǔ)器的使用情況大于或等于第二閾值時(shí),就會(huì)觸發(fā)將所述第二指令塊保存在所述第一存儲(chǔ)器集合中的所述N個(gè)存儲(chǔ)器的每個(gè)存儲(chǔ)器中的動(dòng)作。例如,用所述第二存儲(chǔ)器的帶寬的占用率標(biāo)識(shí)所述第二存儲(chǔ)器的使用情況的場(chǎng)景中。例如,所述第二閾值可以是75%-95%。例如,所述第二閾值可以是75%,80%,85%,90%或者95%。當(dāng)在所述M個(gè)存儲(chǔ)器的所述第二存儲(chǔ)器的帶寬占用率大于或等于75%,80%,85%,90%或者95%時(shí),執(zhí)行將所述Y個(gè)指令塊中被執(zhí)行讀操作的頻率最低的所述第二指令塊保存在所述第一存儲(chǔ)器集合中的所述N個(gè)存儲(chǔ)器的每個(gè)存儲(chǔ)器中。
可選的,在所述處理器將所述第一指令塊保存在所述第二存儲(chǔ)器集合中的所述M個(gè)存儲(chǔ)器的每個(gè)存儲(chǔ)器中之后,所述方法還包括:所述處理器刪除所述N個(gè)存儲(chǔ)器中每個(gè)存儲(chǔ)器保存的所述第一指令塊。
舉例說明,參見圖2,當(dāng)指令塊2完成保存到存儲(chǔ)器2,并且跳轉(zhuǎn)地址修改完成后,存儲(chǔ)器1中的原指令塊2將不再參與處理器的數(shù)據(jù)處理業(yè)務(wù),可選的,可以將存儲(chǔ)器1中的原指令塊2刪除,釋放存儲(chǔ)空間。因此,在所述處理器將所述第一指令塊保存在所述第二存儲(chǔ)器集合中的所述M個(gè)存儲(chǔ)器的每個(gè)存儲(chǔ)器中之后,所述處理器刪除所述N個(gè)存儲(chǔ)器中每個(gè)存儲(chǔ)器保存的所述第一指令塊。
可選的,在所述處理器將所述第二指令塊保存在所述第一存儲(chǔ)器集合中的所述N個(gè)存儲(chǔ)器的每個(gè)存儲(chǔ)器中之后,所述方法還包括:所述處理器刪除所述M個(gè)存儲(chǔ)器中每個(gè)存儲(chǔ)器保存的所述第二指令塊。
舉例說明,可參見上述刪除所述N個(gè)存儲(chǔ)器中每個(gè)存儲(chǔ)器保存的所述第一指令塊的解釋,此處不再贅述。
可選的,所述X個(gè)指令塊中每個(gè)指令塊包含計(jì)數(shù)指令,所述處理器確定所述X個(gè)指令塊中的所述第一指令塊之前,所述方法還包括:所述處理器通過執(zhí)行所述X個(gè)指令塊中每個(gè)指令塊中包含的所述計(jì)數(shù)指令確定所述X個(gè)指令塊中每個(gè)指令塊被執(zhí)行讀操作的數(shù)量;以及,所述處理器根據(jù)所述X個(gè)指令塊中每個(gè)指令塊被執(zhí)行讀操作的數(shù)量確定所述X個(gè)指令塊中每個(gè)指令塊被執(zhí)行讀操作的頻率。
舉例說明,所述X個(gè)指令塊中每個(gè)指令塊中包括計(jì)數(shù)指令,所述計(jì)數(shù)指令可以通過人工編譯的方式插入到每個(gè)指令塊中,也可以通過自動(dòng)編譯器,由處理器為每個(gè)指令塊自動(dòng)添加計(jì)數(shù)指令。當(dāng)處理器訪問存儲(chǔ)器通過讀操作獲取指令塊時(shí),可以通過讀取計(jì)數(shù)指令對(duì)指令塊被執(zhí)行的讀操作進(jìn)行計(jì)數(shù),確定X個(gè)指令塊中每個(gè)指令塊被執(zhí)行讀操作的數(shù)量。相應(yīng)的,處理器根據(jù)所述X個(gè)指令塊中每個(gè)指令塊被執(zhí)行讀操作的數(shù)量確定所述X個(gè)指令塊中每個(gè)指令塊被執(zhí)行讀操作的頻率。
現(xiàn)有技術(shù)中,處理器只連接一個(gè)存儲(chǔ)器集合,存儲(chǔ)器集合中的每個(gè)存儲(chǔ)器存儲(chǔ)了多個(gè)指令?,F(xiàn)有技術(shù)中,所述處理器也不會(huì)確定所述多個(gè)指令塊中被執(zhí)行讀操作的頻率最高的指令塊。當(dāng)所述處理器連接的所述存儲(chǔ)器集合的多個(gè)存儲(chǔ)器無法支持所述處理器需要達(dá)到的處理性能時(shí),現(xiàn)有技術(shù)采用的技術(shù)手段是,增加所述處理器連接的存儲(chǔ)器的數(shù)量。新增的存儲(chǔ)器中也保存了所述多個(gè)指令塊。由于存儲(chǔ)器的數(shù)量增加了,存儲(chǔ)器的帶寬也增加了。因此,更多的存儲(chǔ)器能夠支持所述處理器需要達(dá)到的處理性能。也就是說,現(xiàn)有技術(shù)中,處理器需要連接更多的存儲(chǔ)器。更多的存儲(chǔ)器能夠提供更高的帶寬。例如, 處理器在處理數(shù)據(jù)過程中,使用了5個(gè)存儲(chǔ)器,所述5個(gè)存儲(chǔ)器的每個(gè)存儲(chǔ)器都保存了X個(gè)指令塊。當(dāng)需要提高處理器的處理性能時(shí),5個(gè)存儲(chǔ)器提供的帶寬可能無法滿足處理器的需求。因此,需要將處理器連接到更多的存儲(chǔ)器。例如,8個(gè)存儲(chǔ)器(即新增了3個(gè)存儲(chǔ)器)。同時(shí)將所述X個(gè)指令塊保存到所述新增的3個(gè)存儲(chǔ)器的每個(gè)存儲(chǔ)器中。如此這樣,8個(gè)存儲(chǔ)器提供的帶寬將會(huì)滿足處理器的需求。但實(shí)際上,所述X個(gè)指令塊僅有部分的指令塊是被頻繁訪問的,其他指令塊被執(zhí)行讀操作的頻率很低或處于空閑狀態(tài)。對(duì)所述X個(gè)指令塊不做區(qū)分,將所述X個(gè)指令塊都復(fù)制到所述新增的3個(gè)存儲(chǔ)器中,增加了對(duì)指令空間的占用。
本發(fā)明實(shí)施例提供的技術(shù)方案中,處理器確定X個(gè)指令塊中被執(zhí)行讀操作的頻率最高的指令塊,即第一指令塊。將第一存儲(chǔ)器集合的存儲(chǔ)器中保存的所述第一指令塊,保存到提供更高帶寬的第二存儲(chǔ)器集合的存儲(chǔ)器中。從而,在使得處理器實(shí)現(xiàn)一定的處理性能的情況下,減少指令對(duì)存儲(chǔ)空間的占用。也就是說,即使出現(xiàn)例如業(yè)務(wù)變更或數(shù)據(jù)處理量增加而導(dǎo)致存儲(chǔ)器的帶寬無法支持處理器需要達(dá)到的處理性能,只需要將所述第一指令塊保存到提供更高帶寬的第二存儲(chǔ)器集合的存儲(chǔ)器。由于只是將所述X個(gè)指令塊中被執(zhí)行讀操作的頻率最高的指令塊保存到第二存儲(chǔ)器集合的存儲(chǔ)器,并沒有將所述X個(gè)指令塊都保存到所述第二存儲(chǔ)器集合的存儲(chǔ)器。因此,上述技術(shù)方案在處理器能夠?qū)崿F(xiàn)一定的處理性能的情況下,減少了指令對(duì)存儲(chǔ)空間的占用。
圖3為本發(fā)明實(shí)施例提供的處理器的結(jié)構(gòu)示意圖。如圖3所示,處理器300包括第一確定單元302以及執(zhí)行單元304。處理器300可以用于執(zhí)行圖1所示的方法。
第一確定單元302用于確定X個(gè)指令塊中的第一指令塊。所述第一指令塊被執(zhí)行讀操作的頻率大于所述X個(gè)指令塊中其他指令塊中的每個(gè)指令塊被執(zhí)行讀操作的頻率,所述X個(gè)指令塊被保存在第一存儲(chǔ)器集合中的N個(gè)存儲(chǔ)器的每個(gè)存儲(chǔ)器中,N是正整數(shù),X是大于1的整數(shù)。
執(zhí)行單元304用于將第一確定單元302確定的所述第一指令塊保存在第二存儲(chǔ)器集合中的M個(gè)存儲(chǔ)器的每個(gè)存儲(chǔ)器中。M是正整數(shù),所述第一存儲(chǔ)器集合和所述第二存儲(chǔ)器集合的交集為空集合。其中,所述M個(gè)存儲(chǔ)器的帶寬大于所述N個(gè)存儲(chǔ)器的帶寬。
可選的,執(zhí)行單元304具體用于在所述N個(gè)存儲(chǔ)器中所述第一存儲(chǔ)器的使用情況大于或等于第一閾值時(shí),將所述第一指令塊保存在所述第二存儲(chǔ)器集合中的所述M個(gè)存儲(chǔ)器的每個(gè)存儲(chǔ)器中。所述第一閾值大于0。
可選的,執(zhí)行單元304具體用于在所述N個(gè)存儲(chǔ)器中所述第一存儲(chǔ)器的使用情況大于或等于所述第一閾值以及所述M個(gè)存儲(chǔ)器中第二存儲(chǔ)器的使用情況小于第二閾值時(shí),將所述第一指令塊保存在所述第二存儲(chǔ)器集合中的所述M個(gè)存儲(chǔ)器的每個(gè)存儲(chǔ)器中。所述第二閾值大于0。
可選的,處理器300還包括第二確定單元。所述第二確定單元用于在執(zhí)行單元304將所述第一指令塊保存在所述第二存儲(chǔ)器集合中的所述M個(gè)存儲(chǔ)器的每個(gè)存儲(chǔ)器中之前,確定Y個(gè)指令塊中的第二指令塊。所述第二指令塊被執(zhí)行讀操作的頻率小于所述Y個(gè)指令塊中其他指令塊中的每個(gè)指令塊被執(zhí)行讀操作的頻率,所述Y個(gè)指令塊被保存在所述第二存儲(chǔ)器集合中的所述M個(gè)存儲(chǔ)器的每個(gè)存儲(chǔ)器中,Y為大于1的整數(shù)。
執(zhí)行單元304還用于在所述M個(gè)存儲(chǔ)器中第二存儲(chǔ)器的使用情況大于或等于第二閾值時(shí),將所述第二確定單元確定的所述第二指令塊保存在所 述第一存儲(chǔ)器集合中的所述N個(gè)存儲(chǔ)器的每個(gè)存儲(chǔ)器中,所述第二閾值大于0。
可選的,處理器300還包括刪除單元。所述刪除單元用于在執(zhí)行單元304將所述第一指令塊保存在所述第二存儲(chǔ)器集合中的所述M個(gè)存儲(chǔ)器的每個(gè)存儲(chǔ)器中之后,刪除所述N個(gè)存儲(chǔ)器中每個(gè)存儲(chǔ)器保存的所述第一指令塊。
可選的,處理器300還包括刪除單元。所述刪除單元用于在所述執(zhí)行單元將所述第二指令塊保存在所述第一存儲(chǔ)器集合中的所述N個(gè)存儲(chǔ)器的每個(gè)存儲(chǔ)器中之后,刪除所述M個(gè)存儲(chǔ)器中每個(gè)存儲(chǔ)器保存的所述第二指令塊。
可選的,所述X個(gè)指令塊中每個(gè)指令塊包含計(jì)數(shù)指令,處理器300還包括第三確定單元。所述第三確定單元用于在第一確定單元302確定所述X個(gè)指令塊中的所述第一指令塊之前,通過執(zhí)行所述X個(gè)指令塊中每個(gè)指令塊中包含的所述計(jì)數(shù)指令確定所述X個(gè)指令塊中每個(gè)指令塊被執(zhí)行讀操作的數(shù)量;根據(jù)所述X個(gè)指令塊中每個(gè)指令塊被執(zhí)行讀操作的數(shù)量確定所述X個(gè)指令塊中每個(gè)指令塊被執(zhí)行讀操作的頻率。
第一確定單元302可以用于執(zhí)行圖1所示的S102。執(zhí)行單元304可以用于執(zhí)行圖1所示的S104。關(guān)于圖3中的單元的功能以及工作原理請(qǐng)參見圖1所示的方法對(duì)應(yīng)的實(shí)施例中的相應(yīng)描述。圖3所示的技術(shù)方案中,處理器將第一存儲(chǔ)器集合的存儲(chǔ)器中被執(zhí)行讀操作的頻率最高的指令塊,保存到比所述第一存儲(chǔ)器集合中的N個(gè)存儲(chǔ)器提供更高帶寬的第二存儲(chǔ)器集合中的M個(gè)存儲(chǔ)器中。從而,在保證處理性能的情況下,減少指令內(nèi)存空間的占用。
圖4為本發(fā)明實(shí)施例提供的處理器的硬件結(jié)構(gòu)示意圖。如圖4所示,所述處理器包括多個(gè)處理核、第0級(jí)指令存儲(chǔ)器(instruction memory,IMEM)、第1級(jí)IMEM、第2級(jí)IMEM以及管理CPU單元(圖中未示出)。所述處理器可以用于執(zhí)行圖1所示的方法。其中,第1級(jí)IMEM可以用于實(shí)現(xiàn)圖1所示的方法涉及的第一存儲(chǔ)器集合。第0級(jí)IMEM可以用于實(shí)現(xiàn)圖1所示的方法涉及的第二存儲(chǔ)器集合。管理CPU單元和處理核可以用于實(shí)現(xiàn)圖1所示的方法涉及的S102和S104。圖4所示的處理器可用于實(shí)現(xiàn)圖3所示的處理器。需要說明的是,圖4所示的多個(gè)處理核僅是一種實(shí)施方式。應(yīng)當(dāng)理解,圖4所示的處理器可以采用多處理核結(jié)構(gòu)或單處理核結(jié)構(gòu)。應(yīng)當(dāng)理解,管理CPU單元可以和多個(gè)處理核集成在同一芯片內(nèi),也可以分別位于不同的芯片。所述管理CPU可以為一個(gè),也可以為多個(gè)。所述管理CPU可以由處理核實(shí)現(xiàn)。圖4顯示了3層IMEM結(jié)構(gòu)。應(yīng)當(dāng)理解,本申請(qǐng)對(duì)于IMEM結(jié)構(gòu)的層數(shù)不作限定。例如,可以采用4層結(jié)構(gòu),也可以為了減少用于與IMEM連接的處理核的接口采用2層結(jié)構(gòu)。圖4所示的處理核與各層IMEM的連接方式僅是一種實(shí)施方式。處理核與各層IMEM可以采用其他連接方式。
舉例說明,所述處理器通過以下方式實(shí)現(xiàn)對(duì)第0級(jí)IMEM和第1級(jí)IMEM的操作。
所述處理器,用于確定X個(gè)指令塊中的第一指令塊。所述第一指令塊被執(zhí)行讀操作的頻率大于所述X個(gè)指令塊中其他指令塊中的每個(gè)指令塊被執(zhí)行讀操作的頻率。所述X個(gè)指令塊被保存在第1級(jí)IMEM中的N個(gè)IMEM的每個(gè)IMEM中。N是正整數(shù)。X是大于1的整數(shù)。
所述處理器,還用于將所述第一指令塊保存在第0級(jí)IMEM中的M個(gè)IMEM的每個(gè)IMEM中。M是正整數(shù)。所述第1級(jí)IMEM和所述第0級(jí)IMEM 的交集為空集合。其中,所述M個(gè)IMEM的帶寬大于所述N個(gè)IMEM的帶寬。
可選的,所述處理器還用于在所述N個(gè)IMEM中第一IMEM的使用情況大于或等于第一閾值時(shí),將所述第一指令塊保存在第0級(jí)IMEM中的M個(gè)IMEM的每個(gè)IMEM中。所述第一閾值大于0。
可選的,所述處理器具體用于在所述N個(gè)IMEM中所述第一IMEM的使用情況大于或等于所述第一閾值以及所述M個(gè)IMEM中第二IMEM的使用情況小于第二閾值時(shí),將所述第一指令塊保存在所述第0級(jí)IMEM中中的所述M個(gè)IMEM的每個(gè)IMEM中,所述第二閾值大于0。
可選的,所述處理器還用于在將所述第一指令塊保存在所述第0級(jí)IMEM中的所述M個(gè)IMEM的每個(gè)IMEM中之前,確定Y個(gè)指令塊中的第二指令塊,所述第二指令塊被執(zhí)行讀操作的頻率小于所述Y個(gè)指令塊中其他指令塊中的每個(gè)指令塊被執(zhí)行讀操作的頻率,所述Y個(gè)指令塊被保存在所述第0級(jí)IMEM中的所述M個(gè)IMEM的每個(gè)IMEM中,Y為大于1的整數(shù)。
所述處理器,還用于在所述M個(gè)IMEM中第二IMEM的使用情況大于或等于第二閾值時(shí),將所述第二指令塊保存在所述第1級(jí)IMEM中的所述N個(gè)IMEM的每個(gè)IMEM中,所述第二閾值大于0。
可選的,所述處理器用于在將所述第一指令塊保存在所述第0級(jí)IMEM中的所述M個(gè)IMEM的每個(gè)IMEM中之后,刪除所述N個(gè)IMEM中每個(gè)IMEM保存的所述第一指令塊。
可選的,所述處理器用于在將所述第二指令塊保存在所述第1級(jí)IMEM中的所述N個(gè)IMEM的每個(gè)IMEM中之后,刪除所述M個(gè)IMEM中每個(gè) IMEM保存的所述第二指令塊。
可選的,所述X個(gè)指令塊中每個(gè)指令塊包含計(jì)數(shù)指令,所述處理器用于在確定所述X個(gè)指令塊中的所述第一指令塊之前,通過執(zhí)行所述X個(gè)指令塊中每個(gè)指令塊中包含的所述計(jì)數(shù)指令確定所述X個(gè)指令塊中每個(gè)指令塊被執(zhí)行讀操作的數(shù)量。根據(jù)所述X個(gè)指令塊中每個(gè)指令塊被執(zhí)行讀操作的數(shù)量確定所述X個(gè)指令塊中每個(gè)指令塊被執(zhí)行讀操作的頻率。
舉例說明,第1級(jí)IMEM和第2級(jí)IMEM之間的操作的實(shí)現(xiàn)方式與上述第0級(jí)IMEM和第1級(jí)IMEM之間的操作的實(shí)現(xiàn)方式相類似,此處不進(jìn)行贅述。
舉例說明,第0級(jí)IMEM、第1級(jí)IMEM和第2級(jí)IMEM中的每個(gè)IMEM可以使用獨(dú)立的物理存儲(chǔ)器。物理存儲(chǔ)器的類型可以是但不限于:靜態(tài)隨機(jī)存取存儲(chǔ)器(static random access memory,SRAM)、同步靜態(tài)隨機(jī)存儲(chǔ)器(synchronous static random access memory,SSRAM)、動(dòng)態(tài)隨機(jī)存取存儲(chǔ)器(dynamic random access memory,DRAM)或者同步動(dòng)態(tài)隨機(jī)存取存儲(chǔ)器(synchronous dynamic random access memory,SDRAM)。所述IMEM可以設(shè)置于處理器芯片的內(nèi)部,也可以設(shè)置于處理器芯片的外部。第0級(jí)IMEM、第1級(jí)IMEM和第2級(jí)IMEM采用統(tǒng)一編址。
處理器通過執(zhí)行讀操作確定指令塊的被訪問頻率,將第一存儲(chǔ)器集合的存儲(chǔ)器中被執(zhí)行讀操作的頻率最高的指令塊,保存到比所述第一存儲(chǔ)器集合中的N個(gè)存儲(chǔ)器具有更高帶寬的第二存儲(chǔ)器集合的M個(gè)存儲(chǔ)器中。從而,在保證處理性能的情況下,減少指令內(nèi)存空間的占用。
圖5為本發(fā)明實(shí)施例的處理器內(nèi)部的功能模塊的交互示意圖。如圖5所示,所述處理器包括,指令存儲(chǔ)器管理單元、處理核、第0級(jí)IMEM、第1 級(jí)IMEM和第2級(jí)IMEM。指令存儲(chǔ)器管理單元連接處理核,所述處理核分別連接各級(jí)IMEM。需要說明的是,圖中僅示出了一個(gè)處理核,但應(yīng)當(dāng)理解,處理器可以采用多處理核架構(gòu)。圖中第0級(jí)IMEM、第1級(jí)IMEM和第2級(jí)IMEM分別只示出一個(gè)存儲(chǔ)器,應(yīng)當(dāng)理解為,每級(jí)IMEM均可以包括一個(gè)或多個(gè)存儲(chǔ)器。圖中的指令存儲(chǔ)器管理單元在處理器中實(shí)現(xiàn)管理和控制。指令存儲(chǔ)器管理單元可以和至少一個(gè)處理核集成在同一處理器芯片上。也可以使用獨(dú)立的處理器芯片作為指令存儲(chǔ)器管理單元。
舉例說明,IMEM中保存的多個(gè)指令塊中每個(gè)指令塊包含計(jì)數(shù)指令。圖5中右下部分的虛線框表示第一級(jí)IMEM中保存的某個(gè)指令塊的放大示意圖??梢?,指令塊包含計(jì)數(shù)指令。當(dāng)該指令塊被執(zhí)行讀操作時(shí),所述計(jì)數(shù)指令將被讀入高性能統(tǒng)計(jì)單元,高性能統(tǒng)計(jì)單元設(shè)置于處理核中。高性能統(tǒng)計(jì)單元通過執(zhí)行指令塊中包含的所述計(jì)數(shù)指令確定所述指令塊被執(zhí)行讀操作的數(shù)量。高性能統(tǒng)計(jì)單元將所述指令塊被執(zhí)行讀操作的數(shù)量發(fā)送到指令存儲(chǔ)器管理單元。或者指令存儲(chǔ)器管理單元也可以主動(dòng)讀取述指令塊被執(zhí)行讀操作的數(shù)量。指令存儲(chǔ)器管理單元根據(jù)所述指令塊被執(zhí)行讀操作的數(shù)量確定所述指令塊被執(zhí)行讀操作的頻率。
舉例說明,處理核獲取IMEM的使用情況,將所述使用情況數(shù)據(jù)發(fā)送至指令存儲(chǔ)器管理單元。一方面,指令存儲(chǔ)器管理單元按照被執(zhí)行讀操作的頻率確定被執(zhí)行讀操作的頻率最高的指令塊或被執(zhí)行讀操作的頻率最低的指令塊;另一方面,指令存儲(chǔ)器管理單元根據(jù)獲取的IMEM的使用情況,與預(yù)設(shè)閾值的進(jìn)行比較,從而對(duì)被執(zhí)行讀操作的頻率最高的指令塊或被執(zhí)行讀操作的頻率最低的指令塊進(jìn)行保存以及刪除。具體實(shí)施過程可以參照上述實(shí)施例,此處不進(jìn)行贅述。
舉例說明,例如,將第一級(jí)IMEM中的指令塊A保存到第0級(jí)IMEM中的過程。指令存儲(chǔ)器管理單元從指令塊備份數(shù)據(jù)庫讀取指令塊A,將指令塊A保存到第0級(jí)IMEM中,然后指令存儲(chǔ)器管理單元控制處理核將第一級(jí)IMEM中的原指令塊A刪除。其中,所述指令塊備份數(shù)據(jù)庫可以設(shè)置于指令存儲(chǔ)器管理單元內(nèi)部,也可以設(shè)置于指令存儲(chǔ)器管理單元外部。
本領(lǐng)域普通技術(shù)人員將會(huì)理解,本發(fā)明的各個(gè)方面、或各個(gè)方面的可能實(shí)現(xiàn)方式可以被具體實(shí)施為系統(tǒng)、方法或者計(jì)算機(jī)程序產(chǎn)品。因此,本發(fā)明的各方面、或各個(gè)方面的可能實(shí)現(xiàn)方式可以采用硬件實(shí)現(xiàn)實(shí)施例,或者組合軟件和硬件的方式實(shí)現(xiàn),在這里都統(tǒng)稱為“電路”、“模塊”或者“系統(tǒng)”。此外,本發(fā)明的各方面、或各個(gè)方面的可能實(shí)現(xiàn)方式可以采用計(jì)算機(jī)程序產(chǎn)品的形式,計(jì)算機(jī)程序產(chǎn)品是指存儲(chǔ)在計(jì)算機(jī)可讀介質(zhì)中的計(jì)算機(jī)可讀程序代碼。
計(jì)算機(jī)可讀介質(zhì)可以是計(jì)算機(jī)可讀信號(hào)介質(zhì)或者計(jì)算機(jī)可讀存儲(chǔ)介質(zhì)。計(jì)算機(jī)可讀存儲(chǔ)介質(zhì)包含但不限于電子、磁性、光學(xué)、電磁、紅外或半導(dǎo)體系統(tǒng)、設(shè)備或者裝置,或者前述的任意適當(dāng)組合。例如,計(jì)算機(jī)可讀存儲(chǔ)介質(zhì)可以是隨機(jī)存取存儲(chǔ)器(random access memory,RAM)、只讀存儲(chǔ)器(read-only memory,ROM)、可擦除可編程只讀存儲(chǔ)器(erasable programmable read only memory,EPROM)、光纖或者便攜式只讀存儲(chǔ)器(compact disc read-only memory,CD-ROM)。
計(jì)算機(jī)中的處理器讀取存儲(chǔ)在計(jì)算機(jī)可讀介質(zhì)中的計(jì)算機(jī)可讀程序代碼,使得處理器能夠執(zhí)行在流程圖中每個(gè)步驟、或各步驟的組合中規(guī)定的功能動(dòng)作;生成實(shí)施在框圖的每一塊、或各塊的組合中規(guī)定的功能動(dòng)作的裝置。
計(jì)算機(jī)可讀程序代碼可以完全在用戶的本地計(jì)算機(jī)上執(zhí)行、部分在用戶的本地計(jì)算機(jī)上執(zhí)行、作為單獨(dú)的軟件包、部分在用戶的本地計(jì)算機(jī)上并且部分在遠(yuǎn)程計(jì)算機(jī)上,或者完全在遠(yuǎn)程計(jì)算機(jī)或者服務(wù)器上執(zhí)行。也應(yīng)該注意,在某些替代實(shí)施方案中,在流程圖中各步驟、或框圖中各塊所注明的功能可能不按圖中注明的順序發(fā)生。例如,依賴于所涉及的功能,接連示出的兩個(gè)步驟、或兩個(gè)塊實(shí)際上可能被大致同時(shí)執(zhí)行,或者這些塊有時(shí)候可能被以相反順序執(zhí)行。
顯然,本領(lǐng)域的技術(shù)人員可以對(duì)本發(fā)明進(jìn)行各種改動(dòng)和變型。這樣,倘若這些修改和變型屬于本發(fā)明權(quán)利要求及其等同技術(shù)的范圍之內(nèi),這些修改和變型也屬于本申請(qǐng)的保護(hù)范圍。