專(zhuān)利名稱::一種微處理器和其信息儲(chǔ)存方法
技術(shù)領(lǐng)域:
:本發(fā)明是有關(guān)于微處理器,特別是有關(guān)于非循序執(zhí)行的微處理器內(nèi)的分支預(yù)測(cè)。
背景技術(shù):
:微處理器的架構(gòu)規(guī)格(例如x86架構(gòu)微處理器)都要求指令依照程序的順序?qū)⑵浣Y(jié)果寫(xiě)入微處理器架構(gòu)的可視狀態(tài)中(此時(shí)通常稱為指令循序引退(in-orderretirement))0然而,就指令執(zhí)行而言,循序引退指令的微處理器的微架構(gòu)是以非循序方式(out-of-order)(也就是不會(huì)依照程序順序,或稱亂序)執(zhí)行指令以產(chǎn)生指令結(jié)果。這類(lèi)的微處理器通常會(huì)使用一稱為重排序緩沖器(reorderbuffer,ROB)的硬件架構(gòu)或是類(lèi)似的架構(gòu),用以在指令非循序執(zhí)行的情況下循序弓I退指令。重排序緩沖器用以儲(chǔ)存處理器中每一個(gè)未引退指令的信息。未引退指令是指已經(jīng)被提取、解碼、甚至被執(zhí)行(即執(zhí)行單元已經(jīng)產(chǎn)生其結(jié)果),或者是等待發(fā)送以被執(zhí)行的指令,其結(jié)果仍未寫(xiě)入微處理器架構(gòu)的狀態(tài)中。特別的是,重排序緩沖器儲(chǔ)存的信息包含未引退指令之間的程序順序(programorder)。此外,重排序緩沖器也用以儲(chǔ)存每一個(gè)未引退指令的其它大量信息。所有微處理器都包括多個(gè)分支指令于其指令集內(nèi)。一般而言,處理器會(huì)依序地提取指令。然而,分支指令卻會(huì)指示處理器自不連續(xù)的位置(non-sequentiallocation)提取指令。因?yàn)榉种е噶钤谖⑻幚砥鞴芫€的前級(jí)被提取,卻在管線的后級(jí)才被執(zhí)行(即分支方向(direction)和目標(biāo)地址最后才被決定),所以分支指令會(huì)造成管線泡(pipelinebubbles),而使得微處理器無(wú)法有效利用,并且會(huì)增加指令時(shí)鐘周期數(shù)(clocksperinstruction,CPI),這是微處理器設(shè)計(jì)領(lǐng)域常見(jiàn)的問(wèn)題。為了克服上述問(wèn)題,現(xiàn)今的微處理器都包括分支預(yù)測(cè)器(branchpredictors),當(dāng)指令被提取時(shí),可用來(lái)預(yù)測(cè)分支指令和分支結(jié)果。分支預(yù)測(cè)是微處理器設(shè)計(jì)領(lǐng)域一種的技術(shù)手段。然而,當(dāng)分支指令在管線中被執(zhí)行時(shí),大量的信息(分支信息)會(huì)被儲(chǔ)存,用以修正分支指令的錯(cuò)誤預(yù)測(cè),以及用以更新分支預(yù)測(cè)器中的分支歷史信息,使得分支預(yù)測(cè)器能夠更正確地預(yù)測(cè)分支指令后續(xù)的執(zhí)行操作。每一個(gè)分支指令需要儲(chǔ)存的分支信息的位數(shù)(分支信息位)為200位。再者,用以儲(chǔ)存分支信息的重排序緩沖器,其項(xiàng)目(entry)的數(shù)量也非常重要。當(dāng)微處理器的執(zhí)行資源(executionresources)增加時(shí),重排序緩沖器中所需的項(xiàng)目數(shù)量亦需大幅增加,如此才能充分利用微處理器的執(zhí)行資源。但是,如此一來(lái),分支信息位的儲(chǔ)存會(huì)造成重排序緩沖器的芯片面積變大,且亦會(huì)增加功率的消耗。
發(fā)明內(nèi)容本發(fā)明一實(shí)施例提供一種非循序執(zhí)行暨循序引退的微處理器,包括分支信息表以及重排序緩沖器。分支信息表包括N個(gè)分支信息項(xiàng)目,N個(gè)分支信息項(xiàng)目的每一者用以儲(chǔ)存對(duì)應(yīng)分支指令的相關(guān)分支信息。重排序緩沖器耦接于分支信息表,重排序緩沖器包括M個(gè)項(xiàng)目,M個(gè)項(xiàng)目的每一者用以儲(chǔ)存微處理器內(nèi)的未引退指令的相關(guān)信息,其中M個(gè)項(xiàng)目的每一者均包括第一字段,用以指示未引退指令是否為分支指令,若是,則還包括第二字段用來(lái)儲(chǔ)存分支信息表的對(duì)應(yīng)標(biāo)簽,對(duì)應(yīng)標(biāo)簽用以指示分支信息表中儲(chǔ)存分支指令的相關(guān)分支信息的對(duì)應(yīng)分支信息項(xiàng)目,其中N小于M。本發(fā)明另一實(shí)施例提供關(guān)于非循序執(zhí)行暨循序引退的微處理器的信息儲(chǔ)存方法,包括儲(chǔ)存分支信息表,其包括N個(gè)分支信息項(xiàng)目,其中N個(gè)分支信息項(xiàng)目的每一者用以儲(chǔ)存對(duì)應(yīng)分支指令的相關(guān)分支信息;以及儲(chǔ)存微處理器內(nèi)的多個(gè)未引退指令的相關(guān)信息于重排序緩沖器,重排序緩沖器包括M個(gè)項(xiàng)目,其中M個(gè)項(xiàng)目的每一者用以儲(chǔ)存未引退指令的相關(guān)信息,其中M個(gè)項(xiàng)目的每一者均包括第一字段,用以指示未引退指令是否為分支指令,若是,則還包括第二字段用來(lái)儲(chǔ)存分支信息表的對(duì)應(yīng)標(biāo)簽,對(duì)應(yīng)標(biāo)簽用以指示分支信息表中儲(chǔ)存分支指令的相關(guān)分支信息的對(duì)應(yīng)分支信息項(xiàng)目,其中N小于M。圖1為本發(fā)明的微處理器的方塊圖;圖2為本發(fā)明的一方塊圖用以顯示分支信息表內(nèi)項(xiàng)目的內(nèi)容;圖3為一方塊圖用以顯示重排序緩沖器內(nèi)項(xiàng)目的內(nèi)容;圖4為圖1的微處理器的操作流程圖。[主要元件標(biāo)號(hào)說(shuō)明]100微處理器;102指令高速緩存;104x86指令字節(jié)隊(duì)列;106指令格式器;107分支信息表;108已格式化指令隊(duì)列;112指令轉(zhuǎn)譯器;116暫存器別名表;117重排序緩沖器;118保留站;122執(zhí)行單元;126提取單元;128分支預(yù)測(cè)器;142提取地址;144加法器;146預(yù)測(cè)目標(biāo)地址;148已執(zhí)行目標(biāo)地址;152提取地址;154分支信息;202預(yù)測(cè)目標(biāo)地址字段;204全域分支樣式字段;206提取地址字段;208傳回堆棧指針/有效字段;212分支目標(biāo)地址高速緩存路徑命中/有效字段;214分支型態(tài)字段;216效能追蹤位;302正常指令信息字段;304分支旗標(biāo);306分支發(fā)生旗標(biāo);308分支信息表標(biāo)簽字段。具體實(shí)施例方式一般而言,分支指令僅占程序指令的15-20%。因此,發(fā)明人注意到對(duì)多數(shù)混合程序指令來(lái)說(shuō),重排序緩沖器中的多數(shù)項(xiàng)目其所儲(chǔ)存的分支信息是沒(méi)有使用到的。根據(jù)本發(fā)明實(shí)施例,本發(fā)明使用一種分立架構(gòu)(separatestructure)-『分支信息表』-來(lái)儲(chǔ)存分支信息,即此分支信息對(duì)分支指令而言是具有獨(dú)特性(unique)。本發(fā)明的優(yōu)點(diǎn)在于相較于重排序緩沖器中項(xiàng)目的數(shù)量,分支信息表中項(xiàng)目的數(shù)量較少。在一實(shí)施例中,重排序緩沖器的大小為48個(gè)項(xiàng)目,而分支信息表的大小為16個(gè)項(xiàng)目。分支信息表中的每一項(xiàng)目是由一個(gè)標(biāo)簽(tag)作為索引(index)。每一個(gè)重排序緩沖器的項(xiàng)目均具有一個(gè)字段(field)用以指示與此項(xiàng)目有關(guān)的指令是否為分支指令,以及另一個(gè)字段,用來(lái)儲(chǔ)存分支指令對(duì)應(yīng)分支信息表中一項(xiàng)目的標(biāo)簽。圖1為根據(jù)本發(fā)明的微處理器100的方塊圖。微處理器100包括由多個(gè)級(jí)(stages)或多個(gè)功能單元所構(gòu)成的管線,此管線包括提取單元126、指令高速緩存102、x86指令字節(jié)隊(duì)列104(x86instructionbytequeue,XIBQ)、指令格式器(instructionformatter)106、已格式化指令隊(duì)列(formattedinstructionqueue)108、指令轉(zhuǎn)譯器112、暫存器別名表(registeraliastable,RAT)116、多個(gè)保留站(reservationstation)118以及多個(gè)執(zhí)行單元122。提取單元126提供提取地址142至指令高速緩存102以選擇一包含多個(gè)指令字節(jié)(instructionbytes)的快取列(cacheline),上述快取列被提供至x86指令字節(jié)隊(duì)列104。微處理器100還包括加法器144,加法器144用以將目前的提取地址142增量(increment)而產(chǎn)生下一個(gè)接續(xù)的提取地址152至提取單元126。提取單元126也從分支預(yù)測(cè)器128接收預(yù)測(cè)目標(biāo)地址(predictedtargetaddress)146。提取單元126由執(zhí)行單元122接收已執(zhí)行目標(biāo)地址(executedtargetaddress)148。分支預(yù)測(cè)器128提供分支信息154至x86指令字節(jié)隊(duì)列104。此外,分支信息154用以指示分支預(yù)測(cè)器128是否預(yù)測(cè)一分支指令將出現(xiàn)于x86指令字節(jié)隊(duì)列104中的上述快取列。若分支信息154指示要取用(taken)此分支指令(亦即分支發(fā)生),則提取單元126選擇由分支預(yù)測(cè)器128提供的預(yù)測(cè)目標(biāo)地址146。在一實(shí)施例中,分支信息154除了包含是否取用(taken/nottaken,T/NT)分支指令的預(yù)測(cè)指示(predictionindicator)之外,還包括預(yù)測(cè)目標(biāo)地址146、全域分支樣式(globalbranchpattern)、提取快取列的提取地址142、對(duì)應(yīng)一傳回堆棧的多個(gè)指針(stackpointers)和有效位(validbits)和由分支預(yù)測(cè)器128的分支目標(biāo)地址高速緩存(branchtargetaddresscache,BTAC)所提供的多個(gè)指示位,其中全域分支樣式用來(lái)作出預(yù)測(cè)結(jié)果(例如在gshare預(yù)測(cè)器中使用的預(yù)測(cè)),分支預(yù)測(cè)器128使用提取快取列的提取地址142進(jìn)行預(yù)測(cè),前述多個(gè)指示位并包括多個(gè)路徑命中/有效位(wayhit/validbits)和多個(gè)分支型態(tài)位(branchtypebits)(例如條件分支型態(tài)、非條件分支型態(tài)、傳回(return)型態(tài)、呼叫(call)型態(tài))。上述多個(gè)路徑命中/有效位用以指示提取分支指令的上述提取地址是否命中上述分支目標(biāo)地址高速緩存。x86指令字節(jié)隊(duì)列104是包含多個(gè)項(xiàng)目的隊(duì)列,其每一項(xiàng)目均包含來(lái)自于指令高速緩存102的多個(gè)字節(jié)的數(shù)據(jù)。一般而言,指令格式器106為一指令解碼器。在一實(shí)施例中,微處理器100是x86架構(gòu)的微處理器,其指令集包括可變長(zhǎng)度指令(variablelengthinstructions)。指令格式器106用以檢查由x86指令字節(jié)隊(duì)列104提取回來(lái)的多個(gè)指令字節(jié)的串流(stream),并且決定串流內(nèi)每一個(gè)指令的起始字節(jié)(beginningbyte)和終止字節(jié)(endingbyte),并且藉此將字節(jié)的串流斷開(kāi)(格式化)為多個(gè)x86指令的串流。已格式化的x86指令的串流被提供至已格式化指令隊(duì)列108,并加以儲(chǔ)存以讓微處理器100剩余的管線處理。指令轉(zhuǎn)譯器112將巨指令(例如x86分支巨指令)轉(zhuǎn)譯為成多個(gè)微指令,用以實(shí)現(xiàn)此巨指令。在一實(shí)施例中,指令轉(zhuǎn)譯器112將每一個(gè)分支巨指令轉(zhuǎn)譯為一分支微指令。微處理器100也包括重排序緩沖器117,其耦接至?xí)捍嫫鲃e名表116、保留站118,以及執(zhí)行單元122。微處理器100也包括分支信息表(branchinformationtable,BIT)107,其耦接至指令格式器106、重排序緩沖器117,以及分支預(yù)測(cè)器128。重排序緩沖器117為具有多個(gè)項(xiàng)目的環(huán)形隊(duì)列(關(guān)于重排序緩沖器117項(xiàng)目的細(xì)節(jié)如圖3所示)。暫存器別名表116依程序順序指派指令轉(zhuǎn)譯器112產(chǎn)生的多個(gè)微指令至重排序緩沖器117中的多個(gè)項(xiàng)目。分支信息表107為具有多個(gè)項(xiàng)目的環(huán)形隊(duì)列(關(guān)于分支信息表107項(xiàng)目的細(xì)節(jié)如圖2所示)。在一實(shí)施例中,分支信息表107中項(xiàng)目的數(shù)量小于重排序緩沖器117中項(xiàng)目的數(shù)量的一半。指令格式器106依程序順序指派遇到(encounter)的多個(gè)分支指令至分支信息表107中的多個(gè)項(xiàng)目。以下將搭配圖示詳述重排序緩沖器117和分支信息表107的技術(shù)內(nèi)容和相關(guān)操作。根據(jù)本發(fā)明的一實(shí)施例,圖2為一方塊圖用以顯示分支信息表107內(nèi)一項(xiàng)目的內(nèi)容。每一個(gè)項(xiàng)目都包括48位的預(yù)測(cè)目標(biāo)地址字段202、40位的全域分支樣式字段(globalbranchpatternfield)204,32位的提取地址字段206、20位的傳回堆棧指針/有效字段(returnstackpointers/validfield)208、8位的分支目標(biāo)地址高速緩存路徑命中/有效字段(BTACwayhit/validfield)212、10位的分支型態(tài)字段(branchtypefield)214,以及多個(gè)效能追蹤位(performancetrackingbits)216。在一實(shí)施例中,在分支信息表107中每一個(gè)項(xiàng)目?jī)?nèi)儲(chǔ)存的數(shù)據(jù)量約為170位。在另一實(shí)施例中,在分支信息表107中每一個(gè)項(xiàng)目?jī)?nèi)儲(chǔ)存的數(shù)據(jù)量至少100個(gè)位。根據(jù)本發(fā)明的一實(shí)施例,圖3為一方塊圖用以顯示重排序緩沖器117內(nèi)一項(xiàng)目的內(nèi)容。每一個(gè)項(xiàng)目包括一正常指令信息字段302,用以儲(chǔ)存被指派至該項(xiàng)目的一指令的正常指令信息(normalinstructioninformation),上述指令也包含分支指令。正常指令信息字段302儲(chǔ)存上述指令的指令結(jié)果和指令狀態(tài)。當(dāng)該指令被不同的管線級(jí)處理時(shí),該項(xiàng)目中的指令結(jié)果和指令狀態(tài)(包括異常信息)會(huì)被更新。每一個(gè)項(xiàng)目也包括一分支旗標(biāo)304,若指令為分支指令,分支旗標(biāo)304則為真值。每一個(gè)項(xiàng)目也包括一分支發(fā)生旗標(biāo)(branchtakenflag)306,若分支預(yù)測(cè)器128預(yù)測(cè)分支指令被取用(亦即分支發(fā)生),分支發(fā)生旗標(biāo)306則為真值。最后,每一個(gè)項(xiàng)目包括分支信息表標(biāo)簽字段(BITtagfield)308,用以儲(chǔ)存分支信息表107的一標(biāo)簽,而該標(biāo)簽為一索引,用以指示分支信息表107中具有與分支指令相關(guān)的分支信息的項(xiàng)目。根據(jù)本發(fā)明的實(shí)施例,圖4為圖1的微處理器100的操作流程圖。流程始于步驟402。在步驟402,提取單元126從提取地址142提取指令高速緩存102中一包含多個(gè)指令字節(jié)的快取列。流程前進(jìn)至步驟404。在步驟404,分支預(yù)測(cè)器128預(yù)測(cè)在已提取的快取列中具有一分支指令,并且產(chǎn)生相關(guān)的分支信息154。流程前進(jìn)至步驟406。在步驟406,經(jīng)由x86指令字節(jié)隊(duì)列104向下遞送分支信息154至指令格式器106。流程前進(jìn)至步驟408。在步驟408,指令格式器106解碼分支指令。流程前進(jìn)至步驟412。在決定步驟412,指令格式器106判斷分支信息表107是否填滿(full),即指令格式器106試圖在分支信息表107中指派一個(gè)項(xiàng)目給分支指令,若不能夠指派一個(gè)項(xiàng)目給分支指令,則表示分支信息表107是填滿的。若分支信息表107是填滿的,流程前進(jìn)至步驟414;否則,流程前進(jìn)至步驟416。在步驟414,指令格式器106設(shè)置一信號(hào),用以拖延(stall)指令格式器106之上的指令提取管線,并且流程回到?jīng)Q定步驟412,直到分支信息表107不再是填滿的。在一實(shí)施例中,指令提取管線將根據(jù)一設(shè)置信號(hào)暫停指令的提取。在步驟416,指令格式器106將與分支指令有關(guān)的分支信息填入分支信息表107中被指派到的項(xiàng)目之內(nèi)。流程前進(jìn)至步驟418。在步驟418,指令格式器106儲(chǔ)存分支指令以及分支信息表107中被指派到的項(xiàng)目的分支信息表標(biāo)簽至已格式化指令隊(duì)列108。流程前進(jìn)至步驟422。在步驟422,在管線中向下遞送分支信息表標(biāo)簽以及分支指令至?xí)捍嫫鲃e名表116。流程前進(jìn)至步驟424。在步驟424,暫存器別名表116指派分支指令至重排序緩沖器117中的一個(gè)項(xiàng)目,并且將分支信息表標(biāo)簽填入重排序緩沖器117中被指派到的項(xiàng)目之內(nèi)。流程前進(jìn)至步驟426。在步驟426,執(zhí)行管線使用分支信息表標(biāo)簽來(lái)存取分支信息表107中一項(xiàng)目的分支信息以執(zhí)行分支指令。具體地說(shuō),執(zhí)行單元122比較預(yù)測(cè)目標(biāo)地址146與執(zhí)行單元122計(jì)算出的實(shí)際目標(biāo)地址(或正確目標(biāo)地址)來(lái)判斷是否有預(yù)測(cè)錯(cuò)誤的情況發(fā)生。在一實(shí)施例中,執(zhí)行單元122比較重排序緩沖器117中被指派一條件分支指令的一項(xiàng)目中的已預(yù)測(cè)的分支發(fā)生旗標(biāo)306與執(zhí)行單元122從條件碼旗標(biāo)(conditioncodeflag)計(jì)算出的實(shí)際分支方向(或正確分支方向)來(lái)判斷是否有預(yù)測(cè)錯(cuò)誤的情況發(fā)生,以執(zhí)行上述條件分支指令。此外,執(zhí)行管線通知分支預(yù)測(cè)器128分支指令已經(jīng)被執(zhí)行,并且為了更新分支歷史信息(branchhistoryinformation),分支預(yù)測(cè)器128對(duì)應(yīng)地使用分支信息表107的標(biāo)簽來(lái)存取分支信息表107中其它項(xiàng)目的分支信息以更新分支信息。在一實(shí)施例中,微處理器100用以更新分支信息表107中的分支信息,例如效能追蹤位216。流程前進(jìn)至步驟428。在步驟428,當(dāng)分支指令已被執(zhí)行,重排序緩沖器117引退分支指令并歸還(deallocate)分支信息表107中被指派給上述分支指令的項(xiàng)目,以及歸還重排序緩沖器117中被指派給上述分支指令的項(xiàng)目。流程結(jié)束于步驟428。由前述可知,相較于已知的設(shè)計(jì)(即在每一個(gè)重排序緩沖器117的項(xiàng)目?jī)?nèi)儲(chǔ)存分支信息),本發(fā)明的優(yōu)點(diǎn)在于分支信息表107對(duì)于縮小芯片面積和降低消耗功率極有幫助。在另一方面,也可能會(huì)降低具有多個(gè)密集的分支指令的程序的效能,例如在一個(gè)由48個(gè)指令構(gòu)成的指令群組中具有16個(gè)以上的分支指令。這是因?yàn)椴糠址种е噶顭o(wú)法取得分支信息表而造成管線泡。雖然本發(fā)明已經(jīng)由數(shù)種實(shí)施例揭露如上,但其僅用以作為例子,并非用以限定本發(fā)明。計(jì)算器領(lǐng)域的本領(lǐng)域技術(shù)人員應(yīng)能理解,在不脫離本發(fā)明的精神的前提下,當(dāng)可對(duì)本發(fā)明作些許更動(dòng)。舉例而言,軟件能夠致能本發(fā)明的裝置和方法的功能、制造、模型建立、仿真、各種性質(zhì)以及/或測(cè)試。其能夠通過(guò)不同的程序語(yǔ)言而達(dá)成,例如程序語(yǔ)言(如C、C++)、硬件描述語(yǔ)言(hardwaredescriptionlanguage,HDL,如VerilogHDL、VHDL),或是其它可能的程序語(yǔ)言。上述軟件能夠設(shè)置于任何已知的計(jì)算器可讀取儲(chǔ)存媒體(computerusablemedium),例如半導(dǎo)體、磁盤(pán),或光盤(pán)(如CD-ROM、DVD-ROM)。本發(fā)明的裝置和方法可能包括于任何半導(dǎo)體智慧財(cái)產(chǎn)核心(semiconductorIPcore)之內(nèi),例如(以HDL嵌入的)微處理器核心,或是當(dāng)集成電路制造時(shí),轉(zhuǎn)移至硬件。此外,本發(fā)明可能通過(guò)硬件和軟件的組合而實(shí)現(xiàn)。因此,本發(fā)明不應(yīng)被此處所述的任何實(shí)施例所限制,本發(fā)明應(yīng)該是根據(jù)所附權(quán)利要求范圍與其等效的裝置/方法而被定義。特別的是,本發(fā)明能夠設(shè)置于一般用途計(jì)算器的微處理器裝置內(nèi)。最后,本領(lǐng)域技術(shù)人員應(yīng)能理解到在不脫離由權(quán)利要求范圍定義的本發(fā)明范疇的前提下,其能夠以本發(fā)明揭露的概念和特定的實(shí)施例作為基礎(chǔ),用以設(shè)計(jì)或修改其它架構(gòu)來(lái)執(zhí)行與本發(fā)明相同的目的。權(quán)利要求一種非循序執(zhí)行暨循序引退的微處理器,包括一分支信息表,包括N個(gè)分支信息項(xiàng)目,上述N個(gè)分支信息項(xiàng)目的每一者用以儲(chǔ)存一對(duì)應(yīng)分支指令的相關(guān)分支信息;以及一重排序緩沖器,耦接于上述分支信息表,上述重排序緩沖器包括M個(gè)項(xiàng)目,上述M個(gè)項(xiàng)目的每一者用以儲(chǔ)存上述微處理器內(nèi)的一未引退指令的相關(guān)信息,其中上述M個(gè)項(xiàng)目的每一者均包括一第一字段,用以指示上述未引退指令是否為一分支指令,若是,則還包括一第二字段用來(lái)儲(chǔ)存上述分支信息表的一對(duì)應(yīng)標(biāo)簽,該對(duì)應(yīng)標(biāo)簽用以指示上述分支信息表中儲(chǔ)存上述分支指令的相關(guān)分支信息的一對(duì)應(yīng)分支信息項(xiàng)目;其中N小于M。2.根據(jù)權(quán)利要求1所述的非循序執(zhí)行暨循序引退的微處理器,還包括一分支預(yù)測(cè)器,用以根據(jù)上述分支信息表,更新上述分支預(yù)測(cè)器的分支信息。3.根據(jù)權(quán)利要求1所述的非循序執(zhí)行暨循序引退的微處理器,還包括一執(zhí)行單元,用以通過(guò)儲(chǔ)存于上述分支信息表中的上述對(duì)應(yīng)分支指令的相關(guān)分支信息,執(zhí)行上述對(duì)應(yīng)分支指令。4.根據(jù)權(quán)利要求1所述的非循序執(zhí)行暨循序引退的微處理器,還包括一指令解碼器,在將上述分支指令解碼后,用以指派上述分支指令至上述分支信息表的一分支信息項(xiàng)目。5.根據(jù)權(quán)利要求4所述的非循序執(zhí)行暨循序引退的微處理器,還包括一暫存器別名表,用以指派上述分支指令至上述重排序緩沖器的一項(xiàng)目,并將上述分支指令于上述分支信息表的該分支信息項(xiàng)目的一標(biāo)簽填入上述重排序緩沖器的該項(xiàng)目。6.根據(jù)權(quán)利要求4所述的非循序執(zhí)行暨循序引退的微處理器,其中上述指令解碼器用以在無(wú)法指派上述分支信息表的上述N個(gè)分支信息項(xiàng)目的一者時(shí),拖延上述微處理器的指令提取。7.根據(jù)權(quán)利要求1所述的非循序執(zhí)行暨循序引退的微處理器,其中儲(chǔ)存于上述分支信息表的上述N個(gè)分支信息項(xiàng)目的每一者的上述對(duì)應(yīng)分支指令的相關(guān)分支信息包括以下一者或其組合之一上述對(duì)應(yīng)分支指令的一預(yù)測(cè)目標(biāo)地址;一全域分支樣式;一提取地址,用以提取上述對(duì)應(yīng)分支指令;上述微處理器的一傳回堆棧的多個(gè)指針;多個(gè)分支型態(tài)位,用以指示上述對(duì)應(yīng)分支指令的分支型態(tài);以及上述對(duì)應(yīng)分支指令的多個(gè)效能追蹤位。8.根據(jù)權(quán)利要求1所述的非循序執(zhí)行暨循序引退的微處理器,其中儲(chǔ)存于上述分支信息表的上述N個(gè)分支信息項(xiàng)目的每一者的上述對(duì)應(yīng)分支指令的上述分支信息包括多個(gè)指示位,用以指示上述對(duì)應(yīng)分支指令的一提取地址是否命中上述微處理器的一分支目標(biāo)地址高速緩存。9.根據(jù)權(quán)利要求1所述的非循序執(zhí)行暨循序引退的微處理器,其中上述M個(gè)項(xiàng)目的每一者還包括一第三字段,用以指示上述分支指令是否發(fā)生。10.一種關(guān)于非循序執(zhí)行暨循序引退的微處理器的信息儲(chǔ)存方法,包括儲(chǔ)存一分支信息表,其包括N個(gè)分支信息項(xiàng)目,其中上述N個(gè)分支信息項(xiàng)目的每一者用以儲(chǔ)存一對(duì)應(yīng)分支指令的相關(guān)分支信息;以及儲(chǔ)存上述微處理器內(nèi)的多個(gè)未引退指令的相關(guān)信息于一重排序緩沖器,上述重排序緩沖器包括M個(gè)項(xiàng)目,其中上述M個(gè)項(xiàng)目的每一者用以儲(chǔ)存一未引退指令的相關(guān)信息,其中上述M個(gè)項(xiàng)目的每一者均包括一第一字段,用以指示上述未引退指令是否為一分支指令,若是,則還包括一第二字段用來(lái)儲(chǔ)存上述分支信息表的一對(duì)應(yīng)標(biāo)簽,該對(duì)應(yīng)標(biāo)簽用以指示上述分支信息表中儲(chǔ)存上述分支指令的相關(guān)分支信息的一對(duì)應(yīng)分支信息項(xiàng)目;其中N小于M。11.根據(jù)權(quán)利要求10所述的關(guān)于非循序執(zhí)行暨循序引退的微處理器的信息儲(chǔ)存方法,還包括根據(jù)上述分支信息表,更新上述微處理器的一分支預(yù)測(cè)器的分支信息。12.根據(jù)權(quán)利要求10所述的關(guān)于非循序執(zhí)行暨循序引退的微處理器的信息儲(chǔ)存方法,還包括通過(guò)儲(chǔ)存于上述分支信息表中的上述對(duì)應(yīng)分支指令的相關(guān)分支信息,執(zhí)行上述對(duì)應(yīng)分支指令。13.根據(jù)權(quán)利要求10所述的關(guān)于非循序執(zhí)行暨循序引退的微處理器的信息儲(chǔ)存方法,還包括在將上述分支指令解碼后,指派上述分支指令至上述分支信息表的一分支信息項(xiàng)目。14.根據(jù)權(quán)利要求13所述的關(guān)于非循序執(zhí)行暨循序引退的微處理器的信息儲(chǔ)存方法,還包括指派上述分支指令至上述重排序緩沖器的一項(xiàng)目,并將上述分支指令于上述分支信息表的該分支信息項(xiàng)目的一標(biāo)簽填入上述重排序緩沖器的該項(xiàng)目。15.根據(jù)權(quán)利要求13所述的關(guān)于非循序執(zhí)行暨循序引退的微處理器的信息儲(chǔ)存方法,還包括在無(wú)法指派上述分支信息表的上述N個(gè)分支信息項(xiàng)目的一者時(shí),拖延上述微處理器的指令提取。16.根據(jù)權(quán)利要求10所述的關(guān)于非循序執(zhí)行暨循序引退的微處理器的信息儲(chǔ)存方法,其中儲(chǔ)存于上述分支信息表的上述N個(gè)分支信息項(xiàng)目的每一者的上述對(duì)應(yīng)分支指令的相關(guān)分支信息包括以下一者或其組合之一上述對(duì)應(yīng)分支指令的一預(yù)測(cè)目標(biāo)地址;一全域分支樣式;一提取地址,用以提取上述對(duì)應(yīng)分支指令;上述微處理器的一傳回堆棧的多個(gè)指針;多個(gè)分支型態(tài)位,用以指示上述對(duì)應(yīng)分支指令的分支型態(tài);以及上述對(duì)應(yīng)分支指令的多個(gè)效能追蹤位。全文摘要本發(fā)明提供一種非循序執(zhí)行暨循序引退的微處理器,包括分支信息表以及重排序緩沖器。分支信息表包括N個(gè)分支信息項(xiàng)目,N個(gè)分支信息項(xiàng)目的每一者用以儲(chǔ)存對(duì)應(yīng)分支指令的相關(guān)分支信息。重排序緩沖器耦接于分支信息表,重排序緩沖器包括M個(gè)項(xiàng)目,M個(gè)項(xiàng)目的每一者用以儲(chǔ)存微處理器內(nèi)的未引退指令的相關(guān)信息,其中M個(gè)項(xiàng)目的每一者均包括第一字段,用以指示未引退指令是否為分支指令,若是,則還包括第二字段用來(lái)儲(chǔ)存分支信息表的對(duì)應(yīng)標(biāo)簽,對(duì)應(yīng)標(biāo)簽用以指示分支信息表中儲(chǔ)存分支指令的相關(guān)分支信息的對(duì)應(yīng)分支信息項(xiàng)目,其中N小于M。文檔編號(hào)G06F9/38GK101840330SQ20101017142公開(kāi)日2010年9月22日申請(qǐng)日期2010年4月28日優(yōu)先權(quán)日2009年7月15日發(fā)明者布蘭特·比恩,湯瑪斯·C·麥當(dāng)勞申請(qǐng)人:威盛電子股份有限公司