• 
    <ul id="o6k0g"></ul>
    <ul id="o6k0g"></ul>

    分支處理方法與系統(tǒng)技術(shù)方案

    技術(shù)編號:8161415 閱讀:232 留言:0更新日期:2013-01-07 19:28
    一種控制處理器流水線操作的方法。該處理器連接一個包含可執(zhí)行的計算機(jī)指令的存儲器。該方法包括判斷處理器即將執(zhí)行的指令是否是分支指令,并提供該分支指令的分支目標(biāo)指令地址和該分支指令在程序序列中的后一指令地址。該方法還包括至少根據(jù)分支目標(biāo)指令的地址對分支指令的分支判定,并根據(jù)該分支判斷,在分支指令到達(dá)其在流水線中的執(zhí)行段前,至少選擇分支目標(biāo)指令和后一指令中的一個作為執(zhí)行單元將要執(zhí)行的指令,使得無論分支指令的轉(zhuǎn)移是否發(fā)生都不會導(dǎo)致流水線操作的暫停。

    【技術(shù)實現(xiàn)步驟摘要】
    分支處理方法與系統(tǒng)
    本專利技術(shù)涉及電子計算機(jī)和微處理器體系結(jié)構(gòu)領(lǐng)域,具體涉及分支處理方法與系統(tǒng)。
    技術(shù)介紹
    控制相關(guān)(controlhazards)也稱為分支(Branch),是流水線性能損失的一大原因。在處理分支指令時,傳統(tǒng)處理器無法提前知道應(yīng)該從哪里獲取分支指令之后執(zhí)行的下一條指令,而是需要等到分支指令完成后才能知道,使得流水線中分支指令之后出現(xiàn)空周期。圖1是顯示了傳統(tǒng)流水線結(jié)構(gòu),其中的流水線段對應(yīng)了一條分支指令。表1分支指令的流水線段(分支轉(zhuǎn)移發(fā)生時)順序iIFIDEXMEMWBi+1IFstallstallstall目標(biāo)IFIDEXMEM目標(biāo)+1IFIDEX目標(biāo)+2IFID指令地址ii+1目標(biāo)目標(biāo)+1目標(biāo)+2目標(biāo)+3目標(biāo)+4獲取指令ii+1目標(biāo)目標(biāo)+1目標(biāo)+2目標(biāo)+3時鐘周期1234567結(jié)合圖1與表1一同說明,表1中的列表示流水線中的時鐘周期,而行表示按順序的指令。指令地址是提供給指令存儲器用于在獲取指令時進(jìn)行尋址,之后指令存儲器的輸出被送到譯碼器對獲取到的指令進(jìn)行譯碼。該流水線包括指令獲取(IF)、指令譯碼(ID)、執(zhí)行(EX)、存儲器訪問(MEM)和寫回(WB)。停止(“stall”)表示流水線暫停或空周期。表1顯示了一個被標(biāo)記為‘i’的分支指令,該指令在時鐘周期‘1’被獲取到。此外,‘i+1’表示緊跟在該分支指令之后的指令,“目標(biāo)”表示該分支點的分支目標(biāo)指令,而“目標(biāo)+1”、“目標(biāo)+2”、“目標(biāo)+3”和“目標(biāo)+4”表示緊跟在該分支目標(biāo)指令之后的順序指令。如表1所示,在時鐘周期‘2’,處理器獲取到分支指令‘i’。在時鐘周期‘3’,處理器獲取到指令‘i+1’,并對分支指令‘i’進(jìn)行譯碼。假設(shè)在該分支指令譯碼段的結(jié)尾可以計算出分支目標(biāo)地址,并完成分支判定。如果分支判定為分支轉(zhuǎn)移發(fā)生,那么分支目標(biāo)地址就被保存為下一地址用于獲取下一指令。在時鐘周期‘4’,獲取分支目標(biāo)指令,并在之后周期進(jìn)行譯碼和執(zhí)行。從這里開始,流水線處理分支目標(biāo)指令后面的指令。然而,在這種情況下,已經(jīng)被獲取到的緊跟在分支指令之后的指令‘i+1’是不應(yīng)該被執(zhí)行的,因此流水線會因為指令‘i+1’而暫停。這樣,當(dāng)分支轉(zhuǎn)移成功發(fā)生時,流水線會有一個時鐘周期的暫停,這會導(dǎo)致流水線操作性能明顯降低。為了減少分支處理對流水線性能的不利影響,已經(jīng)有各種靜態(tài)或動態(tài)的分支預(yù)測方法被提出,如:延時槽、分支預(yù)測緩沖、分支目標(biāo)緩沖和跟蹤緩存(tracecache)等。然而,這些預(yù)測方法通常根據(jù)處理器之前的運行結(jié)果進(jìn)行預(yù)測,因此仍然會有預(yù)測錯誤而導(dǎo)致的性能損失。本專利技術(shù)提出的方法與系統(tǒng)可用于解決上述一個或多個問題,以及其他問題。
    技術(shù)實現(xiàn)思路
    本專利技術(shù)提出一種控制處理器流水線操作的方法。該處理器連接一個包含可執(zhí)行的計算機(jī)指令的存儲器。該方法包括判斷處理器即將執(zhí)行的指令是否是分支指令,并提供該分支指令的分支目標(biāo)指令地址和該分支指令在程序序列中的后一指令地址。該方法還包括至少根據(jù)分支目標(biāo)指令的地址對分支指令的分支判定,并根據(jù)該分支判斷,在分支指令到達(dá)其在流水線中的執(zhí)行段前,至少選擇分支目標(biāo)指令和后一指令中的一個作為執(zhí)行單元將要執(zhí)行的指令,使得無論分支指令的轉(zhuǎn)移是否發(fā)生都不會導(dǎo)致流水線操作的暫停。本專利技術(shù)還提出一種用于控制處理器流水線操作的流水線控制系統(tǒng)。該處理器連接一個包含可執(zhí)行的計算機(jī)指令的存儲器。該系統(tǒng)包括一個審查單元、一個尋址單元、一個分支邏輯單元和一個選擇器。該審查單元用于判斷處理器即將執(zhí)行的指令是否為分支指令。該尋址單元連接處理器,用于提供分支指令的分支目標(biāo)指令地址和分支指令在程序序列中的后一指令地址。此外,分支邏輯單元用于至少根據(jù)尋址單元提供的分支目標(biāo)指令地址決定關(guān)于該分支指令的分支判定。該選擇器用于根據(jù)分支邏輯單元提供的分支判斷,在分支指令到達(dá)其在流水線中的執(zhí)行段之前,至少選擇分支目標(biāo)指令和后一指令中的一個作為所述執(zhí)行單元將要執(zhí)行的指令,使得無論該分支指令的轉(zhuǎn)移是否發(fā)生都不會導(dǎo)致流水線操作的暫停。本專利技術(shù)還提出一種控制處理器流水線操作的方法。該處理器連接一個包含可執(zhí)行的計算機(jī)指令的存儲器。該方法包括判斷處理器即將執(zhí)行的指令是否是分支指令,并提供該分支指令的分支目標(biāo)指令地址和該分支指令在程序序列中的后一指令地址。該方法還包括根據(jù)分支目標(biāo)指令地址和后一指令地址分別獲取分支目標(biāo)指令和后一指令。此外,該方法還包括對獲取到的分支目標(biāo)指令和后一指令進(jìn)行譯碼,并根據(jù)處理器提供的分支判斷選擇分支目標(biāo)指令的譯碼結(jié)果和后一指令的譯碼結(jié)果送到執(zhí)行單元,使得無論分支指令的轉(zhuǎn)移是否發(fā)生都不會導(dǎo)致流水線操作的暫停。本專利技術(shù)還提出一種用于控制處理器流水線操作的流水線控制系統(tǒng)。該處理器連接一個包含可執(zhí)行的計算機(jī)指令的存儲器。該流水線控制系統(tǒng)包括一個連接處理器的尋址單元,用于提供分支指令的分支目標(biāo)指令地址和分支指令在程序序列中的后一指令地址。該流水線控制系統(tǒng)還包括一個連接在存儲器和處理器之間的讀緩沖,用于至少存儲分支指令的分支目標(biāo)指令和后一指令中的一個。此外,該讀緩沖還包括一個連接處理器的選擇器,用于在分支指令被執(zhí)行時,向處理器提供分支目標(biāo)指令或后一指令中的一個,使得無論分支指令的分支轉(zhuǎn)移是否發(fā)生都不會導(dǎo)致流水線操作的暫停。對于本領(lǐng)域?qū)I(yè)人士,還可以在本專利技術(shù)的說明、權(quán)利要求和附圖的啟發(fā)下,理解、領(lǐng)會本專利技術(shù)所包含其他方面內(nèi)容。有益效果:本專利技術(shù)所述的系統(tǒng)和方法可以為流水線處理器的分支處理提供一種基本的解決方法。該系統(tǒng)和方法在分支點被執(zhí)行前獲取分支目標(biāo)指令的地址,并使用各種分支判斷邏輯以消除因錯誤的分支預(yù)測而造成的效率損失。對于本領(lǐng)域技術(shù)人員而言,也可以推導(dǎo)出本專利技術(shù)的其他優(yōu)點和有益效果。附圖說明圖1是現(xiàn)有普通流水線的控制結(jié)構(gòu);圖2是本專利技術(shù)所述的一個流水線控制結(jié)構(gòu)的實施例;圖3是本專利技術(shù)所述的一個處理器系統(tǒng)的實施例;圖4是本專利技術(shù)所述的軌道表的實施例;圖5A是本專利技術(shù)所述的另一個流水線控制結(jié)構(gòu)的實施例;圖5B是本專利技術(shù)所述的另一個流水線控制結(jié)構(gòu)的實施例;圖6是本專利技術(shù)所述的另一個處理器系統(tǒng)的實施例;圖7是本專利技術(shù)所述的另一個處理器系統(tǒng)的實施例;圖8是本專利技術(shù)所述的操作中的不同指令值的實施例;圖9是本專利技術(shù)所述的另一個流水線控制結(jié)構(gòu)的實施例;圖10是本專利技術(shù)所述的處理器環(huán)境的一個實施例;圖11是本專利技術(shù)所述的分支預(yù)測方法的一個示意圖;和圖12是本專利技術(shù)所述的分支預(yù)測的實施例。具體實施方式雖然該專利技術(shù)可以以多種形式的修改和替換來擴(kuò)展,說明書中也列出了一些具體的實施圖例并進(jìn)行詳細(xì)闡述。應(yīng)當(dāng)理解的是,專利技術(shù)者的出發(fā)點不是將該專利技術(shù)限于所闡述的特定實施例,正相反,專利技術(shù)者的出發(fā)點在于保護(hù)所有基于由本權(quán)利聲明定義的精神或范圍內(nèi)進(jìn)行的改進(jìn)、等效轉(zhuǎn)換和修改。同樣的元器件號碼也可以被用于所有附圖以代表相同的或類似的部分。圖2顯示了一個與本公開專利技術(shù)一致的流水線控制結(jié)構(gòu)1的例子。為了便于說明,流水線操作包括取指令(IF)、指令譯碼(ID)、執(zhí)行(EX)、存儲器訪問(MEM)和寫回(WB)。也可以使用其它流水線結(jié)構(gòu)。如圖2所示,譯碼器11通過指令總線16從指令存儲器(或指令緩存)10取指令。譯碼器11將取得的指令譯碼并為后續(xù)操作準(zhǔn)備操作數(shù)。譯碼后的指令與操作數(shù)被送往執(zhí)行與程序計數(shù)器12(EX/PC)做執(zhí)行操作并計算程序系列中下條指令的地址21本文檔來自技高網(wǎng)
    ...
    分支處理方法與系統(tǒng)

    【技術(shù)保護(hù)點】
    一種控制處理器流水線操作的方法,所述處理器連接包含可執(zhí)行的計算機(jī)指令的存儲器;其特征在于所述方法包括:判斷處理器即將執(zhí)行的指令是否是分支指令;提供所述分支指令的分支目標(biāo)指令地址和所述分支指令在程序序列中的后一指令地址;決定對應(yīng)于分支指令的分支判定;和根據(jù)所述分支判定,在所述分支指令到達(dá)其在流水線中的執(zhí)行段前,選擇至少所述分支目標(biāo)指令和所述后一指令中的一個作為所述執(zhí)行單元將要執(zhí)行的指令,使得無論所述分支指令的轉(zhuǎn)移是否發(fā)生都不會導(dǎo)致流水線操作的暫停。

    【技術(shù)特征摘要】
    1.一種控制處理器流水線操作的方法,所述處理器連接包含可執(zhí)行的計算機(jī)指令的存儲器;所述方法包括:判斷處理器即將執(zhí)行的指令是否是分支指令;提供所述分支指令的分支目標(biāo)指令地址和所述分支指令在程序序列中的后一指令地址;決定對應(yīng)于分支指令的分支判定;和根據(jù)所述分支判定,在所述分支指令到達(dá)其在流水線中的執(zhí)行段前,選擇至少所述分支目標(biāo)指令和所述后一指令中的一個作為處理器中執(zhí)行單元將要執(zhí)行的指令,使得無論所述分支指令的轉(zhuǎn)移是否發(fā)生都不會導(dǎo)致流水線操作的暫停;通過審查可執(zhí)行的計算機(jī)指令,提取出至少包含分支信息的指令信息;根據(jù)提取的指令信息建立復(fù)數(shù)條軌道;和根據(jù)所述復(fù)數(shù)條軌道確定分支目標(biāo)指令的地址;建立一個軌道表;所述軌道表包含對應(yīng)復(fù)數(shù)條軌道的復(fù)數(shù)個軌道表行,每個表行對應(yīng)一條軌道并包含復(fù)數(shù)個表項,每個表項對應(yīng)一個軌跡點,每個所述軌跡點對應(yīng)至少一條指令。2.根據(jù)權(quán)利要求1所述方法,其特征在于:根據(jù)分支類型和分支狀態(tài)標(biāo)志決定分支判定。3.根據(jù)權(quán)利要求1所述方法,其特征在于所述選擇進(jìn)一步包括:根據(jù)所述分支判定,選擇分支目標(biāo)指令地址和后一指令地址中的一個;和根據(jù)分支目標(biāo)指令地址和后一指令地址中被選擇的一個地址,獲取分支目標(biāo)指令和后一指令中的一個供給執(zhí)行單元。4.根據(jù)權(quán)利要求1所述方法,其特征在于所述選擇進(jìn)一步包括:使用分支目標(biāo)指令地址和后一指令地址從存儲器中相應(yīng)獲取分支目標(biāo)指令和后一指令;和根據(jù)分支判定,選擇獲取到的分支目標(biāo)指令和獲取到的后一指令中的一個供給執(zhí)行單元。5.根據(jù)權(quán)利要求1所述方法,其特征在于所述選擇進(jìn)一步包括:根據(jù)分支目標(biāo)指令的地址從一個儲存裝置中獲取分支目標(biāo)指令;根據(jù)后一指令地址從存儲器中獲取后一指令;和根據(jù)分支判定,選擇獲取到的分支目標(biāo)指令和獲取到的后一指令中的一個供給執(zhí)行單元。6.根據(jù)權(quán)利要求1所述方法,其特征在于所述方法進(jìn)一步包括:根據(jù)由第一地址確定的軌道號和由第二地址確定的軌道內(nèi)偏移量對軌跡點尋址。7.根據(jù)權(quán)利要求6所述方法,其特征在于:由軌道表提供分支類型;和由處理器提供分支狀態(tài)標(biāo)志。8.根據(jù)權(quán)利要求6所述方法,其特征在于:當(dāng)處理器提供的程序計數(shù)器(PC)偏移量等于軌道表分支軌跡點中的偏移量時,進(jìn)行分支判定。9.根據(jù)權(quán)利要求6所述方法,其特征在于:當(dāng)處理器執(zhí)行軌跡點對應(yīng)的一條指令時,由第一地址確定包含所述指令的存儲單元塊,根據(jù)處理器提供的偏移量在所述存儲單元塊中可找到所述指令。10.根據(jù)權(quán)利要求9所述方法,其特征在于所述方法進(jìn)一步包括:可以通過對所述分支指令所在存儲單元塊的塊地址、所述分支指令在所述存儲單元塊中的偏移量、轉(zhuǎn)移到分支目標(biāo)指令的轉(zhuǎn)移偏移量三者求和,計算出分支目標(biāo)指令的地址。11.根據(jù)權(quán)利要求10所述方法,其特征在于所述方法進(jìn)一步包括:將所述分支目標(biāo)指令地址作為表項內(nèi)容存儲到軌道表中所述分支指令對應(yīng)的表項中。12.根據(jù)權(quán)利要求11所述方法,其特征在于所述方法進(jìn)一步包括:當(dāng)轉(zhuǎn)移成功時,將所述分支指令對應(yīng)表項中存儲的第一地址和第二地址相應(yīng)作為下一第一地址和下一第二地址;和當(dāng)轉(zhuǎn)移不成功時,保持當(dāng)前第一地址不變作為下一第一地址,并對當(dāng)前第二地址加一作為下一第二地址,從而到達(dá)軌道表中的下一軌跡點。13.根據(jù)權(quán)利要求11所述方法,其特征在于所述方法進(jìn)一步包括:當(dāng)轉(zhuǎn)移成功時,將處理器的程序計數(shù)器強(qiáng)制置為分支目標(biāo)指令的后一指令的地址,使得處理器在執(zhí)行分支目標(biāo)指令的同時獲取所述分支目標(biāo)指令的后一指令。14.根據(jù)權(quán)利要求1所述方法,其特征在于:分支指令可以與非分支指令結(jié)合,使所述分支指令的分支執(zhí)行過程與所述非分支指令的執(zhí)行過程同時進(jìn)行。15.一種用于控制處理器流水線操作的流水線控制系統(tǒng);所述處理器連接包含可執(zhí)行的計算機(jī)指令的存儲器;所述系統(tǒng)包括:一個審查單元,用于判斷處理器即將執(zhí)行的指令是否為分支指令;一個連接處理器的尋址單元,用于提供所述分支指令的分支目標(biāo)指令地址和所述分支指令在程序序列中的后一指令地址;一個分支邏輯單元,用于至少根據(jù)軌道單元提供的分支目標(biāo)指令地址決定關(guān)于所述分支指令的分支判定;和一個選擇器,用于根據(jù)分支邏輯單元提供的分支判定,在所述分支指令到達(dá)其在流水線中的執(zhí)行段之前,選擇分支目標(biāo)指令和后一指令中的至少一個作為處理器中執(zhí)行單元將要執(zhí)行的指令,使得無論所述分支指令的轉(zhuǎn)移是否發(fā)生都不會導(dǎo)致流水線操作的暫停;其特征在于,所述審查單元可以進(jìn)一步用于:通過審查所述可執(zhí)行的計算機(jī)指令,提取出至少包含分支信息的指令信息;和為實現(xiàn)提供所述分支指令的分支目標(biāo)指令地址和后一指令地址,所述軌道單元可以進(jìn)一步用于:根據(jù)提取的指令信息建立復(fù)數(shù)條軌道;和根據(jù)所述復(fù)數(shù)條軌道確定分支目標(biāo)指令的地址;一個軌道表;所述軌道表包含對應(yīng)復(fù)數(shù)條軌道的復(fù)數(shù)個軌道表行,每個表行對應(yīng)一條軌道并包含復(fù)數(shù)個表項,每個表項對應(yīng)一個軌跡點,每個所述軌跡點對應(yīng)至少一條指令。16.根據(jù)權(quán)利要求15所述系統(tǒng),其特征在于:所述選擇器根據(jù)分支判定選擇分支目標(biāo)指令地址和后一指令地址中的一個,從而實現(xiàn)選擇分支目標(biāo)指令和后一指令中的至少一個;和所述流水線控制系統(tǒng)進(jìn)一步包括:一個獲取單元,用于根據(jù)分支目標(biāo)指令地址和后一指令地址中被選出的一個地址從存儲器中獲取分支目標(biāo)指令和后一指令中的一個,供給執(zhí)行單元。17.根據(jù)權(quán)利要求15所述系統(tǒng),其特征在于:所述流水線控制系統(tǒng)進(jìn)一步包括:一個獲取單元,用于使用分支目標(biāo)指令地址和后一指令地址相應(yīng)地從存儲器中獲取分支目標(biāo)指令和后一指令;和所述選擇器根據(jù)分支判定選擇所述獲取到的分支目標(biāo)指令和所述獲取到的后一指令中的一個供給執(zhí)行單元,從而實現(xiàn)選擇分支目標(biāo)指令和后一指令中的至少一個。18.根據(jù)權(quán)利要求15所述系統(tǒng),其特征在于所述系統(tǒng)進(jìn)一步包括:一個獲取單元和一個儲存裝置,其中:所述獲取單元用于:根據(jù)分支目標(biāo)指令地址從所述儲存裝置中獲取分支目標(biāo)指令;和根據(jù)后一指令地址從存儲器中獲取后一指令;和所述選擇器根據(jù)分支判定選擇所述獲取到的分支目標(biāo)指令和所述獲取到的后一指令中的一個供給執(zhí)行單元。19.根據(jù)權(quán)利要求15所述系統(tǒng),其特征在于:分支指令可以與非分支指令結(jié)合,使所述分支指令的分支執(zhí)行過程與所述非分支指令的執(zhí)行過程同時進(jìn)行。20.根據(jù)權(quán)利要求15所述系統(tǒng),其特征在于:分支指令可以作為包含所述分支指令和一條非分支指令的復(fù)合指令的一部分。21.根據(jù)權(quán)利要求20所述系統(tǒng),其特征在于:所述復(fù)合指令包括一個分支位用于表示所述復(fù)合指令中包含的分支指令是否將被執(zhí)行;和基于一個預(yù)先設(shè)置的寄存器的內(nèi)容對所述復(fù)合指令中的分支指令進(jìn)行分支判斷。22.一種控...

    【專利技術(shù)屬性】
    技術(shù)研發(fā)人員:林正浩
    申請(專利權(quán))人:上海芯豪微電子有限公司
    類型:發(fā)明
    國別省市:

    網(wǎng)友詢問留言 已有0條評論
    • 還沒有人留言評論。發(fā)表了對其他瀏覽者有用的留言會獲得科技券。

    1
    主站蜘蛛池模板: 精品韩国亚洲av无码不卡区| 国产精品无码午夜福利| 日韩精品无码AV成人观看| 国产精品va无码一区二区| 无码人妻精品一区二区三区蜜桃| 日韩精品中文字幕无码专区| 成人无码网WWW在线观看| 中文无码乱人伦中文视频在线V | 亚洲av无码片vr一区二区三区| 波多野结衣VA无码中文字幕电影| 国产成人无码18禁午夜福利p| 亚洲国产成人无码AV在线| 亚洲中文字幕无码久久精品1 | 亚洲成av人片在线观看天堂无码| 亚洲av无码片在线播放| 午夜无码中文字幕在线播放| 亚洲AV无码久久久久网站蜜桃 | 成人免费无码精品国产电影| 久久精品无码专区免费东京热 | 亚州AV综合色区无码一区| 亚洲精品无码专区在线在线播放| 国产在线无码精品无码| 亚洲AV无码AV男人的天堂不卡| 亚洲成无码人在线观看| 国产三级无码内射在线看| 日韩视频无码日韩视频又2021 | 久久精品中文字幕无码| 中文字幕无码一区二区三区本日| 无码aⅴ精品一区二区三区| 中文AV人妻AV无码中文视频| 亚洲A∨无码无在线观看| 国产精品三级在线观看无码| 亚洲综合无码AV一区二区| 日韩精品无码一区二区视频| 无码任你躁久久久久久久| 久久久久亚洲AV无码专区网站| 成人免费无码大片A毛片抽搐色欲| 中文字幕无码免费久久99| 一本大道无码av天堂| 亚洲a∨无码一区二区| 无码精品蜜桃一区二区三区WW|