亚洲成年人黄色一级片,日本香港三级亚洲三级,黄色成人小视频,国产青草视频,国产一区二区久久精品,91在线免费公开视频,成年轻人网站色直接看

終止處理器中非必要處理的條件指令的方法與系統(tǒng)的制作方法

文檔序號:6380609閱讀:155來源:國知局
專利名稱:終止處理器中非必要處理的條件指令的方法與系統(tǒng)的制作方法
技術領域
本發(fā)明是有關于一般的計算機,特別是有關于一種用來將某些必要之執(zhí)行條件不成立的指令提早終止的方法與系統(tǒng)。
背景技術
如同我們所知,處理器經(jīng)由一個順序的處理階段執(zhí)行一個單獨的指令,這個順序基本上可能包含著將指令從內(nèi)存中取出、將指令譯碼、從寄存器組中存取必要的操作數(shù)、處理操作數(shù)以得到結果或是一存儲器地址、必要時存取存儲器中的數(shù)據(jù)操作數(shù)以及將結果寫回寄存器組內(nèi)?,F(xiàn)代的計算機處理器靠著執(zhí)行許多的指令來實行計算作業(yè),不同的作業(yè)可能會需要不同的元件以完成工作,為了增加處理器的效率,在目前的指令尚未完全處理完畢前就開始處理下一個指令是更為有效的方式,如此,在任何一時間里都有不同的指令在不同的階段里被順序地處理著,這就被稱之為“管線”(pipelining),大部分計算機處理器的運作都是利用管線的方法來得到最大的計算能力。
更進一步地說,有一些指令是必須依靠某些先決條件成立才能執(zhí)行的條件指令(conditional instruction),這些指令當中有一些是需要多時鐘周期才得以完整執(zhí)行的,就像其它的指令一樣,條件指令也是和別的指令一同被管線式的處理著,當一個或多個從多時鐘條件指令分出的部分往最后的執(zhí)行階段傳遞時,它們可以位于不同的中間處理階段中。
在整個指令通過不同的處理階段時,由于其先決條件可能不符合,所以許多條件指令無法執(zhí)行的情況,事實上并不罕見。處理器是否察覺到一個不符合的條件可由條件狀態(tài)碼或處理器中關于某特定指令的信號反映出來。雖然已經(jīng)確定這個指令于執(zhí)行階段時的執(zhí)行條件需求不會符合,而一個需要多時鐘來執(zhí)行的指令,其可能會利用或是浪費其它階段的資源。無論如何,在先前技術中,盡管已經(jīng)確定條件指令不會為處理器所執(zhí)行,但處理器不會停止剩余指令的執(zhí)行,如此,處理這些非執(zhí)行條件指令造成了系統(tǒng)資源大量的浪費。
在此所需要的是一種改進的方法及系統(tǒng)用以盡可能的提早終止那些條件不符合的條件指令來防止它們被執(zhí)行,然后得以節(jié)省系統(tǒng)資源。

發(fā)明內(nèi)容
本發(fā)明公開了一種用以終止處理器中一多時鐘條件指令之非必要處理的方法與系統(tǒng),當條件指令經(jīng)由管線式程序來做處理時,此管線至少包含一譯碼階段、一執(zhí)行階段以及在這兩者之間的一個或多個中間處理階段。本方法會視一個或多個條件是否成立,來確定條件指令是否為可執(zhí)行的。當條件指令到達執(zhí)行階段時,則可確定是否要執(zhí)行或是略過這個條件指令,如執(zhí)行階段里所做出的確定是要略過指令的執(zhí)行,則目前于譯碼階段被處理的指令會被終止然后下一個指令會被送入譯碼階段。
本發(fā)明提供了一個將多時鐘條件的指令處理最優(yōu)化的方法與系統(tǒng),其降低了因為管線式指令所引發(fā)的非必要性數(shù)據(jù)前向延遲的可能性,通過在處理程序之中提早終止條件指令,可以提升處理器的生產(chǎn)率及節(jié)省處理資源。


圖1為指令處理程序的流程圖。
圖2為本發(fā)明具體實施例的條件指令處理流程圖。
圖3為本發(fā)明具體實施例的預測提早終止條件指令的流程圖。
具體實施例方式
本發(fā)明公開了一種改進的方法與系統(tǒng),用以盡可能的提早終止某些不會被執(zhí)行的條件指令來節(jié)省系統(tǒng)資源與系統(tǒng)能源。
計算機處理器能夠依據(jù)一些已成立的條件來有條件地執(zhí)行一些指令。圖1表示了一個處理器通過三個主要處理階段來執(zhí)行一個指令的流程圖100??梢灾赖氖怯行┫惹暗碾A段例如用來取出指令的階段并沒有在圖1中說明。當取出指令之后,一些額外的處理一般會被分為三個主要階段,如譯碼階段102、寄存器處理階段104及執(zhí)行階段106。除此之外,還有結果寫回數(shù)據(jù)存儲器存取階段(未顯示),該階段在執(zhí)行階段106之后。再者,上述的三個主要階段的每一階段都可由復數(shù)個較小的管線階段組成,以致會占用一個或多個時鐘周期。指令108被饋入處理器并經(jīng)過至少這三個主要處理階段后,產(chǎn)生一個輸出結果110。在譯碼階段期間,一個處理器的指令譯碼片段(decode section)假設此指令將會被執(zhí)行,因為在指令到達執(zhí)行階段之前,用來確定執(zhí)行或略過(skip)的狀態(tài)需求都是未知的,然后,產(chǎn)生一個需要的微指令控制信號(Microinstruction Control Signal)或稱微控制碼111(micro-controls)。當微控制碼產(chǎn)生后,可藉此來進一步確定執(zhí)行某特定指令時所需的時鐘周期數(shù)。在寄存器存取階段104視指令需要產(chǎn)生數(shù)據(jù)112之后,從寄存器存取階段104輸出的微控制碼114和數(shù)據(jù)112均一起輸入執(zhí)行階段106去進行處理。執(zhí)行階段106依據(jù)使用接收到的數(shù)據(jù)112及微控制碼114經(jīng)過的計算和比較后,可確定此條件指令是否要適當?shù)乇粓?zhí)行或略過。在先前技術中,因為所有的指令都會完全地經(jīng)過這三個主要階段,而不論條件指令最后于執(zhí)行階段時是否將會被執(zhí)行,那些實際上在最后被放棄或略過的條件指令,會大量地消耗了處理器時間及能量資源,這種系統(tǒng)資源的浪費在需要多時鐘周期的操作情況下特別地嚴重。
圖2表示了一個依據(jù)本發(fā)明的實施例所公開的處理流程圖,其中當某些執(zhí)行條件明顯地不符合時,條件指令會提早被終止。類似圖1所示,是假設輸入指令202進入各個不同的處理階段中,如譯碼階段204、寄存器存取階段206以及執(zhí)行階段208。指令202是一個需要符合一個或多個條件才能被執(zhí)行的條件指令,其在經(jīng)過處理階段之后,會適當?shù)禺a(chǎn)生一個結果210。需要注意的是,如果這個條件指令是一個多時鐘指令,部分的指令會被處理器所處理,同時會依照“管線式”順序地行進經(jīng)過不同的處理階段。
對于本發(fā)明的目的,是在條件指令可能會和至少一個能確定其執(zhí)行條件的先前指令相關聯(lián)的原則上,條件指令本身可能就有多個部分會占用多個時鐘周期在管線之中傳遞。當先前的指令完成其執(zhí)行之后,才會影響條件指令是否能在管線之中徹底執(zhí)行。依據(jù)先前的指令所處理的執(zhí)行條件來看,先前的指令有可能改變處理器的條件狀態(tài)。一般來說,處理器中與條件指令202有關的條件狀態(tài),會反映出處理器是否察覺條件指令202在執(zhí)行的過程中其條件全程符合。當先前的指令改變了處理器中與條件指令202有關的條件狀態(tài)時,一些和這個指令有關聯(lián)的部分,可能會于譯碼階段被終止。
舉例來說,現(xiàn)在假設處理器具有12個寄存器和一個加載指令(loadinstruction),其在符合某些條件后,會更新全部的寄存器(這是一個多時鐘條件指令),當如此的一個指令進入了譯碼階段時,一個處理器中的譯碼器會發(fā)出12條微指令,用以轉換給每一個寄存器。這12條微指令不論條件的符合與否,全都會以管線式的順序通過寄存器存取階段。從寄存器存取階段行進到執(zhí)行階段的處理過程中,有一條數(shù)據(jù)線會輸出數(shù)據(jù)211。另外,如圖2所示,在譯碼階段產(chǎn)生的微控制212會行進經(jīng)過全部的階段。
如果有一個執(zhí)行條件沒有符合,則整個指令將會被略過,盡管在執(zhí)行階段處理器會浪費資源在“推動(pushing)”部分指令(如12個微指令)以通過管線。如果譯碼階段和中間階段可以分辨出執(zhí)行的指令將會被略過,以及如果它們可以分辨出這種指令的范圍,則這個條件指令就可以在將全部的時鐘周期分配去執(zhí)行該條件指令之前被終止。如此,系統(tǒng)資源得以節(jié)省以及能源消耗得以降低。
為了盡可能以最有效率的方式來執(zhí)行條件指令,一項反饋機制已被實現(xiàn)。首先,一個指示或是一個控制信號214是最先從執(zhí)行階段產(chǎn)生的,其用來標明處理器是否確定條件指令202的一個或多個條件是不符合的。這個信號可作為一執(zhí)行條件控制信號214,而這個執(zhí)行條件控制信號214會反饋到譯碼階段204,所以管線中的譯碼階段204會被通知關于條件指令是否會于執(zhí)行階段被略過。反饋信號的第二種類型是一指令識別信號或卷標216,此反饋信號可從譯碼階段204、執(zhí)行階段208以及中間處理階段如寄存器處理階段206中產(chǎn)生。指令識別卷標216識別了正在經(jīng)過管線的部分條件指令202。在執(zhí)行階段中指令識別卷標216確保了已確定要被略過的條件指令和會提早在譯碼階段被終止的條件指令是同一個。必須要注意的是,如果需要的話,可以產(chǎn)生一個以上的指令識別卷標216,并且,盡管寄存器處理階段可以用來代表譯碼階段與執(zhí)行階段之間所有必須的中間處理階段,在譯碼階段與執(zhí)行階段之間也可以包括除了寄存器存取階段以外的其它中間處理階段。
利用具有執(zhí)行條件控制信號和指令識別卷標的反饋機制,一旦譯碼階段被通知有個特定的條件指令因為某條件不符合所以確定要被略過,處理器便停止譯碼這個條件指令。同樣地,在中間處理階段中,部分的條件指令也會被立即地終止。如此,如果指令已被執(zhí)行,則譯碼階段可以在不用產(chǎn)生所需求的全部微指令的情形下,終止條件指令202,并且目前產(chǎn)生的微指令碼不必完全地行進至執(zhí)行階段。
下列的第一表是表示了符合先前技術的指令行進過程,其假設了指令[N-1]是一個在條件指令[N]之前改變處理器中狀態(tài)寄存器的內(nèi)容值的比較指令,其中指令[N]是一個需要8個時鐘周期來完成的指令,N(a)到N(h)表示了指令在管線中的各個部分。接下來,指令[N+1]到指令[N+4]為接續(xù)指令[N]的后續(xù)指令,管線包括了如取出、譯碼、寄存器讀取、執(zhí)行以及寄存器寫入等處理階段。如第一表的說明,即使指令[N-1]的執(zhí)行確定了指令[N]將不會被執(zhí)行,指令[N+1]將不會被執(zhí)行直到N(h)通過了管線,在這種情況下占用了11個時鐘周期來將條件指令[N]處理完成。

第一表第二表是表示了依據(jù)本發(fā)明的指令傳遞及終止條件指令的方法,如之前和下列的第二表所述,在管線式的處理器當中,多時鐘指令的處理會被分割通過許多的處理階段。指令[N]將會在指令[N-1]到達執(zhí)行階段以及將標示著指令[N]的執(zhí)行條件的狀態(tài)寄存器改變成為不符合之后被終止。在下一個時鐘周期中,指令[N+1]不須等到N(h)傳遞通過管線即可立即移入譯碼階段。如下表所示,現(xiàn)在時鐘周期的總數(shù)量已由先前如第一表所示的11個時鐘周期下降到6個。

第二表當于譯碼階段終止條件指令時,條件指令可能會被轉換為一個無操作意義(meaningless operation)的微指令碼,例如單時鐘無操作指令。這個轉換成為無操作指令(no-operation instruction)的操作防止了條件指令202更進一步地傳遞通過其它的處理階段以及排除了利用額外處理資源的需要。此外,處理器可能需要識別條件指令的結尾,這樣才可明白指令處于處理管線的何處。為達到這個要求,可以在任何的處理階段產(chǎn)生一個指令結尾(end-of-instruction)消息或信號。
圖3是表示一個依據(jù)本發(fā)明如何能提早終止條件指令的執(zhí)行流程圖300。首先,在步驟302里,依據(jù)一個或多個于執(zhí)行前需要符合的條件,來確定處理器是否在執(zhí)行階段執(zhí)行此條件指令。如果處理器已確定略過此條件指令,則步驟304會探測條件指令是否仍然在譯碼階段中接受處理。如果條件指令仍然在譯碼階段中接受處理,步驟306可以確保即將在譯碼階段中被終止的指令和處理器決定要在執(zhí)行階段就略過的指令是相同的。這個過程可以利用實行前述的指令識別卷標來達成。接下來,在步驟308里,譯碼階段中的條件指令會隨即被終止。在步驟310中,于其它處理階段里的條件指令也會被終止。在此要注意的是,如果發(fā)現(xiàn)一個條件指令在執(zhí)行階段將會被略過,但是此條件指令已不再停留在譯碼階段時,則這指令在處理管線里其它的處理階段之中依然會被盡可能地終止?;氐搅瞬襟E302,如果發(fā)現(xiàn)了全部的條件都符合時,則步驟312會執(zhí)行該指令,之后下一個指令會被接受,然后在目前指令完成后(步驟314)被移入到譯碼階段中。
本項發(fā)明提供了一種處理條件指令最優(yōu)化的方法與系統(tǒng),特別是用于多時鐘的條件指令,它降低了因為管線式指令處理所引發(fā)的非必要性的數(shù)據(jù)前向延遲的可能性,藉由在處理程序之中提早終止條件指令,而自然能夠提升處理器的生產(chǎn)率,因為能夠避免額外的作業(yè),所以處理器資源和能量的消耗才能夠大量的降低,并且提升處理器的生產(chǎn)率。
本發(fā)明在上述的公開中,提出了多種不同的實施例以實現(xiàn)本發(fā)明中不同的特點,并且也說明了其組成具體例子和處理描述以幫助本項發(fā)明的闡述。然而,以上所述僅為本發(fā)明之具體實施例而已,并非用以限定本發(fā)明之申請專利范圍;凡其它未脫離本發(fā)明所揭示之精神下所完成之等效改變或修飾,均應包含在所述的申請專利范圍內(nèi)。
權利要求
1.一種終止處理器中非必要處理的條件指令的方法,該條件指令至少經(jīng)由一譯碼階段、一執(zhí)行階段以及在這兩者之間的一個或多個中間處理階段所構成的處理管線來處理,本方法包括確定該條件指令于該執(zhí)行階段是否會被執(zhí)行,是依據(jù)一個或多個條件是否符合來確定的;確定該條件指令是否于該譯碼階段中進行處理;以及終止該譯碼階段中的該條件指令,是如果于該執(zhí)行階段中該條件指令被確定將不會被執(zhí)行,以及該條件指令仍然于該譯碼階段中被處理時,則終止該譯碼階段中的該條件指令。
2.如權利要求1所述的方法,其中確定該條件指令是否會被執(zhí)行之步驟更包含自該執(zhí)行階段產(chǎn)生一控制信號反饋至該譯碼階段以標明該條件指令是否將會被執(zhí)行。
3.如權利要求1所述的方法,更包括于該中間處理階段中終止該條件指令。
4.如權利要求1所述的方法,其中該終止操作更包括能確保終止該處理管線中該條件指令的一部分,即自每一個處理階段產(chǎn)生一個指令識別信號,以確認于其中處理該條件指令的一部分。
5.如權利要求1所述的方法,其中該終止操作更包括自該譯碼階段或任何該中間處理階段產(chǎn)生一指令結尾信號。
6.如權利要求1所述的方法,其中該終止操作更包括在該譯碼階段將該條件指令轉換為一無意義的單時鐘操作。
7.如權利要求1所述的方法更包括當該條件指令被終止時,將該條件指令之后的指令移入該譯碼階段。
8.一種終止處理器中非必要處理的條件指令的處理器系統(tǒng),該條件指令至少經(jīng)由一譯碼階段、一執(zhí)行階段以及在這兩者之間的一個或多個中間處理階段所構成的處理管線來處理,此處理器系統(tǒng)包括第一確定裝置,其是依據(jù)一個或多個條件是否符合來確定該條件指令于該執(zhí)行階段是否會被執(zhí)行;第二確定裝置,其是用以確定該條件指令是否于該譯碼階段中進行處理;以及一終止裝置,其是當于該執(zhí)行階段中該條件指令被確定將不會被執(zhí)行,以及該條件指令仍然于該譯碼階段中被處理時,終止該譯碼階段中的該條件指令。
9.如權利要求8所述的處理器系統(tǒng),其中該第一確定裝置更包含一控制信號產(chǎn)生裝置,其產(chǎn)生一控制信號自該執(zhí)行階段反饋至該譯碼階段用以標明該條件指令是否會被執(zhí)行。
10.如權利要求8所述的處理器系統(tǒng),更包括一條件指令終止裝置于該中間處理階段中。
11.如權利要求8所述的處理器系統(tǒng),其中該終止裝置更包括自每一個處理階段產(chǎn)生一指令識別信號的裝置,用以確認于其中處理該條件指令的一部分。
12.如權利要求8所述的處理器系統(tǒng),其中該終止裝置更包括自該處理管線產(chǎn)生一指令結尾信號的裝置。
13.如權利要求8所述的處理器,其中該終止裝置包括了一忽略裝置,其忽略一個或多個移入到該執(zhí)行階段的部分條件指令。
全文摘要
本發(fā)明提供了一種用以終止處理器中一多時鐘條件指令的非必要處理的方法與系統(tǒng),當條件指令經(jīng)由管線式程序來做處理時,管線至少包含一譯碼階段、一執(zhí)行階段以及在這兩者之間的一個或多個中間處理階段。本方法會視一個或多個條件是否成立,來確定條件指令是否為可執(zhí)行的。如果條件指令于譯碼階段和執(zhí)行階段中皆會被處理,且條件指令于執(zhí)行階段中不會被執(zhí)行時,則條件指令于譯碼階段時就會被終止,也有可能于中間處理階段被終止。提早終止如此的條件指令有助于處理器節(jié)省處理資源以及降低能源消耗。
文檔編號G06F9/48GK1523496SQ200410002600
公開日2004年8月25日 申請日期2004年2月2日 優(yōu)先權日2003年6月11日
發(fā)明者李察·鄧肯, 查理斯·雪洛, 雪洛, 李察 鄧肯 申請人:威盛電子股份有限公司
網(wǎng)友詢問留言 已有0條留言
  • 還沒有人留言評論。精彩留言會獲得點贊!
1