【技術(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’,處理器獲取到 ...
【技術(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ā)明
國別省市:
還沒有人留言評論。發(fā)表了對其他瀏覽者有用的留言會獲得科技券。