System.ArgumentOutOfRangeException: 索引和長度必須引用該字符串內的位置。 參數名: length 在 System.String.Substring(Int32 startIndex, Int32 length) 在 zhuanliShow.Bind()
【技術實現步驟摘要】
本專利技術涉及集成電路,尤其涉及基于risc-v指令拓展的單精度可配置矩陣運算單元的處理系統。
技術介紹
1、risc-v是一種開放的精簡指令集架構(isa),解決現有isa開放性不足、知識產權復雜和技術滯后等問題。它不受商業組織的約束,規避了國外架構的潛在風險,實現了自主可控。risc-v的模塊化設計允許自由組合指令子集,具有簡潔性模塊化的特點。
2、近年來嵌入式物聯網設備快速發展,尤其在機器人領域對微控制器算力的需求極具增加。為了對機械臂進行實時精確的控制,需要對大量的傳感器數據構成的矩陣進行實時運算。然而傳統通用嵌入式處理器在進行矩陣運算時受限于內存帶寬以及內部算術邏輯單元數量,在進行矩陣運算任務時表現不佳。因此急需設計一種能有效提高傳統處理器在執行矩陣任務時效率的硬件。
3、提高矩陣運算速度在機器人領域或深度學習領域十分重要,提升處理器的矩陣運算速度,一般有兩種方法。一種是從算法角度出發,開發效率更高的矩陣算法,避免內存瓶頸以及運算資源瓶頸帶來的不利影響,其缺點是性能提升有限。另一種方法是使用向量指令,其本質是增加大量的緩存和運算資源,缺點是硬件開銷大,導致生產成本增加。
4、傳統嵌入式微控制器在拓展加速器時常使用總線掛載加速器,其優點是設計簡單易于驗證,但其缺點是主處理器與加速器通信延遲高,加速器算法固化,通用性差。
5、因此,亟需一種新的技術方案來解決上述技術問題。
技術實現思路
1、本專利技術的目的在于克服上述現有技術的
2、上述目的是通過以下技術方案來實現:
3、一種基于risc-v指令拓展的單精度可配置矩陣運算單元的處理系統,包括用于執行軟件程序以及識別自定義擴展指令的risc-v處理器,所述risc-v處理器通過自定義協處理器接口與單精度可配置矩陣運算單元連接;所述單精度可配置矩陣運算單元包括指令響應與解碼模塊和指令退休與寫回模塊,所述指令響應與解碼模塊用于接受所述自定義協處理器接口發送的指令功能編碼、源操作數據以及目的寄存器編號,并對指令功能編碼進行解碼;待解碼完成后,根據解碼結果選擇不同的執行單元發送對應控制信號;待所述執行單元完成對應任務后,所述指令退休與寫回模塊將執行結果和完成信號通過所述自定義協處理器接口返回至所述risc-v處理器,實現完成一條自定義擴展指令的執行;所述執行單元包括加速器控制狀態寄存器、矩陣寄存器模塊、加速器訪存模塊、浮點運算資源和運算控制器,所述加速器控制狀態寄存器用于存儲加速器將要處理的矩陣形狀,包括矩陣的行和列的大小;所述矩陣寄存器模塊用于存儲矩陣運算時的原始數據和運算過程中產生的中間結果;所述加速器訪存模塊包括數據加載通道和數據存儲通道,根據控制信號從系統主存的指定地址中加載指定的矩陣,或者向系統主存的指定地址寫入指定的矩陣數據;所述浮點運算資源用于完成對單精度浮點數據的運算;所述運算控制器用于接收所述risc-v處理器發送的自定義拓展指令,進而配置,調度數據流,控制所述浮點運算資源實現對于不同維度的矩陣加、減、乘轉置和求逆運算,以及用于配置將要使用的矩陣寄存器大小和運算單元陣列。
4、進一步地,所述矩陣寄存器模塊包括至少四個獨立的矩陣寄存器,用于存儲4個矩陣,且各所述矩陣寄存器共用2個讀端口和1個寫端口。
5、進一步地,各所述矩陣寄存器最大可以存儲一個9行9列的矩陣,每個元素數據類型均為32位單精度浮點;當所述矩陣寄存器存儲的矩陣小于9行9列時,矩陣的有效數據分布在所述矩陣寄存器的最低有效行/列中。
6、進一步地,所述數據加載通道和所述數據存儲通道中的協議控制模塊根據地址向系統總線發起傳輸,數據經過位寬轉換模塊后寫入所述矩陣寄存器,或寫回系統主存中。
7、進一步地,所述浮點運算資源包括9個單精度浮點數加/減法器、9個單精度浮點數乘法器,以及9個單精度浮點數除法器;所述該浮點運算資源由所述運算控制器所共享。
8、進一步地,所述運算控制器包括矩陣求逆控制器、矩陣轉置控制器、矩陣加/減控制器和矩陣乘法控制器,所述矩陣求逆控制器、所述矩陣轉置控制器、所述矩陣加/減控制器和所述矩陣乘法控制器使用統一的接口訪問所述矩陣寄存器模塊,包括一個或兩個寄存器讀接口,以及一個寄存器寫接口;共享使用浮點運算資源,且同時只能有一個占用所述浮點運算資源。
9、進一步地,所述矩陣轉置控制器用于根據加速器控制狀態寄存器中的矩陣配置以及指令響應與解碼模塊發出的控制信息,將指定源矩陣寄存器中指定大小的矩陣按列讀出后再按行寫入指定的目的矩陣寄存器中,完成矩陣的轉置;
10、所述矩陣加/減控制器用于根據加速器控制狀態寄存器中的矩陣配置以及指令響應與解碼模塊發出的控制信息,將兩個指定源矩陣寄存器中指定大小的矩陣使用九個單精度浮點數加/減法器完成加/減法運算后寫回指定目的矩陣寄存器中,完成矩陣的加減運算;
11、所述矩陣乘法控制器用于根據加速器控制狀態寄存器中的矩陣配置以及指令響應與解碼模塊發出的控制信息,將兩個指定源矩陣寄存器中指定大小的矩陣使用九個單精度浮點數乘法器以及加/減法器完成矩陣乘法后寫回指定目的矩陣寄存器中,完成矩陣的乘法運算;
12、所述矩陣求逆控制器用于根據加速器控制狀態寄存器中的矩陣配置以及指令響應與解碼模塊發出的控制信息,將指定源矩陣寄存器中指定大小的矩陣進行求逆運算并寫入指定的目的矩陣寄存器中。
13、進一步地,所述自定義擴展指令包括矩陣配置指令、加速器訪存指令和矩陣運算指令;
14、所述矩陣配置指令用于設置加速器控制狀態寄存器中矩陣的行數以及列數;
15、所述加速器訪存指令,用于訪問加速器;
16、所述矩陣運算指令用于啟動陣列運算。
17、進一步地,所述加速器訪存指令包括矩陣數據加載指令和矩陣數據存儲指令,所述矩陣數據加載指令用于控制加速器從rs0整數寄存器中指定的地址中加載一個完整的矩陣數據,矩陣形狀由加速器控制狀態寄存器決定;所述矩陣數據加載指令控制加速器將mrs-imm立即數指定的矩陣寄存器中的矩陣數據存儲到rs0整數寄存器中指定的地址。
18、進一步地,所述矩陣運算指令包括矩陣求逆指令、矩陣轉置指令、矩陣加法指令、矩陣減法指令和矩陣乘法指令;所述矩陣運算指令所操作的矩陣形狀均由所述加速器控制狀態寄存器控制所述矩陣求逆指令控制矩陣求逆控制器對1號矩陣寄存器中的矩陣進行求逆,求逆結果存放在2號矩陣寄存器中;當源矩陣可逆且成功完成求逆后,minv指令將數據“0”寫入rd目的寄存器,若源矩陣不可逆則向rd目的寄存器中寫入數據“1”;
19、所述矩陣轉置指令控制矩陣轉置控制器對mrs0-imm立即數指定本文檔來自技高網...
【技術保護點】
1.基于RISC-V指令拓展的單精度可配置矩陣運算單元的處理系統,其特征在于,包括用于執行軟件程序以及識別自定義擴展指令的RISC-V處理器,所述RISC-V處理器通過自定義協處理器接口與單精度可配置矩陣運算單元連接,所述單精度可配置矩陣運算單元用于實現單精度浮點的并行運算;所述RISC-V處理器采用所述自定義協處理器接口將指令和數據發送至所述單精度可配置矩陣運算單元,待所述單精度可配置矩陣運算單元完成指令任務后將執行結果返回給所述RISC-V處理器;
2.根據權利要求2所述的基于RISC-V指令拓展的單精度可配置矩陣運算單元的處理系統,其特征在于,所述矩陣寄存器模塊包括至少四個獨立的矩陣寄存器,用于存儲4個矩陣,且各所述矩陣寄存器共用2個讀端口和1個寫端口,可以滿足運算控制器所需的數據吞吐量。
3.根據權利要求3所述的基于RISC-V指令拓展的單精度可配置矩陣運算單元的處理系統,其特征在于,各所述矩陣寄存器最大可以存儲一個9行9列的矩陣,每個元素數據類型均為32位單精度浮點;當所述矩陣寄存器存儲的矩陣小于9行9列時,矩陣的有效數據分布在所述矩陣寄存器的最
4.根據權利要求2所述的基于RISC-V指令拓展的單精度可配置矩陣運算單元的處理系統,其特征在于,所述數據加載通道和所述數據存儲通道中的協議控制模塊根據地址向系統總線發起傳輸,數據經過位寬轉換模塊后寫入所述矩陣寄存器,或寫回系統主存中。
5.根據權利要求1所述的基于RISC-V指令拓展的單精度可配置矩陣運算單元的處理系統,其特征在于,所述浮點運算資源包括9個單精度浮點數加/減法器、9個單精度浮點數乘法器,以及9個單精度浮點數除法器;所述該浮點運算資源由所述運算控制器所共享,以節省運算資源開銷。
6.根據權利要求1所述的基于RISC-V指令拓展的單精度可配置矩陣運算單元的處理系統,其特征在于,所述運算控制器包括矩陣求逆控制器、矩陣轉置控制器、矩陣加/減控制器和矩陣乘法控制器,所述矩陣求逆控制器、所述矩陣轉置控制器、所述矩陣加/減控制器和所述矩陣乘法控制器使用統一的接口訪問所述矩陣寄存器模塊,包括一個或兩個寄存器讀接口,以及一個寄存器寫接口;共享使用浮點運算資源,且同時只能有一個占用所述浮點運算資源。
7.根據權利要求6所述的基于RISC-V指令拓展的單精度可配置矩陣運算單元的處理系統,其特征在于,所述矩陣轉置控制器用于根據加速器控制狀態寄存器中的矩陣配置以及指令響應與解碼模塊發出的控制信息,將指定源矩陣寄存器中指定大小的矩陣按列讀出后再按行寫入指定的目的矩陣寄存器中,完成矩陣的轉置;
8.根據權利要求1所述的基于RISC-V指令拓展的單精度可配置矩陣運算單元的處理系統,其特征在于,所述自定義擴展指令包括矩陣配置指令、加速器訪存指令和矩陣運算指令;
9.根據權利要求8所述的基于RISC-V指令拓展的單精度可配置矩陣運算單元的處理系統,其特征在于,所述加速器訪存指令包括矩陣數據加載指令和矩陣數據存儲指令,所述矩陣數據加載指令用于控制加速器從rs0整數寄存器中指定的地址中加載一個完整的矩陣數據,矩陣形狀由加速器控制狀態寄存器決定。mload指令加載的數據存儲在mrs-imm立即數指定的矩陣寄存器內。類似的,所述矩陣數據加載指令控制加速器將mrs-imm立即數指定的矩陣寄存器中的矩陣數據存儲到rs0整數寄存器中指定的地址;當加速器訪存指令成功執行時會向rd目的整數寄存器中寫入數據“0”,若加速器訪存遇到異常情況,如訪問了無法訪問的地址,則會向rd目的整數寄存器中寫回數據“1”以指示此次訪存失敗。
10.根據權利要求8所述的基于RISC-V指令拓展的單精度可配置矩陣運算單元的處理系統,其特征在于,所述矩陣運算指令包括矩陣求逆指令、矩陣轉置指令、矩陣加法指令、矩陣減法指令和矩陣乘法指令;所述矩陣運算指令所操作的矩陣形狀均由所述加速器控制狀態寄存器控制所述矩陣求逆指令控制矩陣求逆控制器對1號矩陣寄存器中的矩陣進行求逆,求逆結果存放在2號矩陣寄存器中;當源矩陣可逆且成功完成求逆后,minv指令將數據“0”寫入rd目的寄存器,若源矩陣不可逆則向rd目的寄存器中寫入數據“1”;
...【技術特征摘要】
1.基于risc-v指令拓展的單精度可配置矩陣運算單元的處理系統,其特征在于,包括用于執行軟件程序以及識別自定義擴展指令的risc-v處理器,所述risc-v處理器通過自定義協處理器接口與單精度可配置矩陣運算單元連接,所述單精度可配置矩陣運算單元用于實現單精度浮點的并行運算;所述risc-v處理器采用所述自定義協處理器接口將指令和數據發送至所述單精度可配置矩陣運算單元,待所述單精度可配置矩陣運算單元完成指令任務后將執行結果返回給所述risc-v處理器;
2.根據權利要求2所述的基于risc-v指令拓展的單精度可配置矩陣運算單元的處理系統,其特征在于,所述矩陣寄存器模塊包括至少四個獨立的矩陣寄存器,用于存儲4個矩陣,且各所述矩陣寄存器共用2個讀端口和1個寫端口,可以滿足運算控制器所需的數據吞吐量。
3.根據權利要求3所述的基于risc-v指令拓展的單精度可配置矩陣運算單元的處理系統,其特征在于,各所述矩陣寄存器最大可以存儲一個9行9列的矩陣,每個元素數據類型均為32位單精度浮點;當所述矩陣寄存器存儲的矩陣小于9行9列時,矩陣的有效數據分布在所述矩陣寄存器的最低有效行/列中。
4.根據權利要求2所述的基于risc-v指令拓展的單精度可配置矩陣運算單元的處理系統,其特征在于,所述數據加載通道和所述數據存儲通道中的協議控制模塊根據地址向系統總線發起傳輸,數據經過位寬轉換模塊后寫入所述矩陣寄存器,或寫回系統主存中。
5.根據權利要求1所述的基于risc-v指令拓展的單精度可配置矩陣運算單元的處理系統,其特征在于,所述浮點運算資源包括9個單精度浮點數加/減法器、9個單精度浮點數乘法器,以及9個單精度浮點數除法器;所述該浮點運算資源由所述運算控制器所共享,以節省運算資源開銷。
6.根據權利要求1所述的基于risc-v指令拓展的單精度可配置矩陣運算單元的處理系統,其特征在于,所述運算控制器包括矩陣求逆控制器、矩陣轉置控制器、矩陣加/減控制器和矩陣乘法控制器,所述矩陣求逆控制器、所述矩陣轉置控制器、所述矩陣加/減控制器和所述矩...
【專利技術屬性】
技術研發人員:劉佳郡,王宇實,陳睿曉,貢力,鄒卓,
申請(專利權)人:復旦大學,
類型:發明
國別省市:
還沒有人留言評論。發表了對其他瀏覽者有用的留言會獲得科技券。