直接和嵌套依賴指令的調(diào)度器中重置推測源就緒的方法
【專利摘要】本申請公開了直接和嵌套依賴指令的調(diào)度器中重置推測源就緒的方法。在用于處理多個指令的方法和用于指令處理的設(shè)備中,當(dāng)依賴指令的源的取消計時器和嵌套依賴指令的源的取消計時器期滿并且推測地喚醒所述依賴指令的生產(chǎn)者指令被取消時,同時取消所述依賴指令和所述嵌套依賴指令。
【專利說明】直接和嵌套依賴指令的調(diào)度器中重置推測源就緒的方法
【技術(shù)領(lǐng)域】
[0001]符合示例性實施例的設(shè)備和方法涉及取消指令和重置源就緒狀態(tài),更具體地,涉及將使用取消計時器的生產(chǎn)者指令的直接依賴指令和嵌套依賴指令取消以及將源就緒位重置。
【背景技術(shù)】
[0002]現(xiàn)代微處理器采用了一種指令的推測(speculative)調(diào)度技術(shù)。當(dāng)微處理器的調(diào)度器中的生產(chǎn)者指令(producer instruct1n)由于諸如加載未命中、故障、數(shù)據(jù)沖突等事件而被取消時,針對已被生產(chǎn)者指令推測地喚醒的依賴指令(dependent instruct1n)的“源就緒”(source ready)狀態(tài)需要在用于該指令的調(diào)度器中被重置,以使得這些依賴指令能夠有資格再次被拾取。依賴指令可以是直接或間接(或嵌套)指令。
[0003]在現(xiàn)有技術(shù)的一種方法中,當(dāng)生產(chǎn)者指令被取消時,為了撤銷或重置針對調(diào)度器中依賴指令的“源就緒”狀態(tài),被取消的生產(chǎn)者指令的目的標(biāo)簽與調(diào)度器中所有指令的源標(biāo)簽進(jìn)行比較。如果被取消的生產(chǎn)者指令的目的標(biāo)簽和調(diào)度器中任意指令的源標(biāo)簽之間存在匹配,則調(diào)度器重置調(diào)度器中依賴指令的源就緒狀態(tài)。
[0004]然而,由于需要對調(diào)度器中所有指令的所有源進(jìn)行上述比較,所以比較量巨大,從而消耗了微處理器的時間、功率和資源。
【發(fā)明內(nèi)容】
[0005]為了解決現(xiàn)有技術(shù)在生產(chǎn)者指令被取消時取消依賴指令并在其后重置源就緒狀態(tài)的問題,本發(fā)明構(gòu)思的一個或多個示例性實施例提供了一種簡單、節(jié)約功耗和有時間效率的方法,其用于通過使用來自依賴指令的主生產(chǎn)者指令的單個取消指示來同時取消直接依賴指令和間接或嵌套依賴指令并為依賴指令的重置源就緒狀態(tài)。
[0006]然而,本發(fā)明構(gòu)思不限于本文所闡述的示例性實施例。對于示例性實施例所屬的本領(lǐng)域的普通技術(shù)人員而言,通過參考下面給出的細(xì)節(jié)描述,本發(fā)明構(gòu)思的各個方面將變得顯而易見。
[0007]根據(jù)示例性實施例的一個方面,其提出了一種處理多個指令的方法。所述方法可以包括:由依賴指令的生產(chǎn)者指令推測地喚醒所述依賴指令的源;所述依賴指令推測地喚醒依賴于所述依賴指令的嵌套依賴指令的源;設(shè)置所述依賴指令的源的源就緒位以及設(shè)置所述嵌套依賴指令的源的源就緒位,以表示所述依賴指令的源和所述嵌套依賴指令的源訪問就緒;基于預(yù)期針對所述生產(chǎn)者指令斷言(assert)取消時的取消時間來設(shè)置所述依賴指令的源的取消計時器(cancel timer)以及設(shè)置所述嵌套依賴指令的源的取消計時器;以及如果(i)所述依賴指令的源的取消計時器和所述嵌套依賴指令的源的取消計時器期滿并且(ii)所述生產(chǎn)者指令被取消,則同時取消所述依賴指令和所述嵌套依賴指令。
[0008]當(dāng)所述依賴指令的源的取消計時器和所述嵌套依賴指令的源的取消計時器達(dá)到預(yù)定值時,所述依賴指令的源的取消計時器和所述嵌套依賴指令的源的取消計時器會期滿。
[0009]所述預(yù)定值可以是非O值。
[0010]對所述依賴指令的源的源就緒位和所述嵌套依賴指令的源的源就緒位的重置可以表示所述依賴指令和所述嵌套依賴指令不能夠被拾取,除非所述依賴指令和所述嵌套依賴指令再次被喚醒。這里,所述源就緒位可以在所述依賴指令和所述嵌套依賴指令被同時取消后被重置。
[0011]如果(i)所述依賴指令的源的取消計時器和所述嵌套依賴指令的源的計時器期滿并且(ii)所述生產(chǎn)者指令被取消,則所述依賴指令的源的取消計時器和所述嵌套依賴指令的源的取消計時器也可以被重置。
[0012]所述嵌套依賴指令可以是在所述依賴指令被所述生產(chǎn)者指令推測地喚醒之后的預(yù)定時間被所述依賴指令喚醒的指令,在此情況下,所述依賴指令的源的取消計時器和所述嵌套依賴指令的源的取消計時器基于所述取消時間被設(shè)置為不同值。
[0013]所述生產(chǎn)者指令可以是被推測地拾取的指令。
[0014]預(yù)期針對所述生產(chǎn)者指令斷言所述取消時的取消時間可以基于從所述依賴指令的源被所述生產(chǎn)者指令推測地喚醒的時間到針對所述生產(chǎn)者指令斷言所述取消所預(yù)計的時鐘周期數(shù)。
[0015]根據(jù)本發(fā)明的另一個示例性實施例的一個方面,提供了一種用于指令處理的設(shè)備。所述設(shè)備可以包括:調(diào)度器,其拾取用于調(diào)度執(zhí)行的生產(chǎn)者指令;控制器,其被配置為:由依賴指令的生產(chǎn)者指令推測地喚醒所述依賴指令的源;由所述依賴指令推測地喚醒依賴于所述依賴指令的嵌套依賴指令的源;設(shè)置所述依賴指令的源的源就緒位以及設(shè)置所述嵌套依賴指令的源的源就緒位,以表示所述依賴指令的源和所述嵌套依賴指令的源訪問就緒;基于預(yù)計針對所述生產(chǎn)者指令斷言取消時的取消時間來設(shè)置所述依賴指令的源的取消計時器以及設(shè)置所述嵌套依賴指令的源的取消計時器;以及如果(i)所述依賴指令的源的取消計時器和所述嵌套依賴指令的源的取消計時器期滿并且(ii)所述生產(chǎn)者指令被取消,則同時取消所述依賴指令和所述嵌套依賴指令。
[0016]所述控制器還可以被配置為重置所述依賴指令的源的源就緒位和所述嵌套依賴指令的源的源就緒位,以表示所述依賴指令和所述嵌套依賴指令拾取未就緒,除非所述依賴指令和所述嵌套依賴指令被再次喚醒。
[0017]所述依賴指令的源的源就緒位、所述嵌套依賴指令的源的源就緒位、所述依賴指令的源的取消計時器和所述嵌套依賴指令的源的取消計時器可以被設(shè)置為所述調(diào)度器的條目。
【專利附圖】
【附圖說明】
[0018]通過結(jié)合附圖對示例性實施例的以下描述,上述和/或其它方面將變得顯而易見和更加易于理解,附圖中:
[0019]圖1示出根據(jù)示例性實施例的處理器架構(gòu)的一部分;
[0020]圖2示出根據(jù)示例性實施例的分配有生產(chǎn)者指令和依賴指令的調(diào)度器的條目;
[0021]圖3示出根據(jù)示例性實施例的基于時鐘周期設(shè)置和重置源就緒位和取消計時器的過程。
[0022]圖4示出根據(jù)示例性實施例的指令流水線的示意圖;和
[0023]圖5示出根據(jù)示例性實施例的說明圖5中的指令取消和源重置操作的流程圖。
【具體實施方式】
[0024]本發(fā)明構(gòu)思的優(yōu)點和特征以及實現(xiàn)這些優(yōu)點和特征的方法通過參考下面對示例性實施例的詳細(xì)描述和附圖可以被更容易地理解。然而,本發(fā)明構(gòu)思可以以不同的形式被實現(xiàn)并且不應(yīng)該被解釋為限于本文所闡述的實施例。相反,提供這些實施例使得本公開將是透徹和完整的,并將向本領(lǐng)域的普通技術(shù)人員完全傳達(dá)本發(fā)明構(gòu)思,并且本發(fā)明構(gòu)思將只由所附的權(quán)利限定。在附圖中,為清楚起見,層和區(qū)域的厚度被放大。
[0025]除非另有定義,否則所有用在本文中的技術(shù)和科學(xué)術(shù)語具有與本發(fā)明所屬的【技術(shù)領(lǐng)域】的普通技術(shù)人員通常理解相同的意義。需注意,任意和全部示例,或本文所提供的示例性術(shù)語的使用只是為了更好地闡明本發(fā)明構(gòu)思而不是為了對本發(fā)明構(gòu)思的范圍進(jìn)行限制,除非另有指定。此外,除非另有定義,否則通用字典中定義的所有術(shù)語不會被過度地解釋。
[0026]圖1示出根據(jù)示例性實施例的處理器架構(gòu)的一部分。所述架構(gòu)包括解碼器101、重命名器102、調(diào)度器103和控制器104。根據(jù)示例性實施例,圖1中所示的架構(gòu)可以應(yīng)用于包括多核處理器的各種處理器類型。為了不模糊對示例性實施例的描述,諸如讀取器(fetcher)、緩存、執(zhí)行單元等眾所周知的架構(gòu)沒有在附圖中示出。
[0027]圖1的處理器中,存儲器(未示出)中的指令被讀取器(未示出)讀取至解碼器101。解碼器101將指令解碼成低電平的、詳細(xì)的微操作(micro-ops)。因此,指令流被映射成微操作流。解碼的微操作流被發(fā)送至重命名器102,源和/或目的在重命名器102中被重命名,并接著被發(fā)送至調(diào)度器103以調(diào)度執(zhí)行。微操作通常具有兩個或三個源操作數(shù)和一個或兩個目的操作數(shù)。源操作數(shù)被用來指定包含源數(shù)據(jù)的寄存器,而目的操作數(shù)被用來指定微操作的操作結(jié)果被寫入的寄存器。重命名器102重命名微操作中的源寄存器和/或目的寄存器。寄存器重命名是用于消除數(shù)據(jù)沖突(例如微操作亂序執(zhí)行中的先讀后寫(write-after-read)和先寫后寫(write-after-write)沖突)的一種技術(shù)。調(diào)度器103按照這樣的順利來拾取微操作并調(diào)度微操作的執(zhí)行,該順序可遵循或可不遵循微操作序列的原順序??刂破?04被配置為控制調(diào)度器103的整體操作。盡管控制器104被示出為一個單獨的組件,但是它可以構(gòu)成為調(diào)度器103的一個元件。
[0028]圖2示出根據(jù)示例性實施例的位于用于調(diào)度執(zhí)行的處理器的調(diào)度器中的指令的條目。這里,調(diào)度器可以是前面參考圖1所描述的調(diào)度器103。
[0029]如圖2所示,根據(jù)示例性實施例,生產(chǎn)者指令100、生產(chǎn)者指令101和依賴于生產(chǎn)者指令100和101的依賴指令200位于調(diào)度器103中。雖然圖2僅示出生產(chǎn)者指令100和101,但是基于依賴指令200的若干個源,依賴指令200可以依賴于其它生產(chǎn)者指令,因為依賴指令200的不同的源可以依賴于不同的生產(chǎn)者指令。根據(jù)示例性實施例,當(dāng)依賴指令200位于調(diào)度器103中時,調(diào)度器103為每個依賴指令200的源分配源就緒字段15和取消計時器字段16。源就緒字段15被配置為包含源就緒位,而取消計時器字段被配置為包含取消計時器或取消計時器值。在這個實施例中,在針對依賴指令分配這兩個字段時,源就緒位和取消計時器未被設(shè)置并保持在“O”。然而,如下面所說明,當(dāng)生產(chǎn)者指令推測地喚醒依賴指令時,該源就緒位將被設(shè)置為就緒,即,設(shè)置為“1”,并且,取消計時器將被控制器104設(shè)置為預(yù)定值。
[0030]當(dāng)依賴指令200被生產(chǎn)者指令100和101 (可能還有基于依賴指令200的若干個源的其它的生產(chǎn)者指令,如前面所討論)推測地喚醒并且針對依賴指令200的每個源來說源依賴性被滿足時,控制器104針對調(diào)度器103中的依賴指令的每個源在源就緒字段15中設(shè)置源就緒位。例如,當(dāng)生產(chǎn)者指令100和101推測地喚醒依賴指令200并且針對依賴指令200的每個源滿足源依賴性(可以在不同時間點滿足)時,控制器104將針對每個源的源就緒位設(shè)置為值“I”以表示每個源的源數(shù)據(jù)在若干個周期中將是可用的;否則,針對每個源的源就緒位的值保持在值“O”。當(dāng)針對依賴指令的所有源將源就緒位設(shè)置成值“I”時,依賴指令100被認(rèn)為是準(zhǔn)備好從調(diào)度器103中被拾取以用于執(zhí)行。
[0031]除設(shè)置源就緒位之外,當(dāng)生產(chǎn)者指令100和101推測地喚醒依賴指令200并且對依賴指令200的每個源來說源依賴性被滿足時,控制器104在針對依賴指令200的每個源的取消計時器字段16中設(shè)置取消計時器為預(yù)定時間值。取消計時器被控制器104用來控制依賴指令200的取消定時,并且針對被取消的依賴指令200的每個源重置源就緒位。當(dāng)設(shè)置給取消計時器的預(yù)定時間值已經(jīng)過并且生產(chǎn)者指令100從調(diào)度中被取消時,依賴指令200也被取消,并且用于依賴指令200的每個源的源就緒位和取消計時器被重置,因此依賴指令200可以在以后被再次拾取。這里,根據(jù)示例性實施例,取消計時器的預(yù)定時間可以是針對生產(chǎn)者指令100斷言可能的取消所需的時鐘周期數(shù)。
[0032]一旦針對依賴指令的源設(shè)置源就緒位,則針對依賴于生產(chǎn)者指令100和101的依賴指令200的每個源被設(shè)置成預(yù)定時間值的取消計時器開始計時。如果生產(chǎn)者指令正好在取消計時器期滿時被取消,則依賴指令被取消,并且針對依賴指令的每個源的源就緒位和取消計時器被相應(yīng)地重置。如果生產(chǎn)者指令未被取消并且被調(diào)度執(zhí)行,則取消計時器不會影響依賴指令的調(diào)度。
[0033]在本示例性實施例中,所提到的用于取消依賴指令200的取消計時器被描述為針對調(diào)度器103中的依賴指令200的每個源進(jìn)行設(shè)置。然而,只要取消計時器是為了取消指令的目的而被設(shè)置,就可以不針對指令的每個源設(shè)置取消計時器,相反,可以針對每個指令設(shè)置取消計時器以節(jié)約調(diào)度器103的資源。
[0034]圖3示出根據(jù)示例性實施例的設(shè)置和重置源就緒位的過程。
[0035]這里,生產(chǎn)者指令P1ducer-1和依賴指令位于圖1中所示的處理器的調(diào)度器103中。在該實施例中,假設(shè)依賴指令具有單個源。另外,在該實施例中,根據(jù)示例性實施例,可以基于從推測地喚醒依賴指令的時間點到針對生產(chǎn)者指令Producer-Ι而斷言可能的取消所需的周期數(shù)來設(shè)置針對源的取消計時器。進(jìn)一步地根據(jù)預(yù)定的取消計時器滿期值來設(shè)置取消計時器,預(yù)定的取消計時器滿期值使生產(chǎn)者指令Producer-Ι在取消計時器達(dá)到預(yù)定的取消計時器滿期值時能夠確定被斷言的取消是用于其自身的取消指令。換言之,針對生產(chǎn)者指令的取消計時器在該生產(chǎn)者指令的取消計時器達(dá)到預(yù)定的取消計時器滿期值時期滿。因此,如果針對生產(chǎn)者指令Producer-Ι斷言可能的取消所需的周期數(shù)是N-1個周期,則取消計時器可以被設(shè)為N。例如,如果斷言的可能的取消所需的周期數(shù)是3個周期(SP,N-1個周期),則取消計時器可以被設(shè)為4 (即,N)并且預(yù)定的取消計時器滿期值是“I”。因此,當(dāng)取消計時器達(dá)到預(yù)定的取消計時器滿期值“1”,即,N-1個周期已過并且生產(chǎn)者指令Producer-1被取消時,依賴指令同樣被取消,并且接著針對源的源就緒位被重置。使用前面的示例,如果3個周期(B卩,N-1個周期)已過,并且取消計時器初始被設(shè)置為4 (B卩,N),則達(dá)到預(yù)定的取消計時器滿期值“I”。當(dāng)達(dá)到預(yù)定的取消計數(shù)器滿期值時,生產(chǎn)者指令Producer-1能夠確定被斷言的取消是用于其自身的取消指令。雖然在該示例性實施例中選擇了預(yù)定的取消計時器滿期值“1”,但是可以選擇其它預(yù)定的非O的取消計時器滿期值。例如,如果斷言的可能的取消所需的周期數(shù)是3個周期(S卩,N-2個周期),則取消計時器可以被設(shè)置為5 (即,N)。因此,當(dāng)取消計時器在3個周期之后達(dá)到“2”時,達(dá)到預(yù)定的計時器滿期值“2”,生產(chǎn)者指令Producer-Ι能夠確定被斷言的取消是用于其自身的取消命令。這里,值N能夠是任意自然數(shù)。
[0036]參考圖3,在調(diào)度器103中基于圖1的處理器的時鐘周期來設(shè)置和重置源就緒位和取消計時器的過程被描述如下。
[0037]在周期0,當(dāng)生產(chǎn)者指令Producer-Ι和依賴指令位于調(diào)度器103中時,源就緒字段和取消計時器字段被分配給依賴指令。然而,此刻,如果生產(chǎn)者指令Producer-Ι還沒有在調(diào)度器103中被拾取,則源就緒位和取消計時器在調(diào)度器103中各自的字段內(nèi)未被設(shè)置,因此,它們的值保持在“O”。在該周期O期間,如果生產(chǎn)者指令Producer-1在調(diào)度器103中被拾取并且生產(chǎn)者指令Producer-Ι推測地喚醒依賴指令,則在該周期O的最后,源就緒位被設(shè)置,并且在源就緒位被設(shè)置的同時或緊接源就緒位被設(shè)置之前或之后,取消計時器也被設(shè)置。
[0038]在周期I,由于生產(chǎn)者指令Producer-1被拾取并且生產(chǎn)者指令Producer-1推測地喚醒依賴指令,所以針對依賴指令的源的源就緒位被設(shè)置為“I”以表示對依賴指令拾取就緒。另外,針對依賴指令的源將取消計時器設(shè)置為N并且預(yù)定的取消計時器滿期值可以是“I”。如前面所討論的,考慮到預(yù)定的取消計時器滿期值,針對源所設(shè)置的取消計時器N是基于針對生產(chǎn)者指令Producer-Ι斷言的可能的取消所需要的周期數(shù)。取消計時器從喚醒點開始倒計時直到其期滿(當(dāng)達(dá)到預(yù)定的取消計時器滿期值時),即,如達(dá)到預(yù)定的取消計時器滿期值“I”的取消計時器所表示的那樣,N-1個周期已過。
[0039]在周期N,如果取消計時器期滿(B卩,達(dá)到預(yù)定的取消計時器滿期值)并且對生產(chǎn)者指令P1ducer-1取消發(fā)生,則依賴指令不再拾取就緒直到其再次被喚醒。因此,在周期N的最后,針對依賴指令的源的源就緒位和取消計時器被重置,例如被設(shè)置為值“0”,其表示依賴指令不再處于拾取就緒直到其再次被喚醒。
[0040]在周期N+1,由于依賴指令沒有再次被喚醒,源就緒位和取消計時器保持在“O”。
[0041]本文所描述的示例性實施例只需要每個源的小的取消計時器來重置針對依賴指令的源的源就緒位。其消除了在被取消的指令以及它們的依賴指令的目的標(biāo)簽與調(diào)度器103中所有指令的源標(biāo)簽之間進(jìn)行大量比較以重置源就緒位的需要。
[0042]本發(fā)明構(gòu)思不僅可以用于生產(chǎn)者指令的直接依賴指令,還可用于以下參考圖4進(jìn)行描述的間接依賴指令(也被稱作影子(shadow)依賴指令)。
[0043]圖4示出了根據(jù)示例性實施例的包括以各自的取消計時器Cancel Timer工作的生產(chǎn)者指令和兩個依賴指令的指令流水線的示意圖。
[0044]在圖4中,流水線包括生產(chǎn)者指令Producer A(LDR Rl,[R0])、依賴于生產(chǎn)者指令Producer A的直接依賴指令D印endent B (ADD R2, Rl, 5)以及依賴于直接依賴指令Dependent B 的間接依賴指令 Shadow Dependent C (ADD R3, R2, 10)。間接依賴指令 ShadowDependent C也被稱作嵌套依賴指令。因此,間接依賴指令Shadow Dependent C具有對生產(chǎn)者指令Producer A的影子依賴性或嵌套依賴性。直接依賴指令Dependent B和間接依賴指令Shadow Dependent C被描述為不直接觸發(fā)取消的單周期延遲指令,而生產(chǎn)者指令Producer A被描述為能夠在周期#5中被取消的多周期延遲指令。
[0045]在下文中,根據(jù)示例性實施例,參考圖1至圖3對圖4中所示的指令流水線中取消依賴指令的操作和重置針對依賴指令的源就緒位的操作進(jìn)行描述。圖5示出根據(jù)示例性實施例的說明圖5中的取消和重置操作的流程圖。
[0046]在本實施例中,假設(shè)直接依賴指令Dependent B和間接依賴指令ShadowDependent C中的每一個具有單個源并且假設(shè)預(yù)定的取消計時器值為“I”。如圖5中所示,在周期#3中,生產(chǎn)者指令Producer A (LDR Rl, [R0])推測地喚醒直接依賴指令DependentB (ADD R2, Rl, 5)以允許直接依賴指令Dependent B從前進(jìn)通路(forwarding path)中獲取其源數(shù)據(jù)Rl (SlOO)0
[0047]之后,在同一周期#3中,針對直接依賴指令D印endent B設(shè)置針對源的源就緒位和取消計時器(S200)?;趶闹苯右蕾囍噶頓ependent B被生產(chǎn)者指令Producer A喚醒的點到針對生產(chǎn)者指令Producer A斷言可能的取消發(fā)生所需的周期數(shù)來設(shè)置用于直接依賴指令D印endent B的取消計時器。在本實施例中,取消計時器被設(shè)置為對應(yīng)于周期#5的“2”。緊接著針對直接依賴指令D印endent B設(shè)置源就緒位和取消計時器之后,用于直接依賴指令Dependent B的源的取消計時器開始計時。
[0048]依次地,直接依賴指令Dependent B在周期#4中喚醒間接依賴指令ShadowDependent C(ADD R3, R2, 10)以從其前進(jìn)通路中獲取其源數(shù)據(jù)R2 (S300)。
[0049]之后,在同一周期#4中,針對間接依賴指令Shadow Dependent C設(shè)置針對源的源就緒位和取消計時器(S400)?;趶拈g接依賴指令Shadow Dependent C被直接依賴指令Producer B喚醒的點到針對生產(chǎn)者指令Producer A斷言可能的取消所需的周期數(shù)來設(shè)置間接依賴指令Shadow Dependent C的取消計時器。在本實施例中,取消計時器被設(shè)置為對應(yīng)于周期#5的“I”。緊接著為間接依賴指令Shadow Dependent C設(shè)置源就緒位和取消計時器之后,針對間接依賴指令Shadow Dependent C的源的取消計時器開始計時。
[0050]接著,在周期#5中,確定生產(chǎn)者指令Producer A是否被取消并且直接依賴指令Dependent B和間接依賴指令Shadow Dependent C的取消計時器是否與對應(yīng)于周期#5的預(yù)定的取消計時器滿期值“ I ”相對應(yīng)(S500)。
[0051]如果確定生產(chǎn)者指令Producer A被取消并且取消計時器與對應(yīng)于周期#5的預(yù)定值相對應(yīng),貝1J直接依賴指令Dependent B和間接依賴指令Shadow Dependent C同時都被取消并且針對直接依賴指令Dependent B和間接依賴指令Shadow Dependent C的源的源就緒位和取消計時器被重置(S600)。然而,如果在周期#5中確定生產(chǎn)者指令Producer A沒有被取消,則生產(chǎn)者指令Producer A和其依賴指令(包括直接依賴指令Dependent B和間接依賴指令Shadow Dependent C)被執(zhí)行(S700)。
[0052]僅僅通過觀察針對各個依賴指令的取消計時器和其基礎(chǔ)生產(chǎn)者指令(圖4情況中的生產(chǎn)者指令Producer A)的取消指示器,根據(jù)前面示例性實施例的指令取消和源重置方案就可以同時應(yīng)用于多個依賴指令和/或多個影子依賴指令。在前面的示例實施例中,如果針對生產(chǎn)者指令斷言取消并且如果針對依賴指令的源的取消計時器滿足預(yù)定的取消計時器值,則所有的依賴指令和嵌套依賴指令被取消并且它們的源就緒位和取消計時器實質(zhì)上同時被重置。這種簡單的基于取消計時器的指令取消和源就緒位重置方法消除了現(xiàn)有技術(shù)中用于指令標(biāo)簽以及它們的依賴指令標(biāo)簽的任意開銷大的標(biāo)簽比較的需要。
[0053]前面的示例性實施例僅僅是示例性的而不是為了限制本發(fā)明構(gòu)思的范圍。例如,說明書中的源就緒位和取消計時器的示例性值能夠被設(shè)置為任意數(shù)字。源就緒位和取消計時器的實際位大小(或?qū)挾?也能夠是任何數(shù)值。此外,說明書中所描述的時鐘周期數(shù)能夠是任何數(shù)字。另外,雖然公開的示例性實施例主要以推測指令為背景進(jìn)行了描述,但是本公開的教導(dǎo)不限于此并且還可以應(yīng)用于其他類型的指令。另外,雖然在前面的示例性實施例中假設(shè)依賴指令具有單個源,但是本發(fā)明構(gòu)思能夠應(yīng)用于具有兩個或多個源的依賴指令。這些和其它變形、修改、增加和改進(jìn)會落入本發(fā)明構(gòu)思的范圍內(nèi)。因此,本發(fā)明構(gòu)思的范圍不是由示例性實施例的詳盡描述所限定,而是由所附加的權(quán)利要求所限定,并且該范圍內(nèi)的所有差別將被解釋為包括在本發(fā)明構(gòu)思之內(nèi)。
[0054]術(shù)語“一個”、“該”和“所述”以及類似的指示語在描述本發(fā)明構(gòu)思的上下文(特別是在所附權(quán)利要求的上下文)中的使用被解釋為涵蓋單數(shù)和復(fù)數(shù)形式兩者,除非在本文中另有指明或通過上下文判斷明顯矛盾。術(shù)語“包含”、“具有”和“包括”被解釋為開放式術(shù)語(即,意思是“包括,但是不限于”),除非另有說明。
【權(quán)利要求】
1.一種用于處理多個指令的方法,所述方法包括: 由依賴指令的生產(chǎn)者指令推測地喚醒所述依賴指令的源; 由所述依賴指令推測地喚醒依賴于所述依賴指令的嵌套依賴指令的源; 設(shè)置所述依賴指令的源的源就緒位以及設(shè)置所述嵌套依賴指令的源的源就緒位,以表示所述依賴指令的源和所述嵌套依賴指令的源訪問就緒; 基于取消時間來設(shè)置所述依賴指令的源的取消計時器以及設(shè)置所述嵌套依賴指令的源的取消計時器,在所述取消時間處預(yù)期針對所述生產(chǎn)者指令斷言取消,所述取消計時器在所述源就緒位被設(shè)置時開始倒計時;以及 如果α)所述依賴指令的源的取消計時器和所述嵌套依賴指令的源的取消計時器期滿并且(ii)所述生產(chǎn)者指令被取消,則同時取消所述依賴指令和所述嵌套依賴指令。
2.根據(jù)權(quán)利要求1所述的方法,其中當(dāng)所述依賴指令的源的取消計時器和所述嵌套依賴指令的源的取消計時器達(dá)到預(yù)定值時,所述依賴指令的源的取消計時器和所述嵌套依賴指令的源的取消計時器期滿。
3.根據(jù)權(quán)利要求2所述的方法,其中所述預(yù)定值是非O值。
4.根據(jù)權(quán)利要求1所述的方法,還包括: 重置所述依賴指令的源的源就緒位和所述嵌套依賴指令的源的源就緒位,以表示所述依賴指令和所述嵌套依賴 指令拾取未就緒,除非所述依賴指令和所述嵌套依賴指令再次被喚醒。
5.根據(jù)權(quán)利要求4所述的方法,還包括: 重置所述依賴指令的源的取消計時器和所述嵌套依賴指令的源的取消計時器。
6.根據(jù)權(quán)利要求4所述的方法,其中在所述同時取消所述依賴指令和所述嵌套依賴指令之后執(zhí)行重置。
7.根據(jù)權(quán)利要求6所述的方法,其中所述嵌套依賴指令在所述依賴指令被所述生產(chǎn)者指令推測地喚醒之后的預(yù)定時間被所述依賴指令喚醒,以及 其中所述依賴指令的源的取消計時器和所述嵌套依賴指令的源的取消計時器基于所述取消時間被設(shè)置為不同值。
8.根據(jù)權(quán)利要求1所述的方法,其中所述嵌套依賴指令在所述依賴指令被所述生產(chǎn)者指令推測地喚醒之后的預(yù)定時間被所述依賴指令喚醒,以及 其中所述依賴指令的源的取消計時器和所述嵌套依賴指令的源的取消計時器基于所述取消時間被設(shè)置為不同值。
9.根據(jù)權(quán)利要求1所述的方法,其中所述生產(chǎn)者指令被推測地拾取。
10.根據(jù)權(quán)利要求1所述的方法,其中基于從所述依賴指令的源被所述生產(chǎn)者指令推測地喚醒的時間到針對所述生產(chǎn)者指令斷言所述取消所預(yù)期的時鐘周期數(shù)來確定預(yù)期針對所述生產(chǎn)者指令斷言所述取消時的所述取消時間。
11.一種用于指令處理的設(shè)備,所述設(shè)備包括: 調(diào)度器,其拾取用于調(diào)度執(zhí)行的生產(chǎn)者指令;和 控制器,其被配置為: 由依賴指令的生產(chǎn)者指令推測地喚醒所述依賴指令的源; 由所述依賴指令推測地喚醒依賴于所述依賴指令的嵌套依賴指令的源;設(shè)置所述依賴指令的源的源就緒位以及設(shè)置所述嵌套依賴指令的源的源就緒位,以表示所述依賴指令的源和所述嵌套依賴指令的源訪問就緒; 基于取消時間來設(shè)置所述依賴指令的源的取消計時器以及設(shè)置所述嵌套依賴指令的源的取消計時器,在所述取消時間處預(yù)期針對所述生產(chǎn)者指令斷言取消,所述取消計時器在所述源就緒位被設(shè)置時開始倒計時;以及 如果(i)所述依賴指令的源的取消計時器和所述嵌套依賴指令的源的取消計時器期滿并且(ii)所述生產(chǎn)者指令被取消,則同時取消所述依賴指令和所述嵌套依賴指令。
12.根據(jù)權(quán)利要求11所述的設(shè)備,其中當(dāng)所述依賴指令的源的取消計時器和所述嵌套依賴指令的源的取消計時器達(dá)到預(yù)定值時,所述依賴指令的源的取消計時器和所述嵌套依賴指令的源的取消計時器期滿。
13.根據(jù)權(quán)利要求12所述的設(shè)備,其中所述預(yù)定值是非O值。
14.根據(jù)權(quán)利要求11所述的設(shè)備,其中所述控制器還被配置為重置所述依賴指令的源的源就緒位和所述嵌套依賴指令的源的源就緒位,以表示所述依賴指令和所述嵌套依賴指令拾取未就緒,除非所述依賴指令和所述嵌套依賴指令再次被喚醒。
15.根據(jù)權(quán)利要求14所述的設(shè)備,其中所述控制器還被配置為重置所述依賴指令的源的取消計時器和所述嵌套依賴指令的源的取消計時器。
16.根據(jù)權(quán)利要求14所述的設(shè)備,其中所述控制器被配置為在同時取消所述依賴指令和所述嵌套依賴指令之后,重置所述依賴指令的源的源就緒位和所述嵌套依賴指令的源的源就緒位。
17.根據(jù)權(quán)利要求16所述的設(shè)備,其中所述嵌套依賴指令在所述依賴指令被所述生產(chǎn)者指令推測地喚醒之后的預(yù)定時間被所述依賴指令喚醒,以及 其中所述依賴指令的源的取消計時器和所述嵌套依賴指令的源的取消計時器基于所述取消時間被設(shè)置為不同值。
18.根據(jù)權(quán)利要求11所述的設(shè)備,其中所述嵌套依賴指令在所述依賴指令被所述生產(chǎn)者指令推測地喚醒之后的預(yù)定時間被所述依賴指令喚醒,以及 其中所述控制器基于所述取消時間將所述依賴指令的源的取消計時器和所述嵌套依賴指令的源的取消計時器設(shè)置為不同值。
19.根據(jù)權(quán)利要求11所述的設(shè)備,其中所述生產(chǎn)者指令被推測地拾取。
20.根據(jù)權(quán)利要求11所述的設(shè)備,其中所述控制器基于從所述依賴指令被所述生產(chǎn)者指令推測地喚醒的時間到針對所述生產(chǎn)者指令斷言所述取消所預(yù)期的時鐘周期數(shù)來確定所述取消時間。
21.根據(jù)權(quán)利要求11所述的設(shè)備,其中所述依賴指令的源的源就緒位、所述嵌套依賴指令的源的源就緒位、所述依賴指令的源的取消計時器和所述嵌套依賴指令的源的取消計時器被設(shè)置為所述調(diào)度器的條目。
【文檔編號】G06F9/38GK104049952SQ201410087003
【公開日】2014年9月17日 申請日期:2014年3月11日 優(yōu)先權(quán)日:2013年3月15日
【發(fā)明者】拉維·伊因加爾, 布萊德利·杰尼·伯杰斯, 桑迪普·庫馬爾·杜貝 申請人:三星電子株式會社