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

用于分支預(yù)測的方法和系統(tǒng)的制作方法

文檔序號:6488421閱讀:182來源:國知局
專利名稱:用于分支預(yù)測的方法和系統(tǒng)的制作方法
技術(shù)領(lǐng)域
本發(fā)明涉及一種用于分支預(yù)測的方法和系統(tǒng),所述方法和系統(tǒng)特別適合用于執(zhí)行可編程集成電路的連續(xù)程序的處理器中。
背景技術(shù)
分支是被中斷的連續(xù)程序中的點(diǎn)。如果分支是無條件的,那么其結(jié)果始終是相同的,即,所述分支始終被采用。然而,當(dāng)所述分支有條件時,其結(jié)果只有當(dāng)所述條件是已知的時才能夠獲知。換言之,基于測試某些數(shù)據(jù)段,條件分支指令有條件地引起控制轉(zhuǎn)移。除目標(biāo)地址的描述之外,這種指令還包含待測試的條件。這種條件通常是數(shù)字的代數(shù)屬性的其中一個較小集合。如果條件符合,那么采用分支。否則,不采用它。
流水線處理器的性能由于執(zhí)行條件分支所要求的時間而嚴(yán)重受到限制。當(dāng)在待測試的數(shù)據(jù)的代數(shù)條件已經(jīng)確定以前取出所述分支時,會出現(xiàn)由流水線計算機(jī)中的條件分支引起的這種性能降低。在所述分支指令自身指定待測試數(shù)據(jù)的位置的那種計算機(jī)中,這種現(xiàn)象是最不利的。對代數(shù)條件的評估只是在已經(jīng)經(jīng)過流水線的多個階段以后才被執(zhí)行。由于直到取出所述分支指令才可以開始,故而直到取出所述分支之后的多個時鐘周期才可以獲知待測試的條件。由于直到已經(jīng)測試過數(shù)據(jù)之后才可以肯定地確定出待取出的下一指令的位置,所以在多個時鐘周期內(nèi)無法取出指令。
為了減少這種性能的降低,可以使用分支預(yù)測技術(shù)。分支預(yù)測使用同一分支或者其它分支的歷史來預(yù)測當(dāng)前分支的結(jié)果。所述分支因此可以基于這種預(yù)測來執(zhí)行,以此試圖避免浪費(fèi)性能。當(dāng)然,每當(dāng)預(yù)測的結(jié)果不正確時,所述系統(tǒng)必須回到分支點(diǎn),在不正確地預(yù)測的分支點(diǎn)之后取出的所有指令的執(zhí)行效果必須被逆轉(zhuǎn),并且所述系統(tǒng)然后必須經(jīng)由正確的分支結(jié)果繼續(xù)執(zhí)行。由此,由于不良分支之后取出的所有指令必須被丟棄,所以它們象征所有努力被浪費(fèi),并且因此很顯然的是,機(jī)器的性能與分支預(yù)測的準(zhǔn)確性直接相關(guān)。
對于用于分支預(yù)測而言存在各種常規(guī)的思想。分支預(yù)測方案可以是靜態(tài)的或者動態(tài)的。在靜態(tài)方案中,所述分支指令自身包含預(yù)測;這通?;谝呀?jīng)執(zhí)行了典型數(shù)據(jù)集上的程序的編譯器、由生成程序的編譯器來提供。只有當(dāng)計算機(jī)的指令集已經(jīng)著眼于這一方面而進(jìn)行設(shè)計時,才能夠進(jìn)行靜態(tài)預(yù)測。大部分商業(yè)上成功的指令集不提供允許靜態(tài)分支預(yù)測的手段。
動態(tài)分支預(yù)測使用與程序執(zhí)行期間由硬件收集的分支有關(guān)的信息。所述程序只得“獲知”給定分支指令的過去執(zhí)行模式,因此其動態(tài)預(yù)測必須基于這種信息。由于條件分支是十分頻繁的,所以可以為每個趨勢存儲的歷史量不是非常大,從而避免了對非常大的存儲能力的需要。通常,分支預(yù)測信息只保存在程序中較小、但是變化的分支子集上。
另一思想被稱為“雙模態(tài)”分支預(yù)測,并且涉及使用兩位飽和計數(shù)器作為預(yù)測指示符以便表明是否應(yīng)該采用分支。兩位飽和計數(shù)器利用這樣的假定,即應(yīng)該成組地采用分支,如此使得應(yīng)該采用分支還是分支組可以就最后采用分支還是分支組來進(jìn)行預(yù)測。
例如在第WO 98/36350號國際性專利申請、第5,896,529號美國專利、第6,438,656 B1號美國專利以及第5,948,100號美國專利中描述了各種已知的分支預(yù)測方法。
由此,概括地說,依照現(xiàn)有技術(shù),分支預(yù)測勢必主要基于如下兩個思想的組合——基于其歷史預(yù)測分支結(jié)果。在該情況下,通常使用表來存儲最后的結(jié)果,也就是說,所述分支執(zhí)行2或者4次?;谧铑l繁的結(jié)果,做出預(yù)測。然而應(yīng)該很明顯的是,預(yù)測可靠程度將改變。例如,如果所述分支結(jié)果始終是相同的,那么可靠程度將是100%。然而,如果分支結(jié)果每次改變,那么可靠程度將是0%。
——基于先前n個分支的結(jié)果來預(yù)測分支結(jié)果。動作和實現(xiàn)方式與前述的概念相似,只是預(yù)測所基于的信息明顯不同。再次,預(yù)測的可靠程度將極大地改變。
當(dāng)分支預(yù)測的可靠程度不是很高時,預(yù)測很可能失敗。
我們現(xiàn)在已經(jīng)設(shè)計出了改進(jìn)的結(jié)構(gòu)。

發(fā)明內(nèi)容
依照本發(fā)明,提供了用于預(yù)測計算機(jī)系統(tǒng)內(nèi)條件分支的結(jié)果的設(shè)備,所述設(shè)備包括用于識別條件分支出現(xiàn)的裝置,用于獲得自從先前分支以來與系統(tǒng)活動(activity)有關(guān)的數(shù)據(jù)的裝置,用于把所述數(shù)據(jù)同與先前系統(tǒng)活動有關(guān)的數(shù)據(jù)進(jìn)行比較的裝置以及用于基于這種比較來預(yù)測分支結(jié)果的裝置。
此外,依照本發(fā)明,提供了用于預(yù)測計算機(jī)系統(tǒng)內(nèi)條件分支的結(jié)果的方法,所述方法包括如下步驟識別條件分支的出現(xiàn),獲得自從先前分支以來與系統(tǒng)活動有關(guān)的數(shù)據(jù),把所述數(shù)據(jù)同與先前系統(tǒng)活動有關(guān)的數(shù)據(jù)進(jìn)行比較并且基于這種比較來預(yù)測分支的結(jié)果。
在優(yōu)選的實施例中,與系統(tǒng)活動有關(guān)的數(shù)據(jù)包括平均系統(tǒng)活動。優(yōu)選的是,提供活動歷史表,其中存儲有與先前系統(tǒng)活動有關(guān)的數(shù)據(jù)以及與這種活動對應(yīng)的分支結(jié)果。由此,在優(yōu)選的實施例中,當(dāng)遇到條件分支時,在當(dāng)前和先前分支之間檢索涉及所述系統(tǒng)活動的數(shù)據(jù)(優(yōu)選的是,通過活動監(jiān)控器來檢索),把此數(shù)據(jù)與活動歷史表中包含的數(shù)據(jù)進(jìn)行比較,并且選擇以下的分支結(jié)果,與其相關(guān)的活動數(shù)據(jù)最接近于當(dāng)前所檢索的活動數(shù)據(jù)。然后,優(yōu)選的是,據(jù)此利用最新的活動數(shù)據(jù)和所選的分支結(jié)果來更新活動歷史表。
在優(yōu)選的實施例中,所述設(shè)備還包括用于使用所述和/或先前分支的結(jié)果歷史來預(yù)測條件分支的結(jié)果的裝置。有益的是,如果使用分支歷史的分支結(jié)果預(yù)測的準(zhǔn)確性的可靠程度相對較低,也許低于預(yù)定閾值,那么與系統(tǒng)活動有關(guān)的數(shù)據(jù)只用于分支結(jié)果預(yù)測。
依照現(xiàn)有技術(shù),分支預(yù)測考慮了分支歷史,但沒有慮及產(chǎn)生此歷史的系統(tǒng)活動。本發(fā)明提出了使用另一個參數(shù)進(jìn)行分支預(yù)測,即上一次預(yù)測的分支和當(dāng)前分支之間的系統(tǒng)活動、與執(zhí)行了多少計算量相關(guān)的活動。
活動監(jiān)控主要是一種對同一系統(tǒng)(或者部分系統(tǒng))的先前系統(tǒng)狀態(tài)和當(dāng)前系統(tǒng)狀態(tài)之間差異的測量。差異越大,系統(tǒng)活動就越大。存在多個方式來實現(xiàn)活動監(jiān)控器,并且這些對于所屬技術(shù)領(lǐng)域的專業(yè)人員而言是顯而易見的。較為簡單的一種方式涉及監(jiān)控電源電流,其也給予系統(tǒng)活動。利用文獻(xiàn)中眾所周知的電路來測量平均電流并且由此監(jiān)控平均活動通常是可能的。稍候比較詳細(xì)地描述示例性活動監(jiān)控器。
通過所附的示例性附圖和隨后的描述能夠闡明本發(fā)明的這些以及其它特征。


現(xiàn)在根據(jù)附圖、僅僅通過舉例來描述本發(fā)明的實施例,其中圖1是舉例說明依照本發(fā)明示例性實施例的分支預(yù)測方法的示意性流程圖;圖2是舉例說明用于本發(fā)明示例性實施例的活動監(jiān)控器操作的基本原理的示意性電路圖;并且圖3舉例說明了示例性活動監(jiān)控器的一般實施例。
具體實施例方式
參照附圖的圖1,舉例說明了用于圖示依照本發(fā)明示例性實施例的分支預(yù)測方法的流程圖。
在步驟100,取出指令,并且就它是否是分支做出確定(在步驟102)。如果它不是分支,那么執(zhí)行指令(步驟104)。如果是分支,那么就它是否是有條件的做出確定(步驟105)。如果沒有,執(zhí)行指令(步驟104),否則在步驟106檢索最后基本塊(即,上一次預(yù)測的分支和當(dāng)前分支之間的代碼塊)的與系統(tǒng)活動有關(guān)的數(shù)據(jù)。提供了活動歷史表,其中把與平均系統(tǒng)活動有關(guān)的數(shù)據(jù)與各個結(jié)果相關(guān)聯(lián)地存儲。比較檢索出的活動數(shù)據(jù)(在步驟110),并且通過選擇存儲在活動歷史表中的結(jié)果來預(yù)測分支結(jié)果(步驟108),其具有與已檢索的活動數(shù)據(jù)最類似的活動。然后據(jù)此執(zhí)行所述分支(步驟104),并且更新所述表以便反映最新的系統(tǒng)活動數(shù)據(jù)和所預(yù)測的分支結(jié)果。然后,取出下一指令并且再次執(zhí)行所述過程。
由此,概括地說,使用系統(tǒng)活動進(jìn)行分支預(yù)測涉及存儲每個分支結(jié)果的平均活動;把最后基本塊的活動與這些值進(jìn)行比較;并且基于哪些已存儲的結(jié)果具有最類似的活動來預(yù)測分支結(jié)果。
在優(yōu)選的實施例中,所述比較步驟涉及只比較已檢索的活動值中某些最高有效位。
參照附圖的圖2,示出了活動監(jiān)控器的電路圖,其可以被用來獲得執(zhí)行如上所述的方法所需的各種活動值。然而,所屬技術(shù)領(lǐng)域的專業(yè)人員將理解的是,存在很多本領(lǐng)域眾所周知的不同類型的程序,這些程序的任何一個均可與本發(fā)明結(jié)合使用。
所舉例說明的活動監(jiān)控器10包括一系列D型鎖存器12a-12e(有時稱為觸發(fā)器或者時序邏輯)以及兩個組合邏輯塊14、16。
應(yīng)該注意的是,出于描述活動監(jiān)控器的此示例性實施例的目的,已經(jīng)描述了并且舉例說明了D-型觸發(fā)器。然而,正如本領(lǐng)域技術(shù)人員顯而易見的那樣,此類電路的目的還可以通過利用其它的邏輯、順序的或者相反的(諸如J-K或者S-R型觸發(fā)器)來實現(xiàn)。此外,組合邏輯塊14、16意在非窮舉地舉例說明,例如可以是處理邏輯塊和數(shù)據(jù)通路邏輯塊。
在使用過程中,觸發(fā)器12a接收輸入信號I1,并且生成適當(dāng)?shù)妮敵鲂盘?1,其充當(dāng)?shù)谝贿壿媺K14的第一輸入信號。觸發(fā)器12b接收輸入信號I2,其是來自第一邏輯塊14的第一輸出信號,并且生成適當(dāng)?shù)妮敵鲂盘?2,其充當(dāng)?shù)诙壿媺K16的第一輸入信號。觸發(fā)器12c接收輸入信號I3,其是來自第二邏輯塊16的第一輸出信號,并且生成適當(dāng)?shù)妮敵鲂盘?3。觸發(fā)器12d接收輸入信號I4,其是來自第一邏輯塊14的第二輸出信號,并且生成適當(dāng)?shù)妮敵鲂盘?4,其充當(dāng)?shù)谝贿壿媺K14的第二輸入信號。觸發(fā)器12e接收輸入信號I5,其是來自第二邏輯塊16的第二輸出信號,并且生成適當(dāng)?shù)妮敵鲂盘?5,其充當(dāng)?shù)诙壿媺K16的第二輸入信號。每個觸發(fā)器12a-12e還接收時鐘信號CLK,其用于可操作地控制輸入和輸出信號。
如果任一觸發(fā)器12a-12e的數(shù)據(jù)內(nèi)容沒有改變,那么沒有邏輯狀態(tài)改變(即,沒有系統(tǒng)活動)。然而,如果在一個或多個觸發(fā)器12a-12e并且一個或者兩個邏輯塊14、16或者其各個部分內(nèi)由于適當(dāng)?shù)募钇鞒霈F(xiàn)狀態(tài)改變,那么此狀態(tài)改變通過電路10傳送。因此,對于給定時鐘周期來說,系統(tǒng)活動與包括電路10的元件內(nèi)進(jìn)行的狀態(tài)改變次數(shù)成比例。因此,獲知給定時鐘周期內(nèi)改變狀態(tài)的元件數(shù)目可以在給定時鐘周期內(nèi)提供與系統(tǒng)活動的直接相關(guān)。應(yīng)該注意的是,現(xiàn)代化的數(shù)字集成電路工藝和工具允許響應(yīng)于輸入端激勵器、使設(shè)計者利用許多電路來預(yù)先獲知正在發(fā)生什么樣的狀態(tài)改變,并且在哪發(fā)生改變。這種提前的知識對于本發(fā)明的目的明顯有益。
參照附圖的圖3,活動監(jiān)控器20是用于參照附2描述的電路的監(jiān)控活動的基本構(gòu)成塊。在此特殊的示例中,所述觸發(fā)器或邏輯狀態(tài)12具有相關(guān)聯(lián)的兩個輸入端、一個輸出端的活動監(jiān)控器20?;顒颖O(jiān)控器20的第一輸入端與觸發(fā)器12的輸入端D相連,并且活動監(jiān)控器20的第二輸入端與觸發(fā)器12的輸出端Q相連。所述活動監(jiān)控器20生成輸出信號CS,其通過觸發(fā)器12的各個D和Q端子上的輸入和輸出信號I、O的狀態(tài)來確定。
由此,本發(fā)明的實現(xiàn)方式可以與外加用于監(jiān)控系統(tǒng)活動的結(jié)構(gòu)的常規(guī)分支預(yù)測差不多相同。本發(fā)明可以單獨(dú)使用,但是優(yōu)選的是,可結(jié)合常規(guī)的分支預(yù)測方案來使用。優(yōu)選的是,本發(fā)明提供的方案往往只有當(dāng)其它方法的可靠程度非常低時才使用。在分支預(yù)測中使用系統(tǒng)活動監(jiān)控可以通過考慮系統(tǒng)/核心活動來改善預(yù)測準(zhǔn)確性。
應(yīng)該注意的是,上述實施例是舉例說明而非限制本發(fā)明,并且本領(lǐng)域技術(shù)人員在不脫離所附權(quán)利要求的范圍的情況下,將能夠設(shè)計出許多替代性的實施例,本發(fā)明的范圍由所附權(quán)利要求書限定。在權(quán)利要求書中,不應(yīng)該把置于括號內(nèi)的任何參考標(biāo)記認(rèn)為是限制權(quán)利要求。詞語“包括”及其詞形變化等等不排除存在沒有在任何權(quán)利要求或者說明書中列出的元件或步驟。單個提及的元件不排除涉及多個這種元件,反之亦然。本發(fā)明可以借助于包括多個獨(dú)立元件的硬件來實現(xiàn),和借助于適當(dāng)?shù)目删幊逃嬎銠C(jī)來實現(xiàn)。在列舉了多個裝置的設(shè)備權(quán)利要求中,這些裝置的一些可以通過同一硬件項目來實現(xiàn)。事實是,在相互不同的從屬權(quán)利要求中講述的某些措施不表明這些措施的組合無法使用。
權(quán)利要求
1.用于預(yù)測計算機(jī)系統(tǒng)內(nèi)條件分支的結(jié)果的設(shè)備,所述設(shè)備包括用于識別條件分支出現(xiàn)的裝置,用于獲得自從先前分支以來與系統(tǒng)活動有關(guān)的數(shù)據(jù)的裝置(20),用于把所述數(shù)據(jù)同與先前系統(tǒng)活動有關(guān)的數(shù)據(jù)進(jìn)行比較的裝置,以及用于基于這種比較來預(yù)測分支結(jié)果的裝置。
2.如權(quán)利要求1所述的設(shè)備,其中與系統(tǒng)活動有關(guān)的數(shù)據(jù)包括平均系統(tǒng)活動。
3.如權(quán)利要求1或者權(quán)利要求2所述的設(shè)備,其中提供了活動歷史表,其中存儲了與先前系統(tǒng)活動有關(guān)的數(shù)據(jù)以及與這種活動相對應(yīng)的分支結(jié)果。
4.如權(quán)利要求3所述的設(shè)備,包括當(dāng)遇到條件分支時、在當(dāng)前和先前分支之間檢索涉及所述系統(tǒng)活動的數(shù)據(jù)的裝置,以及用于把此數(shù)據(jù)與活動歷史表中包含的數(shù)據(jù)進(jìn)行比較的裝置,其中用于預(yù)測分支結(jié)果的所述裝置選擇以下的分支結(jié)果,與其相關(guān)的活動數(shù)據(jù)最接近于當(dāng)前所檢索的活動數(shù)據(jù)。
5.如權(quán)利要求4所述的設(shè)備,其中所述活動歷史表利用最新的活動數(shù)據(jù)和所選的分支結(jié)果來更新。
6.如先前任一項權(quán)利要求所述的設(shè)備,包括用于使用所述和/或先前分支的結(jié)果歷史來預(yù)測條件分支的結(jié)果的裝置。
7.如權(quán)利要求7所述的設(shè)備,其中如果使用分支歷史的分支結(jié)果預(yù)測準(zhǔn)確性的可靠程度相對較低,那么與系統(tǒng)活動有關(guān)的數(shù)據(jù)只用于分支結(jié)果預(yù)測。
8.一種用于預(yù)測計算機(jī)系統(tǒng)內(nèi)條件分支結(jié)果的方法,所述方法包括如下步驟識別(105)條件分支的出現(xiàn),獲得(106)自從先前分支以來與系統(tǒng)活動有關(guān)的數(shù)據(jù),把所述數(shù)據(jù)和與先前系統(tǒng)活動有關(guān)的數(shù)據(jù)進(jìn)行比較(110),并且基于這種比較來預(yù)測(108)分支結(jié)果。
全文摘要
一種用于預(yù)測計算機(jī)系統(tǒng)內(nèi)條件分支結(jié)果的系統(tǒng)和方法,所述方法包括如下步驟識別(105)條件分支的出現(xiàn),獲得(106)自從先前分支以來與系統(tǒng)活動有關(guān)的數(shù)據(jù),把所述數(shù)據(jù)和與先前系統(tǒng)活動有關(guān)的數(shù)據(jù)進(jìn)行比較(110),并且基于這種比較來預(yù)測(108)分支結(jié)果??梢允褂没顒颖O(jiān)控器(圖3-20)來提供與系統(tǒng)活動有關(guān)的數(shù)據(jù)。
文檔編號G06F9/38GK1860435SQ200480019523
公開日2006年11月8日 申請日期2004年7月5日 優(yōu)先權(quán)日2003年7月9日
發(fā)明者F·佩索拉諾 申請人:皇家飛利浦電子股份有限公司
網(wǎng)友詢問留言 已有0條留言
  • 還沒有人留言評論。精彩留言會獲得點(diǎn)贊!
1
从化市| 河北区| 隆德县| 丘北县| 石泉县| 浠水县| 屏东县| 衢州市| 托克逊县| 城市| 左权县| 定结县| 宁安市| 承德县| 崇义县| 新竹市| 芒康县| 垦利县| 太湖县| 宜兴市| 浑源县| 厦门市| 霍州市| 崇州市| 普陀区| 安顺市| 隆林| 邹平县| 河北省| 富宁县| 蓬安县| 九江市| 紫阳县| 青海省| 辰溪县| 东兰县| 阳高县| 连南| 鹤岗市| 洞口县| 察雅县|