無需執(zhí)行的特殊情況寄存器更新的制作方法
【專利摘要】本發(fā)明涉及無需執(zhí)行的特殊情況寄存器更新。一種更改計(jì)算設(shè)備中的邏輯地址的關(guān)聯(lián)值的方法。所述方法包括在指令解碼器處接收指令,所述指令包括表示為邏輯值的目標(biāo)寄存器;在指令解碼器處確定所述指令的結(jié)果是將所述目標(biāo)寄存器設(shè)置為常數(shù)值,所述目標(biāo)寄存器位于與執(zhí)行單元關(guān)聯(lián)的物理寄存器文件中;以及在寄存器映射器中,將所述邏輯地址映射到由專用寄存器標(biāo)簽表示的位置。
【專利說明】無需執(zhí)行的特殊情況寄存器更新
【技術(shù)領(lǐng)域】
[0001]本發(fā)明一般地涉及更新寄存器,更具體地說,涉及在不需要執(zhí)行單元處理的情況下更新該執(zhí)行單元使用的寄存器。
【背景技術(shù)】
[0002]現(xiàn)代計(jì)算機(jī)中的處理涉及在其根源處使用執(zhí)行單元操縱數(shù)據(jù)。執(zhí)行單元可具有專門分配的寄存器,它可以從這些寄存器接收待操縱的操作數(shù)(源)并將操縱結(jié)果(目標(biāo))存儲(chǔ)到這些寄存器中。例如,假設(shè)執(zhí)行單元需要將兩個(gè)值相加以產(chǎn)生一個(gè)結(jié)果。該操縱可用符號(hào)表示為{A=B+C}的形式。為了正確運(yùn)算,需要從分配給執(zhí)行單元的寄存器將B和C的值放入執(zhí)行單元。此外,執(zhí)行單元需要了解將結(jié)果存儲(chǔ)在何處。為了執(zhí)行這些操作,使用寄存器映射將邏輯地址(例如,A、B、C)轉(zhuǎn)換為標(biāo)識(shí)寄存器之一的物理地址。
[0003]雖然計(jì)算系統(tǒng)中的內(nèi)存變得小很多,而且便宜很多,但是可分配給特定功能單元的內(nèi)存量(例如,寄存器文件的大小)仍受限制。也就是說,一般只有少量寄存器被分配給特定執(zhí)行單元。因此,有效地使用這些寄存器非常重要。
【發(fā)明內(nèi)容】
[0004]一個(gè)實(shí)施例涉及一種更改計(jì)算設(shè)備中的邏輯地址的關(guān)聯(lián)值的計(jì)算機(jī)程序產(chǎn)品,所述計(jì)算設(shè)備包括指令解碼器、寄存器映射器、執(zhí)行單元以及與所述執(zhí)行單元關(guān)聯(lián)的物理寄存器文件。所述計(jì)算機(jī)程序產(chǎn)品包括可被處理電路讀取并存儲(chǔ)指令的有形存儲(chǔ)介質(zhì),所述指令被所述處理電路執(zhí)行以執(zhí)行一種方法。所述方法包括:在指令解碼器處接收指令,所述指令包括表達(dá)為邏輯值的目標(biāo)寄存器;在指令解碼器處確定所述指令的結(jié)果是將所述目標(biāo)寄存器設(shè)置為常數(shù)值,所述目標(biāo)寄存器位于與執(zhí)行單元關(guān)聯(lián)的物理寄存器文件中;以及在寄存器映射器中,將所述邏輯地址映射到由專用寄存器標(biāo)簽(special register tag)表示的位置。
[0005]另一實(shí)施例涉及一種更改計(jì)算設(shè)備中的邏輯地址的關(guān)聯(lián)值的方法,所述計(jì)算設(shè)備包括指令解碼器、寄存器映射器、執(zhí)行單元以及與所述執(zhí)行單元關(guān)聯(lián)的物理寄存器文件。該實(shí)施例的方法包括:在指令解碼器處接收指令,所述指令包括表達(dá)為邏輯值的目標(biāo)寄存器;在指令解碼器處確定所述指令的結(jié)果是將所述目標(biāo)寄存器設(shè)置為常數(shù)值,所述目標(biāo)寄存器位于與執(zhí)行單元關(guān)聯(lián)的物理寄存器文件中;以及在寄存器映射器中,將所述邏輯地址映射到由專用寄存器標(biāo)簽表示的位置。
[0006]另一實(shí)施例涉及一種包括執(zhí)行單元以及與所述執(zhí)行單元關(guān)聯(lián)的物理寄存器文件的系統(tǒng)。所述系統(tǒng)還包括接收指令的指令解碼器。所述指令包括表達(dá)為邏輯值的目標(biāo)寄存器,以及所述指令解碼器包括被配置為確定所述指令的結(jié)果是將所述目標(biāo)寄存器設(shè)置為常數(shù)值的邏輯。所述系統(tǒng)還包括將所述目標(biāo)寄存器映射到由專用寄存器標(biāo)簽表示的位置的寄存器映射器。
[0007]通過本發(fā)明的技術(shù),可以實(shí)現(xiàn)其它特征和優(yōu)點(diǎn)。其它實(shí)施例和方面在此詳細(xì)地進(jìn)行描述并且被視為要求保護(hù)的發(fā)明的一部分。為了更好地理解本發(fā)明的優(yōu)點(diǎn)和特征,請(qǐng)參看說明書和附圖。
【專利附圖】
【附圖說明】
[0008]在本說明書結(jié)尾處的權(quán)利要求中專門指出和明確要求保護(hù)被視為實(shí)施例的主題。通過結(jié)合附圖閱讀下面的【具體實(shí)施方式】,各實(shí)施例的上述及其它特征和優(yōu)點(diǎn)將變得顯而易見,這些附圖是:
[0009]圖1示出根據(jù)一個(gè)實(shí)施例的系統(tǒng)的功能框圖;
[0010]圖2示出根據(jù)一個(gè)實(shí)施例的流程圖;
[0011]圖3示出根據(jù)一個(gè)實(shí)施例的物理寄存器文件的功能框圖;
[0012]圖4示出根據(jù)一個(gè)實(shí)施例的流程圖;以及
[0013]圖5示出根據(jù)一個(gè)實(shí)施例的計(jì)算機(jī)程序產(chǎn)品。
【具體實(shí)施方式】
[0014]現(xiàn)在參考圖1,示出了其中可實(shí)現(xiàn)此處公開的實(shí)施例的系統(tǒng)100的數(shù)據(jù)流示意圖。系統(tǒng)100例如可以是計(jì)算設(shè)備的中央處理單元的一部分。根據(jù)此處公開的實(shí)施例,描述了一種可在沒有執(zhí)行單元102的操作的情況下更新寄存器的方法/系統(tǒng)。在圖1所示的實(shí)施例中,系統(tǒng)100包括完成邏輯120,該邏輯如本領(lǐng)域的技術(shù)人員理解的那樣處理已完成指令并在指令完成時(shí)進(jìn)入該邏輯。如下面進(jìn)一步描述的,根據(jù)此處公開的一個(gè)或多個(gè)實(shí)施例的操作可允許根據(jù)特殊情況,在發(fā)出隊(duì)列104或執(zhí)行單元102不執(zhí)行任何處理的情況下更新寄存器值。因此,可以提高系統(tǒng)100的處理速度,因?yàn)樵试S其它指令更快地訪問發(fā)出隊(duì)列104和執(zhí)行單元102。此外,此處公開的實(shí)施例還可以允許提高被分配給執(zhí)行單元102的物理寄存器文件106的使用率。
[0015]首先在傳統(tǒng)操作的上下文中描述系統(tǒng)100的操作,然后描述根據(jù)此處公開的實(shí)施例的系統(tǒng)100與傳統(tǒng)操作之間的差別。系統(tǒng)100包括指令高速緩存108,用于存儲(chǔ)一個(gè)或多個(gè)最終將被執(zhí)行單元102執(zhí)行的指令。系統(tǒng)100還包括取指邏輯110,該邏輯被配置為從指令高速緩存108中取回指令。所述指令由取指邏輯110提供給指令解碼器112。取指邏輯110還可將一指令提供給指令解碼器112。如圖所示,指令解碼器112包括特殊情況子方框113,其將在下面更詳細(xì)地進(jìn)行描述。
[0016]指令解碼器112被配置為確定執(zhí)行單元102將采取何種“動(dòng)作”以滿足指令。指令解碼器112還被配置為確定將需要被執(zhí)行單元102使用的邏輯資源(此處也稱為“邏輯地址”)。
[0017]例如考慮指令XR R1,R1。在此情況下,邏輯地址(Rl)與其自身進(jìn)行“異或”運(yùn)算。此運(yùn)算的結(jié)果導(dǎo)致Rl被設(shè)置為0,并且條件碼值為O。在這種情況下,源(邏輯地址Rl)和目標(biāo)(仍是Rl)被提供給寄存器映射器114。寄存器映射器114將邏輯地址轉(zhuǎn)換為用于尋址到物理寄存器文件106中的特定位置的物理(PREG)地址,然后在需要時(shí)將指令的條件碼結(jié)果映射到新的寄存器位置。此外,寄存器映射器114為目標(biāo)分配位置(該目標(biāo)位置可以與源位置相同或不同,具體取決于寄存器映射的配置方式)。將理解,寄存器映射器114的操作可以包括動(dòng)態(tài)地分配、提交和取回映射,如本領(lǐng)域的技術(shù)人員將理解的。[0018]然后將來自指令解碼器112的信息連同物理寄存器文件106中的已映射物理地址一起提供給發(fā)出隊(duì)列104以便執(zhí)行。發(fā)出隊(duì)列104可能需要解決任何依賴關(guān)系(無序設(shè)計(jì)),因此,系統(tǒng)還可以包括條件碼映射器115。本領(lǐng)域的技術(shù)人員理解條件碼映射器115的操作,本文將不進(jìn)一步公開。解決依賴關(guān)系(如果存在)之后,發(fā)出隊(duì)列104將動(dòng)作以及源和目標(biāo)的物理地址提供給執(zhí)行單元102。執(zhí)行單元102然后將Rl的物理地址提供給物理寄存器文件106,該物理寄存器文件將該位置中存儲(chǔ)的值返回給執(zhí)行單元102。執(zhí)行單元102然后執(zhí)行操作并將結(jié)果寫回目標(biāo)位置并在需要時(shí)更新條件碼。
[0019]從上面的描述將顯而易見的是,對(duì)邏輯寄存器位置(由指令識(shí)別)的正常更新將產(chǎn)生進(jìn)入物理寄存器文件106的新映射,占用發(fā)出隊(duì)列104的位置,發(fā)送請(qǐng)求到執(zhí)行單元102并最終將執(zhí)行結(jié)果寫回物理寄存器文件106。
[0020]存在這樣一些情況:其中可從指令(例如,由指令解碼器112的特殊情況子方框113)自身確定操作結(jié)果只是將常數(shù)(例如“O”)寫入到結(jié)果位置。在這些情況下,根據(jù)一個(gè)實(shí)施例,不更新物理寄存器文件106,而是在寄存器映射器114中更改特殊邏輯地址(例如,針對(duì)上述實(shí)例中的Rl)的映射,以使其映射到物理寄存器文件106中存儲(chǔ)該常數(shù)的值的特定位置。在這些情況下,對(duì)發(fā)出隊(duì)列104和執(zhí)行單元102的使用可以減少,從而可增加系統(tǒng)100的性能??赏ㄟ^特殊情況子方框113做出常數(shù)被分配給邏輯地址的判定。子方框113例如可以識(shí)別寫立即型指令(例如,load half immediate(32位寄存器){LH1R1, Immediate} >load half immediate (64位寄存器){LGH1R1, Immediate},其中典型的立即數(shù)值被視為小于15)其中值與其自身進(jìn)行“異或”(例如,{XR, Rl, R1}或{XGR Rl, R1}的情況。其它實(shí)例例如包括形式為{LA R1,D2(B2,X2)的加載地址指令,其中B2=X2=0,并且位移值(D2)為常數(shù),其中典型值被視為小于15(LA R1,D2(B2,X2))。在加載地址(LA)指令中,將寄存器Rl從基址寄存器(B2)加變址寄存器(X2)加載到位移地址。如果B2和X2的寄存器號(hào)為0,則添加多個(gè)0,而非寄存器O的內(nèi)容。其它指令包括一組帶有相等的操作數(shù)(例如,SR Rl, R2或SGR Rl, R2)減法指令和一組加載立即數(shù)指令。
[0021]示出了一個(gè)實(shí)例。再次考慮指令為{XR,R1,R1}的情況。此運(yùn)算的結(jié)果非常簡(jiǎn)單地將“O”值分配給Rl的所有位并將條件碼設(shè)置為O。當(dāng)根據(jù)上面的描述操作系統(tǒng)時(shí),執(zhí)行單元102必須從物理寄存器文件106取回R1,執(zhí)行“異或”功能并將結(jié)果(所有的O)寫入目標(biāo)位置。相比之下,在一個(gè)實(shí)施例中,假設(shè)物理寄存器文件106中的一個(gè)特定寄存器被分配“O”值且無法被更改。每當(dāng)為地址(例如,R1、R2等)分配“O”時(shí),這可通過簡(jiǎn)單地在地址映射器114中將該邏輯地址的映射更改為指向物理寄存器文件106中全部包含O的特定寄存器來表示。在這種情況下,所有這些邏輯地址可被設(shè)置為0,但是不對(duì)物理寄存器文件106執(zhí)行任何寫入操作來實(shí)現(xiàn)此目的。此外,由于多個(gè)邏輯地址被映射到特定位置,因此在物理寄存器文件106中釋放空間,這樣,可將空間用于容納更多數(shù)據(jù)(多于空間必須針對(duì)每個(gè)被分配“O”的邏輯地址存儲(chǔ)單獨(dú)的“O”數(shù)據(jù)值的情況)。當(dāng)寄存器Rl用作后續(xù)指令的操作數(shù)之一時(shí),處理以正常方式執(zhí)行并且從源的邏輯地址映射到的特定位置取回“O”值。該實(shí)施例可擴(kuò)展為提前映射除了只是“O”以外的目標(biāo)值。在這種情況下,物理寄存器文件106可以包括若干專用寄存器,其中每個(gè)寄存器被分配不同的常數(shù)。
[0022]圖2是示出根據(jù)剛才所述的實(shí)施例的方法的流程圖。在方框202,指令解碼器112通常(具地體說是特殊情況子方框113)確定特定指令只是將特定邏輯地址分配給常數(shù)。例如可通過獲取包含此類結(jié)果的條件列表來實(shí)現(xiàn)此目的。此類條件的部分列表在上面已給出,但是本領(lǐng)域技術(shù)人員將理解,其它條件也可具有相同的結(jié)果。
[0023]在方框204,寄存器映射器114將邏輯地址(例如,Rl)映射到物理寄存器文件106中已分配到常數(shù)值的物理寄存器位置。此類分配在此應(yīng)稱為“專用寄存器標(biāo)簽”。當(dāng)然,如下面示出的,專用寄存器標(biāo)簽還可以指未包含在物理寄存器文件106中的地址。
[0024]在方框206,接收包括含有專用寄存器標(biāo)簽的邏輯地址(例如,上面實(shí)例中的Rl)的后續(xù)指令。該邏輯地址在方塊208被寄存器映射器114轉(zhuǎn)換為源地址,該源地址識(shí)別物理寄存器文件106中包括作為上述指令結(jié)果的常數(shù)(例如,O)的位置。該位置中存儲(chǔ)的常數(shù)值然后在方框210被物理寄存器文件106提供給執(zhí)行單元102。
[0025]另一實(shí)施例可在不需要為物理寄存器文件中的任何寄存器實(shí)際分配特定值的情況下,實(shí)現(xiàn)基本相同的結(jié)果。在這種情況下,寄存器映射器114將特殊映射分配給未包含在物理寄存器文件106中的位置。如上所述,此類特殊映射在此還被稱為專用寄存器標(biāo)簽。在這種情況下,該專用寄存器標(biāo)簽實(shí)際可以是數(shù)據(jù)值。
[0026]再次參考圖1,在該實(shí)施例中,指令解碼器112的特殊情況子方框113確定操作的結(jié)果是將常數(shù)寫入特定目標(biāo)(例如,諸如{XR Rl1RlI之類的指令)。此類確定被提供給寄存器映射器114,寄存器映射器114然后將專用寄存器標(biāo)簽分配給目標(biāo)(XI)。在該實(shí)施例中,專用寄存器標(biāo)簽可以是常數(shù)自身(例如“0”),也可以是不包含在物理寄存器文件106內(nèi)的可從中確定常數(shù)的地址。當(dāng)目標(biāo)在以后變?yōu)樵吹刂窌r(shí),映射器114將專用寄存器標(biāo)簽而非指針提供給物理寄存器文件中的位置。
[0027]圖3是一個(gè)實(shí)例的邏輯表示,該實(shí)例涉及系統(tǒng)如何通過既可以是常數(shù)值,也可表示為不在物理寄存器文件106中的地址的專用寄存器標(biāo)簽執(zhí)行操作。在圖3中,物理寄存器文件106中的實(shí)際寄存器由標(biāo)號(hào)106p示出。實(shí)際寄存器106p可以包括從I到η個(gè)項(xiàng)(在圖3中表示為項(xiàng)106 (O)至106(η))。盡管并非作為限制,而是僅作為示意的目的,但是在下面的描述中,應(yīng)假設(shè)邏輯寄存器文件106包括80個(gè)項(xiàng)(例如,106(0)至106(79))。在該實(shí)例中,假設(shè)專用寄存器標(biāo)簽等于實(shí)際寄存器106ρ中的項(xiàng)數(shù)(80)加上特定常數(shù)。因此,例如,如果該常數(shù)為“0”,則專用寄存器標(biāo)簽的值將為80 ;如果常數(shù)為“5”,則專用寄存器標(biāo)簽的值將為85。
[0028]在該實(shí)例中,寄存器文件106被示為包括散列函數(shù)302、解碼器304和實(shí)現(xiàn)為多路復(fù)用器的輸出選擇器306。在圖3中,輸出選擇器306包括第一輸入308和第二輸入310并提供被提供給執(zhí)行單元102的輸出312。在執(zhí)行時(shí),執(zhí)行單元102將源地址300提供給寄存器文件106,該源地址300被解碼器304、實(shí)際寄存器106ρ和散列函數(shù)302所接收。如果源地址300在實(shí)際寄存器的范圍內(nèi),則將特定寄存器中的值提供給輸出選擇器306。如果不是,則不提供任何值,提供O值或提供某一其它值。無論如何,源地址還由散列函數(shù)302進(jìn)行處理以將輸入提供給輸出選擇器306。在一個(gè)實(shí)施例中,這樣形成散列選擇器302:它將屏蔽掉除了地址的特定數(shù)量η (例如4)的低階位以外的所有位。例如可通過以下方式實(shí)現(xiàn)此操作:簡(jiǎn)單地將傳輸?shù)刂?00 (假設(shè)為并行總線)的線路的低階位作為可選擇輸入端之一的低階位連接到將該輸入端的所有其它位連接到O的輸出選擇器306,如圖3所示。解碼器判定地址是否特殊(例如,80或更大),基于此判定,使輸出選擇器提供寄存器值或散列后的值。[0029]考慮源地址300的值為85的情況。在這種情況下,第二輸入310的低階位310a、310b、310c和310d將是0101 (前導(dǎo)位全部為O)。解碼器304將確定該地址是專用寄存器標(biāo)簽(例如,其值為80或更大)并使輸出選擇器36傳遞第二輸入310作為輸入312。另一方面,如果源地址300小于80,則將適當(dāng)?shù)膶?shí)際寄存器(例如,106(0)...106(n)之一)提供給輸出選擇器306并進(jìn)行傳遞以作為輸出312。
[0030]圖4是示出根據(jù)剛才所述的實(shí)施例的方法的流程圖。在方框402,指令解碼器112通常(具體地說是特殊情況子方框113)確定特定指令只是將特定邏輯地址分配給常數(shù)。例如可通過獲取包含此結(jié)果的條件列表來實(shí)現(xiàn)此目的。此類條件的部分列表在上面已給出,但是本領(lǐng)域技術(shù)人員將理解,其它條件也可具有相同的結(jié)果。
[0031]在方框404,寄存器映射器114將邏輯地址(例如,Rl)映射到常數(shù)值或未包含在實(shí)際寄存器109p中的位置。當(dāng)然,所述值可以是從中推導(dǎo)出常數(shù)的值并且也未包含在實(shí)際寄存器中。如上所述,這些映射類型中的任一類型在此均可被稱為“專用寄存器標(biāo)簽”。
[0032]在方框406,接收包括含有專用寄存器標(biāo)簽的邏輯地址(例如,上面實(shí)例中的Rl)的后續(xù)指令。該邏輯地址在方塊408被寄存器映射器114轉(zhuǎn)換為專用寄存器標(biāo)簽。在方框410,專用寄存器標(biāo)簽被轉(zhuǎn)換為常數(shù)值。如上所述,可通過選擇專用寄存器標(biāo)簽的低階位,將專用寄存器標(biāo)簽轉(zhuǎn)換成常數(shù)值。該位置中存儲(chǔ)的常數(shù)值然后在方框412被物理寄存器文件106提供給執(zhí)行單元102。
[0033]所屬【技術(shù)領(lǐng)域】的技術(shù)人員知道,本發(fā)明的一個(gè)或多個(gè)方面可以實(shí)現(xiàn)為系統(tǒng)、方法或計(jì)算機(jī)程序產(chǎn)品。因此,本發(fā)明的一個(gè)或多個(gè)可以具體實(shí)現(xiàn)為以下形式,即:完全的硬件實(shí)施方式、完全的軟件實(shí)施方式(包括固件、駐留軟件、微代碼等),或硬件和軟件方面結(jié)合的實(shí)施方式,這里可以統(tǒng)稱為“電路”、“模塊”或“系統(tǒng)”。此外,在一些實(shí)施例中,本發(fā)明的一個(gè)或多個(gè)方面還可以實(shí)現(xiàn)為在一個(gè)或多個(gè)計(jì)算機(jī)可讀介質(zhì)中的計(jì)算機(jī)程序產(chǎn)品的形式,該計(jì)算機(jī)可讀介質(zhì)中包含計(jì)算機(jī)可讀的程序代碼。
[0034]可以采用一個(gè)或多個(gè)計(jì)算機(jī)可讀介質(zhì)的任意組合。計(jì)算機(jī)可讀介質(zhì)可以是計(jì)算機(jī)可讀存儲(chǔ)介質(zhì)。計(jì)算機(jī)可讀存儲(chǔ)介質(zhì)例如可以是一但不限于一電、磁、光、電磁、紅外線、或半導(dǎo)體的系統(tǒng)、裝置或器件,或者任意以上的組合。計(jì)算機(jī)可讀存儲(chǔ)介質(zhì)的更具體的例子(非窮舉的列表)包括:具有一個(gè)或多個(gè)導(dǎo)線的電連接、便攜式計(jì)算機(jī)盤、硬盤、隨機(jī)存取存儲(chǔ)器(RAM)、只讀存儲(chǔ)器(ROM)、可擦式可編程只讀存儲(chǔ)器(EPR0M或閃存)、光纖、便攜式緊湊盤只讀存儲(chǔ)器(CD-ROM)、光存儲(chǔ)器件、磁存儲(chǔ)器件、或者上述的任意合適的組合。在本文件中,計(jì)算機(jī)可讀存儲(chǔ)介質(zhì)可以是任何包含或存儲(chǔ)程序的有形介質(zhì),該程序可以被指令執(zhí)行系統(tǒng)、裝置或者器件使用或者與其結(jié)合使用。
[0035]現(xiàn)在參考圖5,在一個(gè)實(shí)例中,計(jì)算機(jī)程序產(chǎn)品500例如包括一個(gè)或多個(gè)存儲(chǔ)介質(zhì)502,其中所述介質(zhì)可以是有形的和/或非瞬時(shí)性介質(zhì),上面存儲(chǔ)計(jì)算機(jī)可讀程序代碼裝置或邏輯504以提供和促進(jìn)此處描述的實(shí)施例的一個(gè)或多個(gè)方面。
[0036]創(chuàng)建之后存儲(chǔ)在有形介質(zhì)(包括但不限于電子存儲(chǔ)模塊(RAM)、閃存、光盤(⑶)、DVD、磁帶等)上的程序代碼通常被稱為“計(jì)算機(jī)程序產(chǎn)品”。計(jì)算機(jī)程序產(chǎn)品介質(zhì)通??杀粌?yōu)選在計(jì)算機(jī)系統(tǒng)中的處理電路讀取以便由該處理電路執(zhí)行。此類程序代碼可使用例如匯編指令的編譯器或匯編器創(chuàng)建,當(dāng)執(zhí)行時(shí),此類程序代碼執(zhí)行本發(fā)明的各方面。
[0037]—個(gè)實(shí)施例涉及一種更改計(jì)算設(shè)備中的邏輯地址的關(guān)聯(lián)值的計(jì)算機(jī)程序產(chǎn)品,所述計(jì)算設(shè)備包括指令解碼器、寄存器映射器、執(zhí)行單元以及與所述執(zhí)行單元關(guān)聯(lián)的物理寄存器文件。所述計(jì)算機(jī)程序產(chǎn)品包括可被處理電路讀取并存儲(chǔ)指令的有形存儲(chǔ)介質(zhì),所述指令被所述處理電路執(zhí)行以執(zhí)行一種方法。所述方法包括:在指令解碼器處接收指令,所述指令包括表達(dá)為邏輯值的目標(biāo)寄存器;在指令解碼器處確定所述指令的結(jié)果是將所述目標(biāo)寄存器設(shè)置為常數(shù)值,所述目標(biāo)寄存器位于與執(zhí)行單元關(guān)聯(lián)的物理寄存器文件中;以及在寄存器映射器中,將所述邏輯地址映射到由專用寄存器標(biāo)簽表示的位置。
[0038]在一個(gè)實(shí)施例中,所述計(jì)算機(jī)程序產(chǎn)品還包括使所述方法還包括為所述物理寄存器文件中的所述寄存器中的一個(gè)或多個(gè)分配不可更改的常數(shù)值的指令。在該實(shí)施例中,所述專用寄存器標(biāo)簽等于所述物理寄存器文件中具有與所述常數(shù)值相等的不可更改的常數(shù)值的寄存器的地址。
[0039]在一個(gè)實(shí)施例中,由所述專用寄存器標(biāo)簽表示的位置不包含在所述物理寄存器文件中。
[0040]在所述計(jì)算機(jī)程序產(chǎn)品的一個(gè)實(shí)施例中,所述專用寄存器標(biāo)簽等于所述常數(shù)值或可轉(zhuǎn)換為所述常數(shù)值。
[0041]在一個(gè)實(shí)施例中,所述計(jì)算機(jī)程序產(chǎn)品還包括使所述方法還包括以下操作的指令:接收要求從所述目標(biāo)寄存器取回值的指令;利用散列函數(shù)將所述專用寄存器標(biāo)簽轉(zhuǎn)換為所述常數(shù)值;以及將所述常數(shù)值提供給所述執(zhí)行單元。
[0042]在所述計(jì)算機(jī)程序產(chǎn)品的一個(gè)實(shí)施例中,所述專用寄存器標(biāo)簽的分配與所述執(zhí)行單元無關(guān)。
[0043]在所述計(jì)算機(jī)程序產(chǎn)品的一個(gè)實(shí)施例中,所述系統(tǒng)還包括發(fā)出隊(duì)列并且所述專用寄存器標(biāo)簽的分配與所述發(fā)出隊(duì)列無關(guān)。
[0044]另一實(shí)施例涉及一種更改計(jì)算設(shè)備中的邏輯地址的關(guān)聯(lián)值的方法,所述計(jì)算設(shè)備包括指令解碼器、寄存器映射器、執(zhí)行單元以及與所述執(zhí)行單元關(guān)聯(lián)的物理寄存器文件。該實(shí)施例的方法包括:在指令解碼器處接收指令,所述指令包括表達(dá)為邏輯值的目標(biāo)寄存器;在指令解碼器處確定所述指令的結(jié)果是將所述目標(biāo)寄存器設(shè)置為常數(shù)值,所述目標(biāo)寄存器位于與執(zhí)行單元關(guān)聯(lián)的物理寄存器文件中;以及在寄存器映射器中,將所述邏輯地址映射到由專用寄存器標(biāo)簽表示的位置。
[0045]在一個(gè)實(shí)施例中,所述方法還包括為所述物理寄存器文件中的所述寄存器中的一個(gè)或多個(gè)分配不可更改的常數(shù)值。在該實(shí)施例中,所述專用寄存器標(biāo)簽等于所述物理寄存器文件中具有與所述常數(shù)值相等的不可更改的常數(shù)值的寄存器的地址。
[0046]在所述方法的一個(gè)實(shí)施例中,由所述專用寄存器標(biāo)簽表示的所述位置不包含在所述物理寄存器文件中。
[0047]在所述方法的一個(gè)實(shí)施例中,所述專用寄存器標(biāo)簽等于所述常數(shù)值或可轉(zhuǎn)換為所述常數(shù)值。
[0048]在所述方法的一個(gè)實(shí)施例中,所述方法還包括:接收要求從所述目標(biāo)寄存器取回值的指令;利用散列函數(shù)將所述專用寄存器標(biāo)簽轉(zhuǎn)換為所述常數(shù)值;以及將所述常數(shù)值提供給所述執(zhí)行單元。
[0049]在所述方法的一個(gè)實(shí)施例中,所述專用寄存器標(biāo)簽的分配與所述執(zhí)行單元無關(guān)。
[0050]在所述方法的一個(gè)實(shí)施例中,所述系統(tǒng)還包括發(fā)出隊(duì)列并且所述專用寄存器標(biāo)簽的分配與所述發(fā)出隊(duì)列無關(guān)。
[0051]另一實(shí)施例涉及一種包括執(zhí)行單元以及與所述執(zhí)行單元關(guān)聯(lián)的物理寄存器文件的系統(tǒng)。所述系統(tǒng)還包括接收指令的指令解碼器。所述指令包括表達(dá)為邏輯值的目標(biāo)寄存器,以及所述指令解碼器包括被配置為確定所述指令的結(jié)果是將所述目標(biāo)寄存器設(shè)置為常數(shù)值的邏輯。所述系統(tǒng)還包括將所述目標(biāo)寄存器映射到由專用寄存器標(biāo)簽表示的位置的寄存器映射器。
[0052]在所述系統(tǒng)的一個(gè)實(shí)施例中,為所述物理寄存器文件中的所述寄存器中的一個(gè)或多個(gè)分配不可更改的常數(shù)值,并且所述專用寄存器標(biāo)簽指向所述物理寄存器文件中具有等于所述常數(shù)值的不可更改的常數(shù)值的寄存器。
[0053]在所述系統(tǒng)的一個(gè)實(shí)施例中,所述專用寄存器標(biāo)簽指向不包含在所述物理寄存器文件中的地址。
[0054]在所述系統(tǒng)的一個(gè)實(shí)施例中,所述專用寄存器標(biāo)簽等于所述常數(shù)值或可轉(zhuǎn)換為所述常數(shù)值。
[0055]在所述系統(tǒng)的一個(gè)實(shí)施例中,所述物理寄存器文件被進(jìn)一步配置為利用散列函數(shù)將所述專用寄存器標(biāo)簽轉(zhuǎn)換為所述常數(shù)值;并且在所述指令解碼器接收到包括所述目標(biāo)寄存器的另一指令時(shí),將所述常數(shù)值提供給所述執(zhí)行單元。
[0056]技術(shù)效果和優(yōu)點(diǎn)包括減少將邏輯值設(shè)置為常數(shù)時(shí)所需的執(zhí)行單元操作數(shù)量。
[0057]此處使用的術(shù)語只是為了描述具體實(shí)施例,并非旨在限制各實(shí)施例。如在此使用的那樣,單數(shù)形式“一”、“一個(gè)”和“該”旨在同樣包括復(fù)數(shù)形式,除非上下文明確地另有所指。還將理解,當(dāng)在此說明書中使用時(shí),術(shù)語“包括”和/或“包含”指定存在聲明的特征、整數(shù)、步驟、操作、元素和/或組件,但是并不排除存在或增加一個(gè)或多個(gè)其它特征、整數(shù)、步驟、操作、元素、組件和/或它們的組合。
[0058]以下的權(quán)利要求中的對(duì)應(yīng)結(jié)構(gòu)、材料、操作以及所有功能性限定的裝置或步驟的等同替換,旨在包括任何用于與在權(quán)利要求中具體指出的其它單元相組合地執(zhí)行該功能的結(jié)構(gòu)、材料或操作。所給出的實(shí)施例的描述在于示意和描述,并非是窮盡性的,也并非將實(shí)施例限定到所公開的實(shí)施例。在不偏離實(shí)施例的范圍和精神的情況下,對(duì)于本領(lǐng)域的普通技術(shù)人員而言,許多修改和變化都將是顯而易見的。實(shí)施例的選擇和描述,旨在最好地解釋原理、實(shí)際應(yīng)用,當(dāng)適合于所構(gòu)想的特定應(yīng)用時(shí),可使本【技術(shù)領(lǐng)域】的普通技術(shù)人員理解帶有各種修改的實(shí)施例。
[0059]可以以一種或多種程序設(shè)計(jì)語言的任意組合來編寫用于執(zhí)行實(shí)施例的各方面操作的計(jì)算機(jī)程序代碼,所述程序設(shè)計(jì)語言包括面向?qū)ο蟮某绦蛟O(shè)計(jì)語言一諸如Java、Smalltalk、C++等,還包括常規(guī)的過程式程序設(shè)計(jì)語言一諸如“C”語言或類似的程序設(shè)計(jì)語言。程序代碼可以完全地在用戶計(jì)算機(jī)上執(zhí)行、部分地在用戶計(jì)算機(jī)上執(zhí)行、作為一個(gè)獨(dú)立的軟件包執(zhí)行、部分在用戶計(jì)算機(jī)上部分在遠(yuǎn)程計(jì)算機(jī)上執(zhí)行、或者完全在遠(yuǎn)程計(jì)算機(jī)或服務(wù)器上執(zhí)行。在涉及遠(yuǎn)程計(jì)算機(jī)的情形中,遠(yuǎn)程計(jì)算機(jī)可以通過任意種類的網(wǎng)絡(luò)一包括局域網(wǎng)(LAN)或廣域網(wǎng)(WAN)—連接到用戶計(jì)算機(jī),或者,可以連接到外部計(jì)算機(jī)(例如利用因特網(wǎng)服務(wù)提供商來通過因特網(wǎng)連接)。
[0060]上面參照根據(jù)實(shí)施例的方法、裝置(系統(tǒng))和計(jì)算機(jī)程序產(chǎn)品的流程圖和/或框圖描述了實(shí)施例的各方面。應(yīng)當(dāng)理解,流程圖和/或框圖的每個(gè)方框以及流程圖和/或框圖中各方框的組合,都可以由計(jì)算機(jī)程序指令實(shí)現(xiàn)。這些計(jì)算機(jī)程序指令可以提供給通用計(jì)算機(jī)、專用計(jì)算機(jī)或其它可編程數(shù)據(jù)處理裝置的處理器,從而生產(chǎn)出一種機(jī)器,使得這些計(jì)算機(jī)程序指令在通過計(jì)算機(jī)或其它可編程數(shù)據(jù)處理裝置的處理器執(zhí)行時(shí),產(chǎn)生了實(shí)現(xiàn)流程圖和/或框圖中的一個(gè)或多個(gè)方框中規(guī)定的功能/動(dòng)作的裝置。
[0061]也可以把這些計(jì)算機(jī)程序指令存儲(chǔ)在計(jì)算機(jī)可讀介質(zhì)中,這些指令使得計(jì)算機(jī)、其它可編程數(shù)據(jù)處理裝置、或其它設(shè)備以特定方式工作,從而,存儲(chǔ)在計(jì)算機(jī)可讀介質(zhì)中的指令就產(chǎn)生出包括實(shí)現(xiàn)流程圖和/或框圖中的一個(gè)或多個(gè)方框中規(guī)定的功能/動(dòng)作的指令的制造品。
[0062]也可以把計(jì)算機(jī)程序指令加載到計(jì)算機(jī)、其它可編程數(shù)據(jù)處理裝置、或其它設(shè)備上,使得在計(jì)算機(jī)、其它可編程數(shù)據(jù)處理裝置或其它設(shè)備上執(zhí)行一系列操作步驟,以產(chǎn)生計(jì)算機(jī)實(shí)現(xiàn)的過程,從而使得在計(jì)算機(jī)或其它可編程裝置上執(zhí)行的指令能夠提供實(shí)現(xiàn)流程圖和/或框圖中的一個(gè)或多個(gè)方框中規(guī)定的功能/動(dòng)作的過程。
[0063]附圖中的流程圖和框圖顯示了根據(jù)多個(gè)實(shí)施例的系統(tǒng)、方法和計(jì)算機(jī)程序產(chǎn)品的可能實(shí)現(xiàn)的體系架構(gòu)、功能和操作。在這點(diǎn)上,流程圖或框圖中的每個(gè)方框可以代表一個(gè)模塊、程序段或代碼的一部分,所述模塊、程序段或代碼的一部分包含一個(gè)或多個(gè)用于實(shí)現(xiàn)規(guī)定的邏輯功能的可執(zhí)行指令。也應(yīng)當(dāng)注意,在有些作為替換的實(shí)現(xiàn)中,方框中所標(biāo)注的功能也可以以不同于附圖中所標(biāo)注的順序發(fā)生。例如,兩個(gè)連續(xù)的方框?qū)嶋H上可以基本并行地執(zhí)行,它們有時(shí)也可以按相反的順序執(zhí)行,這依所涉及的功能而定。也要注意的是,框圖和/或流程圖中的每個(gè)方框、以及框圖和/或流程圖中的方框的組合,可以用執(zhí)行規(guī)定的功能或動(dòng)作的專用的基于硬件的系統(tǒng)來實(shí)現(xiàn),或者可以用專用硬件與計(jì)算機(jī)指令的組合來實(shí)現(xiàn)。
【權(quán)利要求】
1.一種更改計(jì)算設(shè)備中的邏輯地址的關(guān)聯(lián)值的計(jì)算機(jī)系統(tǒng),所述計(jì)算機(jī)系統(tǒng)包括:用于在指令解碼器處接收指令的部件,所述指令包括表達(dá)為邏輯值的目標(biāo)寄存器;用于在指令解碼器處確定所述指令的結(jié)果是將所述目標(biāo)寄存器設(shè)置為常數(shù)值的部件,所述目標(biāo)寄存器位于與執(zhí)行單元關(guān)聯(lián)的物理寄存器文件中;以及用于在寄存器映射器中,將所述邏輯地址映射到由專用寄存器標(biāo)簽表示的位置的部件。
2.根據(jù)權(quán)利要求1的計(jì)算機(jī)系統(tǒng),其中所述系統(tǒng)還包括:用于為所述物理寄存器文件中的所述寄存器中的一個(gè)或多個(gè)分配不可更改的常數(shù)值的部件;以及其中所述專用寄存器標(biāo)簽等于所述物理寄存器文件中具有與所述常數(shù)值相等的不可更改的常數(shù)值的寄存器的地址。
3.根據(jù)權(quán)利要求1的計(jì)算機(jī)系統(tǒng),其中由所述專用寄存器標(biāo)簽表示的位置不包含在所述物理寄存器文件中。
4.根據(jù)權(quán)利要求3的計(jì)算機(jī)系統(tǒng),其中所述專用寄存器標(biāo)簽等于所述常數(shù)值或可轉(zhuǎn)換為所述常數(shù)值。
5.根據(jù)權(quán)利要求4的計(jì)算機(jī)系統(tǒng),所述系統(tǒng)還包括:用于接收要求從所述目標(biāo)寄 存器取回值的指令的部件;用于利用散列函數(shù)將所述專用寄存器標(biāo)簽轉(zhuǎn)換為所述常數(shù)值的部件;以及用于將所述常數(shù)值提供給所述執(zhí)行單元的部件。
6.根據(jù)權(quán)利要求1的計(jì)算機(jī)系統(tǒng),其中所述專用寄存器標(biāo)簽的分配與所述執(zhí)行單元無關(guān)。
7.根據(jù)權(quán)利要求6的計(jì)算機(jī)系統(tǒng),其中所述系統(tǒng)還包括發(fā)出隊(duì)列并且所述專用寄存器標(biāo)簽的分配與所述發(fā)出隊(duì)列無關(guān)。
8.一種更改計(jì)算設(shè)備中的邏輯地址的關(guān)聯(lián)值的方法,所述方法包括:在指令解碼器處接收指令,所述指令包括表達(dá)為邏輯值的目標(biāo)寄存器;在指令解碼器處確定所述指令的結(jié)果是將所述目標(biāo)寄存器設(shè)置為常數(shù)值,所述目標(biāo)寄存器位于與執(zhí)行單元關(guān)聯(lián)的物理寄存器文件中;以及在寄存器映射器中,將所述邏輯地址映射到由專用寄存器標(biāo)簽表示的位置。
9.根據(jù)權(quán)利要求8的方法,其中所述方法還包括:為所述物理寄存器文件中的所述寄存器中的一個(gè)或多個(gè)分配不可更改的常數(shù)值;以及其中所述專用寄存器標(biāo)簽等于所述物理寄存器文件中具有與所述常數(shù)值相等的不可更改的常數(shù)值的寄存器的地址。
10.根據(jù)權(quán)利要求8的方法,其中由所述專用寄存器標(biāo)簽表示的位置不包含在所述物理寄存器文件中。
11.根據(jù)權(quán)利要求10的方法,其中所述專用寄存器標(biāo)簽等于所述常數(shù)值或可轉(zhuǎn)換為所述常數(shù)值。
12.根據(jù)權(quán)利要求11的方法,所述方法還包括:接收要求從所述目標(biāo)寄存器取回值的指令;利用散列函數(shù)將所述專用寄存器標(biāo)簽轉(zhuǎn)換為所述常數(shù)值;以及將所述常數(shù)值提供給所述執(zhí)行單元。
13.根據(jù)權(quán)利要求8的方法,其中所述專用寄存器標(biāo)簽的分配與所述執(zhí)行單元無關(guān)。
14.根據(jù)權(quán)利要求13的方法,還包括發(fā)出隊(duì)列并且所述專用寄存器標(biāo)簽的分配與所述發(fā)出隊(duì)列無關(guān)。
15.—種系統(tǒng),包括:執(zhí)行單元;物理寄存器文件,其與所述執(zhí)行單元關(guān)聯(lián);指令解碼器,其接收指令,所述指令包括表達(dá)為邏輯值的目標(biāo)寄存器,所述指令解碼器包括被配置為確定所述指令的結(jié)果是將所述目標(biāo)寄存器設(shè)置為常數(shù)值的邏輯;以及寄存器映射器,其將所述目標(biāo)寄存器映射到由專用寄存器標(biāo)簽表示的位置。
16.根據(jù)權(quán)利要求15的系統(tǒng),其中為所述物理寄存器文件中的所述寄存器中的一個(gè)或多個(gè)分配不可更改的常數(shù)值以及其中所述專用寄存器標(biāo)簽指向所述物理寄存器文件中具有與所述常數(shù)值相等的不可更改的常數(shù)值的寄存器。
17.根據(jù)權(quán)利要求15的系統(tǒng),其中所述專用寄存器標(biāo)簽指向不包含在所述物理寄存器文件中的地址。
18.根據(jù)權(quán)利要求17的系統(tǒng),其中所述專用寄存器標(biāo)簽等于所述常數(shù)值或可轉(zhuǎn)換為所述常數(shù)值。
19.根據(jù)權(quán)利要求18的系統(tǒng),其中所述物理寄存器文件還被配置為利用散列函數(shù)將所述專用寄存器標(biāo)簽轉(zhuǎn)換為所述常數(shù)值,并且在所述指令解碼器接收到包括所述目標(biāo)寄存器的另一指令時(shí),將所述常數(shù)值提供給所述執(zhí)行單元。
【文檔編號(hào)】G06F9/30GK103513959SQ201310231084
【公開日】2014年1月15日 申請(qǐng)日期:2013年6月9日 優(yōu)先權(quán)日:2012年6月15日
【發(fā)明者】G·W·亞歷山大, B·D·巴里克, F·Y·布薩巴, B·C·賈梅伊, E·T·馬利, 岑中龍 申請(qǐng)人:國際商業(yè)機(jī)器公司