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

一種gene亂序發(fā)射處理器內(nèi)核的制作方法

文檔序號:6400190閱讀:411來源:國知局
專利名稱:一種gene亂序發(fā)射處理器內(nèi)核的制作方法
技術(shù)領(lǐng)域
本發(fā)明涉及一種處理器內(nèi)核,尤其是一種gene亂序發(fā)射處理器內(nèi)核。
背景技術(shù)
⑶C6600中采用的記分牌機(jī)制在滿足數(shù)據(jù)相關(guān)的情況下允許指令亂序執(zhí)行。處理器中的每條指令都要通過記分牌,并在這里檢查數(shù)據(jù)相關(guān)性,記分牌通過檢測其中每條指令的執(zhí)行情況決定什么時候某條指令可以讀操作數(shù)和執(zhí)行。記分牌中沖突已經(jīng)解除的指令可以亂序發(fā)射,并進(jìn)入執(zhí)行級。同時,記分牌還控制指令寫回目的寄存器的操作,處理器當(dāng)中指令的所有沖突檢測與解除工作都依賴于記分牌。每條指令經(jīng)過四個階段:
發(fā)射:如果指令所使用的功能部件正在空閑,并且沒有與其它正在活動的指令搶用同一目的寄存器,記分牌發(fā)射該指令,并記分牌中該指令的狀態(tài),以用于其它待發(fā)射指令的沖突檢測。通過保證發(fā)射指令不與正在活動的指令搶用同一目的寄存器,解決了寫寫沖突。因此,在發(fā)射階段,結(jié)構(gòu)沖突和數(shù)據(jù)上的寫寫沖突被解決。讀操作數(shù):記分牌監(jiān)視源操作數(shù)的可用情況,如果沒有已經(jīng)發(fā)射的活動指令要寫該操作數(shù)或者存放該操作數(shù)的寄存器此刻正在被某個功能部件寫入,則操作數(shù)可用,可以執(zhí)行讀操作數(shù)的工作。通過這種方法,解決了寫讀沖突。執(zhí)行:指操作數(shù)進(jìn)入功能部件進(jìn)行執(zhí)行。寫回:一旦指令執(zhí)行完成,就檢測是否有讀寫沖突,如果沒有讀寫沖突則指令寫回。記分牌在處理器當(dāng)中起到了檢測指令間的相關(guān)性,當(dāng)發(fā)現(xiàn)相關(guān)性的時候采用了等待的方式,這很大程度上限制了指令間的并行度。實際上,處理器指令之間的讀寫相關(guān)和寫寫相關(guān)是由于寄存器別名造成的,不是數(shù)據(jù)流的限制,采用優(yōu)化的體系結(jié)構(gòu),可以消除這些相關(guān),使得指令的并行度只受寫讀相關(guān)的限制,達(dá)到數(shù)據(jù)流極限。寄存器重命名、保留站和重定序緩存等技術(shù)解決了這個問題,但寄存器重命名技術(shù)需要大量的物理寄存器;對于保留站技術(shù),分布式保留站需要為每個功能單元建立保留站隊列,保留站的數(shù)量太少,則會因保留站不夠用造成停頓,太多則會造成大量的硬件上的浪費(fèi);重定序緩存技術(shù)則除了需要大量的寄存器來保存指令狀態(tài)外還需要相當(dāng)復(fù)雜的控制機(jī)制。這些技術(shù)對于最大限度開發(fā)并行度,設(shè)計高性能的處理器具有很大作用,但對于多核設(shè)計當(dāng)中的單個核心的設(shè)計顯得過于復(fù)雜,其硬件開銷也是難以承受的。因此,最好能有一種性能和開銷的折衷,在硬件復(fù)雜度不過多增加的情況下最大限度地開發(fā)并行度。

發(fā)明內(nèi)容
本發(fā)明的目的是提供一種指令最大限度開發(fā)指令并行度,而硬件開銷和復(fù)雜度又在可接受的范圍內(nèi)的一種處理器亂序發(fā)射技術(shù),其性能比記分牌技術(shù)好,而硬件開銷和復(fù)雜性則比寄存器重命名、保留站和重定序緩存小。本發(fā)明提出了一種新的亂序發(fā)射機(jī)制,適用于采用流水線技術(shù)的多核處理器中的單個核心的設(shè)計,處理中指令亂序發(fā)射,在條件允許的情況下亂序?qū)懟?,最大限度地提高了指令的并行度。本發(fā)明提出的結(jié)構(gòu)包含以下兩個模塊:譯碼控制模塊和寫回控制模塊,對應(yīng)于處理器流水線當(dāng)中的譯碼級和寫回級。所述的譯碼控制模塊包含:指令流控制模塊、指令發(fā)射控制模塊、數(shù)據(jù)旁路控制模塊、寄存器訪問模塊、寫回允許模塊、指令發(fā)送模塊。所述的指令流控制模塊負(fù)責(zé)接收要發(fā)射的M指令,記錄指令信息、檢測指令的執(zhí)行情況,以供其它模塊使用。根據(jù)發(fā)射允許信號和當(dāng)前M條指令的發(fā)射情況來決定哪條指令可以發(fā)射,并將該信號送出,供其它模塊使用。根據(jù)寫回控制模塊送來的寫回完成信號,刪除已經(jīng)寫回完成的指令,讀入新的指令。所述的M是大于I的自然數(shù)。所述的指令發(fā)射模塊根據(jù)指令流控制模塊當(dāng)中的指令信息和數(shù)據(jù)旁路完成信號,決定M條指令當(dāng)中哪條指令的沖突已經(jīng)解決,并產(chǎn)生發(fā)射允許的信號,供其它模塊使用。所述的數(shù)據(jù)旁路控制模塊接收寫回控制模塊送回的旁路數(shù)據(jù),重定向到需要該數(shù)據(jù)的指令,然后產(chǎn)生指示該數(shù)據(jù)旁路完成的信號,以供其它模塊使用。所述的寄存器訪問模塊根據(jù)指令流控制模塊的指令信息進(jìn)行寄存器的訪問,并將訪問的結(jié)果送出,供其它模塊使用。所述的寫回允許模塊根據(jù)指令流控制模塊當(dāng)中的信息,來決定每條指令要更新的寄存器是否已經(jīng)讀取完成,當(dāng)寄存器讀取完成之后,送出寫回允許信號,表明該條指令的數(shù)據(jù)可以更新寄存器,并將該信號送出,供其它模塊使用。所述的指令發(fā)送模塊根據(jù)哪條指令可以發(fā)射的信息從M條指令中選出要發(fā)射的指令,從寄存器文件訪存結(jié)果和旁路回來的數(shù)據(jù)當(dāng)中選擇出該條指令的最新操作數(shù),并將要發(fā)射的指令和指令的最新操作數(shù)送出。所述的寫回控制模塊包括:寫回結(jié)果寄存模塊、寫回輸出模塊。所述的寫回結(jié)果寄存模塊負(fù)責(zé)接收要寫回的M條指令,并將要寫回的結(jié)果、要寫回的目的寄存器等信息記錄下來,根據(jù)指令流控制模塊送來的寫回允許信號來決定哪條指令可以寫回,產(chǎn)生寫回完成信號,供其它模塊使用。所述的寫回輸出模塊根據(jù)寫回結(jié)果寄存模塊當(dāng)中的信息將當(dāng)前要寫回的結(jié)果寫回到寄存器當(dāng)中,完成數(shù)據(jù)寫回。本發(fā)明使用集總控制的譯碼控制模塊和寫回控制模塊,實現(xiàn)了處理器指令的高效亂序發(fā)射,最大限度地開發(fā)了處理器的指令級并行度,避免了寄存器重命名技術(shù)中的數(shù)目龐大的物理寄存器,節(jié)省了保留站技術(shù)當(dāng)中大量的硬件資源的消耗,同時,在控制的復(fù)雜度上又比重定序緩存簡單,是處理器亂序發(fā)射控制結(jié)構(gòu)高效經(jīng)濟(jì)的實現(xiàn),非常適合用于多核處理器當(dāng)中單個核心的設(shè)計。


圖1是本發(fā)明的系統(tǒng)結(jié)構(gòu) 圖2是譯碼控制模塊的結(jié)構(gòu)框 圖3是指令流控制模塊的結(jié)構(gòu) 圖4是指令發(fā)送模塊的結(jié)構(gòu)圖; 圖5是寫回控制模塊的結(jié)構(gòu)框 圖6是寫回結(jié)果寄存模塊的結(jié)構(gòu)圖。
具體實施例方式下面結(jié)合附圖對本發(fā)明作進(jìn)一步描述。圖1表明了本發(fā)明的結(jié)構(gòu)圖,結(jié)構(gòu)中包含兩個模塊:譯碼控制模塊和寫回控制?!缞A,譯碼控制模塊相當(dāng)于流水線當(dāng)中的譯碼級,指令之間的沖突在這里得到檢測和化解;寫回控制模塊負(fù)責(zé)指令執(zhí)行結(jié)果的寫回,相當(dāng)于流水線當(dāng)中的寫回級。在兩個模塊之間,譯碼控制模塊送給寫回控制模塊寫回允許信號,控制指令執(zhí)行結(jié)果的寫回;而寫回控制模塊則將寫回完成信號送給譯碼控制模塊,控制譯碼控制模塊當(dāng)中指令信息的更新。譯碼控制模塊的結(jié)構(gòu)圖如圖2所示,其中指令流控制模塊接收流入指令,它是一個類似于移位寄存器的結(jié)構(gòu),記錄并存儲了流入指令的信息,并將指令信息提供給指令發(fā)射控制模塊、數(shù)據(jù)旁路模塊、寄存器訪問模塊、指令發(fā)送模塊和寫回允許模塊,它要根據(jù)指令發(fā)射控制模塊送來的發(fā)射允許信號、寫回控制模塊送來的寫回完成信號完成指令條目的更新,當(dāng)一條指令發(fā)射完成之后,當(dāng)前的指令條目就被刪除,以便流入新的指令。數(shù)據(jù)旁路模塊接收傳來的旁路數(shù)據(jù),并根據(jù)來自指令流控制模塊的指令信息產(chǎn)生數(shù)據(jù)旁路完成信號和旁路數(shù)據(jù)有效信號,數(shù)據(jù)旁路完成信號送到指令發(fā)射控制模塊,作為指令發(fā)射的條件之一,旁路數(shù)據(jù)有效信號則送到指令發(fā)送模塊,用于決定使用旁路數(shù)據(jù)還是寄存器讀出數(shù)據(jù)作為真正的操作數(shù)。指令發(fā)射控制模塊根據(jù)來自指令控制模塊的指令信息、來自數(shù)據(jù)旁路模塊的數(shù)據(jù)旁路信息判斷指令間的沖突,產(chǎn)生指令發(fā)射允許信號。寄存器訪問模塊根據(jù)指令信息進(jìn)行寄存器訪問,讀出相應(yīng)寄存器當(dāng)中的值,作為操作數(shù)的備選值之一。指令發(fā)送模塊根據(jù)來自指令流控制寄存器的要發(fā)射指令的信息、來自寄存器訪問模塊的寄存器訪問結(jié)果和外部的旁路數(shù)據(jù),經(jīng)過判斷產(chǎn)生最終發(fā)射的指令的信息和操作數(shù)。指令流控制模塊的結(jié)構(gòu)如圖3所示(以M=4為例),指令循環(huán)編號為區(qū)分每條指令的唯一編號,其值為0、1、2、3,每當(dāng)有一條指令寫回完成,對應(yīng)的指令編號就回收,并賦值給新流入的指令。例如假設(shè)當(dāng)前指令流控制模塊當(dāng)中的四條指令從前往后的編號分別為0、1、
2、3,且編號為2的指令寫回完成,則編號2空閑,當(dāng)新的指令流入的時候,其編號就被賦值為2,則指令流控制I吳塊當(dāng)中的四條指令從如往后分別為0、1、3、2 ;如果接著編號為I的指令寫回完成,則編號I空閑,當(dāng)有新的指令流入的時候四條指令從前往后的編號變?yōu)?、3、
2、1。指令編號隨著指令在流水線當(dāng)中流動,用于標(biāo)識處于流水線當(dāng)中其它級的指令在指令流控制模塊當(dāng)中對應(yīng)的位置。發(fā)射完成標(biāo)志用于指示當(dāng)前的指令是否已經(jīng)發(fā)射出去,它作為指令發(fā)射的控制條件之一,用來防止已經(jīng)發(fā)射過的指令再次發(fā)射。指令最初以移位的方式進(jìn)入模塊,同樣,指令在模塊當(dāng)中的移動也按照移位的方式進(jìn)行,當(dāng)有一條指令寫回完成,即指令寫回控制模塊送來的對應(yīng)的寫回完成信號有效時,其對應(yīng)的指令信息從模塊當(dāng)中刪除,該條指令后面的每條指令的指令信息往前移動一個條目,被刪除指令信息留下的空白被后面的指令填補(bǔ),最后面空出來的條目用于接收新流入的指令。同時,模塊根據(jù)發(fā)射允許信號和指令信息當(dāng)?shù)陌l(fā)射完成標(biāo)志選擇下一條要發(fā)射的指令。其選擇規(guī)則是:只有當(dāng)本條指令之前的所有指令都發(fā)射完成且本條指令的發(fā)射允許信號有效的時候才能發(fā)射該條指令。指令發(fā)射模塊則根據(jù)指令流控制模塊中的指令信息和數(shù)據(jù)旁路模塊送來的數(shù)據(jù)完成信號來確定那條指令可以發(fā)射,其判斷條件如下:
1.該條指令要使用的功能單元空閑。2.該條指令之前的各條指令要寫回的數(shù)據(jù)都不是該條指令要讀取的數(shù)據(jù)或者雖然該條指令之前的指令要寫回的數(shù)據(jù)當(dāng)中有該條指令要讀取的數(shù)據(jù),但這些該數(shù)據(jù)已經(jīng)旁路完成。檢測該條指令之前的各條指令要寫回的數(shù)據(jù)是不是該條指令要讀取的數(shù)據(jù)時只需要比較該條指令之前的所有指令的目的寄存器是否跟該指令的源寄存器相同,當(dāng)該條指令的源寄存器與它前面的所有指令的目的寄存器不相同的時候,該條件滿足。而數(shù)據(jù)旁路完成則需要根據(jù)數(shù)據(jù)旁路模塊送來的數(shù)據(jù)旁路完成信號是否有效來判斷。3.當(dāng)前發(fā)射的指令或者之前的指令都不是存儲器訪問指令。添加第三條的原因是該模塊中數(shù)據(jù)之間的沖突是根據(jù)寄存器是否相同來實現(xiàn)的,不能夠檢測存儲器訪問的數(shù)據(jù)沖突,檢測存儲器訪問的數(shù)據(jù)沖突需要寄存器當(dāng)中的值讀出之后才能夠進(jìn)行。為了避免存儲器訪問指令之間以及存儲器訪問指令和其它指令之間的沖突,需要添加第二條判斷條件。寄存器訪問模塊則根據(jù)指令流控制模塊的指令信息進(jìn)行寄存器訪問,并把訪問的結(jié)果送到指令發(fā)送模塊,作為最終輸出的操作數(shù)的備選值之一。數(shù)據(jù)旁路模塊則根據(jù)指令控制模塊當(dāng)中的指令信息將旁路數(shù)據(jù)重定向到指令流控制模塊當(dāng)中的某條指令,產(chǎn)生該指令數(shù)據(jù)旁路完成信號和旁路有效信號數(shù)據(jù),分別送給指令發(fā)射控制模塊和指令發(fā)送模塊。旁路數(shù)據(jù)的來源有:功能單元執(zhí)行結(jié)束產(chǎn)生的數(shù)據(jù)和寫回控制模塊中等待寫回的數(shù)據(jù),旁路控制模塊根據(jù)指令流控制模塊送來的指令信息當(dāng)中的源寄存器、目的寄存器和產(chǎn)生該旁路數(shù)據(jù)指令的循環(huán)編號來決定需要將旁路數(shù)據(jù)重定向給哪一條指令,進(jìn)而產(chǎn)生相應(yīng)的數(shù)據(jù)旁路完成信號和旁路數(shù)據(jù)有效信號。寫回允許模塊根據(jù)指令流控制模塊當(dāng)中的指令信息產(chǎn)生寫回允許信號,指示指令流控制模塊的指令當(dāng)中,哪條指令是可以寫回的,并將該信號送給寫回控制模塊。寫回允許模塊檢測了指令當(dāng)中的讀寫沖突和寫寫沖突,其檢測也是通過比較指令之間的源寄存器和目的寄存器是否相同來實現(xiàn)。寫回允許信號有效的判斷條件為:該指令的目的寄存器跟它前面的任何一條指令的目的寄存器和源寄存器都不相同或者雖然其目的寄存器跟它前面某條指令的源寄存器相同,但該指令已經(jīng)發(fā)射。指令發(fā)送模塊的結(jié)構(gòu)如圖4所示,指令發(fā)送模塊根據(jù)旁路數(shù)據(jù)有效信號從寄存器訪問結(jié)果和旁路數(shù)據(jù)當(dāng)中選擇一個作為發(fā)射指令的最終操作數(shù),并輸出。指令流控制模塊發(fā)出的發(fā)射指令的指令信息被送到指令發(fā)送模塊,也由指令發(fā)送模塊送出。寫回控制模塊的結(jié)構(gòu)圖如圖5所示:
寫回指令的指令信息和寫回允許信號被送到寫回結(jié)果寄存模塊,寫回結(jié)果寄存模塊將指令信息寄存,以供寫回結(jié)果輸出模塊使用,并根據(jù)寫回允許信號來判斷當(dāng)前哪條指令可以寫回。寫回指令的寫回信息包括指令循環(huán)編號、指令的目的寄存器、指令要寫回的值,寫回結(jié)果寄存模塊的結(jié)構(gòu)如圖6所示。指令的寫回有效信號來表明當(dāng)前條目中的內(nèi)容是否需要寫回,如果當(dāng)前條目中的內(nèi)容已經(jīng)寫回到寄存器或者不是需要寫回寄存器的內(nèi)容,則該有效信號無效;寫回指令的信息包括當(dāng)前需要寫回的指令的目的地址、指令的寫回值等。寫回結(jié)果寄存模塊中的各個條目跟譯碼控制模塊當(dāng)中的各個條目相對應(yīng),其對應(yīng)通過使得指令的循環(huán)編號相等來實現(xiàn),每個條目是否可以寫回按照下面的條件來判斷:
1.指令寫回有效信號為高。2.對應(yīng)的指令寫回允許信號為高。3.該指令前面的所有指令均不滿足寫回條件。當(dāng)滿足上面三個條件的時候,對應(yīng)的條目的內(nèi)容被送到寫回結(jié)果輸出模塊,寫回到寄存器當(dāng)中,同時,寫回結(jié)果寄存模塊產(chǎn)生寫回完成信號。在整個系統(tǒng)當(dāng)中,譯碼控制模塊是指令發(fā)射的控制中心,而寫回控制模塊是指令寫回的控制中心,整個亂序發(fā)射內(nèi)核被分成這兩個模塊來實現(xiàn),兩個模塊相互協(xié)作來完成指令的亂序執(zhí)行。以上所述僅為本發(fā)明的具體實施方式
,并不用以限制本發(fā)明,任何本發(fā)明所屬領(lǐng)域內(nèi)的技術(shù)人員,在本發(fā)明揭露的技術(shù)范圍內(nèi),所作的修改或替換,都應(yīng)涵蓋在本發(fā)明的保護(hù)范圍之內(nèi)。
權(quán)利要求
1.一種gene亂序發(fā)射處理器內(nèi)核,包括譯碼控制模塊和寫回控制模塊,對應(yīng)于處理器流水線當(dāng)中的譯碼級和寫回級,其特征在于: 所述的譯碼控制模塊包含:指令流控制模塊、指令發(fā)射控制模塊、數(shù)據(jù)旁路控制模塊、寄存器訪問模塊、寫回允許模塊和指令發(fā)送模塊; 所述的指令流控制模塊負(fù)責(zé)接收要發(fā)射的M指令,記錄指令信息、檢測指令的執(zhí)行情況,以供其它模塊使用;根據(jù)發(fā)射允許信號和當(dāng)前M條指令的發(fā)射情況來決定哪條指令可以發(fā)射,并將該信號送出,供其它模塊使用;根據(jù)寫回控制模塊送來的寫回完成信號,刪除已經(jīng)寫回完成的指令,讀入新的指令;所述的M是大于I的自然數(shù); 所述的指令發(fā)射模塊根據(jù)指令流控制模塊當(dāng)中的指令信息和數(shù)據(jù)旁路完成信號,決定M條指令當(dāng)中哪條指令的沖突已經(jīng)解決,并產(chǎn)生發(fā)射允許的信號,供其它模塊使用; 所述的數(shù)據(jù)旁路控制模塊接收寫回控制模塊送回的旁路數(shù)據(jù),重定向到需要該數(shù)據(jù)的指令,然后產(chǎn)生指示該數(shù)據(jù)旁路完成的信號,以供其它模塊使用; 所述的寄存器訪問模塊根據(jù)指令流控制模塊的指令信息進(jìn)行寄存器的訪問,并將訪問的結(jié)果送出,供其它模塊使用; 所述的寫回允許模塊根據(jù)指令流控制模塊當(dāng)中的信息,來決定每條指令要更新的寄存器是否已經(jīng)讀取完成,當(dāng)寄存器讀取完成之后,送出寫回允許信號,表明該條指令的數(shù)據(jù)可以更新寄存器,并將該信號送出,供其它模塊使用; 所述的指令發(fā)送模塊根據(jù)哪條指令可以發(fā)射的信息從M條指令中選出要發(fā)射的指令,從寄存器文件訪存結(jié)果和旁路回來的數(shù)據(jù)當(dāng)中選擇出該條指令的最新操作數(shù),并將要發(fā)射的指令和指令的最新操作數(shù)送出; 所述的寫回控制模塊包括:寫回結(jié)果寄存模塊和寫回輸出模塊; 所述的寫回結(jié)果寄存模塊負(fù)責(zé)接收要寫回的M條指令,并將要寫回的結(jié)果、要寫回的目的寄存器等信息記錄下來,根據(jù)指令流控制模塊送來的寫回允許信號來決定哪條指令可以寫回,產(chǎn)生寫回完成信號,供其它模塊使用; 所述的寫回輸出模塊根據(jù)寫回結(jié)果寄存模塊當(dāng)中的信息將當(dāng)前要寫回的結(jié)果寫回到寄存器當(dāng)中,完成數(shù)據(jù)寫回。
全文摘要
本發(fā)明公開了一種gene亂序發(fā)射處理器內(nèi)核。本發(fā)明包括譯碼控制模塊和寫回控制模塊,對應(yīng)于處理器流水線當(dāng)中的譯碼級和寫回級。所述的譯碼控制模塊包含指令流控制模塊、指令發(fā)射控制模塊、數(shù)據(jù)旁路控制模塊、寄存器訪問模塊、寫回允許模塊、指令發(fā)送模塊。所述的寫回控制模塊包括寫回結(jié)果寄存模塊、寫回輸出模塊。本發(fā)明使用集總控制的譯碼控制模塊和寫回控制模塊,實現(xiàn)了處理器指令的高效亂序發(fā)射,最大限度地開發(fā)了處理器的指令級并行度,避免了寄存器重命名技術(shù)中的數(shù)目龐大的物理寄存器,節(jié)省了保留站技術(shù)當(dāng)中大量的硬件資源的消耗。
文檔編號G06F9/38GK103207776SQ201310076580
公開日2013年7月17日 申請日期2013年3月11日 優(yōu)先權(quán)日2013年3月11日
發(fā)明者沈海斌, 張阿飛 申請人:浙江大學(xué)
網(wǎng)友詢問留言 已有0條留言
  • 還沒有人留言評論。精彩留言會獲得點贊!
1