專利名稱:矩陣處理器及其指令集和嵌入式系統的制作方法
矩陣處理器及其指令集和嵌入式系統
技術領域:
本發明涉及處理器技術領域,特別涉及一種矩陣處理器及其指令集和嵌入式系統。
背景技術:
矩陣運算是科學與工程計算中的基本問題。它不僅是數學學科,也是許多理工學科的重要數學工具。矩陣運算在物理、力學、計算機科學、航空航天等眾多學科中是不可替代的數學工具。特別的,在計算機科學技術中,很多領域都要使用到矩陣運算,比如數字圖像處理、計算機圖形學、模式識別、機器視覺、人工智能、科學計算以及一般的算法設計和分析等。傳統矩陣運算多用處理器串行計算來實現,嚴重制約計算速度的提高。采用硬件實現矩陣運算可以提高計算速度,但是已有矩陣運算的硬件實現多是為某一具體矩陣運算,例如矩陣求逆、矩陣乘法等設計的專用硬件結構,其硬件資源需求大、靈活性差。特別的,當前的各種涉及矩陣運算的完整算法都包含多種矩陣運算以及其他非矩陣運算,這時, 將特定矩陣運算的硬件電路加入計算系統時,需要很長的與系統其它部分的交互和等待時間,這樣,加入專用矩陣運算的硬件模塊所提高的效率就非常有限了。所以,一種能夠獨立完成完整算法的矩陣運算單元是有非常大需求的。
發明內容本發明的目的在于提供一種矩陣處理器及其嵌入式系統,其能夠獨立完成各種矩陣運算和其他數學運算。為了解決上述問題,本發明采用如下技術方案一種矩陣處理器,包括外部數據接口、I RAM, DRAM、矩陣處理器核心;所述外部數據接口,連接矩陣處理器的IRAM、DRAM與外部存儲器,完成矩陣處理器指令的寫入和與外部進行數據交換;所述IRAM和DRAM,相當于矩陣處理器的緩存;IRAM接收外部模塊寫入的指令序列;DRAM接收外部模塊寫入的矩陣或其他數據、接收矩陣處理器核心寫入的計算結果,供矩陣處理器使用或外部模塊讀出,完成矩陣處理器與外部模塊的數據交換;所述矩陣處理器核心,用于取指、譯碼、運算、結果寫回和控制。本發明進一步的改進在于所述外部數據接口、IRAM、DRAM、矩陣處理器核心共同連接一個寄存器組,所述寄存器組存放外部數據接口、IRAM、DRAM、矩陣處理器核心的系統信息和交互信息。本發明進一步的改進在于所述外部數據接口、IRAM、DRAM、矩陣處理器核心共同連接一個中斷產生器,外部數據接口、IRAM、DRAM、矩陣處理器核心的中斷請求通過寄存器組和中斷產生器輸出給外部控制模塊(外部CPU)。本發明進一步的改進在于所述矩陣處理器核心包括取指單元、第一譯碼單元、第二譯碼單元、讀寫數據單元、通用寄存器組、浮點運算單元和控制單元;IRAM、取指單元、第一譯碼單元、第二譯碼單元、浮點運算單元依次連接;浮點運算單元、通用寄存器組、讀寫數據單元、DRAM依次連接;第一譯碼單元連接所述讀寫數據單元。本發明進一步的改進在于取指單元接收控制單元發送的取指令使能信號,從 IRAM中開始循環讀取指令,發送指令給第一譯碼單元,并完成跳轉指令;第一譯碼單元接收來自取指單元發送的指令,根據指令的類別進行譯碼,將矩陣運算和數學函數運算指令轉換成SIMD或浮點操作指令寫入第二譯碼單元,將L/S和移動指令送入讀寫數據單元; 讀寫數據單元接收第一譯碼單元發送的數據地址和使能信號,完成從DRAM中讀取數據寫入通用寄存器組,將通用寄存器組中的數據寫入DRAM;通用寄存器組的寄存器間的數據轉移;第二譯碼單元接收第一譯碼單元發送的SIMD和浮點運算指令,將指令解碼為浮點操作指令,送給浮點運算單元;浮點運算單元包括四個并聯的第一浮點運算模塊和一個第二浮點運算模塊,該四個并聯的第一浮點運算模塊串聯到第二浮點運算模塊;每個第一浮點運算模塊的目的和源寄存器地址由第二譯碼單元控制;第一浮點運算模塊完成擴展單精度浮點運算,第二浮點運算模塊完成擴展單精度的4輸入加法;控制單元控制矩陣處理器的運行,當計算完成或發生異常時發送中斷信號給外部CPU。本發明進一步的改進在于所述矩陣處理器還包括一個特殊寄存器,所述特殊寄存器在矩陣處理器執行有實數參與的運算指令時,保存該實數。本發明進一步的改進在于該矩陣處理器使用的指令集包括L/S和移動指令、跳轉指令、浮點運算指令、數學函數指令、單指令多數據指令、矩陣運算指令;所述L/S和移動指令,完成矩陣處理器緩存和寄存器、寄存器間的數據讀取和寫入;所述跳轉指令,完成指令執行順序的改變;所述浮點運算指令,完成基本浮點數運算,包括求絕對值、比較、加、減、乘、除、開方、乘加運算;所述數學函數指令,完成初等數學函數的運算,包括三角函數、反三角函數、對數函數、指數函數;所述SIMD指令,完成不同浮點數的并行運算,完成的運算和浮點運算指令中包括的運算相同;所述矩陣運算指令,完成矩陣的一些基本的和簡單的運算,包括矩陣生成、矩陣轉置、矩陣的行列提取、按矩陣行列進行求和、矩陣與實數的加減乘除、矩陣的加減乘、矩陣的初等變換。一種嵌入式系統,包括CPU、總線、SDRAM、矩陣處理器、寄存器組和中斷產生器; CPU、SDRAM、矩陣處理器的外部數據接口連接至總線;CPU通過兩條數據線分別連接寄存器組和中斷產生器,所述寄存器組連接中斷產生器和矩陣處理器。一種嵌入式系統的工作方法,包括以下步驟1)系統上電后,CPU復位,從Flash中讀取運行boot指令,完成處理器的初始化; 將配置參數寫入寄存器組,對矩陣處理器進行配置;最后,從SDRAM中加載操作系統,準備開始執行應用程序;2) CPU將矩陣處理器的指令序列和計算所需數據在SDRAM中的起始和終止地址,寫入寄存器組,并發 出開始工作信號給寄存器組,然后釋放總線;矩陣處理器接收到開始工作信號后,申請占用總線;3)當矩陣處理器占用總線后,按照CPU寫入寄存器組中的指令序列和數據的起始和終止地址從SDRAM中讀取數據,分別寫入IRAM和DRAM,然后釋放總線;4)指令序列和數據的寫入完成后,矩陣處理器核心開始工作;取指單元依次從 IRAM中讀取指令,發送給第一譯碼單元;如果接收到第一譯碼單元輸入的指令跳轉指令, 則完成相應的指令跳轉;譯第一譯碼單元將接收到的指令進行如下處理L/S和移動指令發送給讀寫數據單元;跳轉指令發送給取值單元;矩陣和數學函數指令解碼為SIMD或浮點操作指令輸出給第二譯碼單元;SIMD和浮點操作指令直通輸出給第二譯碼單元;讀寫數據單元根據Load指令,讀取DRAM中的數據,寫入通用寄存器組;第二譯碼單元將第一譯碼單元發送的指令進行解碼發送給浮點運算單元;浮點運算單元根據第二譯碼單元送入的浮點計算指令,從通用寄存器中讀取相應浮點數據,完成相應浮點運算,運算結果寫回通用寄存器組;讀寫數據單元根據More指令,將矩陣處理器核心的通用寄存器組中的數據寫回 DRAM ;5) IRAM中的指令全部完成,矩陣處理器通過控制單元將相應的參數寫入寄存器組,經過中斷產生器產生相應的中斷;CPU根據接收到的中斷和所完成的整體任務確定矩陣處理器是否繼續進行其他運算,若計算全部完成,控制矩陣處理器將DRAM中的計算結果寫入SDRAM的指定地址區域。指令集是處理器中用來計算和控制系統的一套指令的集合。每一種處理器在設計時就規定了一系列與其硬件電路相配合的指令系統。而指令集的先進與否,也關系到處理器的性能,它不僅是提高處理器效率的最有效工具,也是處理器性能體現的一個重要標志。矩陣處理器因所完成功能的原因,其指令集不同于通用CPU,但在指令集設計的過程中,仍遵從精簡指令集計算機(RISC)的設計理念。(1)指令種類少,格式規范,指令長度統一。(2)尋址方式簡化。(3)大量利用寄存器間操作,只以特定的操作訪問RAM。(4)簡化處理器結構。(5)加強處理器的并行能力。為實現一個可完成各種矩陣運算和其他數學運算的矩陣處理器指令集,矩陣處理器的指令集應具有六個部分L/S和移動指令、跳轉指令、浮點運算指令、數學函數指令、單指令多數據(SIMD)指令、矩陣運算指令。(1) L (Load) /S (Store)和移動指令,完成矩陣處理器緩存和寄存器、寄存器間的數據讀取和寫入。(2)跳轉指令,完成指令執行順序的改變。(3)浮點運算指令,完成基本浮點數運算,包括求絕對值、比較、加、減、乘、除、開方、乘加等運算。(4)數學函數指令,完成某些初等數學函數的運算,包括三角函數、反三角函數、對數函數、指數函數等。(5) SIMD (單指令多數據)指令,完成不同浮點數的并行運算,完成的運算和浮點運算指令中包括的運算相同。(6)矩陣運算指令,完成矩陣的一些基本的和簡單的運算,包括矩陣生成、矩陣轉置、矩陣的行列提取、按矩陣行列進行求和、矩陣與實數的加減乘除、矩陣的加減乘、矩陣的初等變換,通過組合這些不同的運算,使矩陣處理器能完成復雜算法。本發明提出了一種根據矩陣處理器指令集設計矩陣處理器的方法和流程首先根據實際需要確定矩陣處理器需要完成哪些指令、矩陣處理器的計算精度、工作模式、支持的最大矩陣、IRAM和DRAM的大小、運算單元的組成、通用寄存器的大小,根據上述條件設計完成指令集格式;然后設計完成矩陣處理器的結構及工作流程及異常處理方式等。 本發明根據上述指令集和矩陣處理器設計方法,根據具體使用環境,實現了一種完成擴展單精度的矩陣處理器及其工作機制需要實現的具體指令有(1)L/S和移動指令,包括LM、SM、LMR、SMR、MOV ;⑵跳轉指令,包括 JMP、幾、B、BL ; (3)浮點運算指令,包括FABV、FCMP, FCMPZ, FCPY, FNEG, FADD, FSUB, FMUL, FDIV、FSQRT, FNMUL, FMAC, FMSB, NOP ; (4)數學函數指令,包括FSINF、FCOSF, FTANF, FARCSINF、FARCCOSF、FARCTANF ; (5) SIMD 指令,包括SABV、SCMP, SCMPEZ, SCPY, SNEG, SADD, SSUB, SMUL, SDIV、SSQRT, SNMUL, SMAC, SMSB, NOP ; (6)矩陣運算指令,包括 MG 匪、MGOM、MGIM、MTRN、MRE、MCE、MCPY、MMRA, MNCA, MRA、MCA、MARN、MSRN、MMRN、MDRN、MAM, MSM、MDMM、MDD、MMM, METRS, METRM、METRA, METCS, METCM、METCA。計算精度與外部進行數據交換時浮點數精度為符合IEEE754標準的單精度浮點數;內部計算時使用符合IEEE標準的單精度擴展浮點數,其中符號位1位,指數位8位,底數位39位。兩種工作模式工作模式和調試模式。工作和調試模式主要通過總線接口改變。 總線接口為主設備接口時為工作模式;總線接口為從設備接口時為調試模式。支持最大為32X32的浮點數矩陣運算。IRAM大小為32Kbits ;DRAM為192Kbits (最多可存放4個32 X 32的矩陣)。運算單元由4個并聯的完成相同功能的浮點運算模塊(FPUl)串聯到另外1個浮點運算模塊(FPU2)實現。其中,FPUl完成取絕對值、浮點數比較、復制、取相反數、加、減、 乘、除、開方、乘積取負、乘加、乘減、空操作。FPU2完成4輸入浮點加法。通用寄存器組中每個寄存器為48bits,一共64個,可作為一個整體使用,也可分組使用,共分四組,每組16個,每組寄存器采用一寫三讀的寄存器文件方式。相對于現有技術,本發明具有以下優點本發明矩陣處理器能夠獨立完成各種矩陣運算和其他數學運算,通過組合這些不同的運算,矩陣處理器能完成多種復雜算法。該處理器完成浮點運算速度快,具有很強的靈活性,可以獨立完成整體算法的運算。
圖1為矩陣處理器的基本設計圖;圖2為矩陣處理器的浮點數據格式;圖3為矩陣處理器與總線的連接方式;圖4為浮點運算結構圖;圖5為通用寄存器的結構;圖6為矩陣處理器指令集格式;圖7為矩陣處理器核心的結構圖;圖8為矩陣處理器系統的結構圖。
具體實施方式下面結合附圖和具體實施方式
對本發明做詳細說明。為了使矩陣處理器指令集能夠進行矩陣計算,并且實現完整算法運算和控制,矩陣處理器的指令集應該具有六個部分L/S和移動指令、跳轉指令、浮點操作指令、數學函數指令、單指令多數據(SIMD)指令、矩陣運算指令。根據實際需要,實現的具體指令有(1)L/S和移動指令,包括LM、SM、LMR、SMR、 MOV ; (2)跳轉指令,包括JMP、JL、B、BL ; (3)浮點運算指令,包括FABV、FCMP、FCMPZ、FCPY、 FNEG, FADD, FSUB, FMUL, FDIV、FSQRT, FNMUL, FMAC, FMSB, NOP ; (4)數學函數指令,包括 FSINF, FCOSF, FTANF, FARCSINF、FARCCOSF、FARCTANF ; (5) SIMD 指令,包括SABV、SCMP, SCMPEZ、SCPY、SNEG、SADD、SSUB、SMUL、SDIV、SSQRT、SNMUL、SMAC、SMSB、NOP ; (6)矩陣運算指令,包括MGW、MGOM、MGIM、MTRN、MRE、MCE、MCPY, MMRA, MNCA, MRA, MCA、MARN、MSRN、MMRN、 MDRN、MAM、MSM、MDMM、MDD, MMM、METRS, METRM, METRA, METCS, METCM、METCA。參照圖1,為矩陣處理器的基本設計結構圖。外部數據接口連接矩陣處理器的 IRAM和DRAM,完成矩陣處理器指令的寫入和與外部進行數據交換的功能,連接方式可以為直接與CPU連接或連接到系統總線。IRAM和DRAM相當于矩陣處理器的緩存,IRAM接收外部模塊寫入的指令序列;DRAM接收外部模塊寫入的矩陣或其他數據、接收矩陣處理器核心寫入的計算結果,供矩陣處理器使用或外部模塊讀出,完成矩陣處理器與外部模塊的數據交換。IRAM和DRAM的寬度和深度根據實際情況綜合確定。矩陣處理器核心部分完成取指、譯碼、運算、寫回和控制功能。矩陣處理器計算數據的精度為與外部進行數據交換時浮點數精度為符合 IEEE7M標準的單精度浮點數;內部計算時使用符合IEEE7M標準的單精度擴展浮點數,其中符號位1位,指數位8位,底數為39位,如圖2所示,其中,符號位(sign)表示浮點數的正負;指數(exponent)為一個二進制浮點數的指數;尾數(fraction)為二進制浮點數一部分。單精度擴展浮點數的值表示為value = (-DsignXl. fX2exp_bias(f為尾數,exp為指數,bias為指數的偏移量,在單精度下bias為127)。工作模式工作模式和調試模式。確定外部模塊為嵌入式CPU,其與矩陣處理器通過總線連接,如圖3所示。工作和調試模式通過改變總線接口實現。通過總線主設備接口連接矩陣處理器的RAM和總線時為工作模式,這時CPU通過向控制寄存器寫入數據,控制矩陣處理器何時開始工作,然后矩陣處理器自行從存儲器中讀取所需數據進行運算,運算完成后發出中斷通知CPU計算完成,CPU不能對矩陣處理器的IRAM和DRAM進行讀寫。通過總線從設備接口連接矩陣處理器的RAM和總線時為調試模式,這時CPU可以對矩陣處理器的IRAM和DRAM進行讀寫。支持最大為32X32的浮點數矩陣運算。IRAM 大小為 32Kbits(1024X32bits)。DRAM 為 192Kbits 0X 32 X 32 X 48bits,最多可存放4個32 X 32的矩陣),矩陣數據以矩陣起始地址開始按行依次連續寫入數據RAM。浮點運算單元如圖4所示,由4個并聯的完成相同功能的浮點運算模塊(FPUl)串聯到另外1個浮點運算模塊(FPU》實現。其中,FPUl完成取絕對值、兩浮點數比較、浮點數與0比較、復制、取相反數、加、減、乘、除、開方、乘積取負、乘力口、乘減、空操作。FPUl的輸入有兩部分譯碼單元輸入的計算有效信號;通用寄存器組和特殊寄存器輸入的操作數。其中,譯碼單元輸入的計算有效信號包括取絕對值、兩浮點數比較、浮點數與O比較、復制、取相反數、加、減、乘、除、開方、乘積取負、乘加、乘減、空操作和直接輸出的有效信號。操作數包括通用寄存器組和特殊寄存器輸入,通常情況下,通用寄存器組的3個讀出端口(讀出端口 1、讀出端口 2、讀出端口 3)分別對應于FPUl的3個操作數輸入端口(操作數輸入端口 1、操作數輸入端口 2、操作數輸入端口 3);當特殊寄存器輸入有效信號有效時,操作數輸入端口 2的輸入為特殊寄存器輸出數據。FPU2完成4輸入浮點加法。輸出控制模塊接收4個 FPUl的輸出和FPU2的輸出,選擇合適的運算結果輸出。圖5所示為通用寄存器組的結構圖。通用寄存器組中每個寄存器為48bits,一共 64個,可作為一個整體使用,也可分組使用,共分四組,每組16個,每組寄存器采用1寫3讀的寄存器文件方式,每一組對應一個FPUl。通用寄存器組的地址為6bits,由兩部分組成 高4位為通用寄存器組分組組內地址,低2位為分組編號。當寄存器作為整體使用時,地址從0-63 ;當通用寄存器組作為4組分別使用時,分組組內地址從0-15,分組編號從0-3。圖 5 (a)所示為通用寄存器組一個分組的結構圖,它由3個寄存器組組成,3個寄存器組結構功能相同。通用寄存器組一個分組的輸入有寫數據信息,包括寫地址、寫有效和寫數據;讀數據信息,包括讀地址;輸出包括3個寄存器組的讀出端口(讀出端口 1、讀出端口 2、讀出端口 3)。圖5(b)所示為通用寄存器組的結構圖,它由4個通用寄存器組的分組、4個多路選擇器(MUX1、MUX2、MUX3、MUX4)和1個2_4譯碼器組成。MUXl根據控制信號,從不同的寫地址輸入中,選擇正確輸入作為寫地址輸入給通用寄存器組。其中組內地址同時輸入給通用寄存器組分組1-4 ;分組編號輸入給2-4譯碼器,輸出為寫有效信號(分組編號為00、01、 IOUl時,輸出分別為通用寄存器 組分組1-4的寫有效信號)。MUX2根據相同控制信號,從不同的寫數據輸入中,選擇正確輸入作為寫入通用寄存器組分組的數據給通用寄存器組分組。MUX3根據控制信號,從不同的讀地址輸入中,選擇正確輸入作為讀通用寄存器組分組的地址給通用寄存器組。MUX4根據控制信號,從通用寄存器組不同分組的輸出數據中,選擇正確輸出作為通用寄存器組的輸出數據。根據以上條件,確定矩陣處理器指令的格式如圖6所示。矩陣處理器指令集分為六類(1)L/S和移動指令,完成矩陣處理器數據RAM和通用寄存器組間的數據交換、移動指令完成MPU通用寄存器組中各寄存器間的數據交換、通用寄存器組和特殊寄存器的數據交換;(2)跳轉指令,完成指令地址的跳轉,包括條件和非條件跳轉指令;(3)浮點運算指令, 完成浮點數的數學運算,包括絕對值、比較、取反、加、減、乘、除、開方、乘累加等;(4)數據函數指令,完成數學函數運算,包括三角函數、反三角函數運算等;(5) SIMD指令,完成單指令多數據運算,同時完成多組浮點運算;(6)矩陣運算指令,完成矩陣運算,包括生成全 0矩陣、全1矩陣、單位陣、轉置、提取行、提取列、矩陣復制、求某行或某列和、按行求和、按列求和、矩陣加減乘除實數、矩陣加減、矩陣點乘、矩陣乘法、矩陣初等變換操作。指令類型在指令中通過Type表示,Type為每個指令的最高4bits,L/S和移動指令、跳轉指令、浮點運算指令、數學函數指令、SIMD指令、矩陣運算指令的Type分別為 0001、0010、0011、0100、0101、0110。(1)L/S和移動指令。指令的0-3位為0P_code,如表1所示。
表1L/S和移動指令Type OP—code指令名
權利要求
1.一種矩陣處理器,其特征在于,包括外部數據接口、IRAM、DRAM、矩陣處理器核心;所述外部數據接口連接矩陣處理器的IRAM、DRAM與外部存儲器,完成矩陣處理器指令的寫入和與外部進行數據交換;所述IRAM和DRAM,相當于矩陣處理器的緩存;IRAM接收外部模塊寫入的指令序列; DRAM接收外部模塊寫入的矩陣或其他數據、接收矩陣處理器核心寫入的計算結果,供矩陣處理器使用或外部模塊讀出,完成矩陣處理器與外部模塊的數據交換;所述矩陣處理器核心,用于取指、譯碼、運算、結果寫回和控制。
2.根據權利要求1所述的一種矩陣處理器,其特征在于,所述外部數據接口、IRAM、 DRAM、矩陣處理器核心共同連接一個寄存器組,所述寄存器組存放外部數據接口、IRAM、 DRAM、矩陣處理器核心的系統信息和交互信息。
3.根據權利要求2所述的一種矩陣處理器,其特征在于,所述外部數據接口、IRAM、 DRAM、矩陣處理器核心共同連接一個中斷產生器,外部數據接口、IRAM、DRAM、矩陣處理器核心的中斷請求通過寄存器組和中斷產生器輸出給外部CPU。
4.根據權利要求1所述的一種矩陣處理器,其特征在于,所述矩陣處理器核心包括取指單元、第一譯碼單元、第二譯碼單元、讀寫數據單元、通用寄存器組、浮點運算單元和控制單元;IRAM、取指單元、第一譯碼單元、第二譯碼單元、浮點運算單元依次連接;浮點運算單元、通用寄存器組、讀寫數據單元、DRAM依次連接;第一譯碼單元連接所述讀寫數據單元。
5.根據權利要求4所述的一種矩陣處理器,其特征在于,該矩陣處理器使用的指令集包括L/S和移動指令、跳轉指令、浮點運算指令、數學函數指令、單指令多數據指令、矩陣運算指令;所述L/S和移動指令,完成矩陣處理器緩存和寄存器、寄存器間的數據讀取和寫入;所述跳轉指令,完成指令執行順序的改變;所述浮點運算指令,完成基本浮點數運算,包括求絕對值、比較、加、減、乘、除、開方、乘加運算;所述數學函數指令,完成初等數學函數的運算,包括三角函數、反三角函數、對數函數、 指數函數;所述SIMD指令,完成不同浮點數的并行運算,完成的運算和浮點運算指令中包括的運算相同;所述矩陣運算指令,完成矩陣的一些基本的和簡單的運算,包括矩陣生成、矩陣轉置、 矩陣的行列提取、按矩陣行列進行求和、矩陣與實數的加減乘除、矩陣的加減乘、矩陣的初等變換。
6.根據權利要求4或5所述的一種矩陣處理器,其特征在于,取指單元接收控制單元發送的取指令使能信號,從IRAM中開始循環讀取指令,發送指令給第一譯碼單元,并完成跳轉指令;第一譯碼單元接收來自取指單元發送的指令,根據指令的類別進行譯碼,將矩陣運算和數學函數運算指令轉換成SIMD或浮點操作指令寫入第二譯碼單元,將L/S和移動指令送入讀寫數據單元;讀寫數據單元接收第一譯碼單元發送的數據地址和使能信號,完成從DRAM中讀取數據寫入通用寄存器組,將通用寄存器組中的數據寫入DRAM ;通用寄存器組的寄存器間的數據轉移;第二譯碼單元接收第一譯碼單元發送的SIMD和浮點運算指令,將指令解碼為浮點操作指令,送給浮點運算單元;浮點運算單元包括四個并聯的第一浮點運算模塊和一個第二浮點運算模塊,該四個并聯的第一浮點運算模塊串聯到第二浮點運算模塊;每個第一浮點運算模塊的目的和源寄存器地址由第二譯碼單元控制;第一浮點運算模塊完成擴展單精度浮點運算,第二浮點運算模塊完成擴展單精度的4輸入加法;控制單元控制矩陣處理器的運行,當計算完成或發生異常時發送中斷信號給外部CPU。
7.由權利要求6所述的一種矩陣處理器,其特征在于,所述矩陣處理器還包括一個特殊寄存器,所述特殊寄存器在矩陣處理器執行有實數參與的運算指令時,保存該實數。
8.由權利要求4所述的一種矩陣處理器構建的嵌入式系統,其特征在于,包括CPU、總線、SDRAM、矩陣處理器、寄存器組和中斷產生器;CPU、SDRAM、矩陣處理器的外部數據接口連接至總線;CPU通過兩條數據線分別連接寄存器組和中斷產生器,所述寄存器組連接中斷產生器和矩陣處理器。
9.根據權利要求8所述的嵌入式系統的工作方法,其特征在于,包括以下步驟1)系統上電后,CPU復位,從Flash中讀取運行boot指令,完成處理器的初始化;將配置參數寫入寄存器組,對矩陣處理器進行配置;最后,從SDRAM中加載操作系統,準備開始執行應用程序;2)CPU將矩陣處理器的指令序列和計算所需數據在SDRAM中的起始和終止地址,寫入寄存器組,并發出開始工作信號給寄存器組,然后釋放總線;矩陣處理器接收到開始工作信號后,申請占用總線;3)當矩陣處理器占用總線后,按照CPU寫入寄存器組中的指令序列和數據的起始和終止地址從SDRAM中讀取數據,分別寫入IRAM和DRAM,然后釋放總線;4)指令序列和數據的寫入完成后,矩陣處理器核心開始工作;取指單元依次從IRAM中讀取指令,發送給第一譯碼單元;如果接收到第一譯碼單元輸入的指令跳轉指令,則完成相應的指令跳轉;譯第一譯碼單元將接收到的指令進行如下處理L/S和移動指令發送給讀寫數據單元;跳轉指令發送給取值單元;矩陣和數學函數指令解碼為SIMD或浮點操作指令輸出給第二譯碼單元;SIMD和浮點操作指令直通輸出給第二譯碼單元;讀寫數據單元根據Load指令,讀取DRAM中的數據,寫入通用寄存器組;第二譯碼單元將第一譯碼單元發送的指令進行解碼發送給浮點運算單元;浮點運算單元根據第二譯碼單元送入的浮點計算指令,從通用寄存器中讀取相應浮點數據,完成相應浮點運算,運算結果寫回通用寄存器組; 讀寫數據單元根據Store指令,將矩陣處理器核心的通用寄存器組中的數據寫回DRAM ;5)IRAM中的指令全部完成,矩陣處理器通過控制單元將相應的參數寫入寄存器組,經過中斷產生器產生相應的中斷;CPU根據接收到的中斷和所完成的整體任務確定矩陣處理器是否繼續進行其他運算,若計算全部完成,控制矩陣處理器將DRAM中的計算結果寫入 SDRAM的指定地址區域。
全文摘要
本發明提出一種矩陣處理器及其指令集和嵌入式系統,該矩陣處理器包括外部數據接口、IRAM、DRAM、矩陣處理器核心;所述外部數據接口,連接矩陣處理器的IRAM、DRAM與外部存儲器,完成矩陣處理器指令的寫入和與外部進行數據交換;所述IRAM和DRAM,相當于矩陣處理器的緩存;IRAM接收外部模塊寫入的指令序列;DRAM接收外部模塊寫入的矩陣或其他數據、接收矩陣處理器核心寫入的計算結果,供矩陣處理器使用或外部模塊讀出,完成矩陣處理器與外部模塊的數據交換;所述矩陣處理器核心,用于取指、譯碼、運算、結果寫回和控制。本發明矩陣處理器能夠獨立完成各種矩陣運算和其他數學運算。
文檔編號G06F15/78GK102360344SQ201110303919
公開日2012年2月22日 申請日期2011年10月10日 優先權日2011年10月10日
發明者張書鋒, 張斌, 李宇海, 梅魁志, 殷浩, 董培祥, 趙晨, 鄭南寧 申請人:西安交通大學