两个人的电影免费视频_国产精品久久久久久久久成人_97视频在线观看播放_久久这里只有精品777_亚洲熟女少妇二三区_4438x8成人网亚洲av_内谢国产内射夫妻免费视频_人妻精品久久久久中国字幕

矩陣處理器及其指令集和嵌入式系統(tǒng)的制作方法

文檔序號:6435145閱讀:269來源:國知局
專利名稱:矩陣處理器及其指令集和嵌入式系統(tǒng)的制作方法
矩陣處理器及其指令集和嵌入式系統(tǒng)
技術(shù)領(lǐng)域
本發(fā)明涉及處理器技術(shù)領(lǐng)域,特別涉及一種矩陣處理器及其指令集和嵌入式系統(tǒng)。
背景技術(shù)
矩陣運算是科學與工程計算中的基本問題。它不僅是數(shù)學學科,也是許多理工學科的重要數(shù)學工具。矩陣運算在物理、力學、計算機科學、航空航天等眾多學科中是不可替代的數(shù)學工具。特別的,在計算機科學技術(shù)中,很多領(lǐng)域都要使用到矩陣運算,比如數(shù)字圖像處理、計算機圖形學、模式識別、機器視覺、人工智能、科學計算以及一般的算法設(shè)計和分析等。傳統(tǒng)矩陣運算多用處理器串行計算來實現(xiàn),嚴重制約計算速度的提高。采用硬件實現(xiàn)矩陣運算可以提高計算速度,但是已有矩陣運算的硬件實現(xiàn)多是為某一具體矩陣運算,例如矩陣求逆、矩陣乘法等設(shè)計的專用硬件結(jié)構(gòu),其硬件資源需求大、靈活性差。特別的,當前的各種涉及矩陣運算的完整算法都包含多種矩陣運算以及其他非矩陣運算,這時, 將特定矩陣運算的硬件電路加入計算系統(tǒng)時,需要很長的與系統(tǒng)其它部分的交互和等待時間,這樣,加入專用矩陣運算的硬件模塊所提高的效率就非常有限了。所以,一種能夠獨立完成完整算法的矩陣運算單元是有非常大需求的。

發(fā)明內(nèi)容本發(fā)明的目的在于提供一種矩陣處理器及其嵌入式系統(tǒng),其能夠獨立完成各種矩陣運算和其他數(shù)學運算。為了解決上述問題,本發(fā)明采用如下技術(shù)方案一種矩陣處理器,包括外部數(shù)據(jù)接口、I RAM, DRAM、矩陣處理器核心;所述外部數(shù)據(jù)接口,連接矩陣處理器的IRAM、DRAM與外部存儲器,完成矩陣處理器指令的寫入和與外部進行數(shù)據(jù)交換;所述IRAM和DRAM,相當于矩陣處理器的緩存;IRAM接收外部模塊寫入的指令序列;DRAM接收外部模塊寫入的矩陣或其他數(shù)據(jù)、接收矩陣處理器核心寫入的計算結(jié)果,供矩陣處理器使用或外部模塊讀出,完成矩陣處理器與外部模塊的數(shù)據(jù)交換;所述矩陣處理器核心,用于取指、譯碼、運算、結(jié)果寫回和控制。本發(fā)明進一步的改進在于所述外部數(shù)據(jù)接口、IRAM、DRAM、矩陣處理器核心共同連接一個寄存器組,所述寄存器組存放外部數(shù)據(jù)接口、IRAM、DRAM、矩陣處理器核心的系統(tǒng)信息和交互信息。本發(fā)明進一步的改進在于所述外部數(shù)據(jù)接口、IRAM、DRAM、矩陣處理器核心共同連接一個中斷產(chǎn)生器,外部數(shù)據(jù)接口、IRAM、DRAM、矩陣處理器核心的中斷請求通過寄存器組和中斷產(chǎn)生器輸出給外部控制模塊(外部CPU)。本發(fā)明進一步的改進在于所述矩陣處理器核心包括取指單元、第一譯碼單元、第二譯碼單元、讀寫數(shù)據(jù)單元、通用寄存器組、浮點運算單元和控制單元;IRAM、取指單元、第一譯碼單元、第二譯碼單元、浮點運算單元依次連接;浮點運算單元、通用寄存器組、讀寫數(shù)據(jù)單元、DRAM依次連接;第一譯碼單元連接所述讀寫數(shù)據(jù)單元。本發(fā)明進一步的改進在于取指單元接收控制單元發(fā)送的取指令使能信號,從 IRAM中開始循環(huán)讀取指令,發(fā)送指令給第一譯碼單元,并完成跳轉(zhuǎn)指令;第一譯碼單元接收來自取指單元發(fā)送的指令,根據(jù)指令的類別進行譯碼,將矩陣運算和數(shù)學函數(shù)運算指令轉(zhuǎn)換成SIMD或浮點操作指令寫入第二譯碼單元,將L/S和移動指令送入讀寫數(shù)據(jù)單元; 讀寫數(shù)據(jù)單元接收第一譯碼單元發(fā)送的數(shù)據(jù)地址和使能信號,完成從DRAM中讀取數(shù)據(jù)寫入通用寄存器組,將通用寄存器組中的數(shù)據(jù)寫入DRAM;通用寄存器組的寄存器間的數(shù)據(jù)轉(zhuǎn)移;第二譯碼單元接收第一譯碼單元發(fā)送的SIMD和浮點運算指令,將指令解碼為浮點操作指令,送給浮點運算單元;浮點運算單元包括四個并聯(lián)的第一浮點運算模塊和一個第二浮點運算模塊,該四個并聯(lián)的第一浮點運算模塊串聯(lián)到第二浮點運算模塊;每個第一浮點運算模塊的目的和源寄存器地址由第二譯碼單元控制;第一浮點運算模塊完成擴展單精度浮點運算,第二浮點運算模塊完成擴展單精度的4輸入加法;控制單元控制矩陣處理器的運行,當計算完成或發(fā)生異常時發(fā)送中斷信號給外部CPU。本發(fā)明進一步的改進在于所述矩陣處理器還包括一個特殊寄存器,所述特殊寄存器在矩陣處理器執(zhí)行有實數(shù)參與的運算指令時,保存該實數(shù)。本發(fā)明進一步的改進在于該矩陣處理器使用的指令集包括L/S和移動指令、跳轉(zhuǎn)指令、浮點運算指令、數(shù)學函數(shù)指令、單指令多數(shù)據(jù)指令、矩陣運算指令;所述L/S和移動指令,完成矩陣處理器緩存和寄存器、寄存器間的數(shù)據(jù)讀取和寫入;所述跳轉(zhuǎn)指令,完成指令執(zhí)行順序的改變;所述浮點運算指令,完成基本浮點數(shù)運算,包括求絕對值、比較、加、減、乘、除、開方、乘加運算;所述數(shù)學函數(shù)指令,完成初等數(shù)學函數(shù)的運算,包括三角函數(shù)、反三角函數(shù)、對數(shù)函數(shù)、指數(shù)函數(shù);所述SIMD指令,完成不同浮點數(shù)的并行運算,完成的運算和浮點運算指令中包括的運算相同;所述矩陣運算指令,完成矩陣的一些基本的和簡單的運算,包括矩陣生成、矩陣轉(zhuǎn)置、矩陣的行列提取、按矩陣行列進行求和、矩陣與實數(shù)的加減乘除、矩陣的加減乘、矩陣的初等變換。一種嵌入式系統(tǒng),包括CPU、總線、SDRAM、矩陣處理器、寄存器組和中斷產(chǎn)生器; CPU、SDRAM、矩陣處理器的外部數(shù)據(jù)接口連接至總線;CPU通過兩條數(shù)據(jù)線分別連接寄存器組和中斷產(chǎn)生器,所述寄存器組連接中斷產(chǎn)生器和矩陣處理器。一種嵌入式系統(tǒng)的工作方法,包括以下步驟1)系統(tǒng)上電后,CPU復位,從Flash中讀取運行boot指令,完成處理器的初始化; 將配置參數(shù)寫入寄存器組,對矩陣處理器進行配置;最后,從SDRAM中加載操作系統(tǒng),準備開始執(zhí)行應(yīng)用程序;2) CPU將矩陣處理器的指令序列和計算所需數(shù)據(jù)在SDRAM中的起始和終止地址,寫入寄存器組,并發(fā) 出開始工作信號給寄存器組,然后釋放總線;矩陣處理器接收到開始工作信號后,申請占用總線;3)當矩陣處理器占用總線后,按照CPU寫入寄存器組中的指令序列和數(shù)據(jù)的起始和終止地址從SDRAM中讀取數(shù)據(jù),分別寫入IRAM和DRAM,然后釋放總線;4)指令序列和數(shù)據(jù)的寫入完成后,矩陣處理器核心開始工作;取指單元依次從 IRAM中讀取指令,發(fā)送給第一譯碼單元;如果接收到第一譯碼單元輸入的指令跳轉(zhuǎn)指令, 則完成相應(yīng)的指令跳轉(zhuǎn);譯第一譯碼單元將接收到的指令進行如下處理L/S和移動指令發(fā)送給讀寫數(shù)據(jù)單元;跳轉(zhuǎn)指令發(fā)送給取值單元;矩陣和數(shù)學函數(shù)指令解碼為SIMD或浮點操作指令輸出給第二譯碼單元;SIMD和浮點操作指令直通輸出給第二譯碼單元;讀寫數(shù)據(jù)單元根據(jù)Load指令,讀取DRAM中的數(shù)據(jù),寫入通用寄存器組;第二譯碼單元將第一譯碼單元發(fā)送的指令進行解碼發(fā)送給浮點運算單元;浮點運算單元根據(jù)第二譯碼單元送入的浮點計算指令,從通用寄存器中讀取相應(yīng)浮點數(shù)據(jù),完成相應(yīng)浮點運算,運算結(jié)果寫回通用寄存器組;讀寫數(shù)據(jù)單元根據(jù)More指令,將矩陣處理器核心的通用寄存器組中的數(shù)據(jù)寫回 DRAM ;5) IRAM中的指令全部完成,矩陣處理器通過控制單元將相應(yīng)的參數(shù)寫入寄存器組,經(jīng)過中斷產(chǎn)生器產(chǎn)生相應(yīng)的中斷;CPU根據(jù)接收到的中斷和所完成的整體任務(wù)確定矩陣處理器是否繼續(xù)進行其他運算,若計算全部完成,控制矩陣處理器將DRAM中的計算結(jié)果寫入SDRAM的指定地址區(qū)域。指令集是處理器中用來計算和控制系統(tǒng)的一套指令的集合。每一種處理器在設(shè)計時就規(guī)定了一系列與其硬件電路相配合的指令系統(tǒng)。而指令集的先進與否,也關(guān)系到處理器的性能,它不僅是提高處理器效率的最有效工具,也是處理器性能體現(xiàn)的一個重要標志。矩陣處理器因所完成功能的原因,其指令集不同于通用CPU,但在指令集設(shè)計的過程中,仍遵從精簡指令集計算機(RISC)的設(shè)計理念。(1)指令種類少,格式規(guī)范,指令長度統(tǒng)一。(2)尋址方式簡化。(3)大量利用寄存器間操作,只以特定的操作訪問RAM。(4)簡化處理器結(jié)構(gòu)。(5)加強處理器的并行能力。為實現(xiàn)一個可完成各種矩陣運算和其他數(shù)學運算的矩陣處理器指令集,矩陣處理器的指令集應(yīng)具有六個部分L/S和移動指令、跳轉(zhuǎn)指令、浮點運算指令、數(shù)學函數(shù)指令、單指令多數(shù)據(jù)(SIMD)指令、矩陣運算指令。(1) L (Load) /S (Store)和移動指令,完成矩陣處理器緩存和寄存器、寄存器間的數(shù)據(jù)讀取和寫入。(2)跳轉(zhuǎn)指令,完成指令執(zhí)行順序的改變。(3)浮點運算指令,完成基本浮點數(shù)運算,包括求絕對值、比較、加、減、乘、除、開方、乘加等運算。(4)數(shù)學函數(shù)指令,完成某些初等數(shù)學函數(shù)的運算,包括三角函數(shù)、反三角函數(shù)、對數(shù)函數(shù)、指數(shù)函數(shù)等。(5) SIMD (單指令多數(shù)據(jù))指令,完成不同浮點數(shù)的并行運算,完成的運算和浮點運算指令中包括的運算相同。(6)矩陣運算指令,完成矩陣的一些基本的和簡單的運算,包括矩陣生成、矩陣轉(zhuǎn)置、矩陣的行列提取、按矩陣行列進行求和、矩陣與實數(shù)的加減乘除、矩陣的加減乘、矩陣的初等變換,通過組合這些不同的運算,使矩陣處理器能完成復雜算法。本發(fā)明提出了一種根據(jù)矩陣處理器指令集設(shè)計矩陣處理器的方法和流程首先根據(jù)實際需要確定矩陣處理器需要完成哪些指令、矩陣處理器的計算精度、工作模式、支持的最大矩陣、IRAM和DRAM的大小、運算單元的組成、通用寄存器的大小,根據(jù)上述條件設(shè)計完成指令集格式;然后設(shè)計完成矩陣處理器的結(jié)構(gòu)及工作流程及異常處理方式等。 本發(fā)明根據(jù)上述指令集和矩陣處理器設(shè)計方法,根據(jù)具體使用環(huán)境,實現(xiàn)了一種完成擴展單精度的矩陣處理器及其工作機制需要實現(xiàn)的具體指令有(1)L/S和移動指令,包括LM、SM、LMR、SMR、MOV ;⑵跳轉(zhuǎn)指令,包括 JMP、幾、B、BL ; (3)浮點運算指令,包括FABV、FCMP, FCMPZ, FCPY, FNEG, FADD, FSUB, FMUL, FDIV、FSQRT, FNMUL, FMAC, FMSB, NOP ; (4)數(shù)學函數(shù)指令,包括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。計算精度與外部進行數(shù)據(jù)交換時浮點數(shù)精度為符合IEEE754標準的單精度浮點數(shù);內(nèi)部計算時使用符合IEEE標準的單精度擴展浮點數(shù),其中符號位1位,指數(shù)位8位,底數(shù)位39位。兩種工作模式工作模式和調(diào)試模式。工作和調(diào)試模式主要通過總線接口改變。 總線接口為主設(shè)備接口時為工作模式;總線接口為從設(shè)備接口時為調(diào)試模式。支持最大為32X32的浮點數(shù)矩陣運算。IRAM大小為32Kbits ;DRAM為192Kbits (最多可存放4個32 X 32的矩陣)。運算單元由4個并聯(lián)的完成相同功能的浮點運算模塊(FPUl)串聯(lián)到另外1個浮點運算模塊(FPU2)實現(xiàn)。其中,F(xiàn)PUl完成取絕對值、浮點數(shù)比較、復制、取相反數(shù)、加、減、 乘、除、開方、乘積取負、乘加、乘減、空操作。FPU2完成4輸入浮點加法。通用寄存器組中每個寄存器為48bits,一共64個,可作為一個整體使用,也可分組使用,共分四組,每組16個,每組寄存器采用一寫三讀的寄存器文件方式。相對于現(xiàn)有技術(shù),本發(fā)明具有以下優(yōu)點本發(fā)明矩陣處理器能夠獨立完成各種矩陣運算和其他數(shù)學運算,通過組合這些不同的運算,矩陣處理器能完成多種復雜算法。該處理器完成浮點運算速度快,具有很強的靈活性,可以獨立完成整體算法的運算。

圖1為矩陣處理器的基本設(shè)計圖;圖2為矩陣處理器的浮點數(shù)據(jù)格式;圖3為矩陣處理器與總線的連接方式;圖4為浮點運算結(jié)構(gòu)圖;圖5為通用寄存器的結(jié)構(gòu);圖6為矩陣處理器指令集格式;圖7為矩陣處理器核心的結(jié)構(gòu)圖;圖8為矩陣處理器系統(tǒng)的結(jié)構(gòu)圖。
具體實施方式下面結(jié)合附圖和具體實施方式
對本發(fā)明做詳細說明。為了使矩陣處理器指令集能夠進行矩陣計算,并且實現(xiàn)完整算法運算和控制,矩陣處理器的指令集應(yīng)該具有六個部分L/S和移動指令、跳轉(zhuǎn)指令、浮點操作指令、數(shù)學函數(shù)指令、單指令多數(shù)據(jù)(SIMD)指令、矩陣運算指令。根據(jù)實際需要,實現(xiàn)的具體指令有(1)L/S和移動指令,包括LM、SM、LMR、SMR、 MOV ; (2)跳轉(zhuǎn)指令,包括JMP、JL、B、BL ; (3)浮點運算指令,包括FABV、FCMP、FCMPZ、FCPY、 FNEG, FADD, FSUB, FMUL, FDIV、FSQRT, FNMUL, FMAC, FMSB, NOP ; (4)數(shù)學函數(shù)指令,包括 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,為矩陣處理器的基本設(shè)計結(jié)構(gòu)圖。外部數(shù)據(jù)接口連接矩陣處理器的 IRAM和DRAM,完成矩陣處理器指令的寫入和與外部進行數(shù)據(jù)交換的功能,連接方式可以為直接與CPU連接或連接到系統(tǒng)總線。IRAM和DRAM相當于矩陣處理器的緩存,IRAM接收外部模塊寫入的指令序列;DRAM接收外部模塊寫入的矩陣或其他數(shù)據(jù)、接收矩陣處理器核心寫入的計算結(jié)果,供矩陣處理器使用或外部模塊讀出,完成矩陣處理器與外部模塊的數(shù)據(jù)交換。IRAM和DRAM的寬度和深度根據(jù)實際情況綜合確定。矩陣處理器核心部分完成取指、譯碼、運算、寫回和控制功能。矩陣處理器計算數(shù)據(jù)的精度為與外部進行數(shù)據(jù)交換時浮點數(shù)精度為符合 IEEE7M標準的單精度浮點數(shù);內(nèi)部計算時使用符合IEEE7M標準的單精度擴展浮點數(shù),其中符號位1位,指數(shù)位8位,底數(shù)為39位,如圖2所示,其中,符號位(sign)表示浮點數(shù)的正負;指數(shù)(exponent)為一個二進制浮點數(shù)的指數(shù);尾數(shù)(fraction)為二進制浮點數(shù)一部分。單精度擴展浮點數(shù)的值表示為value = (-DsignXl. fX2exp_bias(f為尾數(shù),exp為指數(shù),bias為指數(shù)的偏移量,在單精度下bias為127)。工作模式工作模式和調(diào)試模式。確定外部模塊為嵌入式CPU,其與矩陣處理器通過總線連接,如圖3所示。工作和調(diào)試模式通過改變總線接口實現(xiàn)。通過總線主設(shè)備接口連接矩陣處理器的RAM和總線時為工作模式,這時CPU通過向控制寄存器寫入數(shù)據(jù),控制矩陣處理器何時開始工作,然后矩陣處理器自行從存儲器中讀取所需數(shù)據(jù)進行運算,運算完成后發(fā)出中斷通知CPU計算完成,CPU不能對矩陣處理器的IRAM和DRAM進行讀寫。通過總線從設(shè)備接口連接矩陣處理器的RAM和總線時為調(diào)試模式,這時CPU可以對矩陣處理器的IRAM和DRAM進行讀寫。支持最大為32X32的浮點數(shù)矩陣運算。IRAM 大小為 32Kbits(1024X32bits)。DRAM 為 192Kbits 0X 32 X 32 X 48bits,最多可存放4個32 X 32的矩陣),矩陣數(shù)據(jù)以矩陣起始地址開始按行依次連續(xù)寫入數(shù)據(jù)RAM。浮點運算單元如圖4所示,由4個并聯(lián)的完成相同功能的浮點運算模塊(FPUl)串聯(lián)到另外1個浮點運算模塊(FPU》實現(xiàn)。其中,F(xiàn)PUl完成取絕對值、兩浮點數(shù)比較、浮點數(shù)與0比較、復制、取相反數(shù)、加、減、乘、除、開方、乘積取負、乘力口、乘減、空操作。FPUl的輸入有兩部分譯碼單元輸入的計算有效信號;通用寄存器組和特殊寄存器輸入的操作數(shù)。其中,譯碼單元輸入的計算有效信號包括取絕對值、兩浮點數(shù)比較、浮點數(shù)與O比較、復制、取相反數(shù)、加、減、乘、除、開方、乘積取負、乘加、乘減、空操作和直接輸出的有效信號。操作數(shù)包括通用寄存器組和特殊寄存器輸入,通常情況下,通用寄存器組的3個讀出端口(讀出端口 1、讀出端口 2、讀出端口 3)分別對應(yīng)于FPUl的3個操作數(shù)輸入端口(操作數(shù)輸入端口 1、操作數(shù)輸入端口 2、操作數(shù)輸入端口 3);當特殊寄存器輸入有效信號有效時,操作數(shù)輸入端口 2的輸入為特殊寄存器輸出數(shù)據(jù)。FPU2完成4輸入浮點加法。輸出控制模塊接收4個 FPUl的輸出和FPU2的輸出,選擇合適的運算結(jié)果輸出。圖5所示為通用寄存器組的結(jié)構(gòu)圖。通用寄存器組中每個寄存器為48bits,一共 64個,可作為一個整體使用,也可分組使用,共分四組,每組16個,每組寄存器采用1寫3讀的寄存器文件方式,每一組對應(yīng)一個FPUl。通用寄存器組的地址為6bits,由兩部分組成 高4位為通用寄存器組分組組內(nèi)地址,低2位為分組編號。當寄存器作為整體使用時,地址從0-63 ;當通用寄存器組作為4組分別使用時,分組組內(nèi)地址從0-15,分組編號從0-3。圖 5 (a)所示為通用寄存器組一個分組的結(jié)構(gòu)圖,它由3個寄存器組組成,3個寄存器組結(jié)構(gòu)功能相同。通用寄存器組一個分組的輸入有寫數(shù)據(jù)信息,包括寫地址、寫有效和寫數(shù)據(jù);讀數(shù)據(jù)信息,包括讀地址;輸出包括3個寄存器組的讀出端口(讀出端口 1、讀出端口 2、讀出端口 3)。圖5(b)所示為通用寄存器組的結(jié)構(gòu)圖,它由4個通用寄存器組的分組、4個多路選擇器(MUX1、MUX2、MUX3、MUX4)和1個2_4譯碼器組成。MUXl根據(jù)控制信號,從不同的寫地址輸入中,選擇正確輸入作為寫地址輸入給通用寄存器組。其中組內(nèi)地址同時輸入給通用寄存器組分組1-4 ;分組編號輸入給2-4譯碼器,輸出為寫有效信號(分組編號為00、01、 IOUl時,輸出分別為通用寄存器 組分組1-4的寫有效信號)。MUX2根據(jù)相同控制信號,從不同的寫數(shù)據(jù)輸入中,選擇正確輸入作為寫入通用寄存器組分組的數(shù)據(jù)給通用寄存器組分組。MUX3根據(jù)控制信號,從不同的讀地址輸入中,選擇正確輸入作為讀通用寄存器組分組的地址給通用寄存器組。MUX4根據(jù)控制信號,從通用寄存器組不同分組的輸出數(shù)據(jù)中,選擇正確輸出作為通用寄存器組的輸出數(shù)據(jù)。根據(jù)以上條件,確定矩陣處理器指令的格式如圖6所示。矩陣處理器指令集分為六類(1)L/S和移動指令,完成矩陣處理器數(shù)據(jù)RAM和通用寄存器組間的數(shù)據(jù)交換、移動指令完成MPU通用寄存器組中各寄存器間的數(shù)據(jù)交換、通用寄存器組和特殊寄存器的數(shù)據(jù)交換;(2)跳轉(zhuǎn)指令,完成指令地址的跳轉(zhuǎn),包括條件和非條件跳轉(zhuǎn)指令;(3)浮點運算指令, 完成浮點數(shù)的數(shù)學運算,包括絕對值、比較、取反、加、減、乘、除、開方、乘累加等;(4)數(shù)據(jù)函數(shù)指令,完成數(shù)學函數(shù)運算,包括三角函數(shù)、反三角函數(shù)運算等;(5) SIMD指令,完成單指令多數(shù)據(jù)運算,同時完成多組浮點運算;(6)矩陣運算指令,完成矩陣運算,包括生成全 0矩陣、全1矩陣、單位陣、轉(zhuǎn)置、提取行、提取列、矩陣復制、求某行或某列和、按行求和、按列求和、矩陣加減乘除實數(shù)、矩陣加減、矩陣點乘、矩陣乘法、矩陣初等變換操作。指令類型在指令中通過Type表示,Type為每個指令的最高4bits,L/S和移動指令、跳轉(zhuǎn)指令、浮點運算指令、數(shù)學函數(shù)指令、SIMD指令、矩陣運算指令的Type分別為 0001、0010、0011、0100、0101、0110。(1)L/S和移動指令。指令的0-3位為0P_code,如表1所示。
表1L/S和移動指令Type OP—code指令名
權(quán)利要求
1.一種矩陣處理器,其特征在于,包括外部數(shù)據(jù)接口、IRAM、DRAM、矩陣處理器核心;所述外部數(shù)據(jù)接口連接矩陣處理器的IRAM、DRAM與外部存儲器,完成矩陣處理器指令的寫入和與外部進行數(shù)據(jù)交換;所述IRAM和DRAM,相當于矩陣處理器的緩存;IRAM接收外部模塊寫入的指令序列; DRAM接收外部模塊寫入的矩陣或其他數(shù)據(jù)、接收矩陣處理器核心寫入的計算結(jié)果,供矩陣處理器使用或外部模塊讀出,完成矩陣處理器與外部模塊的數(shù)據(jù)交換;所述矩陣處理器核心,用于取指、譯碼、運算、結(jié)果寫回和控制。
2.根據(jù)權(quán)利要求1所述的一種矩陣處理器,其特征在于,所述外部數(shù)據(jù)接口、IRAM、 DRAM、矩陣處理器核心共同連接一個寄存器組,所述寄存器組存放外部數(shù)據(jù)接口、IRAM、 DRAM、矩陣處理器核心的系統(tǒng)信息和交互信息。
3.根據(jù)權(quán)利要求2所述的一種矩陣處理器,其特征在于,所述外部數(shù)據(jù)接口、IRAM、 DRAM、矩陣處理器核心共同連接一個中斷產(chǎn)生器,外部數(shù)據(jù)接口、IRAM、DRAM、矩陣處理器核心的中斷請求通過寄存器組和中斷產(chǎn)生器輸出給外部CPU。
4.根據(jù)權(quán)利要求1所述的一種矩陣處理器,其特征在于,所述矩陣處理器核心包括取指單元、第一譯碼單元、第二譯碼單元、讀寫數(shù)據(jù)單元、通用寄存器組、浮點運算單元和控制單元;IRAM、取指單元、第一譯碼單元、第二譯碼單元、浮點運算單元依次連接;浮點運算單元、通用寄存器組、讀寫數(shù)據(jù)單元、DRAM依次連接;第一譯碼單元連接所述讀寫數(shù)據(jù)單元。
5.根據(jù)權(quán)利要求4所述的一種矩陣處理器,其特征在于,該矩陣處理器使用的指令集包括L/S和移動指令、跳轉(zhuǎn)指令、浮點運算指令、數(shù)學函數(shù)指令、單指令多數(shù)據(jù)指令、矩陣運算指令;所述L/S和移動指令,完成矩陣處理器緩存和寄存器、寄存器間的數(shù)據(jù)讀取和寫入;所述跳轉(zhuǎn)指令,完成指令執(zhí)行順序的改變;所述浮點運算指令,完成基本浮點數(shù)運算,包括求絕對值、比較、加、減、乘、除、開方、乘加運算;所述數(shù)學函數(shù)指令,完成初等數(shù)學函數(shù)的運算,包括三角函數(shù)、反三角函數(shù)、對數(shù)函數(shù)、 指數(shù)函數(shù);所述SIMD指令,完成不同浮點數(shù)的并行運算,完成的運算和浮點運算指令中包括的運算相同;所述矩陣運算指令,完成矩陣的一些基本的和簡單的運算,包括矩陣生成、矩陣轉(zhuǎn)置、 矩陣的行列提取、按矩陣行列進行求和、矩陣與實數(shù)的加減乘除、矩陣的加減乘、矩陣的初等變換。
6.根據(jù)權(quán)利要求4或5所述的一種矩陣處理器,其特征在于,取指單元接收控制單元發(fā)送的取指令使能信號,從IRAM中開始循環(huán)讀取指令,發(fā)送指令給第一譯碼單元,并完成跳轉(zhuǎn)指令;第一譯碼單元接收來自取指單元發(fā)送的指令,根據(jù)指令的類別進行譯碼,將矩陣運算和數(shù)學函數(shù)運算指令轉(zhuǎn)換成SIMD或浮點操作指令寫入第二譯碼單元,將L/S和移動指令送入讀寫數(shù)據(jù)單元;讀寫數(shù)據(jù)單元接收第一譯碼單元發(fā)送的數(shù)據(jù)地址和使能信號,完成從DRAM中讀取數(shù)據(jù)寫入通用寄存器組,將通用寄存器組中的數(shù)據(jù)寫入DRAM ;通用寄存器組的寄存器間的數(shù)據(jù)轉(zhuǎn)移;第二譯碼單元接收第一譯碼單元發(fā)送的SIMD和浮點運算指令,將指令解碼為浮點操作指令,送給浮點運算單元;浮點運算單元包括四個并聯(lián)的第一浮點運算模塊和一個第二浮點運算模塊,該四個并聯(lián)的第一浮點運算模塊串聯(lián)到第二浮點運算模塊;每個第一浮點運算模塊的目的和源寄存器地址由第二譯碼單元控制;第一浮點運算模塊完成擴展單精度浮點運算,第二浮點運算模塊完成擴展單精度的4輸入加法;控制單元控制矩陣處理器的運行,當計算完成或發(fā)生異常時發(fā)送中斷信號給外部CPU。
7.由權(quán)利要求6所述的一種矩陣處理器,其特征在于,所述矩陣處理器還包括一個特殊寄存器,所述特殊寄存器在矩陣處理器執(zhí)行有實數(shù)參與的運算指令時,保存該實數(shù)。
8.由權(quán)利要求4所述的一種矩陣處理器構(gòu)建的嵌入式系統(tǒng),其特征在于,包括CPU、總線、SDRAM、矩陣處理器、寄存器組和中斷產(chǎn)生器;CPU、SDRAM、矩陣處理器的外部數(shù)據(jù)接口連接至總線;CPU通過兩條數(shù)據(jù)線分別連接寄存器組和中斷產(chǎn)生器,所述寄存器組連接中斷產(chǎn)生器和矩陣處理器。
9.根據(jù)權(quán)利要求8所述的嵌入式系統(tǒng)的工作方法,其特征在于,包括以下步驟1)系統(tǒng)上電后,CPU復位,從Flash中讀取運行boot指令,完成處理器的初始化;將配置參數(shù)寫入寄存器組,對矩陣處理器進行配置;最后,從SDRAM中加載操作系統(tǒng),準備開始執(zhí)行應(yīng)用程序;2)CPU將矩陣處理器的指令序列和計算所需數(shù)據(jù)在SDRAM中的起始和終止地址,寫入寄存器組,并發(fā)出開始工作信號給寄存器組,然后釋放總線;矩陣處理器接收到開始工作信號后,申請占用總線;3)當矩陣處理器占用總線后,按照CPU寫入寄存器組中的指令序列和數(shù)據(jù)的起始和終止地址從SDRAM中讀取數(shù)據(jù),分別寫入IRAM和DRAM,然后釋放總線;4)指令序列和數(shù)據(jù)的寫入完成后,矩陣處理器核心開始工作;取指單元依次從IRAM中讀取指令,發(fā)送給第一譯碼單元;如果接收到第一譯碼單元輸入的指令跳轉(zhuǎn)指令,則完成相應(yīng)的指令跳轉(zhuǎn);譯第一譯碼單元將接收到的指令進行如下處理L/S和移動指令發(fā)送給讀寫數(shù)據(jù)單元;跳轉(zhuǎn)指令發(fā)送給取值單元;矩陣和數(shù)學函數(shù)指令解碼為SIMD或浮點操作指令輸出給第二譯碼單元;SIMD和浮點操作指令直通輸出給第二譯碼單元;讀寫數(shù)據(jù)單元根據(jù)Load指令,讀取DRAM中的數(shù)據(jù),寫入通用寄存器組;第二譯碼單元將第一譯碼單元發(fā)送的指令進行解碼發(fā)送給浮點運算單元;浮點運算單元根據(jù)第二譯碼單元送入的浮點計算指令,從通用寄存器中讀取相應(yīng)浮點數(shù)據(jù),完成相應(yīng)浮點運算,運算結(jié)果寫回通用寄存器組; 讀寫數(shù)據(jù)單元根據(jù)Store指令,將矩陣處理器核心的通用寄存器組中的數(shù)據(jù)寫回DRAM ;5)IRAM中的指令全部完成,矩陣處理器通過控制單元將相應(yīng)的參數(shù)寫入寄存器組,經(jīng)過中斷產(chǎn)生器產(chǎn)生相應(yīng)的中斷;CPU根據(jù)接收到的中斷和所完成的整體任務(wù)確定矩陣處理器是否繼續(xù)進行其他運算,若計算全部完成,控制矩陣處理器將DRAM中的計算結(jié)果寫入 SDRAM的指定地址區(qū)域。
全文摘要
本發(fā)明提出一種矩陣處理器及其指令集和嵌入式系統(tǒng),該矩陣處理器包括外部數(shù)據(jù)接口、IRAM、DRAM、矩陣處理器核心;所述外部數(shù)據(jù)接口,連接矩陣處理器的IRAM、DRAM與外部存儲器,完成矩陣處理器指令的寫入和與外部進行數(shù)據(jù)交換;所述IRAM和DRAM,相當于矩陣處理器的緩存;IRAM接收外部模塊寫入的指令序列;DRAM接收外部模塊寫入的矩陣或其他數(shù)據(jù)、接收矩陣處理器核心寫入的計算結(jié)果,供矩陣處理器使用或外部模塊讀出,完成矩陣處理器與外部模塊的數(shù)據(jù)交換;所述矩陣處理器核心,用于取指、譯碼、運算、結(jié)果寫回和控制。本發(fā)明矩陣處理器能夠獨立完成各種矩陣運算和其他數(shù)學運算。
文檔編號G06F15/78GK102360344SQ201110303919
公開日2012年2月22日 申請日期2011年10月10日 優(yōu)先權(quán)日2011年10月10日
發(fā)明者張書鋒, 張斌, 李宇海, 梅魁志, 殷浩, 董培祥, 趙晨, 鄭南寧 申請人:西安交通大學
網(wǎng)友詢問留言 已有0條留言
  • 還沒有人留言評論。精彩留言會獲得點贊!
1
沁阳市| 沿河| 怀远县| 理塘县| 贵定县| 乌恰县| 长宁县| 桦甸市| 西林县| 蛟河市| 莱西市| 西乌| 广汉市| 临朐县| 漳平市| 安顺市| 建始县| 常德市| 新兴县| 焦作市| 胶南市| 山阴县| 吕梁市| 宁南县| 呈贡县| 鸡西市| 炎陵县| 夏河县| 海丰县| 论坛| 休宁县| 大同市| 尤溪县| 宜州市| 开江县| 商水县| 麻江县| 囊谦县| 台北市| 许昌市| 驻马店市|