本申請(qǐng)涉及集成電路,具體涉及一種指令存儲(chǔ)器和電子設(shè)備。
背景技術(shù):
1、指令存儲(chǔ)器是用于存儲(chǔ)處理器(cpu)要執(zhí)行的指令,為了提升報(bào)文處理性能,處理器通常會(huì)設(shè)置多個(gè)處理器核(cpu核)進(jìn)行負(fù)載分擔(dān),同時(shí)多個(gè)處理器核運(yùn)行相同的報(bào)文處理程序,以提升pps(中文全稱為:每秒鐘處理的報(bào)文數(shù)量,英文全稱為:packet?persecond),例如32核、64核、96核等,每個(gè)處理器核都設(shè)置了專屬的指令存儲(chǔ)器,每個(gè)處理器核運(yùn)行時(shí)都固定從各自專屬的指令存儲(chǔ)器中取指令進(jìn)行執(zhí)行。這些指令存儲(chǔ)器一般會(huì)使用芯片中的片上sram(中文全稱為:靜態(tài)隨機(jī)存取存儲(chǔ)器,英文全稱為:static?random-access?memory)實(shí)現(xiàn),由于每個(gè)處理器核都設(shè)置一個(gè)專屬的指令存儲(chǔ)器,會(huì)增大指令存儲(chǔ)器的芯片面積和功耗消耗,特別是處理器核的數(shù)量比較多的情況,芯片面積和功耗消耗的增大比較明顯。
技術(shù)實(shí)現(xiàn)思路
1、本申請(qǐng)的目的在于提供一種指令存儲(chǔ)器和電子設(shè)備,解決每個(gè)處理器核都設(shè)置一個(gè)專屬的指令存儲(chǔ)器,會(huì)增大指令存儲(chǔ)器的芯片面積和功耗消耗的技術(shù)問題。
2、根據(jù)本申請(qǐng)第一方面,提供一種指令存儲(chǔ)器,所述指令存儲(chǔ)器為多存儲(chǔ)體存儲(chǔ)器,包括n個(gè)存儲(chǔ)體、控制器和總線模塊,所述n個(gè)存儲(chǔ)體均與所述控制器連接,所述總線模塊與所述控制器連接,所述總線模塊還與m個(gè)處理器核連接;n和m為預(yù)設(shè)的值;
3、所述總線模塊,用于將所述讀命令發(fā)送給所述控制器,并接收所述控制器返回的指令,將所述控制器返回的指令通過對(duì)應(yīng)的核接口發(fā)送給對(duì)應(yīng)的處理器核;
4、所述控制器,用于根據(jù)所述讀命令從對(duì)應(yīng)的存儲(chǔ)體讀取指令,并將讀取的指令返回給總線模塊。
5、在一具體實(shí)施方式中,所述總線模塊包括控制器接口和m個(gè)核接口,所述總線通過所述控制器接口與所述控制器連接,所述總線通過所述m個(gè)核接口分別與所述m個(gè)處理器核連接,所述m個(gè)核接口與所述m個(gè)處理器核一一對(duì)應(yīng);所述讀命令攜帶有接口id和讀地址;
6、所述控制器,具體用于解析所述讀命令得到接口id和讀地址,根據(jù)所述讀地址從對(duì)應(yīng)的存儲(chǔ)體讀取指令,并將讀取的指令和所述接口id生成讀數(shù)據(jù),將所述讀數(shù)據(jù)返回給總線模塊;
7、所述總線模塊,具體用于根據(jù)所述讀地址將所述讀命令發(fā)送給所述控制器,以及,對(duì)所述讀數(shù)據(jù)進(jìn)行解析得到所述接口id和所述返回的指令,并根據(jù)所述接口id將所述返回的指令通過對(duì)應(yīng)的核接口發(fā)送給對(duì)應(yīng)的處理器核。
8、在一具體實(shí)施方式中,所述控制器包括n個(gè)控制單元,所述n個(gè)控制單元與所述n個(gè)存儲(chǔ)體一一對(duì)應(yīng)連接;所述控制器接口包括n個(gè)控制單元接口,所述總線通過所述n個(gè)控制單元接口分別與所述n個(gè)控制單元連接,所述n個(gè)控制單元接口與所述n個(gè)控制單元一一對(duì)應(yīng);
9、所述控制單元,用于當(dāng)其接收到所述讀命令時(shí),解析所述讀命令得到接口id和讀地址,根據(jù)所述讀地址從與其對(duì)應(yīng)的存儲(chǔ)體讀取指令,并將讀取的指令和所述接口id生成讀數(shù)據(jù),將所述讀數(shù)據(jù)返回給總線模塊;
10、所述總線模塊,具體用于根據(jù)所述讀地址將所述讀命令發(fā)送給對(duì)應(yīng)的控制單元,以及,對(duì)所述對(duì)應(yīng)的控制單元返回的所述讀數(shù)據(jù)進(jìn)行解析得到所述接口id和所述返回的指令,并根據(jù)所述接口id將所述返回的指令通過對(duì)應(yīng)的核接口發(fā)送給對(duì)應(yīng)的處理器核。
11、在一具體實(shí)施方式中,所述總線模塊,具體用于同一時(shí)鐘周期接收到多個(gè)處理器核的讀指令,且所述多個(gè)處理器核的讀指令請(qǐng)求訪問同一個(gè)存儲(chǔ)體時(shí),采用輪詢調(diào)度策略處理所述多個(gè)處理器核的讀指令。
12、在一具體實(shí)施方式中,所述指令存儲(chǔ)器包括寫接口,所述控制器均與所述寫接口連接;
13、所述寫接口,用于接收寫命令,并將所述寫命令發(fā)送給所述控制器;
14、所述控制器,還用于根據(jù)所述寫命令獲得待寫指令和寫地址,并根據(jù)所述寫地址將所述待寫指令寫入對(duì)應(yīng)的存儲(chǔ)體。
15、在一具體實(shí)施方式中,所述控制器包括n個(gè)控制單元,所述n個(gè)控制單元與所述n個(gè)存儲(chǔ)體一一對(duì)應(yīng)連接;所述讀命令攜帶有接口id和讀地址;
16、所述寫接口,用于接收寫命令,解析所述寫命令得到寫地址和待寫指令,根據(jù)所述寫地址將所述寫地址和待寫指令發(fā)送給對(duì)應(yīng)的控制單元;
17、所述控制單元,用于當(dāng)其接收到所述寫地址和待寫指令時(shí),根據(jù)所述寫地址將所述待寫指令寫入與其對(duì)應(yīng)的存儲(chǔ)體。
18、在一具體實(shí)施方式中,所述總線模塊為交叉開關(guān)矩陣。
19、在一具體實(shí)施方式中,所述指令存儲(chǔ)器用于存儲(chǔ)二進(jìn)制執(zhí)行程序,所述二進(jìn)制執(zhí)行程序按執(zhí)行順序依次劃分多段程序,所述多段程序均分到所述n個(gè)存儲(chǔ)體進(jìn)行存儲(chǔ),每段程序包括至少一條指令,每個(gè)存儲(chǔ)體的一個(gè)深度地址的存儲(chǔ)空間存儲(chǔ)一段程序。
20、根據(jù)本申請(qǐng)第二方面,提供一種電子設(shè)備,包括網(wǎng)絡(luò)處理器和如上所述的指令存儲(chǔ)器,所述網(wǎng)絡(luò)處理器包括所述m個(gè)處理器核。
21、在一具體實(shí)施方式中,所述網(wǎng)絡(luò)處理器還包括n個(gè)讀指令緩存器,所述n個(gè)讀指令緩存器與所述m個(gè)處理器核一一對(duì)應(yīng);
22、所述讀指令緩存器,用于暫時(shí)存放與其對(duì)應(yīng)的cpu核的預(yù)取指。
23、本申請(qǐng)實(shí)施例提供了一種指令存儲(chǔ)器和電子設(shè)備,m個(gè)處理器核共享一個(gè)指令存儲(chǔ)器,其中,該一個(gè)指令存儲(chǔ)器劃分為n個(gè)存儲(chǔ)體(bank),即由n個(gè)存儲(chǔ)體拼接形成一個(gè)指令存儲(chǔ)器,n個(gè)存儲(chǔ)體均存儲(chǔ)有指令,在訪問指令存儲(chǔ)器時(shí),m個(gè)處理器核將讀指令發(fā)送給總線模塊,總線模塊將讀指令發(fā)給控制器,控制器根據(jù)讀指令從對(duì)應(yīng)的存儲(chǔ)體中讀取相應(yīng)的指令,并通過總線模塊將讀取的指令發(fā)送給對(duì)應(yīng)的處理器核,n個(gè)存儲(chǔ)體都可以響應(yīng)m個(gè)處理器核的讀訪問,因此有利于指令存儲(chǔ)器的帶寬跑滿,相對(duì)于為每一個(gè)處理器核設(shè)置一個(gè)專屬的指令存儲(chǔ)器而言,減少了指令存儲(chǔ)器的數(shù)量,有利于減少芯片面積和功耗消耗,將使指令存儲(chǔ)器所占用的芯片面積減小到原有的1/m,節(jié)約了用戶成本。
1.一種指令存儲(chǔ)器,其特征在于,所述指令存儲(chǔ)器為多存儲(chǔ)體存儲(chǔ)器,包括n個(gè)存儲(chǔ)體、控制器和總線模塊,所述n個(gè)存儲(chǔ)體均與所述控制器連接,所述總線模塊與所述控制器連接,所述總線模塊還與m個(gè)處理器核連接;n和m為預(yù)設(shè)的值;
2.根據(jù)權(quán)利要求1所述的指令存儲(chǔ)器,其特征在于,所述總線模塊包括控制器接口和m個(gè)核接口,所述總線通過所述控制器接口與所述控制器連接,所述總線通過所述m個(gè)核接口分別與所述m個(gè)處理器核連接,所述m個(gè)核接口與所述m個(gè)處理器核一一對(duì)應(yīng);所述讀命令攜帶有接口id和讀地址;
3.根據(jù)權(quán)利要求2所述的指令存儲(chǔ)器,其特征在于,所述控制器包括n個(gè)控制單元,所述n個(gè)控制單元與所述n個(gè)存儲(chǔ)體一一對(duì)應(yīng)連接;所述控制器接口包括n個(gè)控制單元接口,所述總線通過所述n個(gè)控制單元接口分別與所述n個(gè)控制單元連接,所述n個(gè)控制單元接口與所述n個(gè)控制單元一一對(duì)應(yīng);
4.根據(jù)權(quán)利要求3所述的指令存儲(chǔ)器,其特征在于,所述總線模塊,具體用于同一時(shí)鐘周期接收到多個(gè)處理器核的讀指令,且所述多個(gè)處理器核的讀指令請(qǐng)求訪問同一個(gè)存儲(chǔ)體時(shí),采用輪詢調(diào)度策略處理所述多個(gè)處理器核的讀指令。
5.根據(jù)權(quán)利要求1所述的指令存儲(chǔ)器,其特征在于,所述指令存儲(chǔ)器包括寫接口,所述控制器均與所述寫接口連接;
6.根據(jù)權(quán)利要求5所述的指令存儲(chǔ)器,其特征在于,所述控制器包括n個(gè)控制單元,所述n個(gè)控制單元與所述n個(gè)存儲(chǔ)體一一對(duì)應(yīng)連接;所述讀命令攜帶有接口id和讀地址;
7.根據(jù)權(quán)利要求6所述的指令存儲(chǔ)器,其特征在于,所述總線模塊為交叉開關(guān)矩陣。
8.根據(jù)權(quán)利要求1~7中任一項(xiàng)所述的指令存儲(chǔ)器,其特征在于,所述指令存儲(chǔ)器用于存儲(chǔ)二進(jìn)制執(zhí)行程序,所述二進(jìn)制執(zhí)行程序按執(zhí)行順序依次劃分多段程序,所述多段程序均分到所述n個(gè)存儲(chǔ)體進(jìn)行存儲(chǔ),每段程序包括至少一條指令,每個(gè)存儲(chǔ)體的一個(gè)深度地址的存儲(chǔ)空間存儲(chǔ)一段程序。
9.一種電子設(shè)備,其特征在于,包括網(wǎng)絡(luò)處理器和權(quán)利要求1~8中任一項(xiàng)所述的指令存儲(chǔ)器,所述網(wǎng)絡(luò)處理器包括所述m個(gè)處理器核。
10.根據(jù)權(quán)利要求9所述的電子設(shè)備,其特征在于,所述網(wǎng)絡(luò)處理器還包括n個(gè)讀指令緩存器,所述n個(gè)讀指令緩存器與所述m個(gè)處理器核一一對(duì)應(yīng);