專利名稱:寄存器寫沖突檢測方法及裝置、以及處理器的制作方法
技術(shù)領(lǐng)域:
本發(fā)明涉及計算機技術(shù)領(lǐng)域,更具體地說,本發(fā)明涉及一種用于指令發(fā)射的寄存器寫沖突檢測方法及寄存器寫沖突檢測裝置,此外,本發(fā)明還涉及一種采用了該用于指令發(fā)射的寄存器寫沖突檢測方法或裝置的處理器。
背景技術(shù):
現(xiàn)代處理器一般采用流水線技術(shù)來提高處理器的處理速度。流水線技術(shù)是指在程序執(zhí)行時多條指令重疊進行操作的一種準并行處理實現(xiàn)技術(shù)。更具體地說,流水線技術(shù)將一條指令執(zhí)行過程分為多個階段,其中在不同階段執(zhí)行不同指令,從而實現(xiàn)指令的并行,由此可以提高處理器的處理速度?,F(xiàn)有的處理器流水線發(fā)射機制,主要有亂序發(fā)射和順序發(fā)射兩種。
一方面,通常的亂序發(fā)射機制主要是為了改善指令流水線的性能。更具體地說,在亂序發(fā)射機制的情況下,只要指令就緒,就可以發(fā)射指令,當指令執(zhí)行完,寫入物理寄存器文件。但是,這種亂序發(fā)射的問題是,由于未考慮指令完成的時機,因此存在多條指令同時寫物理寄存器文件的可能,需要實現(xiàn)多個寫端口,從而增大了物理寄存器文件的復雜性。另一方面,通常的順序發(fā)射機制主要是為了降低指令流水線的復雜性。更具體地說,在順序發(fā)射機制中,指令就緒后,要等前面已經(jīng)發(fā)射的指令執(zhí)行完后才能繼續(xù)發(fā)射。雖然順序發(fā)射降低了物理寄存器文件的復雜性,只要實現(xiàn)一個寫端口,但是也降低了指令流水線的效率。因此,希望能夠提供一種可利用較少的硬件復雜性實現(xiàn)指令的亂序發(fā)射來提高指令流水線的效率的技術(shù)方案。
發(fā)明內(nèi)容
本發(fā)明所要解決的技術(shù)問題是針對現(xiàn)有技術(shù)中存在上述缺陷,提供一種可利用較少的硬件復雜性實現(xiàn)指令的亂序發(fā)射來提高指令流水線的效率的用于指令發(fā)射的寄存器寫沖突檢測方法、以及采用了該用于指令發(fā)射的寄存器寫沖突檢測方法的處理器。根據(jù)本發(fā)明的第一方面,提供了一種用于指令發(fā)射的寄存器寫沖突檢測方法,其包括第一步驟,用于初始地對寫有效隊列進行重置,以便將寫有效隊列中的數(shù)據(jù)位置都重置為表示允許發(fā)射指令的寫有效位值;第二步驟,用于獲取處于指令準備發(fā)射狀態(tài)的指令的指令執(zhí)行延遲;第三步驟,用于讀取寫有效隊列中與所述處于指令準備發(fā)射狀態(tài)的指令的指令執(zhí)行延遲等時長的隊列位置的寫有效位值,所述寫有效位值表示允許發(fā)射指令或者表示不允許發(fā)射指令;第四步驟,用于判斷所讀取的寫有效隊列讀取的寫有效位值表示允許發(fā)射指令還是不允許發(fā)射指令;第五步驟,用于在所述第四步驟中判斷讀取的值表示允許發(fā)射指令時允許發(fā)射所述處于指令準備發(fā)射狀態(tài)的指令;第六步驟,用于在第五步驟之后在寫有效隊列中與處于指令準備發(fā)射狀態(tài)的指令的指令執(zhí)行延遲等時長的位置處設置不允許發(fā)射指令的寫有效位值;以及第七步驟,用于在所述第四步驟中判斷讀取的值為不允許發(fā)射指令時不允許發(fā)射所述處于指令準備發(fā)射狀態(tài)的指令。優(yōu)選地,根據(jù)本發(fā)明第一方面所述的用于指令發(fā)射的寄存器寫沖突檢測方法還包括第八步驟,其在所述第六步驟或所述第七步驟之后執(zhí)行,用于使所述寫有效隊列向隊列頭邏輯移位一位,并且在所述寫有效隊列的隊列尾的位置處設置一個表示允許發(fā)射指令的寫有效位值。優(yōu)選地,在根據(jù)本發(fā)明第一方面所述的用于指令發(fā)射的寄存器寫沖突檢測方法中,所述寄存器寫沖突檢測方法在執(zhí)行完所述第八步驟之后回到所述第二步驟。優(yōu)選地,在根據(jù)本發(fā)明第一方面所述的用于指令發(fā)射的寄存器寫沖突檢測方法中,數(shù)值“0”表示允許發(fā)射指令的寫有效位值,并且數(shù)值“ I ”表示不允許發(fā)射指令的寫有效位值。根據(jù)本發(fā)明的第二方面,提供了一種采用了根據(jù)本發(fā)明第一方面所述的用于指令發(fā)射的寄存器寫沖突檢測方法的處理器。 根據(jù)本發(fā)明的第三方面,提供了一種用于指令發(fā)射的寄存器寫沖突檢測裝置,其包括存儲單元,其中存儲了與指令的最長的指令執(zhí)行延遲等長的寫有效隊列;以及控制單元,用于執(zhí)行下述操作初始地對寫有效隊列進行重置,以便將寫有效隊列中的數(shù)據(jù)位置都重置為表示允許發(fā)射指令的寫有效位值;獲取處于指令準備發(fā)射狀態(tài)的指令的指令執(zhí)行延遲;讀取寫有效隊列中與所述處于指令準備發(fā)射狀態(tài)的指令的指令執(zhí)行延遲等時長的隊列位置的寫有效位值,所述寫有效位值表示允許發(fā)射指令或者表示不允許發(fā)射指令;判斷所讀取的寫有效隊列讀取的寫有效位值表示允許發(fā)射指令還是不允許發(fā)射指令;在判斷讀取的值表示允許發(fā)射指令時,允許發(fā)射所述處于指令準備發(fā)射狀態(tài)的指令,并在寫有效隊列中與處于指令準備發(fā)射狀態(tài)的指令的指令執(zhí)行延遲等時長的位置處設置不允許發(fā)射指令的寫有效位值;以及在判斷讀取的值為不允許發(fā)射指令時不允許發(fā)射所述處于指令準備發(fā)射狀態(tài)的指令。優(yōu)選地,在根據(jù)本發(fā)明第三方面所述的用于指令發(fā)射的寄存器寫沖突檢測裝置中,所述控制單元還用于在不允許發(fā)射所述處于指令準備發(fā)射狀態(tài)的指令或者允許發(fā)射所述處于指令準備發(fā)射狀態(tài)的指令之后,使所述寫有效隊列向隊列頭邏輯移位一位,并且在所述寫有效隊列向的隊列尾的位置處設置一個表示允許發(fā)射指令的寫有效位值。優(yōu)選地,在根據(jù)本發(fā)明第三方面所述的用于指令發(fā)射的寄存器寫沖突檢測裝置中,所述存儲單元是通過處理器的寄存器裝置實現(xiàn)的。優(yōu)選地,在根據(jù)本發(fā)明第三方面所述的用于指令發(fā)射的寄存器寫沖突檢測裝置中,所述控制單元是通過處理器的中央處理單元實現(xiàn)的。根據(jù)本發(fā)明的第四方面,提供了一種配置了根據(jù)本發(fā)明的第三方所述的用于指令發(fā)射的寄存器寫沖突檢測裝置的處理器。根據(jù)本發(fā)明,通過使用統(tǒng)一的寫有效隊列邏輯移位和沖突判斷,允許指令亂序?qū)懠拇嫫魑募瑥亩岣咧噶畎l(fā)射的效率。更具體地說,本發(fā)明的指令發(fā)射方案通過對寫寄存器文件的沖突判斷,使用較少的硬件開銷,允許短延遲指令超越長延遲指令先寫寄存器文件,實現(xiàn)亂序?qū)懠拇嫫魑募浞掷眉拇嫫魑募膶懚丝?,從而提高指令發(fā)射效率。由此,本發(fā)明提供一種基于寄存器寫沖突的檢測方法和裝置,該檢測方法和裝置可利用較少的硬件復雜性實現(xiàn)指令的亂序發(fā)射,以提高指令流水線的效率。
結(jié)合附圖,并通過參考下面的詳細描述,將會更容易地對本發(fā)明有更完整的理解并且更容易地理解其伴隨的優(yōu)點和特征,其中圖I示意性地示出了根據(jù)本發(fā)明優(yōu)選實施例的用于指令發(fā)射的寄存器寫沖突檢測方法的流程圖。圖2示意性地示出了根據(jù)本發(fā)明優(yōu)選實施例的寫有效隊列的示例。圖3示意性地示出了根據(jù)本發(fā)明優(yōu)選實施例的用于指令發(fā)射的寄存器寫沖突檢測裝置的框圖。需要說明的是,附圖用于說明本發(fā)明,而非限制本發(fā)明。注意,表示結(jié)構(gòu)的附圖可能并非按比例繪制。并且,附圖中,相同或者類似的元件標有相同或者類似的標號。
具體實施例方式為了使本發(fā)明的內(nèi)容更加清楚和易懂,下面結(jié)合具體實施例和附圖對本發(fā)明的內(nèi)容進行詳細描述。<第一實施例>圖I示意性地示出了根據(jù)本發(fā)明優(yōu)選實施例的用于指令發(fā)射的寄存器寫沖突檢測方法的流程圖。需要說明的是,本說明書中的術(shù)語“寄存器寫沖突檢測”針對即是“物理寄存器文件”的“寫沖突檢測”,簡稱為寄存器寫沖突檢測”。如圖I所示,根據(jù)本發(fā)明優(yōu)選實施例的用于指令發(fā)射的寄存器寫沖突檢測方法包括第一步驟1,用于初始地(例如在處理器啟動時)對寫有效隊列進行重置,以便將寫有效隊列中的數(shù)據(jù)位置都重置為表示允許發(fā)射指令的寫有效位值;例如,如圖I所示,可以在初始時,使寫有效隊列清零,即,使寫有效隊列中的數(shù)據(jù)位置都為零(在本實施例中,采用值“ 0 ”來表示允許發(fā)射指令)。第二步驟2,當指令處于“指令準備發(fā)射”狀態(tài)時,獲取該指令的指令執(zhí)行延遲。即,在第二步驟2獲取處于“指令準備發(fā)射”狀態(tài)的指令的指令執(zhí)行延遲。具體地說,上述的術(shù)語“指令準備發(fā)射”是指這樣的狀態(tài)指令的源操作數(shù)已經(jīng)準備好,并且該指令和已經(jīng)發(fā)射執(zhí)行的指令之間不存在真相關(guān)和輸出相關(guān),而且該指令正等待發(fā)射。術(shù)語“指令執(zhí)行延遲”是指令的一個屬性,其在指令進入發(fā)射階段之前就已經(jīng)產(chǎn)生;具體地說,“指令執(zhí)行延遲”是指一條指令從發(fā)射到完成執(zhí)行、并準備寫入物理寄存器文件所需要的節(jié)拍數(shù),真正寫入物理寄存器文件通常在該節(jié)拍數(shù)之后的下一節(jié)拍。其中,物理寄存器文件(本領(lǐng)域中,有時候簡稱“寄存器文件”),是指用來讀取指令執(zhí)行所需操作數(shù),以及用來保存指令執(zhí)行結(jié)果的一種存儲器。第三步驟3,讀取寫有效隊列中與該準備發(fā)射的指令(S卩,處于“指令準備發(fā)射”狀態(tài)的指令)的指令執(zhí)行延遲等時長的隊列位置的寫有效位值。其中,寫有效位值要么表示允許發(fā)射指令,要么表示不允許發(fā)射指令。換言之,后續(xù)將通過讀取寫有效隊列中與該準備發(fā)射的指令的指令執(zhí)行延遲等時長的隊列位置的寫有效位值來判斷是否發(fā)射該指令。需要說明的是,術(shù)語“等時長的隊列位置”指的是寫有效隊列隊中經(jīng)過相應的延遲(例如指令執(zhí)行延遲)到達寫有效隊列隊列頭的位置。第四步驟4,判斷所讀取的寫有效隊列讀取的寫有效位值。具體地說,判斷所讀取的寫有效隊列讀取的寫有效位值表示“允許發(fā)射指令”還是“不允許發(fā)射指令”。第五步驟5,如果在第四步驟4中判斷讀取的值為“0”(本實施例中表示允許發(fā)射指令的寫有效位值),則允許發(fā)射該指令。第六步驟6,其在第五步驟5之后執(zhí)行,用于在寫有效隊列中與該發(fā)射指令執(zhí)行延遲等時長的位置處置“I”(本實施例中表示不允許發(fā)射指令的寫有效位值)。由此,可以針對所有指令的指令執(zhí)行延遲設置一個與指令中的最長指令執(zhí)行延遲等長的寫有效隊列?!芭c指令的最長指令執(zhí)行延遲等長”指的是,當經(jīng)過最長指令執(zhí)行延遲時,寫有效隊列的隊列尾的數(shù)據(jù)正好位移到隊列頭。寫有效隊列在經(jīng)過所述寄存器寫沖突檢測方法的一個操作周期時沿著隊列位移 方向X向隊列頭B方向進行一位的邏輯移位(如圖2所示)。通過結(jié)合第五步驟5和第六步驟6,可以看出,當寫有效隊列的隊列頭B位置處的寫有效位值為“I”時,表明當前節(jié)拍有結(jié)果準備寫回寄存器文件(即,第五步驟5中允許發(fā)射的指令在相應的指令執(zhí)行延遲之后將寫入物理寄存器文件,而此時,在第六步驟6中設置的“ I ”正好處于寫有效隊列的隊列頭B位置處),相應地,應該不允許發(fā)射指令。第七步驟7,如果在第四步驟4中判斷讀取的值為“I”(本實施例中表示不允許發(fā)射指令的寫有效位值),不允許發(fā)射該指令。由此,可以保證不會發(fā)生有多個寫同一個寄存器文件條目的指令處于對寄存器進行操作的狀態(tài)中(避免寄存器寫沖突)。第八步驟8,其在所述第六步驟6或所述第七步驟7之后執(zhí)行,用于使得寫有效隊列向隊列頭B邏輯移位,移I位。具體的,在第八步驟8中,由于向隊列頭B移位,在隊列尾A的位置處設置一個表示允許發(fā)射指令的寫有效位值(在本實施例中為數(shù)值“ 0 ”)。在第八步驟8之后回到第二步驟2。此后,重復執(zhí)行第二步驟2至第八步驟8的操作周期。在上述寄存器寫沖突檢測方法中,通過使用統(tǒng)一的寫有效隊列邏輯移位和沖突判斷,允許指令亂序?qū)懠拇嫫魑募瑥亩岣咧噶畎l(fā)射的效率。更具體地說,本發(fā)明上述實施例公開的指令發(fā)射方法通過對寫寄存器文件的沖突判斷,使用較少的硬件開銷,允許短延遲指令超越長延遲指令先寫寄存器文件,實現(xiàn)亂序?qū)懠拇嫫魑募?,充分利用寄存器文件的與端口,從而提聞指令發(fā)射效率。由此,本發(fā)明的上述實施例提供一種基于寄存器寫沖突的檢測方法,該檢測方法可利用較少的硬件復雜性實現(xiàn)指令的亂序發(fā)射,以提高指令流水線的效率。需要說明的是,雖然上述實施例以數(shù)值“0”表示允許發(fā)射指令的寫有效位值,并且以數(shù)值“ I ”表示不允許發(fā)射指令的寫有效位值;但是,反過來進行表示也是可行的,也就是說,在另一實施例中,可以以數(shù)值“I”表示允許發(fā)射指令的寫有效位值,并且以數(shù)值“0”表示不允許發(fā)射指令的寫有效位值。根據(jù)本發(fā)明的另一優(yōu)選實施例,本發(fā)明還提供了一種采用了上述用于指令發(fā)射的寄存器寫沖突檢測方法的處理器,例如微處理器。<第二實施例>圖3示意性地示出了根據(jù)本發(fā)明優(yōu)選實施例的用于指令發(fā)射的寄存器寫沖突檢測裝置的框圖。如圖2所示,根據(jù)本發(fā)明優(yōu)選實施例的用于指令發(fā)射的寄存器寫沖突檢測裝置100包括存儲單元1,其中存儲了與指令的最長的指令執(zhí)行延遲等長的寫有效隊列11 ;以及控制單元2,用于執(zhí)行圖I所示的根據(jù)本發(fā)明優(yōu)選實施例的用于指令發(fā)射的寄存器寫沖突檢測方法。其中,針對指令執(zhí)行延遲設置了一個與指令的最長的指令執(zhí)行延遲等長的寫有效
隊列11,該寫有效隊列11針對圖I所示的根據(jù)本發(fā)明優(yōu)選實施例的用于指令發(fā)射的寄存器寫沖突檢測方法的每操作周期向隊列頭B方向(隊列位移方向X)進行一位的邏輯移位,當隊列頭B為寫有效位為例如“I”時,表明當拍有結(jié)果準備寫回寄存器文件。如圖2所示,寫有效隊列由隊列尾A向隊列頭B進行邏輯移位,每移一位,隊列尾A的位置處補“O”。其中,存儲單元I可以通過處理器的原有的寄存器裝置來實現(xiàn),而無需額外地增加存儲介質(zhì)??刂茊卧?可以通過處理器的原有的處理控制單元來實現(xiàn),例如中央處理單元,而無需額外地增加處理控制單元。更具體地說,控制單元2用于執(zhí)行下述操作初始地對寫有效隊列進行重置,以便將寫有效隊列中的數(shù)據(jù)位置都重置為表示允許發(fā)射指令的寫有效位值;獲取處于指令準備發(fā)射狀態(tài)的指令的指令執(zhí)行延遲;讀取寫有效隊列中與所述處于指令準備發(fā)射狀態(tài)的指令的指令執(zhí)行延遲等時長的隊列位置的寫有效位值,所述寫有效位值表示允許發(fā)射指令或者表示不允許發(fā)射指令;判斷所讀取的寫有效隊列讀取的寫有效位值表示允許發(fā)射指令還是不允許發(fā)射指令;在判斷讀取的值表示允許發(fā)射指令時,允許發(fā)射所述處于指令準備發(fā)射狀態(tài)的指令,并在寫有效隊列中與處于指令準備發(fā)射狀態(tài)的指令的指令執(zhí)行延遲等時長的位置處設置不允許發(fā)射指令的寫有效位值;以及在判斷讀取的值為不允許發(fā)射指令時不允許發(fā)射所述處于指令準備發(fā)射狀態(tài)的指令。由此,控制單元2還可用于在不允許發(fā)射所述處于指令準備發(fā)射狀態(tài)的指令或者允許發(fā)射所述處于指令準備發(fā)射狀態(tài)的指令之后,使寫有效隊列11向隊列頭邏輯移位一位,并且在所述寫有效隊列向的隊列尾的位置處設置一個表示允許發(fā)射指令的寫有效位值。同樣,優(yōu)選地,以數(shù)值“0”表示允許發(fā)射指令的寫有效位值,并且以數(shù)值“I”表示不允許發(fā)射指令的寫有效位值;可替換地,反過來進行表示也是可行的,也就是說,在另一實施例中,可以以數(shù)值“I”表示允許發(fā)射指令的寫有效位值,并且以數(shù)值“0”表示不允許發(fā)射指令的寫有效位值。因此,類似地,在上述寄存器寫沖突檢測裝置中,通過使用統(tǒng)一的寫有效隊列邏輯移位和沖突判斷,允許指令亂序與寄存器文件,從而提聞指令發(fā)射的效率。更具體地說,本發(fā)明上述實施例通過對寫寄存器文件的沖突判斷,使用較少的硬件開銷,允許短延遲指令超越長延遲指令先寫寄存器文件,實現(xiàn)亂序?qū)懠拇嫫魑募?,充分利用寄存器文件的寫端口,從而提聞指令發(fā)射效率。由此,本發(fā)明的上述實施例提供一種基于寄存器寫沖突的檢測裝置,該檢測方法可利用較少的硬件復雜性實現(xiàn)指令的亂序發(fā)射,以提高指令流水線的效率。
根據(jù)本發(fā)明的另一優(yōu)選實施例,本發(fā)明還提供了一種配置有上述用于指令發(fā)射的寄存器寫沖突檢測裝置的處理器,例如微處理器。需要說明的是,說明書中的術(shù)語“第一”、“第二”、“第三”等描述僅僅用于區(qū)分說明書中的各個組件、元素、步驟等,而不是用于表示各個組件、元素、步驟之間的邏輯關(guān)系或者順序關(guān)系等??梢岳斫獾氖牵m然本發(fā)明已以較佳實施例披露如上,然而上 述實施例并非用以限定本發(fā)明。對于任何熟悉本領(lǐng)域的技術(shù)人員而言,在不脫離本發(fā)明技術(shù)方案范圍情況下,都可利用上述揭示的技術(shù)內(nèi)容對本發(fā)明技術(shù)方案作出許多可能的變動和修飾,或修改為等同變化的等效實施例。因此,凡是未脫離本發(fā)明技術(shù)方案的內(nèi)容,依據(jù)本發(fā)明的技術(shù)實質(zhì)對以上實施例所做的任何簡單修改、等同變化及修飾,均仍屬于本發(fā)明技術(shù)方案保護的范圍內(nèi)。
權(quán)利要求
1.一種用于指令發(fā)射的寄存器寫沖突檢測方法,其特征在于包括 第一步驟,用于初始地對寫有效隊列進行重置,以便將寫有效隊列中的數(shù)據(jù)位置都重置為表示允許發(fā)射指令的寫有效位值; 第二步驟,用于獲取處于指令準備發(fā)射狀態(tài)的指令的指令執(zhí)行延遲; 第三步驟,用于讀取寫有效隊列中與所述處于指令準備發(fā)射狀態(tài)的指令的指令執(zhí)行延遲等時長的隊列位置的寫有效位值,所述寫有效位值表示允許發(fā)射指令或者表示不允許發(fā)射指令; 第四步驟,用于判斷所讀取的寫有效隊列讀取的寫有效位值表示允許發(fā)射指令還是不允許發(fā)射指令; 第五步驟,用于在所述第四步驟中判斷讀取的值表示允許發(fā)射指令時允許發(fā)射所述處于指令準備發(fā)射狀態(tài)的指令; 第六步驟,用于在第五步驟之后在寫有效隊列中與處于指令準備發(fā)射狀態(tài)的指令的指令執(zhí)行延遲等時長的位置處設置不允許發(fā)射指令的寫有效位值;以及 第七步驟,用于在所述第四步驟中判斷讀取的值為不允許發(fā)射指令時不允許發(fā)射所述處于指令準備發(fā)射狀態(tài)的指令。
2.根據(jù)權(quán)利要求I所述的用于指令發(fā)射的寄存器寫沖突檢測方法,其特征在于還包括 第八步驟,其在所述第六步驟或所述第七步驟之后執(zhí)行,用于使所述寫有效隊列向隊列頭邏輯移位一位,并且在所述寫有效隊列向的隊列尾的位置處設置一個表示允許發(fā)射指令的寫有效位值。
3.根據(jù)權(quán)利要求I或2所述的用于指令發(fā)射的寄存器寫沖突檢測方法,其特征在于,所述寄存器寫沖突檢測方法在執(zhí)行完所述第八步驟之后回到所述第二步驟。
4.根據(jù)權(quán)利要求I或2所述的用于指令發(fā)射的寄存器寫沖突檢測方法,其特征在于,數(shù)值“O”表示允許發(fā)射指令的寫有效位值,并且數(shù)值“ I”表示不允許發(fā)射指令的寫有效位值。
5.一種采用了根據(jù)權(quán)利要求I至4之一所述的用于指令發(fā)射的寄存器寫沖突檢測方法的處理器。
6.一種用于指令發(fā)射的寄存器寫沖突檢測裝置,其特征在于包括 存儲單元,其中存儲了與指令的最長的指令執(zhí)行延遲等長的寫有效隊列;以及 控制單元,用于執(zhí)行下述操作初始地對寫有效隊列進行重置,以便將寫有效隊列中的數(shù)據(jù)位置都重置為表示允許發(fā)射指令的寫有效位值;獲取處于指令準備發(fā)射狀態(tài)的指令的指令執(zhí)行延遲;讀取寫有效隊列中與所述處于指令準備發(fā)射狀態(tài)的指令的指令執(zhí)行延遲等時長的隊列位置的寫有效位值,所述寫有效位值表示允許發(fā)射指令或者表示不允許發(fā)射指令;判斷所讀取的寫有效隊列讀取的寫有效位值表示允許發(fā)射指令還是不允許發(fā)射指令;在判斷讀取的值表示允許發(fā)射指令時,允許發(fā)射所述處于指令準備發(fā)射狀態(tài)的指令,并在寫有效隊列中與處于指令準備發(fā)射狀態(tài)的指令的指令執(zhí)行延遲等時長的位置處設置不允許發(fā)射指令的寫有效位值;以及在判斷讀取的值為不允許發(fā)射指令時不允許發(fā)射所述處于指令準備發(fā)射狀態(tài)的指令。
7.根據(jù)權(quán)利要求6所述的用于指令發(fā)射的寄存器寫沖突檢測裝置,其特征在于,所述控制單元還用于在不允許發(fā)射所述處于指令準備發(fā)射狀態(tài)的指令或者允許發(fā)射所述處于指令準備發(fā)射狀態(tài)的指令之后,使所述寫有效隊列向隊列頭邏輯移位一位,并且在所述寫有效隊列向的隊列尾的位置處設置一個表示允許發(fā)射指令的寫有效位值。
8.根據(jù)權(quán)利要求6或7所述的用于指令發(fā)射的寄存器寫沖突檢測裝置,其特征在于,所述存儲單元是通過處理器的寄存器裝置實現(xiàn)的。
9.根據(jù)權(quán)利要求6或7所述的用于指令發(fā)射的寄存器寫沖突檢測裝置,其特征在于,所述控制單元是通過處理器的中央處理單元實現(xiàn)的。
10.一種配置了根據(jù)權(quán)利要求6至9之一所述的用于指令發(fā)射的寄存器寫沖突檢測裝置的處理器。
全文摘要
本發(fā)明提供了一種寄存器寫沖突檢測方法及裝置、以及處理器。初始地對寫有效隊列進行重置。獲取所述指令的指令執(zhí)行延遲。讀取寫有效隊列中與處于指令準備發(fā)射狀態(tài)的指令的指令執(zhí)行延遲等時長的隊列位置的寫有效位值。判斷所讀取的寫有效隊列讀取的寫有效位值。在判斷讀取的值表示允許發(fā)射指令時允許發(fā)射所述處于指令準備發(fā)射狀態(tài)的指令;并且在寫有效隊列中與處于指令準備發(fā)射狀態(tài)的指令的指令執(zhí)行延遲等時長的位置處設置不允許發(fā)射指令的寫有效位值。在判斷讀取的值為不允許發(fā)射指令時不允許發(fā)射處于指令準備發(fā)射狀態(tài)的指令。本發(fā)明提供了一種基于寄存器寫沖突的檢測方法,可利用較少的硬件復雜性實現(xiàn)指令的亂序發(fā)射,以提高指令流水線的效率。
文檔編號G06F9/30GK102799419SQ20121032533
公開日2012年11月28日 申請日期2012年9月5日 優(yōu)先權(quán)日2012年9月5日
發(fā)明者過鋒, 許勇, 任秀江, 高紅光, 鄭方, 唐勇, 施晶晶 申請人:無錫江南計算技術(shù)研究所