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

一種分支處理系統(tǒng)和方法

文檔序號(hào):6492200閱讀:99來(lái)源:國(guó)知局
一種分支處理系統(tǒng)和方法
【專利摘要】一種分支處理系統(tǒng)和方法。該系統(tǒng)和方法包括在處理器執(zhí)行指令前將所需指令預(yù)取到緩存中;判斷處理器即將執(zhí)行的指令是否是分支指令,并提供該分支指令的分支目標(biāo)指令地址和該分支指令在程序序列中的后一指令地址。該系統(tǒng)和方法還包括至少根據(jù)分支目標(biāo)指令的地址對(duì)分支指令的分支判定,并根據(jù)該分支判斷,在分支指令到達(dá)其在流水線中的執(zhí)行段前,至少選擇分支目標(biāo)指令和后一指令中的一個(gè)作為執(zhí)行單元將要執(zhí)行的指令,使得無(wú)論分支指令的轉(zhuǎn)移是否發(fā)生都不會(huì)導(dǎo)致流水線操作的暫停。
【專利說(shuō)明】一種分支處理系統(tǒng)和方法
【技術(shù)領(lǐng)域】
[0001]本發(fā)明涉及電子計(jì)算機(jī)和微處理器體系結(jié)構(gòu)領(lǐng)域,具體涉及分支處理方法與系統(tǒng)。
【背景技術(shù)】
[0002]控制相關(guān)(control hazards)也稱為分支(Branch),是流水線性能損失的一大原因。在處理分支指令時(shí),傳統(tǒng)處理器無(wú)法提前知道應(yīng)該從哪里獲取分支指令之后執(zhí)行的下一條指令,而是需要等到分支指令完成后才能知道,使得流水線中分支指令之后出現(xiàn)空周期。圖1是顯示了傳統(tǒng)流水線結(jié)構(gòu),其中的流水線段對(duì)應(yīng)了一條分支指令。
[0003]表1分支指令的流水線段(分支轉(zhuǎn)移發(fā)生時(shí))
[0004]
【權(quán)利要求】
1.一種分支處理方法,其特征在于所述方法包括: 判斷寫入緩存的指令的指令類型,并記錄該指令類型;當(dāng)該指令是分支指令時(shí), 計(jì)算該分支指令的分支目標(biāo)指令地址,并記錄該分支目標(biāo)指令地址對(duì)應(yīng)的目標(biāo)地址信息;該目標(biāo)地址信息對(duì)應(yīng)至少包含該分支目標(biāo)指令在內(nèi)的一個(gè)指令段; 若該分支目標(biāo)指令尚未存儲(chǔ)在緩存中,則根據(jù)該分支目標(biāo)指令地址將至少包含該分支目標(biāo)指令的指令段填充到緩存中與該目標(biāo)地址信息對(duì)應(yīng)的位置中,使得處理器核執(zhí)行該分支指令之前,該分支指令的后一指令及分支目標(biāo)指令都已存儲(chǔ)在緩存中。
2.根據(jù)權(quán)利要求1所述方法,其特征在于: 對(duì)于緩存中的每條指令,均有一個(gè)指令類型和一個(gè)目標(biāo)地址信息與之對(duì)應(yīng)。
3.根據(jù)權(quán)利要求2所述方法,其特征在于: 所述指令類型可以包括有條件的分支指令。
4.根據(jù)權(quán)利要求2所述方法,其特征在于: 所述指令類型還可以包括無(wú)條件的分支指令。
5.根據(jù)權(quán)利要求2所 述方法,其特征在于: 所述指令類型還可以包括非分支指令。
6.根據(jù)權(quán)利要求2所述方法,其特征在于: 對(duì)于每條指令,還可以有一個(gè)有效位與之對(duì)應(yīng);所述有效位表示對(duì)應(yīng)的目標(biāo)地址信息是否有效。
7.根據(jù)權(quán)利要求6所述方法,其特征在于: 若一個(gè)目標(biāo)地址信息對(duì)應(yīng)的指令段被替換出緩存,則將該目標(biāo)地址信息對(duì)應(yīng)的有效位設(shè)置為無(wú)效。
8.根據(jù)權(quán)利要求7所述方法,其特征在于: 若即將被處理器核執(zhí)行的分支指令對(duì)應(yīng)的有效位表示為無(wú)效,則重新計(jì)算該分支指令的分支目標(biāo)指令地址,并記錄該分支目標(biāo)指令地址對(duì)應(yīng)的目標(biāo)地址信息。
9.根據(jù)權(quán)利要求8所述方法,其特征在于: 若該分支目標(biāo)指令尚未存儲(chǔ)在緩存中,則根據(jù)該分支目標(biāo)指令地址將至少包含分支目標(biāo)指令的指令段填充到緩存中與該分支指令相應(yīng)的目標(biāo)地址信息對(duì)應(yīng)的位置中,使得處理器核執(zhí)行該分支指令之前,該分支指令的后一指令及分支目標(biāo)指令都已存儲(chǔ)在緩存中。
10.根據(jù)權(quán)利要求4、6所述方法,其特征在于: 若即將被處理器核執(zhí)行的分支指令是間接分支指令且有效位表示為有效,則在處理器核計(jì)算得到分支目標(biāo)地址前,猜測(cè)執(zhí)行該間接分支指令的后續(xù)指令,即將該間接分支指令對(duì)應(yīng)的目標(biāo)地址信息作為后續(xù)指令的位置,使得流水線操作不會(huì)因?yàn)殚g接分支指令而暫停。
11.根據(jù)權(quán)利要求10所述方法,其特征在于: 在處理器核計(jì)算得到間接分支目標(biāo)地址后,將該分支目標(biāo)地址與該間接分支指令對(duì)應(yīng)的目標(biāo)地址信息對(duì)應(yīng)的分支目標(biāo)地址進(jìn)行比較,并根據(jù)比較結(jié)果決定后續(xù)操作。
12.根據(jù)權(quán)利要求11所述方法,其特征在于: 若比較結(jié)果為不相等且發(fā)生分支轉(zhuǎn)移,則以處理器核計(jì)算得到分支目標(biāo)地址作為該間接分支指令的后續(xù)指令地址。
13.根據(jù)權(quán)利要求12所述方法,其特征在于: 記錄該分支目標(biāo)地址對(duì)應(yīng)的目標(biāo)地址信息;該目標(biāo)地址信息對(duì)應(yīng)至少包含該分支目標(biāo)指令在內(nèi)的一個(gè)指令段; 若該分支目標(biāo)指令尚未存儲(chǔ)在緩存中,則根據(jù)該分支目標(biāo)指令地址將至少包含該分支目標(biāo)指令的指令段填充到緩存中與該目標(biāo)地址信息對(duì)應(yīng)的位置中。
14.根據(jù)權(quán)利要求2所述方法,其特征在于所述方法進(jìn)一步包括: 從緩存同時(shí)向處理器核提供所述后一指令及分支目標(biāo)指令; 決定對(duì)應(yīng)于分支指令的分支判定;和 根據(jù)所述分支判定,在所述分支指令到達(dá)其在流水線中的執(zhí)行段前,選擇至少所述分支目標(biāo)指令和所述后一指令中的一個(gè)作為所述執(zhí)行單元將要執(zhí)行的指令,使得無(wú)論所述分支指令的轉(zhuǎn)移是否發(fā)生都不會(huì)導(dǎo)致流水線操作的暫停。
15.根據(jù)權(quán)利要求14所述方法,其特征在于: 對(duì)該分支指令對(duì)應(yīng)的目標(biāo)地址信息進(jìn)行遞增,可以提供緩存中所述分支目標(biāo)指令所在指令段的尋址地址;若該分支指令的執(zhí)行結(jié)果為分支轉(zhuǎn)移成功發(fā)生,則將該遞增目標(biāo)地址信息作為新的尋址地址進(jìn)行后續(xù)操作。
16.根據(jù)權(quán)利要求15所述方法,其特征在于: 記錄該分支指令之后順序執(zhí)行的指令的位置信息;對(duì)該分支指令本身的地址進(jìn)行遞增,可以提供緩存中該分支指令所在指令段的尋址地址; 若該分支指令的執(zhí)行結(jié)果為分支轉(zhuǎn)移不發(fā)生,則將該遞增地址的地址信息作為新的尋址地址進(jìn)行后續(xù)操作。
17.根據(jù)權(quán)利要求16所述方法,其特征在于: 當(dāng)分支指令本身地址遞增后已經(jīng)到達(dá)指令段最后一條指令時(shí),可以繼續(xù)對(duì)該地址進(jìn)行遞增,從而指向與該指令段地址相鄰的后一指令段中的指令,同時(shí)將該遞增地址的地址信息作為新的尋址地址進(jìn)行后續(xù)操作。
18.根據(jù)權(quán)利要求17所述方法,其特征在于: 根據(jù)所述分支判定,當(dāng)所述分支指令的執(zhí)行結(jié)果表示該分支轉(zhuǎn)移沒(méi)有成功發(fā)生時(shí),放棄由分支目標(biāo)地址遞增得到的地址信息,僅使用由分支指令本身地址遞增得到的地址信息作為新的尋址地址。
19.根據(jù)權(quán)利要求2所述方法,其特征在于: 所述指令類型還可以包含函數(shù)調(diào)用指令和函數(shù)返回指令。
20.根據(jù)權(quán)利要求19所述方法,其特征在于: 當(dāng)處理器核執(zhí)行函數(shù)調(diào)用指令時(shí),將函數(shù)返回地址對(duì)應(yīng)的目標(biāo)地址信息壓棧存儲(chǔ)到一個(gè)棧中;所述目標(biāo)地址信息可以是函數(shù)調(diào)用指令本身對(duì)應(yīng)的地址信息,也可以是函數(shù)調(diào)用指令的后續(xù)指令的地址信息。
21.根據(jù)權(quán)利要求20所述方法,其特征在于: 當(dāng)處理器核即將執(zhí)行到函數(shù)返回指令時(shí),將所述棧中位于棧頂?shù)哪繕?biāo)地址信息出棧,作為該函數(shù)返回指令的目標(biāo)地址信息,并記錄該目標(biāo)地址信息;該目標(biāo)地址信息對(duì)應(yīng)至少包含該目標(biāo)指令在內(nèi)的一個(gè)指令段; 若該目標(biāo)指令尚未存儲(chǔ)在緩存中,則根據(jù)該目標(biāo)地址信息對(duì)應(yīng)的目標(biāo)指令地址將至少包含該目標(biāo)指令的指令段填充到緩存中與該目標(biāo)地址信息對(duì)應(yīng)的位置中,使得處理器核執(zhí)行該函數(shù)返回指令之前,該函數(shù)返回指令的目標(biāo)指令都已存儲(chǔ)在緩存中。
22.—種分支處理系統(tǒng),所述系統(tǒng)包括處理器核及緩存;其特征在于該系統(tǒng)進(jìn)一步包括: 一個(gè)掃描器,用于判斷寫入緩存的指令的指令類型,并計(jì)算分支指令的分支目標(biāo)指令地址; 一個(gè)主動(dòng)表,用于將分支目標(biāo)指令地址轉(zhuǎn)換為目標(biāo)地址信息; 一個(gè)軌道表,用于記錄寫入緩存的指令對(duì)應(yīng)的指令類型、目標(biāo)地址信息;和若該分支目標(biāo)指令尚未存儲(chǔ)在緩存中,則根據(jù)該分支目標(biāo)指令地址將至少包含該分支目標(biāo)指令的指令段填充到緩存中與該目標(biāo)地址信息對(duì)應(yīng)的位置中,使得處理器核執(zhí)行該分支指令之前,該分支指令的后一指令及分支目標(biāo)指令都已存儲(chǔ)在緩存中。
23.根據(jù)權(quán)利要求22所述系統(tǒng),其特征在于: 對(duì)于緩存中的每個(gè)指令段,均有軌道表的一個(gè)表行與之對(duì)應(yīng);對(duì)于緩存中的每條指令,均有軌道表的一個(gè)表項(xiàng)與之對(duì)應(yīng)。
24.根據(jù)權(quán)利要求23所述系統(tǒng),其特征在于: 存儲(chǔ)在所述表項(xiàng)中的 指令類型可以包括有條件的分支指令。
25.根據(jù)權(quán)利要求23所述系統(tǒng),其特征在于: 存儲(chǔ)在所述表項(xiàng)中的指令類型還可以包括無(wú)條件的分支指令。
26.根據(jù)權(quán)利要求23所述系統(tǒng),其特征在于: 存儲(chǔ)在所述表項(xiàng)中的指令類型還可以包括非分支指令。
27.根據(jù)權(quán)利要求23所述系統(tǒng),其特征在于: 軌道表的每個(gè)表項(xiàng)還可以包含一個(gè)有效位;所述有效位表不該表項(xiàng)包含的目標(biāo)地址信息是否有效。
28.根據(jù)權(quán)利要求27所述系統(tǒng),其特征在于: 所述緩存可以同時(shí)向處理器核提供所述后一指令及分支目標(biāo)指令; 所述系統(tǒng)還包括: 一個(gè)分支判定邏輯,用于決定對(duì)應(yīng)于分支指令的分支判定;和一個(gè)選擇邏輯,用于根據(jù)所述分支判定,在所述分支指令到達(dá)其在流水線中的執(zhí)行段前,選擇至少所述分支目標(biāo)指令和所述后一指令中的一個(gè)作為所述執(zhí)行單元將要執(zhí)行的指令,使得無(wú)論所述分支指令的轉(zhuǎn)移是否發(fā)生都不會(huì)導(dǎo)致流水線操作的暫停。
29.根據(jù)權(quán)利要求28所述系統(tǒng),其特征在于所述系統(tǒng)還包括: 一個(gè)自增器,用于對(duì)所述分支指令本身的地址信息或所述分支指令對(duì)應(yīng)的目標(biāo)地址信息進(jìn)行遞增,以提供緩存中所述分支指令所在指令段的尋址地址或緩存中所述分支目標(biāo)指令所在指令段的尋址地址; 一個(gè)當(dāng)前地址寄存器,用于存儲(chǔ)所述分支指令所在指令段的尋址地址; 一個(gè)目標(biāo)地址寄存器,用于存儲(chǔ)所述分支目標(biāo)指令所在指令段的尋址地址; 一個(gè)選擇器,用于選擇當(dāng)前地址寄存器和目標(biāo)地址寄存器中的一個(gè)作為新的尋址地址;若該分支指令的執(zhí)行結(jié)果為分支轉(zhuǎn)移成功發(fā)生,該選擇器選擇目標(biāo)地址寄存器中存儲(chǔ)的地址信息,否則選擇當(dāng)前地址寄存器中存儲(chǔ)的地址信息。
30.根據(jù)權(quán)利要求29所述系統(tǒng),其特征在于所述系統(tǒng)還包括: 一個(gè)段結(jié)束地址寄存器,用于存儲(chǔ)處理器核正在執(zhí)行的指令段地址相鄰的后一指令段的尋址地址; 一個(gè)段地址選擇器,用于選擇當(dāng)前地址寄存器和段結(jié)束地址寄存器中的一個(gè)作為新的尋址地址;若處理器核已經(jīng)執(zhí)行到指令段的最后一條指令,該段地址選擇器選擇段結(jié)束地址寄存器中存儲(chǔ)的地址信息,否則選擇當(dāng)前地址寄存器中存儲(chǔ)的地址信息。
31.根據(jù)權(quán)利要求26所述系統(tǒng),其特征在于: 存儲(chǔ)在所述表項(xiàng)中的指令類型還可以包含函數(shù)調(diào)用指令和函數(shù)返回指令。
32.根據(jù)權(quán)利要求31所述系統(tǒng),其特征在于所述系統(tǒng)還包括: 一個(gè)棧,用于存儲(chǔ)函數(shù)調(diào)用指令的函數(shù)返回地址對(duì)應(yīng)的地址信息; 當(dāng)處理器核執(zhí)行函數(shù)調(diào)用指令時(shí),將函數(shù)返回地址對(duì)應(yīng)的地址信息壓棧存儲(chǔ)到所述棧中; 當(dāng)處理器核即將執(zhí)行到函數(shù)返回指令時(shí),將所述棧中位于棧頂?shù)牡刂烦鰲?,作為該函?shù)返回指令的目標(biāo)地址信息;將該目標(biāo)地址信息存儲(chǔ)在該函數(shù)返回指令對(duì)應(yīng)的軌道表表項(xiàng)中;該目標(biāo)地址信息對(duì)應(yīng)至少包含該目標(biāo)指令在內(nèi)的一個(gè)指令段; 若該目標(biāo)指令尚未存儲(chǔ)在緩存中,則根據(jù)該目標(biāo)地址信息對(duì)應(yīng)的目標(biāo)指令地址將至少包含該目標(biāo)指令的指令段填充到緩存中與該目標(biāo)地址信息對(duì)應(yīng)的位置中,使得處理器核執(zhí)行該函數(shù)返回指令之前,該函數(shù)返回指令的目標(biāo)指令都已存儲(chǔ)在緩存中。
33.根據(jù)權(quán)利要求30所述系統(tǒng),其特征在于所述系統(tǒng)中的處理器核可以有兩條流水線前端,分別執(zhí)行分支指令地址相鄰的后續(xù)指令及分支目標(biāo)指令; 所述處理器核的分支判定指令段選擇所述兩個(gè)流水線前端中的一條的輸出供后端流水線繼續(xù)處理。
【文檔編號(hào)】G06F9/38GK103838550SQ201210508931
【公開(kāi)日】2014年6月4日 申請(qǐng)日期:2012年11月26日 優(yōu)先權(quán)日:2012年11月26日
【發(fā)明者】林正浩, 林穆云, 任浩琪 申請(qǐng)人:上海芯豪微電子有限公司
網(wǎng)友詢問(wèn)留言 已有0條留言
  • 還沒(méi)有人留言評(píng)論。精彩留言會(huì)獲得點(diǎn)贊!
1