欧美在线观看视频网站,亚洲熟妇色自偷自拍另类,啪啪伊人网,中文字幕第13亚洲另类,中文成人久久久久影院免费观看 ,精品人妻人人做人人爽,亚洲a视频

在流水線處理器中用于跳轉(zhuǎn)延遲時(shí)隙控制的方法和裝置的制作方法

文檔序號(hào):6503867閱讀:582來(lái)源:國(guó)知局
專利名稱:在流水線處理器中用于跳轉(zhuǎn)延遲時(shí)隙控制的方法和裝置的制作方法
本申請(qǐng)地優(yōu)先權(quán)是于1999年5月13日申請(qǐng)的美國(guó)臨時(shí)專利申請(qǐng)Serial No.60/134,253,標(biāo)題為“Method And Apparatus For SynthesizingAnd Implementing Intergrated Circuit Designs,”和共同待審的于1999年10月14日申請(qǐng)的美國(guó)專利申請(qǐng)No.09/418,663,標(biāo)題為“Method AndApparatus For Managing The Configuration And Functionality Of ASemiconductor Design’它的優(yōu)先權(quán)是相同標(biāo)題的于1998年10月14日申請(qǐng)的美國(guó)臨時(shí)專利申請(qǐng)Serial No.60/104,271。

背景技術(shù)
1.發(fā)明領(lǐng)域
本發(fā)明涉及集成電路設(shè)計(jì)領(lǐng)域,尤其涉及在一個(gè)流水線中央處理器(CPU)或用戶化微處理器中使用的用于實(shí)現(xiàn)指令的一種硬件描述語(yǔ)言。
2.相關(guān)技術(shù)描述
在計(jì)算機(jī)領(lǐng)域中RISC(精簡(jiǎn)指令集計(jì)算機(jī))處理器是大家所熟知的。RISC處理器與非-RISC(通常所說(shuō)的“CISC”)處理器相比,通常具有利用充分精簡(jiǎn)指令集的基本特性。通常,RISC處理器機(jī)器指令并不全是微編碼的,可以直接執(zhí)行而不用解碼,因而在處理速度上可以提供有意義的經(jīng)濟(jì)效益。此外,“流線型的(streamlined)”指令處理能力還允許進(jìn)一步簡(jiǎn)化處理器的設(shè)計(jì)(與非-RISC設(shè)備相比),從而允許更小的硅片和更少的制造費(fèi)用。
此外,RISC典型的特征在于(i)裝入/存儲(chǔ)存儲(chǔ)器結(jié)構(gòu)體系(也就是,僅在裝入和存儲(chǔ)指令時(shí)必須存取存儲(chǔ)器;其他的指令經(jīng)過(guò)處理器中的內(nèi)部寄存器操作);(ii)處理器和編譯器的統(tǒng)一性;和(iii)流水線操作。
流水線操作是一種技術(shù),用于通過(guò)把處理器中運(yùn)算的順序分成片段來(lái)增加處理器的性能,當(dāng)可能時(shí)這些片段能以并行方式有效地被執(zhí)行。在一個(gè)典型的流水線處理器中,與處理器運(yùn)算操作程序(比如加法,乘法,除法等等)相關(guān)的運(yùn)算單元通常被“分段”,以便任意時(shí)鐘周期內(nèi)在該單元一個(gè)給定片段中執(zhí)行操作的一個(gè)具體部分。

圖1示例了具有這樣被分段的運(yùn)算單元的一個(gè)典型的處理器體系結(jié)構(gòu)。因此,在任意給定的時(shí)鐘周期這些單元可以在一個(gè)不同計(jì)算的結(jié)果上進(jìn)行運(yùn)算。作為一個(gè)例子,在第一時(shí)鐘周期中兩個(gè)數(shù)A和B被送到乘法單元10并由單元的第一片段12進(jìn)行部分處理。在第二時(shí)鐘周期中,來(lái)自A和B相乘的部分結(jié)果被送到第二片段14,同時(shí)第一片段12接收開(kāi)始進(jìn)行處理的兩個(gè)新的數(shù)(比方說(shuō)C和D)。最終結(jié)果是在一個(gè)初始啟動(dòng)周期之后,每個(gè)時(shí)鐘周期由運(yùn)算單元10執(zhí)行一個(gè)乘法運(yùn)算。
從一個(gè)結(jié)構(gòu)體系到另一個(gè)結(jié)構(gòu)體系,流水線的深度會(huì)變化。在本文中,術(shù)語(yǔ)“深度”指的是在流水線中存在的分階段的數(shù)量。通常,帶有更多階段的一個(gè)流水線執(zhí)行程序較快,但如果流水線的效果是明顯可見(jiàn)的話,對(duì)于程序員來(lái)說(shuō)編程也更加困難。大多數(shù)流水線處理器是三階段(取指令,解碼,和執(zhí)行)或四階段(比如取指令,解碼,取操作數(shù),和執(zhí)行,或者可替換的,取指令,解碼/取操作數(shù),執(zhí)行,和寫回),盡管可以使用更多的或更少的階段。
使用流水線結(jié)構(gòu)通常對(duì)地址需要聯(lián)鎖,尤其是在這種情況下,即在一個(gè)早先流水線階段中的一個(gè)跟隨指令(n+1)需要來(lái)自一個(gè)后面階段指令n的結(jié)果。解決上述問(wèn)題的一個(gè)簡(jiǎn)單方法是通過(guò)一個(gè)或多個(gè)時(shí)鐘周期延遲在指令解碼階段中的操作數(shù)計(jì)算。可以使用“記分板”,其中把一個(gè)位附加到每個(gè)處理器寄存器以便作為該寄存器內(nèi)容的一個(gè)標(biāo)志??商鎿Q的,NOP(空操作操作碼)可以被插入編碼中以便愿意的時(shí)候延遲相應(yīng)的流水線階段。后一種方法稱為“軟件聯(lián)鎖”,具有增加了編碼尺寸,并增加了使用需要聯(lián)鎖指令的程序的復(fù)雜性的缺點(diǎn)。
在處理器設(shè)計(jì)中另一個(gè)重要的考慮是程序轉(zhuǎn)移或“跳轉(zhuǎn)”。所有的處理器都支持某種類型的轉(zhuǎn)移指令。簡(jiǎn)單來(lái)說(shuō),轉(zhuǎn)移涉及程序流被中斷或被改變的情況。此外,諸如循環(huán)設(shè)置和子程序調(diào)用指令等其它操作也以類似的方式中斷或改變程序流。術(shù)語(yǔ)“跳轉(zhuǎn)延遲時(shí)隙”通常指的是在一個(gè)轉(zhuǎn)移或跳轉(zhuǎn)指令被解碼之后在一個(gè)流水線內(nèi)的時(shí)間段。轉(zhuǎn)移可以是有條件的(也就是基于一個(gè)或多個(gè)參數(shù)的真值或值)或無(wú)條件的。它也可以是絕對(duì)的(例如,基于一個(gè)絕對(duì)存儲(chǔ)器地址),或相對(duì)的(例如,基于相對(duì)的地址和與任何特殊存儲(chǔ)器地址無(wú)關(guān))。
在流水線系統(tǒng)上進(jìn)行轉(zhuǎn)移具有一種非常有意義的作用。當(dāng)一個(gè)轉(zhuǎn)移指令被插入并通過(guò)處理器的指令解碼階段被解碼時(shí)(表示處理器必須開(kāi)始執(zhí)行一個(gè)不同的地址),在指令序列中的下一個(gè)指令字已經(jīng)被提取和插入流水線中。解決該問(wèn)題的一個(gè)方案是清除提取的指令字并暫停或阻塞另外的提取操作直到轉(zhuǎn)移指令已被執(zhí)行為止,如圖2所示。然而,該方法需要在幾個(gè)指令周期——通常指令周期的數(shù)目處于一個(gè)到處理器設(shè)計(jì)中使用的流水線的深度之間——中轉(zhuǎn)移指令的執(zhí)行結(jié)果。這個(gè)結(jié)果對(duì)于處理器的速度和效率是不利的,因?yàn)樵谶@一期間處理器不能實(shí)施其它的運(yùn)算??商鎿Q的,可以使用一種延遲的轉(zhuǎn)移人方法。在該方法中,當(dāng)一個(gè)轉(zhuǎn)移指令到達(dá)解碼階段時(shí)流水線不被清除,而通常在轉(zhuǎn)移人被執(zhí)行之前執(zhí)行存在于流水線先前階段中的后面的指令。因此,在轉(zhuǎn)移指令被解碼時(shí),該轉(zhuǎn)移即被延遲若干——為執(zhí)行所有流水線中隨后指令所必需的——指令周期。與上述的多周期轉(zhuǎn)移相比,這種方法增加了流水線的效率,但也增加了基本編碼的復(fù)雜性(程序員易于理解)。
基于上述內(nèi)容,處理器設(shè)計(jì)者和程序員必須結(jié)合現(xiàn)有技術(shù)中利用延遲的或多周期的轉(zhuǎn)移方法來(lái)仔細(xì)權(quán)衡得失。需要一種改進(jìn)的進(jìn)行轉(zhuǎn)移/跳轉(zhuǎn)的方法來(lái)克服或減輕這些折衷方法中存在的問(wèn)題,同時(shí)提供附加的靈活性。而且,當(dāng)把更多的流水線階段加到處理器設(shè)計(jì)中時(shí),對(duì)于改進(jìn)的和簡(jiǎn)化的轉(zhuǎn)移以及處理器內(nèi)的指令執(zhí)行,有益之處會(huì)更多。此外,在一個(gè)具體應(yīng)用的方式中,能夠容易地綜合處理這種改進(jìn)的流水線處理器設(shè)計(jì),并且使用這些可獲得的綜合工具,對(duì)于設(shè)計(jì)者和程序員來(lái)說(shuō)是實(shí)際有效的。
發(fā)明概述
本發(fā)明通過(guò)提供一種用于在數(shù)字處理器結(jié)構(gòu)體系內(nèi)執(zhí)行指令的改進(jìn)的方法和裝置來(lái)滿足上述的需要。
在本發(fā)明的第一個(gè)方面中,公開(kāi)了一種在一個(gè)流水線處理器內(nèi)管理轉(zhuǎn)移和指令執(zhí)行的改進(jìn)的方法。在一個(gè)實(shí)施例中,利用指令字的預(yù)定位實(shí)現(xiàn)三個(gè)分立的延遲段模式。這三個(gè)模式包括(i)在所有環(huán)境下執(zhí)行一個(gè)延遲段指令;(ii)只有當(dāng)采用一個(gè)跳轉(zhuǎn)時(shí)執(zhí)行一個(gè)延遲段,和(iii)如果采用一個(gè)跳轉(zhuǎn),一個(gè)流水線就阻塞或氣泡來(lái)代替一個(gè)指令執(zhí)行。一個(gè)流水線泡類似于一個(gè)NOP空操作指令,其中它是一個(gè)流過(guò)流水線而不執(zhí)行任何操作的指令。它通常是一個(gè)在被裝入流水線之后就被“注銷”的指令。使用現(xiàn)有的轉(zhuǎn)移或類似的指令,在跳轉(zhuǎn)延遲時(shí)隙控制中這三個(gè)模式的可用性給程序員提供了額外的靈活性。此外,公開(kāi)了用綜合邏輯實(shí)現(xiàn)上述延遲段方法的無(wú)約束和有約束的示例。
在本發(fā)明的第二個(gè)方面中,公開(kāi)了結(jié)合上述跳轉(zhuǎn)延遲時(shí)隙方法的一個(gè)集成電路的綜合設(shè)計(jì)的改進(jìn)方法。在一個(gè)實(shí)施例中,該方法包括獲得用戶輸入的有關(guān)設(shè)計(jì)的配置;基于用戶的輸入和現(xiàn)存的功能庫(kù)生成用戶化的HDL功能塊;基于用戶的輸入和程序庫(kù)確定設(shè)計(jì)層次并產(chǎn)生一個(gè)層次文件,新的庫(kù)文件,和程序描述文件;運(yùn)行程序描述文件生成結(jié)構(gòu)的HDL和稿本;運(yùn)行生成的稿本生成一個(gè)用于模擬程序的程序描述文件和一個(gè)綜合稿本;以及基于產(chǎn)生的設(shè)計(jì)和綜合稿本對(duì)設(shè)計(jì)進(jìn)行綜合。
在本發(fā)明的第三個(gè)方面中,公開(kāi)了用于綜合處理器設(shè)計(jì)的一種改進(jìn)的計(jì)算機(jī)程序和具體實(shí)現(xiàn)上述內(nèi)容的方法。在一個(gè)實(shí)施例中,計(jì)算機(jī)程序包括存儲(chǔ)在一個(gè)微型計(jì)算機(jī)的磁存儲(chǔ)設(shè)備上的一個(gè)目標(biāo)編碼表達(dá)式,并適于在其中的中央處理器上運(yùn)行。計(jì)算機(jī)程序進(jìn)一步包括一個(gè)交互式的,菜單控制的圖形用戶界面(GUI),因而便于使用。
在本發(fā)明的第四個(gè)方面中,公開(kāi)了用于運(yùn)行上述計(jì)算機(jī)程序的一種改進(jìn)的裝置,該計(jì)算機(jī)程序用于綜合與流水線處理器相關(guān)的邏輯。在一個(gè)實(shí)施例中,系統(tǒng)包括一個(gè)具有一個(gè)顯示器的獨(dú)立的微型計(jì)算機(jī)系統(tǒng),中央處理器,數(shù)據(jù)存儲(chǔ)設(shè)備,和輸入設(shè)備。
在本發(fā)明的第五個(gè)方面中,公開(kāi)了利用上述跳轉(zhuǎn)延遲時(shí)隙方法和有約束/無(wú)約束的綜合邏輯的一種改進(jìn)的處理器體系結(jié)構(gòu)。在一個(gè)實(shí)施例中,該處理器包括具有三階段流水線的一個(gè)精簡(jiǎn)指令集計(jì)算機(jī)(RISC),三階段流水線包括由上述跳轉(zhuǎn)延遲時(shí)隙方法所部分控制的取指令,解碼,和執(zhí)行階段。
附圖簡(jiǎn)述
圖1是使用“分段的”算法單元的一個(gè)典型的現(xiàn)有技術(shù)處理器結(jié)構(gòu)的方框圖。
圖2是正進(jìn)行一個(gè)多周期轉(zhuǎn)移運(yùn)算的一個(gè)四階段流水線處理器的示意圖。
圖3是按照本發(fā)明在一個(gè)流水線處理器內(nèi)控制跳轉(zhuǎn)延遲時(shí)隙模式的通常方法的一個(gè)示意性的邏輯流程圖。
圖3a是執(zhí)行圖3指定的跳轉(zhuǎn)延遲時(shí)隙模式方法的一個(gè)實(shí)施例的邏輯流程圖。
圖4是按照本發(fā)明、對(duì)結(jié)合了跳轉(zhuǎn)延遲時(shí)隙模式的處理器邏輯進(jìn)行綜合的普通方法的一個(gè)邏輯流程圖。
圖5是表示用于實(shí)現(xiàn)本發(fā)明的跳轉(zhuǎn)延遲時(shí)隙模式的綜合邏輯(無(wú)約束)的第一實(shí)施例的示意圖。
圖6是表示用于實(shí)現(xiàn)本發(fā)明的跳轉(zhuǎn)延遲時(shí)隙模式的綜合邏輯(有約束)的第二實(shí)施例的示意圖。
圖7是結(jié)合了相應(yīng)于本發(fā)明的跳轉(zhuǎn)延遲時(shí)隙模式的一個(gè)流水線處理器設(shè)計(jì)的方框圖。
圖8是用于綜合處理圖5-6的邏輯裝置的一個(gè)計(jì)算機(jī)系統(tǒng)實(shí)施例的功能方框圖。
發(fā)明詳述
現(xiàn)在參考給出的附圖,其中相同的編號(hào)指整體相同的部分。
在此所用的術(shù)語(yǔ)“處理器”意味著包括任何集成電路或其它的能夠就至少一個(gè)指令字而執(zhí)行一個(gè)操作的電子設(shè)備,包括,但不限于此,精簡(jiǎn)指令集芯片(RISC)處理器,比如由本專利申請(qǐng)受讓人制造的ARC用戶結(jié)構(gòu)的芯片,中央處理器(CPU),以及數(shù)字信號(hào)處理器(DSP)。這樣設(shè)備的硬件可以被集成在一個(gè)單片硅上(“小片”),或被分布在兩個(gè)或多個(gè)小片中。而且,處理器的各種功能方式可以用軟件或與處理器相關(guān)的固件來(lái)實(shí)現(xiàn)。
此外,作為本領(lǐng)域普通技術(shù)人員來(lái)說(shuō),應(yīng)理解在此使用的術(shù)語(yǔ)“階段”涉及一個(gè)流水線處理器內(nèi)的各連續(xù)階段;即階段1相當(dāng)于第一流水線階段,階段2相當(dāng)于第二流水線階段,依此類推。
此外應(yīng)注意的是,下面的描述僅與VHSIC硬件描述語(yǔ)言(VHDL)有關(guān),而諸如Verilog的其它硬件描述語(yǔ)言也可以同樣成功地用于描述本發(fā)明的各種實(shí)施例。而且,示例了一個(gè)Synopsys綜合引擎,比如Design Compiler 1999.05(DC99)來(lái)用于綜合處理在此所述的各種實(shí)施例,但也可以使用其它的綜合引擎,比如特別地可從Cadence DesignSystems,Inc.獲得的Buildgates。IEEE std.1076.3-1997,IEEE StandardVHDL Synthesis Packages描述了一種用于規(guī)定基于硬件描述語(yǔ)言的設(shè)計(jì)的一種工業(yè)接受的語(yǔ)言以及綜合處理能力,這對(duì)于本領(lǐng)域普通技術(shù)人員來(lái)說(shuō),是可以得到的。
最后,應(yīng)該清楚盡管下面描述了本專利申請(qǐng)受讓人使用上述的綜合處理引擎和VHSIC硬件描述語(yǔ)言來(lái)綜合處理邏輯的具體實(shí)施例,這類具體實(shí)施例以不同方式受到約束,但這些實(shí)施例僅僅作為本發(fā)明的設(shè)計(jì)示例。而且,盡管對(duì)這些實(shí)施例規(guī)定了一種1.0um工藝,但應(yīng)該可以想象到用其它的制造工藝(例如0.35um或0.18um)來(lái)結(jié)合在此公開(kāi)的本發(fā)明。
現(xiàn)在描述相應(yīng)于本發(fā)明、控制跳轉(zhuǎn)延遲時(shí)隙以及在一個(gè)處理器內(nèi)對(duì)它們進(jìn)行編碼的改進(jìn)的方法。
本發(fā)明通常包括多個(gè)不同的“跳轉(zhuǎn)模式”或修改程序。這些修改程序在整個(gè)跳轉(zhuǎn)過(guò)程中控制處理器的操作;特別是,一個(gè)指令在一個(gè)先于跳轉(zhuǎn)指令本身階段的流水線階段之后、或該流水線階段之中的執(zhí)行。總體來(lái)說(shuō),這些修改程序提供給程序員許多益處,這些益處不是由多周期或延遲的轉(zhuǎn)移方法孤立地提供的,因?yàn)槌绦騿T能夠安排程序編碼以便在這樣的跳轉(zhuǎn)或轉(zhuǎn)移操作過(guò)程中按期望的方式操作流水線。
現(xiàn)在參考圖3,描述按照本發(fā)明在一個(gè)流水線處理器內(nèi)跳轉(zhuǎn)進(jìn)行期間控制指令執(zhí)行的通用方法300。首先,在步驟302,提供一個(gè)適于在處理器上運(yùn)行和包括多個(gè)指令“字”的程序。程序中的每個(gè)指令字被表示為并包括了多個(gè)數(shù)據(jù)位,并且至少一個(gè)指令字包括一個(gè)跳轉(zhuǎn)指令。在本文中,術(shù)語(yǔ)“指令集”用于描述可以在處理器上執(zhí)行的每個(gè)可能指令的完全集,并且術(shù)語(yǔ)“程序”用于描述從處理器的指令集中選擇、以便實(shí)現(xiàn)一具體目的的一個(gè)指令特定序列。在此所用的術(shù)語(yǔ)“跳轉(zhuǎn)”指任何轉(zhuǎn)移,跳轉(zhuǎn),循環(huán)設(shè)置或調(diào)用指令,雖然其他要求改變處理器指令處理流程的指令也能夠與所公開(kāi)的本發(fā)明相結(jié)合。
下一步,在步驟304,多個(gè)預(yù)定值之一被分配到跳轉(zhuǎn)指令的至少一個(gè)數(shù)據(jù)位。在一個(gè)實(shí)施例中,跳轉(zhuǎn)指令的兩個(gè)數(shù)據(jù)位被指定攜帶跳轉(zhuǎn)延遲時(shí)隙模式信息,如以下參考表1所示。對(duì)于這兩位使用允許的二元狀態(tài)“0”和“1”,可以形成22或4的唯一組合,每個(gè)組合指定一種不同的跳轉(zhuǎn)延遲時(shí)隙模式。然而,應(yīng)該明白,通過(guò)使用或多或少的數(shù)據(jù)位可以指定任意不同數(shù)目的唯一(或非唯一)模式,如果需要的話,甚至使用不同的數(shù)字基數(shù)。
接著,在步驟306,由處理器解碼包含在跳轉(zhuǎn)延遲時(shí)隙模式信息中的至少一個(gè)跳轉(zhuǎn)指令。在計(jì)算機(jī)領(lǐng)域中大家熟知用于指令解碼的方法和裝置,因而在此不作進(jìn)一步的描述。然而應(yīng)注意的是,與現(xiàn)有技術(shù)的指令解碼相比,本發(fā)明的指令集內(nèi)的跳轉(zhuǎn)指令解碼包括不僅對(duì)指令本身進(jìn)行解碼(步驟307),還包括對(duì)先前所述的指定的跳轉(zhuǎn)延遲時(shí)隙模式數(shù)據(jù)位的解碼和分析(步驟308)。
在步驟310,按照步驟304中由程序員規(guī)定的功能性,執(zhí)行指定的跳轉(zhuǎn)延遲時(shí)隙模式。
圖3a圖示了經(jīng)圖3步驟310而執(zhí)行指定跳轉(zhuǎn)延遲時(shí)隙模式的方法的一個(gè)實(shí)施例。在第一步驟312,讀取在步驟314中被指定的攜帶延遲段模式信息的數(shù)據(jù)位以便確定在被解碼指令內(nèi)所選擇的跳轉(zhuǎn)延遲時(shí)隙模式。接著,在步驟314,分析選擇的延遲段模式以便確定它是否是有條件的(也就是,取決于另一個(gè)參數(shù),比如是否采取一個(gè)到另一個(gè)程序地址的跳轉(zhuǎn))。如果選擇的模式是有條件的,在步驟316和317中分析參數(shù)的狀態(tài)以便確定其中的“真值”。如果該條件為真,經(jīng)步驟318執(zhí)行用于一個(gè)真實(shí)條件的所需的動(dòng)作。如果該條件不為真,經(jīng)步驟320執(zhí)行用于一個(gè)虛偽條件所需的動(dòng)作(或選擇不采取動(dòng)作)。如果選擇的模式對(duì)任何參數(shù)都是無(wú)條件的,在步驟322中執(zhí)行那個(gè)模式(比如執(zhí)行流水線內(nèi)一個(gè)隨后的指令,或者一個(gè)流水線阻塞)所需的動(dòng)作。
在上述方法300的一個(gè)示范性實(shí)施例中,定義了下列三個(gè)跳轉(zhuǎn)修改程序(延遲段模式)
(1)ND(“沒(méi)有延遲的指令段”)—當(dāng)無(wú)跳轉(zhuǎn)時(shí)僅執(zhí)行流水線中的表2
下面的匯編語(yǔ)言編碼利用一個(gè)有條件的、到后面有一個(gè)數(shù)學(xué)(加)指令的程序位置‘目標(biāo)’ 的轉(zhuǎn)移指令(beq),示例了表1各相應(yīng)跳轉(zhuǎn)延遲時(shí)隙模式的語(yǔ)法和操作的例子
(1)beq.nd target;
add rl,rl,1;如果采取跳轉(zhuǎn)不執(zhí)行“加”
(2)beq.d target
add rl,rl,1;總是執(zhí)行“加”
(3)beq.jd target;
add rl,rl,1;僅當(dāng)采取跳轉(zhuǎn)執(zhí)行“加”
表1的第四個(gè)模式(“11”)可以用于其它的跳轉(zhuǎn)模式或非跳轉(zhuǎn)模式功能——如果愿意的話,從而為程序員提供了進(jìn)一步的靈活性。另外,雖然在表1的實(shí)施例中示例了指令字的兩位,但應(yīng)該清楚的是,可以想象使用其他數(shù)目的以及不同安排的位(包括它們?cè)谥噶钭謨?nèi)的位置及其語(yǔ)法)。例如,三個(gè)非相鄰的位可用于表示多達(dá)八個(gè)獨(dú)立的跳轉(zhuǎn)延遲時(shí)隙模式。
表3利用基于IW內(nèi)三個(gè)數(shù)據(jù)位的五個(gè)跳轉(zhuǎn)延遲時(shí)隙模式(四個(gè)加一個(gè)保留),示例了本發(fā)明跳轉(zhuǎn)延遲時(shí)隙模式的第二實(shí)施例
表3
在示例的實(shí)施例中,存在于指令集內(nèi)的跳轉(zhuǎn)指令可以停止其它指令類型的執(zhí)行(即“注銷”),取決于兩個(gè)因素(i)選擇的延遲段模式,和(ii)跳轉(zhuǎn)指令的條件是否為真。以下四個(gè)指令說(shuō)明了本文中與本申請(qǐng)人的ARC RISC處理器相關(guān)的VHDL編碼的上述原理
1.規(guī)則的跳轉(zhuǎn)指令
ip2rjmp<=′1′WHEN ip2iv=′1′AND(ip2i=obcc
OR ip2i=oblcc
OR ip2i=ojcc)ELSE
′0′;
2.循環(huán)回路設(shè)置指令
ip21pcc<=′1′WHEN ip2iv=′1′AND(ip2i=olpcc)ELSE
′0′;
3.跳轉(zhuǎn)/非跳轉(zhuǎn)信號(hào)
ip2jumping<=(ip2rjmp AND ip2condtrue)OR(ip21pcc AND NOT
jp2condtrue);
ip2nojump<=(ip2jmp AND NOT ip2condtrue)OR(ip21pcc AND
ip2condtrue);
4.“注銷”信號(hào)
ip2killnext<=‘1’WHEN((ip2dd=dmk)AND ip2bch=‘1’)
OR((ip2dd=dmnd)AND ip2jumping=‘1’)
OR((ip2dd=dmjd)AND ip2nojump=‘1’)ELSE
′0′
p2killnext<=ip2killnext;
應(yīng)注意的是,所示實(shí)施例的ip2killnext指令包括p2iv(流水線階段2指令有效信號(hào))和一個(gè)用于一個(gè)跳轉(zhuǎn)操作的全解碼,以便在流水線控制邏輯(“pipectl”)內(nèi)可以使用它而不用除en2(流水線階段2啟動(dòng)/阻塞信號(hào))以外的任何其他的解碼。這種特性減少了解碼延遲并允許指令更快執(zhí)行。盡管在這個(gè)例子中使用的解碼技術(shù)導(dǎo)致了上述操作中的許多益處,但應(yīng)該明白該技術(shù)對(duì)于本發(fā)明的實(shí)際應(yīng)用并不是必不可少的。
附錄A示例了用于綜合處理本發(fā)明的上述跳轉(zhuǎn)延遲時(shí)隙模式的VHDL的一個(gè)實(shí)施例。
附錄B提供了利用Synopsys綜合處理引擎用于延遲段綜合處理的一個(gè)綜合稿本的示例。
此外,應(yīng)該注意的是,可以連同(單獨(dú)地或共同的)其他的流水線控制和聯(lián)鎖的方法一起來(lái)使用本發(fā)明的方法和裝置,其中尤其包括那些與本申請(qǐng)共同待審的美國(guó)專利申請(qǐng)標(biāo)題為“Method And ApparatusFor Jump Control In A Pipelined Processor’中公開(kāi)的內(nèi)容,以及那些與本申請(qǐng)共同待審的美國(guó)專利申請(qǐng)標(biāo)題為“Method And Apparatus ForProcessor Pipeline Segmentation and Reassembly”中公開(kāi)的內(nèi)容,它們與此同時(shí)申報(bào),在此結(jié)合它們的全部?jī)?nèi)容作為參考。而且,各種寄存器編碼方案,比如與本申請(qǐng)共同待審的美國(guó)專利申請(qǐng)標(biāo)題為“Methodand Apparatus for Loose Register Encoding Within a Pipelined Processor”中描述的“松散”寄存器編碼,它與此同時(shí)申報(bào),在此結(jié)合參考它的全部?jī)?nèi)容,在此可以連同本發(fā)明使用的跳轉(zhuǎn)延遲時(shí)隙一起進(jìn)行描述。進(jìn)行綜合處理的方法
參考圖4,描述了先前討論的結(jié)合跳轉(zhuǎn)延遲時(shí)隙模式綜合處理邏輯的方法400。在與本申請(qǐng)共同待審的美國(guó)專利申請(qǐng)序列號(hào)09/418,663標(biāo)題為“Method And Apparatus For Managing The Configuration AndFunctionality Of A Semiconductor Design”中公開(kāi)了綜合處理具有一個(gè)用戶化(即“軟的”)指令的集成電路邏輯的普通方法,它于1999年10月14日申報(bào),在此結(jié)合它的全部?jī)?nèi)容作為參考。
雖然下面的描述是有關(guān)于在一個(gè)微型計(jì)算機(jī)或其他類似處理設(shè)備上的一個(gè)算法或計(jì)算機(jī)程序,但應(yīng)該清楚可以使用其它的硬件環(huán)境(包括小型計(jì)算機(jī),工作站,網(wǎng)絡(luò)計(jì)算機(jī),“超級(jí)計(jì)算機(jī)”,和大型計(jì)算機(jī))來(lái)實(shí)踐本方法。此外,如果需要的話,相對(duì)于軟件可以把計(jì)算機(jī)程序的一個(gè)或多個(gè)部分實(shí)施于硬件或固件中,這種替換的實(shí)施例在計(jì)算機(jī)技術(shù)領(lǐng)域是熟知的。
最初,在步驟402中獲得有關(guān)設(shè)計(jì)配置的用戶輸入。特別是,由用戶選擇用于設(shè)計(jì)的期望的模塊或功能,并按需要添加、減去或產(chǎn)生與設(shè)計(jì)有關(guān)的指令。例如,在信號(hào)處理應(yīng)用程序中,通常最好讓CPU包括單一的“乘法和累積”(MAC)指令。在本發(fā)明中,修改綜合設(shè)計(jì)的指令集以便在其中結(jié)合上述跳轉(zhuǎn)延遲時(shí)隙模式(或其他等同的跳轉(zhuǎn)延遲時(shí)隙控制體系結(jié)構(gòu))。尤其是,在本發(fā)明的實(shí)施例中,表示指定跳轉(zhuǎn)延遲時(shí)隙模式的多個(gè)預(yù)定值之一通過(guò)參考圖1的上述跳轉(zhuǎn)指令字的兩個(gè)數(shù)據(jù)位進(jìn)行表示。此外,在步驟402中由用戶定義用于每個(gè)VHDL文件的技術(shù)庫(kù)位置。本發(fā)明中的技術(shù)庫(kù)文件存儲(chǔ)了所有與用于綜合處理所需單元相關(guān)的信息,例如包括邏輯功能,輸入/輸出計(jì)時(shí),和任何相關(guān)約束。在本發(fā)明中,每個(gè)用戶可以定義他的/她的自己的庫(kù)名和位置,從而進(jìn)一步增加了靈活性。
下一步,在步驟403,生成在步驟402中規(guī)定的基于用戶輸入和現(xiàn)存功能庫(kù)的用戶化的HDL功能塊。
在步驟404中,基于用戶的輸入和上述的庫(kù)文件確定設(shè)計(jì)結(jié)構(gòu)層次?;谠O(shè)計(jì)結(jié)構(gòu)層次順序地產(chǎn)生一個(gè)結(jié)構(gòu)層次文件,新的庫(kù)文件,和程序描述文件。在此使用的術(shù)語(yǔ)“程序描述文件”相當(dāng)于通用的UNIX程序描述文件功能或者相當(dāng)于計(jì)算機(jī)領(lǐng)域普通技術(shù)人員熟知的一個(gè)計(jì)算機(jī)系統(tǒng)的類似的功能。程序描述文件功能導(dǎo)致其他常駐計(jì)算機(jī)系統(tǒng)中的程序或算法以規(guī)定的次序被執(zhí)行。此外,它進(jìn)一步規(guī)定數(shù)據(jù)文件的名稱和位置和其他為指定程序的成功操作所需的信息。但應(yīng)該注意的是,在此公開(kāi)的發(fā)明可以利用不同于“程序描述文件”的文件結(jié)構(gòu)來(lái)產(chǎn)生期望的功能性。
在本發(fā)明的程序描述文件產(chǎn)生處理過(guò)程的一個(gè)實(shí)施例中,是經(jīng)過(guò)顯示提示交互地詢問(wèn)用戶來(lái)輸入與期望的設(shè)計(jì)有關(guān)的信息,比如“構(gòu)件”的類型(例如,整體設(shè)備或系統(tǒng)配置),外部存儲(chǔ)器系統(tǒng)數(shù)據(jù)總線的寬度,擴(kuò)展時(shí)隙的不同類型,高速緩沖存儲(chǔ)器的類型/大小等等。但只要符合本發(fā)明,也可以使用許多其他的輸入信息的配置和資源。
在步驟406,運(yùn)行在步驟404中產(chǎn)生的程序描述文件以便生成結(jié)構(gòu)的HDL。該結(jié)構(gòu)的HDL將設(shè)計(jì)中分立的功能塊結(jié)合在一起以便完成一個(gè)設(shè)計(jì)。
接著,在步驟408,運(yùn)行在步驟406中產(chǎn)生的稿本以生成用于模擬程序的一個(gè)程序描述文件。此外,在步驟408中還運(yùn)行產(chǎn)生一個(gè)綜合稿本的稿本。
在程序的這一點(diǎn)上,做出一個(gè)是否綜合或模擬設(shè)計(jì)的決定(步驟410)。如果選擇模擬,用戶利用在步驟412產(chǎn)生的設(shè)計(jì)和模擬程序描述文件(和用戶程序)運(yùn)行模擬程序??商鎿Q的,如果選擇綜合處理,用戶利用在步驟414中的綜合稿本和產(chǎn)生的設(shè)計(jì)運(yùn)行綜合處理。在完成綜合/模擬稿本之后,在步驟416評(píng)估適當(dāng)?shù)脑O(shè)計(jì)程序。例如,一個(gè)綜合引擎可以生成一個(gè)具體的設(shè)計(jì)的物理布局,它符合整體設(shè)計(jì)處理程序的性能標(biāo)準(zhǔn),但不符合所要求的小片尺寸。在此情況下,設(shè)計(jì)者將對(duì)控制文件,數(shù)據(jù)庫(kù),或其它元件進(jìn)行改變,它們可以影響小片尺寸。隨后設(shè)計(jì)信息的結(jié)果集合被用于重新運(yùn)行綜合處理稿本。
如果產(chǎn)生的設(shè)計(jì)是可接受的,則完成設(shè)計(jì)處理程序。如果設(shè)計(jì)是不可接受的,重新執(zhí)行從步驟402開(kāi)始的處理步驟直到獲得一個(gè)可接受的設(shè)計(jì)。在此方式中,循環(huán)方法400。
現(xiàn)在參考圖5,示例了利用圖4的Synopsys設(shè)計(jì)編譯器和方法所綜合處理的門邏輯(包括在附錄A的VHDL中所引用的ip2bch)的第一實(shí)施例。注意用于產(chǎn)生圖5的邏輯綜合的處理期間,規(guī)定了一個(gè)LSI10k 1.0um工藝,并且在設(shè)計(jì)上沒(méi)有約束。來(lái)自圖5邏輯的p2killnext信號(hào)輸出被用于VHDL編碼(rctl.vhdl)中的任何地方以便當(dāng)指令被傳送到階段2時(shí)在階段1中將其標(biāo)以“注銷”標(biāo)記。
圖6示例了利用Synopsys設(shè)計(jì)編譯器和上述的1.0um工藝綜合處理的示范性門邏輯的第二實(shí)施例。然而,不像圖5的邏輯,已經(jīng)約束了ip2condtrue和p2killnext之間的關(guān)鍵路徑以便以盡可能短的時(shí)間進(jìn)行操作。如先前所提到的,在整個(gè)綜合處理過(guò)程中,只要需要可以應(yīng)用許多各種不同的約束。
圖7示例了制造好的流水線處理器的一個(gè)例子,使用在此上述的一個(gè)1.0um工藝和結(jié)合圖5的邏輯以及跳轉(zhuǎn)延遲時(shí)隙模式。如圖7所示,處理器700是一個(gè)ARC類的微處理器CPU設(shè)備,其中尤其具有一個(gè)處理器芯片702,芯片存儲(chǔ)器704,和一個(gè)外部接口706。利用用戶化VHDL設(shè)計(jì)制造該設(shè)備,使用本發(fā)明的方法400獲得用戶化的VHDL設(shè)計(jì),該設(shè)備隨后被綜合處理成一個(gè)邏輯級(jí)表達(dá)式,并接著利用半導(dǎo)體領(lǐng)域已知的編譯,布局和制造技術(shù)把它精簡(jiǎn)成一個(gè)物理設(shè)備。
本領(lǐng)域普通技術(shù)人員應(yīng)該清楚,圖7的處理器可以包括任何通用的可獲得的外圍設(shè)備,比如串行通信設(shè)備,并行接口,計(jì)時(shí)器,計(jì)數(shù)器,高電流驅(qū)動(dòng)器,模數(shù)(A/D)轉(zhuǎn)換器,數(shù)模(D/A)轉(zhuǎn)換器,中斷處理器,LCD驅(qū)動(dòng)器,存儲(chǔ)器和其他類似的設(shè)備。另外,處理器還可以包括自定義或應(yīng)用的具體電路元件。本發(fā)明不局限于外圍設(shè)備的類型,數(shù)量或復(fù)雜程度,以及其他的可以使用本發(fā)明方法和裝置相組合的電路元件。反之,任何由現(xiàn)有半導(dǎo)體工藝的物理能力所施加的限制都會(huì)隨時(shí)間而改進(jìn)。因此可預(yù)期,隨半導(dǎo)體工藝的進(jìn)步,可能應(yīng)用本發(fā)明的集成的復(fù)雜性及質(zhì)量將進(jìn)一步提高。
還應(yīng)該注意的是,當(dāng)前的許多IC設(shè)計(jì)使用一個(gè)微處理器芯片和一個(gè)DSP芯片。然而DSP僅可以用于所需的有限數(shù)量的DSP功能,或者用于IC的快速DMA結(jié)構(gòu)體系。在此公開(kāi)的本發(fā)明可以支持許多DSP指令功能,并且它的快速局部RAM系統(tǒng)可以直接存取數(shù)據(jù)。通過(guò)使用在此公開(kāi)的用于IC的CPU&DSP功能的方法可以明顯地實(shí)現(xiàn)節(jié)省費(fèi)用。
除此之外,請(qǐng)注意這里如前所述的方法(及相應(yīng)的計(jì)算機(jī)程序)可容易地以相對(duì)簡(jiǎn)單的再綜合適應(yīng)于更新的生產(chǎn)技術(shù),例如0.18或0.1微米工藝——而非使用“硬的”原有微技術(shù)系統(tǒng)時(shí),為了適應(yīng)這類技術(shù)通常要采用冗長(zhǎng)昂貴的處理。
現(xiàn)在參考圖8,描述一個(gè)計(jì)算設(shè)備的實(shí)施例,它尤其是能夠綜合這里圖5和圖6的跳轉(zhuǎn)延遲時(shí)隙模式邏輯結(jié)構(gòu)。計(jì)算設(shè)備800包括一個(gè)母板801,該母板具有一個(gè)中央處理器(CPU)802,隨機(jī)存取存儲(chǔ)器(RAM)804,和存儲(chǔ)器控制器805。此外還提供一個(gè)存儲(chǔ)設(shè)備806(比如一個(gè)硬盤驅(qū)動(dòng)器或CD-ROM),輸入設(shè)備807(比如一個(gè)鍵盤或鼠標(biāo)),和顯示設(shè)備808(比如一個(gè)CRT,等離子體,或TFT顯示器),以及支持主機(jī)和周邊器件工作所需的總線。在整個(gè)設(shè)計(jì)綜合處理過(guò)程中,上述的VHDL描述和綜合引擎以計(jì)算機(jī)程序的一個(gè)目標(biāo)編碼表達(dá)式的形式被存儲(chǔ)在RAM 804和/或存儲(chǔ)設(shè)備806中來(lái)由CPU 802進(jìn)行使用,在計(jì)算機(jī)領(lǐng)域中后者是大家熟知的。在整個(gè)系統(tǒng)操作過(guò)程中,用戶(未示出)通過(guò)把設(shè)計(jì)的配置規(guī)范經(jīng)程序顯示和輸入設(shè)備807輸入到綜合處理程序中來(lái)綜合處理邏輯設(shè)計(jì)。由程序所生成的經(jīng)過(guò)綜合的設(shè)計(jì)儲(chǔ)存于存儲(chǔ)設(shè)備806中以便以后檢索,顯示于圖形顯示設(shè)備808,或經(jīng)由一個(gè)串行或并行接口812而輸出到一臺(tái)外部設(shè)備,如打印機(jī)、數(shù)據(jù)存儲(chǔ)設(shè)備、其它外圍設(shè)備——如果需要的話。
盡管上面已經(jīng)進(jìn)行了詳細(xì)描述,并應(yīng)用各種實(shí)施例指出了本發(fā)明的新穎性,但應(yīng)明白在不脫離本發(fā)明的范疇下,本領(lǐng)域技術(shù)人員可以對(duì)本發(fā)明的設(shè)備的細(xì)節(jié)或處理過(guò)程以省略,替代,或改變的各種形式作出變化。上述的內(nèi)容是目前實(shí)現(xiàn)本發(fā)明的最佳方式。這一描述絕不意味著限制,反之,應(yīng)作為本發(fā)明通用原理的示例。本發(fā)明的范圍應(yīng)該根據(jù)權(quán)利要求的內(nèi)容來(lái)確定。
附錄A-示例用于綜合處理的延遲段VHDL
library ieee.arc;use ieee.std_logic_1164.all;use arc.arcutil.all;entity delay_slot isPORT(ip2iv ;in std_ulogic;   ip2condtrue;in std_ulogic;   ip2i ;in std-ulogic_vector(4 downto 0);   ip2dd ;in std_ulogic_vector(1 downto 0);   p2killnext ;out std_ulogic);end delay_slot;architecture synthesis of delay_slot is   signal ip2bch ; std_ulogic;   signal ip2rjmp; std_ulogic;   signal ip2lpcc; std_ulogic;   signal ip2jumping ; std_ulogic;   signal ip2nojump ; std_ulogic;   signal ip2killnext; std_ulogic;beginip2bch<=′1′WHEN ip2iv=‘1’AND (ip2i=obccOR ip2i=oblcc   OR ip2I=olpccOR ip21=ojcc)ELSE   ‘0’;------延遲段取消邏輯.--------由于LPcc指令對(duì)其它的轉(zhuǎn)移指令以不同方式使用它的條件碼,在實(shí)施例中需要兩個(gè)信號(hào)來(lái)規(guī)定一個(gè)進(jìn)行跳轉(zhuǎn)的跳轉(zhuǎn)指令,一個(gè)用于規(guī)定一個(gè)不進(jìn)行跳轉(zhuǎn)的跳轉(zhuǎn)指令。--規(guī)則跳轉(zhuǎn)指令--ip2rjmp<=′1′WHEN ip2iv=′1′AND(ip2i=obcc   OR ip2i =oblcc   OR ip2i =ojcc)ELSE   ‘0’;<!-- SIPO <DP n="15"> --><dp n="d15"/>--循環(huán)回路設(shè)置指令--ip21pcc<=′1′WHEN ip2iv=‘1’AND(ip2i=olpcc)ELSE‘0’--進(jìn)行跳轉(zhuǎn)/不跳轉(zhuǎn)信號(hào)--ip2jumping<=(ip2rjmpANDip2ondtrue)OR(ip21pccANDNOTip2condtrue);ip2nojump<(ip2rjmpANDNOTip2condtrue)OR(ip21pccANDip2condtrue);--取消信號(hào)本身—----ip2killnext include p2iv and a full decode for a jump,so can--be used in pipectl without any further decode(apart from en2 of course).  ip2killnext<=’1’WHEN((ip2dd=dmk)AND ip2bch=′1′)  OR((ip2dd=dmnd)AND ip2jumping=′1′)  OR((ip2dd=dmjd)AND ip2nojump=′1′)ELSE   ‘0’;  p2killnext<=ip2killnext;end synthesis;
附錄B-用于延遲段綜合的示例綜合稿本
/*′produce result without any optimization*//*assuming using the LSI Logic 10k library*/analyze-format vhdl-lib ARC {ARCHOME+"/arc/vhdl/arcutil.vhdl"}analyze-format vhdl-lib USER{USERDIR+"/vhdl/delay_slot.vhdl"}elaborate delay_slot-arch"synthesis"-Hb USERcompilewrite-format db-hierarchy-output db/delay_slot_noopt.dbrernove_design-all/*result with logic optimization*/elaborate delay_slot-arch"synthesis"-lib USER/*timing for inputs direct from flipflops*/t_in=1.33/*create an imaginary 20MHz clock*/create clock-name ck-period 50set_input_delay 20 ip2condtrue -clock ckset_input_delay t_inip2dd-clock ckset_input delay t_inip2l -clock ckset_input_delay t_inip2iv-clock ckset_output_delay 28 p2killnext -clock ckcompilewrite-format db-hierarchy-output db/delay_slot_opt.db
權(quán)利要求
1.一種在流水線處理器內(nèi)控制指令執(zhí)行的方法,包括
提供包括多個(gè)指令字的一個(gè)指令集,每個(gè)所述指令字包括多個(gè)數(shù)據(jù)位,至少所述字的其中之一包括一個(gè)跳轉(zhuǎn)指令;
將多個(gè)值中的一個(gè)賦予所述至少一個(gè)跳轉(zhuǎn)指令的至少一個(gè)所述數(shù)據(jù)位;
當(dāng)所述至少一個(gè)跳轉(zhuǎn)指令被解碼時(shí),基于所述至少一個(gè)所述數(shù)據(jù)位的所述被賦值在所述流水線內(nèi)控制至少一個(gè)隨后指令的執(zhí)行。
2.權(quán)利要求1的方法,其中賦值的動(dòng)作包括
在所述至少一個(gè)跳轉(zhuǎn)指令內(nèi)識(shí)別多個(gè)數(shù)據(jù)位;
將兩個(gè)分立值的其中之一賦予每個(gè)所述數(shù)據(jù)位,所述兩個(gè)分立值的組合表示所述處理器內(nèi)的至少三個(gè)跳轉(zhuǎn)延遲時(shí)隙模式。
3.權(quán)利要求2的方法,其中基于所述分立值控制執(zhí)行的動(dòng)作包括從組中選擇至少一個(gè)模式,該組包括
(i)在所有環(huán)境下執(zhí)行所述至少一個(gè)隨后的指令;
(ii)只有當(dāng)出現(xiàn)一個(gè)跳轉(zhuǎn)時(shí)執(zhí)行所述至少一個(gè)隨后的指令;和
(iii)如果出現(xiàn)一個(gè)跳轉(zhuǎn)則阻塞流水線或在流水線中插入一個(gè)氣泡。
4.權(quán)利要求3的方法,其中所述至少一個(gè)跳轉(zhuǎn)指令包括一個(gè)有條件轉(zhuǎn)移指令。
5.權(quán)利要求1的方法,其中基于所述一個(gè)被賦值而控制執(zhí)行的動(dòng)作包括
(i)在所有環(huán)境下執(zhí)行所述至少一個(gè)隨后的指令;
(ii)只有當(dāng)出現(xiàn)一個(gè)跳轉(zhuǎn)時(shí)執(zhí)行所述至少一個(gè)隨后的指令;和
(iii)如果出現(xiàn)一個(gè)跳轉(zhuǎn)則阻塞流水線或在流水線中插入一個(gè)氣泡。
6.一種綜合處理器設(shè)計(jì)的方法包括
輸入信息到第一文件以便包括一個(gè)具有至少一個(gè)跳轉(zhuǎn)指令的指令集,所述至少一個(gè)跳轉(zhuǎn)指令包括多個(gè)跳轉(zhuǎn)延遲模式中的至少一個(gè);
定義至少一個(gè)庫(kù)文件的位置;
使用第一文件,所述庫(kù)文件,和用戶輸入信息產(chǎn)生一個(gè)稿本;
運(yùn)行所述稿本以便生成一個(gè)用戶化的描述語(yǔ)言模塊;和
基于所述描述語(yǔ)言模塊來(lái)綜合所述設(shè)計(jì)。
7.權(quán)利要求6的方法,其中進(jìn)行綜合的動(dòng)作包括基于所述描述語(yǔ)言模塊運(yùn)行綜合稿本。
8.權(quán)利要求7的方法,進(jìn)一步包括產(chǎn)生用于一個(gè)模擬程序的第三文件,并使用所述第三文件模擬所述設(shè)計(jì)。
9.權(quán)利要求8的方法,進(jìn)一步包括基于所述模擬來(lái)評(píng)估設(shè)計(jì)的可接受性的動(dòng)作。
10.權(quán)利要求9的方法,進(jìn)一步包括對(duì)設(shè)計(jì)進(jìn)行修訂以產(chǎn)生一個(gè)經(jīng)修訂設(shè)計(jì)的動(dòng)作,并再綜合所述修訂的設(shè)計(jì)。
11.權(quán)利要求1的方法,其中輸入的動(dòng)作包括提供與所述設(shè)計(jì)相關(guān)的多個(gè)輸入?yún)?shù),所述參數(shù)包括
(i)一個(gè)高速緩存配置;
(ii)一個(gè)存儲(chǔ)器接口配置。
12.一種機(jī)器可讀取的數(shù)據(jù)存儲(chǔ)設(shè)備包括
一個(gè)數(shù)據(jù)存儲(chǔ)媒體,適于存儲(chǔ)多個(gè)數(shù)據(jù)位;和
表現(xiàn)為多個(gè)數(shù)據(jù)位并存儲(chǔ)在所述存儲(chǔ)媒體上的一個(gè)計(jì)算機(jī)程序,所述程序適于在一個(gè)計(jì)算機(jī)系統(tǒng)的處理器上運(yùn)行,并在一個(gè)具有一條流水線、而且結(jié)合了具有至少一個(gè)轉(zhuǎn)移指令和多個(gè)與之相關(guān)跳轉(zhuǎn)模式的一個(gè)指令集的處理器中用于綜合處理集成電路邏輯,所述多個(gè)跳轉(zhuǎn)模式至少包括下列
(i)在所有環(huán)境下執(zhí)行所述所述流水線內(nèi)的一個(gè)隨后的指令;
(ii)只有當(dāng)出現(xiàn)跳轉(zhuǎn)時(shí)執(zhí)行所述流水線內(nèi)的一個(gè)隨后的指令;
(iii)如果出現(xiàn)跳轉(zhuǎn)阻塞所述流水線。
13.權(quán)利要求12的數(shù)據(jù)存儲(chǔ)設(shè)備,其中所述數(shù)據(jù)存儲(chǔ)媒體是一個(gè)光盤只讀存儲(chǔ)器(CD-ROM),并且所述多個(gè)數(shù)據(jù)位包括一個(gè)所述程序的目標(biāo)表達(dá)式。
14.一種數(shù)字處理器包括
一個(gè)具有多階段指令流水線的處理器芯片,所述芯片適于解碼和執(zhí)行包括多個(gè)指令字的一個(gè)指令集;
在所述處理器芯片和一個(gè)信息存儲(chǔ)設(shè)備之間的一個(gè)數(shù)據(jù)接口;
一個(gè)包括多個(gè)指令字的指令集,至少一個(gè)所述指令字是一個(gè)跳轉(zhuǎn)指令,該跳轉(zhuǎn)指令包含定義多個(gè)跳轉(zhuǎn)延遲時(shí)隙模式的數(shù)據(jù),所述多個(gè)模式響應(yīng)于所述指令集內(nèi)的所述至少一個(gè)跳轉(zhuǎn)指令字而控制所述處理器芯片的所述指令流水線內(nèi)的指令的執(zhí)行。
15.權(quán)利要求14的處理器,其中所述多個(gè)跳轉(zhuǎn)延遲模式包括至少下列模式
(i)在所有環(huán)境下執(zhí)行所述所述流水線內(nèi)的一個(gè)隨后的指令;
(ii)只有當(dāng)出現(xiàn)跳轉(zhuǎn)時(shí)執(zhí)行所述流水線內(nèi)的一個(gè)隨后的指令;
(iii)如果出現(xiàn)跳轉(zhuǎn)阻塞所述流水線。
16.權(quán)利要求14的處理器,其中所述至少一個(gè)跳轉(zhuǎn)指令包括具有一個(gè)相關(guān)邏輯條件的一個(gè)有條件轉(zhuǎn)移指令,由通過(guò)所述邏輯條件確定的所述至少一個(gè)有條件轉(zhuǎn)移指令而指定的執(zhí)行一個(gè)跳轉(zhuǎn)到所述信息存儲(chǔ)設(shè)備內(nèi)的地址。
17.一種數(shù)字處理器,具有至少一個(gè)流水線和一個(gè)相關(guān)的數(shù)據(jù)存儲(chǔ)設(shè)備,其中通過(guò)下列方法控制所述至少一個(gè)流水線內(nèi)的指令的執(zhí)行,包括
在所述數(shù)據(jù)存儲(chǔ)設(shè)備內(nèi)存儲(chǔ)一個(gè)指令集,所述指令集包括多個(gè)指令字,每個(gè)所述指令字包括多個(gè)數(shù)據(jù)位,至少一個(gè)所述指令字包括一個(gè)轉(zhuǎn)移指令,用于直接轉(zhuǎn)移到所述數(shù)據(jù)存儲(chǔ)設(shè)備內(nèi)的第一地址;
將多個(gè)值的其中之一賦予所述至少一個(gè)轉(zhuǎn)移指令的所述至少一個(gè)數(shù)據(jù)位;
對(duì)包括所述一個(gè)值的所述至少一個(gè)轉(zhuǎn)移指令進(jìn)行解碼;
基于所述一個(gè)值確定是否在一個(gè)階段中執(zhí)行所述流水線內(nèi)的一個(gè)指令,該階段先于所述至少一個(gè)轉(zhuǎn)移指令的那個(gè)階段;
基于所述至少一個(gè)轉(zhuǎn)移指令轉(zhuǎn)移到所述第一地址。
18.權(quán)利要求17的處理器,其中所述數(shù)據(jù)位包括二進(jìn)制(基數(shù)2)數(shù)據(jù)。
19.權(quán)利要求17的方法,其中所述至少一個(gè)流水線包括至少三階段指令流水線,包括取指令,解碼,和執(zhí)行階段。
20.一種控制多階段流水線數(shù)字處理器程序內(nèi)轉(zhuǎn)移的方法,包括
在所述數(shù)據(jù)存儲(chǔ)設(shè)備內(nèi)存儲(chǔ)一個(gè)指令集,所述指令集包括多個(gè)指令字,每個(gè)所述指令字包括多個(gè)數(shù)據(jù)位,至少一個(gè)所述指令字包括一個(gè)轉(zhuǎn)移指令,用于基于第一參數(shù)直接轉(zhuǎn)移到所述數(shù)據(jù)存儲(chǔ)設(shè)備內(nèi)的第一地址;
定義多個(gè)跳轉(zhuǎn)模式;
分配所述多個(gè)跳轉(zhuǎn)模式的至少一個(gè)給所述至少一個(gè)轉(zhuǎn)移指令的至少一個(gè)所述數(shù)據(jù)位;
對(duì)包括所述至少一個(gè)數(shù)據(jù)位的所述至少一個(gè)轉(zhuǎn)移指令進(jìn)行解碼;
基于所述至少一個(gè)數(shù)據(jù)位和所述第一參數(shù)確定是否轉(zhuǎn)移到所述第一地址。
21.權(quán)利要求20的方法,其中定義多個(gè)跳轉(zhuǎn)模式的動(dòng)作包括定義下列模式
(i)在所有環(huán)境下執(zhí)行一個(gè)隨后的指令;
(ii)只有當(dāng)出現(xiàn)跳轉(zhuǎn)時(shí)執(zhí)行一個(gè)隨后的指令;
(iii)如果出現(xiàn)跳轉(zhuǎn)阻塞流水線或把一個(gè)氣泡插進(jìn)流水線。
22.一種在數(shù)字處理器內(nèi)使用的用于綜合邏輯設(shè)計(jì)的裝置,包括
一個(gè)中央處理器;
一個(gè)數(shù)據(jù)存儲(chǔ)設(shè)備,可操作地連接到所述中央處理器,所述數(shù)據(jù)存儲(chǔ)設(shè)備適于存儲(chǔ)和檢索計(jì)算機(jī)程序;
一個(gè)輸入設(shè)備,適于響應(yīng)來(lái)自所述系統(tǒng)的一個(gè)用戶輸入產(chǎn)生信號(hào);
一個(gè)計(jì)算機(jī)程序,存儲(chǔ)在所述數(shù)據(jù)存儲(chǔ)設(shè)備上,所述程序適于接收所述信號(hào)和允許所述用戶
輸入信息到第一文件以便包括具有至少一個(gè)跳轉(zhuǎn)指令的一個(gè)指
令集,所述至少一個(gè)跳轉(zhuǎn)指令包括多個(gè)跳轉(zhuǎn)延遲模式的至少其
中之一;
定義至少一個(gè)庫(kù)文件的位置;
使用第一文件,所述庫(kù)文件,和用戶輸入信息產(chǎn)生一個(gè)稿本;
運(yùn)行所述稿本以便生成一個(gè)用戶化的描述語(yǔ)言模塊;
基于所述描述語(yǔ)言模塊來(lái)綜合所述設(shè)計(jì)。
23.一種數(shù)字處理器包括
具有一個(gè)多階段數(shù)據(jù)流水線的處理裝置,所述處理裝置適于解碼和執(zhí)行包括多個(gè)指令字的一個(gè)指令集;
用于存儲(chǔ)數(shù)據(jù)的裝置;
在所述處理裝置和所述存儲(chǔ)數(shù)據(jù)裝置之間的用于傳輸數(shù)據(jù)的數(shù)據(jù)接口裝置;
一個(gè)包括多個(gè)指令字的指令集,至少一個(gè)所述指令字是一個(gè)跳轉(zhuǎn)指令,該跳轉(zhuǎn)指令包含定義多個(gè)跳轉(zhuǎn)控制裝置的數(shù)據(jù),所述多個(gè)跳轉(zhuǎn)控制裝置響應(yīng)于所述指令集內(nèi)的所述至少一個(gè)跳轉(zhuǎn)指令字、控制所述處理裝置的所述數(shù)據(jù)流水線內(nèi)的指令的執(zhí)行。
24.一種在數(shù)字處理器內(nèi)使用的用于綜合邏輯設(shè)計(jì)的裝置,包括
用于處理數(shù)據(jù)的裝置;
用于存儲(chǔ)數(shù)據(jù)的裝置,所述用于存儲(chǔ)的裝置可操作地連接到所述用于處理的裝置,并適于存儲(chǔ)和檢索一個(gè)計(jì)算機(jī)程序;
用于輸入信息的裝置,可操作地連接到所述處理裝置,所述輸入裝置適于響應(yīng)來(lái)自所述系統(tǒng)的一個(gè)用戶輸入而產(chǎn)生信號(hào);
一個(gè)計(jì)算機(jī)程序,存儲(chǔ)在所述數(shù)據(jù)存儲(chǔ)設(shè)備上,所述程序適于接收所述信號(hào)并包括
方法,用于輸入信息到第一文件以便包括具有至少一個(gè)跳轉(zhuǎn)指
令的一個(gè)指令集,所述至少一個(gè)跳轉(zhuǎn)指令包括多個(gè)跳轉(zhuǎn)延遲模
式的至少其中之一;
方法,用于定義至少一個(gè)庫(kù)文件的位置;
方法,用于使用第一文件,所述庫(kù)文件,和用戶輸入信息產(chǎn)生
一個(gè)稿本;
方法,用于運(yùn)行所述稿本以便生成一個(gè)用戶化的描述語(yǔ)言模塊;
方法,用于基于所述描述語(yǔ)言模塊來(lái)綜合所述設(shè)計(jì)。
全文摘要
一種在流水線中央處理器(CPU)或用戶化微處理器內(nèi)用于實(shí)現(xiàn)指令的方法和裝置。在本發(fā)明的第一個(gè)方面中,公開(kāi)了流水線內(nèi)控制轉(zhuǎn)移和執(zhí)行指令的一種改進(jìn)的方法。在一個(gè)實(shí)施例中,該方法包括在程序跳轉(zhuǎn)指令內(nèi)定義三個(gè)分立的延遲段;這些延遲段模式按照程序員需要而規(guī)定后面指令執(zhí)行或者阻塞流水線程序。在本發(fā)明的第二個(gè)方面中,公開(kāi)了結(jié)合上述模式綜合處理一個(gè)處理器設(shè)計(jì)的方法。還描述了利用上述的方法所綜合的示范性門邏輯,以及一個(gè)能夠?qū)嵤┻@些方法的計(jì)算機(jī)系統(tǒng)。
文檔編號(hào)G06F9/38GK1360693SQ00808460
公開(kāi)日2002年7月24日 申請(qǐng)日期2000年5月12日 優(yōu)先權(quán)日1999年5月13日
發(fā)明者P·沃恩斯, C·格林漢姆 申請(qǐng)人:Arc國(guó)際美國(guó)控股公司
網(wǎng)友詢問(wèn)留言 已有0條留言
  • 還沒(méi)有人留言評(píng)論。精彩留言會(huì)獲得點(diǎn)贊!
1
改则县| 嘉峪关市| 突泉县| 柯坪县| 老河口市| 苏尼特右旗| 南充市| 政和县| 永和县| 宁远县| 富顺县| 屏山县| 丰城市| 神木县| 搜索| 饶平县| 临澧县| 长岛县| 睢宁县| 太谷县| 澎湖县| 新蔡县| 泸州市| 兴和县| 通河县| 山西省| 章丘市| 赞皇县| 海门市| 丹寨县| 东莞市| 台南市| 宜川县| 南乐县| 迁安市| 玉屏| 册亨县| 裕民县| 汉中市| 江都市| 海兴县|