本發(fā)明實(shí)施例涉及計(jì)算機(jī)技術(shù)領(lǐng)域,尤其涉及一種基于模型建立CPU的方法及裝置。
背景技術(shù):
中央處理器(Central Processing Unit,簡稱CPU)是計(jì)算機(jī)系統(tǒng)的引擎和核心,操作系統(tǒng)、應(yīng)用軟件的可靠性都建立在CPU功能正確性的基礎(chǔ)上。
現(xiàn)有技術(shù)中,CPU設(shè)計(jì)方法是將數(shù)據(jù)通路畫在圖上,且所有指令的數(shù)據(jù)通路畫在一張圖上,使得各指令的數(shù)據(jù)通路相關(guān)性較高,導(dǎo)致數(shù)據(jù)通路設(shè)計(jì)十分復(fù)雜,設(shè)計(jì)難度大,且錯(cuò)誤率較高。
技術(shù)實(shí)現(xiàn)要素:
本發(fā)明實(shí)施例提供一種基于模型建立CPU的方法及裝置,以簡化建立CPU的方法,降低建立CPU過程中的錯(cuò)誤率。
本發(fā)明實(shí)施例的一個(gè)方面是提供一種基于模型建立CPU的方法,包括:
根據(jù)指令集中每個(gè)指令的結(jié)構(gòu)和功能,生成每個(gè)指令對應(yīng)的指令數(shù)據(jù)通路;
在每個(gè)指令數(shù)據(jù)通路的源端和目的端之間插入多路選擇器,生成多路選擇器的控制信號表達(dá)式和寄存器使能信號的邏輯表達(dá)式,所述控制信號表達(dá)式包括指令執(zhí)行的階段信號、指令操作碼、指令控制碼字段;
合并相同的指令數(shù)據(jù)通路中的項(xiàng),同時(shí)對所述控制信號表達(dá)式做邏輯合并操作,得到CPU數(shù)據(jù)通路;
根據(jù)所述CPU數(shù)據(jù)通路,確定所述CPU的結(jié)構(gòu)信息;
根據(jù)所述控制信號表達(dá)式,確定所述CPU的控制單元的結(jié)構(gòu)信息。
本發(fā)明實(shí)施例的另一個(gè)方面是提供一種基于模型建立CPU的裝置,包括:
生成模塊,用于根據(jù)指令集中每個(gè)指令的結(jié)構(gòu)和功能,生成每個(gè)指令對應(yīng)的指令數(shù)據(jù)通路;
插入模塊,用于在每個(gè)指令數(shù)據(jù)通路的源端和目的端之間插入多路選擇器,生成多路選擇器的控制信號表達(dá)式和寄存器使能信號的邏輯表達(dá)式,所述控制信號表達(dá)式包括指令執(zhí)行的階段信號、指令操作碼、指令控制碼字段;
合并模塊,用于合并相同的指令數(shù)據(jù)通路中的項(xiàng),同時(shí)對所述控制信號表達(dá)式做邏輯合并操作,得到CPU數(shù)據(jù)通路;
確定模塊,用于根據(jù)所述CPU數(shù)據(jù)通路,確定所述CPU的結(jié)構(gòu)信息;根據(jù)所述控制信號表達(dá)式,確定所述CPU的控制單元的結(jié)構(gòu)信息。
本發(fā)明實(shí)施例提供的基于模型建立CPU的方法及裝置,根據(jù)每條指令的數(shù)據(jù)通路,然后通過工程綜合方法,自動生成CPU的數(shù)據(jù)通路和控制信號,使得指令集中的不同指令的設(shè)計(jì)是相互獨(dú)立的,一個(gè)指令的設(shè)計(jì)并不影響其他指令,也不受其他指令的影響,使得各指令的數(shù)據(jù)通路相關(guān)性較低,簡化了建立CPU的方法,降低了建立CPU過程中的錯(cuò)誤率。
附圖說明
圖1為本發(fā)明實(shí)施例提供的基于模型建立CPU的方法流程圖;
圖2為CPU數(shù)據(jù)通路綜合、代碼自動生成的流程圖;
圖3為基于模型和形式方法的符合DO-178C開發(fā)流程的CPU建模設(shè)計(jì)流程;
圖4為本發(fā)明另一實(shí)施例提供的基于模型建立CPU的方法流程圖;
圖5為CPU代碼生成方法的結(jié)構(gòu)圖;
圖6為本發(fā)明實(shí)施例提供的基于模型建立CPU的裝置的結(jié)構(gòu)圖;
圖7為本發(fā)明另一實(shí)施例提供的基于模型建立CPU的裝置的結(jié)構(gòu)圖。
具體實(shí)施方式
圖1為本發(fā)明實(shí)施例提供的基于模型建立CPU的方法流程圖。本發(fā)明實(shí)施例針對現(xiàn)有技術(shù)中CPU設(shè)計(jì)方法是將數(shù)據(jù)通路畫在圖上,且所有指令的數(shù)據(jù)通路畫在一張圖上,使得各指令的數(shù)據(jù)通路相關(guān)性較高,導(dǎo)致數(shù)據(jù)通路設(shè)計(jì)十分復(fù)雜,設(shè)計(jì)難度大,且錯(cuò)誤率較高,提供了基于模型建立CPU的方法,具體的基于模型建立CPU的方法步驟如下:
步驟S101、根據(jù)指令集中每個(gè)指令的結(jié)構(gòu)和功能,生成每個(gè)指令對應(yīng)的指令數(shù)據(jù)通路。
所述CPU的結(jié)構(gòu)模型包括:數(shù)字邏輯部件、數(shù)字邏輯部件功能及控制信號邏輯公式、數(shù)據(jù)通路和時(shí)鐘周期。
本實(shí)施例將CPU的結(jié)構(gòu)模型表示為:<S,F,R,C>,其中,S表示數(shù)字邏輯部件(含多路選擇器和控制單元),F(xiàn)表示數(shù)字邏輯部件功能及控制信號邏輯公式,R表示數(shù)據(jù)通路,C表示時(shí)鐘周期。
數(shù)字邏輯部件是指完成某具體功能的電路部件,例如程序計(jì)數(shù)器PC、存儲器Mem、指令寄存器IR、通用寄存器堆GPRegs和算術(shù)邏輯單元ALU等。數(shù)字邏輯部件對外只有若干輸入輸出的數(shù)據(jù)端口和控制端口,但是內(nèi)部結(jié)構(gòu)相對比較復(fù)雜,包含寄存器元件、復(fù)雜的邏輯電路等。一般來說,數(shù)字邏輯部件完成針對某數(shù)據(jù)的一套完整功能,例如程序計(jì)數(shù)器可以完成針對當(dāng)前指令地址的輸出、保持、寫入和自增等功能。在任意階段(一個(gè)時(shí)鐘周期內(nèi))數(shù)字邏輯部件只執(zhí)行一個(gè)具體功能,其通過控制單元給控制端口的控制信號是否有效來選擇此時(shí)要完成的功能具體是輸出、保持、寫入和自增中的哪一個(gè)。
多路選擇器Mux是數(shù)字邏輯部件的一種,但由于有特殊作用,在此模型中單獨(dú)討論。Mux是針對多輸入一輸出的數(shù)據(jù)流結(jié)點(diǎn)而存在的數(shù)據(jù)選擇部件,根據(jù)控制信號,一時(shí)刻只有一個(gè)輸入數(shù)據(jù)傳遞到輸出端。按輸入端口的數(shù)量分,Mux分為二路選擇器、三路選擇器等。
控制單元(Control Unit,簡稱CU)也是數(shù)字邏輯部件的一種,CU用來控制CPU中例如多路選擇器、程序計(jì)數(shù)器PC、存儲器Mem、指令寄存器IR、通用寄存器堆GPRegs和算術(shù)邏輯單元ALU等數(shù)字邏輯部件,CU對外連接到所有需要控制信號的數(shù)字邏輯部件,此處,需要控制信號的數(shù)字邏輯部件可以是多路選擇器、程序計(jì)數(shù)器PC、存儲器Mem、指令寄存器IR、通用寄存器堆GPRegs和算術(shù)邏輯單元ALU中的任意一個(gè)或多個(gè)。控制單元可對指令集中的指令進(jìn)行譯碼獲得該指令的操作碼和功能碼,并根據(jù)該指令的操作碼和功能碼,生成該指令對應(yīng)的控制信號,以便控制單元根據(jù)該控制信號控制數(shù)字邏輯部件。
數(shù)字邏輯部件中例如寄存器和多路選擇器有控制信號接收端口,該控制信號接收端口用于接收控制單元發(fā)送的控制信號,在不同指令的不同階段,控制單元執(zhí)行的操作是不同的,因此,可用控制信號表達(dá)式來表示控制單元執(zhí)行的操作,例如,在某指令的某階段,若該控制信號表達(dá)式為真,則向寄存器或多路選擇器的控制信號接收端口發(fā)送有效信號,否則發(fā)送無效信號。
數(shù)據(jù)通路是指CPU執(zhí)行指令所需的操作子句的序列,分為指令通路和CPU通路。指令通路是在已經(jīng)確定當(dāng)前執(zhí)行指令的前提下,執(zhí)行指令的操作,不需要多路選擇器參與,只需連接數(shù)字邏輯部件的數(shù)據(jù)端口以及給予寄存器控制信號即可。CPU通路是綜合了所有指令得到的數(shù)據(jù)通路,包含多路選擇器,控制信號在綜合之后形成表達(dá)式。
圖2為CPU數(shù)據(jù)通路綜合、代碼自動生成的流程圖。CPU結(jié)構(gòu)模型將時(shí)鐘周期抽象成五個(gè)階段,即取指階段IF、譯碼階段ID、執(zhí)行階段EX、訪存階段MEM和回寫階段WB,每個(gè)階段分為數(shù)據(jù)準(zhǔn)備階段和數(shù)據(jù)寫入階段兩個(gè)部分。在CPU結(jié)構(gòu)模型中將CPU指令周期分為五個(gè)階段,因此,每個(gè)指令均可以按照該五個(gè)階段生成對應(yīng)的指令數(shù)據(jù)通路。
在本實(shí)施例中,指令數(shù)據(jù)通路是操作子句組成的集合,每個(gè)子句實(shí)現(xiàn)連接端口或者給予寄存器控制信號的功能。指令數(shù)據(jù)通路的模型為三元組<Stage,Source,Target>。其中,Stage表示指令的執(zhí)行階段,Source表示源,Target表示宿。處于數(shù)據(jù)準(zhǔn)備階段的子句是連接端口類型,Source表示源端口,Target表示目的端口;處于數(shù)據(jù)寫入階段的子句是控制信號類型,Source表示寄存器,Target表示信號符號。
步驟S102、在每個(gè)指令數(shù)據(jù)通路的源端和目的端之間插入多路選擇器,生成多路選擇器的控制信號表達(dá)式和寄存器使能信號的邏輯表達(dá)式,所述控制信號表達(dá)式包括指令執(zhí)行的階段信號、指令操作碼、指令控制碼字段。
在本實(shí)施例中,程序計(jì)數(shù)器PC、存儲器Mem、指令寄存器IR、通用寄存器堆GPRegs和算術(shù)邏輯單元ALU等數(shù)字邏輯部件的每個(gè)輸出端口配置一個(gè)多路選擇器,并給多路選擇器編號,得到多路選擇器對照表,該多路選擇器對照表包括哪個(gè)數(shù)字邏輯部件的哪個(gè)輸出端口和多路選擇器編號的對應(yīng)關(guān)系。
按照該多路選擇器對照表,在每個(gè)指令數(shù)據(jù)通路的源端和目的端之間插入多路選擇器,得到<Stage,Source,Mux_In,Mux_Out,Target>,其中,Mux_In表示多路選擇器的輸入端口、Mux_Out表示多路選擇器的輸出端口。
在<Stage,Source,Mux_In,Mux_Out,Target>中加入指令名稱,得到<Instruction,Stage,Source,Mux_In,Mux_Out,Target>,其中,Instruction表示指令名稱。
步驟S103、合并相同的指令數(shù)據(jù)通路中的項(xiàng),同時(shí)對所述控制信號表達(dá)式做邏輯合并操作,得到CPU數(shù)據(jù)通路。
對于<Instruction,Stage,Source,Mux_In,Mux_Out,Target>,將相同的<Source,Mux_In,Mux_Out,Target>合并,同時(shí)生成控制信號表達(dá)式。合并時(shí),先將不同的Instruction和Stage項(xiàng)均用或符號“|”連接,然后將Instruction和Stage用與符號“&”合并成Ctrl_Signal,最后去掉Instruction和Stage項(xiàng)。這樣,指令名稱和執(zhí)行階段都集中在控制信號表達(dá)式Ctrl_Signal中了,當(dāng)在某指令的某階段時(shí),Ctrl_Signal表達(dá)式必然為1,而此指令的其它階段,表達(dá)式均為0。最后生成的CPU數(shù)據(jù)通路是由五元組<Source,Mux_In,Mux_Out,Target,Ctrl_Signal>組成的集合。
然后將相同的目的端口合并成同一個(gè)多路選擇器輸出端口,而相同目的端口對應(yīng)的不同源端口合并成同一個(gè)多路選擇器下不同的輸入端口。
步驟S104、根據(jù)所述CPU數(shù)據(jù)通路,確定所述CPU的結(jié)構(gòu)信息。
具體的,根據(jù)CPU數(shù)據(jù)通路的五元組模型<Source,Mux_In,Mux_Out,Target,Ctrl_Signal>,確定構(gòu)成CPU的多路選擇器,由于多路選擇器是用于連接其他數(shù)字邏輯部件的部件,則根據(jù)多路選擇器的輸入和輸出可確定其他數(shù)字邏輯部件之間的連接關(guān)系,該其他數(shù)字邏輯部件之間的連接關(guān)系即可作為CPU的結(jié)構(gòu)信息。
步驟S105、根據(jù)所述控制信號表達(dá)式,確定所述CPU的控制單元的結(jié)構(gòu)信息。
CPU的控制單元根據(jù)控制信號表達(dá)式Ctrl_Signal生成控制信號,因此,根據(jù)上述步驟得出的控制信號表達(dá)式,可確定CPU的控制信號,同時(shí)還可以確定CPU的控制單元的結(jié)構(gòu)信息。
圖3為基于模型和形式方法的符合DO-178C開發(fā)流程的CPU建模設(shè)計(jì)流程。CPU結(jié)構(gòu)形式建模技術(shù)首先提出了一個(gè)CPU結(jié)構(gòu)模型。其次,形式設(shè)計(jì)方法認(rèn)為指令的設(shè)計(jì)是互相獨(dú)立的,一條指令的設(shè)計(jì)不影響另一條指令。形式設(shè)計(jì)方法只需按照指令集的規(guī)范,單獨(dú)設(shè)計(jì)每條指令的數(shù)據(jù)通路,然后通過工程綜合方法,自動生成CPU的數(shù)據(jù)通路和控制信號。
本發(fā)明實(shí)施例根據(jù)每條指令的數(shù)據(jù)通路,然后通過工程綜合方法,自動生成CPU的數(shù)據(jù)通路和控制信號,使得指令集中的不同指令的設(shè)計(jì)是相互獨(dú)立的,一個(gè)指令的設(shè)計(jì)并不影響其他指令,也不受其他指令的影響,使得各指令的數(shù)據(jù)通路相關(guān)性較低,簡化了建立CPU的方法,降低了建立CPU過程中的錯(cuò)誤率。
圖4為本發(fā)明另一實(shí)施例提供的基于模型建立CPU的方法流程圖。在上述實(shí)施例的基礎(chǔ)上,本實(shí)施例提供的基于模型建立CPU的方法步驟如下:
步驟S201、根據(jù)指令集中每個(gè)指令的結(jié)構(gòu)和功能,將所述指令的執(zhí)行過程依次分配在取指階段、譯碼階段、執(zhí)行階段、存儲階段、寫回階段。
在本實(shí)施例中,將時(shí)鐘周期抽象成五個(gè)階段,即取指階段IF、譯碼階段ID、執(zhí)行階段EX、訪存階段MEM和回寫階段WB,相應(yīng)的,將每個(gè)指令的執(zhí)行過程依次分配在取指階段、譯碼階段、執(zhí)行階段、存儲階段、寫回階段。
下面以加法指令即add指令為例介紹指令在該五個(gè)階段的完整執(zhí)行流程。IF階段,控制單元將進(jìn)程號和指令地址發(fā)送給指令存儲器,并從指令存儲器中讀出指令,將該指令發(fā)送給指令寄存器。ID階段,控制單元從指令寄存器讀出指令,并對指令進(jìn)行譯碼得到該指令的操作碼和功能碼,將數(shù)據(jù)存儲的地址發(fā)送給寄存器堆,寄存器堆根據(jù)數(shù)據(jù)存儲的地址讀出加法操作的兩個(gè)數(shù)據(jù)后,將兩個(gè)數(shù)據(jù)分別發(fā)送給A寄存器和B寄存器。EX階段,控制單元將A寄存器中的數(shù)據(jù)和B寄存器中的數(shù)據(jù)發(fā)送給ALU,并將加法指令的功能碼發(fā)送給ALU,ALU根據(jù)A寄存器中的數(shù)據(jù)、B寄存器中的數(shù)據(jù)以及加法指令的功能碼,進(jìn)行加法計(jì)算得到計(jì)算結(jié)果,并將計(jì)算結(jié)果發(fā)送給ALUOut寄存器。MEM階段,無操作。WB階段,控制單元將ALUOut寄存器中的計(jì)算結(jié)果寫到寄存器堆中。Stage,Source,Target
在本實(shí)施例中,指令通路如下表1所示:
表1
由于指令之間要共用某些數(shù)字邏輯部件,因此在傳統(tǒng)的設(shè)計(jì)方法中,指令的設(shè)計(jì)必然影響其它指令或受其它指令影響。在CPU結(jié)構(gòu)的形式設(shè)計(jì)方法中,多個(gè)指令通路可以通過工程綜合方法合并成CPU通路。使用多路選擇器連接共用數(shù)字邏輯部件的端口,根據(jù)譯碼得到的指令操作碼和功能碼,可以控制多路選擇器來切換到對應(yīng)個(gè)指令通路,從而完成指令功能。
步驟S202、根據(jù)所述指令的取指階段、譯碼階段、執(zhí)行階段、存儲階段、寫回階段,生成所述指令對應(yīng)的指令數(shù)據(jù)通路。
在CPU結(jié)構(gòu)模型中將CPU指令周期分為五個(gè)階段,因此,每個(gè)指令均可以按照該五個(gè)階段生成對應(yīng)的指令數(shù)據(jù)通路。
步驟S203、在每個(gè)指令數(shù)據(jù)通路的源端和目的端之間插入多路選擇器,生成多路選擇器的控制信號表達(dá)式和寄存器使能信號的邏輯表達(dá)式,所述控制信號表達(dá)式包括指令執(zhí)行的階段信號、指令操作碼、指令控制碼字段。
指令數(shù)據(jù)通路的模型為三元組<Stage,Source,Target>。其中,Stage表示指令的執(zhí)行階段,Source表示源,Target表示宿。處于數(shù)據(jù)準(zhǔn)備階段的子句是連接端口類型,Source表示源端口,Target表示目的端口;處于數(shù)據(jù)寫入階段的子句是控制信號類型,Source表示寄存器,Target表示信號符號。
根據(jù)指令集中的指令規(guī)范和操作語義,設(shè)計(jì)指令在五個(gè)階段分別需要完成的操作子句。注意到指令通路是操作子句的無序集,同一階段內(nèi)子句的順序?qū)χ噶畹膱?zhí)行沒有影響。
在每個(gè)指令數(shù)據(jù)通路的源端和目的端之間插入多路選擇器,得到<Stage,Source,Mux_In,Mux_Out,Target>,其中,Mux_In表示多路選擇器的輸入端口、Mux_Out表示多路選擇器的輸出端口。
在<Stage,Source,Mux_In,Mux_Out,Target>中加入指令名稱,得到<Instruction,Stage,Source,Mux_In,Mux_Out,Target>,其中,Instruction表示指令名稱。
步驟S204、以多路選擇器為關(guān)鍵字,對所述指令數(shù)據(jù)通路中的項(xiàng)做排序。
對于<Instruction,Stage,Source,Mux_In,Mux_Out,Target>,Instruction,Stage,Source,Mux_In,Mux_Out,Target分別為指令數(shù)據(jù)通路中的項(xiàng),在本實(shí)施例,以多路選擇器為關(guān)鍵字,對所述指令數(shù)據(jù)通路中的項(xiàng)做排序。
步驟S205、以數(shù)據(jù)源端和多路選擇器為關(guān)鍵字,合并相同的指令數(shù)據(jù)通路中的項(xiàng),同時(shí)對所述控制信號表達(dá)式做邏輯合并操作,得到CPU數(shù)據(jù)通路。
在本實(shí)施例中,以<Source,Mux_In,Mux_Out,Target>為關(guān)鍵字,合并相同的指令數(shù)據(jù)通路中的項(xiàng),同時(shí)對所述控制信號表達(dá)式做邏輯合并操作,得到CPU數(shù)據(jù)通路<Source,Mux_In,Mux_Out,Target,Ctrl_Signal>。
步驟S206、根據(jù)所述CPU數(shù)據(jù)通路,確定所述CPU的結(jié)構(gòu)信息。
步驟S207、根據(jù)所述控制信號表達(dá)式,確定所述CPU的控制單元的結(jié)構(gòu)信息。
根據(jù)DO-178C標(biāo)準(zhǔn)中的A級軟件要求,CPU代碼需根據(jù)CPU軟件框架(軟件架構(gòu))和CPU模型(低層需求)實(shí)現(xiàn)。根據(jù)研究需要,選擇Verilog HDL作為CPU代碼的設(shè)計(jì)語言。本節(jié)以PPC為例,分別從CPU軟件框架和代碼轉(zhuǎn)換方法兩個(gè)方面進(jìn)行詳細(xì)說明。圖5為CPU代碼生成方法的結(jié)構(gòu)圖。
CPU軟件框架是根據(jù)CPU代碼的結(jié)構(gòu)和CPU結(jié)構(gòu)的特點(diǎn)設(shè)計(jì)的一種Verilog代碼框架,其中集成了CPU頂層框架、控制單元模塊和數(shù)字邏輯部件模塊。CPU頂層框架和控制單元模塊是不完整的代碼框架,頂層框架中待實(shí)現(xiàn)具體的通路結(jié)構(gòu),控制單元模塊中待實(shí)現(xiàn)具體的控制信號。而數(shù)字邏輯部件模塊是所有CPU需要用到的數(shù)字邏輯部件的完整實(shí)現(xiàn)。根據(jù)CPU結(jié)構(gòu),通過代碼轉(zhuǎn)換方法分別生成通路結(jié)構(gòu)代碼和控制信號代碼,然后分別嵌入到頂層框架模塊和控制單元模塊中,形成完整的CPU代碼。
本發(fā)明實(shí)施例根據(jù)每條指令的數(shù)據(jù)通路,然后通過工程綜合方法,自動生成CPU的數(shù)據(jù)通路和控制信號,使得指令集中的不同指令的設(shè)計(jì)是相互獨(dú)立的,一個(gè)指令的設(shè)計(jì)并不影響其他指令,也不受其他指令的影響,使得各指令的數(shù)據(jù)通路相關(guān)性較低,簡化了建立CPU的方法,降低了建立CPU過程中的錯(cuò)誤率。
圖6為本發(fā)明實(shí)施例提供的基于模型建立CPU的裝置的結(jié)構(gòu)圖。本發(fā)明實(shí)施例提供的基于模型建立CPU的裝置可以執(zhí)行基于模型建立CPU的方法實(shí)施例提供的處理流程,如圖6所示,基于模型建立CPU的裝置60包括生成模塊61、插入模塊62、合并模塊63和確定模塊64,其中,生成模塊61用于根據(jù)指令集中每個(gè)指令的結(jié)構(gòu)和功能,生成每個(gè)指令對應(yīng)的指令數(shù)據(jù)通路;插入模塊62用于在每個(gè)指令數(shù)據(jù)通路的源端和目的端之間插入多路選擇器,生成多路選擇器的控制信號表達(dá)式和寄存器使能信號的邏輯表達(dá)式,所述控制信號表達(dá)式包括指令執(zhí)行的階段信號、指令操作碼、指令控制碼字段;合并模塊63用于合并相同的指令數(shù)據(jù)通路中的項(xiàng),同時(shí)對所述控制信號表達(dá)式做邏輯合并操作,得到CPU數(shù)據(jù)通路;確定模塊64用于根據(jù)所述CPU數(shù)據(jù)通路,確定所述CPU的結(jié)構(gòu)信息;根據(jù)所述控制信號表達(dá)式,確定所述CPU的控制單元的結(jié)構(gòu)信息。
本發(fā)明實(shí)施例根據(jù)每條指令的數(shù)據(jù)通路,然后通過工程綜合方法,自動生成CPU的數(shù)據(jù)通路和控制信號,使得指令集中的不同指令的設(shè)計(jì)是相互獨(dú)立的,一個(gè)指令的設(shè)計(jì)并不影響其他指令,也不受其他指令的影響,使得各指令的數(shù)據(jù)通路相關(guān)性較低,簡化了建立CPU的方法,降低了建立CPU過程中的錯(cuò)誤率。
圖7為本發(fā)明另一實(shí)施例提供的基于模型建立CPU的裝置的結(jié)構(gòu)圖。在上述實(shí)施例的基礎(chǔ)上,基于模型建立CPU的裝置60還包括:排序模塊65,排序模塊65用于以多路選擇器為關(guān)鍵字,對所述指令數(shù)據(jù)通路中的項(xiàng)做排序。
合并模塊63具體用于以數(shù)據(jù)源端和多路選擇器為關(guān)鍵字,合并相同的指令數(shù)據(jù)通路中的項(xiàng)。
生成模塊61包括分配單元611和生成單元612,其中,分配單元611用于將所述指令的執(zhí)行過程依次分配在取指階段、譯碼階段、執(zhí)行階段、存儲階段、寫回階段;生成單元612用于根據(jù)所述指令的取指階段、譯碼階段、執(zhí)行階段、存儲階段、寫回階段,生成所述指令對應(yīng)的指令數(shù)據(jù)通路。
所述CPU的結(jié)構(gòu)模型包括:數(shù)字邏輯部件、數(shù)字邏輯部件功能及控制信號邏輯公式、數(shù)據(jù)通路和時(shí)鐘周期。
本發(fā)明實(shí)施例提供的基于模型建立CPU的裝置可以具體用于執(zhí)行上述圖1所提供的方法實(shí)施例,具體功能此處不再贅述。
本發(fā)明實(shí)施例根據(jù)每條指令的數(shù)據(jù)通路,然后通過工程綜合方法,自動生成CPU的數(shù)據(jù)通路和控制信號,使得指令集中的不同指令的設(shè)計(jì)是相互獨(dú)立的,一個(gè)指令的設(shè)計(jì)并不影響其他指令,也不受其他指令的影響,使得各指令的數(shù)據(jù)通路相關(guān)性較低,簡化了建立CPU的方法,降低了建立CPU過程中的錯(cuò)誤率。
綜上所述,本發(fā)明實(shí)施例根據(jù)每條指令的數(shù)據(jù)通路,然后通過工程綜合方法,自動生成CPU的數(shù)據(jù)通路和控制信號,使得指令集中的不同指令的設(shè)計(jì)是相互獨(dú)立的,一個(gè)指令的設(shè)計(jì)并不影響其他指令,也不受其他指令的影響,使得各指令的數(shù)據(jù)通路相關(guān)性較低,簡化了建立CPU的方法,降低了建立CPU過程中的錯(cuò)誤率。
在本發(fā)明所提供的幾個(gè)實(shí)施例中,應(yīng)該理解到,所揭露的裝置和方法,可以通過其它的方式實(shí)現(xiàn)。例如,以上所描述的裝置實(shí)施例僅僅是示意性的,例如,所述單元的劃分,僅僅為一種邏輯功能劃分,實(shí)際實(shí)現(xiàn)時(shí)可以有另外的劃分方式,例如多個(gè)單元或組件可以結(jié)合或者可以集成到另一個(gè)系統(tǒng),或一些特征可以忽略,或不執(zhí)行。另一點(diǎn),所顯示或討論的相互之間的耦合或直接耦合或通信連接可以是通過一些接口,裝置或單元的間接耦合或通信連接,可以是電性,機(jī)械或其它的形式。
所述作為分離部件說明的單元可以是或者也可以不是物理上分開的,作為單元顯示的部件可以是或者也可以不是物理單元,即可以位于一個(gè)地方,或者也可以分布到多個(gè)網(wǎng)絡(luò)單元上??梢愿鶕?jù)實(shí)際的需要選擇其中的部分或者全部單元來實(shí)現(xiàn)本實(shí)施例方案的目的。
另外,在本發(fā)明各個(gè)實(shí)施例中的各功能單元可以集成在一個(gè)處理單元中,也可以是各個(gè)單元單獨(dú)物理存在,也可以兩個(gè)或兩個(gè)以上單元集成在一個(gè)單元中。上述集成的單元既可以采用硬件的形式實(shí)現(xiàn),也可以采用硬件加軟件功能單元的形式實(shí)現(xiàn)。
上述以軟件功能單元的形式實(shí)現(xiàn)的集成的單元,可以存儲在一個(gè)計(jì)算機(jī)可讀取存儲介質(zhì)中。上述軟件功能單元存儲在一個(gè)存儲介質(zhì)中,包括若干指令用以使得一臺計(jì)算機(jī)設(shè)備(可以是個(gè)人計(jì)算機(jī),服務(wù)器,或者網(wǎng)絡(luò)設(shè)備等)或處理器(processor)執(zhí)行本發(fā)明各個(gè)實(shí)施例所述方法的部分步驟。而前述的存儲介質(zhì)包括:U盤、移動硬盤、只讀存儲器(Read-Only Memory,ROM)、隨機(jī)存取存儲器(Random Access Memory,RAM)、磁碟或者光盤等各種可以存儲程序代碼的介質(zhì)。
本領(lǐng)域技術(shù)人員可以清楚地了解到,為描述的方便和簡潔,僅以上述各功能模塊的劃分進(jìn)行舉例說明,實(shí)際應(yīng)用中,可以根據(jù)需要而將上述功能分配由不同的功能模塊完成,即將裝置的內(nèi)部結(jié)構(gòu)劃分成不同的功能模塊,以完成以上描述的全部或者部分功能。上述描述的裝置的具體工作過程,可以參考前述方法實(shí)施例中的對應(yīng)過程,在此不再贅述。
最后應(yīng)說明的是:以上各實(shí)施例僅用以說明本發(fā)明的技術(shù)方案,而非對其限制;盡管參照前述各實(shí)施例對本發(fā)明進(jìn)行了詳細(xì)的說明,本領(lǐng)域的普通技術(shù)人員應(yīng)當(dāng)理解:其依然可以對前述各實(shí)施例所記載的技術(shù)方案進(jìn)行修改,或者對其中部分或者全部技術(shù)特征進(jìn)行等同替換;而這些修改或者替換,并不使相應(yīng)技術(shù)方案的本質(zhì)脫離本發(fā)明各實(shí)施例技術(shù)方案的范圍。