專利名稱:與例外處理結(jié)合的猜測執(zhí)行指令取消裝置的制作方法
技術(shù)領(lǐng)域:
本發(fā)明涉及微處理器體系結(jié)構(gòu),特別涉及一種與例外處理結(jié)合的猜測執(zhí)行指令取消裝置。
背景技術(shù):
當前各種微處理器在解決分支轉(zhuǎn)移一般采取如下兩種方案(1)暫停取指,直到分支結(jié)果出來。這種辦法為了減少延遲,通常會采取加延遲槽的方法,但不管轉(zhuǎn)移是否成功一般都會引起一定延遲。如MIPS的R4000微處理器,見Joe Heinrich,MIPS R4000 MicroprocessorUser’s manual,MIPS Technology,Inc.。
(2)采取一定程度的猜測,在分支結(jié)果出來之前,就按猜測的地址取指。這種方法當猜測正確時,并不引起延時,但當猜測錯誤時,就要取消已經(jīng)取進的指令并重新取指,從而引起流水線斷流,增加了延時。如MIPS的R10000等微處理器,見Kenneth C.Yeager,The Mips R10000Superscalar Microprocessor,IEEE Micro 1996 Apr。
第二種方案為當前流行方案,被大多數(shù)微處理器采用,且通常與流水線的動態(tài)調(diào)度技術(shù)結(jié)合在一起。在這種方案中有兩個核心問題一是提高猜測準確度,從而減小取消指令的幾率。二是采取有效的指令取消機制,從而減小猜錯時對流水線引起的影響。
在當前的處理器中,為了避免順序發(fā)射帶來的流水線阻塞(因為分支指令通常要等操作數(shù)準備好才發(fā)射),有的會采取動態(tài)發(fā)射,如SGI/MIPS公司的MIPS R10000微處理器。在R10000中,分支指令仍然可以動態(tài)發(fā)射,但由此在猜測錯誤取消指令時,帶來了一些問題(1)R10000在遇到分支指令時,將可選的地址和各寄存器備份到分支堆棧(branch stack)中,以備以后恢復(fù),這種做法不可避免地帶來控制邏輯和設(shè)計的復(fù)雜性;如圖1所示,當譯碼時發(fā)現(xiàn)轉(zhuǎn)移指令,將寄存器的映射表以及有關(guān)的控制位保存到轉(zhuǎn)移棧中。當預(yù)測錯誤時,就從轉(zhuǎn)移棧中恢復(fù)這些信息。但某些Cache操作是不可恢復(fù)的。
(2)R10000的這種取消機制可能會帶來一些副作用(side effects),如非一致性Cache操作(non-coherent cached operations)帶來的Cache的狀態(tài)和數(shù)據(jù)的變化是不可恢復(fù)的,從而使恢復(fù)現(xiàn)場不精確,因此要靠遵守一些規(guī)范來減少這種情況,見Joe Heinrich,MIPS R10000Microprocessor User’s manual,MIPS Technology,Inc.。
發(fā)明內(nèi)容
本發(fā)明的目的是提供一種與例外處理結(jié)合的猜測執(zhí)行指令取消裝置,將分支錯誤作為一種特殊中斷處理,如發(fā)生預(yù)測錯誤,則置起一種特殊的中斷,通知各部件進行恢復(fù)現(xiàn)場處理。
為實現(xiàn)上述目的,與例外處理結(jié)合的猜測執(zhí)行指令取消裝置包括操作隊列,發(fā)出控制信號,執(zhí)行轉(zhuǎn)移指令的部件,其根據(jù)轉(zhuǎn)移條件進行判斷,并將結(jié)果寫回到操作隊列。
本發(fā)明采用的中斷處理具有精確性,保證了現(xiàn)場恢復(fù)的精確性;同時因為將分支錯誤與中斷處理結(jié)合起來,又減少了邏輯的復(fù)雜度,更利于實現(xiàn)和提高主頻。與其它處理器的指令取消機制比起來,本發(fā)明具有結(jié)構(gòu)簡單現(xiàn)場精確的特點。
圖1是現(xiàn)有技術(shù)分支恢復(fù)結(jié)構(gòu)圖。
圖2是本發(fā)明的分支恢復(fù)結(jié)構(gòu)圖。
發(fā)明的實施方式轉(zhuǎn)移指令由ALU(算術(shù)與邏輯部件)或浮點FALU(浮點部件)執(zhí)行,并把轉(zhuǎn)移成功與否等信息寫回到操作隊列,轉(zhuǎn)移指令結(jié)束時再根據(jù)轉(zhuǎn)移指令執(zhí)行的結(jié)果決定是否取消后續(xù)已經(jīng)猜測執(zhí)行的操作。因此在發(fā)射時不用等待操作數(shù)準備好。如果轉(zhuǎn)移指令所需的操作數(shù)沒有準備好,像普通操作一樣在保留站等待。ALU或FALU執(zhí)行條件轉(zhuǎn)移指令時,根據(jù)轉(zhuǎn)移條件進行判斷,并將結(jié)果寫回到操作隊列(對于條件轉(zhuǎn)移指令,結(jié)果為1表示轉(zhuǎn)移成功)。目標轉(zhuǎn)移地址在寄存器中的轉(zhuǎn)移指令JR,JALR等也通過ALU,利用ALU的保留站等待所需的目標地址。
當條件轉(zhuǎn)移的轉(zhuǎn)移條件確定時,后面的操作可能已經(jīng)發(fā)射到功能部件執(zhí)行,有的操作可能已經(jīng)寫回。如果轉(zhuǎn)移指令猜錯,我們巧妙地利用了例外處理的取消邏輯對猜錯的轉(zhuǎn)移指令后的指令進行取消。即在轉(zhuǎn)移指令寫回時,要根據(jù)結(jié)果形成例外向量并寫入操作隊列相應(yīng)項的ex(ex=1表示發(fā)生例外)和excode(在ex=1時,excode表示例外原因)域,把轉(zhuǎn)移指令猜錯作為一種特殊的例外,在轉(zhuǎn)移指令結(jié)束時利用例外處理的通路通知各功能部件取消當前正在執(zhí)行的操作,并取消后面已經(jīng)取進來的指令。從而解決了指令取消問題。圖2給出一個具體實施例,當譯碼時發(fā)現(xiàn)轉(zhuǎn)移指令,不做單獨處理;當預(yù)測錯誤時,按照中斷的處理方式產(chǎn)生一個特殊中斷,進行指令取消和現(xiàn)場恢復(fù)。因為中斷是精確的,所以,所有的現(xiàn)場都是精確的,同時恢復(fù)了中斷的邏輯(本例中,用EX=1表示有中斷發(fā)生,用Excode=111111表示此中斷是由轉(zhuǎn)移引起的)。
權(quán)利要求
1.一種與例外處理結(jié)合的猜測執(zhí)行指令取消裝置,包括通用寄存器及其映射表、浮點寄存器及其映射表,其特征在于還包括操作隊列,發(fā)出控制信號;執(zhí)行轉(zhuǎn)移指令的部件,其根據(jù)轉(zhuǎn)移條件進行判斷,并將結(jié)果寫回到操作隊列。
2.根據(jù)權(quán)利要求1所述的裝置,其特征在于所述的轉(zhuǎn)移指令部件包括算術(shù)與邏輯部件和浮點部件。
3.根據(jù)權(quán)利要求1所述的裝置,其特征在于當轉(zhuǎn)移指令結(jié)束時,利用例外處理的通路通知各功能部件取消當前正在執(zhí)行的操作,并取消后面已經(jīng)取進來的指令。
全文摘要
一種與例外處理結(jié)合的猜測執(zhí)行指令取消裝置包括通用寄存器及其映射表、浮點寄存器及其映射表,還包括執(zhí)行轉(zhuǎn)移指令的部件,其根據(jù)轉(zhuǎn)移條件進行判斷,并將結(jié)果寫回到操作隊列。本發(fā)明采用的中斷處理具有精確性,保證了現(xiàn)場恢復(fù)的精確性;同時因為將分支錯誤與中斷處理結(jié)合起來,又減少了邏輯的復(fù)雜度,更利于實現(xiàn)和提高主頻。與其它處理器的指令取消機制比起來,本發(fā)明具有結(jié)構(gòu)簡單現(xiàn)場精確的特點。
文檔編號G06F9/30GK1410884SQ0114149
公開日2003年4月16日 申請日期2001年9月27日 優(yōu)先權(quán)日2001年9月27日
發(fā)明者胡偉武, 王海洋 申請人:中國科學(xué)院計算技術(shù)研究所