System.ArgumentOutOfRangeException: 索引和長度必須引用該字符串內的位置。 參數名: length 在 System.String.Substring(Int32 startIndex, Int32 length) 在 zhuanliShow.Bind()
【技術實現步驟摘要】
本專利技術涉及芯片soc設計領域、ai人工智能計算領域,具體涉及一種適用于多核數據處理器的cpu實現裝置和方法。
技術介紹
1、隨著社會的快速發展以及電子信息技術的廣泛應用,多核處理器已經是解決當前實時性要求高的復雜電子系統的必備硬件,多核處理器具備多個核心,既能為用戶帶來更強大的計算性能,更重要的,則是可滿足用戶同時進行多任務處理和多任務計算環境的要求。
2、但是隨著多核處理器的發展,關于多核處理器存在的問題也越來越明顯,主要是兩個方面。第一是硬件資源的分享,一個多核處理器本身的硬件資源是有限的,多核處理器會相互爭搶,導致性能非線性增長;其次多線程數據處理共享時可能會引起緩存一致性風暴。另外一方面是軟件資源的分享,有時候線程在不同處理器內核之間切換,造成額外開銷,多個處理器核訪問同一數據結構時,必須存在內核鎖,數據處理越頻繁,內核鎖所帶來的的開銷越大;再者,本身計算量不大,強行分給多核處理,數據處理效率可能適得其反了。因此多核處理器如何相互協調以便達成最優的處理能力成為亟需解決的問題。
技術實現思路
1、本專利技術提供一種適用于多核數據處理器的cpu實現裝置和方法,通過執行由內部存儲單元中的指令對數據的處理操作,實現多核協同處理數據的目的;且該cpu核也可以獨立運行,本專利技術適合于多核數據處理;結構簡潔簡單,效率高。本專利技術解決上述技術問題的技術方案裝置如下:一種適用于多核數據處理器的cpu實現裝置包括取指、譯碼、發射、執行、寫回、總線、專有寄存器七個部分。
>2、進一步,所述取指包含code/data?ram,instruction?buffer,fetch三部分組成;
3、進一步,所述譯碼包括instruction?decode,queue兩部分組成;
4、進一步,所述發射包括queue部分組成;
5、進一步,所述執行包括ld/store,falu,alu三部分組成;
6、進一步,所述寫回包括resbus,queue兩部分組成;
7、進一步,所述總線包括dma_bus,cpu?interconnect?bus,data_bus三部分組成;
8、進一步,所述專有寄存器包括private?reg;
9、進一步,所述譯碼以及寫回都包含發射queue。
10、進一步,所述dma_bus與code/data?ram相連接,并且是雙向通信;
11、進一步,所述cpu?interconnect?bus與private?reg相連接,并且是雙向通信;
12、進一步,所述data_bus與ld/store相連接,并且是雙向通信;
13、進一步,所述code/data?ram與instruction?buffer相連接,并且通信方向是從code/data?ram到instruction?buffer;
14、進一步,所述instruction?buffer與fetch相連接,并且通信方向是從instruction?buffer到fetch;
15、進一步,所述fetch與instruction?decode相連接,并且通信方向是從fetch到instruction?decode;
16、進一步,所述instruction?decode與queue相連接,并且通信方向是從instruction?decode到queue;
17、進一步,所述queue與ld/store相連接,并且通信方向是從queue到ld/store;
18、進一步,所述queue與falu相連接,并且通信方向是從queue到falu;
19、進一步,所述queue與alu相連接,并且通信方向是從queue到alu;
20、進一步,所述queue與resbus相連接,并且通信方向是從到resbus到queue;
21、進一步,所述resbus與ld/store相連接,并且通信方向是雙向通信;
22、進一步,所述resbus與falu相連接,并且通信方向是雙向通信;
23、進一步,所述resbus與alu相連接,并且通信方向是雙向通信;
24、進一步,所述ld/store與private?regs相連接,并且通信方向是從ld/store到private?regs;
25、采用上述步驟的有益效果是:通過取指、譯碼、發射、執行、寫回、總線、專有寄存器七個部分組成了多核處理器的cpu裝置;該裝置通過執行由內部存儲單元中的指令對數據的處理操作,實現多核協同處理數據的目的;且該cpu核也可以獨立運行,本專利技術適合于多核數據處理;結構簡潔簡單,效率高。
26、一種適用于多核數據處理器的cpu實現方法,包括以下步驟:
27、步驟1,取指;cpu啟動后,cpu根據fetch模塊發來的pc值,從instruction?buffer中取出相應的指令,假如instruction?buffer中沒有相應地址的指令,則instructionbuffer會從code/data?ram中把相應的指令取出來,放在instruction?buffer中,同時把相應指令返回給fetch。
28、步驟2,譯碼;即對所有指令進行譯碼并保存在queue中。
29、首先,對所有指令進行分類,本專利技術中所有指令基本分為4類:跳轉指令,falu指令,alu指令,訪存指令即ld/store指令。其次,指令取出來后,根據指令的類型翻譯成統一的規格以便于這些指令容易發射到各個執行單元。最后,指令譯碼之后,保存在queue中。
30、步驟3,發射;本專利技術采用亂序發射的機制;queue中的指令根據各個執行部件的狀態決定是否把該指令發送到各個執行部件;queue這個部件同時執行跳轉指令的功能。
31、進一步,本專利技術采用了最簡單的跳轉預測成功的模式;當是跳轉指令時,等到所有所需的數據已經準備好了,才能執行。當該指令判斷的結果是不跳轉時,則需要取消所有之后的指令,包括instruction?buffer,fetch,以及譯碼之后保存在queue中沒有發出的指令。如果判斷是跳轉時,則繼續執行。其它類型的指令,可以不需要等待數據準備好之后就可以發射;數據沒有準備好的指令發到各個執行部件去等待數據準備好,之后再執行。
32、步驟4,執行;根據指令的類型,執行不同的運算指令。本專利技術包括falu指令,alu指令和訪存指令即ld/store指令執行部件,falu指令部件主要執行浮點運算指令,alu指令部件主要執行定點運算指令,訪存部件主要執行訪存指令,包括ld和store指令。每個執行部件保存queue發射過來的相應命令;當發過來命令的數據沒有準備好,則執行部件監聽寫回總線resbus的結果,假如寫回總線的結果是需要的數據時,則數據準備好。當所有的數據準備好時,則可以根據命本文檔來自技高網...
【技術保護點】
1.一種適用于多核數據處理器的CPU實現裝置,其特征在于,包括取指、譯碼、發射、執行、寫回、總線、專有寄存器七個部分。
2.根據權利要求1所述的一種適用于多核數據處理器的CPU實現裝置,其特征在于,所述取指包含CODE/DATA?RAM,Instruction?buffer,Fetch三部分組成;所述譯碼包括Instruction?decode,Queue兩部分組成;所述發射包括Queue部分組成;所述執行包括LD/STORE,FALU,ALU三部分組成;所述寫回包括Resbus,Queue兩部分組成;所述總線包括dma_bus,cpu?interconnect?bus,data_bus三部分組成;所述專有寄存器包括Private?reg;所述譯碼以及寫回都包含發射Queue。
3.根據權利要求1所述的一種適用于多核數據處理器的CPU實現裝置,其特征在于,所述所述dma_bus與CODE/DATA?RAM相連接,并且是雙向通信;所述cpu?interconnect?bus與Private?reg相連接,并且是雙向通信;所述data_bus與LD/STORE
4.一種適用于多核數據處理器的CPU實現方法,其特征在于,包括以下步驟:步驟1,取指;步驟2,譯碼;步驟3,發射;步驟4,執行;步驟5,寫回。
5.根據權利要求4所述的一種適用于多核數據處理器的CPU實現方法,其特征在于,所述步驟1取指;具體操作為CPU啟動后,CPU根據Fetch模塊發來的Pc值,從Instructionbuffer中取出相應的指令,假如Instruction?buffer中沒有相應地址的指令,則Instruction?buffer會從CODE/DATA?RAM中把相應的指令取出來,放在Instructionbuffer中,同時把相應指令返回給Fetch。
6.根據權利要求4所述的一種適用于多核數據處理器的CPU實現方法,其特征在于,所述步驟2譯碼;具體操作為首先,對所有指令進行分類,分為4類:跳轉指令,FALU指令,ALU指令,訪存指令即LD/STORE指令;其次,指令取出來后,根據指令的類型翻譯成統一的規格以便于這些指令容易發射到各個執行單元;最后,指令譯碼之后,保存在Queue中。
7.根據權利要求4所述的一種適用于多核數據處理器的CPU實現方法,其特征在于,所述步驟3發射;具體操作為采用亂序發射的機制;Queue中的指令根據各個執行部件的狀態決定是否把該指令發送到各個執行部件;Queue這個部件同時執行跳轉指令的功能;同時,采用了最簡單的跳轉預測成功的模式。
8.根據權利要求4所述的一種適用于多核數據處理器的CPU實現方法,其特征在于,所述步驟4執行;具體操作為根據指令的類型,執行不同的運算指令,每個執行部件保存Queue發射過來的相應命令;當發過來命令的數據沒有準備好,則執行部件監聽寫回總線resbus的結果,假如寫回總線的結果是需要的數據時,則數據準備好,當所有的數據準備好時,則可以根據命令實現執行操作,當訪存指令的地址空間指向Private?regs時,則讀寫Privateregs的寄存器值,當訪存指令的控制指向外部地址空間時,則通過data_bus與外部地址空間進行數據交互。
9.根據權利要求4所述的一種適...
【技術特征摘要】
1.一種適用于多核數據處理器的cpu實現裝置,其特征在于,包括取指、譯碼、發射、執行、寫回、總線、專有寄存器七個部分。
2.根據權利要求1所述的一種適用于多核數據處理器的cpu實現裝置,其特征在于,所述取指包含code/data?ram,instruction?buffer,fetch三部分組成;所述譯碼包括instruction?decode,queue兩部分組成;所述發射包括queue部分組成;所述執行包括ld/store,falu,alu三部分組成;所述寫回包括resbus,queue兩部分組成;所述總線包括dma_bus,cpu?interconnect?bus,data_bus三部分組成;所述專有寄存器包括private?reg;所述譯碼以及寫回都包含發射queue。
3.根據權利要求1所述的一種適用于多核數據處理器的cpu實現裝置,其特征在于,所述所述dma_bus與code/data?ram相連接,并且是雙向通信;所述cpu?interconnect?bus與private?reg相連接,并且是雙向通信;所述data_bus與ld/store相連接,并且是雙向通信;所述code/data?ram與instruction?buffer相連接,并且通信方向是從code/data?ram到instruction?buffer;所述instruction?buffer與fetch相連接,并且通信方向是從instruction?buffer到fetch;所述fetch與instruction?decode相連接,并且通信方向是從fetch到instruction?decode;所述instruction?decode與queue相連接,并且通信方向是從instruction?decode到queue;所述queue與ld/store相連接,并且通信方向是從queue到ld/store;所述queue與falu相連接,并且通信方向是從queue到falu;所述queue與alu相連接,并且通信方向是從queue到alu;所述queue與resbus相連接,并且通信方向是從到resbus到queue;所述resbus與ld/store相連接,并且通信方向是雙向通信;所述resbus與falu相連接,并且通信方向是雙向通信;所述resbus與alu相連接,并且通信方向是雙向通信;所述ld/store與pri...
【專利技術屬性】
技術研發人員:劉華平,
申請(專利權)人:湖南迪文科技有限公司,
類型:發明
國別省市:
還沒有人留言評論。發表了對其他瀏覽者有用的留言會獲得科技券。