CN120216033A 用于初始化階段自動(dòng)選擇risc-v或x86指令集的處理器、處理方法及系統(tǒng)_第1頁(yè)
CN120216033A 用于初始化階段自動(dòng)選擇risc-v或x86指令集的處理器、處理方法及系統(tǒng)_第2頁(yè)
CN120216033A 用于初始化階段自動(dòng)選擇risc-v或x86指令集的處理器、處理方法及系統(tǒng)_第3頁(yè)
CN120216033A 用于初始化階段自動(dòng)選擇risc-v或x86指令集的處理器、處理方法及系統(tǒng)_第4頁(yè)
CN120216033A 用于初始化階段自動(dòng)選擇risc-v或x86指令集的處理器、處理方法及系統(tǒng)_第5頁(yè)
已閱讀5頁(yè),還剩14頁(yè)未讀 繼續(xù)免費(fèi)閱讀

下載本文檔

版權(quán)說明:本文檔由用戶提供并上傳,收益歸屬內(nèi)容提供方,若內(nèi)容存在侵權(quán),請(qǐng)進(jìn)行舉報(bào)或認(rèn)領(lǐng)

文檔簡(jiǎn)介

(19)國(guó)家知識(shí)產(chǎn)權(quán)局號(hào)樓3層(72)發(fā)明人欒桂鵬成浩羅正忠蘇明義限公司32103用于初始化階段自動(dòng)選擇RISC-V或X86指令本發(fā)明公開一種用于初始化階段自動(dòng)選擇制信號(hào);多路選擇器被配置為接收ISA控制信號(hào)并據(jù)此接通對(duì)應(yīng)的解碼電路;ISA控制信號(hào)流檢測(cè)模塊輸出第二信號(hào)時(shí),多路選擇器接通是是否比較指令流的西一政比較指令流的是一21.一種用于初始化階段自動(dòng)選擇RISC-V或X86指令集的處理器,其特征在于,包括指令流檢測(cè)模塊和解碼配置模塊,所述解碼配置模塊包括多路選擇器、RISC-V解碼電路和X86解碼電路,所述多路選擇器可選擇地與RISC-V解碼電路或X86解碼電路電連接,所述指令流檢測(cè)模塊被配置為取出指令流并對(duì)其進(jìn)行檢測(cè)和分析后輸出對(duì)應(yīng)的ISA控制信號(hào),所述指令流包括RISC-V指令序列和/或X86指令序列;所述多路選擇器被配置為接收指令流檢測(cè)模塊輸出的ISA控制信號(hào)并根據(jù)ISA控制信號(hào)選擇且連接至對(duì)應(yīng)的解碼電路;所述ISA控制信號(hào)包括第一信號(hào)和第二信號(hào),當(dāng)所述指令流檢測(cè)模塊輸出第一信號(hào)時(shí),所述多路選擇器選擇且連接至X86解碼電路;當(dāng)所述指令流檢測(cè)模塊輸出第二信號(hào)時(shí),所述多路選擇器選擇且連接至RISC-V解碼電路。2.根據(jù)權(quán)利要求1所述的處理器,其特征在于,所述指令流檢測(cè)模塊包括指令寄存器和取值單元,所述指令寄存器與取值單元電連接,所述指令流存儲(chǔ)在指令寄存器中,所述取值單元被配置為取出指令流中的低8位。3.根據(jù)權(quán)利要求2所述的處理器,其特征在于,所述指令流檢測(cè)模塊還包括第一比較器和第二比較器,所述第一比較器及第二比較器均與取值單元相連。4.根據(jù)權(quán)利要求3所述的處理器,其特征在于,所述第一比較器被配置為對(duì)取值單元中取到的指令流的低8位與預(yù)設(shè)的第一固定位模式進(jìn)行比對(duì)并輸出比對(duì)結(jié)果,所述第二比較器被配置為對(duì)取值單元中取到的指令流的低7位與預(yù)設(shè)的第二固定位模式進(jìn)行比對(duì)并輸出比對(duì)結(jié)果。5.根據(jù)權(quán)利要求4所述的處理器,其特征在于,所述多路選擇器包括一個(gè)控制端口和一個(gè)輸出端口,所述控制端口可選擇地與第一比較器或第二比較器電連接,所述控制端口被配置為接收ISA控制信號(hào);所述輸出端口可選擇地與RISC-V解碼電路或X86解碼電路電連接,所述輸出端口被配置為根據(jù)ISA控制信號(hào)接通對(duì)應(yīng)的解碼電路。6.根據(jù)權(quán)利要求5所述的處理器,其特征在于,當(dāng)所述第一比較器的比對(duì)結(jié)果為一致時(shí),第一比較器向多路選擇器輸出所述第一信號(hào);當(dāng)所述第一比較器的比對(duì)結(jié)果為不一致時(shí),所述第二比較器響應(yīng)于該比對(duì)結(jié)果并對(duì)取值單元中取到的指令流的低7位與預(yù)設(shè)的第二固定位模式進(jìn)行比對(duì)。7.根據(jù)權(quán)利要求6所述的處理器,其特征在于,當(dāng)所述第二比較器的比對(duì)結(jié)果為一致時(shí),第二比較器向多路選擇器輸出所述第二信號(hào)8.根據(jù)權(quán)利要求7所述的處理器,其特征在于,還包括異常處理模塊,所述第二比較器還與異常處理模塊相連,所述異常處理模塊被配置為接收所述異常信號(hào)并對(duì)指令流進(jìn)行異常處理。9.根據(jù)權(quán)利要求4所述的處理器,其特征在于,所述第一固定位模式存儲(chǔ)在第一比較器中,所述第二固定位模式存儲(chǔ)在第二比較器中。10.一種基于權(quán)利要求1-9任意一項(xiàng)所述的處理器的處理方法,其特征在于,包括如下在CPU初始化階段,通過指令流檢測(cè)模塊取出指令流并對(duì)其進(jìn)行檢測(cè)和分析后向多路選擇器輸出對(duì)應(yīng)的ISA控制信號(hào);多路選擇器接收到ISA控制信號(hào)后選擇并連接至RISC-V解碼電路或X86解碼電路,使得指令流被送入對(duì)應(yīng)的解碼電路。311.根據(jù)權(quán)利要求10所述的處理方法,其特征在于,所述指令流檢測(cè)模塊取出指令流并對(duì)其進(jìn)行檢測(cè)和分析后向多路選擇器輸出對(duì)應(yīng)的ISA控制信號(hào)的方法如下所述:指令流檢測(cè)模塊先對(duì)取到的指令流的低8位與預(yù)設(shè)的第一固定位模式進(jìn)行比對(duì),若比若比對(duì)結(jié)果不一致,則將取到的指令流的低7位與預(yù)設(shè)的第二固定位模式進(jìn)行比對(duì),若12.根據(jù)權(quán)利要求11所述的處理方法,其特征在于,還包括以下步驟:當(dāng)指令流檢測(cè)模塊將取到的指令流的低7位與預(yù)設(shè)的第二固定位模式進(jìn)行比對(duì)且比對(duì)結(jié)果不一致時(shí),所述指令流檢測(cè)模塊向異常處理模塊傳輸所述異常信號(hào),以使得指令流進(jìn)入異常處理流程。13.根據(jù)權(quán)利要求12所述的處理方法,其特征在于,所述異常處理流程包括如下步驟:所述異常處理模塊發(fā)現(xiàn)非法指令后進(jìn)入異常處理機(jī)制;保存寄存器信息;跳轉(zhuǎn)到異常處理程序入口并執(zhí)行異常處理程序;若異常處理失敗或長(zhǎng)時(shí)間無響應(yīng),則系統(tǒng)重啟以進(jìn)行復(fù)位。14.根據(jù)權(quán)利要求10所述的處理方法,其特征在于,所述初始化階段為CPU上電或復(fù)位后的階段。15.一種計(jì)算機(jī)系統(tǒng),其特征在于,包括如權(quán)利要求1-9中任意一項(xiàng)所述的用于初始化階段自動(dòng)選擇RISC-V或X86指令集的處理器。4用于初始化階段自動(dòng)選擇RISC-V或X86指令集的處理器、處理方法及系統(tǒng)技術(shù)領(lǐng)域[0001]本發(fā)明涉及計(jì)算機(jī)技術(shù)領(lǐng)域,尤其涉及一種用于初始化階段自動(dòng)選擇RISC-V或背景技術(shù)[0002]指令集架構(gòu)(InstructionSetArchitecture,簡(jiǎn)稱ISA)是計(jì)算機(jī)體系結(jié)構(gòu)的核心抽象模型,決定了處理器如何被軟件控制。常見的ISA包括X86(廣泛用于個(gè)人電腦和服務(wù)器)、RISC-V(因其開源性和低功耗特性在嵌入式系統(tǒng)和新興領(lǐng)域中流行)。ISA允許同一架在設(shè)計(jì)時(shí)固定為單一ISA(如X86或RISC-V),無法在初始化時(shí)適應(yīng)不同的軟件環(huán)境,導(dǎo)致硬件資源浪費(fèi)或需要多個(gè)專用CPU,單一ISA的CPU設(shè)計(jì)限制了其在多ISA環(huán)境中的應(yīng)用,特別是在需要兼容不同軟件生態(tài)系統(tǒng)的場(chǎng)景中。在現(xiàn)代計(jì)算中,支持多種ISA的需求日益增長(zhǎng),例如,在云計(jì)算中,虛擬機(jī)可能需要運(yùn)行X86和RISC-V的應(yīng)用程序;在物聯(lián)網(wǎng)設(shè)備中,可能需要根據(jù)任務(wù)需求切換ISA以優(yōu)化功耗和性能。因此,開發(fā)能夠靈活支持多種ISA的CPU成為一個(gè)重要的技術(shù)挑戰(zhàn)。[0003]針對(duì)上述問題,現(xiàn)有技術(shù)中,一種常見的方法是通過軟件仿真在一種ISA的CPU上雖然能夠?qū)崿F(xiàn)不同ISA的兼容性,但存在顯著的技術(shù)不足,其主要問題包括性能開銷大、資源效率低和實(shí)時(shí)性差;指令翻譯或解釋過程導(dǎo)致執(zhí)行效率低下,難以滿足高性能計(jì)算需求;同時(shí),仿真環(huán)境占用額外資源,降低系統(tǒng)效率;對(duì)于實(shí)時(shí)性要求高的應(yīng)用,仿真的延遲和不確定性進(jìn)一步限制了其適用性。另一方面,現(xiàn)有的支持多ISA的處理器在初始化時(shí)通常需要復(fù)雜的硬件設(shè)計(jì)或軟件干預(yù),以確定使用哪種ISA,這種方法不僅增加了開發(fā)難度,還可能引入額外的運(yùn)行時(shí)開銷。[0004]以上背景技術(shù)內(nèi)容的公開僅用于輔助理解本發(fā)明的發(fā)明構(gòu)思及技術(shù)方案,其并不必然屬于本申請(qǐng)的現(xiàn)有技術(shù),也不必然會(huì)給出技術(shù)教導(dǎo);在沒有明確的證據(jù)表明上述內(nèi)容在本申請(qǐng)的申請(qǐng)日之前已經(jīng)公開的情況下,上述背景技術(shù)不應(yīng)當(dāng)用于評(píng)價(jià)本申請(qǐng)的新穎性和創(chuàng)造性。發(fā)明內(nèi)容[0005]本發(fā)明的目的是提供一種用于初始化階段自動(dòng)選擇RISC-V或X86指令集的處理器、處理方法及系統(tǒng),能夠自動(dòng)檢測(cè)指令流特征并配置對(duì)應(yīng)的解碼電路,能夠簡(jiǎn)化CPU初始化過程。[0006]為達(dá)到上述目的,本發(fā)明采用的技術(shù)方案如下:一種用于初始化階段自動(dòng)選擇RISC-V或X86指令集的處理器,包括指令流檢測(cè)模塊和解碼配置模塊,所述解碼配置模塊包括多路選擇器、RISC-V解碼電路和X86解碼電路,5所述多路選擇器可選擇地與RISC-V解碼電路或X86解碼電路電連接,所述指令流檢測(cè)模塊被配置為取出指令流并對(duì)其進(jìn)行檢測(cè)和分析后輸出對(duì)應(yīng)的ISA控制信號(hào),所述指令流包括RISC-V指令序列和/或X86指令序列;所述多路選擇器被配置為接收指令流檢測(cè)模塊輸出的ISA控制信號(hào)并根據(jù)ISA控制信號(hào)選擇且連接至對(duì)應(yīng)的解碼電路;所述ISA控制信號(hào)包括第一信號(hào)和第二信號(hào),當(dāng)所述指令流檢測(cè)模塊輸出第一信號(hào)時(shí),所述多路選擇器選擇且連接至X86解碼電路;當(dāng)所述指令流檢測(cè)模塊輸出第二信號(hào)時(shí),所述多路選擇器選擇且連接至RISC-V解碼電路。[0007]本發(fā)明通過指令流檢測(cè)模塊和解碼配置模塊協(xié)同工作,實(shí)現(xiàn)了CPU在初始化階段根據(jù)指令流特征自動(dòng)選擇X86解碼電路或RISC-V解碼電路的高效機(jī)制。解碼配置模塊根據(jù)指令流檢測(cè)模塊的檢測(cè)結(jié)果生成ISA控制信號(hào),進(jìn)而激活CPU內(nèi)部的X86解碼電路或RISC-V解碼電路。這種動(dòng)態(tài)配置的方式能夠確保指令以原生方式執(zhí)行,無需翻譯或仿真,從而能夠顯著提升初始化效率;這種設(shè)計(jì)讓單顆CPU芯片在初始化時(shí)即可根據(jù)真實(shí)指令內(nèi)容自動(dòng)適配對(duì)應(yīng)的指令集,大幅提高了系統(tǒng)的靈活性,降低了硬件資源浪費(fèi)。此外,解碼配置模塊通過硬件的多路選擇器實(shí)現(xiàn)快速切換,有利于優(yōu)化系統(tǒng)性能。[0008]進(jìn)一步地,承前所述的任一技術(shù)方案或多個(gè)技術(shù)方案的組合,所述指令流檢測(cè)模塊包括指令寄存器和取值單元,所述指令寄存器與取值單元電連接,所述指令流存儲(chǔ)在指令寄存器中,所述取值單元被配置為取出指令流中的低8位。[0009]進(jìn)一步地,承前所述的任一技術(shù)方案或多個(gè)技術(shù)方案的組合,所述指令流檢測(cè)模塊還包括第一比較器和第二比較器,所述第一比較器及第二比較器均與取值單元相連。[0010]進(jìn)一步地,承前所述的任一技術(shù)方案或多個(gè)技術(shù)方案的組合,所述第一比較器被配置為對(duì)取值單元中取到的指令流的低8位與預(yù)設(shè)的第一固定位模式進(jìn)行比對(duì)并輸出比對(duì)結(jié)果,所述第二比較器被配置為對(duì)取值單元中取到的指令流的低7位與預(yù)設(shè)的第二固定位模式進(jìn)行比對(duì)并輸出比對(duì)結(jié)果。本發(fā)明的一些實(shí)施例中,第一固定位模式為二進(jìn)制數(shù)11101010,第二固定位模式為二進(jìn)制數(shù)1101111。[0011]在CPU啟動(dòng)時(shí),指令流檢測(cè)模塊中從指令寄存器中內(nèi)存的重置向量讀取初始指令流,并利用硬件邏輯(第一比較器和第二比較器)快速分析其特征,特征包括指令長(zhǎng)度和操作碼模式,通過分析這些特征以高效區(qū)分RISC-V指令集與X86指令集。[0012]進(jìn)一步地,承前所述的任一技術(shù)方案或多個(gè)技術(shù)方案的組合,所述多路選擇器包括一個(gè)控制端口和一個(gè)輸出端口,所述控制端口可選擇地與第一比較器或第二比較器電連接,所述控制端口被配置為接收ISA控制信號(hào);所述輸出端口可選擇地與RISC-V解碼電路或X86解碼電路電連接,所述輸出端口被配置為根據(jù)ISA控制信號(hào)接通對(duì)應(yīng)的解碼電路。[0013]進(jìn)一步地,承前所述的任一技術(shù)方案或多個(gè)技術(shù)方案的組合,當(dāng)所述第一比較器的比對(duì)結(jié)果為一致時(shí),第一比較器向多路選擇器輸出所述第一信號(hào);當(dāng)所述第一比較器的比對(duì)結(jié)果為不一致時(shí),所述第二比較器響應(yīng)于該比對(duì)結(jié)果并對(duì)取值單元中取到的指令流的低7位與預(yù)設(shè)的第二固定位模式進(jìn)行比對(duì)。[0014]進(jìn)一步地,承前所述的任一技術(shù)方案或多個(gè)技術(shù)方案的組合,當(dāng)所述第二比較器的比對(duì)結(jié)果為一致時(shí),第二比較器向多路選擇器輸出所述第二信號(hào);否則,第二比較器輸出異常信號(hào)。[0015]具體地,當(dāng)?shù)谝槐容^器經(jīng)過分析比對(duì)后輸出第一信號(hào)時(shí),此時(shí)的多路選擇器的控6制端口與第一比較器電連接,同時(shí),多路選擇器的輸出端口接通X86解碼電路,使得當(dāng)前的指令流能夠被準(zhǔn)確送入X86解碼電路并進(jìn)行后續(xù)的處理。當(dāng)?shù)谝槐容^器經(jīng)過分析比對(duì)后輸出比對(duì)結(jié)果不一致的信號(hào)時(shí),會(huì)進(jìn)一步由第二比較器對(duì)指令流的低7位進(jìn)行比對(duì),當(dāng)?shù)诙容^器經(jīng)過分析比對(duì)后輸出第二信號(hào)時(shí),此時(shí)的多路選擇器的控制端口與第二比較器電連接,同時(shí),多路選擇器的輸出端口接通RISC-V解碼電路,使得當(dāng)前的指令流能夠被準(zhǔn)確送入RISC-V解碼電路并進(jìn)行后續(xù)的處理。[0016]進(jìn)一步地,承前所述的任一技術(shù)方案或多個(gè)技術(shù)方案的組合,還包括異常處理模塊,所述第二比較器還與異常處理模塊相連,所述異常處理模塊被配置為接收所述異常信號(hào)并對(duì)指令流進(jìn)行異常處理。[0017]進(jìn)一步地,承前所述的任一技術(shù)方案或多個(gè)技術(shù)方案的組合,所述第一固定位模式存儲(chǔ)在第一比較器中,所述第二固定位模式存儲(chǔ)在第二比較器中。[0018]根據(jù)本發(fā)明的另一方面,提供了一種基于上述處理器的用于初始化階段自動(dòng)選擇在CPU初始化階段,通過指令流檢測(cè)模塊取出指令流并對(duì)其進(jìn)行檢測(cè)和分析后向多路選擇器輸出對(duì)應(yīng)的ISA控制信號(hào);多路選擇器接收到ISA控制信號(hào)后選擇并連接至RISC-V解碼電路或X86解碼電路,使得指令流被送入對(duì)應(yīng)的解碼電路。[0019]進(jìn)一步地,承前所述的任一技術(shù)方案或多個(gè)技術(shù)方案的組合,所述指令流檢測(cè)模塊取出指令流并對(duì)其進(jìn)行檢測(cè)和分析后向多路選擇器輸出對(duì)應(yīng)的ISA控制信號(hào)的方法如下指令流檢測(cè)模塊先對(duì)取到的指令流的低8位與預(yù)設(shè)的第一固定位模式進(jìn)行比對(duì),若比對(duì)結(jié)果一致,則輸出第一信號(hào);若比對(duì)結(jié)果不一致,則將取到的指令流的低7位與預(yù)設(shè)的第二固定位模式進(jìn)行比[0020]進(jìn)一步地,承前所述的任一技術(shù)方案或多個(gè)技術(shù)方案的組合,還包括以下步驟:當(dāng)指令流檢測(cè)模塊將取到的指令流的低7位與預(yù)設(shè)的第二固定位模式進(jìn)行比對(duì)且比對(duì)結(jié)果不一致時(shí),所述指令流檢測(cè)模塊向異常處理模塊傳輸所述異常信號(hào),以使得指令流進(jìn)入異常處理流程。當(dāng)?shù)谝槐容^器與第二比較器經(jīng)過比對(duì)后均未能滿足特征條件時(shí),指令流檢測(cè)模塊就會(huì)判定當(dāng)前指令流異常,進(jìn)而使其進(jìn)入異常處理流程。[0021]進(jìn)一步地,承前所述的任一技術(shù)方案或多個(gè)技術(shù)方案的組合,所述異常處理流程包括如下步驟:所述異常處理模塊發(fā)現(xiàn)非法指令后進(jìn)入異常處理機(jī)制;保存寄存器信息;跳轉(zhuǎn)到異常處理程序入口并執(zhí)行異常處理程序;若異常處理失敗或長(zhǎng)時(shí)間無響應(yīng),則系統(tǒng)重啟以進(jìn)行復(fù)位。[0022]進(jìn)一步地,承前所述的任一技術(shù)方案或多個(gè)技術(shù)方案的組合,所述初始化階段為CPU上電或復(fù)位后的階段。[0023]根據(jù)本發(fā)明的另一方面,本發(fā)明提供了一種計(jì)算機(jī)系統(tǒng),包括如上任一技術(shù)方案或多個(gè)技術(shù)方案的組合所述的用于初始化階段自動(dòng)選擇RISC-V或X86指令集的處理器,該7計(jì)算機(jī)系統(tǒng)基于上述處理器并執(zhí)行上述的處理方法。[0024]本發(fā)明提供的技術(shù)方案帶來的有益效果如下:a.本發(fā)明通過指令流檢測(cè)模塊在CPU初始化時(shí)直接分析指令流特征并配置對(duì)應(yīng)的解碼電路,避免了仿真過程,使初始化階段的指令能夠以原生方式執(zhí)行指令,有利于提升系統(tǒng)的性能且確保快速、高效的初始化過程,特別適合云計(jì)算和嵌入式系統(tǒng)等場(chǎng)景;b.本發(fā)明通過單顆CPU支持X86和RISC-V指令集架構(gòu),無需為每種指令集架構(gòu)配備獨(dú)立硬件,有利于降低芯片的功耗和制造成本,優(yōu)化了資源利用率;c.本發(fā)明通過硬件模塊化設(shè)計(jì),能夠自動(dòng)完成指令集架構(gòu)的選擇和解碼配置,簡(jiǎn)化了系統(tǒng)架構(gòu),無需復(fù)雜的初始化機(jī)制或軟件干預(yù),有利于減少設(shè)計(jì)的復(fù)雜性,提高了系統(tǒng)的可維護(hù)性和可擴(kuò)展性,縮短了開發(fā)周期。附圖說明[0025]為了更清楚地說明本申請(qǐng)實(shí)施例或現(xiàn)有技術(shù)中的技術(shù)方案,下面將對(duì)實(shí)施例或現(xiàn)有技術(shù)描述中所需要使用的附圖作簡(jiǎn)單地介紹,顯而易見地,下面描述中的附圖僅僅是本申請(qǐng)中記載的一些實(shí)施例,對(duì)于本領(lǐng)域普通技術(shù)人員來講,在不付出創(chuàng)造性勞動(dòng)的前提下,還可以根據(jù)這些附圖獲得其他的附圖。[0026]圖1為本發(fā)明的一個(gè)示例性實(shí)施例提供的用于初始化階段自動(dòng)選擇RISC-V或X86指令集的處理器的結(jié)構(gòu)示意圖;圖2為本發(fā)明的一個(gè)示例性實(shí)施例提供的用于初始化階段自動(dòng)選擇RISC-V或X86指令集的處理器的工作流程圖。具體實(shí)施方式[0027]為了使本技術(shù)領(lǐng)域的人員更好地理解本發(fā)明方案,下面將結(jié)合本發(fā)明實(shí)施例中的附圖,對(duì)本發(fā)明實(shí)施例中的技術(shù)方案進(jìn)行清楚、完整地描述,顯然,所描述的實(shí)施例僅僅是本發(fā)明一部分的實(shí)施例,而不是全部的實(shí)施例?;诒景l(fā)明中的實(shí)施例,本領(lǐng)域普通技術(shù)人員在沒有做出創(chuàng)造性勞動(dòng)前提下所獲得的所有其他實(shí)施例,都應(yīng)當(dāng)屬于本發(fā)明保護(hù)的范[0028]需要說明的是,本發(fā)明的說明書和權(quán)利要求書及上述附圖中的術(shù)語(yǔ)“第一”、“第二”等是用于區(qū)別類似的對(duì)象,而不必用于描述特定的順序或先后次序。應(yīng)該理解這樣使用的數(shù)據(jù)在適當(dāng)情況下可以互換,以便這里描述的本發(fā)明的實(shí)施例能夠以除了在這里圖示或清楚地列出的那些步驟或單元,而是可包括沒有清楚地列出的或?qū)τ谶@些過程、方法、產(chǎn)品或設(shè)備固有的其他步驟或單元。[0029]參見圖1,在本發(fā)明的一個(gè)實(shí)施例中,提供了一種用于初始化階段自動(dòng)選擇RISC-V或X86指令集的處理器,包括指令流檢測(cè)模塊、解碼配置模塊和異常處理模塊,解碼配置模塊和異常處理模塊均與指令流檢測(cè)模塊連接,其中的指令流包括RISC-V指令序列和/或X86指令序列;指令流檢測(cè)模塊被配置為取出指令流并對(duì)其進(jìn)行檢測(cè)和分析后輸出對(duì)應(yīng)的ISA控制信號(hào),解碼配置模塊被配置為接收ISA控制信號(hào)并據(jù)此接通對(duì)應(yīng)的解碼電路;此外,指8令流檢測(cè)模塊還被配置為取出指令流并對(duì)其進(jìn)行檢測(cè)和分析后輸出異常信號(hào)(當(dāng)指令流不滿足RISC-V指令集或X86指令集的特征條件時(shí)),異常處理模塊被配置為接收異常信號(hào)并對(duì)指令流進(jìn)行異常處理。[0030]其中,ISA控制信號(hào)包括第一信號(hào)和第二信號(hào),當(dāng)指令流檢測(cè)模塊輸出第一信號(hào)時(shí),則說明讀取指令流的特征符合X86指令集的特征;當(dāng)指令流檢測(cè)模塊輸出第二信號(hào)時(shí),則說明讀取指令流的特征符合RISC-V指令集的特征。[0031]進(jìn)一步地,指令流檢測(cè)模塊包括指令寄存器、取值單元、第一比較器和第二比較器,指令寄存器與取值單元電連接,指令流存儲(chǔ)在指令寄存器中,取值單元被配置為取出指令流中的低8位;第一比較器及第二比較器均與取值單元相連,并且,第一比較器中預(yù)設(shè)有第一固定位模式,第二比較器中預(yù)設(shè)有第二固定位模式,本實(shí)施例中的第一固定位模式為二進(jìn)制數(shù)11101010,第二固定位模式為二進(jìn)制數(shù)1101111。[0032]第一比較器被配置為對(duì)取值單元中取到的指令流的低8位與預(yù)設(shè)的第一固定位模式11101010進(jìn)行比對(duì)并輸出比對(duì)結(jié)果,第二比較器被配置為對(duì)取值單元中取到的指令流的低7位與預(yù)設(shè)的第二固定位模式1101111進(jìn)行比對(duì)并輸出比對(duì)結(jié)果。其中,第一比較器和第二比較器比對(duì)的特征包括指令長(zhǎng)度和操作碼模式。[0033]進(jìn)一步地,解碼配置模塊包括多路選擇器、RISC-V解碼電路和X86解碼電路,多路選擇器可選擇地與RISC-V解碼電路或X86解碼電路電連接,多路選擇器被配置為接收指令流檢測(cè)模塊輸出的ISA控制信號(hào)并根據(jù)ISA控制信號(hào)選擇且連接至對(duì)應(yīng)的解碼電路。其中,多路選擇器用于在多個(gè)輸入信號(hào)源之間,根據(jù)控制信號(hào)選擇其中之一作為輸出,其包括一個(gè)控制端口和一個(gè)輸出端口,控制端口可選擇地與第一比較器或第二比較器電連接,控制端口被配置為接收ISA控制信號(hào);輸出端口可選擇地與RISC-V解碼電路或X86解碼電路電連接,輸出端口被配置為根據(jù)ISA控制信號(hào)接通對(duì)應(yīng)的解碼電路。硬件的多路選擇器的設(shè)置能夠保證根據(jù)指令流的特征快速切換RISC-V解碼電路與X86解碼電路,有利于優(yōu)化系統(tǒng)性能。[0034]當(dāng)?shù)谝槐容^器比對(duì)的指令流的低8位與預(yù)設(shè)的第一固定位模式相一致時(shí),第一比較器會(huì)輸出第一信號(hào),此時(shí)的多路選擇器的控制端口與第一比較器電連接,多路選擇器會(huì)接收來自第一比較器的第一信號(hào),并響應(yīng)于第一信號(hào)進(jìn)而使得多路選擇器的輸出端口選擇并連接至X86解碼電路,使得當(dāng)前的指令流能夠被準(zhǔn)確送入X86解碼電路并進(jìn)行后續(xù)的處理。當(dāng)?shù)谝槐容^器比對(duì)的指令流的低8位與預(yù)設(shè)的第一固定位模式不一致時(shí),第一比較器會(huì)向第二比較器傳輸這一比對(duì)結(jié)果的信號(hào),第二比較器會(huì)響應(yīng)于該比對(duì)結(jié)果并對(duì)取值單元中取到的指令流的低7位與預(yù)設(shè)的第二固定位模式進(jìn)行比對(duì),當(dāng)?shù)诙容^器比對(duì)的指令流的低7位與預(yù)設(shè)的第二固定位模式相一致時(shí),此時(shí)的多路選擇器的控制端口會(huì)切換至與第二比較器電連接,多路選擇器會(huì)接收來自第二比較器的第二信號(hào),并響應(yīng)于第二信號(hào)進(jìn)而使得多路選擇器的輸出端口選擇并連接至RISC-V解碼電路,使得當(dāng)前的指令流能夠被準(zhǔn)確送入RISC-V解碼電路并進(jìn)行后續(xù)的處理。當(dāng)?shù)诙容^器比對(duì)的指令流的低7位與預(yù)設(shè)的第二固定位模式不一致時(shí),會(huì)判定當(dāng)前指令流異常,第二比較器會(huì)輸出一異常信號(hào)。[0035]進(jìn)一步地,第二比較器還與異常處理模塊相連,異常處理模塊接收到來自第二比較器輸出的異常信號(hào)后,會(huì)對(duì)指令流進(jìn)行異常處理,使得當(dāng)前的指令流進(jìn)入異常處理流程。[0036]如圖2所示,本發(fā)明還提供了一種基于上述處理器的處理方法,包括如下步驟:在CPU初始化階段,指令流存儲(chǔ)在指令寄存器中,通過指令流檢測(cè)模塊中的取值單9元提取指令寄存器中存儲(chǔ)的指令流的低8位,其中,初始化階段為CPU上電或復(fù)位后的階段。首先,第一比較器將取值單元取到的指令流的低8位與預(yù)設(shè)的第一固定位模式11101010進(jìn)行比對(duì),當(dāng)比對(duì)結(jié)果一致時(shí),第一比較器輸出第一信號(hào)并與多路選擇器的控制端口電連接,多路選擇器接收到第一信號(hào)后控制其輸出端口選擇并連接至X86解碼電路以接通X86解碼電路,指令流準(zhǔn)確進(jìn)入X86解碼電路并進(jìn)行后續(xù)的處理。[0037]隨之,若第一比較器比對(duì)的指令流的低8位與預(yù)設(shè)的第一固定位模式11101010不一致,則會(huì)觸發(fā)第二比較器以使其將取到的指令流中的低7位與預(yù)設(shè)的第二固定位模式1101111進(jìn)行比對(duì),當(dāng)比對(duì)結(jié)果一致時(shí),第二比較器向多路選擇器輸出第二信號(hào),多路選擇器會(huì)切換至控制端口與第二比較器電連接并控制輸出端口選擇并連接至RISC-V解碼電路以接通RISC-V解碼電路,指令流準(zhǔn)確進(jìn)入RISC-V解碼電路并進(jìn)行后續(xù)的處理。[0038]若第二比較器比對(duì)的指令流的低7位與預(yù)設(shè)的第二固定位模式11

溫馨提示

  • 1. 本站所有資源如無特殊說明,都需要本地電腦安裝OFFICE2007和PDF閱讀器。圖紙軟件為CAD,CAXA,PROE,UG,SolidWorks等.壓縮文件請(qǐng)下載最新的WinRAR軟件解壓。
  • 2. 本站的文檔不包含任何第三方提供的附件圖紙等,如果需要附件,請(qǐng)聯(lián)系上傳者。文件的所有權(quán)益歸上傳用戶所有。
  • 3. 本站RAR壓縮包中若帶圖紙,網(wǎng)頁(yè)內(nèi)容里面會(huì)有圖紙預(yù)覽,若沒有圖紙預(yù)覽就沒有圖紙。
  • 4. 未經(jīng)權(quán)益所有人同意不得將文件中的內(nèi)容挪作商業(yè)或盈利用途。
  • 5. 人人文庫(kù)網(wǎng)僅提供信息存儲(chǔ)空間,僅對(duì)用戶上傳內(nèi)容的表現(xiàn)方式做保護(hù)處理,對(duì)用戶上傳分享的文檔內(nèi)容本身不做任何修改或編輯,并不能對(duì)任何下載內(nèi)容負(fù)責(zé)。
  • 6. 下載文件中如有侵權(quán)或不適當(dāng)內(nèi)容,請(qǐng)與我們聯(lián)系,我們立即糾正。
  • 7. 本站不保證下載資源的準(zhǔn)確性、安全性和完整性, 同時(shí)也不承擔(dān)用戶因使用這些下載資源對(duì)自己和他人造成任何形式的傷害或損失。

最新文檔

評(píng)論

0/150

提交評(píng)論