欧美在线观看视频网站,亚洲熟妇色自偷自拍另类,啪啪伊人网,中文字幕第13亚洲另类,中文成人久久久久影院免费观看 ,精品人妻人人做人人爽,亚洲a视频

二進(jìn)制翻譯中標(biāo)志位的優(yōu)化處理方法

文檔序號(hào):6419955閱讀:145來源:國(guó)知局

專利名稱::二進(jìn)制翻譯中標(biāo)志位的優(yōu)化處理方法
技術(shù)領(lǐng)域
:本發(fā)明涉及指令集體系結(jié)構(gòu)、二進(jìn)制翻譯
技術(shù)領(lǐng)域
,特別是一種二進(jìn)制翻譯中標(biāo)志位的優(yōu)化處理方法,及相應(yīng)編譯優(yōu)化技術(shù)。
背景技術(shù)
:二進(jìn)制翻譯是代碼移植的重要方法之一,可以將一種指令集體系結(jié)構(gòu)(InstructionSetArchitecture,ISA)上的代碼翻譯到另一種ISA上運(yùn)行。二進(jìn)制翻譯的目的不僅僅是仿真源ISA,更高的目標(biāo)是翻譯產(chǎn)生的代碼在目標(biāo)ISA上運(yùn)行的速度等同甚至超過源ISA的原有代碼?;谲浖亩M(jìn)制翻譯,可以分為三類ERAltman,DKaeliandYSheffer.Welcometotheopportunitiesofbinarytranslation.IEEEComputer,2000,33(3)40~45解釋執(zhí)行,靜態(tài)翻譯,動(dòng)態(tài)翻譯,由于三類方法各有所長(zhǎng),近年來的研究更傾向于三類方法的結(jié)合。無論何種翻譯形式,都必須與原程序的語義相同、執(zhí)行結(jié)果相同,因此目標(biāo)ISA中必須保存在源ISA的專用寄存器中保存的系統(tǒng)狀態(tài)。在CISCISA上(如Intel的X86系列、Digital的VAX、以及Motorola68000等)存在為保存條件碼而用到的標(biāo)志寄存器,很多指令的執(zhí)行都會(huì)對(duì)其中的一部分標(biāo)志位進(jìn)行設(shè)置,而另外一些指令(如條件指令)可以通過這些標(biāo)志位的狀態(tài)來決定程序下一步的執(zhí)行。然而對(duì)于RISCISA(如MIPS,Alpha),通常并不包含設(shè)置狀態(tài)標(biāo)志的指令。因此,目標(biāo)RISCISA只能通過一系列指令來仿真源ISA的狀態(tài)標(biāo)志。由于標(biāo)志寄存器使用頻繁,對(duì)它的處理既關(guān)系到程序執(zhí)行的正確性,又關(guān)系到程序翻譯后的執(zhí)行效率。國(guó)際上對(duì)二進(jìn)制翻譯的研究已有二十年的歷史,所有涉及到標(biāo)志位的翻譯系統(tǒng),都對(duì)標(biāo)志位進(jìn)行了處理和優(yōu)化,所采用的方法與各自系統(tǒng)的特點(diǎn)有關(guān),如Digital公司的FX!RJHookwayandMAHerdeg.DigitalFX!32combiningemulationandbinarytranslation.DigitalTechnicalJ,1977,9(1)3~12和Sun公司的WabiPHohensee,MMyszewski,andDReese.WABICPUemulation.HotChipsVIII,PaloAlto,CA1996都采用延遲計(jì)算方法對(duì)模擬器中的標(biāo)志位處理進(jìn)行了優(yōu)化;Queensland大學(xué)的UQBTCCifuentesandMVanEmmerik.UQBTadaptablebinarytranslationatlowcost.IEEEComputer,2000,33(3)60~66等一些靜態(tài)翻譯系統(tǒng),使用數(shù)據(jù)流分析法刪除冗余標(biāo)志位處理;Transmeta公司的CodeMorphingAKlaiber.ThetechnologybehindCrusoeprocessor.TransmetaCorporation,TechRepJan.2000軟件則有專門的硬件支持標(biāo)志位的處理。目前對(duì)靜態(tài)翻譯采用的數(shù)據(jù)流分析優(yōu)化標(biāo)志位的方法已經(jīng)比較成熟,本發(fā)明著重解決了解釋執(zhí)行和動(dòng)態(tài)翻譯中標(biāo)志位處理優(yōu)化問題,提出了新的標(biāo)志位優(yōu)化處理方法。不同指令集體系結(jié)構(gòu)(ISA)之間的差異,對(duì)利用二進(jìn)制翻譯技術(shù)移植代碼造成了很大的困難,其中為了實(shí)現(xiàn)沒有標(biāo)志位寄存器支持的目標(biāo)ISA對(duì)源ISA標(biāo)志位的仿真,需要增加大量的目標(biāo)ISA代碼。
發(fā)明內(nèi)容本發(fā)明提供了一種二進(jìn)制翻譯中標(biāo)志位的優(yōu)化處理方法,其目的在于減少在二進(jìn)制翻譯過程中,由于對(duì)源ISA的標(biāo)志位仿真而生成的大量用于標(biāo)志位處理的目標(biāo)ISA代碼,利用按需生成標(biāo)志位處理指令的原則減少冗余代碼,提高目標(biāo)代碼的質(zhì)量,加速二進(jìn)制翻譯過程和翻譯生成代碼的執(zhí)行。本發(fā)明解決了從源ISA到目標(biāo)ISA的二進(jìn)制翻譯過程中的標(biāo)志位處理問題,可以很好地減少用于仿真源ISA標(biāo)志位的目標(biāo)ISA指令,從而提高此類翻譯器的效率。本發(fā)明針對(duì)二進(jìn)制翻譯中的解釋執(zhí)行提出了即時(shí)計(jì)算與延遲計(jì)算相結(jié)合(InstantComputingandDelayedComputing)的解決方法,用于優(yōu)化解釋執(zhí)行中的標(biāo)志位處理,減少了僅用延遲計(jì)算方法帶來的目標(biāo)代碼訪存開銷,以下簡(jiǎn)稱ICDC法。本發(fā)明針對(duì)二進(jìn)制翻譯中的動(dòng)態(tài)翻譯提出了數(shù)據(jù)流分析和延遲計(jì)算相結(jié)合(DataFlowAnalysisandDelayedComputing)的解決方法,優(yōu)化動(dòng)態(tài)翻譯時(shí)的標(biāo)志位處理,該方法在基本翻譯單元內(nèi)采用數(shù)據(jù)流分析方法刪除處理冗余標(biāo)志位的目標(biāo)代碼,而在翻譯單元之間采用延遲計(jì)算方法減少翻譯單元之間處理冗余標(biāo)志位而生成的冗余目標(biāo)代碼。以下簡(jiǎn)稱DFADC法。通過上述兩種方法,可以使翻譯時(shí)減少用于仿真源ISA的標(biāo)志位而產(chǎn)生的目標(biāo)代碼數(shù)量,提高了翻譯代碼的質(zhì)量,從而使翻譯執(zhí)行速度得到提高。本發(fā)明用于計(jì)算機(jī)之間二進(jìn)制翻譯過程中的標(biāo)志位處理,廣泛用于計(jì)算機(jī)之中。一、解釋執(zhí)行中的即時(shí)計(jì)算與延遲計(jì)算相結(jié)合的方法(ICDC法)統(tǒng)計(jì)發(fā)現(xiàn),多個(gè)標(biāo)志位的定值并非是孤立的,通常是一條指令對(duì)多個(gè)標(biāo)志同時(shí)定值。例如X86處理器中,絕大部分對(duì)標(biāo)志位定值的指令,都是對(duì)全部常用標(biāo)志一起定值,參見IntelArchitectureSoftwareDeveloper’sManualVolume1BasicArchitecture的附錄A。為了避免大量訪存操作,我們對(duì)所有標(biāo)志定義相同的信息存儲(chǔ)單元,用來保存同一條指令信息。當(dāng)某條指令對(duì)所有N個(gè)標(biāo)志位同時(shí)定值時(shí),使用延遲計(jì)算的方法,將該指令的操作碼、操作數(shù)及運(yùn)算結(jié)果保存到預(yù)設(shè)的存儲(chǔ)單元供延遲計(jì)算標(biāo)志位時(shí)使用;而當(dāng)某條指令僅對(duì)N個(gè)標(biāo)志位中的部分定值,則根據(jù)定值的標(biāo)志位數(shù)目,按照下述兩種規(guī)則將延遲計(jì)算與即時(shí)計(jì)算結(jié)合使用a)若定值的標(biāo)志數(shù)目少于等于N/2個(gè),則在模擬該指令時(shí)將這三個(gè)標(biāo)志也根據(jù)運(yùn)算情況即時(shí)計(jì)算出來,存放到模擬的標(biāo)志寄存器中,當(dāng)后續(xù)指令引用這幾個(gè)標(biāo)志時(shí),可以直接取用寄存器中的狀態(tài),無需從信息存儲(chǔ)單元中取出信息延遲計(jì)算出標(biāo)志。信息存儲(chǔ)單元的內(nèi)容保持不變,不用本指令的信息覆蓋。b)若定值的標(biāo)志數(shù)大于N/2個(gè),則首先將不被本指令定值的幾個(gè)標(biāo)志位狀態(tài)確定下來(這可能需要通過信息存儲(chǔ)單元中前面指令保存的信息,延遲計(jì)算出來,將結(jié)果存入標(biāo)志寄存器)。然后再將該指令的相關(guān)信息存入存儲(chǔ)信息單元,以供后續(xù)指令引用這些被本指令定值的標(biāo)志時(shí)使用(后續(xù)指令需據(jù)此信息延遲計(jì)算標(biāo)志)。ICDC法流程描述定義一個(gè)信息存儲(chǔ)單元M{opcode,operand1,operand2,result}。定義模擬的標(biāo)志寄存器Rfx,用于保存源ISA的N個(gè)標(biāo)志位。定義與每個(gè)標(biāo)志Fx相對(duì)應(yīng)的狀態(tài)指示Sx{defined,undefined},defined表示該標(biāo)志已經(jīng)被計(jì)算,且結(jié)果已經(jīng)置于Rfx中。當(dāng)解釋到某條指令,按照下述流程解釋執(zhí)行該指令1.若該指令需要引用某個(gè)標(biāo)志,則讀取Rfx的相應(yīng)Sx狀態(tài)i.若Sx=undefined,即該標(biāo)志沒有被計(jì)算,則讀取M中的信息,做相應(yīng)的標(biāo)志計(jì)算,得出標(biāo)志狀態(tài),將該狀態(tài)寫回相應(yīng)Rfx,并將Rfx相應(yīng)Sx改為defined,然后根據(jù)該結(jié)果解釋執(zhí)行該條指令;ii.若Sx=defined,即該標(biāo)志已經(jīng)被計(jì)算,則直接根據(jù)Rfx中的標(biāo)志狀態(tài)進(jìn)行該指令的解釋執(zhí)行。2.若該指令對(duì)n個(gè)標(biāo)志有定值,則i.若n<=N/2,則在解釋執(zhí)行該指令的同時(shí),即時(shí)計(jì)算出這n個(gè)標(biāo)志狀態(tài),寫回相應(yīng)Rfx,并將Rfx相應(yīng)的Sx狀態(tài)改為defined;ii.若n>N/2,則首先計(jì)算本指令不對(duì)其定值的那N-n個(gè)標(biāo)志狀態(tài)(這取決于這N-n個(gè)標(biāo)志原來對(duì)應(yīng)的Sx,可能需要通過讀取M中的值進(jìn)行計(jì)算,也可能這些標(biāo)志狀態(tài)已經(jīng)是計(jì)算好存入Rfx中的),之后這幾個(gè)標(biāo)志的Sx改為defined,結(jié)果寫回相應(yīng)的Rfx。最后將該指令的相應(yīng)信息保存到M,且將需定值的n個(gè)標(biāo)志對(duì)應(yīng)的Sx改為undefined;重復(fù)上述步驟直到結(jié)束。上述即時(shí)計(jì)算與延遲計(jì)算相結(jié)合的標(biāo)志位處理方法,利用源ISA中的指令對(duì)標(biāo)志位定值的特點(diǎn),減少了延遲計(jì)算模擬標(biāo)志位所造成的目標(biāo)ISA代碼訪存開銷,使解釋執(zhí)行的效率得到了提高。二、動(dòng)態(tài)翻譯中的數(shù)據(jù)流分析與延遲計(jì)算相結(jié)合的方法(DFADC法)動(dòng)態(tài)二進(jìn)制翻譯僅在源ISA程序代碼被執(zhí)行時(shí)才翻譯這段代碼,源程序的控制流關(guān)系是隨著程序的執(zhí)行逐漸形成的,而并非在動(dòng)態(tài)時(shí)刻生成全部的控制流圖。通常情況下,在翻譯一段代碼時(shí)(此時(shí)并未執(zhí)行本段代碼),并不知道其后繼,因而靜態(tài)翻譯所采用的數(shù)據(jù)流分析方法,在動(dòng)態(tài)翻譯中只能應(yīng)用在一個(gè)翻譯單元的局部范圍內(nèi)(如一個(gè)基本塊)。為了能使后繼翻譯單元能夠引用前驅(qū)翻譯單元為標(biāo)志位定的值,只能在翻譯時(shí)在每個(gè)翻譯單元的出口增加幾條指令來計(jì)算出本翻譯單元內(nèi)部對(duì)標(biāo)志位最終的定值結(jié)果,而不論后繼翻譯單元是否會(huì)引用。所以,數(shù)據(jù)流分析刪除冗余標(biāo)志位定值的方法對(duì)動(dòng)態(tài)翻譯達(dá)到的優(yōu)化效果有限,在每個(gè)翻譯單元出口所增加的計(jì)算標(biāo)志位值的指令,仍然可能是冗余標(biāo)志位定值指令。針對(duì)動(dòng)態(tài)翻譯的特點(diǎn),我們?cè)趧?dòng)態(tài)翻譯過程中的標(biāo)志位優(yōu)化,結(jié)合靜態(tài)翻譯和解釋執(zhí)行的標(biāo)志位優(yōu)化策略,提出在基本翻譯單元內(nèi)采用數(shù)據(jù)流分析方法,而在翻譯單元間使用延遲計(jì)算的方法,使其既能夠減少基本翻譯單元內(nèi)部,又能減少基本翻譯單元之間因處理冗余標(biāo)志位而生成的冗余目標(biāo)代碼。該方法規(guī)則如下a)翻譯單元中的標(biāo)志定值引用進(jìn)行數(shù)據(jù)流分析,標(biāo)識(shí)出冗余的標(biāo)志位定值,在翻譯該翻譯單元時(shí),不對(duì)此類定值進(jìn)行處理。b)若某條指令是該翻譯單元中對(duì)某個(gè)標(biāo)志位的最后定值點(diǎn),則在翻譯該指令時(shí),生成保存當(dāng)前狀態(tài)(可能包括源操作數(shù),執(zhí)行結(jié)果以及操作碼)的指令,供以后真正需要該標(biāo)志值時(shí)計(jì)算使用,但并不生成即時(shí)計(jì)算當(dāng)前標(biāo)志值的指令。c)若某條指令需要對(duì)某個(gè)標(biāo)志進(jìn)行引用,但該標(biāo)志值的定值點(diǎn)并不是在本翻譯單元內(nèi)部,則需要多翻譯生成若干指令,用于讀取前驅(qū)翻譯單元為這個(gè)標(biāo)志位定值而保存的信息,并且依據(jù)這些信息進(jìn)行標(biāo)志位的計(jì)算。DFADC法流程描述為了實(shí)現(xiàn)上述基本翻譯單元內(nèi)數(shù)據(jù)流分析,翻譯單元間延遲計(jì)算的方法,我們對(duì)靜態(tài)數(shù)據(jù)流分析略做修改,使之既可以刪除基本翻譯單元內(nèi)的冗余定值,又可以為延遲計(jì)算提供信息,從而可以指明某次定值是基本單元內(nèi)部使用、基本單元外部可能使用、或是無用定值。獲取這些信息后,按照下述流程處理在翻譯某個(gè)基本翻譯單元B時(shí),若翻譯指令I(lǐng)y,y[1,N]則1.若Iy引用Fxa)若Sx為defined,翻譯生成指令,用于讀取Rfx中Fx的值,b)否則,翻譯生成指令,用于讀取Mx中的值,并計(jì)算Fx;(即為延遲計(jì)算)翻譯生成指令,用于根據(jù)Fx的不同值而執(zhí)行不同路徑或完成不同的功能;2.若Iy定值Fxa)若該定值將被翻譯單元內(nèi)指令使用,則翻譯生成指令,用于計(jì)算Fx并將計(jì)算得出的Fx值存入Rfx中,還要將Sx改為defined;b)若該定值可能會(huì)被翻譯單元外指令使用,則翻譯生成指令,用于將延遲計(jì)算Fx所需的當(dāng)前信息保存到Mx并將Sx改為undefined;c)若該定值是無用定值,則不生成任何處理標(biāo)志位的指令;3.若Iy對(duì)Fx無影響,則不生成任何處理標(biāo)志位的指令;上述流程中,F(xiàn)x為標(biāo)志值、Iy為指令、B為基本翻譯單元、Rfx為標(biāo)志寄存器、Sx為標(biāo)志寄存器的相應(yīng)狀態(tài)位、Mx為信息存儲(chǔ)單元(Mx),該翻譯單元有N條指令。其中Rfx保存標(biāo)志Fx的值;Sx用于指明相應(yīng)的標(biāo)志寄存器Rfx中的值是否可用,若為defined,則可用,若為undefined,則需要對(duì)該標(biāo)志值計(jì)算后才能使用;Mx用于保存用于計(jì)算Fx正確值的信息。DFADC方法中提到的翻譯單元間使用延遲計(jì)算方法,同樣結(jié)合了部分延遲計(jì)算,由于在ICDC方法中已經(jīng)說明,在此不再贅述。圖1是本發(fā)明的二進(jìn)制翻譯中標(biāo)志位即時(shí)計(jì)算和延遲計(jì)算的示意圖;圖2是本發(fā)明的解釋執(zhí)行時(shí)對(duì)標(biāo)志位處理的即時(shí)計(jì)算與延遲計(jì)算相結(jié)合的ICDC處理方法的流程圖;圖3是本發(fā)明的動(dòng)態(tài)翻譯時(shí)對(duì)標(biāo)志位處理的基本翻譯單元內(nèi)數(shù)據(jù)流分析與基本翻譯單元間延遲計(jì)算相結(jié)合的DFADC處理方法的流程圖。圖1中,可以看出這兩種處理標(biāo)志位的方法的區(qū)別圖中A表示了源ISA的一段代碼,(1)表示該處的指令執(zhí)行后會(huì)改變某個(gè)標(biāo)志位F的值,(2)表示該處的指令需要根據(jù)標(biāo)志F的值進(jìn)行相應(yīng)的操作(如x86的CMP指令改變ZF標(biāo)志,JZ指令根據(jù)ZF標(biāo)志決定控制轉(zhuǎn)移是否成功);圖B表示目標(biāo)ISA對(duì)圖A所示的標(biāo)志位定值進(jìn)行即時(shí)計(jì)算,即在處理(1)處的指令時(shí),模擬全部標(biāo)志位定值語義,供處理(2)處的指令時(shí)使用;圖C表示目標(biāo)ISA對(duì)圖A所示的標(biāo)志位定值進(jìn)行延遲計(jì)算,即在處理(1)處的指令時(shí),不模擬標(biāo)志位定值語義,而是保存(1)處的指令信息,直到處理(2)處的指令時(shí),才讀取保存的指令信息,僅模擬生成該處實(shí)際需要使用的標(biāo)志值。可以看出延遲計(jì)算與即時(shí)計(jì)算相比,節(jié)省了許多無用標(biāo)志模擬的開銷,但也增加了保存和讀取指令信息的開銷。圖2中,流程圖中字母含義信息存儲(chǔ)單元M{opcode,operand1,operand2,result}。模擬的標(biāo)志寄存器Rfx,用于保存源ISA的N個(gè)標(biāo)志位Fx內(nèi)容。與每個(gè)標(biāo)志Fx相對(duì)應(yīng)的狀態(tài)指示Sx{defined,undefined},defined表示該標(biāo)志已經(jīng)被計(jì)算,且結(jié)果已經(jīng)置于Rfx中。首先執(zhí)行步驟S1取出一條源ISA指令,若該指令不是結(jié)束指令,則分下述三種情況1、對(duì)某些標(biāo)志位有引用,則執(zhí)行步驟S2依次讀出Rfx所對(duì)應(yīng)的狀態(tài)Sx,若Sx為undefined,則執(zhí)行步驟S3讀取信息存儲(chǔ)單元M中的內(nèi)容延遲計(jì)算出標(biāo)志fx的狀態(tài),寫回Rfx,并將相應(yīng)的Sx改為defined。最后執(zhí)行步驟S4,、根據(jù)Rfx中的標(biāo)志狀態(tài)Fx解釋執(zhí)行該指令。讀取Rfx標(biāo)志狀態(tài),解釋執(zhí)行該指令。2、對(duì)n個(gè)(n>0)標(biāo)志位有定值,則若n>N/2則依次執(zhí)行步驟S5.1~S5.4;1、延遲計(jì)算出剩余的N-n個(gè)標(biāo)志狀態(tài),并寫回相應(yīng)的Rfx。S5.2、相應(yīng)的Sx置definedS5.3、保存該指令的相應(yīng)信息到信息存取單元M,且需定值的那n個(gè)標(biāo)志對(duì)應(yīng)的Sx置為undefined(以備延遲計(jì)算);若n<=N/2則依次執(zhí)行步驟S6.1~S6.3;6.1、即時(shí)計(jì)算出這n個(gè)標(biāo)志狀態(tài),并寫回相應(yīng)的RfxS6.2、相應(yīng)的Sx置為definedS6.3、解釋執(zhí)行該指令。3、若該指令對(duì)標(biāo)志位無引用、定值,則執(zhí)行步驟S7,直接解釋執(zhí)行該指令。圖3中的字母含義同圖2。預(yù)處理部分對(duì)一個(gè)動(dòng)態(tài)翻譯單元完成改進(jìn)的數(shù)據(jù)流分析,獲取了該翻譯單元每條指令對(duì)標(biāo)志位定值的分類信息,在此信息基礎(chǔ)上再按下述步驟依次處理該翻譯單元的每條指令。執(zhí)行步驟S8,取出源ISA指令,若該指令不是翻譯單元結(jié)束指令,則1、若該指令引用標(biāo)志Fx,則判斷Fx所對(duì)應(yīng)的Sx是否為defined,若是,則說明Rfx寄存器中的值可以直接使用,執(zhí)行步驟S9,翻譯生成用于讀取Rfx中Fx值的目標(biāo)指令,執(zhí)行步驟S10翻譯生成指令,用于根據(jù)Fx的不同值而執(zhí)行不同路徑或完成不同的功能;若不是,則說明此時(shí)Rfx中的Fx值不是正確的值,則執(zhí)行步驟S11翻譯生成指令,用于讀取Mx中的值,并延遲計(jì)算出Fx;將該值存入Rfx,Sx置defined,延遲計(jì)算出正確的Fx值,然后執(zhí)行步驟S10。2、若該指令定值標(biāo)志Fx,則根據(jù)預(yù)處理得到的信息,進(jìn)行下述處理若該定值在本翻譯單元內(nèi)部使用,則執(zhí)行步驟S12翻譯生成指令,用于計(jì)算Fx并將計(jì)算得出的Fx值存入Rfx中,還要將Sx改為defined;;若該定值可能在本翻譯單元外使用,則執(zhí)行步驟S13翻譯生成指令,用于將延遲計(jì)算Fx所需的當(dāng)前信息保存到Mx并將Sx改為undefined;;若該定值不被使用,則執(zhí)行步驟S14不生成任何處理標(biāo)志位的指令;權(quán)利要求1.一種二進(jìn)制翻譯中標(biāo)志位的優(yōu)化處理方法,解釋執(zhí)行中標(biāo)志位的ICDC解決方法有別于單獨(dú)的標(biāo)志位即時(shí)計(jì)算或延遲計(jì)算方法,其特征是,將兩種方法結(jié)合起來,既利用了延遲標(biāo)志計(jì)算來減少冗余的標(biāo)志計(jì)算開銷,又利用即時(shí)計(jì)算來減少純延遲計(jì)算方法造成的訪存開銷。2.一種二進(jìn)制翻譯中標(biāo)志位的優(yōu)化處理方法,動(dòng)態(tài)翻譯中標(biāo)志位的DFADC解決方法,其特征在于,在基本翻譯單元內(nèi)部使用數(shù)據(jù)流分析法減少處理標(biāo)志生成的目標(biāo)代碼;利用延遲計(jì)算法減少基本翻譯單元之間的因處理標(biāo)志而增加的目標(biāo)代碼。3.根據(jù)權(quán)利要求1和2的解決方法,其特征在于,在二進(jìn)制翻譯過程中,減少不必要的標(biāo)志位處理指令,加快二進(jìn)制代碼翻譯執(zhí)行過程。4.根據(jù)權(quán)利要求1的二進(jìn)制翻譯中標(biāo)志位的優(yōu)化處理方法,解釋執(zhí)行時(shí)對(duì)標(biāo)志位處理的即時(shí)計(jì)算與延遲計(jì)算相結(jié)合,其步驟如下步驟S1取出一條源ISA指令,若該指令不是結(jié)束指令,則分下述三種情況1)對(duì)某些標(biāo)志位有引用,則執(zhí)行步驟S2依次讀出Rfx所對(duì)應(yīng)的狀態(tài)Sx,若Sx為undefined,則執(zhí)行步驟S3讀取信息存儲(chǔ)單元M中的內(nèi)容延遲計(jì)算出標(biāo)志fx的狀態(tài),寫回Rfx,并將相應(yīng)的Sx改為defined;最后執(zhí)行步驟S4、根據(jù)Rfx中的標(biāo)志狀態(tài)Fx解釋執(zhí)行該指令,讀取Rfx標(biāo)志狀態(tài),解釋執(zhí)行該指令;2)對(duì)n個(gè)(n>0)標(biāo)志位有定值,則若n>N/2則依次執(zhí)行步驟S5.1~S5.4;1、延遲計(jì)算出剩余的N-n個(gè)標(biāo)志狀態(tài),并寫回相應(yīng)的Rfx,S5.2、相應(yīng)的Sx置definedS5.3、保存該指令的相應(yīng)信息到信息存取單元M,且需定值的那n個(gè)標(biāo)志對(duì)應(yīng)的Sx置為undefined,以備延遲計(jì)算;若n<=N/2則依次執(zhí)行步驟S6.1~S6.3;6.1、即時(shí)計(jì)算出這n個(gè)標(biāo)志狀態(tài),并寫回相應(yīng)的RfxS6.2、相應(yīng)的Sx置為definedS6.3、解釋執(zhí)行該指令;3)若該指令對(duì)標(biāo)志位無引用、定值,則執(zhí)行步驟S7,直接解釋執(zhí)行該指令。5.根據(jù)權(quán)利要求2的二進(jìn)制翻譯中標(biāo)志位的優(yōu)化處理方法,動(dòng)態(tài)翻譯時(shí)對(duì)標(biāo)志位處理的基本翻譯單元內(nèi)數(shù)據(jù)流分析與基本翻譯單元間延遲計(jì)算相結(jié)合,其步驟如下步驟S8,取出源ISA指令,若該指令不是翻譯單元結(jié)束指令,則1)若該指令引用標(biāo)志Fx,則判斷Fx所對(duì)應(yīng)的Sx是否為defined,若是,則說明Rfx寄存器中的值可以直接使用,執(zhí)行步驟S9,翻譯生成用于讀取Rfx中Fx值的目標(biāo)指令,執(zhí)行步驟S10翻譯生成指令,用于根據(jù)Fx的不同值而執(zhí)行不同路徑或完成不同的功能;若不是,則說明此時(shí)Rfx中的Fx值不是正確的值,則執(zhí)行步驟S11翻譯生成指令,用于讀取Mx中的值,并延遲計(jì)算出Fx;將該值存入Rfx,Sx置defined,延遲計(jì)算出正確的Fx值,然后執(zhí)行步驟S10;2)若該指令定值標(biāo)志Fx,則根據(jù)預(yù)處理得到的信息,進(jìn)行下述處理若該定值在本翻譯單元內(nèi)部使用,則執(zhí)行步驟S12翻譯生成指令,用于計(jì)算Fx并將計(jì)算得出的Fx值存入Rfx中,還要將Sx改為defined;若該定值可能在本翻譯單元外使用,則執(zhí)行步驟S13翻譯生成指令,用于將延遲計(jì)算Fx所需的當(dāng)前信息保存到Mx并將Sx改為undefined;若該定值不被使用,則執(zhí)行步驟S14不生成任何處理標(biāo)志位的指令。全文摘要本發(fā)明涉及指令集體系結(jié)構(gòu)、二進(jìn)制翻譯
技術(shù)領(lǐng)域
,本發(fā)明針對(duì)二進(jìn)制翻譯中的解釋執(zhí)行提出了即時(shí)計(jì)算與延遲計(jì)算相結(jié)合的解決方法,用于優(yōu)化解釋執(zhí)行中的標(biāo)志位處理。對(duì)二進(jìn)制翻譯中的動(dòng)態(tài)翻譯提出了數(shù)據(jù)流分析和延遲計(jì)算相結(jié)合的解決方法,優(yōu)化動(dòng)態(tài)翻譯時(shí)的標(biāo)志位處理,該方法在基本翻譯單元內(nèi)采用數(shù)據(jù)流分析方法刪除處理冗余標(biāo)志位的目標(biāo)代碼,而在翻譯單元之間采用延遲計(jì)算方法減少翻譯單元之間處理冗余標(biāo)志位而生成的冗余目標(biāo)代碼。以下簡(jiǎn)稱DFADC法。通過上述兩種方法,可以使翻譯時(shí)減少用于仿真源ISA的標(biāo)志位而產(chǎn)生的目標(biāo)代碼數(shù)量,提高了翻譯代碼的質(zhì)量,從而使翻譯執(zhí)行速度得到提高。文檔編號(hào)G06F9/30GK1529229SQ20031010244公開日2004年9月15日申請(qǐng)日期2003年10月21日優(yōu)先權(quán)日2003年10月21日發(fā)明者馬湘寧,馮曉兵,張兆慶,武成崗,唐鋒申請(qǐng)人:中國(guó)科學(xué)院計(jì)算技術(shù)研究所
網(wǎng)友詢問留言 已有0條留言
  • 還沒有人留言評(píng)論。精彩留言會(huì)獲得點(diǎn)贊!
1
普兰县| 林甸县| 双鸭山市| 日照市| 秀山| 闸北区| 怀宁县| 剑川县| 正阳县| 景德镇市| 彩票| 南昌县| 武陟县| 邵武市| 金川县| 四川省| 华蓥市| 金堂县| 金沙县| 宜丰县| 永善县| 宁波市| 五台县| 德江县| 宜宾县| 揭西县| 蕉岭县| 南昌市| 汉阴县| 华容县| 邹城市| 多伦县| 克拉玛依市| 江安县| 新乡市| 民乐县| 连山| 呼图壁县| 锡林郭勒盟| 南华县| 横峰县|