所屬的技術人員能夠理解本技術提供電子設備的各個方面可以實現(xiàn)為系統(tǒng)、方法或程序產(chǎn)品。因此,本公開的各個方面可以具體實現(xiàn)為以下形式,即:完全的硬件實施方式、完全的軟件實施方式(包括固件、微代碼等),或硬件和軟件方面結(jié)合的實施方式,這里可以統(tǒng)稱為“電路”、“模塊”或“系統(tǒng)”。對所公開的實施例的上述說明,使本領域?qū)I(yè)技術人員能夠?qū)崿F(xiàn)或使用本技術。對這些實施例的多種修改對本領域的專業(yè)技術人員來說將是顯而易見的,本文中所定義的一般原理可以在不脫離本技術的精神或范圍的情況下,在其它實施例中實現(xiàn)。因此,本技術將不會被限制于本文所示的這些實施例,而是要符合與本文所公開的原理和新穎特點相一致的最寬的范圍。
背景技術:
1、隨著人工智能、高性能計算及機器學習應用的高速發(fā)展,矩陣與矢量運算已成為處理器設計的核心負載場景。傳統(tǒng)通用處理器受限于馮·諾依曼架構(gòu)的存儲墻問題及標量計算單元的并行能力瓶頸,難以滿足大規(guī)模矩陣乘法、張量運算等高吞吐量需求。與此同時,risc-v開源指令集生態(tài)(如rvv1.0)的興起為定制化計算架構(gòu)提供了新方向,但如何在開源指令集基礎上實現(xiàn)高效矩陣-矢量協(xié)同計算仍面臨技術挑戰(zhàn)。
2、當前技術中,行業(yè)主要通過多核并行架構(gòu)和專用加速器提升計算效率。例如,多核simd架構(gòu)通過部署多個計算核實現(xiàn)線程級并行(如arm?neoverse?v系列),或通過擴展rvv1.0指令集結(jié)合私有硬件單元加速矩陣運算(如tenstorrent的grayskull架構(gòu))。此外,異構(gòu)計算架構(gòu)(如nvidia?grace?hopper的cpu+gpu協(xié)同)通過任務卸載與高速互連技術分離主處理器與加速器功能,進一步提升計算吞吐量。這些方案在特定場景下顯著優(yōu)化了計算性能。
3、然而,現(xiàn)有技術仍存在以下瓶頸:第一,多核架構(gòu)中多個計算核需重復執(zhí)行相同指令集,導致片上資源浪費及能效比下降;第二,核間指令調(diào)度依賴復雜的總線協(xié)議與軟件層協(xié)調(diào),引發(fā)取值譯碼效率低下及計算延遲問題;第三,主流方案依賴私有指令集(如nvidiacuda),與risc-v開源生態(tài)兼容性差,限制技術普適性;第四,傳統(tǒng)異構(gòu)架構(gòu)中數(shù)據(jù)需通過主存多次中轉(zhuǎn),核間通信帶寬成為性能瓶頸。
技術實現(xiàn)思路
1、針對現(xiàn)有通過多核并行架構(gòu)和專用加速器提升計算效率的方法存在多核資源冗余、核間通信效率低下及依賴私有指令集生態(tài)封閉的技術問題,本技術提供一種矩陣-矢量處理器及矩陣-矢量協(xié)同計算方法,通過一主雙協(xié)架構(gòu)降低資源冗余、核間直連通道提升通信效率、兼容risc-v生態(tài)打破封閉限制,并結(jié)合混合調(diào)度與模塊化擴展實現(xiàn)高效彈性計算。
2、第一方面,本技術提供一種矩陣-矢量處理器,包括:
3、主處理器核,用于執(zhí)行常規(guī)計算指令并為矩陣計算指令與矢量計算指令完成初步譯碼與調(diào)度,包括l1緩存、指令抓取模塊、線程束分配模塊、譯碼模塊、發(fā)射緩存模塊、記分牌模塊、主處理器寄存器文件模塊、任務發(fā)射模塊、主處理器計算單元、協(xié)處理器任務調(diào)度模塊、計算結(jié)果寫回模塊;
4、矩陣協(xié)處理器核,連接主處理器核,用于執(zhí)行矩陣計算指令,包括矩陣二次譯碼模塊、可擴展數(shù)量的矩陣計算單元組及矩陣lsu存儲單元;
5、矢量協(xié)處理器核,連接主處理器核,用于執(zhí)行矢量計算指令,包括矢量二次譯碼模塊、可擴展數(shù)量的矢量計算單元組及矢量lsu存儲單元;
6、l2緩存,分別與l1緩存、矩陣lsu存儲單元及矢量lsu存儲單元連接;
7、其中,矩陣lsu存儲單元與矢量lsu存儲單元之間設置有單向核間直連通道,僅允許矢量協(xié)處理器核向矩陣協(xié)處理器核傳輸數(shù)據(jù);
8、記分牌模塊由主處理器核、矩陣協(xié)處理器核和矢量協(xié)處理器核共同維護,配置為主處理器核支持指令亂序發(fā)射、矩陣協(xié)處理器核與矢量協(xié)處理器核僅支持指令順序發(fā)射。
9、進一步需要說明的是,主處理器核采用五級流水線結(jié)構(gòu),包含取指、譯碼、發(fā)射、執(zhí)行、結(jié)果收集和寫回階段;矩陣協(xié)處理器核與矢量協(xié)處理器核均采用三級流水線結(jié)構(gòu),包含譯碼-二次調(diào)度、執(zhí)行、結(jié)果收集和寫回階段。
10、進一步需要說明的是,譯碼模塊配置為:
11、解析指令的操作碼、操作數(shù)及尋址方式;
12、通過操作碼字段匹配指令類型,區(qū)分常規(guī)計算指令、矢量計算指令或矩陣計算指令,并對矢量計算指令或矩陣計算指令添加擴展指令集標記。
13、進一步需要說明的是,協(xié)處理器任務調(diào)度模塊用于根據(jù)擴展指令集標記的類型選擇目標協(xié)處理器核,通過rocc接口分別連接矩陣二次譯碼模塊和矢量二級譯碼模塊,形成一掛二的指令分發(fā)架構(gòu)。
14、進一步需要說明的是,l1緩存包括指令緩存和數(shù)據(jù)緩存。
15、進一步需要說明的是,l2緩存通過axi4總線與主處理器核的l1緩存、矩陣協(xié)處理器核的lsu存儲單元及矢量協(xié)處理器核的lsu存儲單元連接。
16、進一步需要說明的是,矩陣計算單元組和矢量計算單元組采用模塊化陣列結(jié)構(gòu),每個矩陣計算單元組或矢量計算單元組包含多個并行計算單元,各計算單元組之間通過數(shù)據(jù)分配單元與進程監(jiān)控分配單元實現(xiàn)數(shù)據(jù)互聯(lián)。
17、進一步需要說明的是,矩陣計算單元組包括32個矩陣計算單元,矢量計算單元組包括32個矢量計算單元。
18、進一步需要說明的是,矩陣計算單元包括矩陣處理寄存器文件模塊、矩陣擬處理任務隊列模塊,矩陣擬處理數(shù)據(jù)隊列模塊、矩陣計算數(shù)據(jù)拼接模塊、計算結(jié)果矩陣拆分模塊、矩陣計算調(diào)度仲裁模塊和4個矩陣計算迭代執(zhí)行模塊;
19、矢量計算單元包括矢量處理寄存器文件模塊、矢量擬處理任務隊列模塊,矢量擬處理數(shù)據(jù)隊列模塊,矢量計算調(diào)度仲裁模塊和4個矢量計算迭代執(zhí)行模塊。
20、進一步需要說明的是,矩陣處理寄存器文件模塊由sram構(gòu)建,用于存儲矩陣計算所必須的操作數(shù)數(shù)據(jù),sram包含16個存儲分區(qū),每4個分區(qū)各存儲一組矩陣計算迭代執(zhí)行模塊的4種操作數(shù)類別;
21、矩陣計算迭代執(zhí)行模塊用于執(zhí)行矩陣計算,包含矩陣alu、矩陣fpu、矩陣mul;
22、矩陣擬處理任務隊列模塊和矩陣擬處理數(shù)據(jù)隊列模塊用于按照指令執(zhí)行順序依序緩存矩陣計算任務涉及的任務信息和擬處理數(shù)據(jù);
23、矩陣計算調(diào)度仲裁模塊用于驗證矩陣協(xié)處理器進程監(jiān)控分配單元分配的該組矩陣計算單元id是否空閑,并依序從指令數(shù)據(jù)隊列讀取擬處理指令,從擬處理數(shù)據(jù)隊列讀取擬處理數(shù)據(jù),拼接后發(fā)送至目標矩陣計算單元;
24、矩陣計算數(shù)據(jù)拼接模塊用于根據(jù)解碼后的計算指令從擬處理數(shù)據(jù)隊列讀取原始操作數(shù)據(jù),并將擬處理數(shù)據(jù)按照指令需求將數(shù)據(jù)拼接為矩陣計算格式;
25、計算結(jié)果矩陣拆分模塊用于將從4個矩陣計算迭代執(zhí)行模塊接收到的計算結(jié)果進行格式拆分轉(zhuǎn)換,將矩陣格式的計算結(jié)果拆分為sram可直接存儲的順序關聯(lián)格式。
26、進一步需要說明的是,矢量處理寄存器文件模塊由sram構(gòu)建,用于存儲矢量計算所必須的操作數(shù)數(shù)據(jù),sram包含16個存儲分區(qū),每4個分區(qū)各存儲一組矢量計算迭代執(zhí)行模塊的4種操作數(shù)類別;
27、矢量計算迭代執(zhí)行模塊用于執(zhí)行矢量計算,包含矢量?alu、矢量?fpu、矢量?mul;
28、矢量擬處理任務隊列模塊和矢量擬處理數(shù)據(jù)隊列模塊用于按照指令執(zhí)行順序依序緩存矢量計算任務涉及的任務信息和擬處理數(shù)據(jù);
29、矢量計算調(diào)度仲裁模塊用于驗證矢量協(xié)處理器進程監(jiān)控分配單元分配的該組矢量計算單元id是否空閑,并依序從指令數(shù)據(jù)隊列讀取擬處理指令,從擬處理數(shù)據(jù)隊列讀取擬處理數(shù)據(jù),拼接后發(fā)送至目標矢量計算單元。
30、第二方面,本技術提供一種矩陣-矢量協(xié)同計算方法,使用上述矩陣-矢量處理器進行矩陣-矢量協(xié)同計算,包括:
31、s1.?l1緩存從l2緩存獲取指令和數(shù)據(jù),通過譯碼模塊初步區(qū)分指令類型;
32、s2.?若指令為常規(guī)計算指令,由主處理器計算單元執(zhí)行計算,得到常規(guī)計算結(jié)果;
33、若指令為矩陣計算指令,由協(xié)處理器任務調(diào)度模塊分發(fā)至矩陣協(xié)處理器核,矩陣協(xié)處理器核對接收的指令進行二次譯碼,分配至矩陣計算單元組執(zhí)行計算,得到矩陣計算結(jié)果;
34、若指令為矢量計算指令,由協(xié)處理器任務調(diào)度模塊分發(fā)至矢量協(xié)處理器核,矢量協(xié)處理器核對接收的指令進行二次譯碼,分配至矢量計算單元組執(zhí)行計算,得到矢量計算結(jié)果;
35、s3.?將計算結(jié)果寫回l2緩存,并更新記分牌模塊的資源狀態(tài)。
36、進一步需要說明的是,步驟s1中,初步區(qū)分指令類型包括:解析指令的操作碼字段,若匹配矢量擴展指令集格式則標記為矢量計算指令;若匹配矩陣擴展指令集格式則標記為矩陣計算指令;若同時不匹配矢量擴展指令集格式和矩陣擴展指令集格式則判定為常規(guī)計算指令。
37、進一步需要說明的是,在矢量協(xié)處理器核執(zhí)行計算過程中,若需調(diào)用矩陣計算,直接通過核間直連通道將中間數(shù)據(jù)傳輸至矩陣協(xié)處理器核的lsu存儲單元,進一步進行矩陣計算。
38、進一步需要說明的是,矩陣計算單元組中,矩陣計算單元執(zhí)行計算的步驟包括:
39、s201.?從矩陣擬處理數(shù)據(jù)隊列模塊接收擬處理數(shù)據(jù),存儲至矩陣處理寄存器文件模塊的sram存儲分區(qū);
40、s202.?通過矩陣擬處理任務隊列模塊接收擬處理任務及指令;
41、s203.?矩陣計算數(shù)據(jù)拼接模塊從矩陣擬處理數(shù)據(jù)隊列模塊讀取數(shù)據(jù)并進行拼接;
42、s204.?矩陣計算調(diào)度仲裁模塊驗證當前矩陣計算單元id的空閑狀態(tài);
43、s205.?將拼接后的指令數(shù)據(jù)分發(fā)至目標矩陣計算迭代執(zhí)行模塊;
44、s206.?計算結(jié)果矩陣拆分模塊轉(zhuǎn)換計算結(jié)果并寫回矩陣處理寄存器文件模塊。
45、進一步需要說明的是,矢量計算單元組中,矢量計算單元執(zhí)行計算的步驟包括:
46、s211.?從矢量擬處理數(shù)據(jù)隊列模塊接收擬處理數(shù)據(jù),存儲至矢量處理寄存器文件模塊的sram存儲分區(qū);
47、s212.?通過矢量擬處理任務隊列模塊接收擬處理任務及指令;
48、s213.?矢量計算調(diào)度仲裁模塊驗證當前矢量計算單元id的空閑狀態(tài);
49、s214.?將指令數(shù)據(jù)分發(fā)至目標矢量計算迭代執(zhí)行模塊;
50、s215.?將計算結(jié)果寫回矢量處理寄存器文件模塊的對應sram存儲分區(qū)。
51、從以上技術方案可以看出,本技術具有以下優(yōu)點:
52、1.?本技術通過主處理器核與雙協(xié)處理器核的“一主-雙協(xié)”架構(gòu),將矩陣與矢量計算任務從主處理器中剝離至專用協(xié)處理器核執(zhí)行,主處理器僅負責初步譯碼與全局調(diào)度,避免了多核架構(gòu)中多個計算核重復執(zhí)行相同指令集的資源冗余,減少邏輯單元空轉(zhuǎn)功耗,可顯著提升計算資源利用率和能效比。
53、2.?本技術在矩陣協(xié)處理器核與矢量協(xié)處理器核之間構(gòu)建單向核間直連通道,矢量協(xié)處理器的中間計算結(jié)果可直接傳輸至矩陣協(xié)處理器核,繞開傳統(tǒng)異構(gòu)架構(gòu)中主存或總線協(xié)議的中轉(zhuǎn)瓶頸,實現(xiàn)矩陣-矢量級聯(lián)運算的無縫銜接,大幅降低核間通信延遲,提升計算流水線效率。
54、3.?本技術中,主處理器核與協(xié)處理器核的指令解析、任務分發(fā)及接口協(xié)議兼容risc-v開源生態(tài)標準,支持包括rvv1.0向量指令集在內(nèi)的標準擴展,支持開發(fā)者直接調(diào)用risc-v標準工具鏈進行編程與功能擴展,解決了私有指令集生態(tài)封閉導致的開發(fā)門檻高、跨平臺適配難等問題,顯著提升處理器的技術普適性和生態(tài)兼容性。
55、4.?本技術通過主處理器核與雙協(xié)處理器核共同維護的記分牌模塊,實時同步三類處理器核的任務狀態(tài)與資源占用情況,在主處理器亂序發(fā)射、協(xié)處理器順序執(zhí)行的混合調(diào)度模式下,避免任務沖突導致的流水線阻塞,確保大規(guī)?;旌线\算的穩(wěn)定執(zhí)行與高效吞吐。
56、5.?本技術設置模塊化可擴展的矩陣/矢量計算單元組,通過動態(tài)分配計算單元數(shù)量,靈活適配不同規(guī)模的矩陣-矢量運算需求,在保證計算效率的同時最大化硬件資源利用率,滿足從邊緣計算到云端服務器的彈性算力要求。