一種指令處理的方法及裝置制造方法
【專(zhuān)利摘要】本發(fā)明實(shí)施例公開(kāi)了一種指令處理的方法及裝置,涉及計(jì)算機(jī)領(lǐng)域,解決了指令處理中,處理器處理性能低,功耗大的問(wèn)題。具體方案為:獲取輸入指令并讀取指令內(nèi)容,當(dāng)所述指令包含第一操作指令時(shí),查找所述第一操作指令的目標(biāo)對(duì)象和源對(duì)象,將所述目標(biāo)對(duì)象所對(duì)應(yīng)的物理寄存器標(biāo)識(shí)修改為源對(duì)象所對(duì)應(yīng)的物理寄存器標(biāo)識(shí)。本發(fā)明用于處理器指令處理。
【專(zhuān)利說(shuō)明】一種指令處理的方法及裝置
【技術(shù)領(lǐng)域】
[0001] 本發(fā)明涉及計(jì)算機(jī)領(lǐng)域,尤其涉及一種指令處理的方法及裝置。
【背景技術(shù)】
[0002] 在高性能的處理器設(shè)計(jì)中,性能和功耗是最重要的指標(biāo)之一?,F(xiàn)有的高性能處理 器都采用亂序執(zhí)行的流水線設(shè)計(jì),所有的基本指令基本上都可以分為取指,譯碼,重命名, 發(fā)射,執(zhí)行,結(jié)果返回等步驟
[0003] 在執(zhí)行指令的過(guò)程中,有一個(gè)指令:寄存器間的MOV(傳送指令,用于把一個(gè)字節(jié)、 字或雙字的操作數(shù)從源位置傳送到目的位置,源操作數(shù)的內(nèi)容不變)指令。在很多程序中, 寄存器間的MOV指令占了比較多的比例,在高性能處理器中,用處理器架構(gòu)指令集編譯后 的程序中,有大約6%的指令是寄存器間的MOV指令。
[0004] 現(xiàn)有技術(shù)對(duì)于寄存器間的MOV指令進(jìn)行取指,譯碼,接著寄存器間的MOV指令在 重命名階段需要檢查物理寄存器空閑列表中是否有空閑的寄存器,如果有則把其中一個(gè)空 閑的物理寄存器分配給當(dāng)前指令,即該指令對(duì)應(yīng)的架構(gòu)寄存器項(xiàng)的內(nèi)容修改為該物理寄存 器。然后在執(zhí)行發(fā)射,執(zhí)行,結(jié)果返回等步驟。
[0005] 在實(shí)現(xiàn)上述執(zhí)行指令的過(guò)程中,發(fā)明人發(fā)現(xiàn)現(xiàn)有技術(shù)中至少存在如下問(wèn)題:
[0006] 寄存器間的MOV指令的執(zhí)行要經(jīng)過(guò)取指,譯碼,重命名,發(fā)射,執(zhí)行,結(jié)果返回等步 驟。由于執(zhí)行步驟較多,所以會(huì)造成處理器處理性能低,功耗大的問(wèn)題。
【發(fā)明內(nèi)容】
[0007] 本發(fā)明的實(shí)施例提供一種指令處理的方法及裝置,能夠提高處理器的性能,并減 小處理器的功耗。
[0008] 為達(dá)到上述目的,本發(fā)明的實(shí)施例采用如下技術(shù)方案:
[0009] 第一方面,提供一種指令處理的方法,包括如下步驟:
[0010] 獲取輸入指令并讀取指令內(nèi)容;
[0011] 當(dāng)所述指令包含第一操作指令時(shí),查找所述第一操作指令的目標(biāo)對(duì)象和源對(duì)象;
[0012] 將所述目標(biāo)對(duì)象所對(duì)應(yīng)的物理寄存器標(biāo)識(shí)修改為源對(duì)象所對(duì)應(yīng)的物理寄存器標(biāo) 識(shí)。
[0013] 結(jié)合第一方面,在第一種可能的實(shí)現(xiàn)方式中,所述第一操作指令為寄存器間的MOV 指令。
[0014] 結(jié)合第一方面的第一種可能的實(shí)現(xiàn)方式,在第二種可能的實(shí)現(xiàn)方式中,所述將所 述目標(biāo)對(duì)象所對(duì)應(yīng)的物理寄存器標(biāo)識(shí)修改為源對(duì)象所對(duì)應(yīng)的物理寄存器標(biāo)識(shí)之后,包括:
[0015] 執(zhí)行第二操作指令,判斷執(zhí)行結(jié)果,所述第二操作指令為跳轉(zhuǎn)指令;
[0016] 若所述執(zhí)行結(jié)果出錯(cuò),則將所述目標(biāo)對(duì)象所對(duì)應(yīng)的物理寄存器標(biāo)識(shí)恢復(fù)為修改前 的物理寄存器的標(biāo)識(shí)。
[0017] 結(jié)合第一方面,在第三種可能的實(shí)現(xiàn)方式中,所述將所述目標(biāo)對(duì)象所對(duì)應(yīng)的物理 寄存器標(biāo)識(shí)修改為源對(duì)象所對(duì)應(yīng)的物理寄存器標(biāo)識(shí)之后,包括:
[0018] 生成重命名隊(duì)列,所述重命名隊(duì)列包括至少一個(gè)重命名項(xiàng),所述重命名項(xiàng)包括:是 否有效,是否跳轉(zhuǎn),目標(biāo)對(duì)象,修改前目標(biāo)對(duì)象對(duì)應(yīng)的物理寄存器標(biāo)識(shí),修改后目標(biāo)對(duì)象對(duì) 應(yīng)的物理寄存器標(biāo)識(shí)。
[0019] 結(jié)合第一方面的第三種可能的實(shí)現(xiàn)方式,在第四種可能的實(shí)現(xiàn)方式中,所述生成 重命名隊(duì)列之后,包括:
[0020] 根據(jù)重命名隊(duì)列對(duì)物理寄存器釋放進(jìn)行釋放。
[0021] 結(jié)合第一方面的第四種可能的實(shí)現(xiàn)方式,在第五種可能的實(shí)現(xiàn)方式中,所述根據(jù) 重命名隊(duì)列對(duì)物理寄存器進(jìn)行釋放,包括 :
[0022] 在所述重命名隊(duì)列的重命名項(xiàng)中獲取一個(gè)待釋放物理寄存器標(biāo)識(shí),所述待釋放物 理寄存器標(biāo)識(shí)為所述重命名項(xiàng)中的修改前目標(biāo)對(duì)象對(duì)應(yīng)的物理寄存器標(biāo)識(shí);
[0023] 將所述待釋放物理寄存器標(biāo)識(shí)與所有架構(gòu)寄存器對(duì)應(yīng)的物理寄存器標(biāo)識(shí)進(jìn)行匹 配;
[0024] 若所述所有架構(gòu)寄存器對(duì)應(yīng)的物理寄存器標(biāo)識(shí)不包含所述待釋放物理寄存器標(biāo) 識(shí),則將所述待釋放物理寄存器標(biāo)識(shí)與未進(jìn)行釋放處理的重命名項(xiàng)中的修改前目標(biāo)對(duì)象對(duì) 應(yīng)的物理寄存器標(biāo)識(shí)進(jìn)行匹配;
[0025] 若所述未進(jìn)行釋放處理的重命名項(xiàng)中的修改前目標(biāo)對(duì)象對(duì)應(yīng)的物理寄存器標(biāo)識(shí) 中不包含所述待釋放物理寄存器標(biāo)識(shí),則將所述待釋放物理寄存器標(biāo)識(shí)對(duì)應(yīng)的物理寄存器 釋放。
[0026] 結(jié)合第一方面的第五種可能的實(shí)現(xiàn)方式,在第六種可能的實(shí)現(xiàn)方式中,所述方法 還包括:
[0027] 若所述所有架構(gòu)寄存器對(duì)應(yīng)的物理寄存器標(biāo)識(shí)包含所述待釋放物理寄存器標(biāo)識(shí), 則不將所述待釋放物理寄存器標(biāo)識(shí)對(duì)應(yīng)的物理寄存器釋放。
[0028] 結(jié)合第一方面的第五種可能的實(shí)現(xiàn)方式,在第七種可能的實(shí)現(xiàn)方式中,所述方法 還包括:
[0029] 若所述未進(jìn)行釋放處理的重命名項(xiàng)中的修改前目標(biāo)對(duì)象對(duì)應(yīng)的物理寄存器標(biāo)識(shí) 中包含所述待釋放物理寄存器標(biāo)識(shí),則不將所述待釋放物理寄存器標(biāo)識(shí)對(duì)應(yīng)的物理寄存器 釋放。
[0030] 結(jié)合第一方面的第五種可能的實(shí)現(xiàn)方式,在第八種可能的實(shí)現(xiàn)方式中,所述在所 述重命名隊(duì)列的重命名項(xiàng)中獲取一個(gè)待釋放物理寄存器標(biāo)識(shí),包括:
[0031] 生成確認(rèn)指針;
[0032] 按照預(yù)設(shè)的順序?qū)⑺龃_認(rèn)指針指向所述重命名隊(duì)列的重命名項(xiàng)中的預(yù)定項(xiàng);
[0033] 在所述預(yù)定項(xiàng)中獲取修改前目標(biāo)對(duì)象對(duì)應(yīng)的物理寄存器標(biāo)識(shí)作為待釋放物理寄 存器標(biāo)識(shí),以便對(duì)所述預(yù)定項(xiàng)的中獲取的所述待釋放物理寄存器標(biāo)識(shí)對(duì)應(yīng)的物理寄存器進(jìn) 行釋放。
[0034] 第二方面,提供一種處理器,用于處理指令,包括:
[0035] 獲取單元,用于獲取輸入指令并讀取指令內(nèi)容;
[0036] 查找單元,用于當(dāng)所述獲取單元獲取的指令包含第一操作指令時(shí),查找所述第一 操作指令的目標(biāo)對(duì)象和源對(duì)象;
[0037] 修改單元,用于將所述查找單元查找的目標(biāo)對(duì)象所對(duì)應(yīng)的物理寄存器標(biāo)識(shí)修改為 源對(duì)象所對(duì)應(yīng)的物理寄存器標(biāo)識(shí)。
[0038] 結(jié)合第二方面,在第一種可能的實(shí)現(xiàn)方式中,所述查找單元中的第一操作指令為 寄存器間的MOV指令。
[0039] 結(jié)合第二方面的第一種可能的實(shí)現(xiàn)方式,在第二種可能的實(shí)現(xiàn)方式中,所述裝置 還包括:
[0040]跳轉(zhuǎn)單元,用于執(zhí)行第二操作指令,判斷執(zhí)行結(jié)果,所述第二操作指令為跳轉(zhuǎn)指 令;
[0041] 恢復(fù)單元,用于當(dāng)所述跳轉(zhuǎn)單元的執(zhí)行結(jié)果出錯(cuò)時(shí),將所述目標(biāo)對(duì)象所對(duì)應(yīng)的物 理寄存器標(biāo)識(shí)恢復(fù)為修改前的物理寄存器的標(biāo)識(shí)。
[0042] 結(jié)合第二方面,在第三種可能的實(shí)現(xiàn)方式中,所述裝置還包括:
[0043] 生成單元,用于生成重命名隊(duì)列;所述重命名隊(duì)列包括至少一個(gè)重命名項(xiàng),所述重 命名項(xiàng)包括:是否有效,是否跳轉(zhuǎn),目標(biāo)對(duì)象,修改前目標(biāo)對(duì)象對(duì)應(yīng)的物理寄存器標(biāo)識(shí),修改 后目標(biāo)對(duì)象對(duì)應(yīng)的物理寄存器標(biāo)識(shí)。
[0044] 結(jié)合第二方面的第三種可能的實(shí)現(xiàn)方式,在第四種可能的實(shí)現(xiàn)方式中,所述裝置 還包括:
[0045] 釋放單元,用于根據(jù)生成單元生成的重命名隊(duì)列對(duì)物理寄存器釋放進(jìn)行釋放。
[0046] 結(jié)合第二方面的第四種可能的實(shí)現(xiàn)方式,在第五種可能的實(shí)現(xiàn)方式中,所述釋放 單元包括:
[0047] 獲取子單元,用于在所述重命名隊(duì)列的重命名項(xiàng)中獲取一個(gè)待釋放物理寄存器標(biāo) 識(shí),所述待釋放物理寄存器標(biāo)識(shí)為所述重命名項(xiàng)中的修改前目標(biāo)對(duì)象對(duì)應(yīng)的物理寄存器標(biāo) 識(shí);
[0048]第一匹配子單元,用于將所述獲取子單元獲取的待釋放物理寄存器標(biāo)識(shí)與所有架 構(gòu)寄存器對(duì)應(yīng)的物理寄存器標(biāo)識(shí)進(jìn)行匹配;
[0049] 第二匹配子單元,用于所述第一匹配子單元的匹配結(jié)果中,當(dāng)所有架構(gòu)寄存器對(duì) 應(yīng)的物理寄存器標(biāo)識(shí)不包含所述待釋放物理寄存器標(biāo)識(shí)的情況下,將所述待釋放物理寄存 器標(biāo)識(shí)與未進(jìn)行釋放處理的重命名項(xiàng)中的修改前目標(biāo)對(duì)象對(duì)應(yīng)的物理寄存器標(biāo)識(shí)進(jìn)行匹 配;
[0050] 釋放子單元,用于所述第二匹配子單元的匹配結(jié)果中,當(dāng)所述未進(jìn)行釋放處理的 重命名項(xiàng)中的修改前目標(biāo)對(duì)象對(duì)應(yīng)的物理寄存器標(biāo)識(shí)中不包含所述待釋放物理寄存器標(biāo) 識(shí)的情況下,將所述待釋放物理寄存器標(biāo)識(shí)對(duì)應(yīng)的物理寄存器釋放。
[0051] 結(jié)合第二方面的第五種可能的實(shí)現(xiàn)方式,在第六種可能的實(shí)現(xiàn)方式中,所述釋放 子單元還用于 :
[0052] 所述第一匹配子單元的匹配結(jié)果中,當(dāng)所有架構(gòu)寄存器對(duì)應(yīng)的物理寄存器標(biāo)識(shí)包 含所述待釋放物理寄存器標(biāo)識(shí)的情況下,則不將所述待釋放物理寄存器標(biāo)識(shí)對(duì)應(yīng)的物理寄 存器釋放。
[0053] 結(jié)合第二方面的第五種可能的實(shí)現(xiàn)方式,在第七種可能的實(shí)現(xiàn)方式中,所述釋放 子單元還用于 :
[0054] 所述第二匹配子單元的匹配結(jié)果中,當(dāng)所述未進(jìn)行釋放處理的重命名項(xiàng)中的修改 前目標(biāo)對(duì)象對(duì)應(yīng)的物理寄存器標(biāo)識(shí)中包含所述待釋放物理寄存器標(biāo)識(shí)的情況下,不將所述 待釋放物理寄存器標(biāo)識(shí)對(duì)應(yīng)的物理寄存器釋放。
[0055] 結(jié)合第二方面的第五種可能的實(shí)現(xiàn)方式,在第八種可能的實(shí)現(xiàn)方式中,所述獲取 子單元包括:
[0056] 生成模塊,用于生成確認(rèn)指針;
[0057] 指向模塊,用于按照預(yù)設(shè)的順序?qū)⑺錾赡K生成的確認(rèn)指針指向所述重命名 隊(duì)列的重命名項(xiàng)中的預(yù)定項(xiàng);
[0058] 獲取模塊,用于在所述指向模塊指向的預(yù)定項(xiàng)中獲取修改前目標(biāo)對(duì)象對(duì)應(yīng)的物理 寄存器標(biāo)識(shí)作為待釋放物理寄存器標(biāo)識(shí),以便對(duì)所述預(yù)定項(xiàng)的中獲取的所述待釋放物理寄 存器標(biāo)識(shí)對(duì)應(yīng)的物理寄存器進(jìn)行釋放。
[0059] 上述方案,能夠通過(guò)源架構(gòu)寄存器中對(duì)應(yīng)的物理寄存器標(biāo)識(shí)對(duì)目標(biāo)架構(gòu)寄存器進(jìn) 行重命名,并在重命名后確定釋放相應(yīng)的物理寄存器,由于不需要重新生成物理寄存器,從 而避免了進(jìn)行與現(xiàn)有技術(shù)中其他指令相同的后續(xù)處理,能夠提高處理器的性能,并減小處 理器的功耗。
【專(zhuān)利附圖】
【附圖說(shuō)明】
[0060] 為了更清楚地說(shuō)明本發(fā)明實(shí)施例或現(xiàn)有技術(shù)中的技術(shù)方案,下面將對(duì)實(shí)施例或現(xiàn) 有技術(shù)描述中所需要使用的附圖作簡(jiǎn)單地介紹,顯而易見(jiàn)地,下面描述中的附圖僅僅是本 發(fā)明的一些實(shí)施例。
[0061] 圖1為本發(fā)明的實(shí)施例提供的一種指令處理方法的流程示意圖;
[0062] 圖2為本發(fā)明的另一實(shí)施例提供的一種指令處理方法的流程示意圖;
[0063] 圖3為本發(fā)明的又一實(shí)施例提供的一種指令處理方法的流程示意圖;
[0064] 圖4為本發(fā)明的再一實(shí)施例提供的一種指令處理方法的流程示意圖;
[0065]圖5為本發(fā)明的另一實(shí)施例提供的一種指令處理方法的流程示意圖;
[0066] 圖6為本發(fā)明的實(shí)施例提供的一種處理器的結(jié)構(gòu)示意圖;
[0067]圖7為本發(fā)明的另一實(shí)施例提供的一種處理器的結(jié)構(gòu)示意圖;
[0068]圖8為本發(fā)明的又一實(shí)施例提供的一種處理器的結(jié)構(gòu)示意圖;
[0069]圖9為本發(fā)明的再一實(shí)施例提供的一種處理器的結(jié)構(gòu)示意圖;
[0070] 圖10為本發(fā)明的另一實(shí)施例提供的一種處理器的結(jié)構(gòu)示意圖。
【具體實(shí)施方式】
[0071] 下面將結(jié)合本發(fā)明實(shí)施例中的附圖,對(duì)本發(fā)明實(shí)施例中的技術(shù)方案進(jìn)行清楚、完 整地描述,顯然,所描述的實(shí)施例僅僅是本發(fā)明一部分實(shí)施例,而不是全部的實(shí)施例。
[0072] 本發(fā)明的實(shí)施例提供一種指令處理的方法,參照?qǐng)D1所示,包括以下步驟:
[0073] 101、獲取輸入指令并讀取指令內(nèi)容。
[0074] 102、當(dāng)指令包含第一操作指令時(shí),查找第一操作指令的目標(biāo)對(duì)象和源對(duì)象。
[0075] 其中,第一操作指令為寄存器間的MOV指令。
[0076] 103、將目標(biāo)對(duì)象所對(duì)應(yīng)的物理寄存器標(biāo)識(shí)修改為源對(duì)象所對(duì)應(yīng)的物理寄存器標(biāo) 識(shí)。
[0077] 具體的,一個(gè)寄存器間的MOV指令為:M0Vr2,rl,該指令代表的意思是把架構(gòu)寄 存器rl對(duì)應(yīng)的物理寄存器中的數(shù)值賦給架構(gòu)寄存器r2對(duì)應(yīng)的物理寄存器;其中,架構(gòu)寄存 器rl為源對(duì)象,架構(gòu)寄存器r2為目標(biāo)對(duì)象。源對(duì)象rl對(duì)應(yīng)的物理寄存器標(biāo)識(shí)為35,目標(biāo) 對(duì)象r2對(duì)應(yīng)的物理寄存器標(biāo)識(shí)為15,將目標(biāo)對(duì)象對(duì)應(yīng)的物理寄存器標(biāo)識(shí)15改為對(duì)象對(duì)應(yīng) 的物理寄存器標(biāo)識(shí)35,則目標(biāo)對(duì)象對(duì)應(yīng)的物理寄存器標(biāo)識(shí)變?yōu)?5,這樣目標(biāo)對(duì)象對(duì)應(yīng)的物 理寄存器中的數(shù)值就與源對(duì)象一致,如此就完成了對(duì)目標(biāo)對(duì)象重命名。
【權(quán)利要求】
1. 一種指令處理的方法,其特征在于,包括如下步驟: 獲取輸入指令并讀取指令內(nèi)容; 當(dāng)所述指令包含第一操作指令時(shí),查找所述第一操作指令的目標(biāo)對(duì)象和源對(duì)象; 將所述目標(biāo)對(duì)象所對(duì)應(yīng)的物理寄存器標(biāo)識(shí)修改為源對(duì)象所對(duì)應(yīng)的物理寄存器標(biāo)識(shí)。
2. 根據(jù)權(quán)利要求1所述的方法,其特征在于,所述第一操作指令為寄存器間的MOV指 令。
3.根據(jù)權(quán)利要求2所述的方法,其特征在于,所述將所述目標(biāo)對(duì)象所對(duì)應(yīng)的物理寄存 器標(biāo)識(shí)修改為源對(duì)象所對(duì)應(yīng)的物理寄存器標(biāo)識(shí)之后,包括: 執(zhí)行第二操作指令,判斷執(zhí)行結(jié)果,所述第二操作指令為跳轉(zhuǎn)指令 若所述執(zhí)行結(jié)果出錯(cuò),則將所述目標(biāo)對(duì)象所對(duì)應(yīng)的物理寄存器標(biāo)識(shí)恢復(fù)為修改前的物 理寄存器的標(biāo)識(shí)。
4.根據(jù)權(quán)利要求1所述的方法,其特征在于,所述將所述目標(biāo)對(duì)象所對(duì)應(yīng)的物理寄存 器標(biāo)識(shí)修改為源對(duì)象所對(duì)應(yīng)的物理寄存器標(biāo)識(shí)之后,包括: 生成重命名隊(duì)列,所述重命名隊(duì)列包括至少一個(gè)重命名項(xiàng),所述重命名項(xiàng)包括:是否有 效,是否跳轉(zhuǎn),目標(biāo)對(duì)象,修改前目標(biāo)對(duì)象對(duì)應(yīng)的物理寄存器標(biāo)識(shí),修改后目標(biāo)對(duì)象對(duì)應(yīng)的 物理寄存器標(biāo)識(shí)。
5.根據(jù)權(quán)利要求4所述的方法,其特征在于,所述生成重命名隊(duì)列之后,包括: 根據(jù)重命名隊(duì)列對(duì)物理寄存器釋放進(jìn)行釋放。
6.根據(jù)所述權(quán)利要求5所述的方法,其特征在于,所述根據(jù)重命名隊(duì)列對(duì)物理寄存器 進(jìn)行釋放,包括: 在所述重命名隊(duì)列的重命名項(xiàng)中獲取一個(gè)待釋放物理寄存器標(biāo)識(shí),所述待釋放物理寄 存器標(biāo)識(shí)為所述重命名項(xiàng)中的修改前目標(biāo)對(duì)象對(duì)應(yīng)的物理寄存器標(biāo)識(shí); 將所述待釋放物理寄存器標(biāo)識(shí)與所有架構(gòu)寄存器對(duì)應(yīng)的物理寄存器標(biāo)識(shí)進(jìn)行匹配; 若所述所有架構(gòu)寄存器對(duì)應(yīng)的物理寄存器標(biāo)識(shí)不包含所述待釋放物理寄存器標(biāo)識(shí),則 將所述待釋放物理寄存器標(biāo)識(shí)與未進(jìn)行獲取處理的重命名項(xiàng)中的修改前目標(biāo)對(duì)象對(duì)應(yīng)的 物理寄存器標(biāo)識(shí)進(jìn)行匹配; 若所述未進(jìn)行獲取處理的重命名項(xiàng)中的修改前目標(biāo)對(duì)象對(duì)應(yīng)的物理寄存器標(biāo)識(shí)中不 包含所述待釋放物理寄存器標(biāo)識(shí),則將所述待釋放物理寄存器標(biāo)識(shí)對(duì)應(yīng)的物理寄存器釋 放。
7.根據(jù)權(quán)利要求6所述的方法,其特征在于,所述方法還包括: 若所述所有架構(gòu)寄存器對(duì)應(yīng)的物理寄存器標(biāo)識(shí)包含所述待釋放物理寄存器標(biāo)識(shí),則不 將所述待釋放物理寄存器標(biāo)識(shí)對(duì)應(yīng)的物理寄存器釋放。
8. 根據(jù)權(quán)利要求6所述的方法,其特征在于,所述方法還包括: 若所述未進(jìn)行釋放處理的重命名項(xiàng)中的修改前目標(biāo)對(duì)象對(duì)應(yīng)的物理寄存器標(biāo)識(shí)中包 含所述待釋放物理寄存器標(biāo)識(shí),則不將所述待釋放物理寄存器標(biāo)識(shí)對(duì)應(yīng)的物理寄存器釋 放。
9.根據(jù)權(quán)利要求6所述的方法,其特征在于,所述在所述重命名隊(duì)列的重命名項(xiàng)中獲 取一個(gè)待釋放物理寄存器標(biāo)識(shí),包括: 生成確認(rèn)指針; 按照預(yù)設(shè)的順序?qū)⑺龃_認(rèn)指針指向所述重命名隊(duì)列的重命名項(xiàng)中的預(yù)定項(xiàng); 在所述預(yù)定項(xiàng)中獲取修改前目標(biāo)對(duì)象對(duì)應(yīng)的物理寄存器標(biāo)識(shí)作為待釋放物理寄存器 標(biāo)識(shí),以便對(duì)所述預(yù)定項(xiàng)的中獲取的所述待釋放物理寄存器標(biāo)識(shí)對(duì)應(yīng)的物理寄存器進(jìn)行釋 放。
10. -種處理器,用于實(shí)現(xiàn)指令處理,其特征在于,包括: 獲取單元,用于獲取輸入指令并讀取指令內(nèi)容; 查找單元,用于當(dāng)所述獲取單元獲取的指令包含第一操作指令時(shí),查找所述第一操作 指令的目標(biāo)對(duì)象和源對(duì)象; 修改單元,用于將所述查找單元查找的目標(biāo)對(duì)象所對(duì)應(yīng)的物理寄存器標(biāo)識(shí)修改為源對(duì) 象所對(duì)應(yīng)的物理寄存器標(biāo)識(shí)。
11. 根據(jù)權(quán)利要求10所述的處理器,其特征在于,所述查找單元中的第一操作指令為 寄存器間的MOV指令。
12. 根據(jù)權(quán)利要求11所述的處理器,其特征在于,所述裝置還包括: 跳轉(zhuǎn)單元,用于執(zhí)行第二操作指令,判斷執(zhí)行結(jié)果,所述第二操作指令為跳轉(zhuǎn)指令; 恢復(fù)單元,用于當(dāng)所述跳轉(zhuǎn)單元的執(zhí)行結(jié)果出錯(cuò)時(shí),將所述目標(biāo)對(duì)象所對(duì)應(yīng)的物理寄 存器標(biāo)識(shí)恢復(fù)為修改前的物理寄存器的標(biāo)識(shí)。
13. 根據(jù)權(quán)利要求10所述的處理器,其特征在于,所述裝置還包括: 生成單元,用于生成重命名隊(duì)列;所述重命名隊(duì)列包括至少一個(gè)重命名項(xiàng),所述重命名 項(xiàng)包括:是否有效,是否跳轉(zhuǎn),目標(biāo)對(duì)象,修改前目標(biāo)對(duì)象對(duì)應(yīng)的物理寄存器標(biāo)識(shí),修改后目 標(biāo)對(duì)象對(duì)應(yīng)的物理寄存器標(biāo)識(shí)。
14. 根據(jù)權(quán)利要求13所述的處理器,其特征在于,所述裝置還包括: 釋放單元,用于根據(jù)生成單元生成的重命名隊(duì)列對(duì)物理寄存器釋放進(jìn)行釋放。
15. 根據(jù)所述權(quán)利要求14所述的處理器,其特征在于,所述釋放單元包括: 獲取子單元,用于在所述重命名隊(duì)列的重命名項(xiàng)中獲取一個(gè)待釋放物理寄存器標(biāo)識(shí), 所述待釋放物理寄存器標(biāo)識(shí)為所述重命名項(xiàng)中的修改前目標(biāo)對(duì)象對(duì)應(yīng)的物理寄存器標(biāo) 識(shí); 第一匹配子單元,用于將所述獲取子單元獲取的待釋放物理寄存器標(biāo)識(shí)與所有架構(gòu)寄 存器對(duì)應(yīng)的物理寄存器標(biāo)識(shí)進(jìn)行匹配; 第二匹配子單元,用于所述第一匹配子單元的匹配結(jié)果中,當(dāng)所有架構(gòu)寄存器對(duì)應(yīng)的 物理寄存器標(biāo)識(shí)不包含所述待釋放物理寄存器標(biāo)識(shí)的情況下,將所述待釋放物理寄存器標(biāo) 識(shí)與未進(jìn)行釋放處理的重命名項(xiàng)中的修改前目標(biāo)對(duì)象對(duì)應(yīng)的物理寄存器標(biāo)識(shí)進(jìn)行匹配; 釋放子單元,用于所述第二匹配子單元的匹配結(jié)果中,在所述未進(jìn)行釋放處理的重命 名項(xiàng)中的修改前目標(biāo)對(duì)象對(duì)應(yīng)的物理寄存器標(biāo)識(shí)中不包含所述待釋放物理寄存器標(biāo)識(shí)情 況下,將所述待釋放物理寄存器標(biāo)識(shí)對(duì)應(yīng)的物理寄存器釋放。
16. 根據(jù)權(quán)利要求15所述的處理器,其特征在于,所述釋放子單元還用于: 所述第一匹配子單元的匹配結(jié)果中,當(dāng)所有架構(gòu)寄存器對(duì)應(yīng)的物理寄存器標(biāo)識(shí)包含所 述待釋放物理寄存器標(biāo)識(shí)的情況下,則不將所述待釋放物理寄存器標(biāo)識(shí)對(duì)應(yīng)的物理寄存器 釋放。
17. 根據(jù)權(quán)利要求15所述的處理器,其特征在于,所述釋放子單元還用于: 所述第二匹配子單元的匹配結(jié)果中,當(dāng)所述未進(jìn)行釋放處理的重命名項(xiàng)中的修改前目 標(biāo)對(duì)象對(duì)應(yīng)的物理寄存器標(biāo)識(shí)中包含所述待釋放物理寄存器標(biāo)識(shí)的情況下,不將所述待釋 放物理寄存器標(biāo)識(shí)對(duì)應(yīng)的物理寄存器釋放。
18.根據(jù)權(quán)利要求15所述的處理器,其特征在于,所述獲取子單元包括: 生成模塊,用于生成確認(rèn)指針; 指向模塊,用于按照預(yù)設(shè)的順序?qū)⑺錾赡K生成的確認(rèn)指針指向所述重命名隊(duì)列 的重命名項(xiàng)中的預(yù)定項(xiàng); 獲取模塊,用于在所述指向模塊指向的預(yù)定項(xiàng)中獲取修改前目標(biāo)對(duì)象對(duì)應(yīng)的物理寄存 器標(biāo)識(shí)作為待釋放物理寄存器標(biāo)識(shí),以便對(duì)所述預(yù)定項(xiàng)的中獲取的所述待釋放物理寄存器 標(biāo)識(shí)對(duì)應(yīng)的物理寄存器進(jìn)行釋放。
【文檔編號(hào)】G06F9/44GK104516726SQ201310449617
【公開(kāi)日】2015年4月15日 申請(qǐng)日期:2013年9月27日 優(yōu)先權(quán)日:2013年9月27日
【發(fā)明者】劉華平 申請(qǐng)人:聯(lián)想(北京)有限公司